{"version":3,"sources":["webpack://fxsWidgets/../src/js/widgets/calendar-common/helpers/formatDate.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-actualdeviation/actions/localizationActions.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-actualdeviation/store.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-actualdeviation/actions/ActualDeviationDataActions.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-actualdeviation/constants/seriesConfig.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-actualdeviation/components/ActualDeviationChart.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-actualdeviation/constants/chartOptions.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-actualdeviation/components/ActualDeviationContainer.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-actualdeviation/actions/index.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-actualdeviation/index.js","webpack://fxsWidgets/../src/js/widgets/marketimpact-common/helpers/getInitialDate.js"],"names":["getOrdinalDay","day","translations","fetchLocalizations","_ref","store","storeCulture","getState","config","culture","toLowerCase","currentCulture","hasOwnProperty","default","_x","apply","arguments","INITIAL_STATE","calendarApiUrl","CALENDAR_API_URL","timezoneOffset","eventId","allowDownload","zoomable","take","height","data","isFetching","fetchError","items","initialDate","settingsMapper","state","resultState","_objectSpread","convertCulture","input","Object","keys","includes","received","values","_store$getState$confi","mapped","map","x","date","convertDateToTimezone","dateUtc","getInitialDate","setState","error","seriesConfig","Deviation","nameKey","type","color","mapProperty","item","ratioDeviation","Consensus","consensus","Actual","actual","ActualDeviationChart","_Component","props","_this","translate","_callSuper","getSeries","bind","options","chart","toolbar","tools","download","zoomin","zoomout","zoom","enabled","autoScaleYaxis","animations","fontFamily","grid","padding","left","plotOptions","bar","columnWidth","colors","s","stroke","width","curve","xaxis","tooltip","axisBorder","show","min","getTime","undefined","yaxis","title","text","style","cssClass","fontSize","offsetX","labels","formatter","value","toFixed","seriesName","opposite","rotate","dateFormatLocalizedSync","y","legend","position","horizontalAlign","offsetY","itemMargin","vertical","horizontal","markers","responsive","breakpoint","onItemHover","highlightDataSeries","onItemClick","toggleDataSeries","floating","series","_inherits","key","nextProps","this","length","_this2","name","prepareSeries","_ref2","_objectDestructuringEmpty","h","Chart","Component","connectWithTranslations","ActualDeviationContainer","_classCallCheck","fetchActualDeviationData","preloadDateFormatTranslation","dataIsAvailable","some","shouldShowChart","class","dir","concat","Spinner","WidgetError","message","NoDataWidgetError","_store$getState2$conf","requested","url","cacheFetch","then","response","ok","json","status","catch","err","console","MarketImpactActualDeviationWidget","createCustomStore","createStore","Provider","result","slice"],"mappings":"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","file":"marketimpact-actualdeviation.93592138e6333939d122.js","sourcesContent":["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 translations = {\r\n \"ar\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-ar'*/\"../translations/ar\"),\r\n \"de\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-de'*/\"../translations/de\"),\r\n \"en\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-en'*/\"../translations/en\"),\r\n \"es\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-es'*/\"../translations/es\"),\r\n \"fr\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-fr'*/\"../translations/fr\"),\r\n \"id\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-id'*/\"../translations/id\"),\r\n \"ru\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-ru'*/\"../translations/ru\"),\r\n \"tr\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-tr'*/\"../translations/tr\"),\r\n \"zh-cht\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-zh-cht'*/\"../translations/zh-cht\"),\r\n \"zh-cn\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-zh-cn'*/\"../translations/zh-cn\"),\r\n \"vi\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-vi'*/\"../translations/vi\"),\r\n \"fa\": () => import(/*webpackChunkName: 'marketimpact-actualdeviation-t-fa'*/\"../translations/fa\"),\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 const fetchedTranslations = await translations[currentCulture]()\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 calendarApiUrl: CALENDAR_API_URL,\r\n timezoneOffset: 0,\r\n eventId: null,\r\n allowDownload: true,\r\n zoomable: true,\r\n take: 60,\r\n height: 'auto'\r\n },\r\n translations: null,\r\n data: {\r\n isFetching: true,\r\n fetchError: false,\r\n items: null,\r\n initialDate: null\r\n }\r\n}\r\n\r\nconst settingsMapper = (state) => {\r\n const resultState = {\r\n ...state\r\n }\r\n\r\n return resultState\r\n}\r\n\r\nconst convertCulture = input => {\r\n const result = input && Object.keys(translations).includes(input.toLowerCase()) ?\r\n input.toLowerCase() : 'en'\r\n return result\r\n}\r\n\r\nconst createStore = (props) => {\r\n const result = createCustomStore(\r\n props,\r\n INITIAL_STATE,\r\n { culture: convertCulture },\r\n settingsMapper)\r\n\r\n return result\r\n}\r\n\r\nexport { createStore }\r\n","import { convertDateToTimezone } from \"../../common/helpers/dateHelpers\";\r\nimport { cacheFetch } from \"../../common/helpers/cacheFetchHelpers\";\r\nimport { getInitialDate } from \"../../marketimpact-common/helpers/getInitialDate\";\r\n\r\nconst requested = (store) => {\r\n store.setState({\r\n data: {\r\n isFetching: true,\r\n fetchError: false,\r\n items: null,\r\n initialDate: null,\r\n },\r\n });\r\n};\r\n\r\nconst received = (store, values) => {\r\n const {\r\n config: { timezoneOffset, zoomable, take },\r\n } = store.getState();\r\n const mapped = values.map((x) => {\r\n let value = {\r\n ...x,\r\n date: convertDateToTimezone(x.dateUtc, timezoneOffset),\r\n };\r\n return value;\r\n });\r\n\r\n const initialDate = zoomable && getInitialDate(take, mapped);\r\n\r\n store.setState({\r\n data: {\r\n isFetching: false,\r\n fetchError: false,\r\n items: mapped,\r\n initialDate: initialDate,\r\n },\r\n });\r\n};\r\n\r\nconst error = (store) => {\r\n store.setState({\r\n data: {\r\n isFetching: false,\r\n fetchError: true,\r\n items: null,\r\n initialDate: null,\r\n },\r\n });\r\n};\r\n\r\nexport const fetchActualDeviationData = (store) => {\r\n const {\r\n config: { calendarApiUrl, culture, eventId, zoomable, take },\r\n } = store.getState();\r\n\r\n requested(store);\r\n\r\n const url =\r\n `${calendarApiUrl}/${culture}/api/v1/events/${eventId}/historical` +\r\n (zoomable ? \"\" : `?take=${take}`);\r\n cacheFetch(url)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((values) => received(store, values));\r\n } else if (response.status === 404) {\r\n received(store, []);\r\n } else {\r\n error(store);\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n error(store);\r\n });\r\n};\r\n","const Deviation = {\r\n nameKey: 'SeriesName_Deviation',\r\n type: 'bar',\r\n color: '#f4cfa4',\r\n mapProperty: item => item.ratioDeviation\r\n}\r\n\r\nconst Consensus = {\r\n nameKey: 'SeriesName_Consensus',\r\n type: 'line',\r\n color: '#d1495b',\r\n mapProperty: item => item.consensus\r\n}\r\n\r\n\r\n\r\nconst Actual = {\r\n nameKey: 'SeriesName_Actual',\r\n type: 'line',\r\n color: '#304c70',\r\n mapProperty: item => item.actual\r\n}\r\n\r\nexport const seriesConfig = {\r\n Deviation,\r\n Consensus,\r\n Actual\r\n}\r\n\r\n","import { h, Component } from 'preact'\r\nimport Chart from '../../common/components/Chart'\r\nimport { connectWithTranslations } from '../../common/helpers/translationsHelpers'\r\nimport { getChartOptions, seriesConfig } from '../constants'\r\n\r\nclass ActualDeviationChart extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.getSeries = this.getSeries.bind(this)\r\n this.state = {\r\n options: getChartOptions(props.translate, props.config, props.data),\r\n series: props.data ? this.getSeries(props.data.items) : []\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if ((this.props.data.items !== nextProps.data.items) && nextProps.data.items && nextProps.data.items.length > 0) {\r\n const data = nextProps.data.items\r\n const series = this.getSeries(data)\r\n this.setState({ series })\r\n }\r\n }\r\n\r\n prepareSeries(data, mapProperty) {\r\n const result = data.map(item => ([item.date, mapProperty(item)]))\r\n return result\r\n }\r\n\r\n getSeries(data) {\r\n const series = Object.values(seriesConfig).map(s => ({\r\n name: this.props.translate(s.nameKey),\r\n type: s.type,\r\n data: this.prepareSeries(data, s.mapProperty)\r\n }))\r\n\r\n return series\r\n }\r\n\r\n render({ }, { options, series }) {\r\n return (\r\n <Chart\r\n options={options}\r\n series={series}\r\n />\r\n )\r\n }\r\n}\r\n\r\nexport default connectWithTranslations('config, data')(ActualDeviationChart)\r\n","import { seriesConfig } from \"./seriesConfig\";\r\nimport { dateFormatLocalizedSync } from \"../../common/helpers/dateHelpers\";\r\n\r\nexport const getChartOptions = (translate, config, data) => ({\r\n chart: {\r\n height: config.height || \"auto\",\r\n toolbar: {\r\n tools: {\r\n download: config.allowDownload,\r\n zoomin: config.zoomable,\r\n zoomout: config.zoomable,\r\n },\r\n },\r\n zoom: { enabled: config.zoomable, type: \"x\", autoScaleYaxis: true },\r\n animations: { enabled: false },\r\n fontFamily: \"Roboto , Arial, Helvetica, sans-serif\",\r\n },\r\n grid: { padding: { left: 0 } },\r\n plotOptions: { bar: { columnWidth: \"20%\" } },\r\n colors: Object.values(seriesConfig).map((s) => s.color),\r\n stroke: { width: 1, curve: \"straight\" },\r\n xaxis: {\r\n type: \"datetime\",\r\n tooltip: { enabled: false },\r\n axisBorder: {\r\n show: true,\r\n color: \"#DDDEDF\",\r\n height: 1,\r\n },\r\n min: data.initialDate ? data.initialDate.getTime() : undefined,\r\n },\r\n yaxis: [\r\n {\r\n title: {\r\n text: translate(\"YAxisTitle\"),\r\n style: {\r\n cssClass: \"apexcharts-yaxis-title\",\r\n color: \"#8c8d91\",\r\n fontSize: \"11px\",\r\n fontFamily: \"Roboto , Arial, Helvetica, sans-serif\",\r\n },\r\n offsetX: translate(\"IsRightToLeftOriented\") ? -20 : 0,\r\n },\r\n axisBorder: {\r\n show: true,\r\n color: \"#DDDEDF\",\r\n width: 1,\r\n offsetX: translate(\"IsRightToLeftOriented\") ? 30 : 5,\r\n },\r\n labels: {\r\n formatter: (value) => value.toFixed(2),\r\n offsetX: translate(\"IsRightToLeftOriented\") ? -30 : -15,\r\n },\r\n seriesName: translate(seriesConfig.Deviation.nameKey),\r\n },\r\n {\r\n opposite: true,\r\n title: {\r\n text: translate(\"YAxisTitleOpposite\"),\r\n rotate: -90,\r\n style: {\r\n cssClass: \"apexcharts-yaxis-title\",\r\n color: \"#8c8d91\",\r\n fontSize: \"11px\",\r\n fontFamily: \"Roboto , Arial, Helvetica, sans-serif\",\r\n },\r\n offsetX: translate(\"IsRightToLeftOriented\") ? -120 : 0,\r\n },\r\n\r\n axisBorder: {\r\n show: true,\r\n offsetX: translate(\"IsRightToLeftOriented\") ? 30 : 0,\r\n },\r\n labels: {\r\n formatter: (value) => value.toFixed(2),\r\n offsetX: translate(\"IsRightToLeftOriented\") ? -30 : 0,\r\n },\r\n seriesName: translate(seriesConfig.Actual.nameKey),\r\n },\r\n {\r\n show: false,\r\n opposite: true,\r\n seriesName: translate(seriesConfig.Actual.nameKey),\r\n },\r\n ],\r\n tooltip: {\r\n x: { formatter: (value) => dateFormatLocalizedSync(value, \"ll\") },\r\n y: { formatter: (value) => value },\r\n },\r\n legend: {\r\n position: \"bottom\",\r\n horizontalAlign: \"center\",\r\n offsetY: 0,\r\n itemMargin: { vertical: 10, horizontal: 5 },\r\n markers: { width: 24 },\r\n labels: { colors: [\"#8C8D91\"] },\r\n },\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n options: {\r\n chart: {\r\n zoom: {\r\n enabled: false,\r\n },\r\n toolbar: {\r\n show: false,\r\n },\r\n },\r\n legend: {\r\n onItemHover: {\r\n highlightDataSeries: false,\r\n },\r\n onItemClick: {\r\n toggleDataSeries: false,\r\n },\r\n markers: {\r\n width: 12,\r\n },\r\n floating: true,\r\n offsetY: -20,\r\n },\r\n },\r\n },\r\n ],\r\n});\r\n","import { h, Component } from 'preact'\r\nimport { connectWithTranslations } from '../../common/helpers/translationsHelpers'\r\nimport actions from '../actions'\r\nimport ActualDeviationChart from './ActualDeviationChart'\r\nimport Spinner from '../../common/components/Spinner'\r\nimport WidgetError from '../../common/components/WidgetError'\r\nimport NoDataWidgetError from '../../common/components/NoDataWidgetError'\r\nimport { preloadDateFormatTranslation } from '../../common/helpers/dateHelpers'\r\n\r\nclass ActualDeviationContainer extends Component {\r\n componentWillMount() {\r\n this.props.fetchLocalizations()\r\n this.props.fetchActualDeviationData()\r\n preloadDateFormatTranslation(this.props.config.culture)\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const dataIsAvailable = nextProps.data.items !== null && nextProps.data.items.length > 0 && nextProps.data.items.some(x => x.actual !== null)\r\n const shouldShowChart = nextProps.translations && (dataIsAvailable || (this.state.shouldShowChart && nextProps.data.items === null))\r\n\r\n if (this.state.shouldShowChart !== shouldShowChart)\r\n this.setState({ shouldShowChart, dataIsAvailable })\r\n }\r\n\r\n render({ data, translate, translations },{ shouldShowChart, dataIsAvailable }) {\r\n return (\r\n <div class=\"fxs_widget fxs_actual-deviation\" dir={`${!!translate('IsRightToLeftOriented') ? 'rtl' : 'auto'}`} >\r\n { shouldShowChart && <h2 class=\"fxs_headline_small\">{translate('ChartTitle')}</h2> }\r\n { data.isFetching && !shouldShowChart && !data.fetchError && <Spinner /> }\r\n { data.fetchError && <WidgetError message={\r\n <p>\r\n {this.props.translate('WidgetErrorMessageLine1')}\r\n <br />\r\n {this.props.translate('WidgetErrorMessageLine2')}\r\n </p>\r\n } /> }\r\n { !data.isFetching && !data.fetchError && !dataIsAvailable && <NoDataWidgetError message={\r\n <p>\r\n {this.props.translate('NoDataWidgetErrorMessageLine1')}\r\n <br/>\r\n {this.props.translate('NoDataWidgetErrorMessageLine2')}\r\n </p>\r\n } /> }\r\n { translations && shouldShowChart && !data.fetchError && <ActualDeviationChart data={data.items} /> }\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default connectWithTranslations('data, translations, config', actions)(ActualDeviationContainer)\r\n","import { fetchActualDeviationData } from './ActualDeviationDataActions'\r\nimport { fetchLocalizations } from './localizationActions'\r\n\r\n\r\nexport default (store) => ({\r\n fetchActualDeviationData: (state) => fetchActualDeviationData(store),\r\n fetchLocalizations: (state) => fetchLocalizations(store),\r\n})\r\n","import { h, Component } from 'preact'\r\nimport { Provider } from 'unistore/preact'\r\nimport { createStore } from './store'\r\nimport ActualDeviationContainer from './components/ActualDeviationContainer'\r\n\r\nclass MarketImpactActualDeviationWidget 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 <ActualDeviationContainer />\r\n </Provider>\r\n )\r\n }\r\n}\r\n\r\nexport default MarketImpactActualDeviationWidget","export const getInitialDate = (take, items) => {\r\n let result = null;\r\n\r\n if (items.length < 1 || take < 0) return result;\r\n\r\n let position = take <= items.length ? take : items.length;\r\n result = items.slice(0, position)[position - 1].date;\r\n\r\n return result;\r\n};\r\n"],"sourceRoot":""}