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