├── .python-version
├── demo-app
├── .vscode
│ └── extensions.json
├── public
│ └── favicon.ico
├── jsconfig.json
├── src
│ ├── assets
│ │ ├── logo.svg
│ │ ├── main.css
│ │ └── base.css
│ ├── components
│ │ ├── icons
│ │ │ ├── IconSupport.vue
│ │ │ ├── IconTooling.vue
│ │ │ ├── IconCommunity.vue
│ │ │ ├── IconDocumentation.vue
│ │ │ └── IconEcosystem.vue
│ │ ├── HelloWorld.vue
│ │ ├── WelcomeItem.vue
│ │ └── TheWelcome.vue
│ ├── App.vue
│ └── main.js
├── vite.config.js
├── .gitignore
├── package.json
├── README.md
├── index.html
└── pnpm-lock.yaml
├── .babelrc
├── .npmignore
├── src
├── index.js
├── utils.js
├── vue-fusioncharts-component.js
└── config.js
├── .eslintrc.js
├── .gitignore
├── component
└── index.min.js.LICENSE.txt
├── dist
└── vue-fusioncharts.min.js.LICENSE.txt
├── rollup.config.mjs
├── LICENSE.md
├── package.json
├── webpack.config.babel.js
└── README.md
/.python-version:
--------------------------------------------------------------------------------
1 | 2.7.18
2 |
--------------------------------------------------------------------------------
/demo-app/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["Vue.volar"]
3 | }
4 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": [
3 | "add-module-exports"
4 | ],
5 | "presets": ["env"]
6 | }
7 |
--------------------------------------------------------------------------------
/demo-app/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fusioncharts/vue-fusioncharts/HEAD/demo-app/public/favicon.ico
--------------------------------------------------------------------------------
/demo-app/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "paths": {
4 | "@/*": ["./src/*"]
5 | }
6 | },
7 | "exclude": ["node_modules", "dist"]
8 | }
9 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | # Node
2 | node_modules/*
3 | npm-debug.log
4 |
5 | # Windows
6 | Thumbs.db
7 | Desktop.ini
8 |
9 | # Mac
10 | .DS_Store
11 | **/.DS_Store
12 |
13 | # Example files
14 | example/
15 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import _FCComponent from './vue-fusioncharts-component';
2 |
3 | const install = (app, FC, ...options) => {
4 | let component = _FCComponent(FC, ...options);
5 | app.component(component.name, component);
6 | };
7 |
8 | export default install;
9 |
--------------------------------------------------------------------------------
/demo-app/src/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/demo-app/src/components/icons/IconSupport.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | browser: true,
4 | es6: true,
5 | node: true
6 | },
7 | extends: 'eslint:recommended',
8 | parserOptions: {
9 | sourceType: 'module'
10 | },
11 | rules: {
12 | indent: ['error', 2],
13 | 'linebreak-style': ['error', 'unix'],
14 | quotes: ['error', 'single'],
15 | semi: ['error', 'always']
16 | }
17 | };
18 |
--------------------------------------------------------------------------------
/demo-app/vite.config.js:
--------------------------------------------------------------------------------
1 | import { fileURLToPath, URL } from 'node:url'
2 |
3 | import { defineConfig } from 'vite'
4 | import vue from '@vitejs/plugin-vue'
5 |
6 | // https://vitejs.dev/config/
7 | export default defineConfig({
8 | plugins: [
9 | vue(),
10 | ],
11 | resolve: {
12 | alias: {
13 | '@': fileURLToPath(new URL('./src', import.meta.url))
14 | }
15 | }
16 | })
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 |
5 | # Runtime data
6 | pids
7 | *.pid
8 | *.seed
9 |
10 | # Coverage tools
11 | lib-cov
12 | coverage
13 | coverage.html
14 | .cover*
15 |
16 | # Dependency directory
17 | node_modules
18 | bower_components
19 |
20 | # Example build directory
21 | # example/dist
22 | .publish
23 |
24 | # Editor and other tmp files
25 | *.swp
26 | *.un~
27 | *.iml
28 | *.ipr
29 | *.iws
30 | *.sublime-*
31 | .idea/
32 | *.DS_Store
--------------------------------------------------------------------------------
/demo-app/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | .DS_Store
12 | dist
13 | dist-ssr
14 | coverage
15 | *.local
16 |
17 | /cypress/videos/
18 | /cypress/screenshots/
19 |
20 | # Editor directories and files
21 | .vscode/*
22 | !.vscode/extensions.json
23 | .idea
24 | *.suo
25 | *.ntvs*
26 | *.njsproj
27 | *.sln
28 | *.sw?
29 |
30 | *.tsbuildinfo
31 |
--------------------------------------------------------------------------------
/demo-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "demo-app",
3 | "version": "0.0.0",
4 | "private": true,
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "preview": "vite preview"
10 | },
11 | "dependencies": {
12 | "fusioncharts": "^3.23.0",
13 | "vue": "^3.4.21",
14 | "vue-fusioncharts": "^3.2.0"
15 | },
16 | "devDependencies": {
17 | "@vitejs/plugin-vue": "^5.0.4",
18 | "vite": "^5.2.8"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/demo-app/README.md:
--------------------------------------------------------------------------------
1 | # demo-app
2 |
3 | This template should help get you started developing with Vue 3 in Vite.
4 |
5 | ## Recommended IDE Setup
6 |
7 | [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
8 |
9 | ## Customize configuration
10 |
11 | See [Vite Configuration Reference](https://vitejs.dev/config/).
12 |
13 | ## Project Setup
14 |
15 | ```sh
16 | pnpm install
17 | ```
18 |
19 | ### Compile and Hot-Reload for Development
20 |
21 | ```sh
22 | pnpm dev
23 | ```
24 |
25 | ### Compile and Minify for Production
26 |
27 | ```sh
28 | pnpm build
29 | ```
30 |
--------------------------------------------------------------------------------
/demo-app/src/assets/main.css:
--------------------------------------------------------------------------------
1 | @import './base.css';
2 |
3 | #app {
4 | max-width: 1280px;
5 | margin: 0 auto;
6 | padding: 2rem;
7 | font-weight: normal;
8 | }
9 |
10 | a,
11 | .green {
12 | text-decoration: none;
13 | color: hsla(160, 100%, 37%, 1);
14 | transition: 0.4s;
15 | padding: 3px;
16 | }
17 |
18 | @media (hover: hover) {
19 | a:hover {
20 | background-color: hsla(160, 100%, 37%, 0.2);
21 | }
22 | }
23 |
24 | @media (min-width: 1024px) {
25 | body {
26 | display: flex;
27 | place-items: center;
28 | }
29 |
30 | #app {
31 | display: grid;
32 | grid-template-columns: 1fr 1fr;
33 | padding: 0 2rem;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/demo-app/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
9 |
10 |
11 |
12 |
19 | FusionCharts will render here...
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/component/index.min.js.LICENSE.txt:
--------------------------------------------------------------------------------
1 | /*! #__NO_SIDE_EFFECTS__ */
2 |
3 | /**
4 | * @vue/compiler-core v3.5.17
5 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
6 | * @license MIT
7 | **/
8 |
9 | /**
10 | * @vue/runtime-core v3.5.17
11 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
12 | * @license MIT
13 | **/
14 |
15 | /**
16 | * @vue/runtime-dom v3.5.17
17 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
18 | * @license MIT
19 | **/
20 |
21 | /**
22 | * @vue/shared v3.5.17
23 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
24 | * @license MIT
25 | **/
26 |
27 | /**
28 | * vue v3.5.17
29 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
30 | * @license MIT
31 | **/
32 |
--------------------------------------------------------------------------------
/dist/vue-fusioncharts.min.js.LICENSE.txt:
--------------------------------------------------------------------------------
1 | /*! #__NO_SIDE_EFFECTS__ */
2 |
3 | /**
4 | * @vue/compiler-core v3.5.17
5 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
6 | * @license MIT
7 | **/
8 |
9 | /**
10 | * @vue/runtime-core v3.5.17
11 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
12 | * @license MIT
13 | **/
14 |
15 | /**
16 | * @vue/runtime-dom v3.5.17
17 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
18 | * @license MIT
19 | **/
20 |
21 | /**
22 | * @vue/shared v3.5.17
23 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
24 | * @license MIT
25 | **/
26 |
27 | /**
28 | * vue v3.5.17
29 | * (c) 2018-present Yuxi (Evan) You and Vue contributors
30 | * @license MIT
31 | **/
32 |
--------------------------------------------------------------------------------
/rollup.config.mjs:
--------------------------------------------------------------------------------
1 | import commonjs from '@rollup/plugin-commonjs';
2 | import { nodeResolve } from '@rollup/plugin-node-resolve';
3 |
4 | export default {
5 | input: 'src/index.js', // replaces "entry"
6 | output: {
7 | file: 'dist/vue-fusioncharts.js', // replaces "dest"
8 | format: 'umd',
9 | name: 'VueFusionCharts', // replaces "moduleName"
10 | globals: {
11 | fusioncharts: 'FusionCharts',
12 | vue: 'Vue',
13 | 'lodash/cloneDeep': 'cloneDeep',
14 | 'lodash/uniqueId': 'uniqueId',
15 | },
16 | },
17 | external: ['fusioncharts', 'vue', 'lodash/cloneDeep', 'lodash/uniqueId'],
18 | plugins: [
19 | nodeResolve(), // allow Rollup to resolve imports from node_modules
20 | commonjs(), // convert CommonJS modules to ES6
21 | ],
22 | };
23 |
--------------------------------------------------------------------------------
/demo-app/src/components/HelloWorld.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
{{ msg }}
13 |
14 | You’ve successfully created a project with
15 | Vite +
16 | Vue 3 .
17 |
18 |
19 |
20 |
21 |
45 |
--------------------------------------------------------------------------------
/demo-app/src/App.vue:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
48 |
--------------------------------------------------------------------------------
/demo-app/src/components/icons/IconTooling.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
14 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/demo-app/src/components/icons/IconCommunity.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 FusionCharts, Inc.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/demo-app/src/components/icons/IconDocumentation.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/demo-app/src/components/WelcomeItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
88 |
--------------------------------------------------------------------------------
/src/utils.js:
--------------------------------------------------------------------------------
1 | export const addDep = (FC, modules) => {
2 | if (FC) {
3 | if (
4 | (modules.getName && modules.getType) ||
5 | (modules.name && modules.type)
6 | ) {
7 | FC.addDep(modules);
8 | } else {
9 | modules(FC);
10 | }
11 | }
12 | };
13 |
14 | export function checkIfDataTableExists(dataSource) {
15 | // eslint-disable-next-line no-underscore-dangle
16 | if (dataSource && dataSource.data && dataSource.data._dataStore) {
17 | return true;
18 | }
19 | return false;
20 | }
21 |
22 | export function cloneDataSource(obj, purpose = 'clone') {
23 | const type = typeof obj;
24 | if (
25 | type === 'string' ||
26 | type === 'number' ||
27 | type === 'function' ||
28 | type === 'boolean'
29 | ) {
30 | return obj;
31 | }
32 | if (obj === null || obj === undefined) {
33 | return obj;
34 | }
35 | if (Array.isArray(obj)) {
36 | const arr = [];
37 | for (let i = 0; i < obj.length; i++) {
38 | arr.push(cloneDataSource(obj[i]));
39 | }
40 | return arr;
41 | }
42 | if (typeof obj === 'object') {
43 | const clonedObj = {};
44 | // eslint-disable-next-line guard-for-in
45 | // eslint-disable-next-line no-restricted-syntax
46 | for (const prop in obj) {
47 | // Edge case handling for DataTable
48 | if (prop === 'data') {
49 | // eslint-disable-next-line no-underscore-dangle
50 | if (obj[prop] && obj[prop]._dataStore && purpose === 'clone') {
51 | clonedObj[prop] = obj[prop];
52 | // eslint-disable-next-line no-underscore-dangle
53 | } else if (obj[prop] && obj[prop]._dataStore && purpose === 'diff') {
54 | clonedObj[prop] = '-';
55 | } else {
56 | clonedObj[prop] = cloneDataSource(obj[prop]);
57 | }
58 | continue;
59 | }
60 | clonedObj[prop] = cloneDataSource(obj[prop]);
61 | }
62 | return clonedObj;
63 | }
64 | return undefined;
65 | }
66 |
--------------------------------------------------------------------------------
/demo-app/src/components/icons/IconEcosystem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-fusioncharts",
3 | "version": "3.4.0",
4 | "description": "A simple and lightweight VueJS component for FusionCharts JavaScript Charting Library",
5 | "main": "dist/vue-fusioncharts.js",
6 | "author": "FusionCharts",
7 | "homepage": "http://www.fusioncharts.com",
8 | "repository": {
9 | "type": "git",
10 | "url": "https://github.com/fusioncharts/vue-fusioncharts.git"
11 | },
12 | "bugs": {
13 | "url": "https://github.com/fusioncharts/vue-fusioncharts/issues"
14 | },
15 | "keywords": [
16 | "Vue",
17 | "Vue.js",
18 | "vue-fusioncharts-component",
19 | "vue-fusioncharts",
20 | "fusioncharts",
21 | "javascript-charts",
22 | "interactive-charts",
23 | "charts",
24 | "graphs",
25 | "visualization",
26 | "data-visualization",
27 | "dataviz",
28 | "browserify",
29 | "webpack"
30 | ],
31 | "scripts": {
32 | "test": "npm run lint",
33 | "lint": "eslint ./src/**/*.js webpack.config.babel.js",
34 | "build": "webpack --config webpack.config.babel.js",
35 | "rollup-old": "rollup src/index.js -f umd -n VueFusionCharts -g fusioncharts:FusionCharts -o dist/vue-fusioncharts.js",
36 | "rollup": "rollup -c",
37 | "watch": "webpack --config webpack.config.babel.js -w",
38 | "dev": "webpack serve --config example/webpack.config.js",
39 | "start": "webpack serve --config example/webpack.config.js"
40 | },
41 | "license": "MIT",
42 | "devDependencies": {
43 | "@rollup/plugin-commonjs": "^28.0.6",
44 | "@rollup/plugin-node-resolve": "^16.0.1",
45 | "babel": "^6.23.0",
46 | "babel-core": "^6.24.1",
47 | "babel-eslint": "^7.2.3",
48 | "babel-loader": "^7.0.0",
49 | "babel-plugin-add-module-exports": "^0.2.1",
50 | "babel-preset-env": "^1.7.0",
51 | "babel-preset-es2015": "^6.24.1",
52 | "chai": "^3.5.0",
53 | "eslint": "^3.19.0",
54 | "eslint-loader": "^2.0.0",
55 | "lodash": "^4.17.21",
56 | "mocha": "^5.2.0",
57 | "rollup-plugin-commonjs": "^8.0.2",
58 | "rollup-plugin-node-resolve": "^3.0.0",
59 | "terser-webpack-plugin": "^5.1.3",
60 | "vue": "^3.5.17",
61 | "webpack": "^5.39.0",
62 | "webpack-cli": "^4.7.2",
63 | "webpack-dev-server": "^3.11.2",
64 | "yards": "^0.1.4"
65 | },
66 | "dependencies": {
67 | "mixin-deep": "^1.3.2",
68 | "underscore": "^1.13.6",
69 | "websocket-extensions": "^0.1.4"
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/demo-app/src/assets/base.css:
--------------------------------------------------------------------------------
1 | /* color palette from */
2 | :root {
3 | --vt-c-white: #ffffff;
4 | --vt-c-white-soft: #f8f8f8;
5 | --vt-c-white-mute: #f2f2f2;
6 |
7 | --vt-c-black: #181818;
8 | --vt-c-black-soft: #222222;
9 | --vt-c-black-mute: #282828;
10 |
11 | --vt-c-indigo: #2c3e50;
12 |
13 | --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
14 | --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
15 | --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
16 | --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
17 |
18 | --vt-c-text-light-1: var(--vt-c-indigo);
19 | --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
20 | --vt-c-text-dark-1: var(--vt-c-white);
21 | --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
22 | }
23 |
24 | /* semantic color variables for this project */
25 | :root {
26 | --color-background: var(--vt-c-white);
27 | --color-background-soft: var(--vt-c-white-soft);
28 | --color-background-mute: var(--vt-c-white-mute);
29 |
30 | --color-border: var(--vt-c-divider-light-2);
31 | --color-border-hover: var(--vt-c-divider-light-1);
32 |
33 | --color-heading: var(--vt-c-text-light-1);
34 | --color-text: var(--vt-c-text-light-1);
35 |
36 | --section-gap: 160px;
37 | }
38 |
39 | @media (prefers-color-scheme: dark) {
40 | :root {
41 | --color-background: var(--vt-c-black);
42 | --color-background-soft: var(--vt-c-black-soft);
43 | --color-background-mute: var(--vt-c-black-mute);
44 |
45 | --color-border: var(--vt-c-divider-dark-2);
46 | --color-border-hover: var(--vt-c-divider-dark-1);
47 |
48 | --color-heading: var(--vt-c-text-dark-1);
49 | --color-text: var(--vt-c-text-dark-2);
50 | }
51 | }
52 |
53 | *,
54 | *::before,
55 | *::after {
56 | box-sizing: border-box;
57 | margin: 0;
58 | font-weight: normal;
59 | }
60 |
61 | body {
62 | min-height: 100vh;
63 | color: var(--color-text);
64 | background: var(--color-background);
65 | transition:
66 | color 0.5s,
67 | background-color 0.5s;
68 | line-height: 1.6;
69 | font-family:
70 | Inter,
71 | -apple-system,
72 | BlinkMacSystemFont,
73 | 'Segoe UI',
74 | Roboto,
75 | Oxygen,
76 | Ubuntu,
77 | Cantarell,
78 | 'Fira Sans',
79 | 'Droid Sans',
80 | 'Helvetica Neue',
81 | sans-serif;
82 | font-size: 15px;
83 | text-rendering: optimizeLegibility;
84 | -webkit-font-smoothing: antialiased;
85 | -moz-osx-font-smoothing: grayscale;
86 | }
87 |
--------------------------------------------------------------------------------
/webpack.config.babel.js:
--------------------------------------------------------------------------------
1 |
2 | const TerserPlugin = require('terser-webpack-plugin');
3 | const libraryNamePlugin = 'VueFusionCharts';
4 | const libraryNameComponent = 'VueFusionChartsComponent';
5 |
6 | const vueFCPluginConfig = {
7 | entry: {
8 | 'vue-fusioncharts': __dirname + '/src/index.js',
9 | 'vue-fusioncharts.min': __dirname + '/src/index.js'
10 | },
11 | devtool: 'source-map',
12 | output: {
13 | path: __dirname + '/dist',
14 | filename: '[name].js',
15 | library: libraryNamePlugin,
16 | libraryTarget: 'umd'
17 | },
18 | module: {
19 | rules: [
20 | {
21 | test: /(\.jsx|\.js)$/,
22 | loader: 'babel-loader',
23 | exclude: /(node_modules|bower_components)/
24 | },
25 | {
26 | test: /(\.jsx|\.js)$/,
27 | loader: 'eslint-loader',
28 | exclude: /node_modules/
29 | }
30 | ]
31 | },
32 | externals: {
33 | fusioncharts: {
34 | commonjs2: 'fusioncharts',
35 | commonjs: 'fusioncharts',
36 | amd: 'fusioncharts',
37 | root: 'FusionCharts'
38 | }
39 | },
40 | optimization: {
41 | minimize: true,
42 | minimizer: [
43 | new TerserPlugin({
44 | parallel: true,
45 | include: 'vue-fusioncharts.min.js',
46 | }),
47 | ],
48 | },
49 | mode: 'production'
50 | };
51 |
52 | const vueFCComponentConfig = {
53 | entry: {
54 | index: __dirname + '/src/vue-fusioncharts-component.js',
55 | 'index.min': __dirname + '/src/vue-fusioncharts-component.js'
56 | },
57 | devtool: 'source-map',
58 | output: {
59 | path: __dirname + '/component',
60 | filename: '[name].js',
61 | library: libraryNameComponent,
62 | libraryTarget: 'umd'
63 | },
64 | module: {
65 | rules: [
66 | {
67 | test: /(\.jsx|\.js)$/,
68 | loader: 'babel-loader',
69 | exclude: /(node_modules|bower_components)/
70 | },
71 | {
72 | test: /(\.jsx|\.js)$/,
73 | loader: 'eslint-loader',
74 | exclude: /node_modules/
75 | }
76 | ]
77 | },
78 | externals: {
79 | fusioncharts: {
80 | commonjs2: 'fusioncharts',
81 | commonjs: 'fusioncharts',
82 | amd: 'fusioncharts',
83 | root: 'FusionCharts'
84 | }
85 | },
86 | optimization: {
87 | minimize: true,
88 | minimizer: [
89 | new TerserPlugin({
90 | parallel: true,
91 | include: 'index.min.js',
92 | }),
93 | ],
94 | },
95 | mode: 'production'
96 | };
97 |
98 | module.exports = [vueFCPluginConfig, vueFCComponentConfig];
99 |
--------------------------------------------------------------------------------
/demo-app/src/components/TheWelcome.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Documentation
16 |
17 | Vue’s
18 | official documentation
19 | provides you with all information you need to get started.
20 |
21 |
22 |
23 |
24 |
25 |
26 | Tooling
27 |
28 | This project is served and bundled with
29 | Vite . The
30 | recommended IDE setup is
31 | VSCode +
32 | Volar . If
33 | you need to test your components and web pages, check out
34 | Cypress and
35 | Cypress Component Testing .
38 |
39 |
40 |
41 | More instructions are available in README.md.
42 |
43 |
44 |
45 |
46 |
47 |
48 | Ecosystem
49 |
50 | Get official tools and libraries for your project:
51 | Pinia ,
52 | Vue Router ,
53 | Vue Test Utils , and
54 | Vue Dev Tools . If
55 | you need more resources, we suggest paying
56 | Awesome Vue
57 | a visit.
58 |
59 |
60 |
61 |
62 |
63 |
64 | Community
65 |
66 | Got stuck? Ask your question on
67 | Vue Land , our official
68 | Discord server, or
69 | StackOverflow . You should also subscribe to
72 | our mailing list and follow
73 | the official
74 | @vuejs
75 | twitter account for latest news in the Vue world.
76 |
77 |
78 |
79 |
80 |
81 |
82 | Support Vue
83 |
84 | As an independent project, Vue relies on community backing for its sustainability. You can help
85 | us by
86 | becoming a sponsor .
87 |
88 |
89 |
--------------------------------------------------------------------------------
/demo-app/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue/dist/vue.esm-bundler';
2 |
3 | import VueFusionCharts from 'vue-fusioncharts';
4 | import FusionCharts from 'fusioncharts';
5 | import Charts from 'fusioncharts/fusioncharts.charts';
6 |
7 | // Additional data
8 | const jsonify = (res) => res.json();
9 | const dataFetch = fetch(
10 | 'https://s3.eu-central-1.amazonaws.com/fusion.store/ft/data/plotting-multiple-series-on-time-axis-data.json'
11 | ).then(jsonify);
12 | const schemaFetch = fetch(
13 | 'https://s3.eu-central-1.amazonaws.com/fusion.store/ft/schema/plotting-multiple-series-on-time-axis-schema.json'
14 | ).then(jsonify);
15 |
16 | const App = {
17 | data() {
18 | return {
19 | component: true,
20 | show: false,
21 | counter: 0,
22 | chartType: 'Pie2D',
23 | pieDataSource: {
24 | chart: {
25 | caption: 'Vue FusionCharts Sample',
26 | theme: 'fint',
27 | },
28 | data: [{ value: 1.9 }, { value: 2.3 }, { value: 2.1 }],
29 | },
30 | displayValue: 'nothing',
31 | events: {
32 | dataplotRollover: function (ev, props) {
33 | this.displayValue = props.value;
34 | },
35 | },
36 | width: '600',
37 | height: '400',
38 | type: 'timeseries',
39 | dataFormat: 'json',
40 | dataSource: {
41 | data: null,
42 | caption: {
43 | text: 'Sales Analysis',
44 | },
45 | subcaption: {
46 | text: 'Grocery & Footwear',
47 | },
48 | series: 'Type',
49 | yAxis: [
50 | {
51 | plot: 'Sales Value',
52 | title: 'Sale Value',
53 | format: {
54 | prefix: '$',
55 | },
56 | },
57 | ],
58 | },
59 | chartDs: {
60 | chart: {
61 | caption: 'Vue FusionCharts Sample',
62 | theme: 'fint',
63 | animation: '1',
64 | updateanimduration: '100',
65 | },
66 | data: [{ value: 1.9 }, { value: 2.3 }, { value: 2.1 }],
67 | },
68 | options: {
69 | width: '600',
70 | height: '400',
71 | type: 'Pie2D',
72 | dataFormat: 'json',
73 | dataSource: {
74 | chart: {
75 | caption: 'Vue FusionCharts Sample',
76 | theme: 'fint',
77 | },
78 | data: [{ value: 1.9 }, { value: 2.3 }, { value: 2.1 }],
79 | },
80 | },
81 | timeseriesOptions: {
82 | width: '600',
83 | height: '400',
84 | type: 'timeseries',
85 | dataFormat: 'json',
86 | dataSource: {
87 | caption: { text: 'Online Sales of a SuperStore in the US' },
88 | data: null,
89 | yAxis: [
90 | {
91 | plot: [
92 | {
93 | value: 'Sales ($)',
94 | },
95 | ],
96 | },
97 | ],
98 | },
99 | },
100 | };
101 | },
102 | methods: {
103 | changeFirstChartAttr: function () {
104 | // let dataSource = Object.assign({}, this.pieDataSource);
105 | this.chartDs.chart.caption = 'Changed to something else';
106 | // this.chartDs.data[2].value = this.getRandomNumber();
107 | // this.chartDs.data[1].value = this.getRandomNumber();
108 | // this.pieDataSource = dataSource;
109 | },
110 | changeSecondChartAttr: function () {
111 | let dataSource = Object.assign({}, this.dataSource);
112 | dataSource.caption.text = 'Changed to something else';
113 | this.dataSource = dataSource;
114 | },
115 | getRandomNumber: function () {
116 | var max = 5,
117 | min = 2;
118 | return Math.round((max - min) * Math.random() + min);
119 | },
120 | changeChartAttr: function () {
121 | let dataSource = Object.assign({}, this.dataSource);
122 | dataSource.caption.text = 'Changed to something else';
123 | this.dataSource = dataSource;
124 | },
125 | },
126 | mounted: function () {
127 | Promise.all([dataFetch, schemaFetch]).then((res) => {
128 | const data = res[0];
129 | const schema = res[1];
130 | const fusionTable = new FusionCharts.DataStore().createDataTable(data, schema);
131 | this.dataSource.data = fusionTable;
132 | });
133 | },
134 | };
135 | const app = createApp(App);
136 | app.use(VueFusionCharts, FusionCharts, Charts);
137 | app.mount('#chart1');
138 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vue FusionCharts Component
2 |
3 | The `vue-fusioncharts` component provides a straightforward and efficient way to integrate the powerful `FusionCharts` JavaScript Charting Library with your Vue.js (Vue 3) applications.
4 |
5 | ## Quick Links
6 |
7 | - [Demo](https://fusioncharts.github.io/vue-fusioncharts/)
8 | - [Documentation](https://www.fusioncharts.com/dev/getting-started/vue/your-first-chart-using-vuejs)
9 | - [FusionCharts NPM Package](https://www.npmjs.com/package/fusioncharts)
10 | - [Support](https://www.fusioncharts.com/contact-support)
11 | - [Official Website](https://www.fusioncharts.com/)
12 |
13 | ## Table of Contents
14 |
15 | 1. [Getting Started](#getting-started)
16 | - [Requirements](#requirements)
17 | - [Installation](#installation)
18 | - [Usage](#usage)
19 | 2. [Quick Start](#quick-start)
20 | 3. [Working with Events](#working-with-events)
21 | 4. [Working with APIs](#working-with-apis)
22 | 5. [Advanced Usage and FusionTime](#advanced-usage-and-fusiontime)
23 | 6. [Contributing](#contributing)
24 | 7. [Licensing](#licensing)
25 |
26 | ## Getting Started
27 |
28 | ### Requirements
29 |
30 | Ensure you have **Node.js**, **NPM/Yarn** installed globally. Additionally, you need **FusionCharts** and **Vue** installed in your project.
31 |
32 | ### Installation
33 |
34 | You can install `vue-fusioncharts` directly via NPM or Yarn, or by downloading the binaries from our GitHub repository.
35 |
36 | #### NPM
37 |
38 | ```bash
39 | npm install vue-fusioncharts --save
40 | ```
41 |
42 | #### Yarn
43 |
44 | ```bash
45 | yarn add vue-fusioncharts
46 | ```
47 |
48 | #### Direct Download
49 |
50 | Download the [`vue-fusioncharts.js`](https://github.com/fusioncharts/vue-fusioncharts/blob/master/dist/vue-fusioncharts.js) file and include it in your project using a `
54 | ```
55 |
56 | ### Usage
57 |
58 | `vue-fusioncharts` can be integrated into your Vue application either globally as a plugin or locally within a component.
59 |
60 | #### Global Registration
61 |
62 | ```javascript
63 | import { createApp } from 'vue';
64 | import VueFusionCharts from 'vue-fusioncharts';
65 | import FusionCharts from 'fusioncharts';
66 | import Charts from 'fusioncharts/fusioncharts.charts';
67 |
68 | const app = createApp(App);
69 | app.use(VueFusionCharts, FusionCharts, Charts);
70 | ```
71 |
72 | #### Local Registration
73 |
74 | ```javascript
75 | import { createApp } from 'vue';
76 | import VueFusionChartsComponent from 'vue-fusioncharts/component';
77 | import FusionCharts from 'fusioncharts';
78 | import Charts from 'fusioncharts/fusioncharts.charts';
79 |
80 | const app = createApp(App);
81 | const VueFusionCharts = VueFusionChartsComponent(FusionCharts, Charts);
82 | app.component('fusioncharts', VueFusionCharts);
83 | ```
84 |
85 | ## Quick Start
86 |
87 | Here is an example to quickly set up a chart using `vue-fusioncharts`:
88 |
89 | ```javascript
90 | import { createApp } from 'vue';
91 | import VueFusionCharts from 'vue-fusioncharts';
92 | import FusionCharts from 'fusioncharts';
93 | import Charts from 'fusioncharts/fusioncharts.charts';
94 |
95 | const myDataSource = {
96 | chart: {
97 | caption: 'Recommended Portfolio Split',
98 | subCaption: 'For a net-worth of $1M',
99 | showValues: '1',
100 | showPercentInTooltip: '0',
101 | numberPrefix: '$',
102 | enableMultiSlicing: '1',
103 | theme: 'fusion'
104 | },
105 | data: [
106 | { label: 'Equity', value: '300000' },
107 | { label: 'Debt', value: '230000' },
108 | // more data
109 | ]
110 | };
111 |
112 | const App = {
113 | data() {
114 | return {
115 | type: 'column2d',
116 | width: '500',
117 | height: '300',
118 | dataFormat: 'json',
119 | dataSource: myDataSource
120 | };
121 | }
122 | };
123 |
124 | const app = createApp(App);
125 | app.use(VueFusionCharts, FusionCharts, Charts);
126 | app.mount('#app');
127 | ```
128 |
129 | ```html
130 |
131 |
137 |
138 |
139 | ```
140 |
141 | ## Working with Events
142 |
143 | To handle events within `vue-fusioncharts`, use Vue event handling syntax:
144 |
145 | ```html
146 |
147 |
148 |
156 |
157 | ```
158 |
159 | ## Advanced Usage and FusionTime
160 |
161 | From `fusioncharts@3.13.3-sr.1` and `vue-fusioncharts@3.0.0`, FusionTime allows easy visualization of time series data.
162 |
163 | ```javascript
164 | import { createApp } from 'vue';
165 | import VueFusionCharts from 'vue-fusioncharts';
166 | import FusionCharts from 'fusioncharts';
167 | import TimeSeries from 'fusioncharts/fusioncharts.timeseries';
168 |
169 | const app = createApp(App);
170 | app.use(VueFusionCharts, FusionCharts, TimeSeries);
171 | app.mount('#app');
172 | ```
173 |
174 | ## Contributing
175 |
176 | Contributions are welcome! Please refer to the repository's [issue tracker](https://github.com/fusioncharts/vue-fusioncharts/issues) to report bugs or submit feature requests.
177 |
178 | ## Licensing
179 |
180 | `vue-fusioncharts` is open-source under the MIT/X11 License. Note that FusionCharts itself is separately licensed, and you need to purchase a commercial license for production use.
181 |
--------------------------------------------------------------------------------
/src/vue-fusioncharts-component.js:
--------------------------------------------------------------------------------
1 | import { optionsMap, props } from './config.js';
2 | import cloneDeep from 'lodash/cloneDeep';
3 | import uniqueId from 'lodash/uniqueId';
4 | import { addDep, checkIfDataTableExists, cloneDataSource } from './utils';
5 | import { h } from 'vue';
6 |
7 | export default (FC, ...options) => {
8 | options &&
9 | options.forEach &&
10 | options.forEach((modules) => {
11 | addDep(FC, modules);
12 | });
13 | return {
14 | name: 'fusioncharts',
15 | render: function () {
16 | this.containerID = 'fc-' + uniqueId();
17 | return h('div', {
18 | id: this.containerID,
19 | });
20 | },
21 | props,
22 | methods: {
23 | createEvents: function () {
24 | const myattrs = this.$attrs;
25 | const ret = {
26 | events: {},
27 | };
28 |
29 | if (myattrs && typeof myattrs === 'object') {
30 | Object.keys(myattrs).forEach((event) => {
31 | if (event.startsWith('on') && typeof myattrs[event] === 'function') {
32 | const myEvent = event.replace('on', '');
33 | ret.events[myEvent] = e => {
34 | this.$emit(myEvent, e);
35 | };
36 | }
37 | });
38 | }
39 | return ret;
40 | },
41 | setLastOptions: function (config) {
42 | this._oldOptions = Object.assign({}, config);
43 | },
44 | getLastOptions: function () {
45 | return this._oldOptions;
46 | },
47 | getOptions: function () {
48 | let config = {},
49 | THIS = this;
50 | for (let i in optionsMap) {
51 | if (THIS[i] !== undefined && THIS[i] !== null) {
52 | config[optionsMap[i]] = THIS[i];
53 | }
54 | }
55 |
56 | let options = Object.assign(Object.assign({}, THIS.options), config);
57 |
58 | return options;
59 | },
60 | renderChart: function () {
61 | let THIS = this,
62 | config = THIS.getOptions(),
63 | chartObj = THIS.chartObj;
64 |
65 | config.renderAt = this.containerID;
66 | THIS.setLastOptions(config);
67 |
68 | if (chartObj && chartObj.dispose) {
69 | chartObj.dispose();
70 | }
71 | const events = this.createEvents();
72 | config.events = Object.assign({}, config.events, events.events);
73 |
74 | let ds = config.dataSource || config.datasource;
75 |
76 | if (checkIfDataTableExists(ds))
77 | this.prevDataSource = cloneDataSource(ds, 'diff');
78 | else this.prevDataSource = cloneDataSource(ds, 'clone');
79 |
80 | THIS.chartObj = chartObj = new FC(config);
81 | chartObj.render();
82 | },
83 | updateChart: function () {
84 | let THIS = this,
85 | config = THIS.getOptions(),
86 | prevConfig = THIS.getLastOptions(),
87 | chartObj = THIS.chartObj;
88 |
89 | if (
90 | config.width !== prevConfig.width ||
91 | config.height !== prevConfig.height
92 | ) {
93 | chartObj && chartObj.resizeTo(config.width, config.height);
94 | } else if (config.type !== prevConfig.type) {
95 | chartObj.chartType(config.type);
96 | } else {
97 | if (!checkIfDataTableExists(config.dataSource))
98 | chartObj.setChartData(config.dataSource, config.dataFormat);
99 | }
100 |
101 | THIS.setLastOptions(config);
102 | },
103 | },
104 | watch: {
105 | type: function () {
106 | this.chartObj.chartType(this.type);
107 | },
108 | width: function () {
109 | this.chartObj.resizeTo(this.width, this.height);
110 | },
111 | height: function () {
112 | this.chartObj.resizeTo(this.width, this.height);
113 | },
114 | options: {
115 | handler: function () {
116 | this.updateChart();
117 | },
118 | deep: true,
119 | },
120 | dataSource: {
121 | handler: function () {
122 | if (!checkIfDataTableExists(this.dataSource)) {
123 | this.chartObj.setChartData(
124 | this.datasource || this.dataSource,
125 | this.dataFormat || this.dataformat
126 | );
127 | }
128 | },
129 | deep: true,
130 | },
131 | datasource: {
132 | handler: function () {
133 | if (!checkIfDataTableExists(this.datasource)) {
134 | this.chartObj.setChartData(
135 | this.datasource || this.dataSource,
136 | this.dataFormat || this.dataformat
137 | );
138 | }
139 | },
140 | deep: true,
141 | },
142 | 'datasource.data': {
143 | handler: function (newVal, prevVal) {
144 | if (newVal !== prevVal) {
145 | let clonedDataSource;
146 | if (this.datasource.series) {
147 | clonedDataSource = cloneDeep(this.datasource);
148 | } else clonedDataSource = this.datasource;
149 | this.chartObj.setChartData(
150 | clonedDataSource,
151 | this.dataFormat || this.dataformat
152 | );
153 | }
154 | },
155 | deep: false,
156 | },
157 | 'dataSource.data': {
158 | handler: function (newVal, prevVal) {
159 | if (newVal !== prevVal) {
160 | let clonedDataSource;
161 | if (this.dataSource.series) {
162 | clonedDataSource = cloneDeep(this.dataSource);
163 | } else clonedDataSource = this.dataSource;
164 | this.chartObj.setChartData(
165 | clonedDataSource,
166 | this.dataFormat || this.dataformat
167 | );
168 | }
169 | },
170 | deep: false,
171 | },
172 | },
173 | deactivated: function () {
174 | this.chartObj && this.chartObj.dispose();
175 | },
176 | beforeUnmount: function () {
177 | this.chartObj && this.chartObj.dispose();
178 | },
179 | mounted: function () {
180 | this.renderChart();
181 | },
182 | ready: function () {
183 | this.renderChart();
184 | },
185 | beforeUpdate: function () {
186 | const strPrevClonedDataSource = JSON.stringify(this.prevDataSource);
187 | let ds = this.datasource || this.dataSource || this.options.dataSource;
188 | const strCurrClonedDataSource = JSON.stringify(
189 | cloneDataSource(ds, 'diff')
190 | );
191 | if (strPrevClonedDataSource !== strCurrClonedDataSource) {
192 | this.prevDataSource = cloneDataSource(ds, 'diff');
193 | if (ds.series) {
194 | ds = cloneDeep(ds);
195 | }
196 | this.chartObj.setChartData(ds, this.dataFormat || this.dataformat);
197 | }
198 | },
199 | };
200 | };
201 |
--------------------------------------------------------------------------------
/src/config.js:
--------------------------------------------------------------------------------
1 | export const optionsMap = {
2 | type: 'type',
3 | id: 'id',
4 | width: 'width',
5 | height: 'height',
6 | dataFormat: 'dataFormat',
7 | dataSource: 'dataSource',
8 | events: 'events',
9 | link: 'link',
10 | showDataLoadingMessage: 'showDataLoadingMessage',
11 | showChartLoadingMessage: 'showChartLoadingMessage',
12 | baseChartMessageFont: 'baseChartMessageFont',
13 | baseChartMessageFontSize: 'baseChartMessageFontSize',
14 | baseChartMessageColor: 'baseChartMessageColor',
15 | dataLoadStartMessage: 'dataLoadStartMessage',
16 | dataLoadErrorMessage: 'dataLoadErrorMessage',
17 | dataInvalidMessage: 'dataInvalidMessage',
18 | dataEmptyMessage: 'dataEmptyMessage',
19 | typeNotSupportedMessage: 'typeNotSupportedMessage',
20 | loadMessage: 'loadMessage',
21 | renderErrorMessage: 'renderErrorMessage',
22 | containerBackgroundColor: 'containerBackgroundColor',
23 | containerBackgroundOpacity: 'containerBackgroundOpacity',
24 | containerClassName: 'containerClassName',
25 | baseChartMessageImageHAlign: 'baseChartMessageImageHAlign',
26 | baseChartMessageImageVAlign: 'baseChartMessageImageVAlign',
27 | baseChartMessageImageAlpha: 'baseChartMessageImageAlpha',
28 | baseChartMessageImageScale: 'baseChartMessageImageScale',
29 | typeNotSupportedMessageImageHAlign: 'typeNotSupportedMessageImageHAlign',
30 | typeNotSupportedMessageImageVAlign: 'typeNotSupportedMessageImageVAlign',
31 | typeNotSupportedMessageImageAlpha: 'typeNotSupportedMessageImageAlpha',
32 | typeNotSupportedMessageImageScale: 'typeNotSupportedMessageImageScale',
33 | dataLoadErrorMessageImageHAlign: 'dataLoadErrorMessageImageHAlign',
34 | dataLoadErrorMessageImageVAlign: 'dataLoadErrorMessageImageVAlign',
35 | dataLoadErrorMessageImageAlpha: 'dataLoadErrorMessageImageAlpha',
36 | dataLoadErrorMessageImageScale: 'dataLoadErrorMessageImageScale',
37 | dataLoadStartMessageImageHAlign: 'dataLoadStartMessageImageHAlign',
38 | dataLoadStartMessageImageVAlign: 'dataLoadStartMessageImageVAlign',
39 | dataLoadStartMessageImageAlpha: 'dataLoadStartMessageImageAlpha',
40 | dataLoadStartMessageImageScale: 'dataLoadStartMessageImageScale',
41 | dataInvalidMessageImageHAlign: 'dataInvalidMessageImageHAlign',
42 | dataInvalidMessageImageVAlign: 'dataInvalidMessageImageVAlign',
43 | dataInvalidMessageImageAlpha: 'dataInvalidMessageImageAlpha',
44 | dataInvalidMessageImageScale: 'dataInvalidMessageImageScale',
45 | dataEmptyMessageImageHAlign: 'dataEmptyMessageImageHAlign',
46 | dataEmptyMessageImageVAlign: 'dataEmptyMessageImageVAlign',
47 | dataEmptyMessageImageAlpha: 'dataEmptyMessageImageAlpha',
48 | dataEmptyMessageImageScale: 'dataEmptyMessageImageScale',
49 | renderErrorMessageImageHAlign: 'renderErrorMessageImageHAlign',
50 | renderErrorMessageImageVAlign: 'renderErrorMessageImageVAlign',
51 | renderErrorMessageImageAlpha: 'renderErrorMessageImageAlpha',
52 | renderErrorMessageImageScale: 'renderErrorMessageImageScale',
53 | loadMessageImageHAlign: 'loadMessageImageHAlign',
54 | loadMessageImageVAlign: 'loadMessageImageVAlign',
55 | loadMessageImageAlpha: 'loadMessageImageAlpha',
56 | loadMessageImageScale: 'loadMessageImageScale',
57 | ///////////////////////////////////////////////////////
58 | dataformat: 'dataFormat',
59 | datasource: 'dataSource',
60 | showdataloadingmessage: 'showDataLoadingMessage',
61 | showchartloadingmessage: 'showChartLoadingMessage',
62 | basechartmessagefont: 'baseChartMessageFont',
63 | basechartmessagefontsize: 'baseChartMessageFontSize',
64 | basechartmessagecolor: 'baseChartMessageColor',
65 | dataloadstartmessage: 'dataLoadStartMessage',
66 | dataloaderrormessage: 'dataLoadErrorMessage',
67 | datainvalidmessage: 'dataInvalidMessage',
68 | dataemptymessage: 'dataEmptyMessage',
69 | typenotsupportedmessage: 'typeNotSupportedMessage',
70 | loadmessage: 'loadMessage',
71 | rendererrormessage: 'renderErrorMessage',
72 | containerbackgroundcolor: 'containerBackgroundColor',
73 | containerbackgroundopacity: 'containerBackgroundOpacity',
74 | containerclassname: 'containerClassName',
75 | basechartmessageimagehalign: 'baseChartMessageImageHAlign',
76 | basechartmessageimagevalign: 'baseChartMessageImageVAlign',
77 | basechartmessageimagealpha: 'baseChartMessageImageAlpha',
78 | basechartmessageimagescale: 'baseChartMessageImageScale',
79 | typenotsupportedmessageimagehalign: 'typeNotSupportedMessageImageHAlign',
80 | typenotsupportedmessageimagevalign: 'typeNotSupportedMessageImageVAlign',
81 | typenotsupportedmessageimagealpha: 'typeNotSupportedMessageImageAlpha',
82 | typenotsupportedmessageimagescale: 'typeNotSupportedMessageImageScale',
83 | dataloaderrormessageimagehalign: 'dataLoadErrorMessageImageHAlign',
84 | dataloaderrormessageimagevalign: 'dataLoadErrorMessageImageVAlign',
85 | dataloaderrormessageimagealpha: 'dataLoadErrorMessageImageAlpha',
86 | dataloaderrormessageimagescale: 'dataLoadErrorMessageImageScale',
87 | dataloadstartmessageimagehalign: 'dataLoadStartMessageImageHAlign',
88 | dataloadstartmessageimagevalign: 'dataLoadStartMessageImageVAlign',
89 | dataloadstartmessageimagealpha: 'dataLoadStartMessageImageAlpha',
90 | dataloadstartmessageimagescale: 'dataLoadStartMessageImageScale',
91 | datainvalidmessageimagehalign: 'dataInvalidMessageImageHAlign',
92 | datainvalidmessageimagevalign: 'dataInvalidMessageImageVAlign',
93 | datainvalidmessageimagealpha: 'dataInvalidMessageImageAlpha',
94 | datainvalidmessageimagescale: 'dataInvalidMessageImageScale',
95 | dataemptymessageimagehalign: 'dataEmptyMessageImageHAlign',
96 | dataemptymessageimagevalign: 'dataEmptyMessageImageVAlign',
97 | dataemptymessageimagealpha: 'dataEmptyMessageImageAlpha',
98 | dataemptymessageimagescale: 'dataEmptyMessageImageScale',
99 | rendererrormessageimagehalign: 'renderErrorMessageImageHAlign',
100 | rendererrormessageimagevalign: 'renderErrorMessageImageVAlign',
101 | rendererrormessageimagealpha: 'renderErrorMessageImageAlpha',
102 | rendererrormessageimagescale: 'renderErrorMessageImageScale',
103 | loadmessageimagehalign: 'loadMessageImageHAlign',
104 | loadmessageimagevalign: 'loadMessageImageVAlign',
105 | loadmessageimagealpha: 'loadMessageImageAlpha',
106 | loadmessageimagescale: 'loadMessageImageScale',
107 | };
108 |
109 | export const props = {
110 | options: Object,
111 | type: String,
112 | id: String,
113 | width: '',
114 | height: '',
115 | dataFormat: String,
116 | dataSource: '',
117 | events: Object,
118 | link: Object,
119 | showDataLoadingMessage: Boolean,
120 | showChartLoadingMessage: Boolean,
121 | baseChartMessageFont: String,
122 | baseChartMessageFontSize: String,
123 | baseChartMessageColor: String,
124 | dataLoadStartMessage: String,
125 | dataLoadErrorMessage: String,
126 | dataInvalidMessage: String,
127 | dataEmptyMessage: String,
128 | typeNotSupportedMessage: String,
129 | loadMessage: String,
130 | renderErrorMessage: String,
131 | containerBackgroundColor: String,
132 | containerBackgroundOpacity: Number,
133 | containerClassName: String,
134 | baseChartMessageImageHAlign: String,
135 | baseChartMessageImageVAlign: String,
136 | baseChartMessageImageAlpha: Number,
137 | baseChartMessageImageScale: Number,
138 | typeNotSupportedMessageImageHAlign: String,
139 | typeNotSupportedMessageImageVAlign: String,
140 | typeNotSupportedMessageImageAlpha: Number,
141 | typeNotSupportedMessageImageScale: Number,
142 | dataLoadErrorMessageImageHAlign: String,
143 | dataLoadErrorMessageImageVAlign: String,
144 | dataLoadErrorMessageImageAlpha: Number,
145 | dataLoadErrorMessageImageScale: Number,
146 | dataLoadStartMessageImageHAlign: String,
147 | dataLoadStartMessageImageVAlign: String,
148 | dataLoadStartMessageImageAlpha: Number,
149 | dataLoadStartMessageImageScale: Number,
150 | dataInvalidMessageImageHAlign: String,
151 | dataInvalidMessageImageVAlign: String,
152 | dataInvalidMessageImageAlpha: Number,
153 | dataInvalidMessageImageScale: Number,
154 | dataEmptyMessageImageHAlign: String,
155 | dataEmptyMessageImageVAlign: String,
156 | dataEmptyMessageImageAlpha: Number,
157 | dataEmptyMessageImageScale: Number,
158 | renderErrorMessageImageHAlign: String,
159 | renderErrorMessageImageVAlign: String,
160 | renderErrorMessageImageAlpha: Number,
161 | renderErrorMessageImageScale: Number,
162 | loadMessageImageHAlign: String,
163 | loadMessageImageVAlign: String,
164 | loadMessageImageAlpha: Number,
165 | loadMessageImageScale: Number,
166 | ///////////////////////////////////////////////
167 | dataformat: String,
168 | datasource: '',
169 | showdataloadingmessage: Boolean,
170 | showchartloadingmessage: Boolean,
171 | basechartmessagefont: String,
172 | basechartmessagefontsize: String,
173 | basechartmessagecolor: String,
174 | dataloadstartmessage: String,
175 | dataloaderrormessage: String,
176 | datainvalidmessage: String,
177 | dataemptymessage: String,
178 | typenotsupportedmessage: String,
179 | loadmessage: String,
180 | rendererrormessage: String,
181 | containerbackgroundcolor: String,
182 | containerbackgroundopacity: Number,
183 | containerclassname: String,
184 | basechartmessageimagehalign: String,
185 | basechartmessageimagevalign: String,
186 | basechartmessageimagealpha: Number,
187 | basechartmessageimagescale: Number,
188 | typenotsupportedmessageimagehalign: String,
189 | typenotsupportedmessageimagevalign: String,
190 | typenotsupportedmessageimagealpha: Number,
191 | typenotsupportedmessageimagescale: Number,
192 | dataloaderrormessageimagehalign: String,
193 | dataloaderrormessageimagevalign: String,
194 | dataloaderrormessageimagealpha: Number,
195 | dataloaderrormessageimagescale: Number,
196 | dataloadstartmessageimagehalign: String,
197 | dataloadstartmessageimagevalign: String,
198 | dataloadstartmessageimagealpha: Number,
199 | dataloadstartmessageimagescale: Number,
200 | datainvalidmessageimagehalign: String,
201 | datainvalidmessageimagevalign: String,
202 | datainvalidmessageimagealpha: Number,
203 | datainvalidmessageimagescale: Number,
204 | dataemptymessageimagehalign: String,
205 | dataemptymessageimagevalign: String,
206 | dataemptymessageimagealpha: Number,
207 | dataemptymessageimagescale: Number,
208 | rendererrormessageimagehalign: String,
209 | rendererrormessageimagevalign: String,
210 | rendererrormessageimagealpha: Number,
211 | rendererrormessageimagescale: Number,
212 | loadmessageimagehalign: String,
213 | loadmessageimagevalign: String,
214 | loadmessageimagealpha: Number,
215 | loadmessageimagescale: Number,
216 | };
217 |
--------------------------------------------------------------------------------
/demo-app/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | fusioncharts:
12 | specifier: ^3.23.0
13 | version: 3.23.0
14 | vue:
15 | specifier: ^3.4.21
16 | version: 3.4.29
17 | vue-fusioncharts:
18 | specifier: ^3.2.0
19 | version: 3.2.0
20 | devDependencies:
21 | '@vitejs/plugin-vue':
22 | specifier: ^5.0.4
23 | version: 5.0.5(vite@5.3.1)(vue@3.4.29)
24 | vite:
25 | specifier: ^5.2.8
26 | version: 5.3.1
27 |
28 | packages:
29 |
30 | '@babel/helper-string-parser@7.24.7':
31 | resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==}
32 | engines: {node: '>=6.9.0'}
33 |
34 | '@babel/helper-validator-identifier@7.24.7':
35 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
36 | engines: {node: '>=6.9.0'}
37 |
38 | '@babel/parser@7.24.7':
39 | resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==}
40 | engines: {node: '>=6.0.0'}
41 | hasBin: true
42 |
43 | '@babel/runtime@7.24.7':
44 | resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==}
45 | engines: {node: '>=6.9.0'}
46 |
47 | '@babel/types@7.24.7':
48 | resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==}
49 | engines: {node: '>=6.9.0'}
50 |
51 | '@esbuild/aix-ppc64@0.21.5':
52 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
53 | engines: {node: '>=12'}
54 | cpu: [ppc64]
55 | os: [aix]
56 |
57 | '@esbuild/android-arm64@0.21.5':
58 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
59 | engines: {node: '>=12'}
60 | cpu: [arm64]
61 | os: [android]
62 |
63 | '@esbuild/android-arm@0.21.5':
64 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
65 | engines: {node: '>=12'}
66 | cpu: [arm]
67 | os: [android]
68 |
69 | '@esbuild/android-x64@0.21.5':
70 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
71 | engines: {node: '>=12'}
72 | cpu: [x64]
73 | os: [android]
74 |
75 | '@esbuild/darwin-arm64@0.21.5':
76 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
77 | engines: {node: '>=12'}
78 | cpu: [arm64]
79 | os: [darwin]
80 |
81 | '@esbuild/darwin-x64@0.21.5':
82 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
83 | engines: {node: '>=12'}
84 | cpu: [x64]
85 | os: [darwin]
86 |
87 | '@esbuild/freebsd-arm64@0.21.5':
88 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
89 | engines: {node: '>=12'}
90 | cpu: [arm64]
91 | os: [freebsd]
92 |
93 | '@esbuild/freebsd-x64@0.21.5':
94 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
95 | engines: {node: '>=12'}
96 | cpu: [x64]
97 | os: [freebsd]
98 |
99 | '@esbuild/linux-arm64@0.21.5':
100 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
101 | engines: {node: '>=12'}
102 | cpu: [arm64]
103 | os: [linux]
104 |
105 | '@esbuild/linux-arm@0.21.5':
106 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
107 | engines: {node: '>=12'}
108 | cpu: [arm]
109 | os: [linux]
110 |
111 | '@esbuild/linux-ia32@0.21.5':
112 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
113 | engines: {node: '>=12'}
114 | cpu: [ia32]
115 | os: [linux]
116 |
117 | '@esbuild/linux-loong64@0.21.5':
118 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
119 | engines: {node: '>=12'}
120 | cpu: [loong64]
121 | os: [linux]
122 |
123 | '@esbuild/linux-mips64el@0.21.5':
124 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
125 | engines: {node: '>=12'}
126 | cpu: [mips64el]
127 | os: [linux]
128 |
129 | '@esbuild/linux-ppc64@0.21.5':
130 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
131 | engines: {node: '>=12'}
132 | cpu: [ppc64]
133 | os: [linux]
134 |
135 | '@esbuild/linux-riscv64@0.21.5':
136 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
137 | engines: {node: '>=12'}
138 | cpu: [riscv64]
139 | os: [linux]
140 |
141 | '@esbuild/linux-s390x@0.21.5':
142 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
143 | engines: {node: '>=12'}
144 | cpu: [s390x]
145 | os: [linux]
146 |
147 | '@esbuild/linux-x64@0.21.5':
148 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
149 | engines: {node: '>=12'}
150 | cpu: [x64]
151 | os: [linux]
152 |
153 | '@esbuild/netbsd-x64@0.21.5':
154 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
155 | engines: {node: '>=12'}
156 | cpu: [x64]
157 | os: [netbsd]
158 |
159 | '@esbuild/openbsd-x64@0.21.5':
160 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
161 | engines: {node: '>=12'}
162 | cpu: [x64]
163 | os: [openbsd]
164 |
165 | '@esbuild/sunos-x64@0.21.5':
166 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
167 | engines: {node: '>=12'}
168 | cpu: [x64]
169 | os: [sunos]
170 |
171 | '@esbuild/win32-arm64@0.21.5':
172 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
173 | engines: {node: '>=12'}
174 | cpu: [arm64]
175 | os: [win32]
176 |
177 | '@esbuild/win32-ia32@0.21.5':
178 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
179 | engines: {node: '>=12'}
180 | cpu: [ia32]
181 | os: [win32]
182 |
183 | '@esbuild/win32-x64@0.21.5':
184 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
185 | engines: {node: '>=12'}
186 | cpu: [x64]
187 | os: [win32]
188 |
189 | '@fusioncharts/accessibility@1.9.0':
190 | resolution: {integrity: sha512-UCRqIR5Y2q2QN6aWkY9u6CdsmVC0pvXy/PMTnMszD5fF/u0lKRWfbraybk33W+oMKjSDUZTBAt5Sc2WqkJyWIQ==}
191 |
192 | '@fusioncharts/charts@3.23.0':
193 | resolution: {integrity: sha512-tB4xkAt4vDvXWyJTr/G60pbMkWw0O1l//j+e5JHTe6pBRga46OpVTfgaGbx/J7DbsQH0fBi0HvLCRvDrXxsm8Q==}
194 |
195 | '@fusioncharts/constructor@1.9.0':
196 | resolution: {integrity: sha512-X+CsovE9yKzlEBeq1mWtYsM6G3/a0HGzxGyJO56C/MnOaeiI/sgfcj+HsSOTd+Efej1N4M2jG+yZmdIRlyt+qQ==}
197 |
198 | '@fusioncharts/core@1.9.0':
199 | resolution: {integrity: sha512-KWE2ep8CQxwfhEg9YPh2+2kmW97+AGnl+r1DWier0YRQSQ5Xwbxg0+LStkexhtI/QOTRksLdAZVY5SY7jHh+PA==}
200 |
201 | '@fusioncharts/datatable@1.9.0':
202 | resolution: {integrity: sha512-phm07EAr/7DXJaIsy7MIyHuFEzf3XMA9miCU/UbHidride8HjEPQ+wP3KjND3HtPiryHcfEJgeOyoGxwsayt7A==}
203 |
204 | '@fusioncharts/features@1.9.0':
205 | resolution: {integrity: sha512-WSTUtdBvqq9ehC/Vfa/B6q6XLhaK/bbEfimrZRhuS4sHB3YhTx6hEab0yhNjoXIZLIgNHCEsKiKQRw0DIL45Yw==}
206 |
207 | '@fusioncharts/fusiontime@2.9.0':
208 | resolution: {integrity: sha512-/NeLtto9Tu89iO7aj+AhZi3PFuseBqzK0olM0wyBTKtlE0s4m9S5jSTXYYeNG6peO3i8IRM4eIiTsexl5IuKfA==}
209 |
210 | '@fusioncharts/maps@3.23.0':
211 | resolution: {integrity: sha512-9GmNsclWEPrbgd0OPwkQdmthClZgMvnAmhH2vZNbFeOfoRvRESWU+3WxIHBQDd1wXTE0ivaVc8wunDjlGsR56Q==}
212 |
213 | '@fusioncharts/powercharts@3.23.0':
214 | resolution: {integrity: sha512-6LJC2LfdKx7yN2m0e7Bk51o7EmPVzDH8W6QTL8olT7p00HdZwNnmaK3VTScp4m/yd6p7oUxQKYqW4YjmnLoAgQ==}
215 |
216 | '@fusioncharts/utils@1.9.0':
217 | resolution: {integrity: sha512-Vukhc83zvI3R5bevwRTx3UvzzjP3+3j0cjHVqD0hhVQDgKaFRLcIhw1c4y9qkBDzjDeJ+IbNBfp0cm1uMbbx/w==}
218 |
219 | '@fusioncharts/widgets@3.23.0':
220 | resolution: {integrity: sha512-GB5ePnk7UJBmMU4AlTmcw2az+kGFguQKCBt8sXwaetzEGL+bKr3DNGvLnqXg8fOQx92gY6CHed97zgdwdnR+zg==}
221 |
222 | '@jridgewell/sourcemap-codec@1.4.15':
223 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
224 |
225 | '@rollup/rollup-android-arm-eabi@4.18.0':
226 | resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
227 | cpu: [arm]
228 | os: [android]
229 |
230 | '@rollup/rollup-android-arm64@4.18.0':
231 | resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
232 | cpu: [arm64]
233 | os: [android]
234 |
235 | '@rollup/rollup-darwin-arm64@4.18.0':
236 | resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
237 | cpu: [arm64]
238 | os: [darwin]
239 |
240 | '@rollup/rollup-darwin-x64@4.18.0':
241 | resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
242 | cpu: [x64]
243 | os: [darwin]
244 |
245 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
246 | resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
247 | cpu: [arm]
248 | os: [linux]
249 |
250 | '@rollup/rollup-linux-arm-musleabihf@4.18.0':
251 | resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
252 | cpu: [arm]
253 | os: [linux]
254 |
255 | '@rollup/rollup-linux-arm64-gnu@4.18.0':
256 | resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
257 | cpu: [arm64]
258 | os: [linux]
259 |
260 | '@rollup/rollup-linux-arm64-musl@4.18.0':
261 | resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
262 | cpu: [arm64]
263 | os: [linux]
264 |
265 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
266 | resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
267 | cpu: [ppc64]
268 | os: [linux]
269 |
270 | '@rollup/rollup-linux-riscv64-gnu@4.18.0':
271 | resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
272 | cpu: [riscv64]
273 | os: [linux]
274 |
275 | '@rollup/rollup-linux-s390x-gnu@4.18.0':
276 | resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
277 | cpu: [s390x]
278 | os: [linux]
279 |
280 | '@rollup/rollup-linux-x64-gnu@4.18.0':
281 | resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
282 | cpu: [x64]
283 | os: [linux]
284 |
285 | '@rollup/rollup-linux-x64-musl@4.18.0':
286 | resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
287 | cpu: [x64]
288 | os: [linux]
289 |
290 | '@rollup/rollup-win32-arm64-msvc@4.18.0':
291 | resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
292 | cpu: [arm64]
293 | os: [win32]
294 |
295 | '@rollup/rollup-win32-ia32-msvc@4.18.0':
296 | resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
297 | cpu: [ia32]
298 | os: [win32]
299 |
300 | '@rollup/rollup-win32-x64-msvc@4.18.0':
301 | resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
302 | cpu: [x64]
303 | os: [win32]
304 |
305 | '@types/estree@1.0.5':
306 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
307 |
308 | '@types/raf@3.4.3':
309 | resolution: {integrity: sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==}
310 |
311 | '@vitejs/plugin-vue@5.0.5':
312 | resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==}
313 | engines: {node: ^18.0.0 || >=20.0.0}
314 | peerDependencies:
315 | vite: ^5.0.0
316 | vue: ^3.2.25
317 |
318 | '@vue/compiler-core@3.4.29':
319 | resolution: {integrity: sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==}
320 |
321 | '@vue/compiler-dom@3.4.29':
322 | resolution: {integrity: sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==}
323 |
324 | '@vue/compiler-sfc@3.4.29':
325 | resolution: {integrity: sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==}
326 |
327 | '@vue/compiler-ssr@3.4.29':
328 | resolution: {integrity: sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==}
329 |
330 | '@vue/reactivity@3.4.29':
331 | resolution: {integrity: sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==}
332 |
333 | '@vue/runtime-core@3.4.29':
334 | resolution: {integrity: sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==}
335 |
336 | '@vue/runtime-dom@3.4.29':
337 | resolution: {integrity: sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==}
338 |
339 | '@vue/server-renderer@3.4.29':
340 | resolution: {integrity: sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==}
341 | peerDependencies:
342 | vue: 3.4.29
343 |
344 | '@vue/shared@3.4.29':
345 | resolution: {integrity: sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==}
346 |
347 | atob@2.1.2:
348 | resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
349 | engines: {node: '>= 4.5.0'}
350 | hasBin: true
351 |
352 | base64-arraybuffer@1.0.2:
353 | resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
354 | engines: {node: '>= 0.6.0'}
355 |
356 | btoa@1.2.1:
357 | resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==}
358 | engines: {node: '>= 0.4.0'}
359 | hasBin: true
360 |
361 | canvg@3.0.10:
362 | resolution: {integrity: sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==}
363 | engines: {node: '>=10.0.0'}
364 |
365 | core-js@3.37.1:
366 | resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==}
367 |
368 | css-line-break@2.1.0:
369 | resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==}
370 |
371 | csstype@3.1.3:
372 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
373 |
374 | dompurify@2.5.5:
375 | resolution: {integrity: sha512-FgbqnEPiv5Vdtwt6Mxl7XSylttCC03cqP5ldNT2z+Kj0nLxPHJH4+1Cyf5Jasxhw93Rl4Oo11qRoUV72fmya2Q==}
376 |
377 | entities@4.5.0:
378 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
379 | engines: {node: '>=0.12'}
380 |
381 | esbuild@0.21.5:
382 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
383 | engines: {node: '>=12'}
384 | hasBin: true
385 |
386 | estree-walker@2.0.2:
387 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
388 |
389 | fflate@0.4.8:
390 | resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==}
391 |
392 | for-in@1.0.2:
393 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
394 | engines: {node: '>=0.10.0'}
395 |
396 | fsevents@2.3.3:
397 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
398 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
399 | os: [darwin]
400 |
401 | fusioncharts@3.23.0:
402 | resolution: {integrity: sha512-Y+S9OeVqQnypZkroY2ABy6ixImVmpDvFe+n0biMXO1AGndEXCXuCPXpQtjOLvmVEmQv8s/XTDGqnq4NjaM+Xtw==}
403 |
404 | html2canvas@1.4.1:
405 | resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==}
406 | engines: {node: '>=8.0.0'}
407 |
408 | is-extendable@1.0.1:
409 | resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
410 | engines: {node: '>=0.10.0'}
411 |
412 | is-plain-object@2.0.4:
413 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
414 | engines: {node: '>=0.10.0'}
415 |
416 | isobject@3.0.1:
417 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
418 | engines: {node: '>=0.10.0'}
419 |
420 | jspdf@2.5.1:
421 | resolution: {integrity: sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==}
422 |
423 | magic-string@0.30.10:
424 | resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
425 |
426 | mixin-deep@1.3.2:
427 | resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
428 | engines: {node: '>=0.10.0'}
429 |
430 | mutationobserver-shim@0.3.7:
431 | resolution: {integrity: sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ==}
432 |
433 | nanoid@3.3.7:
434 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
435 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
436 | hasBin: true
437 |
438 | performance-now@2.1.0:
439 | resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
440 |
441 | picocolors@1.0.1:
442 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
443 |
444 | postcss@8.4.38:
445 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
446 | engines: {node: ^10 || ^12 || >=14}
447 |
448 | promise-polyfill@8.3.0:
449 | resolution: {integrity: sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==}
450 |
451 | raf@3.4.1:
452 | resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==}
453 |
454 | ramda@0.29.1:
455 | resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
456 |
457 | regenerator-runtime@0.13.11:
458 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
459 |
460 | regenerator-runtime@0.14.1:
461 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
462 |
463 | rgbcolor@1.0.1:
464 | resolution: {integrity: sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==}
465 | engines: {node: '>= 0.8.15'}
466 |
467 | rollup@4.18.0:
468 | resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
469 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
470 | hasBin: true
471 |
472 | source-map-js@1.2.0:
473 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
474 | engines: {node: '>=0.10.0'}
475 |
476 | stackblur-canvas@2.7.0:
477 | resolution: {integrity: sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==}
478 | engines: {node: '>=0.1.14'}
479 |
480 | svg-pathdata@6.0.3:
481 | resolution: {integrity: sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==}
482 | engines: {node: '>=12.0.0'}
483 |
484 | text-segmentation@1.0.3:
485 | resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==}
486 |
487 | to-fast-properties@2.0.0:
488 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
489 | engines: {node: '>=4'}
490 |
491 | underscore@1.13.6:
492 | resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==}
493 |
494 | utrie@1.0.2:
495 | resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==}
496 |
497 | vite@5.3.1:
498 | resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==}
499 | engines: {node: ^18.0.0 || >=20.0.0}
500 | hasBin: true
501 | peerDependencies:
502 | '@types/node': ^18.0.0 || >=20.0.0
503 | less: '*'
504 | lightningcss: ^1.21.0
505 | sass: '*'
506 | stylus: '*'
507 | sugarss: '*'
508 | terser: ^5.4.0
509 | peerDependenciesMeta:
510 | '@types/node':
511 | optional: true
512 | less:
513 | optional: true
514 | lightningcss:
515 | optional: true
516 | sass:
517 | optional: true
518 | stylus:
519 | optional: true
520 | sugarss:
521 | optional: true
522 | terser:
523 | optional: true
524 |
525 | vue-fusioncharts@3.2.0:
526 | resolution: {integrity: sha512-zQYBN7W5VuoDDynOANNk5nIQ00sa3OqkWlQ1W8A5Sl9cfxWWgdZmE5+WfOIMG5xNVXQsmBYjxoYR10fDKZARbw==}
527 |
528 | vue@3.4.29:
529 | resolution: {integrity: sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==}
530 | peerDependencies:
531 | typescript: '*'
532 | peerDependenciesMeta:
533 | typescript:
534 | optional: true
535 |
536 | websocket-extensions@0.1.4:
537 | resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
538 | engines: {node: '>=0.8.0'}
539 |
540 | snapshots:
541 |
542 | '@babel/helper-string-parser@7.24.7': {}
543 |
544 | '@babel/helper-validator-identifier@7.24.7': {}
545 |
546 | '@babel/parser@7.24.7':
547 | dependencies:
548 | '@babel/types': 7.24.7
549 |
550 | '@babel/runtime@7.24.7':
551 | dependencies:
552 | regenerator-runtime: 0.14.1
553 |
554 | '@babel/types@7.24.7':
555 | dependencies:
556 | '@babel/helper-string-parser': 7.24.7
557 | '@babel/helper-validator-identifier': 7.24.7
558 | to-fast-properties: 2.0.0
559 |
560 | '@esbuild/aix-ppc64@0.21.5':
561 | optional: true
562 |
563 | '@esbuild/android-arm64@0.21.5':
564 | optional: true
565 |
566 | '@esbuild/android-arm@0.21.5':
567 | optional: true
568 |
569 | '@esbuild/android-x64@0.21.5':
570 | optional: true
571 |
572 | '@esbuild/darwin-arm64@0.21.5':
573 | optional: true
574 |
575 | '@esbuild/darwin-x64@0.21.5':
576 | optional: true
577 |
578 | '@esbuild/freebsd-arm64@0.21.5':
579 | optional: true
580 |
581 | '@esbuild/freebsd-x64@0.21.5':
582 | optional: true
583 |
584 | '@esbuild/linux-arm64@0.21.5':
585 | optional: true
586 |
587 | '@esbuild/linux-arm@0.21.5':
588 | optional: true
589 |
590 | '@esbuild/linux-ia32@0.21.5':
591 | optional: true
592 |
593 | '@esbuild/linux-loong64@0.21.5':
594 | optional: true
595 |
596 | '@esbuild/linux-mips64el@0.21.5':
597 | optional: true
598 |
599 | '@esbuild/linux-ppc64@0.21.5':
600 | optional: true
601 |
602 | '@esbuild/linux-riscv64@0.21.5':
603 | optional: true
604 |
605 | '@esbuild/linux-s390x@0.21.5':
606 | optional: true
607 |
608 | '@esbuild/linux-x64@0.21.5':
609 | optional: true
610 |
611 | '@esbuild/netbsd-x64@0.21.5':
612 | optional: true
613 |
614 | '@esbuild/openbsd-x64@0.21.5':
615 | optional: true
616 |
617 | '@esbuild/sunos-x64@0.21.5':
618 | optional: true
619 |
620 | '@esbuild/win32-arm64@0.21.5':
621 | optional: true
622 |
623 | '@esbuild/win32-ia32@0.21.5':
624 | optional: true
625 |
626 | '@esbuild/win32-x64@0.21.5':
627 | optional: true
628 |
629 | '@fusioncharts/accessibility@1.9.0': {}
630 |
631 | '@fusioncharts/charts@3.23.0':
632 | dependencies:
633 | '@babel/runtime': 7.24.7
634 | '@fusioncharts/core': 1.9.0
635 | '@fusioncharts/features': 1.9.0
636 | '@fusioncharts/utils': 1.9.0
637 |
638 | '@fusioncharts/constructor@1.9.0':
639 | dependencies:
640 | '@babel/runtime': 7.24.7
641 | '@fusioncharts/core': 1.9.0
642 | '@fusioncharts/maps': 3.23.0
643 |
644 | '@fusioncharts/core@1.9.0':
645 | dependencies:
646 | '@babel/runtime': 7.24.7
647 | '@fusioncharts/utils': 1.9.0
648 | core-js: 3.37.1
649 | ramda: 0.29.1
650 |
651 | '@fusioncharts/datatable@1.9.0':
652 | dependencies:
653 | '@babel/runtime': 7.24.7
654 | '@fusioncharts/utils': 1.9.0
655 |
656 | '@fusioncharts/features@1.9.0':
657 | dependencies:
658 | '@babel/runtime': 7.24.7
659 | '@fusioncharts/core': 1.9.0
660 | '@fusioncharts/utils': 1.9.0
661 | jspdf: 2.5.1
662 |
663 | '@fusioncharts/fusiontime@2.9.0':
664 | dependencies:
665 | '@babel/runtime': 7.24.7
666 | '@fusioncharts/charts': 3.23.0
667 | '@fusioncharts/core': 1.9.0
668 | '@fusioncharts/datatable': 1.9.0
669 | '@fusioncharts/utils': 1.9.0
670 | ramda: 0.29.1
671 |
672 | '@fusioncharts/maps@3.23.0':
673 | dependencies:
674 | '@babel/runtime': 7.24.7
675 | '@fusioncharts/charts': 3.23.0
676 | '@fusioncharts/core': 1.9.0
677 | '@fusioncharts/features': 1.9.0
678 |
679 | '@fusioncharts/powercharts@3.23.0':
680 | dependencies:
681 | '@babel/runtime': 7.24.7
682 | '@fusioncharts/charts': 3.23.0
683 | '@fusioncharts/core': 1.9.0
684 | '@fusioncharts/utils': 1.9.0
685 |
686 | '@fusioncharts/utils@1.9.0':
687 | dependencies:
688 | '@babel/runtime': 7.24.7
689 | ramda: 0.29.1
690 |
691 | '@fusioncharts/widgets@3.23.0':
692 | dependencies:
693 | '@babel/runtime': 7.24.7
694 | '@fusioncharts/charts': 3.23.0
695 | '@fusioncharts/constructor': 1.9.0
696 | '@fusioncharts/core': 1.9.0
697 | '@fusioncharts/features': 1.9.0
698 | '@fusioncharts/utils': 1.9.0
699 |
700 | '@jridgewell/sourcemap-codec@1.4.15': {}
701 |
702 | '@rollup/rollup-android-arm-eabi@4.18.0':
703 | optional: true
704 |
705 | '@rollup/rollup-android-arm64@4.18.0':
706 | optional: true
707 |
708 | '@rollup/rollup-darwin-arm64@4.18.0':
709 | optional: true
710 |
711 | '@rollup/rollup-darwin-x64@4.18.0':
712 | optional: true
713 |
714 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
715 | optional: true
716 |
717 | '@rollup/rollup-linux-arm-musleabihf@4.18.0':
718 | optional: true
719 |
720 | '@rollup/rollup-linux-arm64-gnu@4.18.0':
721 | optional: true
722 |
723 | '@rollup/rollup-linux-arm64-musl@4.18.0':
724 | optional: true
725 |
726 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
727 | optional: true
728 |
729 | '@rollup/rollup-linux-riscv64-gnu@4.18.0':
730 | optional: true
731 |
732 | '@rollup/rollup-linux-s390x-gnu@4.18.0':
733 | optional: true
734 |
735 | '@rollup/rollup-linux-x64-gnu@4.18.0':
736 | optional: true
737 |
738 | '@rollup/rollup-linux-x64-musl@4.18.0':
739 | optional: true
740 |
741 | '@rollup/rollup-win32-arm64-msvc@4.18.0':
742 | optional: true
743 |
744 | '@rollup/rollup-win32-ia32-msvc@4.18.0':
745 | optional: true
746 |
747 | '@rollup/rollup-win32-x64-msvc@4.18.0':
748 | optional: true
749 |
750 | '@types/estree@1.0.5': {}
751 |
752 | '@types/raf@3.4.3':
753 | optional: true
754 |
755 | '@vitejs/plugin-vue@5.0.5(vite@5.3.1)(vue@3.4.29)':
756 | dependencies:
757 | vite: 5.3.1
758 | vue: 3.4.29
759 |
760 | '@vue/compiler-core@3.4.29':
761 | dependencies:
762 | '@babel/parser': 7.24.7
763 | '@vue/shared': 3.4.29
764 | entities: 4.5.0
765 | estree-walker: 2.0.2
766 | source-map-js: 1.2.0
767 |
768 | '@vue/compiler-dom@3.4.29':
769 | dependencies:
770 | '@vue/compiler-core': 3.4.29
771 | '@vue/shared': 3.4.29
772 |
773 | '@vue/compiler-sfc@3.4.29':
774 | dependencies:
775 | '@babel/parser': 7.24.7
776 | '@vue/compiler-core': 3.4.29
777 | '@vue/compiler-dom': 3.4.29
778 | '@vue/compiler-ssr': 3.4.29
779 | '@vue/shared': 3.4.29
780 | estree-walker: 2.0.2
781 | magic-string: 0.30.10
782 | postcss: 8.4.38
783 | source-map-js: 1.2.0
784 |
785 | '@vue/compiler-ssr@3.4.29':
786 | dependencies:
787 | '@vue/compiler-dom': 3.4.29
788 | '@vue/shared': 3.4.29
789 |
790 | '@vue/reactivity@3.4.29':
791 | dependencies:
792 | '@vue/shared': 3.4.29
793 |
794 | '@vue/runtime-core@3.4.29':
795 | dependencies:
796 | '@vue/reactivity': 3.4.29
797 | '@vue/shared': 3.4.29
798 |
799 | '@vue/runtime-dom@3.4.29':
800 | dependencies:
801 | '@vue/reactivity': 3.4.29
802 | '@vue/runtime-core': 3.4.29
803 | '@vue/shared': 3.4.29
804 | csstype: 3.1.3
805 |
806 | '@vue/server-renderer@3.4.29(vue@3.4.29)':
807 | dependencies:
808 | '@vue/compiler-ssr': 3.4.29
809 | '@vue/shared': 3.4.29
810 | vue: 3.4.29
811 |
812 | '@vue/shared@3.4.29': {}
813 |
814 | atob@2.1.2: {}
815 |
816 | base64-arraybuffer@1.0.2:
817 | optional: true
818 |
819 | btoa@1.2.1: {}
820 |
821 | canvg@3.0.10:
822 | dependencies:
823 | '@babel/runtime': 7.24.7
824 | '@types/raf': 3.4.3
825 | core-js: 3.37.1
826 | raf: 3.4.1
827 | regenerator-runtime: 0.13.11
828 | rgbcolor: 1.0.1
829 | stackblur-canvas: 2.7.0
830 | svg-pathdata: 6.0.3
831 | optional: true
832 |
833 | core-js@3.37.1: {}
834 |
835 | css-line-break@2.1.0:
836 | dependencies:
837 | utrie: 1.0.2
838 | optional: true
839 |
840 | csstype@3.1.3: {}
841 |
842 | dompurify@2.5.5:
843 | optional: true
844 |
845 | entities@4.5.0: {}
846 |
847 | esbuild@0.21.5:
848 | optionalDependencies:
849 | '@esbuild/aix-ppc64': 0.21.5
850 | '@esbuild/android-arm': 0.21.5
851 | '@esbuild/android-arm64': 0.21.5
852 | '@esbuild/android-x64': 0.21.5
853 | '@esbuild/darwin-arm64': 0.21.5
854 | '@esbuild/darwin-x64': 0.21.5
855 | '@esbuild/freebsd-arm64': 0.21.5
856 | '@esbuild/freebsd-x64': 0.21.5
857 | '@esbuild/linux-arm': 0.21.5
858 | '@esbuild/linux-arm64': 0.21.5
859 | '@esbuild/linux-ia32': 0.21.5
860 | '@esbuild/linux-loong64': 0.21.5
861 | '@esbuild/linux-mips64el': 0.21.5
862 | '@esbuild/linux-ppc64': 0.21.5
863 | '@esbuild/linux-riscv64': 0.21.5
864 | '@esbuild/linux-s390x': 0.21.5
865 | '@esbuild/linux-x64': 0.21.5
866 | '@esbuild/netbsd-x64': 0.21.5
867 | '@esbuild/openbsd-x64': 0.21.5
868 | '@esbuild/sunos-x64': 0.21.5
869 | '@esbuild/win32-arm64': 0.21.5
870 | '@esbuild/win32-ia32': 0.21.5
871 | '@esbuild/win32-x64': 0.21.5
872 |
873 | estree-walker@2.0.2: {}
874 |
875 | fflate@0.4.8: {}
876 |
877 | for-in@1.0.2: {}
878 |
879 | fsevents@2.3.3:
880 | optional: true
881 |
882 | fusioncharts@3.23.0:
883 | dependencies:
884 | '@babel/runtime': 7.24.7
885 | '@fusioncharts/accessibility': 1.9.0
886 | '@fusioncharts/charts': 3.23.0
887 | '@fusioncharts/constructor': 1.9.0
888 | '@fusioncharts/core': 1.9.0
889 | '@fusioncharts/datatable': 1.9.0
890 | '@fusioncharts/features': 1.9.0
891 | '@fusioncharts/fusiontime': 2.9.0
892 | '@fusioncharts/maps': 3.23.0
893 | '@fusioncharts/powercharts': 3.23.0
894 | '@fusioncharts/utils': 1.9.0
895 | '@fusioncharts/widgets': 3.23.0
896 | mutationobserver-shim: 0.3.7
897 | promise-polyfill: 8.3.0
898 |
899 | html2canvas@1.4.1:
900 | dependencies:
901 | css-line-break: 2.1.0
902 | text-segmentation: 1.0.3
903 | optional: true
904 |
905 | is-extendable@1.0.1:
906 | dependencies:
907 | is-plain-object: 2.0.4
908 |
909 | is-plain-object@2.0.4:
910 | dependencies:
911 | isobject: 3.0.1
912 |
913 | isobject@3.0.1: {}
914 |
915 | jspdf@2.5.1:
916 | dependencies:
917 | '@babel/runtime': 7.24.7
918 | atob: 2.1.2
919 | btoa: 1.2.1
920 | fflate: 0.4.8
921 | optionalDependencies:
922 | canvg: 3.0.10
923 | core-js: 3.37.1
924 | dompurify: 2.5.5
925 | html2canvas: 1.4.1
926 |
927 | magic-string@0.30.10:
928 | dependencies:
929 | '@jridgewell/sourcemap-codec': 1.4.15
930 |
931 | mixin-deep@1.3.2:
932 | dependencies:
933 | for-in: 1.0.2
934 | is-extendable: 1.0.1
935 |
936 | mutationobserver-shim@0.3.7: {}
937 |
938 | nanoid@3.3.7: {}
939 |
940 | performance-now@2.1.0:
941 | optional: true
942 |
943 | picocolors@1.0.1: {}
944 |
945 | postcss@8.4.38:
946 | dependencies:
947 | nanoid: 3.3.7
948 | picocolors: 1.0.1
949 | source-map-js: 1.2.0
950 |
951 | promise-polyfill@8.3.0: {}
952 |
953 | raf@3.4.1:
954 | dependencies:
955 | performance-now: 2.1.0
956 | optional: true
957 |
958 | ramda@0.29.1: {}
959 |
960 | regenerator-runtime@0.13.11:
961 | optional: true
962 |
963 | regenerator-runtime@0.14.1: {}
964 |
965 | rgbcolor@1.0.1:
966 | optional: true
967 |
968 | rollup@4.18.0:
969 | dependencies:
970 | '@types/estree': 1.0.5
971 | optionalDependencies:
972 | '@rollup/rollup-android-arm-eabi': 4.18.0
973 | '@rollup/rollup-android-arm64': 4.18.0
974 | '@rollup/rollup-darwin-arm64': 4.18.0
975 | '@rollup/rollup-darwin-x64': 4.18.0
976 | '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
977 | '@rollup/rollup-linux-arm-musleabihf': 4.18.0
978 | '@rollup/rollup-linux-arm64-gnu': 4.18.0
979 | '@rollup/rollup-linux-arm64-musl': 4.18.0
980 | '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
981 | '@rollup/rollup-linux-riscv64-gnu': 4.18.0
982 | '@rollup/rollup-linux-s390x-gnu': 4.18.0
983 | '@rollup/rollup-linux-x64-gnu': 4.18.0
984 | '@rollup/rollup-linux-x64-musl': 4.18.0
985 | '@rollup/rollup-win32-arm64-msvc': 4.18.0
986 | '@rollup/rollup-win32-ia32-msvc': 4.18.0
987 | '@rollup/rollup-win32-x64-msvc': 4.18.0
988 | fsevents: 2.3.3
989 |
990 | source-map-js@1.2.0: {}
991 |
992 | stackblur-canvas@2.7.0:
993 | optional: true
994 |
995 | svg-pathdata@6.0.3:
996 | optional: true
997 |
998 | text-segmentation@1.0.3:
999 | dependencies:
1000 | utrie: 1.0.2
1001 | optional: true
1002 |
1003 | to-fast-properties@2.0.0: {}
1004 |
1005 | underscore@1.13.6: {}
1006 |
1007 | utrie@1.0.2:
1008 | dependencies:
1009 | base64-arraybuffer: 1.0.2
1010 | optional: true
1011 |
1012 | vite@5.3.1:
1013 | dependencies:
1014 | esbuild: 0.21.5
1015 | postcss: 8.4.38
1016 | rollup: 4.18.0
1017 | optionalDependencies:
1018 | fsevents: 2.3.3
1019 |
1020 | vue-fusioncharts@3.2.0:
1021 | dependencies:
1022 | fusioncharts: 3.23.0
1023 | mixin-deep: 1.3.2
1024 | underscore: 1.13.6
1025 | websocket-extensions: 0.1.4
1026 |
1027 | vue@3.4.29:
1028 | dependencies:
1029 | '@vue/compiler-dom': 3.4.29
1030 | '@vue/compiler-sfc': 3.4.29
1031 | '@vue/runtime-dom': 3.4.29
1032 | '@vue/server-renderer': 3.4.29(vue@3.4.29)
1033 | '@vue/shared': 3.4.29
1034 |
1035 | websocket-extensions@0.1.4: {}
1036 |
--------------------------------------------------------------------------------