@operato/scene-chartjs 7.0.8 → 7.0.10

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [7.0.10](https://github.com/things-scene/operato-scene/compare/v7.0.9...v7.0.10) (2024-07-14)
7
+
8
+
9
+ ### :bug: Bug Fix
10
+
11
+ * support data-label-offset and data-label-rotation for chart modeling ([9632b7c](https://github.com/things-scene/operato-scene/commit/9632b7c8853e31827d5098f4a6e700d23c86e51f))
12
+ * support offset and rotation for series label ([5c19607](https://github.com/things-scene/operato-scene/commit/5c196076f6f62f8128a667e7232a3d59989a6512))
13
+
14
+
15
+
16
+ ## [7.0.9](https://github.com/things-scene/operato-scene/compare/v7.0.8...v7.0.9) (2024-07-13)
17
+
18
+
19
+ ### :bug: Bug Fix
20
+
21
+ * chart translations ([f15920d](https://github.com/things-scene/operato-scene/commit/f15920d8f58fb64fef3bd0b5a5b0e235954534d1))
22
+
23
+
24
+
6
25
  ## [7.0.8](https://github.com/things-scene/operato-scene/compare/v7.0.7...v7.0.8) (2024-07-13)
7
26
 
8
27
 
@@ -280,6 +280,9 @@ function _setSeriesConfigures(series, chart) {
280
280
  var type = series.type || chart.type;
281
281
  var stackGroup = `${type} ${series.yAxisID} ${series.stack || series.dataKey}`;
282
282
  var color = series.color ? series.color : series.backgroundColor;
283
+ var dataLabelAnchor = series.dataLabelAnchor || 'center';
284
+ var dataLabelOffset = series.dataLabelOffset || 0;
285
+ var dataLabelRotation = series.dataLabelRotation || 0;
283
286
  switch (type) {
284
287
  case 'bar':
285
288
  case 'horizontalBar':
@@ -299,6 +302,9 @@ function _setSeriesConfigures(series, chart) {
299
302
  break;
300
303
  }
301
304
  series.stack = stackGroup;
305
+ series.dataLabelAnchor = dataLabelAnchor;
306
+ series.dataLabelOffset = dataLabelOffset;
307
+ series.dataLabelRotation = dataLabelRotation;
302
308
  }
303
309
  function _appendTickCallback(ticks) {
304
310
  if (!ticks) {
@@ -330,7 +336,6 @@ function _setTooltipCallback(tooltips) {
330
336
  var value = (_b = (_a = data.datasets) === null || _a === void 0 ? void 0 : _a[tooltipItem.datasetIndex || 0].data) === null || _b === void 0 ? void 0 : _b[tooltipItem.index || 0];
331
337
  var datasetLabel = (_c = data.datasets) === null || _c === void 0 ? void 0 : _c[tooltipItem.datasetIndex || 0].label;
332
338
  var label = datasetLabel || ((_d = data.labels) === null || _d === void 0 ? void 0 : _d[tooltipItem.index || 0]);
333
- var toNumValue = Number(value);
334
339
  var format = ((_e = data.datasets) === null || _e === void 0 ? void 0 : _e[tooltipItem.datasetIndex || 0].valueFormat) || '';
335
340
  var prefix = ((_f = data.datasets) === null || _f === void 0 ? void 0 : _f[tooltipItem.datasetIndex || 0].valuePrefix) || '';
336
341
  var suffix = ((_g = data.datasets) === null || _g === void 0 ? void 0 : _g[tooltipItem.datasetIndex || 0].valueSuffix) || '';
@@ -1 +1 @@
1
- {"version":3,"file":"config-converter.js","sourceRoot":"","sources":["../src/config-converter.ts"],"names":[],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\nimport { format as formatText } from '@operato/utils/format.js'\n\nexport function convertConfigure(chart: SceneChart.ChartConfig) {\n if (!chart) return\n\n var data = chart.data || {}\n var datasets = data.datasets || []\n var options = chart.options || {}\n var scales = options.scales || {}\n var xAxes: Array<SceneChart.ChartXAxe>\n var yAxes: Array<SceneChart.ChartYAxe>\n var scale\n var legend = options.legend || {}\n var tooltips = options.tooltip === false ? undefined : (options.tooltips = options.tooltips || {})\n var multiAxis = options.multiAxis\n var stacked = false\n var yStacked = [false, false]\n var fontSize = Number(options.defaultFontSize)\n var fontFamily = options.defaultFontFamily\n var fontColor = options.defaultFontColor\n var theme = options.theme\n\n // backward compatible\n _configureBackwardsCompatible(chart.type, options)\n\n // setup series configure\n for (let i in datasets) {\n let series = datasets[i]\n\n if (options.stacked && !series.stack) {\n series.stack = 'A'\n }\n\n /*\n * TODO from chartjs 2.9, categoryPercentage, barPercentage properties move to dataset.\n * so need to move related properties - categorySpacing, barSpacing should be moved to series.\n */\n if (chart.type == 'bar') {\n let categorySpacing = (scales.xAxes && scales.xAxes[0].categorySpacing) || 0\n let barSpacing = (scales.xAxes && scales.xAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n } else if (chart.type == 'horizontalBar') {\n let categorySpacing = (scales.yAxes && scales.yAxes[0].categorySpacing) || 0\n let barSpacing = (scales.yAxes && scales.yAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n }\n\n _setSeriesConfigures(series, chart)\n\n if (!multiAxis) {\n if (series.yAxisID == 'right') series.yAxisID = 'left'\n }\n }\n\n delete options.stacked\n\n var leftSeries = datasets.filter(d => d.yAxisID == 'left')\n var rightSeries = datasets.filter(d => d.yAxisID == 'right')\n\n leftSeries.forEach(s => {\n var filtered = leftSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[0] = true\n return\n }\n })\n\n rightSeries.forEach(s => {\n var filtered = rightSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[1] = true\n return\n }\n })\n\n stacked = yStacked[0] || yStacked[1]\n\n // setup options\n // 1. setup scales\n switch (chart.type) {\n case 'line':\n case 'bar':\n case 'horizontalBar':\n xAxes = scales.xAxes || []\n yAxes = scales.yAxes || []\n\n if (chart.type == 'horizontalBar') {\n xAxes = scales.yAxes || []\n yAxes = scales.xAxes || []\n }\n\n // 1-1. setup xAxes\n for (let i in xAxes) {\n let axis = xAxes[i]\n _setStacked(axis, stacked)\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setScalesTickRotation(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n axis.gridLines!.display = options.xGridLine\n }\n\n // 1-2. setup yAxes\n for (let i in yAxes) {\n let axis = yAxes[i]\n\n //@ts-ignore\n if (i == 1) {\n _setMultiAxis(axis, multiAxis)\n }\n _setStacked(axis, yStacked[i])\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n //@ts-ignore\n if (i == 0) axis.gridLines.display = options.yGridLine\n\n //@ts-ignore\n if (i == 1) axis.gridLines.display = options.y2ndGridLine\n }\n\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n scale = options.scale || {}\n _setScalesFont(scale, {\n fontSize,\n fontFamily\n })\n break\n }\n\n // 2. setup legend\n _setLegendFont(legend, {\n fontSize,\n fontFamily\n })\n legend.labels && (legend.labels.boxWidth = 15)\n _setLegendTheme(legend, theme, fontColor)\n\n // 3. setup tooltips\n options.tooltip &&\n _setTooltipFont(tooltips!, {\n fontSize,\n fontFamily\n })\n options.tooltip && _setTooltipCallback(tooltips!)\n}\n\nfunction _configureBackwardsCompatible(type: string, options: SceneChart.ChartOptions) {\n switch (type) {\n case 'horizontalBar':\n if (!options.scales) options.scales = {}\n break\n case 'radar':\n case 'polarArea':\n if (options.defaultFontColor) {\n options.scale!.ticks!.fontColor = options.defaultFontColor\n if (options.scale.pointLabels) {\n options.scale.pointLabels.fontColor = options.defaultFontColor\n } else {\n options.scale.pointLabels = { fontColor: options.defaultFontColor }\n }\n }\n options.scale!.ticks!.backdropColor = options.fillStyle ? options.fillStyle : '#00ff0000'\n break\n case 'line':\n case 'bar':\n if (!options.scales) options.scales = {}\n if (!options.scales.yAxes) options.scales.yAxes = []\n\n if (options.scales.yAxes.length === 1) {\n let yAxes = options.scales.yAxes\n yAxes.push({\n position: 'right',\n id: 'right',\n display: options.multiAxis || false,\n gridLines: {\n display: (yAxes[0] && yAxes[0].gridLines && yAxes[0].gridLines.display) || false\n },\n ticks: {\n beginAtZero: false,\n callback: function (value: any, index: number, values: any[]) {\n var returnValue = value\n if (typeof returnValue == 'number') {\n returnValue = returnValue.toLocaleString()\n }\n\n return returnValue\n }\n }\n })\n }\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n if (!options.scale) options.scale = {}\n\n break\n }\n}\n\nfunction _setStacked(axis: SceneChart.ChartXAxe, stacked: boolean) {\n axis.stacked = stacked\n}\n\nfunction _setMultiAxis(axis: SceneChart.ChartXAxe, multiAxis: boolean) {\n axis.display = multiAxis\n}\n\nfunction _setAxisTitle(axis: SceneChart.ChartXAxe) {\n if (!axis.scaleLabel) axis.scaleLabel = {}\n axis.scaleLabel.labelString = axis.axisTitle\n axis.scaleLabel.display = axis.axisTitle ? true : false\n}\n\nfunction _setScalesFont(\n axis: SceneChart.ChartXAxe | SceneChart.RadialLinearScale,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontSize = fontSize\n\n if (fontFamily) {\n axis.ticks.fontFamily = fontFamily\n }\n\n ;(axis as SceneChart.RadialLinearScale).pointLabels = {\n fontSize,\n fontFamily\n }\n}\n\nfunction _setScalesAutoMinMax(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n\n let autoMin = axis.ticks.autoMin\n let autoMax = axis.ticks.autoMax\n\n if (autoMin === true) {\n delete axis.ticks.min\n }\n if (autoMax === true) {\n delete axis.ticks.max\n }\n}\n\nfunction _setScalesTickRotation(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n // axis.ticks.maxRotation = 0\n}\n\nfunction _setScalesTheme(axis: SceneChart.ChartXAxe, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n axis.gridLines = axis.gridLines ? axis.gridLines : {}\n if (axis.gridLines) {\n axis.gridLines.zeroLineColor = baseColor.clone().setAlpha(0.5).toString()\n axis.gridLines.color = baseColor.clone().setAlpha(0.1).toString()\n }\n\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _setLegendFont(\n legend: SceneChart.ChartLegendOptions,\n { fontFamily, fontSize }: { fontFamily: string; fontSize: number }\n) {\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontSize = fontSize\n if (fontFamily) legend.labels.fontFamily = fontFamily\n}\n\nfunction _setLegendTheme(legend: SceneChart.ChartLegendOptions, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _getBaseColorFromTheme(theme: SceneChart.Theme) {\n let darkColor = '#000'\n let lightColor = '#fff'\n\n var baseColor\n\n switch (theme) {\n case 'light':\n baseColor = lightColor\n break\n case 'dark':\n default:\n baseColor = darkColor\n break\n }\n\n baseColor = new TinyColor(baseColor)\n\n return baseColor\n}\n\nfunction _setSeriesConfigures(series: SceneChart.ChartDataSets, chart: SceneChart.ChartConfig) {\n var type = series.type || chart.type\n var stackGroup = `${type} ${series.yAxisID} ${series.stack || series.dataKey}`\n var color = series.color ? series.color : series.backgroundColor\n\n switch (type) {\n case 'bar':\n case 'horizontalBar':\n series.borderColor = series.backgroundColor = color\n break\n\n case 'line':\n case 'radar':\n color = series.color ? series.color : series.borderColor\n series.pointBackgroundColor = series.pointBorderColor = series.borderColor = series.backgroundColor = color\n series.pointBorderWidth = (series.borderWidth as number) * 0.5\n series.pointHoverRadius = series.pointRadius\n if (series.fill == undefined) series.fill = false\n break\n\n default:\n series.borderColor = series.backgroundColor = color\n break\n }\n\n series.stack = stackGroup\n}\n\nfunction _appendTickCallback(ticks: SceneChart.TickOptions | undefined) {\n if (!ticks) {\n return\n }\n\n ticks.callback = function (value, index, values) {\n var returnValue\n if (!Number.isNaN(Number(value))) {\n returnValue = Number(value).toLocaleString()\n } else {\n returnValue = value\n }\n\n if (returnValue) return returnValue\n }\n}\n\nfunction _setTooltipFont(\n tooltips: SceneChart.ChartTooltipOptions,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n tooltips.titleFontSize = tooltips.bodyFontSize = tooltips.footerFontSize = fontSize\n if (fontFamily) tooltips.titleFontFamily = tooltips.bodyFontFamily = tooltips.footerFontFamily = fontFamily\n}\n\nfunction _setTooltipCallback(tooltips: SceneChart.ChartTooltipOptions) {\n tooltips.callbacks = tooltips.callbacks || {}\n\n tooltips.intersect = false\n tooltips.mode = 'index'\n\n tooltips.callbacks.label = function (tooltipItem: SceneChart.ChartTooltipItem, data: SceneChart.ChartData) {\n var value: any = data.datasets?.[tooltipItem.datasetIndex || 0].data?.[tooltipItem.index || 0]\n var datasetLabel = data.datasets?.[tooltipItem.datasetIndex || 0].label\n var label = datasetLabel || data.labels?.[tooltipItem.index || 0]\n var toNumValue = Number(value)\n\n var format = data.datasets?.[tooltipItem.datasetIndex || 0].valueFormat || ''\n var prefix = data.datasets?.[tooltipItem.datasetIndex || 0].valuePrefix || ''\n var suffix = data.datasets?.[tooltipItem.datasetIndex || 0].valueSuffix || ''\n\n var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString()\n\n return `${label}: ${prefix + stringValue + suffix}`\n }\n}\n"]}
1
+ {"version":3,"file":"config-converter.js","sourceRoot":"","sources":["../src/config-converter.ts"],"names":[],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\nimport { format as formatText } from '@operato/utils/format.js'\n\nexport function convertConfigure(chart: SceneChart.ChartConfig) {\n if (!chart) return\n\n var data = chart.data || {}\n var datasets = data.datasets || []\n var options = chart.options || {}\n var scales = options.scales || {}\n var xAxes: Array<SceneChart.ChartXAxe>\n var yAxes: Array<SceneChart.ChartYAxe>\n var scale\n var legend = options.legend || {}\n var tooltips = options.tooltip === false ? undefined : (options.tooltips = options.tooltips || {})\n var multiAxis = options.multiAxis\n var stacked = false\n var yStacked = [false, false]\n var fontSize = Number(options.defaultFontSize)\n var fontFamily = options.defaultFontFamily\n var fontColor = options.defaultFontColor\n var theme = options.theme\n\n // backward compatible\n _configureBackwardsCompatible(chart.type, options)\n\n // setup series configure\n for (let i in datasets) {\n let series = datasets[i]\n\n if (options.stacked && !series.stack) {\n series.stack = 'A'\n }\n\n /*\n * TODO from chartjs 2.9, categoryPercentage, barPercentage properties move to dataset.\n * so need to move related properties - categorySpacing, barSpacing should be moved to series.\n */\n if (chart.type == 'bar') {\n let categorySpacing = (scales.xAxes && scales.xAxes[0].categorySpacing) || 0\n let barSpacing = (scales.xAxes && scales.xAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n } else if (chart.type == 'horizontalBar') {\n let categorySpacing = (scales.yAxes && scales.yAxes[0].categorySpacing) || 0\n let barSpacing = (scales.yAxes && scales.yAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n }\n\n _setSeriesConfigures(series, chart)\n\n if (!multiAxis) {\n if (series.yAxisID == 'right') series.yAxisID = 'left'\n }\n }\n\n delete options.stacked\n\n var leftSeries = datasets.filter(d => d.yAxisID == 'left')\n var rightSeries = datasets.filter(d => d.yAxisID == 'right')\n\n leftSeries.forEach(s => {\n var filtered = leftSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[0] = true\n return\n }\n })\n\n rightSeries.forEach(s => {\n var filtered = rightSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[1] = true\n return\n }\n })\n\n stacked = yStacked[0] || yStacked[1]\n\n // setup options\n // 1. setup scales\n switch (chart.type) {\n case 'line':\n case 'bar':\n case 'horizontalBar':\n xAxes = scales.xAxes || []\n yAxes = scales.yAxes || []\n\n if (chart.type == 'horizontalBar') {\n xAxes = scales.yAxes || []\n yAxes = scales.xAxes || []\n }\n\n // 1-1. setup xAxes\n for (let i in xAxes) {\n let axis = xAxes[i]\n _setStacked(axis, stacked)\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setScalesTickRotation(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n axis.gridLines!.display = options.xGridLine\n }\n\n // 1-2. setup yAxes\n for (let i in yAxes) {\n let axis = yAxes[i]\n\n //@ts-ignore\n if (i == 1) {\n _setMultiAxis(axis, multiAxis)\n }\n _setStacked(axis, yStacked[i])\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n //@ts-ignore\n if (i == 0) axis.gridLines.display = options.yGridLine\n\n //@ts-ignore\n if (i == 1) axis.gridLines.display = options.y2ndGridLine\n }\n\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n scale = options.scale || {}\n _setScalesFont(scale, {\n fontSize,\n fontFamily\n })\n break\n }\n\n // 2. setup legend\n _setLegendFont(legend, {\n fontSize,\n fontFamily\n })\n legend.labels && (legend.labels.boxWidth = 15)\n _setLegendTheme(legend, theme, fontColor)\n\n // 3. setup tooltips\n options.tooltip &&\n _setTooltipFont(tooltips!, {\n fontSize,\n fontFamily\n })\n options.tooltip && _setTooltipCallback(tooltips!)\n}\n\nfunction _configureBackwardsCompatible(type: string, options: SceneChart.ChartOptions) {\n switch (type) {\n case 'horizontalBar':\n if (!options.scales) options.scales = {}\n break\n case 'radar':\n case 'polarArea':\n if (options.defaultFontColor) {\n options.scale!.ticks!.fontColor = options.defaultFontColor\n if (options.scale.pointLabels) {\n options.scale.pointLabels.fontColor = options.defaultFontColor\n } else {\n options.scale.pointLabels = { fontColor: options.defaultFontColor }\n }\n }\n options.scale!.ticks!.backdropColor = options.fillStyle ? options.fillStyle : '#00ff0000'\n break\n case 'line':\n case 'bar':\n if (!options.scales) options.scales = {}\n if (!options.scales.yAxes) options.scales.yAxes = []\n\n if (options.scales.yAxes.length === 1) {\n let yAxes = options.scales.yAxes\n yAxes.push({\n position: 'right',\n id: 'right',\n display: options.multiAxis || false,\n gridLines: {\n display: (yAxes[0] && yAxes[0].gridLines && yAxes[0].gridLines.display) || false\n },\n ticks: {\n beginAtZero: false,\n callback: function (value: any, index: number, values: any[]) {\n var returnValue = value\n if (typeof returnValue == 'number') {\n returnValue = returnValue.toLocaleString()\n }\n\n return returnValue\n }\n }\n })\n }\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n if (!options.scale) options.scale = {}\n\n break\n }\n}\n\nfunction _setStacked(axis: SceneChart.ChartXAxe, stacked: boolean) {\n axis.stacked = stacked\n}\n\nfunction _setMultiAxis(axis: SceneChart.ChartXAxe, multiAxis: boolean) {\n axis.display = multiAxis\n}\n\nfunction _setAxisTitle(axis: SceneChart.ChartXAxe) {\n if (!axis.scaleLabel) axis.scaleLabel = {}\n axis.scaleLabel.labelString = axis.axisTitle\n axis.scaleLabel.display = axis.axisTitle ? true : false\n}\n\nfunction _setScalesFont(\n axis: SceneChart.ChartXAxe | SceneChart.RadialLinearScale,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontSize = fontSize\n\n if (fontFamily) {\n axis.ticks.fontFamily = fontFamily\n }\n\n ;(axis as SceneChart.RadialLinearScale).pointLabels = {\n fontSize,\n fontFamily\n }\n}\n\nfunction _setScalesAutoMinMax(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n\n let autoMin = axis.ticks.autoMin\n let autoMax = axis.ticks.autoMax\n\n if (autoMin === true) {\n delete axis.ticks.min\n }\n if (autoMax === true) {\n delete axis.ticks.max\n }\n}\n\nfunction _setScalesTickRotation(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n // axis.ticks.maxRotation = 0\n}\n\nfunction _setScalesTheme(axis: SceneChart.ChartXAxe, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n axis.gridLines = axis.gridLines ? axis.gridLines : {}\n if (axis.gridLines) {\n axis.gridLines.zeroLineColor = baseColor.clone().setAlpha(0.5).toString()\n axis.gridLines.color = baseColor.clone().setAlpha(0.1).toString()\n }\n\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _setLegendFont(\n legend: SceneChart.ChartLegendOptions,\n { fontFamily, fontSize }: { fontFamily: string; fontSize: number }\n) {\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontSize = fontSize\n if (fontFamily) legend.labels.fontFamily = fontFamily\n}\n\nfunction _setLegendTheme(legend: SceneChart.ChartLegendOptions, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _getBaseColorFromTheme(theme: SceneChart.Theme) {\n let darkColor = '#000'\n let lightColor = '#fff'\n\n var baseColor\n\n switch (theme) {\n case 'light':\n baseColor = lightColor\n break\n case 'dark':\n default:\n baseColor = darkColor\n break\n }\n\n baseColor = new TinyColor(baseColor)\n\n return baseColor\n}\n\nfunction _setSeriesConfigures(series: SceneChart.ChartDataSets, chart: SceneChart.ChartConfig) {\n var type = series.type || chart.type\n var stackGroup = `${type} ${series.yAxisID} ${series.stack || series.dataKey}`\n var color = series.color ? series.color : series.backgroundColor\n\n var dataLabelAnchor = series.dataLabelAnchor || 'center'\n var dataLabelOffset = series.dataLabelOffset || 0\n var dataLabelRotation = series.dataLabelRotation || 0\n\n switch (type) {\n case 'bar':\n case 'horizontalBar':\n series.borderColor = series.backgroundColor = color\n break\n\n case 'line':\n case 'radar':\n color = series.color ? series.color : series.borderColor\n series.pointBackgroundColor = series.pointBorderColor = series.borderColor = series.backgroundColor = color\n series.pointBorderWidth = (series.borderWidth as number) * 0.5\n series.pointHoverRadius = series.pointRadius\n if (series.fill == undefined) series.fill = false\n break\n\n default:\n series.borderColor = series.backgroundColor = color\n break\n }\n\n series.stack = stackGroup\n\n series.dataLabelAnchor = dataLabelAnchor\n series.dataLabelOffset = dataLabelOffset\n series.dataLabelRotation = dataLabelRotation\n}\n\nfunction _appendTickCallback(ticks: SceneChart.TickOptions | undefined) {\n if (!ticks) {\n return\n }\n\n ticks.callback = function (value, index, values) {\n var returnValue\n if (!Number.isNaN(Number(value))) {\n returnValue = Number(value).toLocaleString()\n } else {\n returnValue = value\n }\n\n if (returnValue) return returnValue\n }\n}\n\nfunction _setTooltipFont(\n tooltips: SceneChart.ChartTooltipOptions,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n tooltips.titleFontSize = tooltips.bodyFontSize = tooltips.footerFontSize = fontSize\n if (fontFamily) tooltips.titleFontFamily = tooltips.bodyFontFamily = tooltips.footerFontFamily = fontFamily\n}\n\nfunction _setTooltipCallback(tooltips: SceneChart.ChartTooltipOptions) {\n tooltips.callbacks = tooltips.callbacks || {}\n\n tooltips.intersect = false\n tooltips.mode = 'index'\n\n tooltips.callbacks.label = function (tooltipItem: SceneChart.ChartTooltipItem, data: SceneChart.ChartData) {\n var value: any = data.datasets?.[tooltipItem.datasetIndex || 0].data?.[tooltipItem.index || 0]\n var datasetLabel = data.datasets?.[tooltipItem.datasetIndex || 0].label\n var label = datasetLabel || data.labels?.[tooltipItem.index || 0]\n\n var format = data.datasets?.[tooltipItem.datasetIndex || 0].valueFormat || ''\n var prefix = data.datasets?.[tooltipItem.datasetIndex || 0].valuePrefix || ''\n var suffix = data.datasets?.[tooltipItem.datasetIndex || 0].valueSuffix || ''\n\n var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString()\n\n return `${label}: ${prefix + stringValue + suffix}`\n }\n}\n"]}
package/dist/ox-chart.js CHANGED
@@ -91,6 +91,20 @@ let OxChart = class OxChart extends LitElement {
91
91
  //@ts-ignore
92
92
  return context.dataset.dataLabelAnchor || 'center';
93
93
  },
94
+ offset: function (context) {
95
+ //@ts-ignore
96
+ return context.dataset.dataLabelOffset || 0;
97
+ },
98
+ //@ts-ignore
99
+ align: function (context) {
100
+ //@ts-ignore
101
+ return context.dataset.dataLabelAnchor || 'center';
102
+ },
103
+ //@ts-ignore
104
+ rotation: function (context) {
105
+ //@ts-ignore
106
+ return context.dataset.dataLabelRotation || 0;
107
+ },
94
108
  color: function (context) {
95
109
  var _a;
96
110
  //@ts-ignore
@@ -1 +1 @@
1
- {"version":3,"file":"ox-chart.js","sourceRoot":"","sources":["../src/ox-chart.ts"],"names":[],"mappings":"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","sourcesContent":["import 'chartjs-plugin-datalabels'\nimport 'chartjs-plugin-style'\n\nimport { LitElement, PropertyValues, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { Chart } from 'chart.js'\nimport { format as formatText } from '@operato/utils/format.js'\nimport DataBinderPlugin from './plugins/chartjs-plugin-data-binder'\nimport { convertConfigure } from './config-converter'\n\nChart.plugins.register(DataBinderPlugin)\n\n@customElement('ox-chart')\nexport class OxChart extends LitElement {\n @property({ type: Number }) width!: number\n @property({ type: Number }) height!: number\n @property({ type: Object }) options!: SceneChart.ChartConfig\n @property({ type: Object }) data!: SceneChart.ChartData\n\n private _initialized?: boolean\n private _chart?: SceneChart\n\n @query('canvas') _canvas!: HTMLCanvasElement\n\n firstUpdated() {\n this.initChart()\n }\n\n render() {\n return html` <canvas></canvas> `\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('width') || changes.has('height')) {\n this.updateChartSize()\n }\n\n if (changes.has('options')) {\n this.updateChartConfig()\n }\n\n if (changes.has('data')) {\n this._chart!.data.rawData = this.data\n this._chart!.update()\n }\n }\n\n initChart() {\n const { data, options, type } = this.options\n this.options.options.tooltip = this.options.options.tooltip ?? true\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart = new Chart(this._canvas, {\n type,\n data,\n options\n }) as SceneChart\n\n this.updateChartSize()\n\n this._initialized = true\n }\n\n updateChartSize() {\n const width = Math.floor(this.width)\n const height = Math.floor(this.height)\n\n this._canvas.style.width = `${width}px`\n this._canvas.style.height = `${height}px`\n\n const _ = () => {\n if (this._canvas.offsetWidth == 0 || this._canvas.offsetHeight == 0) {\n requestAnimationFrame(_)\n } else {\n /*\n 주의 : chart.resize() 내에서 pixel ratio를 감안해서, canvas 의 width, height를 설정하기때문에,\n 별도 처리가 필요하지 않다.\n */\n this._chart!.resize()\n }\n }\n\n requestAnimationFrame(_)\n }\n\n updateChartConfig() {\n if (!this._chart) return\n\n const { data, options, type } = this.options\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart.type = type\n this._chart.data = data\n this._chart.options = options\n this._chart.data.rawData = this.data\n this._chart.update()\n }\n\n attachPluginOptions(options: SceneChart.ChartOptions) {\n if (!options.plugins) {\n options.plugins = {}\n }\n\n this.attachDatalabelPluginOptions(options.plugins)\n }\n\n attachDatalabelPluginOptions(pluginOptions: SceneChart.ChartPluginsOptions) {\n pluginOptions.datalabels = {\n ...pluginOptions.datalabels,\n display: function (context) {\n //@ts-ignore\n return !!context.dataset.displayValue\n },\n anchor: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelAnchor || 'center'\n },\n color: function (context) {\n //@ts-ignore\n return context.dataset?.defaultFontColor || '#000'\n },\n font: function (context) {\n return {\n //@ts-ignore\n size: context.dataset?.defaultFontSize,\n //@ts-ignore\n family: context.chart.options?.defaultFontFamily\n }\n },\n clamp: true,\n formatter: function (value, context) {\n //@ts-ignore\n var format = context.dataset.valueFormat || ''\n //@ts-ignore\n var prefix = context.dataset.valuePrefix || ''\n //@ts-ignore\n var suffix = context.dataset.valueSuffix || ''\n if (value == undefined) return value\n\n var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString()\n return prefix + stringValue + suffix\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ox-chart.js","sourceRoot":"","sources":["../src/ox-chart.ts"],"names":[],"mappings":"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","sourcesContent":["import 'chartjs-plugin-datalabels'\nimport 'chartjs-plugin-style'\n\nimport { LitElement, PropertyValues, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { Chart } from 'chart.js'\nimport { format as formatText } from '@operato/utils/format.js'\nimport DataBinderPlugin from './plugins/chartjs-plugin-data-binder'\nimport { convertConfigure } from './config-converter'\n\nChart.plugins.register(DataBinderPlugin)\n\n@customElement('ox-chart')\nexport class OxChart extends LitElement {\n @property({ type: Number }) width!: number\n @property({ type: Number }) height!: number\n @property({ type: Object }) options!: SceneChart.ChartConfig\n @property({ type: Object }) data!: SceneChart.ChartData\n\n private _initialized?: boolean\n private _chart?: SceneChart\n\n @query('canvas') _canvas!: HTMLCanvasElement\n\n firstUpdated() {\n this.initChart()\n }\n\n render() {\n return html` <canvas></canvas> `\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('width') || changes.has('height')) {\n this.updateChartSize()\n }\n\n if (changes.has('options')) {\n this.updateChartConfig()\n }\n\n if (changes.has('data')) {\n this._chart!.data.rawData = this.data\n this._chart!.update()\n }\n }\n\n initChart() {\n const { data, options, type } = this.options\n this.options.options.tooltip = this.options.options.tooltip ?? true\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart = new Chart(this._canvas, {\n type,\n data,\n options\n }) as SceneChart\n\n this.updateChartSize()\n\n this._initialized = true\n }\n\n updateChartSize() {\n const width = Math.floor(this.width)\n const height = Math.floor(this.height)\n\n this._canvas.style.width = `${width}px`\n this._canvas.style.height = `${height}px`\n\n const _ = () => {\n if (this._canvas.offsetWidth == 0 || this._canvas.offsetHeight == 0) {\n requestAnimationFrame(_)\n } else {\n /*\n 주의 : chart.resize() 내에서 pixel ratio를 감안해서, canvas 의 width, height를 설정하기때문에,\n 별도 처리가 필요하지 않다.\n */\n this._chart!.resize()\n }\n }\n\n requestAnimationFrame(_)\n }\n\n updateChartConfig() {\n if (!this._chart) return\n\n const { data, options, type } = this.options\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart.type = type\n this._chart.data = data\n this._chart.options = options\n this._chart.data.rawData = this.data\n this._chart.update()\n }\n\n attachPluginOptions(options: SceneChart.ChartOptions) {\n if (!options.plugins) {\n options.plugins = {}\n }\n\n this.attachDatalabelPluginOptions(options.plugins)\n }\n\n attachDatalabelPluginOptions(pluginOptions: SceneChart.ChartPluginsOptions) {\n pluginOptions.datalabels = {\n ...pluginOptions.datalabels,\n display: function (context) {\n //@ts-ignore\n return !!context.dataset.displayValue\n },\n anchor: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelAnchor || 'center'\n },\n offset: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelOffset || 0\n },\n //@ts-ignore\n align: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelAnchor || 'center'\n },\n //@ts-ignore\n rotation: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelRotation || 0\n },\n color: function (context) {\n //@ts-ignore\n return context.dataset?.defaultFontColor || '#000'\n },\n font: function (context) {\n return {\n //@ts-ignore\n size: context.dataset?.defaultFontSize,\n //@ts-ignore\n family: context.chart.options?.defaultFontFamily\n }\n },\n clamp: true,\n formatter: function (value, context) {\n //@ts-ignore\n var format = context.dataset.valueFormat || ''\n //@ts-ignore\n var prefix = context.dataset.valuePrefix || ''\n //@ts-ignore\n var suffix = context.dataset.valueSuffix || ''\n if (value == undefined) return value\n\n var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString()\n return prefix + stringValue + suffix\n }\n }\n }\n}\n"]}
@@ -0,0 +1,364 @@
1
+ # **Chart**
2
+
3
+ ## 1. 共通
4
+
5
+ ### 1.1. 共通属性
6
+
7
+ - テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
8
+ - 凡例 - チャートの凡例を表示。
9
+ - 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
10
+ - 二軸 - Y 軸を左右 2 軸で表示するかどうか。二軸を選択した場合、補助 Y 軸とそのオプションが表示される。
11
+
12
+ ### 1.2. X 軸
13
+
14
+ - データ参照 - チャートが表示するデータのフィールド名。X 軸に表示するデータのフィールド名を入力する。以下のようなデータを表示する場合、'Date'となる。
15
+ ![Chart-bar-theme][chart-bar-01]
16
+ - タイトル - X 軸の希望するタイトル(ラベル)を入力
17
+ - グリッドライン - 垂直方向のグリッドライン表示の有無
18
+ ![X軸グリッド][chart-bar-08]
19
+ - 目盛り表示 - X 軸の目盛り表示の有無
20
+
21
+ ### 1.3. Y 軸
22
+
23
+ - タイトル - Y 軸の希望するタイトル(ラベル)を入力
24
+ - 最小値自動 - 最小値を自動選択する場合、自動的に最小値とステップを適用して目盛りを計算
25
+ - 最小値 - 最小値自動選択を解除した場合、目盛りの最小値を設定可能。
26
+ - 最大値自動 - 最大値を自動選択する場合、自動的に最大値とステップを適用して目盛りを計算
27
+ - 最大値 - 最大値自動選択を解除した場合、目盛りの最大値を設定可能。
28
+ - ステップ - 目盛り間隔を設定
29
+ - グリッドライン - 水平方向のグリッドライン表示の有無
30
+ ![Y軸グリッド][chart-bar-12]
31
+ - 目盛り表示 - Y 軸の目盛り表示の有無
32
+
33
+ ---
34
+
35
+ ## 2. Mix Chart(垂直バー/ラインチャート)
36
+
37
+ - データをバーとラインの形状を混ぜて表現するチャート。 **(ミックスチャートの属性は、バーとラインチャートと同じです。)**
38
+ - データをバーまたはラインの形で表現したり、バーとラインをミックスして表現可能。複数のシリーズ(フィールド)がある場合、並列バーまたは積み上げバーで表現可能。
39
+ ![chart-mix-チャートタイプ][chart-mix-02]
40
+
41
+ [chart-mix-02]: ../images/chart-mix-02.png
42
+
43
+ ### 2.1. シリーズ
44
+
45
+ - "+"ボタンを使用して、複数のシリーズをデータに追加可能。
46
+ - **共通**
47
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'と 'Bad'となる。
48
+ ![Data Refer][chart-bar-01]
49
+ - タイプ - シリーズをライン(line)チャートで表現するか、バー(bar)チャートで表現するかを定義する。
50
+ - ラベル - 凡例名
51
+ - 色 - チャートに表現されるシリーズの色を指定する。
52
+ - 積み上げグループ - 同じ積み上げグループに含まれるシリーズの値を積み上げてグラフに表現する。
53
+ ![積み上げグループ][chart-bar-02]
54
+ - 対象軸 - 二軸を適用する場合、対象軸の設定フィールドが表示される。対象軸はそのシリーズが参照する軸(軸の目盛り)を指す。
55
+ ![対象軸][chart-bar-03]
56
+ - 値形式 - 値が表示されるときの数値形式を指定可能。
57
+ - 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
58
+ - 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
59
+ - 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
60
+ 値表示が選択されると、以下の項目が表示される。
61
+ - フォント色 - シリーズラベルの色を設定
62
+ - サイズ - シリーズラベルのフォントサイズを設定
63
+ - 位置 - シリーズラベルのフォント位置を設定
64
+ - オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
65
+ - 回転 - シリーズラベルの回転角度
66
+ - **タイプが line の場合**
67
+ - 緊張度 - 直線を使用したグラフ(angled)、滑らかな線を使用したグラフ(smooth)
68
+ - 境界部分の幅 - ラインの太さを設定
69
+ - ポイントの形状 - ラインの各頂点のポイントの形状を定義
70
+ - ポイントのサイズ - ラインの各頂点のポイントのサイズを定義
71
+ - 塗りつぶし - 共通属性の色を使用して、データを表現する図形を塗りつぶす。
72
+
73
+ ### 2.2. X 軸
74
+
75
+ - 一般 - [共通属性](#1.2.-X軸)で定義された内容と同じ
76
+ - バー間隔 - バーとバーの間隔で、バーのサイズに影響を与える。
77
+ - 目盛り間隔 - 目盛り間の間隔で、バーのサイズに影響を与える。
78
+
79
+ ### 2.3. Y 軸
80
+
81
+ - [共通属性](#1.3.-Y軸)で定義された内容と同じ
82
+
83
+ ### 2.4. 補助 Y 軸(二軸選択時に表示)
84
+
85
+ - 設定属性は Y 軸の設定方法と同じ。
86
+
87
+ [chart-bar-01]: ../images/chart-bar-01.png
88
+ [chart-bar-02]: ../images/chart-bar-02.png
89
+ [chart-bar-03]: ../images/chart-bar-03.png
90
+ [chart-bar-08]: ../images/chart-bar-08.png
91
+ [chart-bar-12]: ../images/chart-bar-12.png
92
+
93
+ ---
94
+
95
+ ## 3. 水平バー チャート
96
+
97
+ データを水平バーの形で表現するチャート。複数のフィールドがある場合、並列バーまたは積み上げバーで表現可能。
98
+
99
+ ### 3.1. 共通属性
100
+
101
+ - テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
102
+ - 凡例 - チャートの凡例を表示。
103
+ - 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
104
+ - 二軸 - Y 軸を左右 2 軸で表示するかどうか。二軸を選択した場合、補助 Y 軸とそのオプションが表示される。
105
+
106
+ ### 3.2. シリーズ
107
+
108
+ - "+"ボタンを使用して、複数のシリーズをデータに追加可能。
109
+ - **共通**
110
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'と 'Bad'となる。
111
+ - ラベル - 凡例名
112
+ - 色 - チャートに表現されるシリーズの色を指定する。
113
+ - 積み上げグループ - 同じ積み上げグループに含まれるシリーズの値を積み上げてグラフに表現する。
114
+ - 対象軸 - 二軸を適用する場合、対象軸の設定フィールドが表示される。対象軸はそのシリーズが参照する軸(軸の目盛り)を指す。
115
+ - 値形式 - 値が表示されるときの数値形式を指定可能。
116
+ - 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
117
+ - 接尾辞 - 値が表示されるとき(マ
118
+
119
+ ウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
120
+
121
+ - 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
122
+ 値表示が選択されると、以下の項目が表示される。
123
+ - フォント色 - シリーズラベルの色を設定
124
+ - サイズ - シリーズラベルのフォントサイズを設定
125
+ - 位置 - シリーズラベルのフォント位置を設定
126
+ - オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
127
+ - 回転 - シリーズラベルの回転角度
128
+
129
+ ### 3.3. X 軸
130
+
131
+ - データ参照 - チャートが表示するデータのフィールド名。X 軸に表示するデータのフィールド名を入力する。以下のようなデータを表示する場合、'Date'となる。
132
+ - タイトル - X 軸の希望するタイトル(ラベル)を入力
133
+ - グリッドライン - 垂直方向のグリッドライン表示の有無
134
+ - 目盛り表示 - X 軸の目盛り表示の有無
135
+
136
+ ### 3.4. Y 軸
137
+
138
+ - タイトル - Y 軸の希望するタイトル(ラベル)を入力
139
+ - 最小値自動 - 最小値を自動選択する場合、自動的に最小値とステップを適用して目盛りを計算
140
+ - 最小値 - 最小値自動選択を解除した場合、目盛りの最小値を設定可能。
141
+ - 最大値自動 - 最大値を自動選択する場合、自動的に最大値とステップを適用して目盛りを計算
142
+ - 最大値 - 最大値自動選択を解除した場合、目盛りの最大値を設定可能。
143
+ - ステップ - 目盛り間隔を設定
144
+ - グリッドライン - 水平方向のグリッドライン表示の有無
145
+ - 目盛り表示 - Y 軸の目盛り表示の有無
146
+
147
+ [chart-horizontal-bar-01]: ../images/chart-horizontal-bar-01.png
148
+
149
+ ---
150
+
151
+ ## 4. ラインチャート
152
+
153
+ データをラインの形で表現するチャート。(重複する属性はバー チャートを参照)
154
+
155
+ ### 4.1. 属性
156
+
157
+ - テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
158
+ - 凡例 - チャートの凡例を表示。
159
+ - 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
160
+ - 二軸 - Y 軸を左右 2 軸で表示するかどうか。二軸を選択した場合、補助 Y 軸とそのオプションが表示される。
161
+
162
+ ### 4.2. シリーズ
163
+
164
+ - "+"ボタンを使用して、複数のシリーズをデータに追加可能。
165
+ - **共通**
166
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'と 'Bad'となる。
167
+ ![Data Refer][chart-line-01]
168
+ - 緊張度 - 直線を使用したグラフ(angled)、滑らかな線を使用したグラフ(smooth)
169
+ - 境界部分の幅 - ラインの太さを設定
170
+ - ラベル - 凡例名
171
+ - 色 - チャートに表現されるシリーズの色を指定する。
172
+ - ポイントの形状 - ラインの各頂点のポイントの形状を定義
173
+ - ポイントのサイズ - ラインの各頂点のポイントのサイズを定義
174
+ - 積み上げグループ - 同じ積み上げグループに含まれるシリーズの値を積み上げてグラフに表現する。
175
+ - 塗りつぶし - 共通属性の色を使用して、データを表現する図形を塗りつぶす。
176
+ - 対象軸 - 二軸を適用する場合、対象軸の設定フィールドが表示される。対象軸はそのシリーズが参照する軸(軸の目盛り)を指す。
177
+ - 値形式 - 値が表示されるときの数値形式を指定可能。
178
+ - 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
179
+ - 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
180
+ - 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
181
+ 値表示が選択されると、以下の項目が表示される。
182
+ - フォント色 - シリーズラベルの色を設定
183
+ - サイズ - シリーズラベルのフォントサイズを設定
184
+ - 位置 - シリーズラベルのフォント位置を設定
185
+ - オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
186
+ - 回転 - シリーズラベルの回転角度
187
+
188
+ ### 4.3. X 軸
189
+
190
+ - データ参照 - チャートが表示するデータのフィールド名。X 軸に表示するデータのフィールド名を入力する。以下のようなデータを表示する場合、'Date'となる。
191
+ - タイトル - X 軸の希望するタイトル(ラベル)を入力
192
+ - グリッドライン - 垂直方向のグリッドライン表示の有無
193
+ - 目盛り表示 - X 軸の目盛り表示の有無
194
+
195
+ ### 4.4. Y 軸
196
+
197
+ - タイトル - Y 軸の希望するタイトル(ラベル)を入力
198
+ - 最小値自動 - 最小値を自動選択する場合、自動的に最小値とステップを適用して目盛りを計算
199
+ - 最小値 - 最小値自動選択を解除した場合、目盛りの最小値を設定可能。
200
+ - 最大値自動 - 最大値を自動選択する場合、自動的に最大値とステップを適用して目盛りを計算
201
+ - 最大値 - 最大値自動選択を解除した場合、目盛りの最大値を設定可能。
202
+ - ステップ - 目盛り間隔を設定
203
+ - グリッドライン - 水平方向のグリッドライン表示の有無
204
+ - 目盛り表示 - Y 軸の目盛り表示の有無
205
+
206
+ [chart-line-01]: ../images/chart-line-01.png
207
+
208
+ ---
209
+
210
+ ## 5. レーダーチャート
211
+
212
+ データをレーダー形状で表現するチャート。円形チャートのデータを複数のラインで表現。
213
+
214
+ ### 5.1. 共通属性
215
+
216
+ - テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
217
+ - 凡例 - チャートの凡例を表示。
218
+ - 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
219
+
220
+ ### 5.2. シリーズ
221
+
222
+ - "+"ボタンを使用して、複数のシリーズをデータに追加可能。
223
+ - **共通**
224
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'と 'Bad'となる。
225
+ ![Data Refer][chart-radar-01]
226
+ - ラベル - 凡例名
227
+ - 色 - チャートに表現されるシリーズの色を指定する。
228
+ - 積み上げグループ - 同じ積み上げグループに含まれるシリーズの値を積み上げてグラフに表現する。
229
+ - 値形式 - 値が表示されるときの数値形式を指定可能。
230
+ - 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
231
+ - 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞
232
+
233
+ : 円 => 結果: 100 円)
234
+
235
+ - 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
236
+ 値表示が選択されると、以下の項目が表示される。
237
+ - フォント色 - シリーズラベルの色を設定
238
+ - サイズ - シリーズラベルのフォントサイズを設定
239
+ - 位置 - シリーズラベルのフォント位置を設定
240
+ - オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
241
+ - 回転 - シリーズラベルの回転角度
242
+
243
+ ### 5.3. 軸
244
+
245
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、参照データは 'line'となる。
246
+ ![Data Refer][chart-radar-01]
247
+
248
+ [chart-radar-01]: ../images/chart-radar-01.png
249
+
250
+ ---
251
+
252
+ ## 6. ポーラーチャート
253
+
254
+ データを極座標の形で表現するチャート。
255
+
256
+ ### 6.1. 共通属性
257
+
258
+ - テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
259
+ - 凡例 - チャートの凡例を表示。
260
+ - 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
261
+
262
+ ### 6.2. シリーズ
263
+
264
+ - "+"ボタンを使用して、複数のシリーズをデータに追加可能。
265
+ - **共通**
266
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'となる。
267
+ ![Data Refer][chart-polar-01]
268
+ - ラベル - 凡例名
269
+ - 色 - チャートに表現されるシリーズの色を指定する。
270
+ - 値形式 - 値が表示されるときの数値形式を指定可能。
271
+ - 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
272
+ - 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
273
+ - 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
274
+ 値表示が選択されると、以下の項目が表示される。
275
+ - フォント色 - シリーズラベルの色を設定
276
+ - サイズ - シリーズラベルのフォントサイズを設定
277
+ - 位置 - シリーズラベルのフォント位置を設定
278
+ - オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
279
+ - 回転 - シリーズラベルの回転角度
280
+
281
+ ### 6.3. 軸
282
+
283
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、参照データは 'hobby'となる。
284
+ ![Data Refer][chart-polar-01]
285
+
286
+ [chart-polar-01]: ../images/chart-polar-01.png
287
+
288
+ ---
289
+
290
+ ## 7. パイチャート
291
+
292
+ データを円形で表現するチャート。
293
+
294
+ ### 7.1. 共通属性
295
+
296
+ - テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
297
+ - 凡例 - チャートの凡例を表示。
298
+ - 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
299
+
300
+ ### 7.2. シリーズ
301
+
302
+ - "+"ボタンを使用して、複数のシリーズをデータに追加可能。
303
+ - **共通**
304
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'となる。
305
+ ![Data Refer][chart-pie-01]
306
+ - ラベル - 凡例名
307
+ - 色 - チャートに表現されるシリーズの色を指定する。
308
+ - 値形式 - 値が表示されるときの数値形式を指定可能。
309
+ - 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
310
+ - 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
311
+ - 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
312
+ 値表示が選択されると、以下の項目が表示される。
313
+ - フォント色 - シリーズラベルの色を設定
314
+ - サイズ - シリーズラベルのフォントサイズを設定
315
+ - 位置 - シリーズラベルのフォント位置を設定
316
+ - オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
317
+ - 回転 - シリーズラベルの回転角度
318
+
319
+ ### 7.3. 軸
320
+
321
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、参照データは 'line'となる。
322
+ ![Data Refer][chart-pie-01]
323
+
324
+ [chart-pie-01]: ../images/chart-pie-01.png
325
+
326
+ ---
327
+
328
+ ## 8. ドーナツチャート
329
+
330
+ ![コンポーネント-Chart-doughnut][chart-doughnut-01]
331
+
332
+ データをドーナツの形で表現するチャート。
333
+
334
+ ### 8.1. 共通属性
335
+
336
+ - テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
337
+ - 凡例 - チャートの凡例を表示。
338
+ - 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
339
+
340
+ ### 8.2. シリーズ
341
+
342
+ - "+"ボタンを使用して、複数のシリーズをデータに追加可能。
343
+ - **共通**
344
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'となる。
345
+ ![Data Refer][chart-doughnut-01]
346
+ - ラベル - 凡例名
347
+ - 色 - チャートに表現されるシリーズの色を指定する。
348
+ - 値形式 - 値が表示されるときの数値形式を指定可能。
349
+ - 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
350
+ - 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
351
+ - 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
352
+ 値表示が選択されると、以下の項目が表示される。
353
+ - フォント色 - シリーズラベルの色を設定
354
+ - サイズ - シリーズラベルのフォントサイズを設定
355
+ - 位置 - シリーズラベルのフォント位置を設定
356
+ - オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
357
+ - 回転 - シリーズラベルの回転角度
358
+
359
+ ### 8.3. 軸
360
+
361
+ - データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、参照データは 'line'となる。
362
+ ![Data Refer][chart-doughnut-01]
363
+
364
+ [chart-doughnut-01]: ../images/chart-doughnut-01.png