{"version":3,"file":"js/app-ac44c8050bb9463f23aa.js","mappings":"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","sources":["webpack://app/./app/javascript/models/AccessToken.ts","webpack://app/./app/javascript/charts/utils/saveAsPNG.ts","webpack://app/./app/javascript/charts/Base.js","webpack://app/./app/javascript/charts/Legend.js","webpack://app/./app/javascript/charts/D3Chart.js","webpack://app/./app/javascript/charts/utils/tooltips.js","webpack://app/./app/javascript/charts/utils/stackData.ts","webpack://app/./app/javascript/charts/Bezier.js","webpack://app/./app/javascript/charts/HourlyBase/sampleCurves.ts","webpack://app/./app/javascript/charts/HourlyBase/DateSelect.ts","webpack://app/./app/javascript/charts/utils/zeroInvisibles.ts","webpack://app/./app/javascript/charts/HourlyBase/index.js","webpack://app/./app/javascript/charts/utils/negativeRegionRect.ts","webpack://app/./app/javascript/charts/Line.js","webpack://app/./app/javascript/charts/ElectricityNetworkLoad.js","webpack://app/./app/javascript/charts/HourlySummarized.js","webpack://app/./app/javascript/charts/HourlyStackedArea.js","webpack://app/./app/javascript/charts/StackedBar.js","webpack://app/./app/javascript/charts/utils/backwardsCompat.ts","webpack://app/./app/javascript/views/ChartListView.js","webpack://app/./app/javascript/views/CustomCurveChooserView/index.js","webpack://app/./app/javascript/views/MultiCurveChooserView.js","webpack://app/./app/javascript/packs/app.ts"],"sourcesContent":["class AccessToken {\n constructor(public readonly token: string, public readonly expiresAt: Date) {}\n\n /**\n * Refreshes the access token, returning a new token.\n */\n async refresh(): Promise {\n const resp = await fetch('/refresh/token', { method: 'POST' });\n\n if (!resp.ok) {\n // get error message from body or default to response status\n return Promise.reject({ error: resp.status });\n }\n\n const json = await resp.json();\n return new AccessToken(json.access_token, new Date(json.expires_at));\n }\n\n isExpired(): boolean {\n return this.expiresAt < new Date();\n }\n\n headers(): Record {\n return { Authorization: `Bearer ${this.token}` };\n }\n}\n\nclass GuestToken {\n async refresh(): Promise {\n return Promise.reject({ error: 'Guest user cannot refresh token' });\n }\n\n isExpired(): boolean {\n return false;\n }\n\n headers(): Record {\n return {};\n }\n}\n\nexport { AccessToken, GuestToken };\n","import html2canvas from 'html2canvas';\n\n/**\n * Determines whether the current browser supports rendering to SVG without (major) issues.\n */\nexport const isSupported =\n // Safari has issues applying styles to SVG elements:\n // https://github.com/niklasvh/html2canvas/issues/2476\n //\n // Chrome/Chromium includes the substring \"Safari\" in their userAgent:\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#browser_name\n !window.navigator.userAgent.includes('Safari/') || window.navigator.userAgent.includes('Chrom');\n\n/**\n * Saves an HTMLDivElement - which contains a chart - as a PNG.\n */\nconst saveAsPNG = (holder: HTMLDivElement, scenarioID: number): Promise => {\n const title = holder.querySelector('header h3').textContent;\n\n // Clone the chart - rather than operating directly on the visible chart - as this allows us to\n // adjust styles (add watermark, remove shadows) without the user noticing the changes to the\n // on-screen chart.\n const clone = holder.cloneNode(true) as HTMLDivElement;\n clone.removeAttribute('data-holder_id');\n clone.classList.add('html2canvas');\n\n if (isHiDPI() && window.navigator.userAgent.includes('Firefox')) {\n // Add a class which reverts the clone to use Helvetica/Arial. As of 2021-03-01 rendering the\n // system font to Canvas in Firefox on a HiDPI screen causes uneven letter spacing.\n clone.classList.add('firefox-hidpi');\n }\n\n holder.parentNode.insertBefore(clone, holder.nextSibling);\n\n const promise = html2canvas(clone, {\n scale: 2,\n scrollX: -window.scrollX,\n scrollY: -window.scrollY,\n });\n\n promise.then((canvas) => {\n clone.remove();\n\n const link = document.createElement('a');\n\n link.download = `${title}.${scenarioID}.png`;\n link.href = canvas.toDataURL();\n link.click();\n });\n\n return promise;\n};\n\n/**\n * Detects a HiDPI display.\n */\nconst isHiDPI = () => {\n const mediaQuery =\n '(-webkit-min-device-pixel-ratio: 1.5),\\\n (min--moz-device-pixel-ratio: 1.5),\\\n (-o-min-device-pixel-ratio: 3/2),\\\n (min-resolution: 1.5dppx)';\n\n if (window.devicePixelRatio > 1) return true;\n if (window.matchMedia && window.matchMedia(mediaQuery).matches) return true;\n\n return false;\n};\n\n/**\n * Event which may be attached to a button or anchor to trigger downloading a chart.\n */\nexport const onClick = (event: MouseEvent, scenarioID: number): void => {\n event.preventDefault();\n\n const target = event.target as HTMLAnchorElement;\n saveAsPNG(target.closest('.chart_holder') as HTMLDivElement, scenarioID);\n};\n\n/**\n * Provide isSupported on the onClick for easier access.\n */\nonClick.isSupported = isSupported;\n\nexport default saveAsPNG;\n","/* globals $ App Backbone I18n MeritOrderExcessTableView Metric Quantity TableView */\n\nimport { onClick as saveAsPNG } from './utils/saveAsPNG';\n\n/**\n * Contains share functionality for charts. All charts inherit from this base class.\n *\n * This class handles triggering rendering the data as a chart or table, setting up loading or\n * empty-state messages, and the control buttons.\n */\nexport default class extends Backbone.View {\n /**\n * Customise the way the table-view is rendered. Possibilities are:\n *\n * labelFormatter: A function which should return a function; used to format\n * the label for each row.\n *\n * valueFormatter: A function which should return a function; used to format\n * the present and value in each row.\n *\n * sorter: A function which should return a function; receives the\n * entire series, and should return the series sorted as\n * desired.\n *\n * For example:\n *\n * tableOptions = {\n * labelFormatter: serie => serie.get('label'),\n * valueFormatter: value => Math.round(value),\n * sorter: series => series.reverse()\n * }\n */\n tableOptions = {};\n\n /**\n * The name of the table view to be used when showing the chart as a table.\n */\n tableView = 'default';\n\n /**\n * Sets whether the chart may be downloaded as an image. May be overridden in subclasses, or\n * per-chart by setting `config.supports_to_image` to false.\n */\n supportsToImage = true;\n\n constructor(...args) {\n super(...args);\n\n this.model.bind('refresh', this.renderContent);\n this.model.bind('willReplace', this.prepareReplace);\n }\n\n /**\n * Triggered when a \"willReplace\" event is fired on the model. Removes action buttons and shows a\n * loading block while data for the new chart is loaded.\n */\n prepareReplace = () => {\n const loadingEl = $('
');\n let canvas = this.$el.find('.chart_canvas');\n\n if (canvas.length > 0) {\n // Set the height of the loading element to be the same as the chart it\n // replaces to prevent a second/third/... chart from jumping up and down\n // the page. Don't bother if this is the only chart.\n if (this.model.collection.length > 1) {\n loadingEl.css({ height: canvas.height() - 1 });\n }\n } else {\n canvas = this.$el.find('.table_canvas');\n }\n\n canvas.empty().append(loadingEl);\n\n this.$el.find('header h3').text('Loading');\n this.$el.find('.actions').hide();\n\n this.model.set({ will_replace: true });\n };\n\n // Separate chart and table rendering\n\n /**\n * A controller method which determines how to render the contents of the chart and then triggers\n * the appropriate action.\n *\n * This is called when the chart first loads, and again whenever the underlying data is updated.\n */\n renderContent = (skipMeritCheck = false) => {\n if (!skipMeritCheck && this.requiresHourlyData()) {\n // Check if Merit is enabled, waiting for the value if necessary.\n App.settings.merit_order_enabled_promise().done((meritIsEnabled) => {\n if (!meritIsEnabled) {\n this.containerNode().html(\n $('
').html(I18n.t('wells.warning.merit')).addClass('well')\n );\n\n this.drawn = false;\n return;\n }\n\n this.renderContent(true);\n });\n\n return false;\n }\n\n this.updateHeaderButtons();\n\n const isTable =\n (this.model.get('as_table') && this.canRenderAsTable()) ||\n this.model.get('type') === 'html_table';\n\n this.containerNode().toggleClass('chart_canvas', !isTable).toggleClass('table_canvas', isTable);\n\n if (isTable) {\n // TODO \"html_table\" should alias render() as renderAsTable()\n this.renderAsTable();\n } else {\n this.render();\n }\n };\n\n /**\n * Sets whether the chart requires hourly calculations to be enabled in order to render. Attempts\n * to render an hourly chart while the feature is disabled will show a notification instead of the\n * chart.\n */\n requiresHourlyData() {\n return this.model.get('requires_merit_order');\n }\n\n containerID() {\n return this.model.get('container');\n }\n\n // This is the dom element that will be filled with the chart. jqPlot expects\n // an id\n containerNode() {\n return $(`#${this.containerID()}`);\n }\n\n clearContainer() {\n this.containerNode().empty();\n return (this.drawn = false);\n }\n\n /**\n * Updates the header buttons when the chart or table is rendered.\n */\n updateHeaderButtons() {\n // Skip re-rendering if this chart is about to be replaced.\n if (this.model.get('will_replace')) {\n return;\n }\n\n const id = this.model.get('chart_id');\n\n this.$el.data('chart_id', id);\n this.$el.find('h3').html(this.model.get('name'));\n this.$el.find('a.chart_info').toggle(this.model.get('has_description'));\n this.$el.find('.actions a.chart_info').attr('href', `/descriptions/charts/${id}`);\n this.$el.find('.actions a.zoom_chart').attr('href', `/output_elements/${id}/zoom`);\n\n this.$el.find('.actions a').removeClass('loading');\n\n this.format_wrapper =\n this.$el.parents('.fancybox-inner').length > 0\n ? this.$el.parents('.fancybox-inner')\n : this.$el;\n\n this.format_wrapper.find('a.chart_format, a.table_format').hide();\n\n if (this.canRenderAsTable()) {\n if (this.model.get('as_table')) {\n this.format_wrapper.find('a.chart_format').show();\n } else {\n this.format_wrapper.find('a.table_format').show();\n }\n }\n\n this.$el.find('a.default_chart').toggle(this.model.wants_default_button());\n this.$el.find('a.show_related').toggle(this.model.wants_related_button());\n this.$el.find('a.show_previous').toggle(this.model.wants_previous_button());\n\n const saveImage = this.$el.find('.actions a.chart_to_image');\n\n if (this.canDownloadImage()) {\n // Unbind any previously assigned saveAs event to prevent it being triggered multiple times.\n saveImage\n .show()\n .off('click')\n .on('click', (event) => saveAsPNG(event, App.scenario.get('id')));\n } else {\n saveImage.hide();\n }\n\n this.updateLockIcon();\n this.$el.find('.actions').show();\n }\n\n /**\n * Returns whether the chart may be downloaded as an image.\n */\n canDownloadImage() {\n return (\n typeof Promise !== 'undefined' &&\n saveAsPNG.isSupported &&\n this.supportsToImage !== false &&\n this.model.get('config').supports_to_image !== false\n );\n }\n\n /**\n * Sets the lock/unlock button to have to correct icon depending on the current state of the\n * chart.\n */\n updateLockIcon() {\n const icon = this.$el.find('a.lock_chart');\n\n if (this.model.get('locked')) {\n icon.removeClass('fa fa-unlock').addClass('fa fa-lock');\n } else {\n icon.removeClass('fa fa-lock').addClass('fa fa-unlock');\n }\n }\n\n toggleFormat() {\n const tbl = this.model.get('as_table');\n this.renderContent();\n this.format_wrapper.find('a.table_format').toggle(!tbl);\n this.format_wrapper.find('a.chart_format').toggle(tbl);\n }\n\n hideFormatToggler() {\n $('a.toggle_chart_format').hide();\n }\n\n // Internal: Returns a function which can format and scale values on an axis,\n // ensuring that all returned formatted values are in the same unit.\n createScaler(max_value, unit, opts) {\n opts = opts || {};\n\n return Quantity.isSupported(unit)\n ? Quantity.scaleAndFormatBy(max_value, unit, opts)\n : (value) => Metric.autoscale_value(value, unit, opts.precision, opts.scaledown);\n }\n\n // Internal: Returns a function which will format values for the \"main\" axis\n // of the chart.\n createValueFormatter(opts) {\n opts = opts || {};\n\n const maxValue = (() => {\n if (opts.maxFrom === 'maxValue') {\n return this.model.max_value();\n } else {\n const max = this.model.max_series_value();\n const min = Math.abs(this.model.min_series_value());\n\n return max > min ? max : min;\n }\n })();\n\n return this.createScaler(maxValue, this.model.get('unit'), opts);\n }\n\n // Derived classes can override this\n //\n canRenderAsTable() {\n return true;\n }\n\n /**\n * Renders the data for the chart in a table, instead of as a chart.\n */\n renderAsTable() {\n this.clearContainer();\n\n const Table = this.tableViewFor();\n\n return this.containerNode()\n .removeClass('chart_canvas')\n .addClass('table_canvas')\n .html(new Table(this, this.tableOptions).render());\n }\n\n /**\n * Returns the View to be used to render data as a table.\n */\n tableViewFor() {\n switch (this.tableView) {\n case 'merit_order_excess_table':\n return MeritOrderExcessTableView;\n case 'default':\n return TableView;\n }\n }\n}\n","/* globals $ Backbone */\n\nclass LegendItem extends Backbone.View {\n events = { 'click .click-wrapper': 'onClick' };\n\n onClick = (event) => {\n if (!this.isClickable()) {\n return;\n }\n\n event.preventDefault();\n\n this.$el.toggleClass('active');\n this.options.active = !this.options.active;\n\n this.options.onClick(event, this.options);\n };\n\n isClickable() {\n return this.options.clickable;\n }\n\n render() {\n // This has to be called manually, due to Backbone not picking up the events object (probably\n // need to update Backbone).\n this.delegateEvents(this.events);\n\n this.$el.addClass('legend-item');\n\n this.$el.append(\n $('').append(\n $('').css('background-color', this.options.color),\n $('').html(this.options.label)\n )\n );\n\n if (this.options.width) {\n this.$el.css('width', this.options.width);\n }\n\n if (this.options.isLine) {\n this.$el.addClass('target-line');\n }\n\n if (this.options.clickable) {\n this.$el.addClass('clickable');\n\n if (this.options.active) {\n this.$el.addClass('active');\n }\n }\n\n return this.el;\n }\n}\n\nclass Legend extends Backbone.View {\n constructor(options = {}) {\n super({\n clickable: true,\n columns: 2,\n marginLeft: 0,\n items: [],\n onClickItem: () => {},\n ...options,\n });\n }\n\n render() {\n // This has to be called manually, due to Backbone not picking up the events object (probably\n // need to update Backbone).\n this.delegateEvents(this.events);\n\n if (this.options.marginLeft) {\n this.el.style.marginLeft = `${this.options.marginLeft}px`;\n }\n\n this.el.classList.add('legend');\n\n const width = `${Math.round(100 / this.options.columns)}%`;\n const clickable = this.options.clickable;\n\n for (const series of this.options.items) {\n this.el.append(\n new LegendItem({\n clickable,\n active: !series.get('hidden'),\n color: series.get('color'),\n isLine: series.get('is_target_line'),\n key: series.get('id'),\n label: series.get('label'),\n onClick: this.options.onClickItem,\n series,\n width,\n }).render()\n );\n }\n\n return this.el;\n }\n}\n\nexport default Legend;\n","/* globals App EmptyChartMessage I18n */\n\nimport * as d3 from './d3';\n\nimport Base from './Base';\nimport Legend from './Legend';\nimport tooltips from './utils/tooltips';\n\n// This is mostly an abstract class\n//\n// The derived classes should implement the draw() method for the initial\n// rendering and the refresh() for the later updates.\n// They should also call @initialize_defaults() in their initialize method\n\n/**\n * This base class contains function useful to rendering a D3 chart.\n *\n * TODO This should not inherit from Base. Rather Base should represent a wrappepr view, which sets\n * up the chart or table, renders the header, with this class being specific to the chart itself.\n */\nexport default class extends Base {\n // Default values, derived class might have different values\n margins = {\n top: 20,\n bottom: 20,\n left: 20,\n right: 30,\n };\n\n // height of the legend item\n legend_cell_height = 15;\n\n /**\n * Controls whether series in the legend can be clicked to hide the series in the chart.\n */\n clickableLegend = false;\n\n constructor(...args) {\n super(...args);\n\n this.startYear = App.settings.get('start_year');\n this.endYear = App.settings.get('end_year');\n this.init_margins && this.init_margins();\n this.valueFormatter = (value) => value.toString();\n }\n\n // Update margins to reflect font-size\n init_margins() {\n const fontSize = d3.select('body').style('font-size');\n if (!fontSize || !fontSize.match(/\\d+px/)) {\n return;\n }\n\n const multiplier = Number.parseInt(fontSize, 10) / 13;\n\n if (multiplier === 1) {\n return;\n }\n\n for (let [key, value] of Object.entries(this.margins)) {\n this.margins[key] = value * multiplier;\n }\n\n // Self-destruct.\n this.init_margins = () => {};\n }\n\n /**\n * Looks up a series in the model by key, and returns an attribute.\n *\n * @param {string} serieKey\n * The key identifying the serie to be queried.\n * @param {string} attribute\n * The name of the attribute on the serie to be retrieved.\n */\n serieValue = (serieKey, attribute) => {\n const serie = this.model.series.with_gquery(serieKey);\n\n if (!serie) {\n throw new Error(`No series matching query: ${serieKey}`);\n }\n\n return serie.get(attribute);\n };\n\n render(force_redraw) {\n const firstRender = !this.drawn;\n\n if (this.model.series.find((s) => !s.isReady())) {\n // If query data has not been received, wait to render. This may be because of a prior API\n // request being received while the request for the chart data is still ongoing.\n return;\n }\n\n if (force_redraw || firstRender) {\n this.clearContainer();\n this.containerNode().html(this.html());\n this.draw();\n this.drawn = true;\n }\n\n this.refresh(!firstRender);\n this.displayEmptyMessage();\n tooltips(this.containerSelector());\n }\n\n /**\n * Formats a value using the current valueFormatter.\n *\n * Prefer this over calling `valueFormatter` directly, as the `valueFormatter` may change\n * depending on the values shown in the chart (for example, a chart may initially be shown with\n * values in MJ and then be updated with values where GJ is more appropriate). Using the direct\n * reference to `valueFormatter` may result in a stale formatter.\n *\n * @param {number} value\n * The value to be formatted.\n *\n * @return {string}\n */\n formatValue = (value) => this.valueFormatter(value);\n\n /**\n * Updates the chart with new data.\n *\n * @param {boolean} animate\n * Sets whether to animate changes in the data from the current state to the new state.\n */\n refresh() {\n this.valueFormatter = this.createValueFormatter();\n }\n\n isEmpty() {\n return false;\n }\n\n displayEmptyMessage() {\n EmptyChartMessage.display(this);\n }\n\n html() {\n let type = this.model.get('type');\n\n if (type === 'd3') {\n type = this.model.get('key');\n }\n\n return `
`;\n }\n\n chartContainerId() {\n return `d3_${this.model.get('key')}_${this.model.get('container')}`;\n }\n\n containerSelector() {\n return `#${this.chartContainerId()}`;\n }\n\n d3ContainerNode() {\n return document.querySelector(this.containerSelector());\n }\n\n canRenderAsTable() {\n return false;\n }\n\n canvas() {\n return this.$el.find('.chart_canvas');\n }\n\n availableWidth() {\n return this.canvas().width();\n }\n\n availableHeight() {\n return this.canvas().height();\n }\n\n // Returns a [width, height] array\n dimensions() {\n return [\n this.availableWidth() - (this.margins.left + this.margins.right),\n this.availableHeight() - (this.margins.top + this.margins.bottom),\n ];\n }\n\n // Returns a D3-selected aVG container\n //\n createSVGContainer(width, height, margins, className) {\n const fullWidth = width + margins.left + margins.right;\n const fullHeight = height + margins.top + margins.bottom;\n\n return d3\n .select(this.containerSelector())\n .append('svg:svg')\n .attr('height', height + margins.top + margins.bottom)\n .attr('width', width + margins.left + margins.right)\n .attr('viewBox', `0 0 ${fullWidth} ${fullHeight}`)\n .attr('class', className || '')\n .append('svg:g')\n .attr('transform', `translate(${margins.left}, ${margins.top})`);\n }\n\n /**\n * Triggered when a legend item is clicked.\n */\n legendClick = (event, item) => {\n if (!this.clickableLegend) {\n return;\n }\n\n const series = this.model.series.filter((s) => s.get('label') == item.label);\n\n for (const serie of series) {\n serie.set('hidden', !item.active);\n }\n\n this.refresh();\n };\n\n // Builds a standard legend. Options hash:\n // - series: array of series. The label might be its 'label' attribute or its\n // 'key' attribute, which is translated with I18n.js\n // - columns: number of columns (default: 1)\n // - leftMargin: (default: 10)\n //\n drawLegend({ columns, series }) {\n let reversedSeries = [...series];\n reversedSeries.reverse();\n\n this._legend?.remove();\n\n this._legend = new Legend({\n clickable: this.clickableLegend,\n columns,\n items: reversedSeries,\n marginLeft: this.margins.left,\n onClickItem: this.legendClick,\n });\n\n document.querySelector(this.containerSelector()).append(this._legend.render());\n }\n}\n","/* globals $ */\n\nexport default (selector) => {\n $(`${selector} [data-tooltip-title], ${selector} [data-tooltip-textonly]`).each((i, el) => {\n const content = {\n text() {\n return el.dataset.tooltipText;\n },\n };\n\n if (!el.dataset.tooltipTextonly) {\n content.title = () => el.dataset.tooltipTitle;\n }\n\n $(el).qtip({\n content,\n position: {\n target: 'mouse',\n my: 'bottom center',\n at: 'top center',\n },\n });\n });\n};\n","import type { Stack, SeriesPoint } from 'd3-shape';\n\nimport { stack } from 'd3-shape';\nimport { group, groups } from 'd3-array';\n\n// Data provided by a chart which will be stacked.\ninterface InputData {\n x: number;\n y: number;\n id: string;\n key?: string;\n}\n\n// Data which may first be split into separate groups (defined by the stackKey) and then stacked.\ninterface GroupableInputData extends InputData {\n groupKey: string;\n}\n\n/**\n * toTable converts an array of InputData into TableData. TableData has an x value, representing the\n * x position in the chart, and zero or more keys mapping gquery keys to their values at the\n * corresponding x value.\n */\ninterface TableData {\n x: number;\n key?: string;\n [k: string]: number | string;\n}\n\ntype StackFunction = Stack;\ntype StackResult = ReturnType;\n\n// Extends the D3 SeriesPoint to allow us to assign the series key onto the returned data.\ninterface KeyedSeriesPoint extends SeriesPoint {\n key: string;\n}\n\n/**\n * Receives the data from `stackData` and returns an array containing all the unique id values.\n */\nconst idsFromData = (data: { id: string }[]): string[] =>\n // Targetting ES5 means no [...new Set], and enabling downlevelIteration in TypeScript won't work\n // as IE11 has no Symbol.iterator.\n // eslint-disable-next-line unicorn/prefer-spread\n Array.from(new Set(data.map((d) => d.id)));\n\n// Transform the grouped values into an array of objects, where each object describes the data\n// for each column, without extra maps and arrays around values. g[0] is the x value (year),\n// and g[1] contains the map of each gquery key and value.\n\n/**\n * Takes data grouped by d3.group and produces a simpler \"table\" version. Whereas the value returned\n * by d3.group is a map of x values to gqueries, gquery values are wrapped in arrays and each object\n * lacks the \"x\" value. Removing the array wrapper and adding \"x\" simplifies use of the data in the\n * D3 chart.\n *\n * @param grouped The grouped data from d3.group.\n * @param keys The gquery keys to be included in the table.\n *\n * @example\n * const grouped = someData;\n * // Map {\n * // 2015 => Map { gquery_one => [InputData], gquery_two => [InputData] },\n * // 2050 => Map { gquery_one => [InputData], gquery_two => [InputData] },\n * // }\n *\n * toTable(grouped, ['gquery_one', 'gquery_two'])\n * // [\n * // { x: 2015, gquery_one: 1.0, gquery_two: 2.0 },\n * // { x: 2050, gquery_one: 3.0, gquery_two: 4.0 }\n * // ]\n */\nconst toTable = (grouped: Map>, keys: string[]): TableData[] => {\n // eslint-disable-next-line unicorn/prefer-spread\n return Array.from(grouped.entries()).map((g) => {\n // g[0] is the x value (year) and g[1] contains a map of each gquery key and serie data wrapped\n // in an array.\n const column = { x: g[0] };\n\n for (const serieKey of keys) {\n if (g[1].has(serieKey)) {\n column[serieKey] = g[1].get(serieKey)[0].y;\n } else {\n column[serieKey] = 0;\n }\n }\n\n return column;\n });\n};\n\n/**\n * Receives an array of objects, describing individual values to be shown on a chart, groups them\n * according to their \"x\" value (typically year) and stacks the values.\n *\n * @param data\n * An array of data points; each one an object containing `x`, `y`, and `id`. `x` and `y` are\n * their x and y values respectively, while `id` is a string representing the series name. The\n * same `id` may be used multiple times (typically with a different `x`).\n * @param stackFunc\n * A function used to stack values. This defaults to `d3.stack()`. Customise the stack options by\n * padding a custom function.\n *\n * @example\n * stackData(\n * [{ x: 0, y: 10, id: 'a' }, { x: 0, y: 3, id: 'b' }, { x: 1, y: 5, id: 'a' }],\n * d3.stack.offset(d3.stackOffsetDiverging)\n * );\n */\nconst stackData = (\n data: InputData[],\n stackFunc: StackFunction = stack()\n): StackResult => {\n // Group the data based on the year (\"x\") and then key the values by the gquery key (\"id\").\n //\n // Produces a Map like:\n //\n // Map {\n // 2015 => Map { gquery_one => InputData, gquery_two => InputData },\n // 2050 => Map { gquery_one => InputData, gquery_two => InputData },\n // }\n //\n // ... where `InputData` is data about a series returned by `prepareData`.\n const grouped = group(\n data,\n (d) => d.x,\n (d) => d.id\n );\n\n const keys = idsFromData(data);\n\n // Stack values. This produces an array containing values for each series, in each column.\n const stacked = stackFunc.keys(keys)(toTable(grouped, keys));\n\n // Add some useful inforamtion about the series to each value.\n return stacked.map((d) => {\n d.forEach((v) => ((v as KeyedSeriesPoint).key = d.key));\n return d;\n });\n};\n\n/**\n * Receives an array of objects, describing individual values to be shown on a chart, groups them\n * according to their \"groupKey\" value, and then passes each group separately to `stackData` to be\n * stacked.\n *\n * @param {array} data\n * An array of data points; each one an object containing `x`, `y`, and `id`. `x` and `y` are\n * their x and y values respectively, while `id` is a string representing the series name. The\n * same `id` may be used multiple times (typically with a different `x`).\n * @param {function} stackFunc\n * A function used to stack values. This defaults to `d3.stack()`. Customise the stack options by\n * padding a custom function.\n *\n * @example\n * stackData(\n * [\n * { x: 0, y: 6, id: 'a', groupKey: 'jan' },\n * { x: 0, y: 3, id: 'b', groupKey: 'jan' },\n * { x: 1, y: 5, id: 'a', groupKey: 'feb' }\n * ],\n * d3.stack.offset(d3.stackOffsetDiverging)\n * );\n */\nexport const groupedStack = (\n data: GroupableInputData[],\n stackFunc: StackFunction = stack()\n): StackResult[] => {\n return groups(data, (d) => d.groupKey).map(([, groupData]) => {\n return stackData(groupData, stackFunc);\n });\n};\n\nexport default stackData;\n","/* globals $ _ */\n\nimport * as d3 from './d3';\nimport D3Chart from './D3Chart';\nimport stackData from './utils/stackData';\n\nclass Bezier extends D3Chart {\n tableOptions = {\n sorter() {\n return (series) => series.reverse();\n },\n };\n\n legend_margin = 20;\n\n margins = {\n top: 20,\n bottom: 20,\n left: 0,\n right: 35,\n };\n\n canRenderAsTable() {\n return true;\n }\n\n /**\n * Performs the initial draw of the chart. Creates series, axis, tooltips, etc, with real data\n * being added in the call to refresh.\n *\n * The chart is a stacked area chart. D3 provides some utility methods that calculate the offset\n * for stacked data. It expects data to be given in a specific format and then it will add the\n * calculated attributes in place, ie it will add new attributes (such as y0) to the array/hash\n * we're passing as parameter.\n *\n * Once we have the stacked data, grouped by serie key, we can pass the values to the SVG area\n * method, which creates the SVG attributes required to draw the paths (and add some nice\n * interpolations between the start and end years.).\n */\n draw() {\n [this.width, this.height] = this.dimensions();\n\n // dimensions of the chart body\n this.seriesHeight = this.height - this.legend_margin;\n this.seriesWidth = this.width - 15;\n\n this.svg = this.createSVGContainer(this.width, this.seriesHeight, this.margins);\n\n this.displayLegend();\n\n // This method groups the series by key, creating an array of objects\n // this.nest = d3.nest().key(d => d.id);\n\n // Run the stack method on the nested entries\n const stacked_data = stackData(this.prepareData());\n\n this.x = d3.scaleLinear().range([0, this.seriesWidth]).domain([this.startYear, this.endYear]);\n\n // show years at the corners\n this.svg\n .selectAll('text.year')\n .data([this.startYear, this.endYear])\n .enter()\n .append('svg:text')\n .attr('class', 'year')\n .attr('text-anchor', (d, i) => (i === 0 ? 'start' : 'end'))\n .text((d) => d)\n .attr('x', (d, i) => (i === 0 ? 0 : this.seriesWidth))\n .attr('y', this.seriesHeight + 16);\n\n this.y = d3.scaleLinear().range([this.seriesHeight, 0]).domain([0, 1]);\n\n // This method will return the SVG area attributes. The values it receives\n // should be already stacked\n this.area = d3\n .area()\n .curve(d3.curveBasis)\n .x((d) => this.x(d.data.x))\n .y0((d) => this.y(d[0]))\n .y1((d) => this.y(d[1]));\n\n // draw a nice axis\n this.y_axis = d3.axisRight().scale(this.y).ticks(4).tickSize(-this.seriesWidth, 6);\n\n // there we go\n this.svg\n .selectAll('path.serie')\n .data(stacked_data, (s) => s.key)\n .enter()\n .append('svg:path')\n .attr('class', 'serie')\n .attr('d', (d) => this.area(d))\n .style('fill', (d) => this.serieValue(d.key, 'color'))\n .style('opacity', 0.8)\n .attr('data-tooltip-title', (d) => this.serieValue(d.key, 'label'));\n\n this.svg\n .append('svg:g')\n .attr('class', 'y_axis inner_grid')\n .attr('transform', `translate(${this.seriesWidth}, 0)`)\n .call(this.y_axis);\n }\n\n refresh() {\n super.refresh();\n\n // calculate tallest column\n const tallest = Math.max(_.sum(this.model.values_present()), _.sum(this.model.values_future()));\n\n // update the scales\n this.y.domain([0, tallest]);\n\n // animate the y-axis\n this.y_axis.tickFormat(this.formatValue);\n\n this.svg.selectAll('.y_axis').transition().call(this.y_axis.scale(this.y));\n\n // Make the tick line corresponding with value 0 darker.\n this.svg.selectAll('.y_axis .tick').attr('class', (d) => (d === 0 ? 'tick bold' : 'tick'));\n\n // See above for explanation of this method chain\n const stacked_data = stackData(this.prepareData());\n\n this.displayLegend();\n\n return this.svg\n .selectAll('path.serie')\n .data(stacked_data, (d) => d.key)\n .attr('data-tooltip-text', (d) => {\n const last = d.length - 1;\n\n const present = Math.abs(d[0][1]) - Math.abs(d[0][0]);\n const future = Math.abs(d[last][1]) - Math.abs(d[last][0]);\n\n return `${this.startYear}: ${this.formatValue(present)}
\\\n ${this.endYear}: ${this.formatValue(future)}`;\n })\n .transition()\n .attr('d', (d) => this.area(d));\n }\n\n displayLegend() {\n $(this.containerSelector()).find('.legend').remove();\n\n const series = _.filter(\n this.model.series.models,\n (s) => Math.abs(s.safe_future_value()) + Math.abs(s.safe_present_value()) > 1e-7\n );\n\n return this.drawLegend({\n svg: this.svg,\n series,\n width: this.width,\n vertical_offset: this.seriesHeight + this.legend_margin,\n columns: 2,\n });\n }\n\n // We need to pass the chart series through the stacking function and the SVG area function. To do\n // this let's format the data as an array. An interpolated mid-point is added to generate a\n // S-curve.\n prepareData() {\n let leftStack = 0;\n let midStack = 0;\n let rightStack = 0;\n\n const values = [];\n\n // The mid point should be between the left and side value, which are stacked.\n this.model.non_target_series().forEach((s) => {\n // Calculate the mid point boundaries\n const minValue = Math.min(leftStack + s.present_value(), rightStack + s.future_value());\n const maxValue = Math.max(leftStack + s.present_value(), rightStack + s.future_value());\n\n let midPoint =\n s.safe_future_value() > s.safe_present_value()\n ? s.safe_present_value()\n : s.safe_future_value();\n\n midPoint += midStack;\n\n // This ensures that if the chart shows an overall increasing trend that we do not plot a\n // value which appears to show a decrease in the midYear, and vice-versa.\n midPoint = midPoint < minValue ? minValue : midPoint > maxValue ? maxValue : midPoint;\n\n // The stacking function wants the non-stacked values\n midPoint -= midStack;\n\n midStack += midPoint;\n leftStack += s.safe_present_value();\n rightStack += s.safe_future_value();\n\n const id = s.get('gquery_key');\n const midYear = (this.startYear + this.endYear) / 2;\n\n values.push({ id, x: this.startYear, y: s.safe_present_value() });\n values.push({ id, x: midYear, y: midPoint });\n values.push({ id, x: this.endYear, y: s.safe_future_value() });\n });\n\n return values;\n }\n}\n\nexport default Bezier;\n","import { max, mean } from 'd3-array';\n\ntype DownsampleFunc = (values: number[]) => number;\n\nexport type DownsampleMethodKey = 'max' | 'mean';\nexport type DownsampleOption = DownsampleFunc | DownsampleMethodKey;\n\n// The number of days from the start of the year to the beginning of each month.\nexport const cumulativeDaysPerMonth = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n\nfunction downsampleFunc(name: DownsampleOption): DownsampleFunc {\n if (typeof name === 'function') {\n return name;\n }\n\n return name == 'max' ? max : mean;\n}\n\n/**\n * Given an array of values representing samples of annual data, produces a downsampled version with\n * each new value representing the mean for each day.\n *\n * @param values - Array of values to downsample.\n * @param downsampleMethod - A function used to downsample the values, or the string \"max\" or\n * \"mean\".\n */\nconst downsample = (values: number[], downsampleMethod: DownsampleOption): number[] => {\n const result = [];\n\n for (let day = 0; day < 365; day++) {\n result.push(downsampleFunc(downsampleMethod)(values.slice(day * 24, (day + 1) * 24)));\n }\n\n return result;\n};\n\n/**\n * Given an array of values representing samples of annual data, one for each hour, produces the\n * data for the weekNum.\n *\n * @param values - Array of values.\n * @param weekNum - Number of the week to extract. Jan 1-7: 1, Jan 8-14: 2, etc.\n */\nconst sliceWeek = (values: number[], weekNum: number) => {\n const weekLen = Math.floor(values.length / 365) * 7;\n return values.slice((weekNum - 1) * weekLen, weekNum * weekLen);\n};\n\n/**\n * Given an array of values representing samples of annual data, one for each hour, returns a new\n * array containing all the values for a month.\n *\n * @param values - Array of values.\n * @param monthNum - Number of the month whose data to extract. Zero indexed (1=Jan, 2=Feb, etc).\n */\nconst sliceMonth = (values: number[], monthNum: number) => {\n const dayLength = values.length / 365;\n\n const startDay = cumulativeDaysPerMonth[monthNum - 1];\n const endDay = cumulativeDaysPerMonth[monthNum] || 365;\n\n return values.slice(startDay * dayLength, endDay * dayLength);\n};\n\nexport interface SampleCurveOptions {\n weekNum?: number;\n monthNum?: number;\n downsampleMethod?: DownsampleOption;\n}\n\n/**\n * Slices values according to the given week or month number.\n */\nexport const sliceValues = (\n values: number[],\n { weekNum, monthNum }: SampleCurveOptions\n): number[] => {\n if (weekNum != undefined) {\n return sliceWeek(values, weekNum);\n }\n\n if (monthNum != undefined) {\n return sliceMonth(values, monthNum);\n }\n\n throw new Error('Cannot slice curve values without a weekNum or monthNum');\n};\n\n/**\n * A default transform action which receives the values and options, and returns the values\n * transformed according to the options.\n */\nexport default (values: number[], opts: SampleCurveOptions): number[] => {\n if (values.length === 0) {\n return [];\n }\n\n if (opts.weekNum == undefined && opts.monthNum == undefined) {\n return downsample(values, opts.downsampleMethod);\n }\n\n return sliceValues(values, opts);\n};\n","import type { DownsampleMethodKey, SampleCurveOptions } from './sampleCurves';\nimport { cumulativeDaysPerMonth } from './sampleCurves';\n\nconst epoch = new Date(Date.UTC(1970, 0, 1));\n\nconst secondsPerHour = 60 * 60;\nconst msPerHour = secondsPerHour * 1000;\nconst msPerDay = msPerHour * 24;\nconst msPerWeek = msPerDay * 7;\n\n/**\n * Builds an HTMLOptionElement to be displayed in the select.\n *\n * @param period The period represented by the option. \"all\" shows all data, \"month\" and \"week\" will\n * show data for a selected month or week.\n * @param text Text content for the option.\n * @param config An optional num (required if period is \"month\" or \"week\"), and key to be used to\n * set the option value.\n */\nconst buildOption = (\n period: 'all' | 'month' | 'week',\n text: string,\n { num, key }: { num?: number; key?: string }\n) => {\n const option = document.createElement('option');\n\n option.value = key ? key : `${period},${num}`;\n option.textContent = text;\n\n return option;\n};\n\n/**\n * Given a week number, returns the range of dates contained in the week.\n */\nconst weekRange = (weekNum: number): [Date, Date] => {\n const msOffset = msPerWeek * (weekNum - 1);\n const start = new Date(epoch.getDate() + msOffset);\n\n // Remove an hour from the end of the range to as the range should be 00:00\n // to 23:00, not 00:00 to 00:00.\n const end = new Date(start.getDate() + msOffset + msPerWeek - msPerHour);\n\n return [start, end];\n};\n\n/**\n * Builds an HTMLOptionElement representing a single week, identified by a number (first week is 0),\n * second week is 1, etc.\n */\nconst buildWeekOption = (weekNum: number) => {\n return buildOption('week', weeklyOptionText(...weekRange(weekNum)), { num: weekNum });\n};\n\nconst weeklyOptionText = (start: Date, end: Date) => {\n return I18n.strftime(start, '%-d %b') + ' - ' + I18n.strftime(end, '%-d %b');\n};\n\n/**\n * Given a month number, returns the range of dates contained in the week.\n */\nconst monthRange = (monthNum: number): [Date, Date] => {\n const startDay = cumulativeDaysPerMonth[monthNum - 1];\n const endDay = cumulativeDaysPerMonth[monthNum] || 365;\n\n const start = new Date(epoch.getDate() + msPerDay * startDay);\n\n // Remove an hour from the end of the range to as the range should be 00:00\n // to 23:00, not 00:00 to 00:00.\n const end = new Date(epoch.getDate() + msPerDay * endDay - msPerHour);\n\n return [start, end];\n};\n\n/**\n * Builds an HTMLOptionElement representing a single month, identified by a number (January = 0,\n * February = 1, etc).\n */\nconst buildMonthOption = (monthNum: number) => {\n return buildOption('month', monthlyOptionText(monthRange(monthNum)[0]), { num: monthNum });\n};\n\nconst monthlyOptionText = (start: Date) => {\n return I18n.strftime(start, '%B');\n};\n\n/**\n * Builds ah HTMLOptionElement for showing data from whole year.\n */\nconst buildYearlyOption = (downsampleMethod: string) => {\n const textNamespace = 'output_elements.common.';\n\n const yearText = I18n.t(textNamespace + 'whole_year_daily_' + downsampleMethod, {\n defaultValue: I18n.t(textNamespace + 'whole_year'),\n });\n\n return buildOption('all', yearText, { key: 'all' });\n};\n\n/**\n * Builds an optgroup which contains HTMLOptions.\n */\nconst buildOptGroup = (label: string, options: HTMLOptionElement[]): HTMLOptGroupElement => {\n const optgroup = document.createElement('optgroup');\n optgroup.label = label;\n\n for (const option of options) {\n optgroup.append(option);\n }\n\n return optgroup;\n};\n\n/**\n * Creates the list of HTMLOptionElement which are shown in the select.\n */\nconst buildOptions = (downsampleMethod: string) => {\n const options: (HTMLOptionElement | HTMLOptGroupElement)[] = [\n buildYearlyOption(downsampleMethod),\n ];\n\n const monthOptions = [];\n const weekOptions = [];\n\n for (let i = 1; i <= 12; i++) {\n monthOptions.push(buildMonthOption(i));\n }\n\n for (let i = 1; i <= 52; i++) {\n weekOptions.push(buildWeekOption(i));\n }\n\n options.push(buildOptGroup(I18n.t('output_elements.common.months'), monthOptions));\n options.push(buildOptGroup(I18n.t('output_elements.common.weeks'), weekOptions));\n\n return options;\n};\n\n/**\n * Builds an HTMLSelectElement which holds the various time options which may be selected by the\n * user.\n */\nconst buildSelectElement = (downsampleMethod: string) => {\n const select = document.createElement('select');\n\n select.classList.add('d3-chart-select');\n select.classList.add('d3-chart-date-select');\n select.append(...buildOptions(downsampleMethod));\n select.value = (App.settings.get('merit_charts_date') || 'all') as string;\n\n return select;\n};\n\n/**\n * Parses a DateSelect value, returning the selected date period (\"all\", \"month\", \"week\") and the\n * month or week number.\n */\nconst parseSelectedDate = (selectedValue: string): [Date, Date] => {\n const [period, numStr] = selectedValue.split(',');\n\n if (period === 'all') {\n return [epoch, new Date(epoch.getDate() + msPerDay * 365 - msPerHour)];\n }\n\n if (typeof numStr === undefined) {\n throw new TypeError(`Unparseable selected date: ${selectedValue}`);\n }\n\n const num = Number.parseInt(numStr, 10);\n\n if (period === 'week') {\n return weekRange(num);\n } else if (period === 'month') {\n return monthRange(num);\n } else {\n throw new Error(`Unparseable selected date: ${selectedValue}`);\n }\n};\n\n/**\n * Builds and manages a ').attr(\n 'placeholder',\n `${I18n.t('chart_picker.search_for_a_chart')}...`\n )[0];\n\n this.el.append($('')[0], this.inputEl);\n\n return this.el;\n }\n\n onInput(event) {\n this.options.onInput?.(event.target.value.trim());\n }\n\n onKeyUp(event) {\n if (event.key == 'Escape') {\n event.preventDefault();\n this.options.onEscape?.();\n }\n }\n\n reset() {\n this.inputEl.value = '';\n }\n\n focus() {\n this.inputEl.focus();\n }\n}\n\n/**\n * Shown when the search text provided by the user has no matching charts.\n */\nclass NoMatchesView extends Backbone.View {\n get events() {\n return { 'click button': 'onReset' };\n }\n\n get className() {\n return 'no-matches';\n }\n\n render() {\n this.$el.append(\n $('').append(\n I18n.t('chart_picker.no_matches'),\n ' – ',\n $('