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]