diff --git a/simple-mind-map/index.js b/simple-mind-map/index.js index 69dce84f..66f92f2c 100644 --- a/simple-mind-map/index.js +++ b/simple-mind-map/index.js @@ -19,7 +19,8 @@ import { getObjectChangedProps, isUndef, handleGetSvgDataExtraContent, - getNodeTreeBoundingRect + getNodeTreeBoundingRect, + mergeTheme } from './src/utils' import defaultTheme, { checkIsNodeSizeIndependenceConfig @@ -252,7 +253,7 @@ class MindMap { // 设置主题 initTheme() { // 合并主题配置 - this.themeConfig = merge(theme[this.opt.theme], this.opt.themeConfig) + this.themeConfig = mergeTheme(theme[this.opt.theme], this.opt.themeConfig) // 设置背景样式 Style.setBackgroundStyle(this.el, this.themeConfig) } @@ -638,7 +639,7 @@ MindMap.defineTheme = (name, config = {}) => { if (theme[name]) { return new Error('该主题名称已存在') } - theme[name] = merge(defaultTheme, config) + theme[name] = mergeTheme(defaultTheme, config) } export default MindMap diff --git a/simple-mind-map/src/themes/autumn.js b/simple-mind-map/src/themes/autumn.js index b7d295b1..f92bf0da 100644 --- a/simple-mind-map/src/themes/autumn.js +++ b/simple-mind-map/src/themes/autumn.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 秋天 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 背景颜色 backgroundColor: '#fff2df', // 连线的颜色 diff --git a/simple-mind-map/src/themes/avocado.js b/simple-mind-map/src/themes/avocado.js index d425388b..22a902f1 100644 --- a/simple-mind-map/src/themes/avocado.js +++ b/simple-mind-map/src/themes/avocado.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 牛油果 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 背景颜色 backgroundColor: '#e6f1de', // 连线的颜色 diff --git a/simple-mind-map/src/themes/blackGold.js b/simple-mind-map/src/themes/blackGold.js index c11cd4ee..01304a4d 100644 --- a/simple-mind-map/src/themes/blackGold.js +++ b/simple-mind-map/src/themes/blackGold.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 黑金 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 背景颜色 backgroundColor: 'rgb(18, 20, 20)', // 连线的颜色 diff --git a/simple-mind-map/src/themes/blackHumour.js b/simple-mind-map/src/themes/blackHumour.js index 62de9777..24d36721 100644 --- a/simple-mind-map/src/themes/blackHumour.js +++ b/simple-mind-map/src/themes/blackHumour.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 黑色幽默 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 背景颜色 backgroundColor: 'rgb(27, 31, 34)', // 连线的颜色 diff --git a/simple-mind-map/src/themes/blueSky.js b/simple-mind-map/src/themes/blueSky.js index f5343553..0b100aaf 100644 --- a/simple-mind-map/src/themes/blueSky.js +++ b/simple-mind-map/src/themes/blueSky.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 天空蓝 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(115, 161, 191)', // 背景颜色 diff --git a/simple-mind-map/src/themes/brainImpairedPink.js b/simple-mind-map/src/themes/brainImpairedPink.js index 01fd3283..1087bdf3 100644 --- a/simple-mind-map/src/themes/brainImpairedPink.js +++ b/simple-mind-map/src/themes/brainImpairedPink.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 脑残粉 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(191, 115, 148)', // 背景颜色 diff --git a/simple-mind-map/src/themes/classic.js b/simple-mind-map/src/themes/classic.js index 792026cf..c6a60ac8 100644 --- a/simple-mind-map/src/themes/classic.js +++ b/simple-mind-map/src/themes/classic.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 脑图经典 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: '#fff', // 连线的粗细 diff --git a/simple-mind-map/src/themes/classic2.js b/simple-mind-map/src/themes/classic2.js index 1fef1fe2..0fda1aeb 100644 --- a/simple-mind-map/src/themes/classic2.js +++ b/simple-mind-map/src/themes/classic2.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 经典2 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(51, 51, 51)', // 连线的粗细 diff --git a/simple-mind-map/src/themes/classic3.js b/simple-mind-map/src/themes/classic3.js index 21523e2c..1ab19d9a 100644 --- a/simple-mind-map/src/themes/classic3.js +++ b/simple-mind-map/src/themes/classic3.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 经典3 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(94, 202, 110)', // 连线的粗细 diff --git a/simple-mind-map/src/themes/classic4.js b/simple-mind-map/src/themes/classic4.js index 70886afb..00e0cf11 100644 --- a/simple-mind-map/src/themes/classic4.js +++ b/simple-mind-map/src/themes/classic4.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 经典4 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(30, 53, 86)', // 连线的粗细 diff --git a/simple-mind-map/src/themes/classicBlue.js b/simple-mind-map/src/themes/classicBlue.js index 8b7a60b3..d128c7a5 100644 --- a/simple-mind-map/src/themes/classicBlue.js +++ b/simple-mind-map/src/themes/classicBlue.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 经典蓝 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(51, 51, 51)', // 连线的粗细 diff --git a/simple-mind-map/src/themes/classicGreen.js b/simple-mind-map/src/themes/classicGreen.js index 65b6e81b..e67cf9ac 100644 --- a/simple-mind-map/src/themes/classicGreen.js +++ b/simple-mind-map/src/themes/classicGreen.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 经典绿 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(123, 199, 120)', // 背景颜色 diff --git a/simple-mind-map/src/themes/coffee.js b/simple-mind-map/src/themes/coffee.js index b3f73d3c..a4f9ac3d 100644 --- a/simple-mind-map/src/themes/coffee.js +++ b/simple-mind-map/src/themes/coffee.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 咖啡 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(173, 123, 91)', lineWidth: 4, diff --git a/simple-mind-map/src/themes/courseGreen.js b/simple-mind-map/src/themes/courseGreen.js index 2d19cd1a..550e12a5 100644 --- a/simple-mind-map/src/themes/courseGreen.js +++ b/simple-mind-map/src/themes/courseGreen.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 课程绿 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(113, 195, 169)', lineWidth: 3, diff --git a/simple-mind-map/src/themes/dark.js b/simple-mind-map/src/themes/dark.js index 833f93c2..18073bce 100644 --- a/simple-mind-map/src/themes/dark.js +++ b/simple-mind-map/src/themes/dark.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 暗色 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(17, 68, 23)', // 连线的粗细 diff --git a/simple-mind-map/src/themes/dark2.js b/simple-mind-map/src/themes/dark2.js index 4a4e1c31..1dc9a7fd 100644 --- a/simple-mind-map/src/themes/dark2.js +++ b/simple-mind-map/src/themes/dark2.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 暗色2 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(75, 81, 78)', lineWidth: 3, diff --git a/simple-mind-map/src/themes/earthYellow.js b/simple-mind-map/src/themes/earthYellow.js index 0196cf8b..c8ca8656 100644 --- a/simple-mind-map/src/themes/earthYellow.js +++ b/simple-mind-map/src/themes/earthYellow.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 泥土黄 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(191, 147, 115)', // 背景颜色 diff --git a/simple-mind-map/src/themes/freshGreen.js b/simple-mind-map/src/themes/freshGreen.js index 7c939639..66c19168 100644 --- a/simple-mind-map/src/themes/freshGreen.js +++ b/simple-mind-map/src/themes/freshGreen.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 清新绿 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: '#333', // 背景颜色 diff --git a/simple-mind-map/src/themes/freshRed.js b/simple-mind-map/src/themes/freshRed.js index 583b7933..6aaa7598 100644 --- a/simple-mind-map/src/themes/freshRed.js +++ b/simple-mind-map/src/themes/freshRed.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 清新红 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(191, 115, 115)', // 背景颜色 diff --git a/simple-mind-map/src/themes/gold.js b/simple-mind-map/src/themes/gold.js index a524a691..63c9dfae 100644 --- a/simple-mind-map/src/themes/gold.js +++ b/simple-mind-map/src/themes/gold.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 金色vip -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(51, 56, 62)', lineWidth: 3, diff --git a/simple-mind-map/src/themes/greenLeaf.js b/simple-mind-map/src/themes/greenLeaf.js index 9fd18a39..ed1e5660 100644 --- a/simple-mind-map/src/themes/greenLeaf.js +++ b/simple-mind-map/src/themes/greenLeaf.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 绿叶 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(40, 193, 84)', lineWidth: 3, diff --git a/simple-mind-map/src/themes/lateNightOffice.js b/simple-mind-map/src/themes/lateNightOffice.js index a80f4b69..bd55c4ee 100644 --- a/simple-mind-map/src/themes/lateNightOffice.js +++ b/simple-mind-map/src/themes/lateNightOffice.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 深夜办公室 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 背景颜色 backgroundColor: 'rgb(32, 37, 49)', // 连线的颜色 diff --git a/simple-mind-map/src/themes/minions.js b/simple-mind-map/src/themes/minions.js index b7f0d2f3..773a90b8 100644 --- a/simple-mind-map/src/themes/minions.js +++ b/simple-mind-map/src/themes/minions.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 小黄人 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(51, 51, 51)', lineWidth: 3, diff --git a/simple-mind-map/src/themes/mint.js b/simple-mind-map/src/themes/mint.js index 336a67c0..7d9f6619 100644 --- a/simple-mind-map/src/themes/mint.js +++ b/simple-mind-map/src/themes/mint.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 薄荷 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(104, 204, 202)', lineWidth: 3, diff --git a/simple-mind-map/src/themes/orangeJuice.js b/simple-mind-map/src/themes/orangeJuice.js index 0e2c47f6..697f3cac 100644 --- a/simple-mind-map/src/themes/orangeJuice.js +++ b/simple-mind-map/src/themes/orangeJuice.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 橙汁 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 背景颜色 backgroundColor: '#070616', // 连线的颜色 diff --git a/simple-mind-map/src/themes/pinkGrape.js b/simple-mind-map/src/themes/pinkGrape.js index c867c740..054423ae 100644 --- a/simple-mind-map/src/themes/pinkGrape.js +++ b/simple-mind-map/src/themes/pinkGrape.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 粉红葡萄 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(166, 101, 106)', lineWidth: 3, diff --git a/simple-mind-map/src/themes/redSpirit.js b/simple-mind-map/src/themes/redSpirit.js index 89dbca7c..042cd53a 100644 --- a/simple-mind-map/src/themes/redSpirit.js +++ b/simple-mind-map/src/themes/redSpirit.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 红色精神 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 背景颜色 backgroundColor: 'rgb(255, 238, 228)', // 连线的颜色 diff --git a/simple-mind-map/src/themes/romanticPurple.js b/simple-mind-map/src/themes/romanticPurple.js index 77fac345..37344911 100644 --- a/simple-mind-map/src/themes/romanticPurple.js +++ b/simple-mind-map/src/themes/romanticPurple.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 浪漫紫 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(123, 115, 191)', // 背景颜色 diff --git a/simple-mind-map/src/themes/simpleBlack.js b/simple-mind-map/src/themes/simpleBlack.js index 31360896..c255c3f7 100644 --- a/simple-mind-map/src/themes/simpleBlack.js +++ b/simple-mind-map/src/themes/simpleBlack.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 简约黑 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(34, 34, 34)', lineWidth: 4, diff --git a/simple-mind-map/src/themes/skyGreen.js b/simple-mind-map/src/themes/skyGreen.js index 1193c397..f0876829 100644 --- a/simple-mind-map/src/themes/skyGreen.js +++ b/simple-mind-map/src/themes/skyGreen.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 天清绿 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: '#fff', lineWidth: 3, diff --git a/simple-mind-map/src/themes/vitalityOrange.js b/simple-mind-map/src/themes/vitalityOrange.js index a35a32fe..de89eaeb 100644 --- a/simple-mind-map/src/themes/vitalityOrange.js +++ b/simple-mind-map/src/themes/vitalityOrange.js @@ -1,8 +1,8 @@ import defaultTheme from './default' -import merge from 'deepmerge' +import { mergeTheme } from '../utils' // 活力橙 -export default merge(defaultTheme, { +export default mergeTheme(defaultTheme, { // 连线的颜色 lineColor: 'rgb(254, 146, 0)', lineWidth: 3, diff --git a/simple-mind-map/src/utils/index.js b/simple-mind-map/src/utils/index.js index 132ca77c..4c0fb3c1 100644 --- a/simple-mind-map/src/utils/index.js +++ b/simple-mind-map/src/utils/index.js @@ -5,6 +5,7 @@ import { } from '../constants/constant' import MersenneTwister from './mersenneTwister' import { ForeignObject } from '@svgdotjs/svg.js' +import merge from 'deepmerge' // 深度优先遍历树 export const walk = ( @@ -1610,3 +1611,12 @@ export const sortNodeList = nodeList => { }) return nodeList } + +// 合并主题配置 +export const mergeTheme = (dest, source) => { + return merge(dest, source, { + arrayMerge: (destinationArray, sourceArray) => { + return sourceArray + } + }) +}