diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3198e60..3e0f022 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -198,6 +198,9 @@ importers:
echarts:
specifier: 5.6.0
version: 5.6.0
+ esbuild:
+ specifier: ^0.25.9
+ version: 0.25.9
eslint:
specifier: 8.57.1
version: 8.57.1
@@ -236,7 +239,7 @@ importers:
version: 1.49.11
sass-loader:
specifier: 12.6.0
- version: 12.6.0(sass@1.49.11)(webpack@5.100.2)
+ version: 12.6.0(sass@1.49.11)(webpack@5.100.2(esbuild@0.25.9))
typescript:
specifier: 4.6.3
version: 4.6.3
@@ -495,66 +498,132 @@ packages:
'@emotion/hash@0.8.0':
resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
+ '@esbuild/aix-ppc64@0.25.9':
+ resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
'@esbuild/android-arm64@0.17.19':
resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
+ '@esbuild/android-arm64@0.25.9':
+ resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
'@esbuild/android-arm@0.17.19':
resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
+ '@esbuild/android-arm@0.25.9':
+ resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
'@esbuild/android-x64@0.17.19':
resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
+ '@esbuild/android-x64@0.25.9':
+ resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
'@esbuild/darwin-arm64@0.17.19':
resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
+ '@esbuild/darwin-arm64@0.25.9':
+ resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
'@esbuild/darwin-x64@0.17.19':
resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
+ '@esbuild/darwin-x64@0.25.9':
+ resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
'@esbuild/freebsd-arm64@0.17.19':
resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
+ '@esbuild/freebsd-arm64@0.25.9':
+ resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
'@esbuild/freebsd-x64@0.17.19':
resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
+ '@esbuild/freebsd-x64@0.25.9':
+ resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
'@esbuild/linux-arm64@0.17.19':
resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
+ '@esbuild/linux-arm64@0.25.9':
+ resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
'@esbuild/linux-arm@0.17.19':
resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
+ '@esbuild/linux-arm@0.25.9':
+ resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
'@esbuild/linux-ia32@0.17.19':
resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
+ '@esbuild/linux-ia32@0.25.9':
+ resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
'@esbuild/linux-loong64@0.14.54':
resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==}
engines: {node: '>=12'}
@@ -567,72 +636,162 @@ packages:
cpu: [loong64]
os: [linux]
+ '@esbuild/linux-loong64@0.25.9':
+ resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
'@esbuild/linux-mips64el@0.17.19':
resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
+ '@esbuild/linux-mips64el@0.25.9':
+ resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
'@esbuild/linux-ppc64@0.17.19':
resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
+ '@esbuild/linux-ppc64@0.25.9':
+ resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
'@esbuild/linux-riscv64@0.17.19':
resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
+ '@esbuild/linux-riscv64@0.25.9':
+ resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
'@esbuild/linux-s390x@0.17.19':
resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
+ '@esbuild/linux-s390x@0.25.9':
+ resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
'@esbuild/linux-x64@0.17.19':
resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
+ '@esbuild/linux-x64@0.25.9':
+ resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-arm64@0.25.9':
+ resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
'@esbuild/netbsd-x64@0.17.19':
resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
+ '@esbuild/netbsd-x64@0.25.9':
+ resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-arm64@0.25.9':
+ resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
'@esbuild/openbsd-x64@0.17.19':
resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
+ '@esbuild/openbsd-x64@0.25.9':
+ resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openharmony-arm64@0.25.9':
+ resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+
'@esbuild/sunos-x64@0.17.19':
resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
+ '@esbuild/sunos-x64@0.25.9':
+ resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
'@esbuild/win32-arm64@0.17.19':
resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
+ '@esbuild/win32-arm64@0.25.9':
+ resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
'@esbuild/win32-ia32@0.17.19':
resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
+ '@esbuild/win32-ia32@0.25.9':
+ resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
'@esbuild/win32-x64@0.17.19':
resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
+ '@esbuild/win32-x64@0.25.9':
+ resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
'@eslint-community/eslint-utils@4.7.0':
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2008,6 +2167,11 @@ packages:
engines: {node: '>=12'}
hasBin: true
+ esbuild@0.25.9:
+ resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==}
+ engines: {node: '>=18'}
+ hasBin: true
+
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
@@ -4582,75 +4746,153 @@ snapshots:
'@emotion/hash@0.8.0': {}
+ '@esbuild/aix-ppc64@0.25.9':
+ optional: true
+
'@esbuild/android-arm64@0.17.19':
optional: true
+ '@esbuild/android-arm64@0.25.9':
+ optional: true
+
'@esbuild/android-arm@0.17.19':
optional: true
+ '@esbuild/android-arm@0.25.9':
+ optional: true
+
'@esbuild/android-x64@0.17.19':
optional: true
+ '@esbuild/android-x64@0.25.9':
+ optional: true
+
'@esbuild/darwin-arm64@0.17.19':
optional: true
+ '@esbuild/darwin-arm64@0.25.9':
+ optional: true
+
'@esbuild/darwin-x64@0.17.19':
optional: true
+ '@esbuild/darwin-x64@0.25.9':
+ optional: true
+
'@esbuild/freebsd-arm64@0.17.19':
optional: true
+ '@esbuild/freebsd-arm64@0.25.9':
+ optional: true
+
'@esbuild/freebsd-x64@0.17.19':
optional: true
+ '@esbuild/freebsd-x64@0.25.9':
+ optional: true
+
'@esbuild/linux-arm64@0.17.19':
optional: true
+ '@esbuild/linux-arm64@0.25.9':
+ optional: true
+
'@esbuild/linux-arm@0.17.19':
optional: true
+ '@esbuild/linux-arm@0.25.9':
+ optional: true
+
'@esbuild/linux-ia32@0.17.19':
optional: true
+ '@esbuild/linux-ia32@0.25.9':
+ optional: true
+
'@esbuild/linux-loong64@0.14.54':
optional: true
'@esbuild/linux-loong64@0.17.19':
optional: true
+ '@esbuild/linux-loong64@0.25.9':
+ optional: true
+
'@esbuild/linux-mips64el@0.17.19':
optional: true
+ '@esbuild/linux-mips64el@0.25.9':
+ optional: true
+
'@esbuild/linux-ppc64@0.17.19':
optional: true
+ '@esbuild/linux-ppc64@0.25.9':
+ optional: true
+
'@esbuild/linux-riscv64@0.17.19':
optional: true
+ '@esbuild/linux-riscv64@0.25.9':
+ optional: true
+
'@esbuild/linux-s390x@0.17.19':
optional: true
+ '@esbuild/linux-s390x@0.25.9':
+ optional: true
+
'@esbuild/linux-x64@0.17.19':
optional: true
+ '@esbuild/linux-x64@0.25.9':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.25.9':
+ optional: true
+
'@esbuild/netbsd-x64@0.17.19':
optional: true
+ '@esbuild/netbsd-x64@0.25.9':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.25.9':
+ optional: true
+
'@esbuild/openbsd-x64@0.17.19':
optional: true
+ '@esbuild/openbsd-x64@0.25.9':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.25.9':
+ optional: true
+
'@esbuild/sunos-x64@0.17.19':
optional: true
+ '@esbuild/sunos-x64@0.25.9':
+ optional: true
+
'@esbuild/win32-arm64@0.17.19':
optional: true
+ '@esbuild/win32-arm64@0.25.9':
+ optional: true
+
'@esbuild/win32-ia32@0.17.19':
optional: true
+ '@esbuild/win32-ia32@0.25.9':
+ optional: true
+
'@esbuild/win32-x64@0.17.19':
optional: true
+ '@esbuild/win32-x64@0.25.9':
+ optional: true
+
'@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)':
dependencies:
eslint: 8.57.1
@@ -6269,6 +6511,35 @@ snapshots:
'@esbuild/win32-ia32': 0.17.19
'@esbuild/win32-x64': 0.17.19
+ esbuild@0.25.9:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.25.9
+ '@esbuild/android-arm': 0.25.9
+ '@esbuild/android-arm64': 0.25.9
+ '@esbuild/android-x64': 0.25.9
+ '@esbuild/darwin-arm64': 0.25.9
+ '@esbuild/darwin-x64': 0.25.9
+ '@esbuild/freebsd-arm64': 0.25.9
+ '@esbuild/freebsd-x64': 0.25.9
+ '@esbuild/linux-arm': 0.25.9
+ '@esbuild/linux-arm64': 0.25.9
+ '@esbuild/linux-ia32': 0.25.9
+ '@esbuild/linux-loong64': 0.25.9
+ '@esbuild/linux-mips64el': 0.25.9
+ '@esbuild/linux-ppc64': 0.25.9
+ '@esbuild/linux-riscv64': 0.25.9
+ '@esbuild/linux-s390x': 0.25.9
+ '@esbuild/linux-x64': 0.25.9
+ '@esbuild/netbsd-arm64': 0.25.9
+ '@esbuild/netbsd-x64': 0.25.9
+ '@esbuild/openbsd-arm64': 0.25.9
+ '@esbuild/openbsd-x64': 0.25.9
+ '@esbuild/openharmony-arm64': 0.25.9
+ '@esbuild/sunos-x64': 0.25.9
+ '@esbuild/win32-arm64': 0.25.9
+ '@esbuild/win32-ia32': 0.25.9
+ '@esbuild/win32-x64': 0.25.9
+
escalade@3.2.0: {}
escape-html@1.0.3: {}
@@ -7840,11 +8111,11 @@ snapshots:
safer-buffer@2.1.2: {}
- sass-loader@12.6.0(sass@1.49.11)(webpack@5.100.2):
+ sass-loader@12.6.0(sass@1.49.11)(webpack@5.100.2(esbuild@0.25.9)):
dependencies:
klona: 2.0.6
neo-async: 2.6.2
- webpack: 5.100.2
+ webpack: 5.100.2(esbuild@0.25.9)
optionalDependencies:
sass: 1.49.11
@@ -8090,14 +8361,16 @@ snapshots:
tapable@2.2.2: {}
- terser-webpack-plugin@5.3.14(webpack@5.100.2):
+ terser-webpack-plugin@5.3.14(esbuild@0.25.9)(webpack@5.100.2(esbuild@0.25.9)):
dependencies:
'@jridgewell/trace-mapping': 0.3.29
jest-worker: 27.5.1
schema-utils: 4.3.2
serialize-javascript: 6.0.2
terser: 5.43.1
- webpack: 5.100.2
+ webpack: 5.100.2(esbuild@0.25.9)
+ optionalDependencies:
+ esbuild: 0.25.9
terser@5.43.1:
dependencies:
@@ -8545,7 +8818,7 @@ snapshots:
webpack-sources@3.3.3: {}
- webpack@5.100.2:
+ webpack@5.100.2(esbuild@0.25.9):
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.8
@@ -8569,7 +8842,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 4.3.2
tapable: 2.2.2
- terser-webpack-plugin: 5.3.14(webpack@5.100.2)
+ terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.100.2(esbuild@0.25.9))
watchpack: 2.4.4
webpack-sources: 3.3.3
transitivePeerDependencies:
diff --git a/src/assets/images/chart/charts/line_warn.png b/src/assets/images/chart/charts/line_warn.png
new file mode 100644
index 0000000..fee1c26
Binary files /dev/null and b/src/assets/images/chart/charts/line_warn.png differ
diff --git a/src/assets/images/chart/charts/pie_center.png b/src/assets/images/chart/charts/pie_center.png
new file mode 100644
index 0000000..908d0d6
Binary files /dev/null and b/src/assets/images/chart/charts/pie_center.png differ
diff --git a/src/packages/components/Charts/MyComponents/LineDropdown/config.ts b/src/packages/components/Charts/MyComponents/LineDropdown/config.ts
new file mode 100644
index 0000000..62a5942
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/LineDropdown/config.ts
@@ -0,0 +1,114 @@
+import { echartOptionProfixHandle, PublicConfigClass } from '@/packages/public'
+import { LineDropdownConfig } from './index'
+import { CreateComponentType } from '@/packages/index.d'
+import cloneDeep from 'lodash/cloneDeep'
+import dataJson from './data.json'
+
+export const includes = ['xAxis', 'yAxis', 'grid']
+
+const option = {
+ backgroundColor: 'rgba(13, 16, 22, 1)',
+ grid: {
+ left: '8%',
+ right: '8%',
+ top: '15%',
+ bottom: '15%',
+ containLabel: true
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ axisLine: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ color: 'rgba(255, 255, 255, 0.6)',
+ fontSize: 12
+ },
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ color: 'rgba(255, 255, 255, 0.6)',
+ fontSize: 12
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: 'rgba(255, 255, 255, 0.1)',
+ type: 'solid'
+ }
+ }
+ },
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'line',
+ lineStyle: {
+ color: 'rgba(58, 160, 255, 1)',
+ type: 'solid'
+ }
+ }
+ },
+ dataset: { ...dataJson },
+ series: [
+ {
+ type: 'line',
+ smooth: true,
+ symbol: 'none', // 默认不显示点
+ symbolSize: 8,
+ lineStyle: {
+ width: 2,
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 1,
+ y2: 0,
+ colorStops: [
+ { offset: 0, color: 'rgba(58, 160, 255, 1)' },
+ { offset: 1, color: 'rgba(127, 216, 255, 1)' }
+ ]
+ }
+ },
+ emphasis: {
+ focus: 'series',
+ symbol: 'circle', // 鼠标悬停时显示圆点
+ symbolSize: 8,
+ itemStyle: {
+ color: 'rgba(58, 160, 255, 1)',
+ borderColor: 'rgba(255, 255, 255, 0.8)',
+ borderWidth: 2
+ }
+ },
+ areaStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ { offset: 0, color: 'rgba(58, 160, 255, 0.5)' },
+ { offset: 1, color: 'rgba(58, 160, 255, 0.05)' }
+ ]
+ }
+ }
+ }
+ ]
+}
+
+export default class Config extends PublicConfigClass implements CreateComponentType {
+ public key: string = LineDropdownConfig.key
+ public chartConfig = cloneDeep(LineDropdownConfig)
+ public option = echartOptionProfixHandle(option, includes)
+}
\ No newline at end of file
diff --git a/src/packages/components/Charts/MyComponents/LineDropdown/config.vue b/src/packages/components/Charts/MyComponents/LineDropdown/config.vue
new file mode 100644
index 0000000..ce1a89d
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/LineDropdown/config.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/packages/components/Charts/MyComponents/LineDropdown/data.json b/src/packages/components/Charts/MyComponents/LineDropdown/data.json
new file mode 100644
index 0000000..b558988
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/LineDropdown/data.json
@@ -0,0 +1,81 @@
+{
+ "dimensions": ["time", "value"],
+ "source": [
+ {
+ "time": "13:00",
+ "value": 50
+ },
+ {
+ "time": "13:05",
+ "value": 45
+ },
+ {
+ "time": "13:10",
+ "value": 55
+ },
+ {
+ "time": "13:15",
+ "value": 48
+ },
+ {
+ "time": "13:20",
+ "value": 42
+ },
+ {
+ "time": "13:25",
+ "value": 38
+ },
+ {
+ "time": "13:30",
+ "value": 35
+ },
+ {
+ "time": "13:35",
+ "value": 40
+ },
+ {
+ "time": "13:40",
+ "value": 50
+ },
+ {
+ "time": "13:45",
+ "value": 65
+ },
+ {
+ "time": "13:50",
+ "value": 78
+ },
+ {
+ "time": "13:55",
+ "value": 80
+ },
+ {
+ "time": "14:00",
+ "value": 75
+ },
+ {
+ "time": "14:05",
+ "value": 68
+ },
+ {
+ "time": "14:10",
+ "value": 60
+ },
+ {
+ "time": "14:15",
+ "value": 55
+ },
+ {
+ "time": "14:20",
+ "value": 52
+ },
+ {
+ "time": "14:25",
+ "value": 58
+ },
+ {
+ "time": "14:30",
+ "value": 62
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/packages/components/Charts/MyComponents/LineDropdown/index.ts b/src/packages/components/Charts/MyComponents/LineDropdown/index.ts
new file mode 100644
index 0000000..f54282a
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/LineDropdown/index.ts
@@ -0,0 +1,14 @@
+import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
+// import { ChatCategoryEnum, ChatCategoryEnumName } from '../..'
+
+export const LineDropdownConfig: ConfigType = {
+ key: 'LineDropdown',
+ chartKey: 'VLineDropdown',
+ conKey: 'VCLineDropdown',
+ title: '下拉折线图',
+ category: 'MyComponents',
+ categoryName: '自定义组件',
+ package: PackagesCategoryEnum.CHARTS,
+ chartFrame: ChartFrameEnum.ECHARTS,
+ image: 'line_warn.png'
+}
\ No newline at end of file
diff --git a/src/packages/components/Charts/MyComponents/LineDropdown/index.vue b/src/packages/components/Charts/MyComponents/LineDropdown/index.vue
new file mode 100644
index 0000000..0355334
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/LineDropdown/index.vue
@@ -0,0 +1,469 @@
+
+
+
+
+
+
+
+
▼
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/packages/components/Charts/MyComponents/PieCenter/config.ts b/src/packages/components/Charts/MyComponents/PieCenter/config.ts
new file mode 100644
index 0000000..b0bc2a2
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/PieCenter/config.ts
@@ -0,0 +1,214 @@
+import { echartOptionProfixHandle, PublicConfigClass } from '@/packages/public'
+import { PieCenterConfig } from './index'
+import { CreateComponentType } from '@/packages/index.d'
+import cloneDeep from 'lodash/cloneDeep'
+import dataJson from './data.json'
+import { zIndex } from 'html2canvas/dist/types/css/property-descriptors/z-index'
+
+export const includes = ['legend']
+
+// 其它配置
+const otherConfig = {
+ // 轮播动画
+ isCarousel: false,
+}
+
+const option = {
+ ...otherConfig,
+ backgroundColor: 'transparent',
+ legend: {
+ show: true,
+ orient: 'vertical',
+ left: '60%', // 默认更靠左一点,避免截断
+ top: 'center',
+ icon: 'rect',
+ showEmpty:false,
+ // itemWidth: 10,
+ itemHeight: 8,
+ itemGap: 5,
+ selectedMode: 'multiple',
+ // padding: [15, 20, 15, 20],
+ textStyle: {
+ color: 'rgba(255, 255, 255, 1)',
+ fontSize: 16
+ },
+ formatter: function (name: string) {
+ return name
+ }
+ },
+ // color: ['rgba(255, 215, 0, 1)', 'rgba(74, 144, 226, 1)', 'rgba(80, 227, 194, 1)', 'rgba(126, 211, 33, 1)', 'rgba(144, 19, 254, 1)'],
+ dataset: { ...dataJson },
+ series: [
+ // 最外浅灰细边框
+ {
+ type: 'pie',
+ radius: ['84%', '86%'],
+ center: ['30%', '48%'],
+ silent: true,
+ z: 1,
+ data: [{ value: 1, name: '', itemStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ { offset: 0, color: 'rgba(200, 200, 200, 0.01)' },
+ { offset: 0.5, color: 'rgba(200, 200, 200, 0.1)' },
+ { offset: 1, color: 'rgba(200, 200, 200, 0.01)' },
+ ]
+ }
+ } }],
+ label: { show: false },
+ labelLine: { show: false }
+ },
+ // 中层蓝色细边框
+ {
+ type: 'pie',
+ radius: ['73%', '75%'],
+ center: ['30%', '48%'],
+ silent: true,
+ z: 2,
+ data: [{
+ value: 1, name: '', itemStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ { offset: 0, color: 'rgba(58, 160, 255, 0.2)' },
+ { offset: 1, color: 'rgba(58, 160, 255, 1)' },
+ ]
+ }
+ }
+ }],
+ label: { show: false },
+ labelLine: { show: false }
+ },
+ // 内层(蓝->黑)渐变环:在外边框里面
+ {
+ type: 'pie',
+ radius: ['66%', '73%'],
+ center: ['30%', '48%'],
+ silent: true,
+ z: 3,
+ data: [
+ {
+ value: 1,
+ name: '',
+ itemStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ { offset: 0, color: 'rgba(10, 21, 35, 0.3)' },
+ { offset: 1, color: 'rgba(127, 216, 255, 0.3)' },
+ ]
+ }
+ }
+ }
+ ],
+ label: { show: false },
+ labelLine: { show: false }
+ },
+ // 主数据环:内半径加大,让"最内环更薄"
+ {
+ type: 'pie',
+ radius: ['50%', '66%'], // 原 ['35%','65%'] -> 更薄的环
+ center: ['30%', '50%'],
+ avoidLabelOverlap: false,
+ padAngle: 4, // 扇区间隙
+ z: 9,
+ itemStyle: {
+ borderColor: 'rgba(13, 16, 22, 1)', // 用深色细边强调间隙
+ borderWidth: 2,
+ borderRadius: 0
+ },
+ label: { show: false },
+ labelLine: { show: false },
+ emphasis: {
+ label: {
+ show: false,
+ },
+ itemStyle: { shadowBlur: 12, shadowColor: 'rgba(0, 0, 0, 0.35)' }
+ },
+ data: dataJson.source
+ },
+ // 内部渐变装饰环(在空洞边缘,提升质感)
+ {
+ type: 'pie',
+ radius: ['48%', '50%'], // 位于主环内侧
+ center: ['30%', '50%'],
+ silent: true,
+ z: 0,
+ data: [
+ {
+ value: 1,
+ name: '',
+ itemStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ { offset: 0, color: 'rgba(90, 220, 255, 0.15)' },
+ { offset: 1, color: 'rgba(90, 220, 255, 0.15)' }
+ ]
+ }
+ }
+ }
+ ],
+ label: { show: false },
+ labelLine: { show: false }
+ },
+ {
+ type: 'pie',
+ radius: ['0%', '48%'], // 位于主环内侧
+ center: ['30%', '50%'],
+ // silent: true,
+ z: 10,
+ label: {
+ show: true,
+ position: 'center',
+ formatter: '{a|23211}\n\n{b|总数}',
+ rich: {
+ a: {
+ color: 'rgba(255, 255, 255, 1)',
+ fontSize: 34,
+ align: 'center'
+ },
+ b: {
+ color: 'rgba(255, 255, 255, 1)',
+ fontSize: 16,
+ align: 'center'
+ }
+ }
+ },
+
+ data: [
+ {
+ value: 1,
+ name: '',
+ itemStyle: {
+ color: 'transparent'
+ }
+ }
+ ],
+ labelLine: { show: false }
+ }
+ ],
+}
+
+export default class Config extends PublicConfigClass implements CreateComponentType {
+ public key: string = PieCenterConfig.key
+ public chartConfig = cloneDeep(PieCenterConfig)
+ public option = echartOptionProfixHandle(option, includes)
+}
\ No newline at end of file
diff --git a/src/packages/components/Charts/MyComponents/PieCenter/config.vue b/src/packages/components/Charts/MyComponents/PieCenter/config.vue
new file mode 100644
index 0000000..8117ad9
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/PieCenter/config.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/packages/components/Charts/MyComponents/PieCenter/data.json b/src/packages/components/Charts/MyComponents/PieCenter/data.json
new file mode 100644
index 0000000..502508f
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/PieCenter/data.json
@@ -0,0 +1,25 @@
+{
+ "dimensions": ["name", "value", "itemColor", "borderColor"],
+ "source": [
+ {
+ "name": "类型1",
+ "value": 5830
+ },
+ {
+ "name": "类型2",
+ "value": 7020
+ },
+ {
+ "name": "类型3",
+ "value": 4220
+ },
+ {
+ "name": "类型4",
+ "value": 5180
+ },
+ {
+ "name": "类型5",
+ "value": 2340
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/packages/components/Charts/MyComponents/PieCenter/index.ts b/src/packages/components/Charts/MyComponents/PieCenter/index.ts
new file mode 100644
index 0000000..d13fdfa
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/PieCenter/index.ts
@@ -0,0 +1,14 @@
+import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
+// import { ChatCategoryEnum, ChatCategoryEnumName } from '../../../index.d'
+
+export const PieCenterConfig: ConfigType = {
+ key: 'PieCenter',
+ chartKey: 'VPieCenter',
+ conKey: 'VCPieCenter',
+ title: '中心总数饼图',
+ category: 'MyComponents',
+ categoryName: '自定义组件',
+ package: PackagesCategoryEnum.CHARTS,
+ chartFrame: ChartFrameEnum.ECHARTS,
+ image: 'pie_center.png'
+}
diff --git a/src/packages/components/Charts/MyComponents/PieCenter/index.vue b/src/packages/components/Charts/MyComponents/PieCenter/index.vue
new file mode 100644
index 0000000..190c854
--- /dev/null
+++ b/src/packages/components/Charts/MyComponents/PieCenter/index.vue
@@ -0,0 +1,404 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/packages/components/Charts/MyComponents/index.ts b/src/packages/components/Charts/MyComponents/index.ts
index 3ec6206..deca4a1 100644
--- a/src/packages/components/Charts/MyComponents/index.ts
+++ b/src/packages/components/Charts/MyComponents/index.ts
@@ -4,6 +4,8 @@ import { TopAlarmsConfig } from './TopAlarms/index'
import { ParkingSceneConfig } from './ParkingScene/index'
import { WorkshopSceneConfig } from './WorkshopScene/index'
import { DeviceStatusConfig } from './DeviceStatus/index'
+import { LineDropdownConfig } from './LineDropdown/index'
+import { PieCenterConfig } from './PieCenter/index'
export default [
AlarmListConfig,
@@ -12,4 +14,6 @@ export default [
ParkingSceneConfig,
WorkshopSceneConfig,
DeviceStatusConfig,
+ LineDropdownConfig,
+ PieCenterConfig,
]
diff --git a/src/packages/components/Charts/Pies/index.ts b/src/packages/components/Charts/Pies/index.ts
index 8754aa0..01828b5 100644
--- a/src/packages/components/Charts/Pies/index.ts
+++ b/src/packages/components/Charts/Pies/index.ts
@@ -3,4 +3,4 @@ import { PieCircleConfig } from './PieCircle/index'
import { PieThreeConfig } from './PieThree'
import { PieMultConfig } from './PieMult/index'
-export default [PieCommonConfig, PieCircleConfig, PieThreeConfig, PieMultConfig]
\ No newline at end of file
+export default [PieCommonConfig, PieCircleConfig, PieThreeConfig, PieMultConfig]