@data-forge-plot/apex
Advanced tools
+26
-2
@@ -272,3 +272,5 @@ (function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap | ||
| max: axisConfig.max, | ||
| labels: {}, | ||
| labels: { | ||
| style: {}, | ||
| }, | ||
| title: { | ||
@@ -307,2 +309,12 @@ style: {}, | ||
| } | ||
| if (axisConfig.ticks) { | ||
| if (axisConfig.ticks.font) { | ||
| if (axisConfig.ticks.font.size) { | ||
| yAxisConfig.labels.style.fontSize = axisConfig.ticks.font.size; | ||
| } | ||
| if (axisConfig.ticks.font.family) { | ||
| yAxisConfig.labels.style.fontFamily = axisConfig.ticks.font.family; | ||
| } | ||
| } | ||
| } | ||
| show = false; | ||
@@ -338,6 +350,8 @@ return yAxisConfig; | ||
| type: xaxisType, | ||
| labels: {}, | ||
| title: { | ||
| style: {}, | ||
| }, | ||
| labels: { | ||
| style: {}, | ||
| }, | ||
| }; | ||
@@ -372,2 +386,12 @@ var xAxisFormatString = inputChartDef.plotConfig.x && inputChartDef.plotConfig.x.format; | ||
| } | ||
| if (inputChartDef.plotConfig.x.ticks) { | ||
| if (inputChartDef.plotConfig.x.ticks.font) { | ||
| if (inputChartDef.plotConfig.x.ticks.font.size) { | ||
| xaxis.labels.style.fontSize = inputChartDef.plotConfig.x.ticks.font.size; | ||
| } | ||
| if (inputChartDef.plotConfig.x.ticks.font.family) { | ||
| xaxis.labels.style.fontFamily = inputChartDef.plotConfig.x.ticks.font.family; | ||
| } | ||
| } | ||
| } | ||
| } | ||
@@ -374,0 +398,0 @@ var yAxisSeries = extractSeries(inputChartDef.data, inputChartDef.axisMap.y, inputChartDef.axisMap.x) |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/index.ts","webpack:///./src/lib/format-chart-def.ts","webpack:///external \"apexcharts\"","webpack:///external \"dayjs\"","webpack:///external \"numeral\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import { IChartDef } from \"@data-forge-plot/chart-def\";\r\nimport { formatChartDef } from \"./lib/format-chart-def\";\r\nexport { formatChartDef } from \"./lib/format-chart-def\";\r\nlet ApexCharts = require(\"apexcharts\");\r\nif (ApexCharts.default !== undefined) {\r\n ApexCharts = ApexCharts.default; // Bit of a hack here. It seems to be the only to get this work as a template and as a module.\r\n}\r\n\r\n//\r\n// Interface to control and configure a mounted chart.\r\n//\r\nexport interface IChart {\r\n\r\n //\r\n // Unmount the chart.\r\n //\r\n unmount(): void;\r\n\r\n //\r\n // Size the chart to fit its container.\r\n //\r\n sizeToFit(): void;\r\n}\r\n\r\n//\r\n// Wrapper for an ApexCharts chart.\r\n//\r\nclass ApexChart implements IChart {\r\n\r\n //\r\n // The ApexCharts chart object.\r\n //\r\n private chart?: ApexCharts;\r\n\r\n constructor(chart: ApexCharts) {\r\n this.chart = chart;\r\n }\r\n\r\n //\r\n // Unmount the chart.\r\n //\r\n public unmount(): void {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n this.chart = undefined;\r\n }\r\n }\r\n\r\n //\r\n // Size the chart to fit its container.\r\n //\r\n public sizeToFit(): void {\r\n if (this.chart) {\r\n //todo: this.chart.resize();\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Options to control how the chart is mounted.\r\n */\r\nexport interface IMountOptions {\r\n /**\r\n * Set to true to make the chart static.\r\n * The chart will have interactive features and animations disabled.\r\n */\r\n makeStatic?: boolean;\r\n\r\n /**\r\n * Debug log the chart definition after formatting.\r\n */\r\n showChartDef?: boolean;\r\n}\r\n\r\n//\r\n// Mount the chart on the DOM element.\r\n//\r\nexport async function mountChart(chartDef: IChartDef, domElement: HTMLElement, chartOptions?: IMountOptions): Promise<IChart> {\r\n const apexChartDef = formatChartDef(chartDef);\r\n if (!apexChartDef.chart) {\r\n apexChartDef.chart = {};\r\n }\r\n\r\n if (!apexChartDef.chart!.animations) {\r\n apexChartDef.chart!.animations = {};\r\n }\r\n\r\n if (!apexChartDef.tooltip) {\r\n apexChartDef.tooltip = {};\r\n }\r\n\r\n if (!apexChartDef.chart!.zoom) {\r\n apexChartDef.chart!.zoom = {};\r\n }\r\n\r\n if (!apexChartDef.chart!.toolbar) {\r\n apexChartDef.chart!.toolbar = {};\r\n }\r\n \r\n if (chartOptions && chartOptions.makeStatic) {\r\n apexChartDef.chart!.animations!.enabled = false;\r\n apexChartDef.tooltip!.enabled = false;\r\n apexChartDef.chart!.zoom!.enabled = false;\r\n apexChartDef.chart!.toolbar!.show = false;\r\n }\r\n else {\r\n apexChartDef.chart!.animations!.enabled = true;\r\n apexChartDef.tooltip!.enabled = true;\r\n apexChartDef.chart!.zoom!.enabled = true;\r\n apexChartDef.chart!.toolbar!.show = true;\r\n }\r\n\r\n if (chartOptions && chartOptions.showChartDef) {\r\n console.log(\"Formatted chart definition:\");\r\n console.log(JSON.stringify(apexChartDef, null, 4));\r\n }\r\n\r\n const apexChart = new ApexCharts(domElement, apexChartDef);\r\n await apexChart.render();\r\n return new ApexChart(apexChart);\r\n}","import { IChartDef, IAxisConfig, IYAxisConfig, ChartType, IAxisMap, IAxisSeriesConfig, IYAxisSeriesConfig } from \"@data-forge-plot/chart-def\";\r\nimport { ApexOptions } from \"apexcharts\";\r\nimport { ISerializedDataFrame } from \"@data-forge/serialization\";\r\nimport * as dayjs from \"dayjs\";\r\nimport * as numeral from \"numeral\";\r\n\r\n//\r\n// Pluck a single named series from chart data.\r\n//\r\nfunction pluckValues(columnName: string, values: any[]) {\r\n return values.map(row => row[columnName]);\r\n}\r\n\r\n//\r\n// Build a series for Apex cahrts.\r\n//\r\nfunction buildApexSeries(columnName: string, values: any[], indexValues: any[]) {\r\n return pluckValues(columnName, values)\r\n .map((yValue, index) => ({ x: indexValues[index], y: yValue }));\r\n}\r\n\r\n//\r\n// Extract series from the chart definition's data.\r\n//\r\nfunction extractSeries(data: ISerializedDataFrame, axises: IYAxisSeriesConfig[], xAxis?: IAxisSeriesConfig): ApexAxisChartSeries {\r\n return axises.map(seriesConfig => {\r\n const columnName = seriesConfig.series;\r\n const xAxisColumnName = seriesConfig.x && seriesConfig.x.series || xAxis && xAxis.series;\r\n const xAxisValues = xAxisColumnName ? pluckValues(xAxisColumnName, data.values) : data.index.values;\r\n return {\r\n name: columnName, \r\n data: buildApexSeries(columnName, data.values, xAxisValues),\r\n };\r\n });\r\n}\r\n\r\n//\r\n// Get the configuration Y axis for apex.\r\n//\r\nfunction extractYAxisConfiguration(seriesConfigs: IYAxisSeriesConfig[], axisConfig: IYAxisConfig, opposite: boolean, data: ISerializedDataFrame): ApexYAxis[] {\r\n let show: boolean = true;\r\n return seriesConfigs.map(seriesConfig => { \r\n const yAxisConfig: ApexYAxis = { \r\n opposite, \r\n show,\r\n min: axisConfig.min,\r\n max: axisConfig.max,\r\n labels: {},\r\n title: { \r\n style: {},\r\n },\r\n };\r\n\r\n const formatString = axisConfig.format;\r\n const columnName = seriesConfig.series;\r\n const dataType = data.columns[columnName];\r\n if (formatString) {\r\n if (dataType === \"date\") {\r\n yAxisConfig.labels!.formatter = value => dayjs(value).format(formatString);\r\n }\r\n else if (dataType === \"number\") {\r\n yAxisConfig.labels!.formatter = value => numeral(value).format(formatString);\r\n }\r\n }\r\n else {\r\n if (dataType === \"number\") {\r\n yAxisConfig.labels!.formatter = value => numeral(value).format(\"0.00\"); // Default to formatting with two decimal places for numeric data with no format string.\r\n }\r\n }\r\n\r\n if (axisConfig.label) {\r\n if (axisConfig.label.text) {\r\n yAxisConfig.title!.text = axisConfig.label.text;\r\n }\r\n\r\n if (axisConfig.label.font) {\r\n if (axisConfig.label.font.size) {\r\n yAxisConfig.title!.style!.fontSize = axisConfig.label.font.size;\r\n }\r\n\r\n if (axisConfig.label.font.family) {\r\n yAxisConfig.title!.style!.fontFamily = axisConfig.label.font.family;\r\n }\r\n }\r\n }\r\n \r\n show = false;\r\n return yAxisConfig;\r\n });\r\n}\r\n\r\n//\r\n// Determine the Apex type to use for the x axis.\r\n//\r\nfunction determineXAxisType(inputChartDef: IChartDef): string {\r\n const dataType = inputChartDef.axisMap.x \r\n && inputChartDef.axisMap.x.series \r\n && inputChartDef.data.columns[inputChartDef.axisMap.x.series] \r\n || inputChartDef.data.index.type;\r\n if (dataType === \"date\") {\r\n return \"datetime\";\r\n }\r\n else if (dataType === \"number\") {\r\n return \"numeric\";\r\n }\r\n else {\r\n return \"category\";\r\n }\r\n}\r\n\r\n/**\r\n * Convert a data-forge-plot chart definition to an ApexCharts chart definition.\r\n */\r\nexport function formatChartDef(inputChartDef: IChartDef): ApexOptions {\r\n\r\n //todo: use the serialization library to deserialize the chart def here!\r\n\r\n const xaxisType = determineXAxisType(inputChartDef);\r\n const xaxis: ApexXAxis = {\r\n type: xaxisType as any, // The type in Apex is wrong. \"categories\" instead of \"category\".\r\n labels: {},\r\n title: {\r\n style: {\r\n\r\n },\r\n },\r\n };\r\n\r\n const xAxisFormatString = inputChartDef.plotConfig.x && inputChartDef.plotConfig.x.format;\r\n if (xAxisFormatString) {\r\n if (xaxisType === \"datetime\") {\r\n xaxis.labels!.formatter = value => dayjs(value).format(xAxisFormatString);\r\n }\r\n else if (xaxisType === \"numeric\") {\r\n xaxis.labels!.formatter = value => numeral(value).format(xAxisFormatString);\r\n }\r\n }\r\n else {\r\n if (xaxisType === \"numeric\") {\r\n xaxis.labels!.formatter = value => numeral(value).format(\"0.00\"); // Default to formatting with two decimal places for numeric data with no format string.\r\n }\r\n }\r\n\r\n if (inputChartDef.plotConfig.x) {\r\n if (inputChartDef.plotConfig.x.label) {\r\n if (inputChartDef.plotConfig.x.label.text) {\r\n xaxis.title!.text = inputChartDef.plotConfig.x.label.text;\r\n }\r\n\r\n if (inputChartDef.plotConfig.x.label.font) {\r\n if (inputChartDef.plotConfig.x.label.font.size) {\r\n xaxis.title!.style!.fontSize = inputChartDef.plotConfig.x.label.font.size;\r\n }\r\n \r\n if (inputChartDef.plotConfig.x.label.font.family) {\r\n (xaxis.title!.style! as any).fontFamily = inputChartDef.plotConfig.x.label.font.family; //TODO: Typecast to any due to missing TS types in ApexCharts.\r\n }\r\n }\r\n }\r\n }\r\n\r\n const yAxisSeries = extractSeries(inputChartDef.data, inputChartDef.axisMap.y, inputChartDef.axisMap.x)\r\n .concat(extractSeries(inputChartDef.data, inputChartDef.axisMap.y2, inputChartDef.axisMap.x));\r\n\r\n const yAxisConfig = extractYAxisConfiguration(inputChartDef.axisMap.y, inputChartDef.plotConfig.y || {}, false, inputChartDef.data)\r\n .concat(extractYAxisConfiguration(inputChartDef.axisMap.y2, inputChartDef.plotConfig.y2 || {}, true, inputChartDef.data));\r\n\r\n const dataLabels: ApexDataLabels = {\r\n enabled: false,\r\n style: {},\r\n };\r\n\r\n if (inputChartDef.plotConfig && inputChartDef.plotConfig.dataLabels) {\r\n dataLabels.enabled = true;\r\n\r\n if (inputChartDef.plotConfig.dataLabels.font) {\r\n if (inputChartDef.plotConfig.dataLabels.font.size) {\r\n dataLabels.style!.fontSize = inputChartDef.plotConfig.dataLabels.font.size;\r\n }\r\n\r\n if (inputChartDef.plotConfig.dataLabels.font.family) {\r\n dataLabels.style!.fontFamily = inputChartDef.plotConfig.dataLabels.font.family;\r\n }\r\n }\r\n }\r\n\r\n const legend: ApexLegend = {\r\n show: inputChartDef.plotConfig.legend && inputChartDef.plotConfig.legend.show !== undefined\r\n ? inputChartDef.plotConfig.legend.show\r\n : true,\r\n };\r\n\r\n if (inputChartDef.plotConfig && inputChartDef.plotConfig.legend) {\r\n if (inputChartDef.plotConfig.legend.font) {\r\n if (inputChartDef.plotConfig.legend.font.size) {\r\n legend.fontSize = inputChartDef.plotConfig.legend.font.size;\r\n }\r\n\r\n if (inputChartDef.plotConfig.legend.font.family) {\r\n legend.fontFamily = inputChartDef.plotConfig.legend.font.family;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n chart: {\r\n type: inputChartDef.plotConfig.chartType,\r\n width: inputChartDef.plotConfig.width,\r\n height: inputChartDef.plotConfig.height,\r\n },\r\n stroke: {\r\n width: 1,\r\n },\r\n series: yAxisSeries,\r\n yaxis: yAxisConfig,\r\n xaxis,\r\n dataLabels,\r\n legend,\r\n };\r\n}\r\n","module.exports = require(\"apexcharts\");","module.exports = require(\"dayjs\");","module.exports = require(\"numeral\");"],"sourceRoot":""} | ||
| {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/index.ts","webpack:///./src/lib/format-chart-def.ts","webpack:///external \"apexcharts\"","webpack:///external \"dayjs\"","webpack:///external \"numeral\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import { IChartDef } from \"@data-forge-plot/chart-def\";\r\nimport { formatChartDef } from \"./lib/format-chart-def\";\r\nexport { formatChartDef } from \"./lib/format-chart-def\";\r\nlet ApexCharts = require(\"apexcharts\");\r\nif (ApexCharts.default !== undefined) {\r\n ApexCharts = ApexCharts.default; // Bit of a hack here. It seems to be the only to get this work as a template and as a module.\r\n}\r\n\r\n//\r\n// Interface to control and configure a mounted chart.\r\n//\r\nexport interface IChart {\r\n\r\n //\r\n // Unmount the chart.\r\n //\r\n unmount(): void;\r\n\r\n //\r\n // Size the chart to fit its container.\r\n //\r\n sizeToFit(): void;\r\n}\r\n\r\n//\r\n// Wrapper for an ApexCharts chart.\r\n//\r\nclass ApexChart implements IChart {\r\n\r\n //\r\n // The ApexCharts chart object.\r\n //\r\n private chart?: ApexCharts;\r\n\r\n constructor(chart: ApexCharts) {\r\n this.chart = chart;\r\n }\r\n\r\n //\r\n // Unmount the chart.\r\n //\r\n public unmount(): void {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n this.chart = undefined;\r\n }\r\n }\r\n\r\n //\r\n // Size the chart to fit its container.\r\n //\r\n public sizeToFit(): void {\r\n if (this.chart) {\r\n //todo: this.chart.resize();\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Options to control how the chart is mounted.\r\n */\r\nexport interface IMountOptions {\r\n /**\r\n * Set to true to make the chart static.\r\n * The chart will have interactive features and animations disabled.\r\n */\r\n makeStatic?: boolean;\r\n\r\n /**\r\n * Debug log the chart definition after formatting.\r\n */\r\n showChartDef?: boolean;\r\n}\r\n\r\n//\r\n// Mount the chart on the DOM element.\r\n//\r\nexport async function mountChart(chartDef: IChartDef, domElement: HTMLElement, chartOptions?: IMountOptions): Promise<IChart> {\r\n const apexChartDef = formatChartDef(chartDef);\r\n if (!apexChartDef.chart) {\r\n apexChartDef.chart = {};\r\n }\r\n\r\n if (!apexChartDef.chart!.animations) {\r\n apexChartDef.chart!.animations = {};\r\n }\r\n\r\n if (!apexChartDef.tooltip) {\r\n apexChartDef.tooltip = {};\r\n }\r\n\r\n if (!apexChartDef.chart!.zoom) {\r\n apexChartDef.chart!.zoom = {};\r\n }\r\n\r\n if (!apexChartDef.chart!.toolbar) {\r\n apexChartDef.chart!.toolbar = {};\r\n }\r\n \r\n if (chartOptions && chartOptions.makeStatic) {\r\n apexChartDef.chart!.animations!.enabled = false;\r\n apexChartDef.tooltip!.enabled = false;\r\n apexChartDef.chart!.zoom!.enabled = false;\r\n apexChartDef.chart!.toolbar!.show = false;\r\n }\r\n else {\r\n apexChartDef.chart!.animations!.enabled = true;\r\n apexChartDef.tooltip!.enabled = true;\r\n apexChartDef.chart!.zoom!.enabled = true;\r\n apexChartDef.chart!.toolbar!.show = true;\r\n }\r\n\r\n if (chartOptions && chartOptions.showChartDef) {\r\n console.log(\"Formatted chart definition:\");\r\n console.log(JSON.stringify(apexChartDef, null, 4));\r\n }\r\n\r\n const apexChart = new ApexCharts(domElement, apexChartDef);\r\n await apexChart.render();\r\n return new ApexChart(apexChart);\r\n}","import { IChartDef, IAxisConfig, IYAxisConfig, ChartType, IAxisMap, IAxisSeriesConfig, IYAxisSeriesConfig } from \"@data-forge-plot/chart-def\";\r\nimport { ApexOptions } from \"apexcharts\";\r\nimport { ISerializedDataFrame } from \"@data-forge/serialization\";\r\nimport * as dayjs from \"dayjs\";\r\nimport * as numeral from \"numeral\";\r\n\r\n//\r\n// Pluck a single named series from chart data.\r\n//\r\nfunction pluckValues(columnName: string, values: any[]) {\r\n return values.map(row => row[columnName]);\r\n}\r\n\r\n//\r\n// Build a series for Apex cahrts.\r\n//\r\nfunction buildApexSeries(columnName: string, values: any[], indexValues: any[]) {\r\n return pluckValues(columnName, values)\r\n .map((yValue, index) => ({ x: indexValues[index], y: yValue }));\r\n}\r\n\r\n//\r\n// Extract series from the chart definition's data.\r\n//\r\nfunction extractSeries(data: ISerializedDataFrame, axises: IYAxisSeriesConfig[], xAxis?: IAxisSeriesConfig): ApexAxisChartSeries {\r\n return axises.map(seriesConfig => {\r\n const columnName = seriesConfig.series;\r\n const xAxisColumnName = seriesConfig.x && seriesConfig.x.series || xAxis && xAxis.series;\r\n const xAxisValues = xAxisColumnName ? pluckValues(xAxisColumnName, data.values) : data.index.values;\r\n return {\r\n name: columnName, \r\n data: buildApexSeries(columnName, data.values, xAxisValues),\r\n };\r\n });\r\n}\r\n\r\n//\r\n// Get the configuration Y axis for apex.\r\n//\r\nfunction extractYAxisConfiguration(seriesConfigs: IYAxisSeriesConfig[], axisConfig: IYAxisConfig, opposite: boolean, data: ISerializedDataFrame): ApexYAxis[] {\r\n let show: boolean = true;\r\n return seriesConfigs.map(seriesConfig => { \r\n const yAxisConfig: ApexYAxis = { \r\n opposite, \r\n show,\r\n min: axisConfig.min,\r\n max: axisConfig.max,\r\n labels: {\r\n style: {},\r\n },\r\n title: { \r\n style: {},\r\n },\r\n };\r\n\r\n const formatString = axisConfig.format;\r\n const columnName = seriesConfig.series;\r\n const dataType = data.columns[columnName];\r\n if (formatString) {\r\n if (dataType === \"date\") {\r\n yAxisConfig.labels!.formatter = value => dayjs(value).format(formatString);\r\n }\r\n else if (dataType === \"number\") {\r\n yAxisConfig.labels!.formatter = value => numeral(value).format(formatString);\r\n }\r\n }\r\n else {\r\n if (dataType === \"number\") {\r\n yAxisConfig.labels!.formatter = value => numeral(value).format(\"0.00\"); // Default to formatting with two decimal places for numeric data with no format string.\r\n }\r\n }\r\n\r\n if (axisConfig.label) {\r\n if (axisConfig.label.text) {\r\n yAxisConfig.title!.text = axisConfig.label.text;\r\n }\r\n\r\n if (axisConfig.label.font) {\r\n if (axisConfig.label.font.size) {\r\n yAxisConfig.title!.style!.fontSize = axisConfig.label.font.size;\r\n }\r\n\r\n if (axisConfig.label.font.family) {\r\n yAxisConfig.title!.style!.fontFamily = axisConfig.label.font.family;\r\n }\r\n }\r\n }\r\n\r\n if (axisConfig.ticks) {\r\n if (axisConfig.ticks.font) {\r\n if (axisConfig.ticks.font.size) {\r\n yAxisConfig.labels!.style!.fontSize = axisConfig.ticks.font.size;\r\n }\r\n\r\n if (axisConfig.ticks.font.family) {\r\n yAxisConfig.labels!.style!.fontFamily = axisConfig.ticks.font.family;\r\n }\r\n }\r\n }\r\n \r\n show = false;\r\n return yAxisConfig;\r\n });\r\n}\r\n\r\n//\r\n// Determine the Apex type to use for the x axis.\r\n//\r\nfunction determineXAxisType(inputChartDef: IChartDef): string {\r\n const dataType = inputChartDef.axisMap.x \r\n && inputChartDef.axisMap.x.series \r\n && inputChartDef.data.columns[inputChartDef.axisMap.x.series] \r\n || inputChartDef.data.index.type;\r\n if (dataType === \"date\") {\r\n return \"datetime\";\r\n }\r\n else if (dataType === \"number\") {\r\n return \"numeric\";\r\n }\r\n else {\r\n return \"category\";\r\n }\r\n}\r\n\r\n/**\r\n * Convert a data-forge-plot chart definition to an ApexCharts chart definition.\r\n */\r\nexport function formatChartDef(inputChartDef: IChartDef): ApexOptions {\r\n\r\n //todo: use the serialization library to deserialize the chart def here!\r\n\r\n const xaxisType = determineXAxisType(inputChartDef);\r\n const xaxis: ApexXAxis = {\r\n type: xaxisType as any, // The type in Apex is wrong. \"categories\" instead of \"category\".\r\n title: {\r\n style: {\r\n\r\n },\r\n },\r\n labels: {\r\n style: {\r\n\r\n },\r\n },\r\n };\r\n\r\n const xAxisFormatString = inputChartDef.plotConfig.x && inputChartDef.plotConfig.x.format;\r\n if (xAxisFormatString) {\r\n if (xaxisType === \"datetime\") {\r\n xaxis.labels!.formatter = value => dayjs(value).format(xAxisFormatString);\r\n }\r\n else if (xaxisType === \"numeric\") {\r\n xaxis.labels!.formatter = value => numeral(value).format(xAxisFormatString);\r\n }\r\n }\r\n else {\r\n if (xaxisType === \"numeric\") {\r\n xaxis.labels!.formatter = value => numeral(value).format(\"0.00\"); // Default to formatting with two decimal places for numeric data with no format string.\r\n }\r\n }\r\n\r\n if (inputChartDef.plotConfig.x) {\r\n if (inputChartDef.plotConfig.x.label) {\r\n if (inputChartDef.plotConfig.x.label.text) {\r\n xaxis.title!.text = inputChartDef.plotConfig.x.label.text;\r\n }\r\n\r\n if (inputChartDef.plotConfig.x.label.font) {\r\n if (inputChartDef.plotConfig.x.label.font.size) {\r\n xaxis.title!.style!.fontSize = inputChartDef.plotConfig.x.label.font.size;\r\n }\r\n \r\n if (inputChartDef.plotConfig.x.label.font.family) {\r\n (xaxis.title!.style! as any).fontFamily = inputChartDef.plotConfig.x.label.font.family; //TODO: Typecast to any due to missing TS types in ApexCharts.\r\n }\r\n }\r\n }\r\n\r\n if (inputChartDef.plotConfig.x.ticks) {\r\n if (inputChartDef.plotConfig.x.ticks.font) {\r\n if (inputChartDef.plotConfig.x.ticks.font.size) {\r\n xaxis.labels!.style!.fontSize = inputChartDef.plotConfig.x.ticks.font.size;\r\n }\r\n \r\n if (inputChartDef.plotConfig.x.ticks.font.family) {\r\n xaxis.labels!.style!.fontFamily = inputChartDef.plotConfig.x.ticks.font.family;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const yAxisSeries = extractSeries(inputChartDef.data, inputChartDef.axisMap.y, inputChartDef.axisMap.x)\r\n .concat(extractSeries(inputChartDef.data, inputChartDef.axisMap.y2, inputChartDef.axisMap.x));\r\n\r\n const yAxisConfig = extractYAxisConfiguration(inputChartDef.axisMap.y, inputChartDef.plotConfig.y || {}, false, inputChartDef.data)\r\n .concat(extractYAxisConfiguration(inputChartDef.axisMap.y2, inputChartDef.plotConfig.y2 || {}, true, inputChartDef.data));\r\n\r\n const dataLabels: ApexDataLabels = {\r\n enabled: false,\r\n style: {},\r\n };\r\n\r\n if (inputChartDef.plotConfig && inputChartDef.plotConfig.dataLabels) {\r\n dataLabels.enabled = true;\r\n\r\n if (inputChartDef.plotConfig.dataLabels.font) {\r\n if (inputChartDef.plotConfig.dataLabels.font.size) {\r\n dataLabels.style!.fontSize = inputChartDef.plotConfig.dataLabels.font.size;\r\n }\r\n\r\n if (inputChartDef.plotConfig.dataLabels.font.family) {\r\n dataLabels.style!.fontFamily = inputChartDef.plotConfig.dataLabels.font.family;\r\n }\r\n }\r\n }\r\n\r\n const legend: ApexLegend = {\r\n show: inputChartDef.plotConfig.legend && inputChartDef.plotConfig.legend.show !== undefined\r\n ? inputChartDef.plotConfig.legend.show\r\n : true,\r\n };\r\n\r\n if (inputChartDef.plotConfig && inputChartDef.plotConfig.legend) {\r\n if (inputChartDef.plotConfig.legend.font) {\r\n if (inputChartDef.plotConfig.legend.font.size) {\r\n legend.fontSize = inputChartDef.plotConfig.legend.font.size;\r\n }\r\n\r\n if (inputChartDef.plotConfig.legend.font.family) {\r\n legend.fontFamily = inputChartDef.plotConfig.legend.font.family;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n chart: {\r\n type: inputChartDef.plotConfig.chartType,\r\n width: inputChartDef.plotConfig.width,\r\n height: inputChartDef.plotConfig.height,\r\n },\r\n stroke: {\r\n width: 1,\r\n },\r\n series: yAxisSeries,\r\n yaxis: yAxisConfig,\r\n xaxis,\r\n dataLabels,\r\n legend,\r\n };\r\n}\r\n","module.exports = require(\"apexcharts\");","module.exports = require(\"dayjs\");","module.exports = require(\"numeral\");"],"sourceRoot":""} |
+2
-2
| { | ||
| "name": "@data-forge-plot/apex", | ||
| "version": "0.2.0", | ||
| "version": "0.2.1", | ||
| "description": "A plugin to Data-Forge Plot for plotting charts using ApexCharts.", | ||
@@ -37,3 +37,3 @@ "main": "build/index.js", | ||
| "dependencies": { | ||
| "@data-forge-plot/chart-def": "^1.4.0", | ||
| "@data-forge-plot/chart-def": "^1.4.1", | ||
| "@data-forge/serialization": "^1.0.0", | ||
@@ -40,0 +40,0 @@ "apexcharts": "^3.8.0", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
2309512
0.26%27597
0.17%