This is an automated email from the ASF dual-hosted git repository. ovilia pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/echarts.git
The following commit(s) were added to refs/heads/master by this push: new db2036530 fix(source): fix multi typed array detect error new bb1e18cc3 Merge pull request #19035 from linghaoSu/fix/typed-array-list db2036530 is described below commit db20365305680b09276ffbbf5b2e86c7d13385de Author: linghao.su <slh...@live.cn> AuthorDate: Wed Aug 23 22:52:07 2023 +0800 fix(source): fix multi typed array detect error --- src/data/Source.ts | 2 +- test/dataset-source-two-typed-array.html | 271 +++++++++++++++++++++++++++++++ 2 files changed, 272 insertions(+), 1 deletion(-) diff --git a/src/data/Source.ts b/src/data/Source.ts index 95a341041..adbeeaf55 100644 --- a/src/data/Source.ts +++ b/src/data/Source.ts @@ -271,7 +271,7 @@ export function detectSourceFormat(data: DatasetOption['source']): SourceFormat if (item == null) { continue; } - else if (isArray(item)) { + else if (isArray(item) || isTypedArray(item)) { sourceFormat = SOURCE_FORMAT_ARRAY_ROWS; break; } diff --git a/test/dataset-source-two-typed-array.html b/test/dataset-source-two-typed-array.html new file mode 100644 index 000000000..f2c1cc8f0 --- /dev/null +++ b/test/dataset-source-two-typed-array.html @@ -0,0 +1,271 @@ +<!DOCTYPE html> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + + +<html> + +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <script src="lib/simpleRequire.js"></script> + <script src="lib/config.js"></script> + <script src="lib/jquery.min.js"></script> + <script src="lib/facePrint.js"></script> + <script src="lib/testHelper.js"></script> + <!-- <script src="ut/lib/canteen.js"></script> --> + <link rel="stylesheet" href="lib/reset.css" /> +</head> + +<body> + <style> + </style> + + + + <div id="main0"></div> + <div id="main1"></div> + <div id="main2"></div> + <div id="main3"></div> + + + + + + + <script> + require([ + 'echarts', + // 'map/js/china', + // './data/nutrients.json' + ], function (echarts) { + + var option; + + var dataset = [ + new Float32Array(Uint8Array.from(atob('AACAPwAAAEAAAEBAAACAQAAAoEAAAMBAMzMDQQ=='), c => c.charCodeAt(0)).buffer), + new Float32Array(Uint8Array.from(atob('AACAPwAAAEAAAEBAAACAQAAAoEAAAMBAMzMDQQ=='), c => c.charCodeAt(0)).buffer), + ]; + // [1, 2, 3, 4, 5, 6, 7], + + option = { + "xAxis": { + "type": "value", + "show": true, + }, + "yAxis": { + "type": "value", + "show": true, + }, + tooltip: { show: true }, + "dataset": [ + { + "sourceHeader": false, + "source": dataset + } + ], + "series": [ + { + "type": "line", + "symbol": "circle", + "datasetIndex": 0, + "seriesLayoutBy": "row", + } + ], + }; + + + var chart = testHelper.create(echarts, 'main0', { + title: [ + 'last are typed array' + ], + option: option + // height: 300, + // buttons: [{text: 'btn-txt', onclick: function () {}}], + // recordCanvas: true, + }); + }); + </script> + + + <script> + require([ + 'echarts', + // 'map/js/china', + // './data/nutrients.json' + ], function (echarts) { + + var option; + + var dataset = [ + [1, 2, 3, 4, 5, 6, 7], + new Float32Array(Uint8Array.from(atob('AACAPwAAAEAAAEBAAACAQAAAoEAAAMBAMzMDQQ=='), c => c.charCodeAt(0)).buffer), + ]; + + option = { + "xAxis": { + "type": "value", + "show": true, + }, + "yAxis": { + "type": "value", + "show": true, + }, + tooltip: { show: true }, + "dataset": [ + { + "sourceHeader": false, + "source": dataset + } + ], + "series": [ + { + "type": "line", + "symbol": "circle", + "datasetIndex": 0, + "seriesLayoutBy": "row", + } + ], + }; + + + var chart = testHelper.create(echarts, 'main1', { + title: [ + 'last is typed array' + ], + option: option + // height: 300, + // buttons: [{text: 'btn-txt', onclick: function () {}}], + // recordCanvas: true, + }); + }); + </script> + + + <script> + require([ + 'echarts', + // 'map/js/china', + // './data/nutrients.json' + ], function (echarts) { + + var option; + + var dataset = [ + new Float32Array(Uint8Array.from(atob('AACAPwAAAEAAAEBAAACAQAAAoEAAAMBAMzMDQQ=='), c => c.charCodeAt(0)).buffer), + [1, 2, 3, 4, 5, 6, 7], + ]; + + option = { + "xAxis": { + "type": "value", + "show": true, + }, + "yAxis": { + "type": "value", + "show": true, + }, + tooltip: { show: true }, + "dataset": [ + { + "sourceHeader": false, + "source": dataset + } + ], + "series": [ + { + "type": "line", + "symbol": "circle", + "datasetIndex": 0, + "seriesLayoutBy": "row", + } + ], + }; + + + var chart = testHelper.create(echarts, 'main2', { + title: [ + 'first is typed array' + ], + option: option + // height: 300, + // buttons: [{text: 'btn-txt', onclick: function () {}}], + // recordCanvas: true, + }); + }); + </script> + + + <script> + require([ + 'echarts', + // 'map/js/china', + // './data/nutrients.json' + ], function (echarts) { + + var option; + + var dataset = [ + [1, 2, 3, 4, 5, 6, 7], + [1, 2, 3, 4, 5, 6, 7], + ]; + // [1, 2, 3, 4, 5, 6, 7], + + option = { + "xAxis": { + "type": "value", + "show": true, + }, + "yAxis": { + "type": "value", + "show": true, + }, + tooltip: { show: true }, + "dataset": [ + { + "sourceHeader": false, + "source": dataset + } + ], + "series": [ + { + "type": "line", + "symbol": "circle", + "datasetIndex": 0, + "seriesLayoutBy": "row", + } + ], + }; + + + var chart = testHelper.create(echarts, 'main3', { + title: [ + 'none typed array' + ], + option: option + // height: 300, + // buttons: [{text: 'btn-txt', onclick: function () {}}], + // recordCanvas: true, + }); + }); + </script> + +</body> + +</html> \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org For additional commands, e-mail: commits-h...@echarts.apache.org