You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by wa...@apache.org on 2021/02/28 11:38:52 UTC
[echarts] 01/01: refactor(theme): make themes installable,
provide self-registered lib,
pure object lib and installable lib. - Related apache/echarts#14351,
apache/echarts#14352.
This is an automated email from the ASF dual-hosted git repository.
wangzx pushed a commit to branch installable-theme-extension-i18n
in repository https://gitbox.apache.org/repos/asf/echarts.git
commit 2700d5f043ec26bb73414d9e10ff4d817c037933
Author: plainheart <yh...@all-my-life.cn>
AuthorDate: Sun Feb 28 19:33:32 2021 +0800
refactor(theme): make themes installable, provide self-registered lib, pure object lib and installable lib.
- Related apache/echarts#14351, apache/echarts#14352.
---
build/build-theme.js | 67 ++++++
build/umd-wrapper.js | 26 +++
package.json | 5 +-
src/core/echarts.ts | 4 +-
src/extension.ts | 2 +
src/theme/{light.ts => azul.ts} | 18 +-
src/theme/{light.ts => azul/install.ts} | 20 +-
src/theme/azul/theme.ts | 135 +++++++++++++
src/theme/{light.ts => bee-inspired.ts} | 18 +-
src/theme/{light.ts => bee-inspired/install.ts} | 20 +-
src/theme/bee-inspired/theme.ts | 150 ++++++++++++++
src/theme/{light.ts => blue.ts} | 18 +-
src/theme/{light.ts => blue/install.ts} | 20 +-
src/theme/blue/theme.ts | 150 ++++++++++++++
src/theme/{light.ts => caravan.ts} | 18 +-
src/theme/{light.ts => caravan/install.ts} | 20 +-
src/theme/caravan/theme.ts | 150 ++++++++++++++
src/theme/{light.ts => carp.ts} | 18 +-
src/theme/{light.ts => carp/install.ts} | 20 +-
src/theme/carp/theme.ts | 135 +++++++++++++
src/theme/{light.ts => cool.ts} | 18 +-
src/theme/{light.ts => cool/install.ts} | 20 +-
src/theme/cool/theme.ts | 152 ++++++++++++++
src/theme/{light.ts => dark-blue.ts} | 18 +-
src/theme/{light.ts => dark-blue/install.ts} | 20 +-
src/theme/dark-blue/theme.ts | 141 +++++++++++++
src/theme/{light.ts => dark-bold.ts} | 18 +-
src/theme/{light.ts => dark-bold/install.ts} | 20 +-
src/theme/dark-bold/theme.ts | 141 +++++++++++++
src/theme/{light.ts => dark-digerati.ts} | 18 +-
src/theme/{light.ts => dark-digerati/install.ts} | 20 +-
src/theme/dark-digerati/theme.ts | 141 +++++++++++++
src/theme/{light.ts => dark-fresh-cut.ts} | 18 +-
src/theme/{light.ts => dark-fresh-cut/install.ts} | 20 +-
src/theme/dark-fresh-cut/theme.ts | 141 +++++++++++++
src/theme/{light.ts => dark-mushroom.ts} | 18 +-
src/theme/{light.ts => dark-mushroom/install.ts} | 20 +-
src/theme/dark-mushroom/theme.ts | 140 +++++++++++++
src/theme/{light.ts => dark/install.ts} | 20 +-
src/theme/{dark.ts => dark/theme.ts} | 2 +
src/theme/{light.ts => eduardo.ts} | 18 +-
src/theme/{light.ts => eduardo/install.ts} | 20 +-
src/theme/eduardo/theme.ts | 150 ++++++++++++++
src/theme/{light.ts => forest.ts} | 18 +-
src/theme/{light.ts => forest/install.ts} | 20 +-
src/theme/forest/theme.ts | 135 +++++++++++++
src/theme/{light.ts => fresh-cut.ts} | 18 +-
src/theme/{light.ts => fresh-cut/install.ts} | 20 +-
src/theme/fresh-cut/theme.ts | 135 +++++++++++++
src/theme/{light.ts => fruit.ts} | 18 +-
src/theme/{light.ts => fruit/install.ts} | 20 +-
src/theme/fruit/theme.ts | 150 ++++++++++++++
src/theme/{light.ts => gray.ts} | 18 +-
src/theme/{light.ts => gray/install.ts} | 20 +-
src/theme/gray/theme.ts | 192 ++++++++++++++++++
src/theme/{light.ts => green.ts} | 18 +-
src/theme/{light.ts => green/install.ts} | 20 +-
src/theme/green/theme.ts | 194 ++++++++++++++++++
src/theme/{light.ts => helianthus.ts} | 18 +-
src/theme/{light.ts => helianthus/install.ts} | 20 +-
src/theme/helianthus/theme.ts | 235 ++++++++++++++++++++++
src/theme/helper.ts | 13 ++
src/theme/{light.ts => infographic.ts} | 18 +-
src/theme/{light.ts => infographic/install.ts} | 20 +-
src/theme/infographic/theme.ts | 208 +++++++++++++++++++
src/theme/{light.ts => inspired.ts} | 18 +-
src/theme/{light.ts => inspired/install.ts} | 20 +-
src/theme/inspired/theme.ts | 135 +++++++++++++
src/theme/{light.ts => jazz.ts} | 18 +-
src/theme/{light.ts => jazz/install.ts} | 20 +-
src/theme/jazz/theme.ts | 135 +++++++++++++
src/theme/{light.ts => light/install.ts} | 20 +-
src/theme/{light.ts => light/theme.ts} | 4 +-
src/theme/{light.ts => london.ts} | 18 +-
src/theme/{light.ts => london/install.ts} | 20 +-
src/theme/london/theme.ts | 135 +++++++++++++
src/theme/{light.ts => macarons.ts} | 18 +-
src/theme/{light.ts => macarons/install.ts} | 20 +-
src/theme/macarons/theme.ts | 213 ++++++++++++++++++++
src/theme/{light.ts => macarons2.ts} | 18 +-
src/theme/{light.ts => macarons2/install.ts} | 20 +-
src/theme/macarons2/theme.ts | 221 ++++++++++++++++++++
src/theme/{light.ts => mint.ts} | 18 +-
src/theme/{light.ts => mint/install.ts} | 20 +-
src/theme/mint/theme.ts | 127 ++++++++++++
src/theme/{light.ts => red-velvet.ts} | 18 +-
src/theme/{light.ts => red-velvet/install.ts} | 20 +-
src/theme/red-velvet/theme.ts | 135 +++++++++++++
src/theme/{light.ts => red.ts} | 18 +-
src/theme/{light.ts => red/install.ts} | 20 +-
src/theme/red/theme.ts | 197 ++++++++++++++++++
src/theme/{light.ts => roma.ts} | 18 +-
src/theme/{light.ts => roma/install.ts} | 20 +-
src/theme/roma/theme.ts | 91 +++++++++
src/theme/{light.ts => royal.ts} | 18 +-
src/theme/{light.ts => royal/install.ts} | 20 +-
src/theme/royal/theme.ts | 135 +++++++++++++
src/theme/{light.ts => sakura.ts} | 18 +-
src/theme/{light.ts => sakura/install.ts} | 20 +-
src/theme/sakura/theme.ts | 112 +++++++++++
src/theme/{light.ts => shine.ts} | 18 +-
src/theme/{light.ts => shine/install.ts} | 20 +-
src/theme/shine/theme.ts | 151 ++++++++++++++
src/theme/{light.ts => tech-blue.ts} | 18 +-
src/theme/{light.ts => tech-blue/install.ts} | 20 +-
src/theme/tech-blue/theme.ts | 152 ++++++++++++++
src/theme/{light.ts => vintage.ts} | 18 +-
src/theme/{light.ts => vintage/install.ts} | 20 +-
src/theme/vintage/theme.ts | 39 ++++
109 files changed, 5345 insertions(+), 1025 deletions(-)
diff --git a/build/build-theme.js b/build/build-theme.js
new file mode 100644
index 0000000..370405a
--- /dev/null
+++ b/build/build-theme.js
@@ -0,0 +1,67 @@
+/*
+* 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.
+*/
+
+const fs = require('fs');
+const path = require('path');
+const fsExtra = require('fs-extra');
+const {
+ umdWrapperHead,
+ umdWrapperHeadWithECharts,
+ umdWrapperTail
+} = require('./umd-wrapper');
+
+async function buildThemeWrap() {
+ const targetDir = path.join(__dirname, '../theme');
+ const sourceDir = path.join(__dirname, '../src/theme');
+ const files = fs.readdirSync(sourceDir);
+ files.forEach(t => {
+ // only read dir
+ if(t.indexOf('.') !== -1) {
+ return;
+ }
+ const echartsRegister = `
+ echarts.registerTheme('${t}', themeObj);
+ `;
+ const pureExports = `
+ for (var key in themeObj) {
+ if (themeObj.hasOwnProperty(key)) {
+ exports[key] = themeObj[key];
+ }
+ }
+ `;
+ const code = fs.readFileSync(path.join(sourceDir, t + '/theme.ts'), 'utf-8');
+ const outputCode = code.replace(/export\s+?default/, 'var themeObj =')
+ .replace(/\/\*([\w\W]*?)\*\//, '')
+ // PENDING
+ .replace(/const /g, 'var ')
+ .replace(/ ?as any/g, '');
+
+ fsExtra.ensureDirSync(targetDir);
+
+ fs.writeFileSync(path.join(targetDir, t + '.js'), umdWrapperHeadWithECharts + outputCode + echartsRegister + umdWrapperTail, 'utf-8');
+ fs.writeFileSync(path.join(targetDir, t + '-obj.js'), umdWrapperHead + outputCode + pureExports + umdWrapperTail, 'utf-8');
+ })
+ console.log('theme build completed');
+}
+
+buildThemeWrap();
+
+module.exports = {
+ buildTheme: buildThemeWrap
+};
diff --git a/build/umd-wrapper.js b/build/umd-wrapper.js
new file mode 100644
index 0000000..dd34282
--- /dev/null
+++ b/build/umd-wrapper.js
@@ -0,0 +1,26 @@
+const preamble = require('./preamble');
+
+exports.umdWrapperHead = `${preamble.js}
+/**
+* AUTO-GENERATED FILE. DO NOT MODIFY.
+*/
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory({}));
+ }(this, (function (exports) {
+`;
+
+exports.umdWrapperHeadWithECharts = `${preamble.js}
+/**
+ * AUTO-GENERATED FILE. DO NOT MODIFY.
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('echarts/lib/echarts')) :
+ typeof define === 'function' && define.amd ? define(['exports', 'echarts'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory({}, global.echarts));
+ }(this, (function (exports, echarts) {
+`;
+
+exports.umdWrapperTail = `
+})));`;
diff --git a/package.json b/package.json
index 6d1b0e1..42ad540 100644
--- a/package.json
+++ b/package.json
@@ -43,12 +43,13 @@
"build": "node build/build.js --type all,common,simple --min",
"build:esm": "node build/build.js --type all --min --format esm",
"build:i18n": "node build/build-i18n.js",
+ "build:theme": "node build/build-theme.js",
"build:lib": "node build/build.js --prepublish",
"build:extension": "node build/build.js --type extension",
- "dev:fast": "node build/build-i18n.js && node build/dev-fast.js",
+ "dev:fast": "npm run build:i18n && npm run build:theme && node build/dev-fast.js",
"dev": "npm run dev:fast",
"prepublish": "npm run build:lib",
- "release": "npm run build:lib && npm run build:i18n && npm run build && npm run build:esm && npm run build:extension",
+ "release": "npm run build:lib && npm run build:i18n && npm run build:theme && npm run build && npm run build:esm && npm run build:extension",
"help": "node build/build.js --help",
"test:visual": "node test/runTest/server.js",
"test:visual:report": "node test/runTest/genReport.js",
diff --git a/src/core/echarts.ts b/src/core/echarts.ts
index b272247..8ba8106 100644
--- a/src/core/echarts.ts
+++ b/src/core/echarts.ts
@@ -66,8 +66,8 @@ import {throttle} from '../util/throttle';
import {seriesStyleTask, dataStyleTask, dataColorPaletteTask} from '../visual/style';
import loadingDefault from '../loading/default';
import Scheduler from './Scheduler';
-import lightTheme from '../theme/light';
-import darkTheme from '../theme/dark';
+import lightTheme from '../theme/light/theme';
+import darkTheme from '../theme/dark/theme';
import mapDataStorage from '../coord/geo/mapDataStorage';
import {CoordinateSystemMaster, CoordinateSystemCreator, CoordinateSystemHostModel} from '../coord/CoordinateSystem';
import { parseClassType } from '../util/clazz';
diff --git a/src/extension.ts b/src/extension.ts
index 2f223aa..d5c6780 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -29,6 +29,7 @@ import {
registerTransform,
registerLoading,
registerMap,
+ registerTheme,
PRIORITY
} from './core/echarts';
import ComponentView from './view/Component';
@@ -54,6 +55,7 @@ const extensionRegisters = {
registerTransform,
registerLoading,
registerMap,
+ registerTheme,
PRIORITY,
ComponentModel,
diff --git a/src/theme/light.ts b/src/theme/azul.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/azul.ts
index 8b28ea8..4ccd629 100644
--- a/src/theme/light.ts
+++ b/src/theme/azul.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './azul/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/azul/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/azul/install.ts
index 8b28ea8..4ef26e4 100644
--- a/src/theme/light.ts
+++ b/src/theme/azul/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import azulTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('azul', azulTheme);
+}
diff --git a/src/theme/azul/theme.ts b/src/theme/azul/theme.ts
new file mode 100644
index 0000000..077641a
--- /dev/null
+++ b/src/theme/azul/theme.ts
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#f2385a',
+ '#f5a503',
+ '#4ad9d9',
+ '#f7879c',
+ '#c1d7a8',
+ '#4dffd2',
+ '#fccfd7',
+ '#d5f6f6'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#f2385a'
+ }
+ },
+
+ visualMap: {
+ color: ['#f2385a', '#f5a503']
+ },
+
+ toolbox: {
+ color: ['#f2385a', '#f2385a', '#f2385a', '#f2385a']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#f2385a',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#f2385a'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#f2385a' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#f2385a'
+ },
+ controlStyle: {
+ color: '#f2385a',
+ borderColor: '#f2385a'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#f2385a',
+ color0: '#f5a503'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#f2385a',
+ color0: '#f5a503'
+ },
+ areaStyle: {
+ color: '#c1d7a8',
+ color0: '#4ad9d9'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#f2385a'
+ },
+ areaStyle: {
+ color: '#ddd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#f2385a'
+ },
+ linkStyle: {
+ color: '#f2385a'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#f5a503'],
+ [0.8, '#f2385a'],
+ [1, '#c1d7a8']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/bee-inspired.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/bee-inspired.ts
index 8b28ea8..e545ee9 100644
--- a/src/theme/light.ts
+++ b/src/theme/bee-inspired.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './bee-inspired/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/bee-inspired/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/bee-inspired/install.ts
index 8b28ea8..f5d72b7 100644
--- a/src/theme/light.ts
+++ b/src/theme/bee-inspired/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import beeInspiredTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('bee-inspired', beeInspiredTheme);
+}
diff --git a/src/theme/bee-inspired/theme.ts b/src/theme/bee-inspired/theme.ts
new file mode 100644
index 0000000..4bcae21
--- /dev/null
+++ b/src/theme/bee-inspired/theme.ts
@@ -0,0 +1,150 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#001727',
+ '#805500',
+ '#ffff00',
+ '#ffd11a',
+ '#f2d71f',
+ '#f2be19',
+ '#f3a81a',
+ '#fff5cc'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#001727'
+ }
+ },
+
+ visualMap: {
+ color: ['#001727', '#805500']
+ },
+
+ toolbox: {
+ color: ['#001727', '#001727', '#001727', '#001727']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#001727',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#001727'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#001727' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#001727'
+ },
+ controlStyle: {
+ color: '#001727',
+ borderColor: '#001727'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#f3a81a',
+ color0: '#ffff00'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#ffff00',
+ color0: '#f3a81a'
+ },
+ areaStyle: {
+ color: '#805500',
+ color0: '#ffff00'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#f3a81a',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#805500'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ffd11a'
+ },
+ areaStyle: {
+ color: '#f2be19'
+ },
+ label: {
+ color: '#ffd11a'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#001727'
+ },
+ linkStyle: {
+ color: '#001727'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#f2d71f'],
+ [0.8, '#001727'],
+ [1, '#ffff00']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/blue.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/blue.ts
index 8b28ea8..83ec2c0 100644
--- a/src/theme/light.ts
+++ b/src/theme/blue.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './blue/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/blue/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/blue/install.ts
index 8b28ea8..cb74098 100644
--- a/src/theme/light.ts
+++ b/src/theme/blue/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import blueTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('blue', blueTheme);
+}
diff --git a/src/theme/blue/theme.ts b/src/theme/blue/theme.ts
new file mode 100644
index 0000000..c9465c0
--- /dev/null
+++ b/src/theme/blue/theme.ts
@@ -0,0 +1,150 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#1790cf',
+ '#1bb2d8',
+ '#99d2dd',
+ '#88b0bb',
+ '#1c7099',
+ '#038cc4',
+ '#75abd0',
+ '#afd6dd'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#1790cf'
+ }
+ },
+
+ visualMap: {
+ color: ['#1790cf', '#a2d4e6']
+ },
+
+ toolbox: {
+ color: ['#1790cf', '#1790cf', '#1790cf', '#1790cf']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#1790cf',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#1790cf'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(144,197,237,0.2)', // Fill the color
+ handleColor: '#1790cf' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#1790cfa'
+ },
+ controlStyle: {
+ color: '#1790cf',
+ borderColor: '#1790cf'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#1bb2d8',
+ color0: '#99d2dd'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#1c7099',
+ color0: '#88b0bb'
+ },
+ areaStyle: {
+ color: '#1790cf',
+ color0: '#1bb2d8'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#1bb2d8',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#1790cf'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#1bb2d8'
+ },
+ linkStyle: {
+ color: '#88b0bb'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ddd'
+ },
+ areaStyle: {
+ color: '99d2dd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#1bb2d8'],
+ [0.8, '#1790cf'],
+ [1, '#1c7099']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/caravan.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/caravan.ts
index 8b28ea8..401d279 100644
--- a/src/theme/light.ts
+++ b/src/theme/caravan.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './caravan/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/caravan/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/caravan/install.ts
index 8b28ea8..6834cc8 100644
--- a/src/theme/light.ts
+++ b/src/theme/caravan/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import caravanTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('caravan', caravanTheme);
+}
diff --git a/src/theme/caravan/theme.ts b/src/theme/caravan/theme.ts
new file mode 100644
index 0000000..a996ece
--- /dev/null
+++ b/src/theme/caravan/theme.ts
@@ -0,0 +1,150 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#fad089',
+ '#ff9c5b',
+ '#f5634a',
+ '#ed303c',
+ '#3b8183',
+ '#f7826e',
+ '#faac9e',
+ '#fcd5cf'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#fad089'
+ }
+ },
+
+ visualMap: {
+ color: ['#fad089', '#a2d4e6']
+ },
+
+ toolbox: {
+ color: ['#fad089', '#fad089', '#fad089', '#fad089']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#fad089',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#fad089'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(144,197,237,0.2)', // Fill the color
+ handleColor: '#fad089' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#fad089'
+ },
+ controlStyle: {
+ color: '#fad089',
+ borderColor: '#fad089'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#ff9c5b',
+ color0: '#f5634a'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#3b8183',
+ color0: '#ed303c'
+ },
+ areaStyle: {
+ color: '#fad089',
+ color0: '#ed303c'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#fad089',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#ed303c'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ddd'
+ },
+ areaStyle: {
+ color: '#f5634a'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#f5634a'
+ },
+ linkStyle: {
+ color: '#fad089'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#ff9c5b'],
+ [0.8, '#fad089'],
+ [1, '#3b8183']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/carp.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/carp.ts
index 8b28ea8..e0161e0 100644
--- a/src/theme/light.ts
+++ b/src/theme/carp.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './carp/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/carp/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/carp/install.ts
index 8b28ea8..bdce2a3 100644
--- a/src/theme/light.ts
+++ b/src/theme/carp/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import carpTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('carp', carpTheme);
+}
diff --git a/src/theme/carp/theme.ts b/src/theme/carp/theme.ts
new file mode 100644
index 0000000..21d6aa0
--- /dev/null
+++ b/src/theme/carp/theme.ts
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#f0d8A8',
+ '#3d1c00',
+ '#86b8b1',
+ '#f2d694',
+ '#fa2a00',
+ '#ff8066',
+ '#ffd5cc',
+ '#f9edd2'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#f0d8A8'
+ }
+ },
+
+ visualMap: {
+ color: ['#f0d8A8', '#3d1c00']
+ },
+
+ toolbox: {
+ color: ['#f0d8A8', '#f0d8A8', '#f0d8A8', '#f0d8A8']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#f0d8A8',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#f0d8A8'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#f0d8A8' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#f0dba8'
+ },
+ controlStyle: {
+ color: '#f0dba8',
+ borderColor: '#f0dba8'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#3d1c00',
+ color0: '#86b8b1'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#fa2a00',
+ color0: '#f2d694'
+ },
+ areaStyle: {
+ color: '#f0d8A8',
+ color0: '#86b8b1'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ddd'
+ },
+ areaStyle: {
+ color: '#86b8b1'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#3d1c00'
+ },
+ linkStyle: {
+ color: '#f0d8A8'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#3d1c00'],
+ [0.8, '#f0d8A8'],
+ [1, '#fa2a00']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/cool.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/cool.ts
index 8b28ea8..1da24b3 100644
--- a/src/theme/light.ts
+++ b/src/theme/cool.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './cool/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/cool/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/cool/install.ts
index 8b28ea8..4bc04f3 100644
--- a/src/theme/light.ts
+++ b/src/theme/cool/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import coolTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('cool', coolTheme);
+}
diff --git a/src/theme/cool/theme.ts b/src/theme/cool/theme.ts
new file mode 100644
index 0000000..cf755ab
--- /dev/null
+++ b/src/theme/cool/theme.ts
@@ -0,0 +1,152 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#b21ab4',
+ '#6f0099',
+ '#2a2073',
+ '#0b5ea8',
+ '#17aecc',
+ '#b3b3ff',
+ '#eb99ff',
+ '#fae6ff',
+ '#e6f2ff',
+ '#eeeeee'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#00aecd'
+ }
+ },
+
+ visualMap: {
+ color: ['#00aecd', '#a2d4e6']
+ },
+
+ toolbox: {
+ color: ['#00aecd', '#00aecd', '#00aecd', '#00aecd']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#00aecd',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#00aecd'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(144,197,237,0.2)', // Fill the color
+ handleColor: '#00aecd' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#00aecd'
+ },
+ controlStyle: {
+ color: '#00aecd',
+ borderColor: '00aecd'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#00aecd',
+ color0: '#a2d4e6'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#00aecd',
+ color0: '#a2d4e6'
+ },
+ areaStyle: {
+ color: '#b21ab4',
+ color0: '#0b5ea8'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#b21ab4',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#0b5ea8'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#b21ab4'
+ },
+ linkStyle: {
+ color: '#2a2073'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#c12e34'
+ },
+ areaStyle: {
+ color: '#ddd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#dddddd'],
+ [0.8, '#00aecd'],
+ [1, '#f5ccff']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/dark-blue.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-blue.ts
index 8b28ea8..3985b86 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-blue.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './dark-blue/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/dark-blue/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-blue/install.ts
index 8b28ea8..85a9f39 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-blue/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import darkBlueTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('dark-blue', darkBlueTheme);
+}
diff --git a/src/theme/dark-blue/theme.ts b/src/theme/dark-blue/theme.ts
new file mode 100644
index 0000000..28be1f7
--- /dev/null
+++ b/src/theme/dark-blue/theme.ts
@@ -0,0 +1,141 @@
+/*
+ * 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.
+ */
+
+const contrastColor = '#eee';
+const axisCommon = function () {
+ return {
+ axisLine: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisTick: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisLabel: {
+ color: contrastColor
+ },
+ splitLine: {
+ lineStyle: {
+ type: 'dashed',
+ color: '#aaa'
+ }
+ },
+ splitArea: {
+ areaStyle: {
+ color: contrastColor
+ }
+ }
+ };
+};
+
+const colorPalette = [
+ '#00305a',
+ '#004b8d',
+ '#0074d9',
+ '#4192d9',
+ '#7abaf2',
+ '#99cce6',
+ '#d6ebf5',
+ '#eeeeee'
+];
+
+const theme = {
+ color: colorPalette,
+ backgroundColor: '#333',
+ tooltip: {
+ axisPointer: {
+ lineStyle: {
+ color: contrastColor
+ },
+ crossStyle: {
+ color: contrastColor
+ }
+ }
+ },
+ legend: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ title: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ toolbox: {
+ iconStyle: {
+ borderColor: contrastColor
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#00305a' // Handle color
+ },
+
+ timeline: {
+ itemStyle: {
+ color: colorPalette[1]
+ },
+ lineStyle: {
+ color: contrastColor
+ },
+ controlStyle: {
+ color: contrastColor,
+ borderColor: contrastColor
+ },
+ label: {
+ color: contrastColor
+ }
+ },
+
+ timeAxis: axisCommon(),
+ logAxis: axisCommon(),
+ valueAxis: axisCommon(),
+ categoryAxis: axisCommon(),
+
+ line: {
+ symbol: 'circle'
+ },
+ graph: {
+ color: colorPalette
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#004b8d'],
+ [0.8, '#00305a'],
+ [1, '#7abaf2']
+ ],
+ width: 8
+ }
+ }
+ }
+};
+
+(theme.categoryAxis.splitLine as any).show = false;
+
+export default theme;
diff --git a/src/theme/light.ts b/src/theme/dark-bold.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-bold.ts
index 8b28ea8..20a9813 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-bold.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './dark-bold/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/dark-bold/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-bold/install.ts
index 8b28ea8..e4fba80 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-bold/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import darkBoldTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('dark-bold', darkBoldTheme);
+}
diff --git a/src/theme/dark-bold/theme.ts b/src/theme/dark-bold/theme.ts
new file mode 100644
index 0000000..235f991
--- /dev/null
+++ b/src/theme/dark-bold/theme.ts
@@ -0,0 +1,141 @@
+/*
+ * 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.
+ */
+
+const contrastColor = '#eee';
+const axisCommon = function () {
+ return {
+ axisLine: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisTick: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisLabel: {
+ color: contrastColor
+ },
+ splitLine: {
+ lineStyle: {
+ type: 'dashed',
+ color: '#aaa'
+ }
+ },
+ splitArea: {
+ areaStyle: {
+ color: contrastColor
+ }
+ }
+ };
+};
+
+const colorPalette = [
+ '#458c6b',
+ '#f2da87',
+ '#d9a86c',
+ '#d94436',
+ '#a62424',
+ '#76bc9b',
+ '#cce6da',
+ '#eeeeee'
+];
+
+const theme = {
+ color: colorPalette,
+ backgroundColor: '#333',
+ tooltip: {
+ axisPointer: {
+ lineStyle: {
+ color: contrastColor
+ },
+ crossStyle: {
+ color: contrastColor
+ }
+ }
+ },
+ legend: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ title: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ toolbox: {
+ iconStyle: {
+ borderColor: contrastColor
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#458c6b' // Handle color
+ },
+
+ timeline: {
+ itemStyle: {
+ color: colorPalette[1]
+ },
+ lineStyle: {
+ color: contrastColor
+ },
+ controlStyle: {
+ color: contrastColor,
+ borderColor: contrastColor
+ },
+ label: {
+ color: contrastColor
+ }
+ },
+
+ timeAxis: axisCommon(),
+ logAxis: axisCommon(),
+ valueAxis: axisCommon(),
+ categoryAxis: axisCommon(),
+
+ line: {
+ symbol: 'circle'
+ },
+ graph: {
+ color: colorPalette
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#f2da87'],
+ [0.8, '#458c6b'],
+ [1, '#a62424']
+ ],
+ width: 8
+ }
+ }
+ }
+};
+
+(theme.categoryAxis.splitLine as any).show = false;
+
+export default theme;
diff --git a/src/theme/light.ts b/src/theme/dark-digerati.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-digerati.ts
index 8b28ea8..c36bf8d 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-digerati.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './dark-digerati/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/dark-digerati/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-digerati/install.ts
index 8b28ea8..00cfe0f 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-digerati/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import darkDigeratiTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('dark-digerati', darkDigeratiTheme);
+}
diff --git a/src/theme/dark-digerati/theme.ts b/src/theme/dark-digerati/theme.ts
new file mode 100644
index 0000000..30aac8d
--- /dev/null
+++ b/src/theme/dark-digerati/theme.ts
@@ -0,0 +1,141 @@
+/*
+ * 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.
+ */
+
+const contrastColor = '#eee';
+const axisCommon = function () {
+ return {
+ axisLine: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisTick: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisLabel: {
+ color: contrastColor
+ },
+ splitLine: {
+ lineStyle: {
+ type: 'dashed',
+ color: '#aaa'
+ }
+ },
+ splitArea: {
+ areaStyle: {
+ color: contrastColor
+ }
+ }
+ };
+};
+
+const colorPalette = [
+ '#52656b',
+ '#ff3b77',
+ '#a3cc00',
+ '#ffffff',
+ '#b8b89f',
+ '#ffccdb',
+ '#e5ff80',
+ '#f4f4f0'
+];
+
+const theme = {
+ color: colorPalette,
+ backgroundColor: '#333',
+ tooltip: {
+ axisPointer: {
+ lineStyle: {
+ color: contrastColor
+ },
+ crossStyle: {
+ color: contrastColor
+ }
+ }
+ },
+ legend: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ title: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ toolbox: {
+ iconStyle: {
+ borderColor: contrastColor
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#52656b' // Handle color
+ },
+
+ timeline: {
+ itemStyle: {
+ color: colorPalette[1]
+ },
+ lineStyle: {
+ color: contrastColor
+ },
+ controlStyle: {
+ color: contrastColor,
+ borderColor: contrastColor
+ },
+ label: {
+ color: contrastColor
+ }
+ },
+
+ timeAxis: axisCommon(),
+ logAxis: axisCommon(),
+ valueAxis: axisCommon(),
+ categoryAxis: axisCommon(),
+
+ line: {
+ symbol: 'circle'
+ },
+ graph: {
+ color: colorPalette
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#ff3b77'],
+ [0.8, '#52656b'],
+ [1, '#b8b89f']
+ ],
+ width: 8
+ }
+ }
+ }
+};
+
+(theme.categoryAxis.splitLine as any).show = false;
+
+export default theme;
diff --git a/src/theme/light.ts b/src/theme/dark-fresh-cut.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-fresh-cut.ts
index 8b28ea8..5dfce48 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-fresh-cut.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './dark-fresh-cut/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/dark-fresh-cut/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-fresh-cut/install.ts
index 8b28ea8..e39790a 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-fresh-cut/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import darkFreshCutTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('dark-fresh-cut', darkFreshCutTheme);
+}
diff --git a/src/theme/dark-fresh-cut/theme.ts b/src/theme/dark-fresh-cut/theme.ts
new file mode 100644
index 0000000..1ec9eb5
--- /dev/null
+++ b/src/theme/dark-fresh-cut/theme.ts
@@ -0,0 +1,141 @@
+/*
+ * 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.
+ */
+
+const contrastColor = '#eee';
+const axisCommon = function () {
+ return {
+ axisLine: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisTick: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisLabel: {
+ color: contrastColor
+ },
+ splitLine: {
+ lineStyle: {
+ type: 'dashed',
+ color: '#aaa'
+ }
+ },
+ splitArea: {
+ areaStyle: {
+ color: contrastColor
+ }
+ }
+ };
+};
+
+const colorPalette = [
+ '#00a8c6',
+ '#40c0cb',
+ '#ebd3ad',
+ '#aee239',
+ '#8fbe00',
+ '#33e0ff',
+ '#b3f4ff',
+ '#e6ff99'
+];
+
+const theme = {
+ color: colorPalette,
+ backgroundColor: '#333',
+ tooltip: {
+ axisPointer: {
+ lineStyle: {
+ color: contrastColor
+ },
+ crossStyle: {
+ color: contrastColor
+ }
+ }
+ },
+ legend: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ title: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ toolbox: {
+ iconStyle: {
+ borderColor: contrastColor
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#00a8c6' // Handle color
+ },
+
+ timeline: {
+ itemStyle: {
+ color: colorPalette[1]
+ },
+ lineStyle: {
+ color: contrastColor
+ },
+ controlStyle: {
+ color: contrastColor,
+ borderColor: contrastColor
+ },
+ label: {
+ color: contrastColor
+ }
+ },
+
+ timeAxis: axisCommon(),
+ logAxis: axisCommon(),
+ valueAxis: axisCommon(),
+ categoryAxis: axisCommon(),
+
+ line: {
+ symbol: 'circle'
+ },
+ graph: {
+ color: colorPalette
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#40c0cb'],
+ [0.8, '#00a8c6'],
+ [1, '#8fbe00']
+ ],
+ width: 8
+ }
+ }
+ }
+};
+
+(theme.categoryAxis.splitLine as any).show = false;
+
+export default theme;
diff --git a/src/theme/light.ts b/src/theme/dark-mushroom.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-mushroom.ts
index 8b28ea8..7130c8f 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-mushroom.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './dark-mushroom/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/dark-mushroom/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark-mushroom/install.ts
index 8b28ea8..87d9c37 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark-mushroom/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import darkMushroomTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('dark-mushroom', darkMushroomTheme);
+}
diff --git a/src/theme/dark-mushroom/theme.ts b/src/theme/dark-mushroom/theme.ts
new file mode 100644
index 0000000..8ed86c6
--- /dev/null
+++ b/src/theme/dark-mushroom/theme.ts
@@ -0,0 +1,140 @@
+/*
+* 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.
+*/
+
+const contrastColor = '#eee';
+const axisCommon = function () {
+ return {
+ axisLine: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisTick: {
+ lineStyle: {
+ color: contrastColor
+ }
+ },
+ axisLabel: {
+ color: contrastColor
+ },
+ splitLine: {
+ lineStyle: {
+ type: 'dashed',
+ color: '#aaa'
+ }
+ },
+ splitArea: {
+ areaStyle: {
+ color: contrastColor
+ }
+ }
+ };
+};
+
+const colorPalette = [
+ '#cc0e00',
+ '#ff1a0a',
+ '#ff8880',
+ '#ffc180',
+ '#ffc2b0',
+ '#ffffff',
+ '#ff8880',
+ '#ffe6e6'
+];
+const theme = {
+ color: colorPalette,
+ backgroundColor: '#333',
+ tooltip: {
+ axisPointer: {
+ lineStyle: {
+ color: contrastColor
+ },
+ crossStyle: {
+ color: contrastColor
+ }
+ }
+ },
+ legend: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ title: {
+ textStyle: {
+ color: contrastColor
+ }
+ },
+ toolbox: {
+ iconStyle: {
+ borderColor: contrastColor
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#cc0e00' // Handle color
+ },
+
+ timeline: {
+ itemStyle: {
+ color: colorPalette[1]
+ },
+ lineStyle: {
+ color: contrastColor
+ },
+ controlStyle: {
+ color: contrastColor,
+ borderColor: contrastColor
+ },
+ label: {
+ color: contrastColor
+ }
+ },
+
+ timeAxis: axisCommon(),
+ logAxis: axisCommon(),
+ valueAxis: axisCommon(),
+ categoryAxis: axisCommon(),
+
+ line: {
+ symbol: 'circle'
+ },
+ graph: {
+ color: colorPalette
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#ff1a0a'],
+ [0.8, '#cc0e00'],
+ [1, '#ffc2b0']
+ ],
+ width: 8
+ }
+ }
+ }
+};
+
+(theme.categoryAxis.splitLine as any).show = false;
+
+export default theme;
diff --git a/src/theme/light.ts b/src/theme/dark/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/dark/install.ts
index 8b28ea8..f8a54fc 100644
--- a/src/theme/light.ts
+++ b/src/theme/dark/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import darkTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('dark', darkTheme);
+}
diff --git a/src/theme/dark.ts b/src/theme/dark/theme.ts
similarity index 99%
rename from src/theme/dark.ts
rename to src/theme/dark/theme.ts
index 2fa611a..5b1091f 100644
--- a/src/theme/dark.ts
+++ b/src/theme/dark/theme.ts
@@ -17,6 +17,8 @@
* under the License.
*/
+// registerd by default
+
const contrastColor = '#B9B8CE';
const backgroundColor = '#100C2A';
const axisCommon = function () {
diff --git a/src/theme/light.ts b/src/theme/eduardo.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/eduardo.ts
index 8b28ea8..fa4487f 100644
--- a/src/theme/light.ts
+++ b/src/theme/eduardo.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './eduardo/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/eduardo/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/eduardo/install.ts
index 8b28ea8..bb90a34 100644
--- a/src/theme/light.ts
+++ b/src/theme/eduardo/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import eduardoTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('eduardo', eduardoTheme);
+}
diff --git a/src/theme/eduardo/theme.ts b/src/theme/eduardo/theme.ts
new file mode 100644
index 0000000..1a84df5
--- /dev/null
+++ b/src/theme/eduardo/theme.ts
@@ -0,0 +1,150 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#59535e',
+ '#e7dcef',
+ '#f1baf3',
+ '#5d4970',
+ '#372049',
+ '#c0b2cd',
+ '#ffccff',
+ '#f2f0f5'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#59535e'
+ }
+ },
+
+ visualMap: {
+ color: ['#59535e', '#e7dcef']
+ },
+
+ toolbox: {
+ color: ['#59535e', '#59535e', '#59535e', '#59535e']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#59535e',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#59535e'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#59535e' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#59535e'
+ },
+ controlStyle: {
+ color: '#59535e',
+ borderColor: '#59535e'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#e7dcef',
+ color0: '#f1baf3'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#372049',
+ color0: '#5d4970'
+ },
+ areaStyle: {
+ color: '#59535e',
+ color0: '#e7dcef'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#59535e',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#e7dcef'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ddd'
+ },
+ areaStyle: {
+ color: '#f1baf3'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#59535e'
+ },
+ linkStyle: {
+ color: '#59535e'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#e7dcef'],
+ [0.8, '#59535e'],
+ [1, '#372049']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/forest.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/forest.ts
index 8b28ea8..1d35023 100644
--- a/src/theme/light.ts
+++ b/src/theme/forest.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './forest/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/forest/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/forest/install.ts
index 8b28ea8..da78353 100644
--- a/src/theme/light.ts
+++ b/src/theme/forest/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import forestTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('forest', forestTheme);
+}
diff --git a/src/theme/forest/theme.ts b/src/theme/forest/theme.ts
new file mode 100644
index 0000000..59e77ac
--- /dev/null
+++ b/src/theme/forest/theme.ts
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#313b23',
+ '#494f2b',
+ '#606233',
+ '#d6b77b',
+ '#0e0e0e',
+ '#076278',
+ '#808080',
+ '#e7d5b1'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#313b23'
+ }
+ },
+
+ visualMap: {
+ color: ['#313b23', '#494f2b']
+ },
+
+ toolbox: {
+ color: ['#313b23', '#313b23', '#313b23', '#313b23']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#313b23',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#313b23'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#313b23' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#313b23'
+ },
+ controlStyle: {
+ color: '#313b23',
+ borderColor: '#313b23'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#494f2b',
+ color0: '#606233'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#0e0e0e',
+ color0: '#d6b77b'
+ },
+ areaStyle: {
+ color: '#494f2b',
+ color0: '#d6b77b'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#606233'
+ },
+ areaStyle: {
+ color: '#ddd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#494f2b'
+ },
+ linkStyle: {
+ color: '#313b23'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#494f2b'],
+ [0.8, '#313b23'],
+ [1, '0e0e0e']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/fresh-cut.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/fresh-cut.ts
index 8b28ea8..dc5ff8e 100644
--- a/src/theme/light.ts
+++ b/src/theme/fresh-cut.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './fresh-cut/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/fresh-cut/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/fresh-cut/install.ts
index 8b28ea8..dd09ab0 100644
--- a/src/theme/light.ts
+++ b/src/theme/fresh-cut/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import freshCutTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('fresh-cut', freshCutTheme);
+}
diff --git a/src/theme/fresh-cut/theme.ts b/src/theme/fresh-cut/theme.ts
new file mode 100644
index 0000000..45f537f
--- /dev/null
+++ b/src/theme/fresh-cut/theme.ts
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#00a8c6',
+ '#40c0cb',
+ '#f0dec2',
+ '#aee239',
+ '#8fbe00',
+ '#33e0ff',
+ '#b3f4ff',
+ '#e6ff99'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#00a8c6'
+ }
+ },
+
+ visualMap: {
+ color: ['#00a8c6', '#a2d4e6']
+ },
+
+ toolbox: {
+ color: ['#00a8c6', '#00a8c6', '#00a8c6', '#00a8c6']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#00a8c6',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#00a8c6'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(144,197,237,0.2)', // Fill the color
+ handleColor: '#00a8c6' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#00a8c6'
+ },
+ controlStyle: {
+ color: '#00a8c6',
+ borderColor: '#00a8c6'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#40c0cb',
+ color0: '#f0dec2'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#8fbe00',
+ color0: '#aee239'
+ },
+ areaStyle: {
+ color: '#00a8c6',
+ color0: '#aee239'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ddd'
+ },
+ areaStyle: {
+ color: '#f0dec2'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#f0dec2'
+ },
+ linkStyle: {
+ color: '#00a8c6'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#40c0cb'],
+ [0.8, '#00a8c6'],
+ [1, '#8fbe00']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/fruit.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/fruit.ts
index 8b28ea8..29876c7 100644
--- a/src/theme/light.ts
+++ b/src/theme/fruit.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './fruit/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/fruit/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/fruit/install.ts
index 8b28ea8..c3e1051 100644
--- a/src/theme/light.ts
+++ b/src/theme/fruit/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import fruitTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('fruit', fruitTheme);
+}
diff --git a/src/theme/fruit/theme.ts b/src/theme/fruit/theme.ts
new file mode 100644
index 0000000..19b84a4
--- /dev/null
+++ b/src/theme/fruit/theme.ts
@@ -0,0 +1,150 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#ffcb6a',
+ '#ffa850',
+ '#ffe2c4',
+ '#e5834e',
+ '#ffb081',
+ '#f7826e',
+ '#faac9e',
+ '#fcd5cf'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#ffcb6a'
+ }
+ },
+
+ visualMap: {
+ color: ['#ffcb6a', '#ffa850']
+ },
+
+ toolbox: {
+ color: ['#ffcb6a', '#ffcb6a', '#ffcb6a', '#ffcb6a']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#ffcb6a',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#ffcb6a'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#ffcb6a' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#ffcb6a'
+ },
+ controlStyle: {
+ color: '#ffcb6a',
+ borderColor: '#ffcb6a'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#ffa850',
+ color0: '#ffe2c4'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#ffb081',
+ color0: '#e5834e'
+ },
+ areaStyle: {
+ color: '#e5834e',
+ color0: '#fcd5cf'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#fcd5cf',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#e5834e'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ffe2c4'
+ },
+ areaStyle: {
+ color: '#ddd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#f2385a'
+ },
+ linkStyle: {
+ color: '#ffcb6a'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#ffa850'],
+ [0.8, '#ffcb6a'],
+ [1, '#ffb081']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/gray.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/gray.ts
index 8b28ea8..947091b 100644
--- a/src/theme/light.ts
+++ b/src/theme/gray.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './gray/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/gray/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/gray/install.ts
index 8b28ea8..e31b551 100644
--- a/src/theme/light.ts
+++ b/src/theme/gray/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import grayTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('gray', grayTheme);
+}
diff --git a/src/theme/gray/theme.ts b/src/theme/gray/theme.ts
new file mode 100644
index 0000000..2177f6b
--- /dev/null
+++ b/src/theme/gray/theme.ts
@@ -0,0 +1,192 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#757575',
+ '#c7c7c7',
+ '#dadada',
+ '#8b8b8b',
+ '#b5b5b5',
+ '#e9e9e9'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#757575'
+ }
+ },
+
+ dataRange: {
+ color: ['#636363', '#dcdcdc']
+ },
+
+ toolbox: {
+ color: ['#757575', '#757575', '#757575', '#757575']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#757575',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#757575'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(117,117,117,0.2)', // Fill the color
+ handleColor: '#757575' // Handle color
+ },
+
+ grid: {
+ borderWidth: 0
+ },
+
+ categoryAxis: {
+ axisLine: {
+ // Coordinate axis
+ lineStyle: {
+ // Property 'lineStyle' controls line styles
+ color: '#757575'
+ }
+ },
+ splitLine: {
+ // Separation line
+ lineStyle: {
+ // Property 'lineStyle' (see lineStyle) controls line styles
+ color: ['#eee']
+ }
+ }
+ },
+
+ valueAxis: {
+ axisLine: {
+ // Coordinate axis
+ lineStyle: {
+ // Property 'lineStyle' controls line styles
+ color: '#757575'
+ }
+ },
+ splitArea: {
+ show: true,
+ areaStyle: {
+ color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']
+ }
+ },
+ splitLine: {
+ // Separation line
+ lineStyle: {
+ // Property 'lineStyle' (see lineStyle) controls line styles
+ color: ['#eee']
+ }
+ }
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#757575'
+ },
+ controlStyle: {
+ color: '#757575',
+ borderColor: '#757575'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#8b8b8b',
+ color0: '#dadada'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#757575',
+ color0: '#c7c7c7'
+ },
+ areaStyle: {
+ color: '#757575',
+ color0: '#e9e9e9'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#c7c7c7'
+ },
+ areaStyle: {
+ color: 'ddd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#e9e9e9'
+ },
+ linkStyle: {
+ color: '#757575'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#e9e9e9',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#757575'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#b5b5b5'],
+ [0.8, '#757575'],
+ [1, '#5c5c5c']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/green.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/green.ts
index 8b28ea8..341bfbe 100644
--- a/src/theme/light.ts
+++ b/src/theme/green.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './green/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/green/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/green/install.ts
index 8b28ea8..466bfd6 100644
--- a/src/theme/light.ts
+++ b/src/theme/green/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import greenTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('green', greenTheme);
+}
diff --git a/src/theme/green/theme.ts b/src/theme/green/theme.ts
new file mode 100644
index 0000000..57b3424
--- /dev/null
+++ b/src/theme/green/theme.ts
@@ -0,0 +1,194 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#408829',
+ '#68a54a',
+ '#a9cba2',
+ '#86b379',
+ '#397b29',
+ '#8abb6f',
+ '#759c6a',
+ '#bfd3b7'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#408829'
+ }
+ },
+
+ visualMap: {
+ color: ['408829', '#a9cba2']
+ },
+
+ toolbox: {
+ color: ['#408829', '#408829', '#408829', '#408829']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#408829',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#408829'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(64,136,41,0.2)', // Fill the color
+ handleColor: '#408829' // Handle color
+ },
+
+ grid: {
+ borderWidth: 0
+ },
+
+ categoryAxis: {
+ axisLine: {
+ // Coordinate axis
+ lineStyle: {
+ // Property 'lineStyle' controls line styles
+ color: '#408829'
+ }
+ },
+ splitLine: {
+ // Separation line
+ lineStyle: {
+ // Property 'lineStyle' (see lineStyle) controls line styles
+ color: ['#eee']
+ }
+ }
+ },
+
+ valueAxis: {
+ axisLine: {
+ // Coordinate axis
+ lineStyle: {
+ // Property 'lineStyle' controls line styles
+ color: '#408829'
+ }
+ },
+ splitArea: {
+ show: true,
+ areaStyle: {
+ color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']
+ }
+ },
+ splitLine: {
+ // Separation line
+ lineStyle: {
+ // Property 'lineStyle' (see lineStyle) controls line styles
+ color: ['#eee']
+ }
+ }
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#408829'
+ },
+ controlStyle: {
+ color: '#408829',
+ borderColor: '#408829'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#68a54a',
+ color0: '#a9cba2'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#408829',
+ color0: '#86b379'
+ },
+ areaStyle: {
+ color: '#408829',
+ color0: '#bfd3b7'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#bfd3b7'
+ },
+ linkStyle: {
+ color: '#408829'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#bfd3b7',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#408829'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ddd'
+ },
+ areaStyle: {
+ color: '#408829'
+ },
+ label: {
+ color: '#000'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#86b379'],
+ [0.8, '#68a54a'],
+ [1, '#408829']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/helianthus.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/helianthus.ts
index 8b28ea8..ce9dd36 100644
--- a/src/theme/light.ts
+++ b/src/theme/helianthus.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './helianthus/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/helianthus/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/helianthus/install.ts
index 8b28ea8..3e9286d 100644
--- a/src/theme/light.ts
+++ b/src/theme/helianthus/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import helianthusTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('helianthus', helianthusTheme);
+}
diff --git a/src/theme/helianthus/theme.ts b/src/theme/helianthus/theme.ts
new file mode 100644
index 0000000..c52d5b9
--- /dev/null
+++ b/src/theme/helianthus/theme.ts
@@ -0,0 +1,235 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#44B7D3',
+ '#E42B6D',
+ '#F4E24E',
+ '#FE9616',
+ '#8AED35',
+ '#ff69b4',
+ '#ba55d3',
+ '#cd5c5c',
+ '#ffa500',
+ '#40e0d0',
+ '#E95569',
+ '#ff6347',
+ '#7b68ee',
+ '#00fa9a',
+ '#ffd700',
+ '#6699FF',
+ '#ff6666',
+ '#3cb371',
+ '#b8860b',
+ '#30e0e0'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#8A826D'
+ }
+ },
+
+ dataRange: {
+ x: 'right',
+ y: 'center',
+ itemWidth: 5,
+ itemHeight: 25,
+ color: ['#E42B6D', '#F9AD96'],
+ text: ['High', 'Low'], // Text, default is numeric text
+ textStyle: {
+ color: '#8A826D' // Range text color
+ }
+ },
+
+ toolbox: {
+ color: ['#E95569', '#E95569', '#E95569', '#E95569'],
+ effectiveColor: '#ff4500',
+ itemGap: 8
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(138,130,109,0.7)', // Prompt background color, default is black with a transparency of 0.7
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#6B6455',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#A6A299'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: 'rgba(130,197,209,0.6)', // Data background color
+ fillerColor: 'rgba(233,84,105,0.1)', // Fill the color
+ handleColor: 'rgba(107,99,84,0.8)' // Handle color
+ },
+
+ grid: {
+ borderWidth: 0
+ },
+
+ categoryAxis: {
+ axisLine: {
+ // Coordinate axis
+ lineStyle: {
+ // Property 'lineStyle' controls line styles
+ color: '#6B6455'
+ }
+ },
+ splitLine: {
+ // separate line
+ show: false
+ }
+ },
+
+ valueAxis: {
+ axisLine: {
+ // Coordinate axis
+ show: true
+ },
+ splitArea: {
+ show: false
+ },
+ splitLine: {
+ // separate line
+ lineStyle: {
+ // Property 'lineStyle' controls line styles
+ color: ['#FFF'],
+ type: 'dashed'
+ }
+ }
+ },
+
+ polar: {
+ axisLine: {
+ // Coordinate axis
+ lineStyle: {
+ // // Property 'lineStyle' controls line styles
+ color: '#ddd'
+ }
+ },
+ splitArea: {
+ show: true,
+ areaStyle: {
+ color: ['rgba(250,250,250,0.2)', 'rgba(200,200,200,0.2)']
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ color: '#ddd'
+ }
+ }
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#6B6455'
+ },
+ controlStyle: {
+ color: '#6B6455',
+ borderColor: '#6B6455'
+ }
+ },
+
+ line: {
+ smooth: true,
+ symbol: 'emptyCircle', // Inflection point graphic type
+ symbolSize: 3 // Inflection point graphic size
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#e42B6d',
+ color0: '#44B7d3'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#e42B6d',
+ color0: '#44B7d3'
+ },
+ areaStyle: {
+ color: '#fe994e',
+ color0: '#e42B6d'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#6b6455'
+ },
+ areaStyle: {
+ color: '#ddd'
+ },
+ label: {
+ color: '#e42B6d'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#e42B6d'
+ },
+ linkStyle: {
+ color: '#6b6455'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#e42B6d',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#6b6455'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#44B7D3'],
+ [0.8, '#6B6455'],
+ [1, '#E42B6D']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/helper.ts b/src/theme/helper.ts
new file mode 100644
index 0000000..6d1a17c
--- /dev/null
+++ b/src/theme/helper.ts
@@ -0,0 +1,13 @@
+import type { EChartsExtensionInstallRegisters } from '../extension';
+
+export function checkECharts(registers: EChartsExtensionInstallRegisters) {
+ const log = function (msg: any) {
+ if (typeof console !== 'undefined') {
+ console && console.error && console.error(msg);
+ }
+ };
+ if (!registers) {
+ log('ECharts is not Loaded');
+ return;
+ }
+}
diff --git a/src/theme/light.ts b/src/theme/infographic.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/infographic.ts
index 8b28ea8..337e74e 100644
--- a/src/theme/light.ts
+++ b/src/theme/infographic.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './infographic/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/infographic/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/infographic/install.ts
index 8b28ea8..1a0c8c9 100644
--- a/src/theme/light.ts
+++ b/src/theme/infographic/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import infographicTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('infographic', infographicTheme);
+}
diff --git a/src/theme/infographic/theme.ts b/src/theme/infographic/theme.ts
new file mode 100644
index 0000000..52d026b
--- /dev/null
+++ b/src/theme/infographic/theme.ts
@@ -0,0 +1,208 @@
+/*
+* 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.
+*/
+
+const colorPalette = [
+ '#C1232B',
+ '#27727B',
+ '#FCCE10',
+ '#E87C25',
+ '#B5C334',
+ '#FE8463',
+ '#9BCA63',
+ '#FAD860',
+ '#F3A43B',
+ '#60C0DD',
+ '#D7504B',
+ '#C6E579',
+ '#F4E001',
+ '#F0805A',
+ '#26C0C0'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#27727B'
+ }
+ },
+
+ visualMap: {
+ color: ['#C1232B', '#FCCE10']
+ },
+
+ toolbox: {
+ iconStyle: {
+ normal: {
+ borderColor: colorPalette[0]
+ }
+ }
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(50,50,50,0.5)',
+ axisPointer: {
+ type: 'line',
+ lineStyle: {
+ color: '#27727B',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#27727B'
+ },
+ shadowStyle: {
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ dataZoom: {
+ dataBackgroundColor: 'rgba(181,195,52,0.3)',
+ fillerColor: 'rgba(181,195,52,0.2)',
+ handleColor: '#27727B'
+ },
+
+ categoryAxis: {
+ axisLine: {
+ lineStyle: {
+ color: '#27727B'
+ }
+ },
+ splitLine: {
+ show: false
+ }
+ },
+
+ valueAxis: {
+ axisLine: {
+ show: false
+ },
+ splitArea: {
+ show: false
+ },
+ splitLine: {
+ lineStyle: {
+ color: ['#ccc'],
+ type: 'dashed'
+ }
+ }
+ },
+
+ timeline: {
+ itemStyle: {
+ color: '#27727B'
+ },
+ lineStyle: {
+ color: '#27727B'
+ },
+ controlStyle: {
+ color: '#27727B',
+ borderColor: '#27727B'
+ },
+ symbol: 'emptyCircle',
+ symbolSize: 3
+ },
+
+ line: {
+ itemStyle: {
+ borderWidth: 2,
+ borderColor: '#fff',
+ lineStyle: {
+ width: 3
+ },
+ emphasis: {
+ borderWidth: 0
+ }
+ },
+ symbol: 'circle',
+ symbolSize: 3.5
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#c1232b',
+ color0: '#b5c334'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#c1232b',
+ color0: '#b5c334'
+ },
+ areaStyle: {
+ color: '#c1232b',
+ color0: '#27727b'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#c1232b'
+ },
+ linkStyle: {
+ color: '#b5c334'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#f2385a',
+ areaColor: '#ddd',
+ borderColor: '#eee'
+ },
+ areaStyle: {
+ color: '#fe994e'
+ },
+ label: {
+ color: '#c1232b'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#B5C334'],
+ [0.8, '#27727B'],
+ [1, '#C1232B']
+ ]
+ }
+ },
+ axisTick: {
+ splitNumber: 2,
+ length: 5,
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ axisLabel: {
+ color: '#fff'
+ },
+ splitLine: {
+ length: '5%',
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ title: {
+ offsetCenter: [0, -20]
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/inspired.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/inspired.ts
index 8b28ea8..197a3e6 100644
--- a/src/theme/light.ts
+++ b/src/theme/inspired.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './inspired/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/inspired/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/inspired/install.ts
index 8b28ea8..fed0f96 100644
--- a/src/theme/light.ts
+++ b/src/theme/inspired/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import inspiredTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('inspired', inspiredTheme);
+}
diff --git a/src/theme/inspired/theme.ts b/src/theme/inspired/theme.ts
new file mode 100644
index 0000000..2e967a4
--- /dev/null
+++ b/src/theme/inspired/theme.ts
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#cc0000',
+ '#002266',
+ '#ff9900',
+ '#006600',
+ '#8a150f',
+ '#076278',
+ '#808080',
+ '#f07b75'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#cc0000'
+ }
+ },
+
+ visualMap: {
+ color: ['#cc0000', '#002266']
+ },
+
+ toolbox: {
+ color: ['#cc0000', '#cc0000', '#cc0000', '#cc0000']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#cc0000',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#cc0000'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#cc0000' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#cc0000'
+ },
+ controlStyle: {
+ color: '#cc0000',
+ borderColor: '#cc0000'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#002266',
+ color0: '#ff9900'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#8a150f',
+ color0: '#006600'
+ },
+ areaStyle: {
+ color: '#cc0000',
+ color0: '#ff9900'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ff9900'
+ },
+ areaStyle: {
+ color: '#ddd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#ff9900'
+ },
+ linkStyle: {
+ color: '#cc0000'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#002266'],
+ [0.8, '#cc0000'],
+ [1, '8a150f']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/jazz.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/jazz.ts
index 8b28ea8..4be2153 100644
--- a/src/theme/light.ts
+++ b/src/theme/jazz.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './jazz/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/jazz/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/jazz/install.ts
index 8b28ea8..283c140 100644
--- a/src/theme/light.ts
+++ b/src/theme/jazz/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import jazzTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('jazz', jazzTheme);
+}
diff --git a/src/theme/jazz/theme.ts b/src/theme/jazz/theme.ts
new file mode 100644
index 0000000..f846a1b
--- /dev/null
+++ b/src/theme/jazz/theme.ts
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#e9e0d1',
+ '#91a398',
+ '#33605a',
+ '#070001',
+ '#68462b',
+ '#58a79c',
+ '#abd3ce',
+ '#eef6f5'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#e9e0d1'
+ }
+ },
+
+ visualMap: {
+ color: ['#e9e0d1', '#91a398']
+ },
+
+ toolbox: {
+ color: ['#e9e0d1', '#e9e0d1', '#e9e0d1', '#e9e0d1']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#e9e0d1',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#e9e0d1'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#e9e0d1' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#e9e0d1'
+ },
+ controlStyle: {
+ color: '#e9e0d1',
+ borderColor: '#e9e0d1'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#91a398',
+ color0: '#33605a'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#68462b',
+ color0: '#070001'
+ },
+ areaStyle: {
+ color: '#91a398',
+ color0: '#abd3ce'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#c12e34'
+ },
+ areaStyle: {
+ color: '#ddd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#33605a'
+ },
+ linkStyle: {
+ color: '#e9e0d1'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#91a398'],
+ [0.8, '#e9e0d1'],
+ [1, '#68462b']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/light/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/light/install.ts
index 8b28ea8..469a314 100644
--- a/src/theme/light.ts
+++ b/src/theme/light/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import lightTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('light', lightTheme);
+}
diff --git a/src/theme/light.ts b/src/theme/light/theme.ts
similarity index 97%
copy from src/theme/light.ts
copy to src/theme/light/theme.ts
index 8b28ea8..274b8a9 100644
--- a/src/theme/light.ts
+++ b/src/theme/light/theme.ts
@@ -17,6 +17,8 @@
* under the License.
*/
+// registerd by default
+
const colorAll = [
'#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
'#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
@@ -32,4 +34,4 @@ export default {
['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
colorAll
]
-};
\ No newline at end of file
+};
diff --git a/src/theme/light.ts b/src/theme/london.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/london.ts
index 8b28ea8..6928302 100644
--- a/src/theme/light.ts
+++ b/src/theme/london.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './london/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/london/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/london/install.ts
index 8b28ea8..c2675b5 100644
--- a/src/theme/light.ts
+++ b/src/theme/london/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import londonTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('london', londonTheme);
+}
diff --git a/src/theme/london/theme.ts b/src/theme/london/theme.ts
new file mode 100644
index 0000000..7c4a81e
--- /dev/null
+++ b/src/theme/london/theme.ts
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#02151a',
+ '#043a47',
+ '#087891',
+ '#c8c8c8',
+ '#b31d14',
+ '#0b9cc1',
+ '#f2f2f2',
+ '#f07b75'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#02151a'
+ }
+ },
+
+ visualMap: {
+ color: ['#02151a', '#a2d4e6']
+ },
+
+ toolbox: {
+ color: ['#02151a', '#02151a', '#02151a', '#02151a']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#02151a',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#02151a'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(144,197,237,0.2)', // Fill the color
+ handleColor: '#02151a' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#02151a'
+ },
+ controlStyle: {
+ color: '#02151a',
+ borderColor: '#02151a'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#043a47',
+ color0: '#087891'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#b31d14',
+ color0: '#c8c8c8'
+ },
+ areaStyle: {
+ color: '#087891',
+ color0: '#c8c8c8'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ddd'
+ },
+ areaStyle: {
+ color: '#087891'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#c12e34'
+ },
+ linkStyle: {
+ color: '#02151a'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#043a47'],
+ [0.8, '#02151a'],
+ [1, '#b31d14']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/macarons.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/macarons.ts
index 8b28ea8..69dc0ea 100644
--- a/src/theme/light.ts
+++ b/src/theme/macarons.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './macarons/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/macarons/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/macarons/install.ts
index 8b28ea8..0aca95f 100644
--- a/src/theme/light.ts
+++ b/src/theme/macarons/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import macaronsTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('macarons', macaronsTheme);
+}
diff --git a/src/theme/macarons/theme.ts b/src/theme/macarons/theme.ts
new file mode 100644
index 0000000..32e82f4
--- /dev/null
+++ b/src/theme/macarons/theme.ts
@@ -0,0 +1,213 @@
+/*
+* 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.
+*/
+
+const colorPalette = [
+ '#2ec7c9',
+ '#b6a2de',
+ '#5ab1ef',
+ '#ffb980',
+ '#d87a80',
+ '#8d98b3',
+ '#e5cf0d',
+ '#97b552',
+ '#95706d',
+ '#dc69aa',
+ '#07a2a4',
+ '#9a7fd1',
+ '#588dd5',
+ '#f5994e',
+ '#c05050',
+ '#59678c',
+ '#c9ab00',
+ '#7eb00a',
+ '#6f5553',
+ '#c14089'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#008acd'
+ }
+ },
+
+ visualMap: {
+ itemWidth: 15,
+ color: ['#5ab1ef', '#e0ffff']
+ },
+
+ toolbox: {
+ iconStyle: {
+ normal: {
+ borderColor: colorPalette[0]
+ }
+ }
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(50,50,50,0.5)',
+ axisPointer: {
+ type: 'line',
+ lineStyle: {
+ color: '#008acd'
+ },
+ crossStyle: {
+ color: '#008acd'
+ },
+ shadowStyle: {
+ color: 'rgba(200,200,200,0.2)'
+ }
+ }
+ },
+
+ dataZoom: {
+ dataBackgroundColor: '#efefff',
+ fillerColor: 'rgba(182,162,222,0.2)',
+ handleColor: '#008acd'
+ },
+
+ grid: {
+ borderColor: '#eee'
+ },
+
+ categoryAxis: {
+ axisLine: {
+ lineStyle: {
+ color: '#008acd'
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ color: ['#eee']
+ }
+ }
+ },
+
+ valueAxis: {
+ axisLine: {
+ lineStyle: {
+ color: '#008acd'
+ }
+ },
+ splitArea: {
+ show: true,
+ areaStyle: {
+ color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ color: ['#eee']
+ }
+ }
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#008acd'
+ },
+ controlStyle: {
+ color: '#008acd',
+ borderColor: '#008acd'
+ },
+ symbol: 'emptyCircle',
+ symbolSize: 3
+ },
+
+ line: {
+ smooth: true,
+ symbol: 'emptyCircle',
+ symbolSize: 3
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#d87a80',
+ color0: '#2ec7c9'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#d87a80',
+ color0: '#2ec7c9'
+ },
+ areaStyle: {
+ color: '#2ec7c9',
+ color0: '#b6a2de'
+ }
+ },
+
+ scatter: {
+ symbol: 'circle',
+ symbolSize: 4
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ddd'
+ },
+ areaStyle: {
+ color: '#fe994e'
+ },
+ label: {
+ color: '#d87a80'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#d87a80'
+ },
+ linkStyle: {
+ color: '#2ec7c9'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#2ec7c9'],
+ [0.8, '#5ab1ef'],
+ [1, '#d87a80']
+ ],
+ width: 10
+ }
+ },
+ axisTick: {
+ splitNumber: 10,
+ length: 15,
+ lineStyle: {
+ color: 'auto'
+ }
+ },
+ splitLine: {
+ length: 22,
+ lineStyle: {
+ color: 'auto'
+ }
+ },
+ pointer: {
+ width: 5
+ }
+ }
+};
+
diff --git a/src/theme/light.ts b/src/theme/macarons2.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/macarons2.ts
index 8b28ea8..0ee1765 100644
--- a/src/theme/light.ts
+++ b/src/theme/macarons2.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './macarons2/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/macarons2/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/macarons2/install.ts
index 8b28ea8..2d19269 100644
--- a/src/theme/light.ts
+++ b/src/theme/macarons2/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import macarons2Theme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('macarons2', macarons2Theme);
+}
diff --git a/src/theme/macarons2/theme.ts b/src/theme/macarons2/theme.ts
new file mode 100644
index 0000000..af1b320
--- /dev/null
+++ b/src/theme/macarons2/theme.ts
@@ -0,0 +1,221 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#ed9678',
+ '#e7dac9',
+ '#cb8e85',
+ '#f3f39d',
+ '#c8e49c',
+ '#f16d7a',
+ '#f3d999',
+ '#d3758f',
+ '#dcc392',
+ '#2e4783',
+ '#82b6e9',
+ '#ff6347',
+ '#a092f1',
+ '#0a915d',
+ '#eaf889',
+ '#6699FF',
+ '#ff6666',
+ '#3cb371',
+ '#d5b158',
+ '#38b6b6'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#cb8e85'
+ }
+ },
+
+ dataRange: {
+ color: ['#cb8e85', '#e7dac9'], //颜色
+ //text:['高','低'], // 文本,默认为数值文本
+ textStyle: {
+ color: '#333' // 值域文字颜色
+ }
+ },
+
+ bar: {
+ barMinHeight: 0, // 最小高度改为0
+ // barWidth: null, // 默认自适应
+ barGap: '30%', // 柱间距离,默认为柱形宽度的30%,可设固定值
+ barCategoryGap: '20%', // 类目间柱形距离,默认为类目间距的20%,可设固定值
+ itemStyle: {
+ normal: {
+ // color: '各异',
+ barBorderColor: '#fff', // 柱条边线
+ barBorderRadius: 0, // 柱条边线圆角,单位px,默认为0
+ barBorderWidth: 1, // 柱条边线线宽,单位px,默认为1
+ label: {
+ show: false
+ // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
+ // 'inside'|'left'|'right'|'top'|'bottom'
+ // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE
+ }
+ },
+ emphasis: {
+ // color: '各异',
+ barBorderColor: 'rgba(0,0,0,0)', // 柱条边线
+ barBorderRadius: 0, // 柱条边线圆角,单位px,默认为0
+ barBorderWidth: 1, // 柱条边线线宽,单位px,默认为1
+ label: {
+ show: false
+ // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
+ // 'inside'|'left'|'right'|'top'|'bottom'
+ // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE
+ }
+ }
+ }
+ },
+
+ line: {
+ itemStyle: {
+ normal: {
+ // color: 各异,
+ label: {
+ show: false
+ // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
+ // 'inside'|'left'|'right'|'top'|'bottom'
+ // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE
+ },
+ lineStyle: {
+ width: 2,
+ type: 'solid',
+ shadowColor: 'rgba(0,0,0,0)', //默认透明
+ shadowBlur: 5,
+ shadowOffsetX: 3,
+ shadowOffsetY: 3
+ }
+ },
+ emphasis: {
+ // color: 各异,
+ label: {
+ show: false
+ // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
+ // 'inside'|'left'|'right'|'top'|'bottom'
+ // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE
+ }
+ }
+ },
+ //smooth : false,
+ //symbol: null, // 拐点图形类型
+ symbolSize: 2, // 拐点图形大小
+ //symbolRotate : null, // 拐点图形旋转控制
+ showAllSymbol: false // 标志图形默认只有主轴显示(随主轴标签间隔隐藏策略)
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#fe9778',
+ color0: '#e7dac9'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#f78766',
+ color0: '#f1ccb8'
+ },
+ areaStyle: {
+ color: '#e7dac9',
+ color0: '#c8e49c'
+ }
+ },
+
+ // 饼图默认参数
+ pie: {
+ center: ['50%', '50%'], // 默认全局居中
+ radius: [0, '75%'],
+ clockWise: false, // 默认逆时针
+ startAngle: 90,
+ minAngle: 0, // 最小角度改为0
+ selectedOffset: 10, // 选中是扇区偏移量
+ itemStyle: {
+ // color: 各异,
+ borderColor: '#fff',
+ borderWidth: 1,
+ label: {
+ show: true,
+ position: 'outer',
+ color: '#1b1b1b',
+ lineStyle: { color: '#1b1b1b' }
+ // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE
+ },
+ labelLine: {
+ show: true,
+ length: 20,
+ lineStyle: {
+ // color: 各异,
+ width: 1,
+ type: 'solid'
+ }
+ }
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#ddd',
+ borderColor: '#fff',
+ borderWidth: 1
+ },
+ areaStyle: {
+ color: '#f3f39d'
+ },
+ label: {
+ show: false,
+ color: 'rgba(139,69,19,1)'
+ },
+ showLegendSymbol: true
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#d87a80'
+ },
+ linkStyle: {
+ strokeColor: '#a17e6e'
+ },
+ nodeStyle: {
+ brushType: 'both',
+ strokeColor: '#a17e6e'
+ },
+ label: {
+ show: false
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#ed9678'],
+ [0.8, '#e7dac9'],
+ [1, '#cb8e85']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/mint.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/mint.ts
index 8b28ea8..e857358 100644
--- a/src/theme/light.ts
+++ b/src/theme/mint.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './mint/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/mint/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/mint/install.ts
index 8b28ea8..e4c8bc1 100644
--- a/src/theme/light.ts
+++ b/src/theme/mint/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import mintTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('mint', mintTheme);
+}
diff --git a/src/theme/mint/theme.ts b/src/theme/mint/theme.ts
new file mode 100644
index 0000000..4ab3f3d
--- /dev/null
+++ b/src/theme/mint/theme.ts
@@ -0,0 +1,127 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#8aedd5',
+ '#93bc9e',
+ '#cef1db',
+ '#7fe579',
+ '#a6d7c2',
+ '#bef0bb',
+ '#99e2vb',
+ '#94f8a8',
+ '#7de5b8',
+ '#4dfb70'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#8aedd5'
+ }
+ },
+
+ toolbox: {
+ color: ['#8aedd5', '#8aedd5', '#8aedd5', '#8aedd5']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#8aedd5',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#8aedd5'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(64,136,41,0.2)', // Fill the color
+ handleColor: '#408829' // Handle color
+ },
+
+ dataRange: {
+ color: ['#93bc92', '#bef0bb']
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#8aedd5',
+ color0: '#7fe579'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#8aedd5',
+ color0: '#7fe579'
+ },
+ areaStyle: {
+ color: '#8aedd5',
+ color0: '#93bc9e'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#8aedd5'
+ },
+ linkStyle: {
+ color: '#93bc9e'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#8aedd5'
+ },
+ areaStyle: {
+ color: '#93bc9e'
+ },
+ label: {
+ color: '#cef1db'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#93bc9e'],
+ [0.8, '#8aedd5'],
+ [1, '#a6d7c2']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/red-velvet.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/red-velvet.ts
index 8b28ea8..8a9bfa7 100644
--- a/src/theme/light.ts
+++ b/src/theme/red-velvet.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './red-velvet/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/red-velvet/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/red-velvet/install.ts
index 8b28ea8..1106c92 100644
--- a/src/theme/light.ts
+++ b/src/theme/red-velvet/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import redVelvetTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('red-velvet', redVelvetTheme);
+}
diff --git a/src/theme/red-velvet/theme.ts b/src/theme/red-velvet/theme.ts
new file mode 100644
index 0000000..4f79f3c
--- /dev/null
+++ b/src/theme/red-velvet/theme.ts
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#8b1a2d',
+ '#a7314b',
+ '#e6004c',
+ '#ff8066',
+ '#8e5c4e',
+ '#ff1a66',
+ '#d6c582',
+ '#f0d4af'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#8b1a2d'
+ }
+ },
+
+ visualMap: {
+ color: ['#8b1a2d', '#a7314b']
+ },
+
+ toolbox: {
+ color: ['#8b1a2d', '#8b1a2d', '#8b1a2d', '#8b1a2d']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#8b1a2d',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#8b1a2d'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#8b1a2d' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#8b1a2d'
+ },
+ controlStyle: {
+ color: '#8b1a2d',
+ borderColor: '#8b1a2d'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#a7314b',
+ color0: '#d6c582'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#8e5c4e',
+ color0: '#f0d4af'
+ },
+ areaStyle: {
+ color: '#8b1a2d',
+ color0: '#ff8066'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#8b1a2d'
+ },
+ areaStyle: {
+ color: '#ff8066'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#ff8066'
+ },
+ linkStyle: {
+ color: '#8b1a2d'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#a7314b'],
+ [0.8, '#8b1a2d'],
+ [1, '#8e5c4e']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/red.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/red.ts
index 8b28ea8..00a7f0f 100644
--- a/src/theme/light.ts
+++ b/src/theme/red.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './red/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/red/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/red/install.ts
index 8b28ea8..27199dc 100644
--- a/src/theme/light.ts
+++ b/src/theme/red/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import redTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('red', redTheme);
+}
diff --git a/src/theme/red/theme.ts b/src/theme/red/theme.ts
new file mode 100644
index 0000000..936138f
--- /dev/null
+++ b/src/theme/red/theme.ts
@@ -0,0 +1,197 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#d8361b',
+ '#f16b4c',
+ '#f7b4a9',
+ '#d26666',
+ '#99311c',
+ '#c42703',
+ '#d07e75'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#d8361b'
+ }
+ },
+
+ visualMap: {
+ color: ['#d8361b', '#ffd2d2']
+ },
+
+ dataRange: {
+ color: ['#bd0707', '#ffd2d2']
+ },
+
+ toolbox: {
+ color: ['#d8361b', '#d8361b', '#d8361b', '#d8361b']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#d8361b',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#d8361b'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(216,54,27,0.2)', // Fill the color
+ handleColor: '#d8361b' // Handle color
+ },
+
+ grid: {
+ borderWidth: 0
+ },
+
+ categoryAxis: {
+ axisLine: {
+ // Coordinate axis
+ lineStyle: {
+ // Property 'lineStyle' controls line styles
+ color: '#d8361b'
+ }
+ },
+ splitLine: {
+ // Separation line
+ lineStyle: {
+ // Property 'lineStyle' (see lineStyle) controls line styles
+ color: ['#eee']
+ }
+ }
+ },
+
+ valueAxis: {
+ axisLine: {
+ // Coordinate axis
+ lineStyle: {
+ // Property 'lineStyle' controls line styles
+ color: '#d8361b'
+ }
+ },
+ splitArea: {
+ show: true,
+ areaStyle: {
+ color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']
+ }
+ },
+ splitLine: {
+ // Separation line
+ lineStyle: {
+ // Property 'lineStyle' (see lineStyle) controls line styles
+ color: ['#eee']
+ }
+ }
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#d8361b'
+ },
+ controlStyle: {
+ color: '#d8361b',
+ borderColor: '#d8361b'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#f16b4c',
+ color0: '#f7b4a9'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#d8361b',
+ color0: '#d26666'
+ },
+ areaStyle: {
+ color: '#d8361b',
+ color0: '#d07e75'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#d07e75'
+ },
+ linkStyle: {
+ color: '#d8361b'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#d07e75',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#d8361b'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#d8361b'
+ },
+ areaStyle: {
+ color: '#d07e75'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#f16b4c'],
+ [0.8, '#d8361b'],
+ [1, '#99311c']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/roma.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/roma.ts
index 8b28ea8..78caa04 100644
--- a/src/theme/light.ts
+++ b/src/theme/roma.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './roma/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/roma/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/roma/install.ts
index 8b28ea8..5cab69c 100644
--- a/src/theme/light.ts
+++ b/src/theme/roma/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import romaTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('roma', romaTheme);
+}
diff --git a/src/theme/roma/theme.ts b/src/theme/roma/theme.ts
new file mode 100644
index 0000000..611f1c5
--- /dev/null
+++ b/src/theme/roma/theme.ts
@@ -0,0 +1,91 @@
+
+/*
+* 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.
+*/
+
+const colorPalette = [
+ '#E01F54',
+ '#001852',
+ '#f5e8c8',
+ '#b8d2c7',
+ '#c6b38e',
+ '#a4d8c2',
+ '#f3d999',
+ '#d3758f',
+ '#dcc392',
+ '#2e4783',
+ '#82b6e9',
+ '#ff6347',
+ '#a092f1',
+ '#0a915d',
+ '#eaf889',
+ '#6699FF',
+ '#ff6666',
+ '#3cb371',
+ '#d5b158',
+ '#38b6b6'
+];
+
+export default {
+ color: colorPalette,
+
+ visualMap: {
+ color: ['#e01f54', '#e7dbc3'],
+ textStyle: {
+ color: '#333'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#e01f54',
+ color0: '#001852'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#f5e8c8',
+ color0: '#b8d2c7'
+ },
+ areaStyle: {
+ color: '#a4d8c2',
+ color0: '#f3d999'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#a4d8c2'
+ },
+ linkStyle: {
+ color: '#f3d999'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#E01F54'],
+ [0.8, '#b8d2c7'],
+ [1, '#001852']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/royal.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/royal.ts
index 8b28ea8..ee82538 100644
--- a/src/theme/light.ts
+++ b/src/theme/royal.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './royal/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/royal/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/royal/install.ts
index 8b28ea8..4935ffd 100644
--- a/src/theme/light.ts
+++ b/src/theme/royal/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import royalTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('royal', royalTheme);
+}
diff --git a/src/theme/royal/theme.ts b/src/theme/royal/theme.ts
new file mode 100644
index 0000000..c4a61f8
--- /dev/null
+++ b/src/theme/royal/theme.ts
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#3f7ea6',
+ '#993366',
+ '#408000',
+ '#8c6f56',
+ '#a65149',
+ '#731f17',
+ '#adc2eb',
+ '#d9c3b0'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#3f7ea6'
+ }
+ },
+
+ visualMap: {
+ color: ['#3f7ea6', '#993366']
+ },
+
+ toolbox: {
+ color: ['#3f7ea6', '#3f7ea6', '#3f7ea6', '#3f7ea6']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#3f7ea6',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#3f7ea6'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(200,200,200,0.2)', // Fill the color
+ handleColor: '#3f7ea6' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#3f7ea6'
+ },
+ controlStyle: {
+ color: '#3f7ea6',
+ borderColor: '#3f7ea6'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#d9c3b0',
+ color0: '#8c6f56'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#731f17',
+ color0: '#a65149'
+ },
+ areaStyle: {
+ color: '#3f7ea6',
+ color0: '#993366'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#d9c3b0'
+ },
+ areaStyle: {
+ color: '#ddd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#993366'
+ },
+ linkStyle: {
+ color: '#3f7ea6'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#d9c3b0'],
+ [0.8, '#3f7ea6'],
+ [1, '#731f17']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/sakura.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/sakura.ts
index 8b28ea8..6d9c244 100644
--- a/src/theme/light.ts
+++ b/src/theme/sakura.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './sakura/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/sakura/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/sakura/install.ts
index 8b28ea8..975ef5b 100644
--- a/src/theme/light.ts
+++ b/src/theme/sakura/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import sakuraTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('sakura', sakuraTheme);
+}
diff --git a/src/theme/sakura/theme.ts b/src/theme/sakura/theme.ts
new file mode 100644
index 0000000..2306947
--- /dev/null
+++ b/src/theme/sakura/theme.ts
@@ -0,0 +1,112 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#e52c3c',
+ '#f7b1ab',
+ '#fa506c',
+ '#f59288',
+ '#f8c4d8',
+ '#e54f5c',
+ '#f06d5c',
+ '#e54f80',
+ '#f29c9f',
+ '#eeb5b7'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#e52c3c'
+ }
+ },
+
+ visualMap: {
+ color: ['#e52c3c', '#f7b1ab']
+ },
+
+ dataRange: {
+ color: ['#e52c3c', '#f7b1ab']
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#e52c3c',
+ color0: '#f59288'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#e52c3c',
+ color0: '#f59288'
+ },
+ areaStyle: {
+ color: '#fa506c',
+ color0: '#f8c4d8'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#e52c3c',
+ borderColor: '#fff',
+ borderWidth: 1
+ },
+ areaStyle: {
+ color: '#ccc'
+ },
+ label: {
+ color: 'rgba(139,69,19,1)',
+ show: false
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#f2385a'
+ },
+ nodeStyle: {
+ brushType: 'both',
+ strokeColor: '#e54f5c'
+ },
+ linkStyle: {
+ color: '#f2385a',
+ strokeColor: '#e54f5c'
+ },
+ label: {
+ color: '#f2385a',
+ show: false
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#e52c3c'],
+ [0.8, '#f7b1ab'],
+ [1, '#fa506c']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/shine.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/shine.ts
index 8b28ea8..0527638 100644
--- a/src/theme/light.ts
+++ b/src/theme/shine.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './shine/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/shine/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/shine/install.ts
index 8b28ea8..a4b3dd9 100644
--- a/src/theme/light.ts
+++ b/src/theme/shine/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import shineTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('shine', shineTheme);
+}
diff --git a/src/theme/shine/theme.ts b/src/theme/shine/theme.ts
new file mode 100644
index 0000000..330b97b
--- /dev/null
+++ b/src/theme/shine/theme.ts
@@ -0,0 +1,151 @@
+/*
+* 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.
+*/
+
+const colorPalette = [
+ '#c12e34',
+ '#e6b600',
+ '#0098d9',
+ '#2b821d',
+ '#005eaa',
+ '#339ca8',
+ '#cda819',
+ '#32a487'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal'
+ }
+ },
+
+ visualMap: {
+ color: ['#1790cf', '#a2d4e6']
+ },
+
+ toolbox: {
+ iconStyle: {
+ normal: {
+ borderColor: '#06467c'
+ }
+ }
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.6)'
+ },
+
+ dataZoom: {
+ dataBackgroundColor: '#dedede',
+ fillerColor: 'rgba(154,217,247,0.2)',
+ handleColor: '#005eaa'
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#005eaa'
+ },
+ controlStyle: {
+ color: '#005eaa',
+ borderColor: '#005eaa'
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#c12e34',
+ color0: '#2b821d'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#c12e34',
+ color0: '#2b821d'
+ },
+ areaStyle: {
+ color: '#e6b600',
+ color0: '#005eaa'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#e6b600'
+ },
+ linkStyle: {
+ color: '#005eaa'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#f2385a',
+ borderColor: '#eee',
+ areaColor: '#ddd'
+ },
+ areaStyle: {
+ color: '#ddd'
+ },
+ label: {
+ color: '#c12e34'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: [
+ [0.2, '#2b821d'],
+ [0.8, '#005eaa'],
+ [1, '#c12e34']
+ ],
+ width: 5
+ }
+ },
+ axisTick: {
+ splitNumber: 10,
+ length: 8,
+ lineStyle: {
+ color: 'auto'
+ }
+ },
+ axisLabel: {
+ color: 'auto'
+ },
+ splitLine: {
+ length: 12,
+ lineStyle: {
+ color: 'auto'
+ }
+ },
+ pointer: {
+ length: '90%',
+ width: 3,
+ color: 'auto'
+ },
+ title: {
+ color: '#333'
+ },
+ detail: {
+ color: 'auto'
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/tech-blue.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/tech-blue.ts
index 8b28ea8..fb2e051 100644
--- a/src/theme/light.ts
+++ b/src/theme/tech-blue.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './tech-blue/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/tech-blue/install.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/tech-blue/install.ts
index 8b28ea8..5a56185 100644
--- a/src/theme/light.ts
+++ b/src/theme/tech-blue/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import techBlueTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('tech-blue', techBlueTheme);
+}
diff --git a/src/theme/tech-blue/theme.ts b/src/theme/tech-blue/theme.ts
new file mode 100644
index 0000000..139a92c
--- /dev/null
+++ b/src/theme/tech-blue/theme.ts
@@ -0,0 +1,152 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#4d4d4d',
+ '#3a5897',
+ '#007bb6',
+ '#7094db',
+ '#0080ff',
+ '#b3b3ff',
+ '#00bdec',
+ '#33ccff',
+ '#ccddff',
+ '#eeeeee'
+];
+
+export default {
+ color: colorPalette,
+
+ title: {
+ textStyle: {
+ fontWeight: 'normal',
+ color: '#00aecd'
+ }
+ },
+
+ visualMap: {
+ color: ['#00aecd', '#a2d4e6']
+ },
+
+ toolbox: {
+ color: ['#00aecd', '#00aecd', '#00aecd', '#00aecd']
+ },
+
+ tooltip: {
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ axisPointer: {
+ // Axis indicator, coordinate trigger effective
+ type: 'line', // The default is a straight line: 'line' | 'shadow'
+ lineStyle: {
+ // Straight line indicator style settings
+ color: '#00aecd',
+ type: 'dashed'
+ },
+ crossStyle: {
+ color: '#00aecd'
+ },
+ shadowStyle: {
+ // Shadow indicator style settings
+ color: 'rgba(200,200,200,0.3)'
+ }
+ }
+ },
+
+ // Area scaling controller
+ dataZoom: {
+ dataBackgroundColor: '#eee', // Data background color
+ fillerColor: 'rgba(144,197,237,0.2)', // Fill the color
+ handleColor: '#00aecd' // Handle color
+ },
+
+ timeline: {
+ lineStyle: {
+ color: '#00aecd'
+ },
+ controlStyle: {
+ normal: { color: '#00aecd' },
+ emphasis: { color: '#00aecd' }
+ }
+ },
+
+ candlestick: {
+ itemStyle: {
+ color: '#ddd',
+ color0: '#eee'
+ },
+ lineStyle: {
+ width: 1,
+ color: '#33ccff',
+ color0: '#1bb4cf'
+ },
+ areaStyle: {
+ color: '#7094db',
+ color0: '#33ccff'
+ }
+ },
+
+ chord: {
+ padding: 4,
+ itemStyle: {
+ color: '#7094db',
+ borderWidth: 1,
+ borderColor: 'rgba(128, 128, 128, 0.5)'
+ },
+ lineStyle: {
+ color: 'rgba(128, 128, 128, 0.5)'
+ },
+ areaStyle: {
+ color: '#33ccff'
+ }
+ },
+
+ graph: {
+ itemStyle: {
+ color: '#7094db'
+ },
+ linkStyle: {
+ color: '#33ccff'
+ }
+ },
+
+ map: {
+ itemStyle: {
+ color: '#7094db'
+ },
+ areaStyle: {
+ color: '#33ccff'
+ },
+ label: {
+ color: '#ddd'
+ }
+ },
+
+ gauge: {
+ axisLine: {
+ lineStyle: {
+ color: [
+ [0.2, '#dddddd'],
+ [0.8, '#00aecd'],
+ [1, '#33ccff']
+ ],
+ width: 8
+ }
+ }
+ }
+};
diff --git a/src/theme/light.ts b/src/theme/vintage.ts
similarity index 62%
copy from src/theme/light.ts
copy to src/theme/vintage.ts
index 8b28ea8..5b56584 100644
--- a/src/theme/light.ts
+++ b/src/theme/vintage.ts
@@ -17,19 +17,7 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import { use } from '../extension';
+import { install } from './vintage/install';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+use(install);
diff --git a/src/theme/light.ts b/src/theme/vintage/install.ts
similarity index 62%
rename from src/theme/light.ts
rename to src/theme/vintage/install.ts
index 8b28ea8..7238c46 100644
--- a/src/theme/light.ts
+++ b/src/theme/vintage/install.ts
@@ -17,19 +17,9 @@
* under the License.
*/
-const colorAll = [
- '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',
- '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'
-];
+import type { EChartsExtensionInstallRegisters } from '../../extension';
+import vintageTheme from './theme';
-export default {
-
- color: colorAll,
-
- colorLayer: [
- ['#37A2DA', '#ffd85c', '#fd7b5f'],
- ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
- ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],
- colorAll
- ]
-};
\ No newline at end of file
+export function install(registers: EChartsExtensionInstallRegisters) {
+ registers.registerTheme('vintage', vintageTheme);
+}
diff --git a/src/theme/vintage/theme.ts b/src/theme/vintage/theme.ts
new file mode 100644
index 0000000..2a8aecd
--- /dev/null
+++ b/src/theme/vintage/theme.ts
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+const colorPalette = [
+ '#d87c7c',
+ '#919e8b',
+ '#d7ab82',
+ '#6e7074',
+ '#61a0a8',
+ '#efa18d',
+ '#787464',
+ '#cc7e63',
+ '#724e58',
+ '#4b565b'
+];
+
+export default {
+ color: colorPalette,
+ backgroundColor: '#fef8ef',
+ graph: {
+ color: colorPalette
+ }
+};
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org