{ "version": 3, "sources": ["../../../../../../internal/esbuild/entrypoints/legacy/stats.js", "../../src/legacy/stats.es6.js", "../../src/legacy/highcharts/themes/hcgroupedcolumns.es6.js", "../../src/legacy/react/stats/utils/poller.es6.js", "../../src/legacy/react/stats/utils/odo.es6.js", "../../src/legacy/react/stats/components/stats.js", "../../src/legacy/react/stats/components/LinearTableView.js", "../../src/legacy/react/stats/components/HeaderView.js", "../../src/legacy/react/stats/components/RowView.js", "../../src/legacy/react/stats/components/ItemView.js", "../../src/legacy/react/stats/components/ComparisonTableView.js", "../../src/legacy/react/stats/components/LabelView.js", "../../src/legacy/react/stats/components/ColumnView.js", "../../src/legacy/react/stats/components/DataView.js"], "sourcesContent": ["import 'lib:../../../../src/ulule/static/site/public/libs/moment.min.cjs'\nimport 'lib:../../../../src/ulule/static/site/public/libs/moment-with-langs.min.cjs'\nimport 'lib:../../../../src/ulule/static/site/public/libs/highcharts.cjs'\nimport 'lib:../../../../src/ulule/static/site/public/libs/highcharts-grouped-categories.cjs'\nimport '../../../../src/ulule/static/site/src/legacy/stats.es6.js'\nimport '../../../../src/ulule/static/site/src/legacy/react/stats/utils/odo.es6.js'\nimport 'lib:../../../../src/ulule/static/site/public/libs/bootstrap-dropdown.js'\nimport 'lib:../../../../src/ulule/static/site/public/libs/odometer.min.js'\nimport '../../../../src/ulule/static/site/src/legacy/react/stats/components/stats.js'\n", "'use strict';\n\nimport accounting from 'accounting'\nimport HCBaseTheme from './highcharts/hcbasetheme.es6.js';\nimport HCAreaSpline from './highcharts/themes/hcareaspline.es6.js';\nimport HCSplineColumn from './highcharts/themes/hcsplinecolumn.es6.js';\nimport HCGroupedColumns from './highcharts/themes/hcgroupedcolumns.es6.js';\nimport Poller from './react/stats/utils/poller.es6.js';\nimport Odo from './react/stats/utils/odo.es6.js';\n\nwindow.accounting = accounting\nwindow.Swipe = Swipe\n\n/*global Odometer, Poller, window */\nclass Stats {\n constructor(options) {\n if (!options.url) {\n console.log('[Stats] Cannot init, no URL');\n return null;\n }\n\n this.url = options.url;\n this.dataset = options.data;\n this.currentLang = options.langCode;\n this.translations = options.translations || {};\n this.showLastMonth = options.showLastMonth || false;\n\n this.datum = [];\n this.graphs = {};\n this.odometers = {};\n\n this.currency = options.currentCurrency;\n\n this.hcwrapper = new HCBaseTheme();\n\n this._initPoller();\n this._initOdometers();\n this._drawCharts()\n this._updateTextData();\n\n Stats.reloadSprites();\n\n this._handleCurrencyChange();\n }\n\n static pluralize(singular, plural, count) {\n return (count === 1) ? singular : plural;\n }\n\n static reloadSprites() {\n let sprites = document.querySelectorAll('main i');\n\n [].forEach.call(sprites, (sprite, index) => {\n if (window.innerWidth <= 320) {\n sprite.className = 'sprite-stats-' + sprite.className;\n } else {\n sprite.className = 'sprite-stats-big-' + sprite.className;\n }\n });\n }\n\n static sortObject(source) {\n let keys = [];\n let result = {};\n\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n keys.sort();\n\n $.each(keys, (i, key) => {\n result[key] = source[key];\n });\n\n return result;\n }\n\n static selectPeriod(endDate, period, datum) {\n let selection = [];\n\n const startDate = moment(endDate).subtract('months', period).toDate();\n const years = Stats.sortObject(Stats.parseSelection(startDate, endDate, datum));\n\n for (const year in years) {\n selection.push({key: year, value: years[year]})\n }\n\n return selection;\n }\n\n static parseSelection(first, current, datum) {\n const firstYear = first.getFullYear();\n const firstMonth = first.getMonth() + 1;\n const currentYear = current.getFullYear();\n const currentMonth = current.getMonth() + 1;\n\n let months = [];\n let years = {};\n\n var entry = {};\n\n let selectMonths = function(range) {\n if (entry.year === currentYear) {\n if (range.month <= currentMonth) {\n return range;\n }\n }\n else if (entry.year === firstYear) {\n if (range.month >= firstMonth) {\n return range;\n }\n }\n else {\n return range;\n }\n };\n\n for (let i = 0; i < datum.length; ++i) {\n entry = datum[i];\n\n if (entry.year >= firstYear && entry.year <= currentYear) {\n months = entry.months.filter(selectMonths);\n years[entry.year] = months;\n } else {\n continue;\n }\n }\n\n return years;\n }\n\n static flatten(array, callback) {\n let result = [];\n\n for (let i = 0; i < array.length; ++i) {\n const year = array[i];\n for (let j = 0; j < year.value.length; ++j) {\n const month = year.value[j];\n callback(result, year, month);\n }\n }\n\n return result;\n }\n\n static combine(date, value) {\n let res = [];\n\n for (let i = 0, len = value.length; i < len; ++i) {\n const obj = {\n 'date': date[i],\n 'value': value[i]\n };\n res.push(obj);\n }\n\n return res;\n }\n\n _handleCurrencyChange() {\n let currenciesSelectors = $('.currency-selector span');\n\n currenciesSelectors.on('click', ((e) => {\n let selector = $(e.target);\n let selectedCurrency = selector.attr(\"data-currency\");\n\n if (selectedCurrency === this.currency) return;\n\n this.currency = selectedCurrency;\n $('.currency-selector span').removeClass('active');\n selector.addClass('active');\n\n accounting.settings.currency.symbol = selector.text();\n\n this.cumulCollectedFundsChartUpdate();\n\n this._updateTextData();\n this.odometers.collectedFunds.update(this.dataset.amount_raised[this.currency]);\n\n document.querySelector('#graph-cumul-collected-funds header span').textContent = accounting.formatMoney(this.dataset.amount_raised[this.currency]);\n }).bind(this))\n }\n\n _setFlatten(selection, callback) {\n return Stats.combine(\n Stats.flatten(selection, ((result, year, month) => {\n let date = new Date(parseInt(year.key, 10), parseInt(month.month, 10) - 1, 1);\n date.label = month.languages_abbrv[this.currentLang];\n date.legend = month.languages[this.currentLang];\n\n result.push(date);\n }).bind(this)),\n Stats.flatten(selection, (result, year, month) => {\n result.push(callback(month));\n })\n );\n }\n\n cumulCollectedFundsChart(selection) {\n const data = this._setFlatten(selection, (m) => {\n return [m.amount_raised_cumulated[this.currency], m.amount_raised[this.currency]];\n });\n\n let chart = new HCAreaSpline($('#graph-cumul-collected-funds > .graph-container.chart'));\n\n chart.setAdditionalOptions({\n chart: {\n height: 320\n },\n xAxis: {\n labels: {\n style: {\n color: 'transparent',\n fontSize: '3px'\n }\n },\n categories: selection.map((entry, index) => {\n return {\n name: entry.key,\n categories: entry.value.map((entry, index) => {\n return entry.languages[this.currentLang];\n })\n }\n })\n },\n yAxis: {\n labels: {\n formatter() {\n return accounting.formatMoney(this.value);\n }\n }\n },\n tooltip: {\n formatter() {\n const cumul = accounting.formatMoney(this.y);\n const diff = accounting.formatMoney(data[this.point.index].value[1]);\n return `

${this.x}

\n

${cumul}

\n

${diff}

`\n }\n },\n series: [{\n data: data.map((entry, index) => {\n return entry.value[0];\n })\n }]\n })\n .drawChart();\n\n this.graphs.cumulCollectedFundsChart = chart;\n }\n\n cumulCollectedFundsChartUpdate() {\n const selection = Stats.selectPeriod(moment().toDate(), 36, this.datum);\n\n const data = this._setFlatten(selection, (m) => {\n return [m.amount_raised_cumulated[this.currency], m.amount_raised[this.currency]];\n });\n\n this.graphs.cumulCollectedFundsChart.chart.series[0].setData(data.map((entry, index) => {\n return entry.value[0]\n }));\n }\n\n collectedFundsChart(selection, showLastMonth) {\n const data = this._setFlatten(selection, (m) => {\n return m.amount_raised[this.currency];\n });\n\n let chart = new HCSplineColumn($('#graph-collected-funds > .graph-container.chart'));\n\n chart.setAdditionalOptions({\n xAxis: {\n labels: {\n style: {\n color: 'transparent',\n fontSize: '3px'\n }\n },\n categories: selection.map((entry, index) => {\n return {\n name: entry.key,\n categories: entry.value.map((entry, index) => {\n return entry.languages[this.currentLang];\n })\n }\n })\n },\n yAxis: [{\n labels: {\n formatter() {\n return accounting.formatMoney(this.value);\n }\n }\n }, {}],\n tooltip: {\n formatter() {\n const value = accounting.formatMoney(this.y);\n return `

${this.x}

\n

${value}

`;\n }\n },\n series: [{\n data: data.map((entry, index) => {\n return entry.value;\n })\n }, {\n data: data.map((entry, index) => {\n return entry.value;\n })\n }]\n })\n .drawChart();\n\n this.graphs.collectedFundsChart = chart;\n }\n\n presalesChart(selection) {\n const data = this._setFlatten(selection, (m) => {\n return m.contributions_count;\n });\n\n let chart = new HCAreaSpline($('#graph-presales > .graph-container.chart'));\n\n chart.setAdditionalOptions({\n xAxis: {\n categories: data.map((entry, index) => {\n return entry.date.label;\n })\n },\n yAxis: {\n labels: {\n formatter() {\n return accounting.formatNumber(this.value);\n }\n }\n },\n tooltip: {\n formatter: HCBaseTheme.simpleFormattedNumberTooltip\n },\n series: [{\n data: data.map((entry, index) => {\n return entry.value;\n })\n }]\n })\n .drawChart();\n }\n\n projectsCountChart(selection) {\n const data = this._setFlatten(selection, (m) => {\n return [m.projects_started_count, m.projects_success_count, m.projects_success_percent];\n });\n\n let chart = new HCGroupedColumns($('#graph-projects > .graph-container.chart'));\n\n chart.setAdditionalOptions({\n xAxis: {\n categories: data.map((entry, index) => {\n return entry.date.label;\n })\n },\n tooltip: {\n formatter: HCBaseTheme.groupedColumnsTooltip\n },\n series: [{\n translations: this.translations.started,\n data: data.map((entry, index) => {\n return entry.value[0];\n })\n }, {\n translations: this.translations.funded,\n data: data.map((entry, index) => {\n return entry.value[1];\n })\n }]\n })\n .drawChart();\n }\n\n proposalsCountChart(selection) {\n const data = this._setFlatten(selection, (m) => {\n return [m.proposals_started_count, m.proposals_accepted_count, m.proposals_accepted_percent];\n });\n\n let chart = new HCGroupedColumns($('#graph-proposals > .graph-container.chart'));\n\n chart.setAdditionalOptions({\n xAxis: {\n categories: data.map((entry, index) => {\n return entry.date.label;\n })\n },\n tooltip: {\n formatter: HCBaseTheme.groupedColumnsTooltip\n },\n series: [{\n translations: this.translations.started,\n data: data.map((entry, index) => {\n return entry.value[0];\n })\n }, {\n translations: this.translations.accepted,\n data: data.map((entry, index) => {\n return entry.value[1];\n })\n }]\n })\n .drawChart();\n }\n\n _initPoller() {\n let plr = new Poller({\n url: this.url,\n onSuccess: ((s) => {\n this.odometers.collectedFunds.update(s.amount_raised[this.currency]);\n this.odometers.projectsFunded.update(s.projects_success_count);\n this.odometers.projectsFunding.update(s.projects_started_count);\n this.odometers.totalMembers.update(s.users_count);\n }).bind(this),\n maxRetries: 3,\n pollTime: 30000\n });\n }\n\n _drawCharts() {\n this.datum = this.dataset.years.slice().reverse();\n const endDate = moment().toDate();\n\n if (document.querySelector('#graph-cumul-collected-funds') !== null) {\n const selection = Stats.selectPeriod(endDate, 36, this.datum);\n this.cumulCollectedFundsChart(selection);\n document.querySelector('#graph-cumul-collected-funds header span').textContent = accounting.formatMoney(this.dataset.amount_raised[this.currency]);\n }\n\n if (document.querySelector('#graph-presales') !== null) {\n const selection = Stats.selectPeriod(endDate, 12, this.datum);\n this.presalesChart(selection);\n document.querySelector('#graph-presales header span').textContent = accounting.formatNumber(this.dataset.contributions_count);\n }\n\n if (document.querySelector('#graph-projects') !== null) {\n const selection = Stats.selectPeriod(endDate, 12, this.datum);\n this.projectsCountChart(selection);\n document.querySelector('#graph-projects .graph-selector .started span').textContent = accounting.formatNumber(this.dataset.projects_started_count);\n document.querySelector('#graph-projects .graph-selector .funded span').textContent = accounting.formatNumber(this.dataset.projects_success_count);\n }\n\n if (document.querySelector('#graph-proposals') !== null) {\n const selection = Stats.selectPeriod(endDate, 12, this.datum);\n this.proposalsCountChart(selection);\n document.querySelector('#graph-proposals .graph-selector .accepted span').textContent = accounting.formatNumber(this.dataset.proposals_accepted_count);\n document.querySelector('#graph-proposals .graph-selector .started span').textContent = accounting.formatNumber(this.dataset.proposals_started_count);\n }\n }\n\n _initOdometers() {\n this.odometers.collectedFunds = new Odo('#counter-collected-funds .stats-counter', {\n duration: 1600,\n format: '( ddd),dd',\n value: this.dataset.amount_raised[this.currency]\n });\n\n this.odometers.successRate = new Odo('#counter-success-rate .stats-counter', {\n duration: 1400,\n format: '',\n value: Math.round(this.dataset.years[(this.dataset.years.length - 1)].projects_success_percent)\n });\n\n this.odometers.projectsFunded = new Odo('#counter-projects-funded .stats-counter', {\n duration: 1800,\n format: '( ddd),dd',\n value: this.dataset.projects_success_count\n });\n\n this.odometers.projectsFunding = new Odo('#counter-projects-funding .stats-counter', {\n duration: 2400,\n format: '( ddd),dd',\n value: this.dataset.projects_started_count\n });\n\n this.odometers.totalMembers = new Odo('#counter-total-members .stats-counter', {\n duration: 2200,\n format: '( ddd),dd',\n value: this.dataset.users_count\n });\n }\n\n _updateTextData() {\n document.querySelector('#contrib-moy').textContent = accounting.formatMoney(this.dataset.amount_avg[this.currency]);\n document.querySelector('#current_year').textContent = this.dataset.years[(this.dataset.years.length - 1)].year;\n document.querySelector('#total-members').textContent = accounting.formatNumber(this.dataset.users_count);\n\n const currency = this.dataset.currencies.find(currency => currency.value === this.currency);\n if (currency) {\n document.querySelector('#counter-collected-funds .currency-value').textContent = currency.label;\n }\n }\n}\n\nexport default Stats;\n\nwindow.Stats = Stats;\n", "'use strict';\n\nimport HCBaseTheme from '../hcbasetheme.es6.js';\n\nclass HCGroupedColumns extends HCBaseTheme {\n constructor(container) {\n super();\n\n this.container = container;\n\n this.options = {\n chart: {\n type: 'column'\n },\n plotOptions: {\n series: {\n point: {\n events: {\n mouseOver() {\n HCGroupedColumns._changeColumnColor($(container), '#18A5D6', '#0071A4', this);\n },\n mouseOut() {\n HCGroupedColumns._changeColumnColor($(container), '#F0F0F0', '#D5D5D5', this);\n }\n }\n },\n states: {\n hover: {\n enabled: false\n }\n }\n }\n },\n series: [{\n color: '#F0F0F0',\n stack: 'left'\n }, {\n color: '#D5D5D5',\n stack: 'right'\n }]\n };\n }\n\n drawChart() {\n super.drawChart(this.container, this.options);\n return this;\n }\n\n static _changeColumnColor(container, firstColor, secondColor, self) {\n let chart = container.highcharts();\n chart.series[0].data[self.x].graphic.attr({ fill: firstColor });\n chart.series[1].data[self.x].graphic.attr({ fill: secondColor });\n }\n}\n\nexport default HCGroupedColumns;\n", "'use strict';\n/**\n * @desc (Object) Options object\n * @TODO Add XHR support :)\n*/\nclass Poller {\n constructor(options) {\n if (!options || !options.url) {\n console.log('[Poller] Missing options or URL.');\n return null;\n }\n\n this.url = options.url;\n\n this.maxRetries = options.maxRetries === undefined ? 3 : options.maxRetries;\n this.retryInterval = options.retryInterval || 1000;\n this.pollTime = options.pollTime || 10000;\n this.onSuccess = options.onSuccess || null;\n this.onError = options.onError || null;\n this.onPoll = options.onPoll || null;\n this.onFail = options.onFail || null;\n\n // Inner state\n this.failed = false;\n this.polling = false;\n this.failCount = 0;\n this.pollTimer = null;\n\n // Save options if we need em someday, dunno, bbq dawg\n this.options = options;\n\n this.create();\n }\n\n create(interval) {\n interval = interval || 0;\n\n if (this.pollTimer) {\n clearTimeout(this.pollTimer);\n }\n\n this.pollTimer = setTimeout(() => {\n this.doPoll(this);\n }, this.pollTime + interval);\n }\n\n doPoll(self) {\n this.polling = true;\n\n if (this.onPoll !== null) {\n this.onPoll();\n }\n\n $.getJSON(self.url, (data) => {\n self.doSuccess(data);\n }).fail((data) => {\n self.doRetry(data);\n });\n }\n\n doRetry(e) {\n this.polling = false;\n\n if (this.failCount === this.maxRetries) {\n console.log(`[Poller] URL exceeded maxRetries (${this.maxRetries}), stopping.`);\n this.doFail(e);\n } else {\n console.log(`[Poller] URL failed, retrying (${this.failCount}/${this.maxRetries})`);\n this.create(this.retryInterval);\n }\n\n if (this.onError) {\n this.onError(e);\n }\n\n this.failCount++;\n }\n\n doFail(e) {\n this.failed = true;\n this.polling = false;\n this.remove();\n\n if (this.onFail !== null) {\n this.onFail(e);\n }\n }\n\n doSuccess(s) {\n this.failCount = 0;\n this.polling = false;\n this.create(this.retryInterval);\n\n if (this.onSuccess !== null) {\n this.onSuccess(s);\n }\n }\n\n remove() {\n if (this.pollTimer) {\n clearTimeout(this.pollTimer);\n this.pollTimer = null;\n }\n }\n}\n\nexport default Poller;\n\nwindow.Poller = Poller;\n", "'use strict';\n/**\n * @desc (String) String for the Odo element\n * @desc (Object) Options object\n * @desc (Function) Overload setup function (Odometer)\n */\nclass Odo {\n constructor(elm, options) {\n if (!elm || !options) {\n return null;\n }\n\n this.elm = document.querySelector(elm);\n this.options = options;\n this.setup();\n }\n\n setup() {\n this.odometer = new Odometer({\n el: this.elm,\n value: 0,\n theme: 'default',\n format: this.options.format || '',\n duration: this.options.duration || '1000'\n });\n\n this.update();\n }\n\n update(v) {\n if (v) {\n this.odometer.update(v);\n } else {\n this.odometer.update(this.options.value);\n }\n }\n}\n\nexport default Odo;\n", "'use strict'\n\nimport * as React from 'react'\nimport * as ReactDOM from 'react-dom/client'\nimport LinearTableView from './LinearTableView.js'\nimport ComparisonTableView from './ComparisonTableView.js'\n\nclass ReactStats extends React.Component {\n constructor(dataset, objects, language, yearLimit) {\n super()\n\n this.dataset = dataset\n this.objects = objects\n this.language = language\n this.sortedCategories = this.dataset.categories.slice().sort((a, b) => b.amount_raised.EUR - a.amount_raised.EUR)\n }\n\n renderYearsTable(container, legend, yearLimit = 5) {\n let years = { ...this.dataset.years }\n\n years = Object.assign([], years).reverse()\n years = Object.values(years).slice(0, yearLimit)\n\n let headers = Object.values(years).map((year) => {\n return year.year\n })\n headers.unshift(legend)\n\n let totals = Object.values(this.objects).map(\n ((object) => {\n return {\n label: object.label,\n data: Object.values(years).map((year) => object.data(year)),\n total: object.total,\n }\n }).bind(this)\n )\n\n for (let i = 0; i < totals.length; ++i) {\n let total = totals[i]\n total.data.unshift(total.total)\n }\n\n const root = ReactDOM.createRoot(container)\n root.render()\n }\n\n renderCategoriesTable(container, title) {\n let categories = Object.values(this.objects).map(\n ((object) => {\n return {\n label: object.label,\n data: this.sortedCategories.map(object.data),\n }\n }).bind(this)\n )\n\n let labels = Object.values(this.sortedCategories).map(\n ((category) => {\n return category.labels[this.language] || category.name\n }).bind(this)\n )\n\n const root = ReactDOM.createRoot(container)\n root.render()\n }\n}\n\nexport default ReactStats\n\nwindow.ReactStats = ReactStats\n", "\"use strict\";\n\nimport React from 'react';\nimport HeaderView from './HeaderView.js';\nimport RowView from './RowView.js';\n\n\nclass LinearTableView extends React.Component {\n render() {\n let rows = this.props.rows.map((row, index) =>\n
\n

{row.label}

\n \n
\n );\n\n return (\n
\n
\n \n
\n {rows}\n
\n );\n }\n}\n\nexport default LinearTableView;\n", "\"use strict\";\n\nimport React from 'react';\n\n\nclass HeaderView extends React.Component {\n render() {\n let headers = this.props.headers.map((header, index) =>\n
  • \n {header}\n
  • \n );\n\n return (\n \n );\n }\n}\n\nexport default HeaderView;\n", "\"use strict\";\n\nimport React from 'react';\nimport ItemView from './ItemView.js';\n\n\nclass RowView extends React.Component {\n render() {\n let items = this.props.data.map((item, index) =>\n \n {item}\n \n );\n\n return (\n \n );\n }\n}\n\nexport default RowView;\n", "\"use strict\";\n\nimport React from 'react';\n\n\nclass ItemView extends React.Component {\n render() {\n return (\n
  • {this.props.children}
  • \n );\n }\n}\n\nexport default ItemView;\n", "\"use strict\";\n\nimport React from 'react';\nimport LabelView from './LabelView.js';\nimport ColumnView from './ColumnView.js';\n\n\nclass ComparisonTableView extends React.Component {\n render() {\n return (\n
    \n
    \n {this.props.title}\n
    \n\n
    \n \n \n \n
    \n
    \n );\n }\n}\n\nexport default ComparisonTableView;\n", "\"use strict\";\n\nimport React from 'react';\n\n\nclass LabelView extends React.Component {\n render() {\n let labels = this.props.labels.map((label, i) =>\n
  • {label}
  • \n );\n\n return (\n \n );\n }\n}\n\nexport default LabelView;\n", "\"use strict\";\n\nimport React from 'react';\nimport DataView from './DataView.js';\n\n\nclass ColumnView extends React.Component {\n render() {\n let data = this.props.columns.map((column, i) =>\n \n );\n\n return (\n
    \n
    \n {data}\n
    \n \n \n
    \n );\n }\n}\n\nexport default ColumnView;\n", "\"use strict\";\n\nimport React from 'react';\n\n\nclass DataView extends React.Component {\n render() {\n let column = this.props.column.data.map((data, i) =>\n
  • {data}
  • \n );\n\n return (\n
      \n
    • {this.props.label}
    • \n {column}\n
    \n );\n }\n}\n\nexport default DataView;\n"], "mappings": "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", "names": ["init_define_process_env", "init_define_process_env", "import_accounting", "init_define_process_env", "HCGroupedColumns", "_HCGroupedColumns", "hcbasetheme_es6_default", "container", "firstColor", "secondColor", "self", "chart", "hcgroupedcolumns_es6_default", "init_define_process_env", "Poller", "options", "interval", "self", "data", "e", "s", "poller_es6_default", "init_define_process_env", "Odo", "elm", "options", "v", "odo_es6_default", "accounting", "Stats", "_Stats", "options", "hcbasetheme_es6_default", "singular", "plural", "count", "sprites", "sprite", "index", "source", "keys", "result", "key", "i", "endDate", "period", "datum", "selection", "startDate", "years", "year", "first", "current", "firstYear", "firstMonth", "currentYear", "currentMonth", "months", "entry", "selectMonths", "range", "array", "callback", "j", "month", "date", "value", "res", "len", "obj", "selector", "selectedCurrency", "data", "m", "chart", "hcareaspline_es6_default", "cumul", "diff", "showLastMonth", "hcsplinecolumn_es6_default", "hcgroupedcolumns_es6_default", "plr", "poller_es6_default", "s", "odo_es6_default", "currency", "Stats", "init_define_process_env", "React", "ReactDOM", "init_define_process_env", "import_react", "init_define_process_env", "import_react", "HeaderView", "React", "headers", "header", "index", "HeaderView_default", "init_define_process_env", "import_react", "init_define_process_env", "import_react", "ItemView", "React", "ItemView_default", "RowView", "React", "items", "item", "index", "ItemView_default", "RowView_default", "LinearTableView", "React", "rows", "row", "index", "RowView_default", "HeaderView_default", "LinearTableView_default", "init_define_process_env", "import_react", "init_define_process_env", "import_react", "LabelView", "React", "labels", "label", "i", "LabelView_default", "init_define_process_env", "import_react", "init_define_process_env", "import_react", "DataView", "React", "column", "data", "i", "DataView_default", "ColumnView", "React", "data", "column", "i", "DataView_default", "ColumnView_default", "ComparisonTableView", "React", "LabelView_default", "ColumnView_default", "ComparisonTableView_default", "ReactStats", "dataset", "objects", "language", "yearLimit", "b", "container", "legend", "years", "__spreadValues", "headers", "year", "totals", "object", "i", "total", "LinearTableView_default", "title", "categories", "labels", "category", "ComparisonTableView_default", "ReactStats"] }