├── docs ├── config.md ├── README.md ├── .vuepress │ ├── dist │ │ ├── vue.png │ │ ├── assets │ │ │ ├── img │ │ │ │ └── search.83621669.svg │ │ │ └── js │ │ │ │ ├── 12.cfd514c6.js │ │ │ │ ├── 10.162be495.js │ │ │ │ ├── 8.9cbb4712.js │ │ │ │ ├── 9.da614f8e.js │ │ │ │ ├── 6.7484ea1b.js │ │ │ │ ├── 7.cd56efaa.js │ │ │ │ └── 5.55c064ea.js │ │ └── 404.html │ ├── enhanceApp.js │ ├── public │ │ └── vue.png │ ├── styles │ │ └── index.styl │ ├── components │ │ ├── Hero.vue │ │ └── ExampleViewer.vue │ └── config.js ├── plugins │ └── README.md └── guide │ └── README.md ├── src ├── types │ └── index.ts ├── assets │ └── logo.png ├── shims-vue.d.ts ├── main.ts ├── shims-tsx.d.ts ├── interfaces │ └── index.ts └── components │ ├── index.js │ ├── Dashboard.vue │ └── Dashboard.model.ts ├── .browserslistrc ├── examples ├── vuetify │ ├── .browserslistrc │ ├── vue.config.js │ ├── babel.config.js │ ├── public │ │ ├── favicon.ico │ │ └── index.html │ ├── src │ │ ├── assets │ │ │ ├── logo.png │ │ │ └── logo.svg │ │ ├── views │ │ │ ├── About.vue │ │ │ ├── Home.vue │ │ │ ├── ApexCharts.vue │ │ │ ├── Echarts.vue │ │ │ ├── Chartjs.vue │ │ │ └── EpicSpinners.vue │ │ ├── plugins │ │ │ └── vuetify.js │ │ ├── main.js │ │ ├── App.vue │ │ ├── store │ │ │ ├── index.js │ │ │ ├── apexChartsUtils.js │ │ │ ├── epicSpinners.js │ │ │ ├── eCharts.js │ │ │ └── layouts.js │ │ ├── components │ │ │ ├── Master.vue │ │ │ ├── NavBar.vue │ │ │ ├── TextCentered.vue │ │ │ └── HelloWorld.vue │ │ └── router │ │ │ └── index.js │ ├── .gitignore │ ├── .eslintrc.js │ ├── README.md │ └── package.json └── bootstrap-vue │ ├── .browserslistrc │ ├── babel.config.js │ ├── public │ ├── favicon.ico │ └── index.html │ ├── src │ ├── assets │ │ └── logo.png │ ├── main.js │ ├── plugins │ │ └── bootstrap-vue.js │ └── components │ │ ├── Master.vue │ │ ├── TextCentered.vue │ │ └── HelloWorld.vue │ ├── .gitignore │ ├── .eslintrc.js │ ├── README.md │ └── package.json ├── plugins ├── packages │ ├── apexCharts │ │ ├── .browserslistrc │ │ ├── vue.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── src │ │ │ ├── plugins │ │ │ │ └── apexcharts.js │ │ │ ├── main.js │ │ │ └── components │ │ │ │ ├── ApexChartDashItem.vue │ │ │ │ └── index.js │ │ ├── dist │ │ │ └── demo.html │ │ ├── .eslintrc.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── basicItems │ │ ├── .browserslistrc │ │ ├── vue.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── dist │ │ │ └── demo.html │ │ ├── types │ │ │ └── index.d.ts │ │ ├── src │ │ │ ├── main.js │ │ │ ├── components │ │ │ │ ├── itemMixin.js │ │ │ │ ├── TextMiddleCenter.vue │ │ │ │ ├── index.js │ │ │ │ └── layoutExamples.js │ │ │ └── App.vue │ │ ├── .eslintrc.js │ │ ├── LICENSE │ │ └── package.json │ ├── chartjs │ │ ├── .browserslistrc │ │ ├── vue.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── dist │ │ │ └── demo.html │ │ ├── src │ │ │ ├── main.js │ │ │ └── components │ │ │ │ ├── barChart.js │ │ │ │ ├── pieChart.js │ │ │ │ ├── lineChart.js │ │ │ │ ├── mixinComponent.js │ │ │ │ ├── radarChart.js │ │ │ │ ├── bubbleChart.js │ │ │ │ ├── doughnutChart.js │ │ │ │ ├── scatterChart.js │ │ │ │ ├── polarAreaChart.js │ │ │ │ ├── horizontalBarChart.js │ │ │ │ ├── BarChart.vue │ │ │ │ ├── PieChart.vue │ │ │ │ ├── LineChart.vue │ │ │ │ ├── RadarChart.vue │ │ │ │ ├── BubbleChart.vue │ │ │ │ ├── ScatterChart.vue │ │ │ │ ├── DoughnutChart.vue │ │ │ │ ├── PolarAreaChart.vue │ │ │ │ ├── horizontalBarChart.vue │ │ │ │ └── index.js │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ └── package.json │ ├── echarts │ │ ├── .browserslistrc │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── src │ │ │ ├── assets │ │ │ │ └── logo.png │ │ │ ├── main.js │ │ │ ├── components │ │ │ │ ├── BarChart.vue │ │ │ │ ├── MapChart.vue │ │ │ │ ├── PieChart.vue │ │ │ │ ├── LineChart.vue │ │ │ │ ├── RadarChart.vue │ │ │ │ ├── ScatterChart.vue │ │ │ │ ├── EffectScatterChart.vue │ │ │ │ ├── chartMixin.js │ │ │ │ └── index.js │ │ │ ├── plugins │ │ │ │ └── echarts.js │ │ │ └── App.vue │ │ ├── vue.config.js │ │ ├── dist │ │ │ └── demo.html │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── epic-spinners │ │ ├── .browserslistrc │ │ ├── vue.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── src │ │ │ ├── assets │ │ │ │ └── logo.png │ │ │ ├── main.js │ │ │ ├── components │ │ │ │ ├── AtomSpinner.vue │ │ │ │ ├── OrbitSpinner.vue │ │ │ │ ├── PixelSpinner.vue │ │ │ │ ├── RadarSpinner.vue │ │ │ │ ├── FlowerSpinner.vue │ │ │ │ ├── SpringSpinner.vue │ │ │ │ ├── SemipolarSpinner.vue │ │ │ │ ├── HalfCircleSpinner.vue │ │ │ │ ├── FingerprintSpinner.vue │ │ │ │ ├── TrinityRingsSpinner.vue │ │ │ │ ├── MixinComponent.js │ │ │ │ ├── ScalingSquaresSpinner.vue │ │ │ │ ├── BreedingRhombusSpinner.vue │ │ │ │ ├── SwappingSquaresSpinner.vue │ │ │ │ ├── FulfillingSquareSpinner.vue │ │ │ │ ├── SelfBuildingSquareSpinner.vue │ │ │ │ ├── IntersectingCirclesSpinner.vue │ │ │ │ ├── FulfillingBouncingCircleSpinner.vue │ │ │ │ ├── LoopingRhombusesSpinner.vue │ │ │ │ ├── CirclesToRhombusesSpinner.vue │ │ │ │ ├── HollowDotsSpinner.vue │ │ │ │ ├── RandomSpinner.vue │ │ │ │ └── index.js │ │ │ └── App.vue │ │ ├── dist │ │ │ └── demo.html │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── fusioncharts │ │ ├── .browserslistrc │ │ ├── vue.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── dist │ │ │ ├── demo.html │ │ │ └── fusioncharts.umd.min.js │ │ ├── src │ │ │ ├── main.js │ │ │ ├── plugins │ │ │ │ └── fusioncharts.js │ │ │ ├── components │ │ │ │ ├── FusionChart.vue │ │ │ │ └── index.js │ │ │ └── App.vue │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ └── common │ │ └── dataItems.js ├── lerna.json ├── CHANGELOG.md └── package.json ├── babel.config.js ├── public ├── favicon.ico └── index.html ├── jest.config.js ├── vue.config.js ├── dist └── demo.html ├── types └── index.d.ts ├── .gitignore ├── tests └── unit │ ├── example.spec2.ts │ └── LayoutModel.spec.ts ├── .eslintrc.js ├── tsconfig.json ├── LICENSE ├── package.json ├── CODE_OF_CONDUCT.md └── README.md /docs/config.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/types/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /examples/vuetify/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar: false 3 | --- 4 | 5 | 6 | -------------------------------------------------------------------------------- /plugins/packages/apexCharts/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /plugins/packages/echarts/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/cli-plugin-babel/preset"], 3 | }; 4 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | css: { extract: false } 3 | }; 4 | -------------------------------------------------------------------------------- /examples/vuetify/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | transpileDependencies: ["vuetify"] 3 | }; 4 | -------------------------------------------------------------------------------- /plugins/packages/apexCharts/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | css: { extract: false } 3 | }; 4 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | css: { extract: false } 3 | }; 4 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | css: { extract: false } 3 | }; 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /plugins/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | "packages/*" 4 | ], 5 | "version": "0.1.3" 6 | } 7 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | css: { extract: false } 3 | }; 4 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.vue" { 2 | import Vue from "vue"; 3 | export default Vue; 4 | } 5 | -------------------------------------------------------------------------------- /examples/vuetify/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/cli-plugin-babel/preset"] 3 | }; 4 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/cli-plugin-babel/preset"] 3 | }; 4 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: "@vue/cli-plugin-unit-jest/presets/typescript-and-babel", 3 | }; 4 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/vue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/docs/.vuepress/dist/vue.png -------------------------------------------------------------------------------- /docs/.vuepress/enhanceApp.js: -------------------------------------------------------------------------------- 1 | export default ({ Vue }) => { 2 | Vue.prototype.$__VERSION__ = process.env.VERSION 3 | } 4 | -------------------------------------------------------------------------------- /docs/.vuepress/public/vue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/docs/.vuepress/public/vue.png -------------------------------------------------------------------------------- /docs/.vuepress/styles/index.styl: -------------------------------------------------------------------------------- 1 | div.theme-default-content:not(.custom) { 2 | max-width: 100%; 3 | padding 2rem 2.5rem 4 | } -------------------------------------------------------------------------------- /examples/vuetify/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/examples/vuetify/public/favicon.ico -------------------------------------------------------------------------------- /examples/vuetify/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/examples/vuetify/src/assets/logo.png -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | configureWebpack: { 3 | devtool: "source-map", 4 | }, 5 | css: { extract: false }, 6 | }; 7 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/examples/bootstrap-vue/public/favicon.ico -------------------------------------------------------------------------------- /examples/vuetify/src/views/About.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/examples/bootstrap-vue/src/assets/logo.png -------------------------------------------------------------------------------- /plugins/packages/chartjs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/plugins/packages/chartjs/public/favicon.ico -------------------------------------------------------------------------------- /plugins/packages/echarts/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/plugins/packages/echarts/public/favicon.ico -------------------------------------------------------------------------------- /plugins/packages/apexCharts/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/plugins/packages/apexCharts/public/favicon.ico -------------------------------------------------------------------------------- /plugins/packages/basicItems/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/plugins/packages/basicItems/public/favicon.ico -------------------------------------------------------------------------------- /plugins/packages/echarts/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/plugins/packages/echarts/src/assets/logo.png -------------------------------------------------------------------------------- /plugins/packages/echarts/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | css: { extract: false }, 3 | transpileDependencies: ["vue-echarts", "resize-detector"] 4 | }; 5 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/plugins/packages/fusioncharts/public/favicon.ico -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/plugins/packages/epic-spinners/public/favicon.ico -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bensladden/vue-responsive-dash/HEAD/plugins/packages/epic-spinners/src/assets/logo.png -------------------------------------------------------------------------------- /plugins/packages/apexCharts/src/plugins/apexcharts.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import VueApexCharts from "vue-apexcharts"; 3 | Vue.component("apexchart", VueApexCharts); 4 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | Vue.config.productionTip = false; 4 | 5 | new Vue({ 6 | render: (h) => h(App), 7 | }).$mount("#app"); 8 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/dist/demo.html: -------------------------------------------------------------------------------- 1 | 2 | chartjs demo 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /plugins/packages/echarts/dist/demo.html: -------------------------------------------------------------------------------- 1 | 2 | echarts demo 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /dist/demo.html: -------------------------------------------------------------------------------- 1 | 2 | vue-responsive-dash demo 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /plugins/packages/apexCharts/dist/demo.html: -------------------------------------------------------------------------------- 1 | 2 | apexcharts demo 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/dist/demo.html: -------------------------------------------------------------------------------- 1 | 2 | basic-items demo 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/dist/demo.html: -------------------------------------------------------------------------------- 1 | 2 | fusioncharts demo 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/dist/demo.html: -------------------------------------------------------------------------------- 1 | 2 | epic-spinners demo 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import "./plugins/bootstrap-vue"; 3 | import App from "./App.vue"; 4 | 5 | Vue.config.productionTip = false; 6 | 7 | new Vue({ 8 | render: h => h(App) 9 | }).$mount("#app"); 10 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/types/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'vue-responsive-dash/basic-items' { 2 | import { Component, } from 'vue' 3 | 4 | const TextMiddleCenter : Component 5 | 6 | export { 7 | TextMiddleCenter, 8 | } 9 | } -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | 4 | Vue.config.productionTip = false; 5 | 6 | new Vue({ 7 | render: function(h) { 8 | return h(App); 9 | } 10 | }).$mount("#app"); 11 | -------------------------------------------------------------------------------- /examples/vuetify/src/plugins/vuetify.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import Vuetify from "vuetify/lib"; 3 | import { preset } from "vue-cli-plugin-vuetify-preset-reply/preset"; 4 | 5 | Vue.use(Vuetify); 6 | 7 | export default new Vuetify({ preset }); 8 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | 4 | Vue.config.productionTip = false; 5 | 6 | new Vue({ 7 | render: function(h) { 8 | return h(App); 9 | } 10 | }).$mount("#app"); 11 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | 4 | Vue.config.productionTip = false; 5 | 6 | new Vue({ 7 | render: function(h) { 8 | return h(App); 9 | } 10 | }).$mount("#app"); 11 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/src/plugins/bootstrap-vue.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | 3 | import BootstrapVue from "bootstrap-vue"; 4 | import "bootstrap/dist/css/bootstrap.min.css"; 5 | import "bootstrap-vue/dist/bootstrap-vue.css"; 6 | 7 | Vue.use(BootstrapVue); 8 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/search.83621669.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | import "./plugins/echarts"; 4 | Vue.config.productionTip = false; 5 | 6 | new Vue({ 7 | render: function(h) { 8 | return h(App); 9 | } 10 | }).$mount("#app"); 11 | -------------------------------------------------------------------------------- /types/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "vue-responsive-dash" { 2 | import { Component } from "vue"; 3 | 4 | const Dashboard: Component; 5 | const DashItem: Component; 6 | const DashLayout: Component; 7 | 8 | export { Dashboard, DashItem, DashLayout }; 9 | } 10 | -------------------------------------------------------------------------------- /plugins/packages/apexCharts/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | //import "./plugins/apexcharts"; 4 | 5 | Vue.config.productionTip = false; 6 | 7 | new Vue({ 8 | render: function (h) { 9 | return h(App); 10 | }, 11 | }).$mount("#app"); 12 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | import "./plugins/fusioncharts"; 4 | 5 | Vue.config.productionTip = false; 6 | 7 | new Vue({ 8 | render: function(h) { 9 | return h(App); 10 | } 11 | }).$mount("#app"); 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | 4 | # local env files 5 | .env.local 6 | .env.*.local 7 | 8 | # Log files 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.sw? 21 | -------------------------------------------------------------------------------- /examples/vuetify/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw? 22 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/12.cfd514c6.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[12],{400:function(t,e,n){"use strict";n.r(e);var s=n(41),l=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);e.default=l.exports}}]); -------------------------------------------------------------------------------- /examples/bootstrap-vue/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw? 22 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/src/plugins/fusioncharts.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import VueFusionCharts from "vue-fusioncharts"; 3 | 4 | // import FusionCharts modules and resolve dependency 5 | import FusionCharts from "fusioncharts"; 6 | import Charts from "fusioncharts/fusioncharts.charts"; 7 | 8 | Vue.use(VueFusionCharts, FusionCharts, Charts); 9 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/10.162be495.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[10],{402:function(t,e,n){"use strict";n.r(e);var s=n(41),o=Object(s.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("Hero")],1)}),[],!1,null,null,null);e.default=o.exports}}]); -------------------------------------------------------------------------------- /examples/vuetify/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | import vuetify from "./plugins/vuetify"; 4 | import store from "./store"; 5 | import router from "./router"; 6 | 7 | Vue.config.productionTip = false; 8 | 9 | new Vue({ 10 | vuetify, 11 | store, 12 | router, 13 | render: h => h(App) 14 | }).$mount("#app"); 15 | -------------------------------------------------------------------------------- /plugins/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. 4 | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. 5 | 6 | ## [0.1.3](https://github.com/bensladden/vue-responsive-dash/compare/v0.3.24...v0.1.3) (2020-03-29) 7 | 8 | **Note:** Version bump only for package @vue-responsive-dash/plugins 9 | -------------------------------------------------------------------------------- /src/shims-tsx.d.ts: -------------------------------------------------------------------------------- 1 | import Vue, { VNode } from "vue"; 2 | 3 | declare global { 4 | namespace JSX { 5 | // tslint:disable no-empty-interface 6 | interface Element extends VNode {} 7 | // tslint:disable no-empty-interface 8 | interface ElementClass extends Vue {} 9 | interface IntrinsicElements { 10 | [elem: string]: any; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/vuetify/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"], 7 | parserOptions: { 8 | parser: "babel-eslint" 9 | }, 10 | rules: { 11 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 12 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"], 7 | parserOptions: { 8 | parser: "babel-eslint" 9 | }, 10 | rules: { 11 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 12 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /plugins/packages/apexCharts/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"], 7 | parserOptions: { 8 | ecmaVersion: 2020 9 | }, 10 | rules: { 11 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 12 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"], 7 | parserOptions: { 8 | ecmaVersion: 2020 9 | }, 10 | rules: { 11 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 12 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"], 7 | parserOptions: { 8 | ecmaVersion: 2020 9 | }, 10 | rules: { 11 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 12 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /plugins/packages/echarts/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"], 7 | parserOptions: { 8 | ecmaVersion: 2020 9 | }, 10 | rules: { 11 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 12 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /examples/vuetify/README.md: -------------------------------------------------------------------------------- 1 | # vuetify 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/barChart.js: -------------------------------------------------------------------------------- 1 | import { Bar, mixins } from "vue-chartjs"; 2 | const { reactiveProp } = mixins; 3 | 4 | export default { 5 | extends: Bar, 6 | mixins: [reactiveProp], 7 | props: ["options"], 8 | mounted() { 9 | // this.chartData is created in the mixin. 10 | // If you want to pass options please create a local options object 11 | this.renderChart(this.chartData, this.options); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/pieChart.js: -------------------------------------------------------------------------------- 1 | import { Pie, mixins } from "vue-chartjs"; 2 | const { reactiveProp } = mixins; 3 | 4 | export default { 5 | extends: Pie, 6 | mixins: [reactiveProp], 7 | props: ["options"], 8 | mounted() { 9 | // this.chartData is created in the mixin. 10 | // If you want to pass options please create a local options object 11 | this.renderChart(this.chartData, this.options); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"], 7 | parserOptions: { 8 | ecmaVersion: 2020 9 | }, 10 | rules: { 11 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 12 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"], 7 | parserOptions: { 8 | ecmaVersion: 2020 9 | }, 10 | rules: { 11 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 12 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /tests/unit/example.spec2.ts: -------------------------------------------------------------------------------- 1 | // import { shallowMount } from "@vue/test-utils"; 2 | // import HelloWorld from "@/components/HelloWorld.vue"; 3 | 4 | // describe("HelloWorld.vue", () => { 5 | // it("renders props.msg when passed", () => { 6 | // const msg = "new message"; 7 | // const wrapper = shallowMount(HelloWorld, { 8 | // propsData: { msg }, 9 | // }); 10 | // expect(wrapper.text()).toMatch(msg); 11 | // }); 12 | // }); 13 | -------------------------------------------------------------------------------- /examples/vuetify/src/App.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 18 | 24 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/src/components/itemMixin.js: -------------------------------------------------------------------------------- 1 | export default { 2 | inject: ["$item"], 3 | computed: { 4 | item() { 5 | return this.$item(); 6 | }, 7 | width() { 8 | if (this.item) { 9 | return this.item.widthPx; 10 | } 11 | return 0; 12 | }, 13 | height() { 14 | if (this.item) { 15 | return this.item.heightPx; 16 | } 17 | return 0; 18 | }, 19 | }, 20 | }; 21 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/lineChart.js: -------------------------------------------------------------------------------- 1 | import { Line, mixins } from "vue-chartjs"; 2 | const { reactiveProp } = mixins; 3 | 4 | export default { 5 | extends: Line, 6 | mixins: [reactiveProp], 7 | props: ["options"], 8 | mounted() { 9 | // this.chartData is created in the mixin. 10 | // If you want to pass options please create a local options object 11 | this.renderChart(this.chartData, this.options); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/mixinComponent.js: -------------------------------------------------------------------------------- 1 | export default { 2 | inject: ["$item"], 3 | computed: { 4 | item() { 5 | return this.$item(); 6 | }, 7 | width() { 8 | if (this.item) { 9 | return this.item.widthPx; 10 | } 11 | return 0; 12 | }, 13 | height() { 14 | if (this.item) { 15 | return this.item.heightPx; 16 | } 17 | return 0; 18 | } 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/radarChart.js: -------------------------------------------------------------------------------- 1 | import { Radar, mixins } from "vue-chartjs"; 2 | const { reactiveProp } = mixins; 3 | 4 | export default { 5 | extends: Radar, 6 | mixins: [reactiveProp], 7 | props: ["options"], 8 | mounted() { 9 | // this.chartData is created in the mixin. 10 | // If you want to pass options please create a local options object 11 | this.renderChart(this.chartData, this.options); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/README.md: -------------------------------------------------------------------------------- 1 | # bootstrap-vue 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/bubbleChart.js: -------------------------------------------------------------------------------- 1 | import { Bubble, mixins } from "vue-chartjs"; 2 | const { reactiveProp } = mixins; 3 | 4 | export default { 5 | extends: Bubble, 6 | mixins: [reactiveProp], 7 | props: ["options"], 8 | mounted() { 9 | // this.chartData is created in the mixin. 10 | // If you want to pass options please create a local options object 11 | this.renderChart(this.chartData, this.options); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/doughnutChart.js: -------------------------------------------------------------------------------- 1 | import { Doughnut, mixins } from "vue-chartjs"; 2 | const { reactiveProp } = mixins; 3 | 4 | export default { 5 | extends: Doughnut, 6 | mixins: [reactiveProp], 7 | props: ["options"], 8 | mounted() { 9 | // this.chartData is created in the mixin. 10 | // If you want to pass options please create a local options object 11 | this.renderChart(this.chartData, this.options); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/scatterChart.js: -------------------------------------------------------------------------------- 1 | import { Scatter, mixins } from "vue-chartjs"; 2 | const { reactiveProp } = mixins; 3 | 4 | export default { 5 | extends: Scatter, 6 | mixins: [reactiveProp], 7 | props: ["options"], 8 | mounted() { 9 | // this.chartData is created in the mixin. 10 | // If you want to pass options please create a local options object 11 | this.renderChart(this.chartData, this.options); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/polarAreaChart.js: -------------------------------------------------------------------------------- 1 | import { PolarArea, mixins } from "vue-chartjs"; 2 | const { reactiveProp } = mixins; 3 | 4 | export default { 5 | extends: PolarArea, 6 | mixins: [reactiveProp], 7 | props: ["options"], 8 | mounted() { 9 | // this.chartData is created in the mixin. 10 | // If you want to pass options please create a local options object 11 | this.renderChart(this.chartData, this.options); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/horizontalBarChart.js: -------------------------------------------------------------------------------- 1 | import { HorizontalBar, mixins } from "vue-chartjs"; 2 | const { reactiveProp } = mixins; 3 | 4 | export default { 5 | extends: HorizontalBar, 6 | mixins: [reactiveProp], 7 | props: ["options"], 8 | mounted() { 9 | // this.chartData is created in the mixin. 10 | // If you want to pass options please create a local options object 11 | this.renderChart(this.chartData, this.options); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/8.9cbb4712.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[8],{327:function(t,e,n){},379:function(t,e,n){"use strict";var i=n(327);n.n(i).a},403:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(379),n(41)),a=Object(r.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=a.exports}}]); -------------------------------------------------------------------------------- /plugins/packages/echarts/src/components/BarChart.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/components/MapChart.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/components/PieChart.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /examples/vuetify/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import Vuex from "vuex"; 3 | import layouts from "./layouts"; 4 | 5 | import chartjs from "./chartjs"; 6 | import eCharts from "./eCharts"; 7 | import epicSpinners from "./epicSpinners"; 8 | import apexCharts from "./apexCharts" 9 | 10 | Vue.use(Vuex); 11 | 12 | /* eslint-disable no-new */ 13 | const store = new Vuex.Store({ 14 | modules: { 15 | layouts, 16 | chartjs, 17 | eCharts, 18 | epicSpinners, 19 | apexCharts 20 | } 21 | }); 22 | 23 | export default store; 24 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/components/LineChart.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/components/RadarChart.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/components/ScatterChart.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /examples/vuetify/src/assets/logo.svg: -------------------------------------------------------------------------------- 1 | Artboard 46 2 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/components/EffectScatterChart.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /plugins/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue-responsive-dash/plugins", 3 | "homepage": "https://vue-responsive-dash.netlify.com", 4 | "author": "Ben Sladden", 5 | "version": "0.1.0", 6 | "devDependencies": { 7 | "lerna": "^3.20.2" 8 | }, 9 | "scripts": { 10 | "bootstrap": "lerna bootstrap --hoist", 11 | "clean": "lerna clean", 12 | "build:lib": "lerna run build:lib --stream", 13 | "lint": "lerna run lint", 14 | "version": "lerna version --conventional-commits", 15 | "publish" : "lerna publish --conventional-commits" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. 4 | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. 5 | 6 | ## [0.1.3](https://github.com/bensladden/vue-responsive-dash/compare/v0.3.24...v0.1.3) (2020-03-29) 7 | 8 | **Note:** Version bump only for package @vue-responsive-dash/chartjs 9 | 10 | 11 | 12 | 13 | 14 | ## [0.1.2](https://github.com/bensladden/vue-responsive-dash/compare/v0.3.15...v0.1.2) (2020-03-23) 15 | 16 | **Note:** Version bump only for package @vue-responsive-dash/chartjs 17 | -------------------------------------------------------------------------------- /plugins/packages/echarts/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. 4 | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. 5 | 6 | ## [0.1.3](https://github.com/bensladden/vue-responsive-dash/compare/v0.3.24...v0.1.3) (2020-03-29) 7 | 8 | **Note:** Version bump only for package @vue-responsive-dash/echarts 9 | 10 | 11 | 12 | 13 | 14 | ## [0.1.2](https://github.com/bensladden/vue-responsive-dash/compare/v0.3.15...v0.1.2) (2020-03-23) 15 | 16 | **Note:** Version bump only for package @vue-responsive-dash/echarts 17 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. 4 | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. 5 | 6 | ## [0.1.3](https://github.com/bensladden/vue-responsive-dash/compare/v0.3.24...v0.1.3) (2020-03-29) 7 | 8 | **Note:** Version bump only for package @vue-responsive-dash/epic-spinners 9 | 10 | 11 | 12 | 13 | 14 | ## [0.1.2](https://github.com/bensladden/vue-responsive-dash/compare/v0.3.15...v0.1.2) (2020-03-23) 15 | 16 | **Note:** Version bump only for package @vue-responsive-dash/epic-spinners 17 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. 4 | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. 5 | 6 | ## [0.1.3](https://github.com/bensladden/vue-responsive-dash/compare/v0.3.24...v0.1.3) (2020-03-29) 7 | 8 | **Note:** Version bump only for package @vue-responsive-dash/fusioncharts 9 | 10 | 11 | 12 | 13 | 14 | ## [0.1.2](https://github.com/bensladden/vue-responsive-dash/compare/v0.3.15...v0.1.2) (2020-03-23) 15 | 16 | **Note:** Version bump only for package @vue-responsive-dash/fusioncharts 17 | -------------------------------------------------------------------------------- /examples/vuetify/src/components/Master.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/vuetify/src/components/NavBar.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/src/components/Master.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | vue-responsive-dash 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true, 5 | }, 6 | extends: ["plugin:vue/essential", "@vue/prettier", "@vue/typescript"], 7 | rules: { 8 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 9 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", 10 | }, 11 | parserOptions: { 12 | parser: "@typescript-eslint/parser", 13 | }, 14 | overrides: [ 15 | { 16 | files: [ 17 | "**/__tests__/*.{j,t}s?(x)", 18 | "**/tests/unit/**/*.spec.{j,t}s?(x)", 19 | ], 20 | env: { 21 | jest: true, 22 | }, 23 | }, 24 | ], 25 | }; 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/AtomSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/OrbitSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/PixelSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/RadarSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/FlowerSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/SpringSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/SemipolarSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/HalfCircleSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/plugins/echarts.js: -------------------------------------------------------------------------------- 1 | // import ECharts modules manually to reduce bundle size 2 | import "echarts/lib/component/tooltip"; 3 | import "echarts/lib/component/polar"; 4 | import "echarts/lib/component/geo"; 5 | import "echarts/lib/component/legend"; 6 | import "echarts/lib/component/title"; 7 | import "echarts/lib/component/visualMap"; 8 | import "echarts/lib/component/dataset"; 9 | import "echarts/map/js/world"; 10 | 11 | // If you want to use ECharts extensions, just import the extension package and it will work 12 | // Taking ECharts-GL as an example: 13 | // You only need to install the package with `npm install --save echarts-gl` and import it as follows 14 | import "echarts-gl"; 15 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/FingerprintSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/TrinityRingsSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /plugins/packages/echarts/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/9.da614f8e.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[9],{393:function(t,e,s){"use strict";s.r(e);var n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],o={methods:{getMsg:function(){return n[Math.floor(Math.random()*n.length)]}}},i=s(41),h=Object(i.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-default-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null);e.default=h.exports}}]); -------------------------------------------------------------------------------- /plugins/packages/apexCharts/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/components/chartMixin.js: -------------------------------------------------------------------------------- 1 | import ECharts from "vue-echarts"; 2 | export default { 3 | components: { "v-chart": ECharts }, 4 | props: { 5 | initOptions: Object, 6 | options: Object, 7 | theme: [String, Object], 8 | group: String, 9 | watchShallow: Boolean, 10 | manualUpdate: Boolean 11 | }, 12 | inject: ["$item"], 13 | computed: { 14 | item() { 15 | return this.$item(); 16 | }, 17 | width() { 18 | if (this.item) { 19 | return this.item.widthPx; 20 | } 21 | return 0; 22 | }, 23 | height() { 24 | if (this.item) { 25 | return this.item.heightPx; 26 | } 27 | return 0; 28 | } 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/MixinComponent.js: -------------------------------------------------------------------------------- 1 | export default { 2 | props: { 3 | animationDuration: { 4 | type: Number, 5 | default: 1000 6 | }, 7 | size: { 8 | type: Number, 9 | default: 60 10 | }, 11 | color: { 12 | type: String, 13 | default: "#fff" 14 | } 15 | }, 16 | inject: ["$item"], 17 | computed: { 18 | item() { 19 | return this.$item(); 20 | }, 21 | width() { 22 | if (this.item) { 23 | return this.item.widthPx; 24 | } 25 | return 0; 26 | }, 27 | height() { 28 | if (this.item) { 29 | return this.item.heightPx; 30 | } 31 | return 0; 32 | } 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/ScalingSquaresSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/BreedingRhombusSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/SwappingSquaresSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/FulfillingSquareSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/SelfBuildingSquareSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/IntersectingCirclesSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/6.7484ea1b.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{325:function(e,t,n){},377:function(e,t,n){"use strict";var o=n(325);n.n(o).a},395:function(e,t,n){"use strict";n.r(t);var o={data:function(){return{showCode:!0}}},i=(n(377),n(41)),s=Object(i.a)(o,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"exampleViewer-container"},[n("div",{staticClass:"exampleViewer-header"},[n("button",{on:{click:function(t){e.showCode=!0}}},[e._v("Show Code")]),e._v(" "),n("button",{on:{click:function(t){e.showCode=!1}}},[e._v("Show Result")])]),e._v(" "),n("div",{staticClass:"exampleViewer-body"},[!0!==e.showCode?n("div",[e._t("result")],2):n("div",[n("ClientOnly",[e._t("default")],2)],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/FulfillingBouncingCircleSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 26 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/src/components/FusionChart.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/interfaces/index.ts: -------------------------------------------------------------------------------- 1 | export interface Item { 2 | id: number | string; 3 | x: number; 4 | y: number; 5 | top?: number; 6 | left?: number; 7 | width: number; 8 | minWidth: number | boolean; 9 | maxWidth: number | boolean; 10 | widthPx?: number; 11 | height: number; 12 | minHeight: number | boolean; 13 | maxHeight: number | boolean; 14 | heightPx?: number; 15 | draggable?: boolean; 16 | resizable?: boolean; 17 | moved?: boolean; 18 | locked?: boolean; 19 | } 20 | 21 | export interface Breakpoint { 22 | name: string; 23 | numberOfCols: number; 24 | setpoint?: number; 25 | } 26 | 27 | export interface Margin { 28 | x: number; 29 | y: number; 30 | } 31 | 32 | export interface Subscription { 33 | id: number | string; 34 | unsubscribe: () => void; 35 | } 36 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "strict": true, 6 | "jsx": "preserve", 7 | "importHelpers": true, 8 | "moduleResolution": "node", 9 | "esModuleInterop": true, 10 | "allowSyntheticDefaultImports": true, 11 | "sourceMap": true, 12 | "baseUrl": ".", 13 | "types": [ 14 | "webpack-env", 15 | "jest" 16 | ], 17 | "paths": { 18 | "@/*": [ 19 | "src/*" 20 | ] 21 | }, 22 | "lib": [ 23 | "esnext", 24 | "dom", 25 | "dom.iterable", 26 | "scripthost" 27 | ] 28 | }, 29 | "include": [ 30 | "src/**/*.ts", 31 | "src/**/*.tsx", 32 | "src/**/*.vue", 33 | "tests/**/*.ts", 34 | "tests/**/*.tsx" 35 | ], 36 | "exclude": [ 37 | "node_modules" 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/7.cd56efaa.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[7],{326:function(t,e,i){},378:function(t,e,i){"use strict";var s=i(326);i.n(s).a},396:function(t,e,i){"use strict";i.r(e);var s={name:"Hero"},a=(i(378),i(41)),n=Object(a.a)(s,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("h1",{staticStyle:{"text-align":"center"}},[this._v("\n Vue-Responsive-Dash\n "),e("Badge",{attrs:{text:this.$__VERSION__,type:"tip",vertical:"middle"}})],1),this._v(" "),e("p",{staticStyle:{"text-align":"center"}},[this._v("A Responsive, Draggable & Resizable Dashboard (grid) made with vue and typescript")]),this._v(" "),e("ClientOnly",[e("Example")],1),this._v(" "),e("div",{staticClass:"box"},[e("router-link",{staticClass:"button",attrs:{to:"/guide/"}},[this._v("Get started")])],1)],1)}),[],!1,null,null,null);e.default=n.exports}}]); -------------------------------------------------------------------------------- /plugins/packages/apexCharts/src/components/ApexChartDashItem.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/src/components/TextMiddleCenter.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 26 | 27 | 41 | -------------------------------------------------------------------------------- /examples/vuetify/src/store/apexChartsUtils.js: -------------------------------------------------------------------------------- 1 | const generateData = function(baseval, count, yrange) { 2 | var i = 0; 3 | var series = []; 4 | while (i < count) { 5 | var x = Math.floor(Math.random() * (750 - 1 + 1)) + 1; 6 | var y = 7 | Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; 8 | var z = Math.floor(Math.random() * (75 - 15 + 1)) + 15; 9 | series.push([x, y, z]); 10 | baseval += 86400000; 11 | i++; 12 | } 13 | return series; 14 | }; 15 | const generateHeatData = function(count, yrange) { 16 | var i = 0; 17 | var series = []; 18 | while (i < count) { 19 | var x = (i + 1).toString(); 20 | var y = 21 | Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; 22 | series.push({ 23 | x: x, 24 | y: y 25 | }); 26 | i++; 27 | } 28 | return series; 29 | }; 30 | 31 | export { generateData, generateHeatData }; 32 | -------------------------------------------------------------------------------- /plugins/packages/apexCharts/src/components/index.js: -------------------------------------------------------------------------------- 1 | import ApexChart from "./ApexChartDashItem.vue"; 2 | 3 | const VueResponsiveDashApexcharts = { 4 | ApexChart, 5 | }; 6 | // Declare install function executed by Vue.use() 7 | export function install(Vue) { 8 | if (install.installed) return; 9 | Object.keys(VueResponsiveDashApexcharts).forEach((name) => { 10 | Vue.component(name, VueResponsiveDashApexcharts[name]); 11 | }); 12 | } 13 | 14 | // Create module definition for Vue.use() 15 | const plugin = { 16 | install, 17 | }; 18 | 19 | // Auto-install when vue is found (eg. in browser via 37 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/src/components/index.js: -------------------------------------------------------------------------------- 1 | import FusionChart from "./FusionChart.vue"; 2 | 3 | const VueResponsiveDashFusioncharts = { 4 | FusionChart, 5 | }; 6 | // Declare install function executed by Vue.use() 7 | export function install(Vue) { 8 | if (install.installed) return; 9 | install.installed = true; 10 | Object.keys(VueResponsiveDashFusioncharts).forEach((name) => { 11 | Vue.component(name, VueResponsiveDashFusioncharts[name]); 12 | }); 13 | } 14 | 15 | // Create module definition for Vue.use() 16 | const plugin = { 17 | install, 18 | }; 19 | 20 | // Auto-install when vue is found (eg. in browser via 22 | 23 | -------------------------------------------------------------------------------- /docs/.vuepress/components/ExampleViewer.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 29 | 30 | -------------------------------------------------------------------------------- /src/components/index.js: -------------------------------------------------------------------------------- 1 | import DashItem from "./DashItem.vue"; 2 | import DashLayout from "./DashLayout.vue"; 3 | import Dashboard from "./Dashboard.vue"; 4 | 5 | const VueResponsiveDash = { 6 | DashItem, 7 | DashLayout, 8 | Dashboard, 9 | }; 10 | 11 | // Declare install function executed by Vue.use() 12 | export function install(Vue) { 13 | if (install.installed) return; 14 | install.installed = true; 15 | Object.keys(VueResponsiveDash).forEach((name) => { 16 | Vue.component(name, VueResponsiveDash[name]); 17 | }); 18 | } 19 | 20 | // Create module definition for Vue.use() 21 | const plugin = { 22 | install, 23 | }; 24 | 25 | // Auto-install when vue is found (eg. in browser via 40 | 41 | 55 | -------------------------------------------------------------------------------- /examples/bootstrap-vue/src/components/TextCentered.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 40 | 41 | 55 | -------------------------------------------------------------------------------- /plugins/packages/apexCharts/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 bensladden 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 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 bensladden 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 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 bensladden 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 | -------------------------------------------------------------------------------- /plugins/packages/echarts/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 bensladden 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 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 bensladden 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 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 bensladden 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 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/CirclesToRhombusesSpinner.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 44 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/BarChart.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/PieChart.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/LineChart.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/RadarChart.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/BubbleChart.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | -------------------------------------------------------------------------------- /examples/vuetify/src/store/epicSpinners.js: -------------------------------------------------------------------------------- 1 | export default { 2 | namespaced: true, 3 | state: { 4 | items: [ 5 | { template: "HollowDotsSpinner" }, 6 | { template: "PixelSpinner" }, 7 | { template: "FlowerSpinner" }, 8 | { template: "IntersectingCirclesSpinner" }, 9 | { template: "OrbitSpinner" }, 10 | { template: "FingerprintSpinner" }, 11 | { template: "TrinityRingsSpinner" }, 12 | { template: "FulfillingSquareSpinner" }, 13 | { template: "CirclesToRhombusesSpinner" }, 14 | { template: "SemipolarSpinner" }, 15 | { template: "BreedingRhombusSpinner" }, 16 | { template: "SwappingSquaresSpinner" }, 17 | { template: "ScalingSquaresSpinner" }, 18 | { template: "FulfillingBouncingCircleSpinner" }, 19 | { template: "RadarSpinner" }, 20 | { template: "SelfBuildingSquareSpinner" }, 21 | { template: "SpringSpinner" }, 22 | { template: "LoopingRhombusesSpinner" }, 23 | { template: "HalfCircleSpinner" }, 24 | { template: "AtomSpinner" } 25 | ] 26 | }, 27 | getters: { 28 | getItems(store) { 29 | return store.items; 30 | } 31 | }, 32 | mutations: {}, 33 | actions: {} 34 | }; 35 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/ScatterChart.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/DoughnutChart.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/PolarAreaChart.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | -------------------------------------------------------------------------------- /examples/vuetify/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import VueRouter from "vue-router"; 3 | import Home from "../views/Home.vue"; 4 | 5 | Vue.use(VueRouter); 6 | 7 | const routes = [ 8 | { 9 | path: "/", 10 | name: "Home", 11 | component: Home 12 | }, 13 | { 14 | path: "/about", 15 | name: "About", 16 | // route level code-splitting 17 | // this generates a separate chunk (about.[hash].js) for this route 18 | // which is lazy-loaded when the route is visited. 19 | component: () => 20 | import(/* webpackChunkName: "about" */ "../views/About.vue") 21 | }, 22 | { 23 | path: "/apexcharts", 24 | name: "ApexCharts", 25 | component: () => import("../views/ApexCharts.vue") 26 | }, 27 | { 28 | path: "/chartjs", 29 | name: "Chartjs", 30 | component: () => import("../views/Chartjs.vue") 31 | }, 32 | { 33 | path: "/echarts", 34 | name: "Echarts", 35 | component: () => import("../views/Echarts.vue") 36 | }, 37 | { 38 | path: "/epicspinners", 39 | name: "EpicSpinners", 40 | component: () => import("../views/EpicSpinners.vue") 41 | } 42 | ]; 43 | 44 | const router = new VueRouter({ 45 | routes 46 | }); 47 | 48 | export default router; 49 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/HollowDotsSpinner.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 49 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/horizontalBarChart.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue-responsive-dash/basic-items", 3 | "version": "0.1.4", 4 | "homepage": "https://vue-responsive-dash.netlify.com", 5 | "author": "Ben Sladden", 6 | "main": "dist/basic-items.common.js", 7 | "unpkg": "dist/basic-items.umd.min.js", 8 | "files": [ 9 | "dist", 10 | "src" 11 | ], 12 | "license": "MIT", 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/bensladden/vue-responsive-dash.git" 16 | }, 17 | "scripts": { 18 | "serve": "vue-cli-service serve", 19 | "build": "vue-cli-service build", 20 | "build:lib": "rimraf dist && vue-cli-service build --target lib ./src/components/index.js", 21 | "lint": "vue-cli-service lint" 22 | }, 23 | "dependencies": { 24 | 25 | }, 26 | "peerDependencies": { 27 | "vue": "^2.6.11" 28 | }, 29 | "devDependencies": { 30 | "@vue/cli-plugin-eslint": "~4.2.0", 31 | "@vue/cli-service": "~4.2.0", 32 | "@vue/eslint-config-prettier": "^6.0.0", 33 | "eslint": "^6.7.2", 34 | "eslint-plugin-prettier": "^3.1.1", 35 | "eslint-plugin-vue": "^6.1.2", 36 | "prettier": "^1.19.1", 37 | "rimraf": "^3.0.2", 38 | "vue": "^2.6.11", 39 | "vue-responsive-dash": "^0.4.3", 40 | "vue-template-compiler": "^2.6.11" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue-responsive-dash/epic-spinners", 3 | "version": "0.1.4", 4 | "homepage": "https://vue-responsive-dash.netlify.com", 5 | "author": "Ben Sladden", 6 | "main": "dist/epic-spinners.common.js", 7 | "unpkg": "dist/epic-spinners.umd.min.js", 8 | "files": [ 9 | "dist", 10 | "src" 11 | ], 12 | "license": "MIT", 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/bensladden/vue-responsive-dash.git" 16 | }, 17 | "scripts": { 18 | "serve": "vue-cli-service serve", 19 | "build": "vue-cli-service build", 20 | "build:lib": "rimraf dist && vue-cli-service build --target lib ./src/components/index.js", 21 | "lint": "vue-cli-service lint" 22 | }, 23 | "peerDependencies": { 24 | "epic-spinners": "^1.1.0", 25 | "vue": "^2.6.11" 26 | }, 27 | "devDependencies": { 28 | "@vue/cli-plugin-eslint": "~4.2.0", 29 | "@vue/cli-service": "~4.2.0", 30 | "@vue/eslint-config-prettier": "^6.0.0", 31 | "epic-spinners": "^1.1.0", 32 | "eslint": "^6.7.2", 33 | "eslint-plugin-prettier": "^3.1.1", 34 | "eslint-plugin-vue": "^6.1.2", 35 | "prettier": "^1.19.1", 36 | "rimraf": "^3.0.2", 37 | "vue": "^2.6.11", 38 | "vue-responsive-dash": "^0.4.3", 39 | "vue-template-compiler": "^2.6.11" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /plugins/packages/apexCharts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue-responsive-dash/apexcharts", 3 | "version": "0.1.5", 4 | "homepage": "https://vue-responsive-dash.netlify.com", 5 | "author": "Ben Sladden", 6 | "main": "dist/apexcharts.common.js", 7 | "unpkg": "dist/apexcharts.umd.min.js", 8 | "files": [ 9 | "dist", 10 | "src" 11 | ], 12 | "license": "MIT", 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/bensladden/vue-responsive-dash.git" 16 | }, 17 | "scripts": { 18 | "serve": "vue-cli-service serve", 19 | "build": "vue-cli-service build", 20 | "build:lib": "rimraf dist && vue-cli-service build --target lib ./src/components/index.js", 21 | "lint": "vue-cli-service lint" 22 | }, 23 | "dependencies": { 24 | "vue-apexcharts": "^1.6.0" 25 | }, 26 | "peerDependencies": { 27 | "apexcharts": "^3.19.3" 28 | }, 29 | "devDependencies": { 30 | "@vue/cli-plugin-eslint": "~4.2.0", 31 | "@vue/cli-service": "~4.2.0", 32 | "@vue/eslint-config-prettier": "^6.0.0", 33 | "apexcharts": "^3.19.3", 34 | "eslint": "^6.7.2", 35 | "eslint-plugin-prettier": "^3.1.1", 36 | "eslint-plugin-vue": "^6.1.2", 37 | "prettier": "^1.19.1", 38 | "rimraf": "^3.0.2", 39 | "vue": "^2.6.11", 40 | "vue-responsive-dash": "^0.4.3", 41 | "vue-template-compiler": "^2.6.11" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue-responsive-dash/fusioncharts", 3 | "version": "0.1.4", 4 | "homepage": "https://vue-responsive-dash.netlify.com", 5 | "author": "Ben Sladden", 6 | "main": "dist/fusioncharts.common.js", 7 | "unpkg": "dist/fusioncharts.umd.min.js", 8 | "files": [ 9 | "dist", 10 | "src" 11 | ], 12 | "license": "MIT", 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/bensladden/vue-responsive-dash.git" 16 | }, 17 | "scripts": { 18 | "serve": "vue-cli-service serve", 19 | "build": "vue-cli-service build", 20 | "build:lib": "rimraf dist && vue-cli-service build --target lib ./src/components/index.js", 21 | "lint": "vue-cli-service lint" 22 | }, 23 | "dependencies": { 24 | "vue-fusioncharts": "^3.0.4" 25 | }, 26 | "peerDependencies": { 27 | "fusioncharts": "^3.15.2" 28 | }, 29 | "devDependencies": { 30 | "@vue/cli-plugin-eslint": "~4.2.0", 31 | "@vue/cli-service": "~4.2.0", 32 | "@vue/eslint-config-prettier": "^6.0.0", 33 | "eslint": "^6.7.2", 34 | "eslint-plugin-prettier": "^3.1.1", 35 | "eslint-plugin-vue": "^6.1.2", 36 | "fusioncharts": "^3.15.2", 37 | "prettier": "^1.19.1", 38 | "rimraf": "^3.0.2", 39 | "vue": "^2.6.11", 40 | "vue-responsive-dash": "^0.4.3", 41 | "vue-template-compiler": "^2.6.11" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /plugins/packages/apexCharts/README.md: -------------------------------------------------------------------------------- 1 | # @vue-responsive-dash/apexCharts 2 | 3 | Wrapper for fusioncharts [https://github.com/apexcharts/vue-apexcharts](https://github.com/apexcharts/vue-apexcharts). 4 | This wrapper automatically scales the chart to fit DashItem. 5 | 6 | ## ⚙️ Installation 7 | ```sh 8 | $ npm install @vue-responsive-dash/apexcharts 9 | ``` 10 | 11 | ## 📄 Documents 12 | [Link](https://vue-responsive-dash.netlify.com/) 13 | 14 | ## 🚀 How to use in Vue 15 | 16 | ```vue 17 | 18 | ``` 19 | 20 | ## Licensing 21 | This package is open-source and distributed under the terms of the MIT License. 22 | 23 | ### ⭐️ Show Your Support 24 | Please give a ⭐️ if this project helped you! 25 | 26 | 27 | ## 👏 Contributing 28 | 29 | If you have any questions or requests or want to contribute to `vue-responsive-dash` or other packages, please write the [issue](https://github.com/bensladden/vue-responsive-dash/issues) or give me a Pull Request freely. 30 | 31 | ## 🐞 Bug Report 32 | 33 | If you find a bug, please report to us opening a new [Issue](https://github.com/bensladden/vue-responsive-dash/issues) on GitHub. 34 | 35 | ## ⚙️ Development 36 | ### `npm run serve` 37 | 38 | Runs the app in the development mode.
39 | Open [http://localhost:8080](http://localhost:8080) to view it in the browser. 40 | 41 | The page will reload if you make edits.
42 | You will also see any lint errors in the console. -------------------------------------------------------------------------------- /plugins/packages/chartjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue-responsive-dash/chartjs", 3 | "version": "0.1.4", 4 | "homepage": "https://vue-responsive-dash.netlify.com", 5 | "author": "Ben Sladden", 6 | "main": "dist/chartjs.common.js", 7 | "unpkg": "dist/chartjs.umd.min.js", 8 | "files": [ 9 | "dist", 10 | "src" 11 | ], 12 | "license": "MIT", 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/bensladden/vue-responsive-dash.git" 16 | }, 17 | "scripts": { 18 | "serve": "vue-cli-service serve", 19 | "build": "vue-cli-service build", 20 | "build:lib": "rimraf dist && vue-cli-service build --target lib ./src/components/index.js", 21 | "lint": "vue-cli-service lint" 22 | }, 23 | "dependencies": { 24 | "lodash": "^4.17.19", 25 | "vue-chartjs": "^3.5.0" 26 | }, 27 | "peerDependencies": { 28 | "chart.js": "^2.9.3", 29 | "vue": "^2.6.11" 30 | }, 31 | "devDependencies": { 32 | "@vue/cli-plugin-eslint": "~4.2.0", 33 | "@vue/cli-service": "~4.2.0", 34 | "@vue/eslint-config-prettier": "^6.0.0", 35 | "chart.js": "^2.9.3", 36 | "eslint": "^6.7.2", 37 | "eslint-plugin-prettier": "^3.1.1", 38 | "eslint-plugin-vue": "^6.1.2", 39 | "prettier": "^1.19.1", 40 | "rimraf": "^3.0.2", 41 | "vue": "^2.6.11", 42 | "vue-responsive-dash": "^0.4.3", 43 | "vue-template-compiler": "^2.6.11" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /plugins/packages/echarts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue-responsive-dash/echarts", 3 | "version": "0.1.4", 4 | "homepage": "https://vue-responsive-dash.netlify.com", 5 | "author": "Ben Sladden", 6 | "main": "dist/echarts.common.js", 7 | "unpkg": "dist/echarts.umd.min.js", 8 | "files": [ 9 | "dist", 10 | "src" 11 | ], 12 | "license": "MIT", 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/bensladden/vue-responsive-dash.git" 16 | }, 17 | "scripts": { 18 | "serve": "vue-cli-service serve", 19 | "build": "vue-cli-service build", 20 | "build:lib": "rimraf dist && vue-cli-service build --target lib ./src/components/index.js", 21 | "lint": "vue-cli-service lint" 22 | }, 23 | "dependencies": { 24 | "vue-echarts": "^5.0.0-beta.0" 25 | }, 26 | "peerDependencies": { 27 | "echarts": "^4.8.0", 28 | "vue": "^2.6.11" 29 | }, 30 | "devDependencies": { 31 | "@vue/cli-plugin-eslint": "~4.2.0", 32 | "@vue/cli-service": "~4.2.0", 33 | "@vue/eslint-config-prettier": "^6.0.0", 34 | "echarts": "^4.8.0", 35 | "echarts-gl": "^1.1.1", 36 | "eslint": "^6.7.2", 37 | "eslint-plugin-prettier": "^3.1.1", 38 | "eslint-plugin-vue": "^6.1.2", 39 | "prettier": "^1.19.1", 40 | "rimraf": "^3.0.2", 41 | "vue": "^2.6.11", 42 | "vue-responsive-dash": "^0.4.3", 43 | "vue-template-compiler": "^2.6.11" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/App.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 46 | 47 | 57 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/components/index.js: -------------------------------------------------------------------------------- 1 | import BarChart from "./BarChart.vue"; 2 | import EffectScatterChart from "./EffectScatterChart.vue"; 3 | import LineChart from "./LineChart.vue"; 4 | import MapChart from "./MapChart.vue"; 5 | import PieChart from "./PieChart.vue"; 6 | import RadarChart from "./RadarChart.vue"; 7 | import ScatterChart from "./ScatterChart.vue"; 8 | 9 | const VueResponsiveDashECharts = { 10 | BarChart, 11 | EffectScatterChart, 12 | LineChart, 13 | MapChart, 14 | PieChart, 15 | RadarChart, 16 | ScatterChart, 17 | }; 18 | // Declare install function executed by Vue.use() 19 | export function install(Vue) { 20 | if (install.installed) return; 21 | install.installed = true; 22 | Object.keys(VueResponsiveDashECharts).forEach((name) => { 23 | Vue.component(name, VueResponsiveDashECharts[name]); 24 | }); 25 | } 26 | 27 | // Create module definition for Vue.use() 28 | const plugin = { 29 | install, 30 | }; 31 | 32 | // Auto-install when vue is found (eg. in browser via 58 | -------------------------------------------------------------------------------- /examples/vuetify/src/store/eCharts.js: -------------------------------------------------------------------------------- 1 | import { 2 | barData, 3 | pieData, 4 | polarData, 5 | scatterData, 6 | radarData, 7 | lineData 8 | } from "../assets/data"; 9 | 10 | export default { 11 | namespaced: true, 12 | state: { 13 | barData, 14 | pieData, 15 | polarData, 16 | scatterData, 17 | radarData, 18 | lineData 19 | }, 20 | getters: { 21 | getItems(state) { 22 | return [ 23 | { 24 | id: "1", 25 | template: "BarChart", 26 | data: state.barData 27 | }, 28 | { 29 | id: "2", 30 | template: "EffectScatterChart", 31 | data: state.scatterData 32 | }, 33 | { 34 | id: "3", 35 | template: "LineChart", 36 | data: state.lineData 37 | }, 38 | { 39 | id: "4", 40 | template: "MapChart", 41 | data: state.mapData 42 | }, 43 | { 44 | id: "5", 45 | template: "PieChart", 46 | data: state.pieData 47 | }, 48 | { 49 | id: "6", 50 | template: "RadarChart", 51 | data: state.radarData 52 | }, 53 | { 54 | id: "7", 55 | template: "ScatterChart", 56 | data: state.scatterData 57 | }, 58 | { 59 | id: "8", 60 | template: "RadarChart", 61 | data: state.polarData 62 | }, 63 | { 64 | id: "9", 65 | template: "RadarChart", 66 | data: state.polarData 67 | } 68 | ]; 69 | } 70 | }, 71 | mutations: {}, 72 | actions: {} 73 | }; 74 | -------------------------------------------------------------------------------- /examples/vuetify/src/views/ApexCharts.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /plugins/packages/chartjs/src/components/index.js: -------------------------------------------------------------------------------- 1 | import BarChart from "./BarChart.vue"; 2 | import BubbleChart from "./BubbleChart.vue"; 3 | import DoughnutChart from "./DoughnutChart.vue"; 4 | import HorizontalBarChart from "./HorizontalBarChart.vue"; 5 | import LineChart from "./LineChart.vue"; 6 | import PieChart from "./PieChart.vue"; 7 | import PolarAreaChart from "./PolarAreaChart.vue"; 8 | import RadarChart from "./RadarChart.vue"; 9 | import ScatterChart from "./ScatterChart.vue"; 10 | 11 | const VueResponsiveDashChartJs = { 12 | BarChart, 13 | BubbleChart, 14 | DoughnutChart, 15 | HorizontalBarChart, 16 | LineChart, 17 | PieChart, 18 | PolarAreaChart, 19 | RadarChart, 20 | ScatterChart, 21 | }; 22 | 23 | // Declare install function executed by Vue.use() 24 | export function install(Vue) { 25 | if (install.installed) return; 26 | install.installed = true; 27 | Object.keys(VueResponsiveDashChartJs).forEach((name) => { 28 | Vue.component(name, VueResponsiveDashChartJs[name]); 29 | }); 30 | } 31 | 32 | // Create module definition for Vue.use() 33 | const plugin = { 34 | install, 35 | }; 36 | 37 | // Auto-install when vue is found (eg. in browser via 18 | 19 | 20 | -------------------------------------------------------------------------------- /examples/vuetify/src/views/Echarts.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 72 | -------------------------------------------------------------------------------- /src/components/Dashboard.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /tests/unit/LayoutModel.spec.ts: -------------------------------------------------------------------------------- 1 | import { Layout } from "../../src/components/Layout.model"; 2 | 3 | let layoutOptions = { 4 | breakpoint: "1", 5 | numberOfCols: Layout.defaults.numberOfCols, 6 | margin: Layout.defaults.margin, 7 | }; 8 | 9 | //Row Height Tests -------------------- 10 | test("Test Row Height being equal to colWidth when not defined", () => { 11 | let layout = new Layout({ ...layoutOptions }); 12 | expect(layout.rowHeight).toBe(layout.colWidth); 13 | }); 14 | 15 | test("Test Row Height being set by constructor", () => { 16 | let rowHeight = 200; 17 | let layout = new Layout({ ...layoutOptions, rowHeight }); 18 | expect(layout.rowHeight).toBe(rowHeight); 19 | }); 20 | 21 | test("Test Row Height being set by reactive Method", () => { 22 | let rowHeight = 200; 23 | let layout = new Layout({ ...layoutOptions }); 24 | expect(layout.rowHeight).not.toBe(rowHeight); 25 | layout.rowHeight = rowHeight; 26 | expect(layout.rowHeight).toBe(rowHeight); 27 | }); 28 | 29 | test("Test Max Row Height", () => { 30 | let rowHeight = 200; 31 | let maxRowHeight = 190; 32 | let layout = new Layout({ ...layoutOptions, rowHeight }); 33 | expect(layout.rowHeight).toBe(rowHeight); 34 | layout.maxRowHeight = maxRowHeight; 35 | expect(layout.rowHeight).toBe(maxRowHeight); 36 | 37 | let layout2 = new Layout({ ...layoutOptions, width: 400, numberOfCols: 1 }); 38 | expect(layout2.rowHeight).not.toBe(rowHeight); 39 | layout2.maxRowHeight = maxRowHeight; 40 | expect(layout2.rowHeight).toBe(maxRowHeight); 41 | }); 42 | 43 | test("Test Min Row Height", () => { 44 | let rowHeight = 200; 45 | let minRowHeight = 210; 46 | let layout = new Layout({ ...layoutOptions, rowHeight }); 47 | expect(layout.rowHeight).toBe(rowHeight); 48 | layout.minRowHeight = minRowHeight; 49 | expect(layout.rowHeight).toBe(minRowHeight); 50 | 51 | let layout2 = new Layout({ ...layoutOptions, width: 400, numberOfCols: 10 }); 52 | expect(layout2.rowHeight).not.toBe(rowHeight); 53 | layout2.minRowHeight = minRowHeight; 54 | expect(layout2.rowHeight).toBe(minRowHeight); 55 | }); 56 | -------------------------------------------------------------------------------- /examples/vuetify/src/views/Chartjs.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 79 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/src/App.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 94 | -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/src/App.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 79 | 80 | 90 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-responsive-dash", 3 | "version": "0.5.0", 4 | "keywords": [ 5 | "vuejs", 6 | "vue", 7 | "responsive", 8 | "drag", 9 | "draggable", 10 | "resize", 11 | "resizable", 12 | "dashboard", 13 | "grid", 14 | "grid-layout", 15 | "components" 16 | ], 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/bensladden/vue-responsive-dash.git" 20 | }, 21 | "files": [ 22 | "dist", 23 | "types/*.d.ts" 24 | ], 25 | "types": "types/index.d.ts", 26 | "homepage": "https://vue-responsive-dash.netlify.com", 27 | "author": "Ben Sladden", 28 | "main": "dist/vue-responsive-dash.common.js", 29 | "unpkg": "dist/vue-responsive-dash.umd.min.js", 30 | "scripts": { 31 | "serve": "vue-cli-service serve", 32 | "build": "rimraf dist && vue-cli-service build", 33 | "build:lib": "rimraf dist && vue-cli-service build --target lib ./src/components/index.js", 34 | "docs:dev": "vuepress dev docs", 35 | "docs:build": "vuepress build docs", 36 | "test:unit": "vue-cli-service test:unit", 37 | "lint": "vue-cli-service lint" 38 | }, 39 | "license": "MIT", 40 | "devDependencies": { 41 | "@interactjs/types": "^1.9.20", 42 | "@types/jest": "^26.0.10", 43 | "@vue/cli-plugin-babel": "^4.5.4", 44 | "@vue/cli-plugin-eslint": "^4.5.4", 45 | "@vue/cli-plugin-typescript": "^4.5.4", 46 | "@vue/cli-plugin-unit-jest": "^4.5.4", 47 | "@vue/cli-service": "^4.5.4", 48 | "@vue/eslint-config-prettier": "^6.0.0", 49 | "@vue/eslint-config-typescript": "^4.0.0", 50 | "@vue/test-utils": "1.0.3", 51 | "@vuepress/shared-utils": "^1.5.3", 52 | "core-js": "^3.6.5", 53 | "eslint": "^5.16.0", 54 | "eslint-plugin-prettier": "^3.1.4", 55 | "eslint-plugin-vue": "^6.2.2", 56 | "prettier": "^2.0.5", 57 | "regenerator-runtime": "^0.13.7", 58 | "rimraf": "^3.0.2", 59 | "typescript": "^3.9.7", 60 | "vue": "^2.6.11", 61 | "vue-template-compiler": "^2.6.11", 62 | "vuepress": "^1.5.3", 63 | "vuepress-plugin-typescript": "^0.3.0" 64 | }, 65 | "peerDependencies": { 66 | "vue": "^2.6.11" 67 | }, 68 | "dependencies": { 69 | "@interactjs/actions": "^1.9.20", 70 | "@interactjs/auto-start": "^1.9.20", 71 | "@interactjs/interact": "^1.9.20", 72 | "ste-simple-events": "^1.6.13", 73 | "vue-element-resize-detector": "^1.0.6" 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/README.md: -------------------------------------------------------------------------------- 1 | # @vue-responsive-dash/epic-spinners 2 | 3 | Wrapper for [https://github.com/epicmaxco/epic-spinners](https://github.com/epicmaxco/epic-spinners). 4 | Places the choice of spinner automatically in the middle of the DashItem. 5 | Intended to be used when your DashItem components require data to be loaded. (Loading Spinners) 6 | 7 | Note: Also includes a Random spinner object which will choose a Spinner at runtime. 8 | 9 | ## ⚙️ Installation 10 | ```sh 11 | $ npm install @vue-responsive-dash/epic-spinners 12 | ``` 13 | 14 | ## 📄 Documents 15 | [Link](https://vue-responsive-dash.netlify.com/) 16 | 17 | ```vue 18 | 19 | 43 | 44 | 63 | 64 | ``` 65 | 66 | ## ⭐️ Show Your Support 67 | Please give a ⭐️ if this project helped you! 68 | 69 | 70 | ## 👏 Contributing 71 | 72 | If you have any questions or requests or want to contribute to `vue-responsive-dash` or other packages, please write the [issue](https://github.com/bensladden/vue-responsive-dash/issues) or give me a Pull Request freely. 73 | 74 | ## 🐞 Bug Report 75 | 76 | If you find a bug, please report to us opening a new [Issue](https://github.com/bensladden/vue-responsive-dash/issues) on GitHub. 77 | 78 | ## ⚙️ Development 79 | ### `npm run serve` 80 | 81 | Runs the app in the development mode.
82 | Open [http://localhost:8080](http://localhost:8080) to view it in the browser. 83 | 84 | The page will reload if you make edits.
85 | You will also see any lint errors in the console. 86 | -------------------------------------------------------------------------------- /docs/plugins/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar: auto 3 | --- 4 | 5 | # Addons 6 | 7 | ## epic-spinners 8 | 9 | Wrapper for [https://github.com/epicmaxco/epic-spinners](https://github.com/epicmaxco/epic-spinners). 10 | Places the choice of spinner automatically in the middle of the DashItem. 11 | Intended to be used when your DashItem components require data to be loaded. (Loading Spinners) 12 | 13 | Note: Also includes a Random spinner object which will choose a Spinner at runtime. 14 | 15 | ```vue 16 | 17 | 41 | 42 | 61 | 62 | ``` 63 | 64 | 65 | ## Chartjs 66 | 67 | Implements vue-chartjs [https://vue-chartjs.org/](https://vue-chartjs.org/). 68 | This wrapper automatically scales the chart to fit DashItem. 69 | 70 | See vue-chartjs for usage information: [https://vue-chartjs.org/guide/](https://vue-chartjs.org/guide/) 71 | 72 | ```vue 73 | 74 | ``` 75 | 76 | ## eCharts 77 | 78 | Implements vue-echarts [https://ecomfe.github.io/vue-echarts/demo/](https://ecomfe.github.io/vue-echarts/demo/). 79 | This wrapper automatically scales the charts to fit each DashItem. 80 | 81 | See vue-echarts for usage information: [https://github.com/ecomfe/vue-echarts](https://github.com/ecomfe/vue-echarts) 82 | 83 | ```vue 84 | 85 | ``` 86 | 87 | ## FusionCharts 88 | 89 | Wrapper for fusioncharts [https://github.com/fusioncharts/vue-fusioncharts](https://github.com/fusioncharts/vue-fusioncharts). 90 | This wrapper automatically scales the chart to fit DashItem. 91 | 92 | See vue-fusioncharts for usage information: [https://fusioncharts.github.io/vue-fusioncharts/](https://fusioncharts.github.io/vue-fusioncharts/) 93 | 94 | ```vue 95 | 96 | ``` 97 | 98 | -------------------------------------------------------------------------------- /docs/.vuepress/config.js: -------------------------------------------------------------------------------- 1 | const webpack = require("webpack"); 2 | const { version } = require("../../package.json"); 3 | module.exports = { 4 | title: "Vue-Responsive-Dash Docs", 5 | description: "Welcome to Vue-Responsive-Dash Docs", 6 | markdown: { 7 | lineNumbers: true 8 | }, 9 | chainWebpack: config => { 10 | config.plugin("version-env").use(webpack.EnvironmentPlugin, [ 11 | { 12 | VERSION: version 13 | } 14 | ]); 15 | }, 16 | themeConfig: { 17 | repo: "bensladden/vue-responsive-dash", 18 | repoLabel: "GitHub", 19 | docsDir: "docs", 20 | docsBranch: "master", 21 | lastUpdated: "Last Updated", 22 | sidebarDepth: 2, 23 | nav: [ 24 | { 25 | text: "Guide", 26 | items: [ 27 | { text: "Getting Started", link: "/guide/#getting-started" }, 28 | { text: "Setup", link: "/guide/#setup" }, 29 | { text: "How to Use with Vue", link: "/guide/#how-to-use-with-vue" }, 30 | { text: "Support", link: "/guide/#support" }, 31 | { text: "Contributing", link: "/guide/#contributing" }, 32 | { text: "Bug Report", link: "/guide/#bug-report" } 33 | ] 34 | }, 35 | { 36 | text: "API", 37 | items: [ 38 | { text: "Dashboard", link: "/api/#dashboard" }, 39 | { text: "Dash Layout", link: "/api/#dash-layout" }, 40 | { text: "Dash Item", link: "/api/#dash-item" } 41 | ] 42 | }, 43 | { 44 | text: "Plugins", 45 | items: [ 46 | { text: "epic-spinners", link: "/plugins/#epicspinners" }, 47 | { text: "Chartjs", link: "/plugins/#chartjs" }, 48 | { text: "eCharts", link: "/plugins/#echarts" }, 49 | { text: "FusionCharts", link: "/plugins/#fusioncharts" }, 50 | { text: "Highcharts", link: "/plugins/#highcharts" } 51 | ] 52 | }, 53 | { 54 | text: "Examples", 55 | items: [{ text: "Green", link: "/examples/#green" }] 56 | }, 57 | { 58 | text: "Vuetify Examples", 59 | items: [ 60 | { 61 | text: "Basic", 62 | link: "https://vue-responsive-dash-vuetify.netlify.com/#/" 63 | }, 64 | { 65 | text: "Epic-Spinners", 66 | link: 67 | "https://vue-responsive-dash-vuetify.netlify.com/#/EpicSpinners" 68 | }, 69 | { 70 | text: "Chartjs", 71 | link: "https://vue-responsive-dash-vuetify.netlify.com/#/Chartjs" 72 | }, 73 | { 74 | text: "Echarts", 75 | link: "https://vue-responsive-dash-vuetify.netlify.com/#/Echarts" 76 | } 77 | ] 78 | } 79 | ] 80 | }, 81 | plugins: ["@vuepress/last-updated", "vuepress-plugin-typescript"] 82 | }; 83 | -------------------------------------------------------------------------------- /examples/vuetify/src/views/EpicSpinners.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 100 | -------------------------------------------------------------------------------- /plugins/packages/echarts/src/App.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/5.55c064ea.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{324:function(t,i,h){},376:function(t,i,h){"use strict";var e=h(324);h.n(e).a},394:function(t,i,h){"use strict";h.r(i);h(10);var e={data:function(){return{Dashboard:null,DashLayout:null,DashItem:null,dlayouts:[{breakpoint:"xl",numberOfCols:12,items:[{id:"1",x:0,y:0,width:1,height:1},{id:"2",x:1,y:0,width:2,height:1},{id:"3",x:0,y:1,width:2,height:1},{id:"4",x:3,y:0,width:2,height:2},{id:"5",x:5,y:0,width:1,height:2},{id:"6",x:6,y:0,width:2,height:1},{id:"7",x:7,y:1,width:5,height:1}]},{breakpoint:"lg",breakpointWidth:1200,numberOfCols:10,items:[{id:"1",x:0,y:0,width:1,height:1},{id:"2",x:1,y:0,width:2,height:1},{id:"3",x:0,y:1,width:2,height:1},{id:"4",x:3,y:0,width:2,height:2},{id:"5",x:5,y:0,width:1,height:2},{id:"6",x:6,y:0,width:2,height:1},{id:"7",x:7,y:1,width:3,height:1}]},{breakpoint:"md",breakpointWidth:996,numberOfCols:8,items:[{id:"1",x:0,y:0,width:1,height:1},{id:"2",x:1,y:0,width:2,height:1},{id:"3",x:0,y:1,width:2,height:1},{id:"4",x:3,y:0,width:2,height:2},{id:"5",x:5,y:0,width:1,height:2},{id:"6",x:6,y:0,width:2,height:1},{id:"7",x:7,y:1,width:1,height:1}]},{breakpoint:"sm",breakpointWidth:768,numberOfCols:4,items:[{id:"1",x:0,y:0,width:1,height:1},{id:"2",x:1,y:0,width:2,height:1},{id:"3",x:0,y:1,width:2,height:1},{id:"4",x:3,y:0,width:1,height:2},{id:"5",x:2,y:1,width:1,height:1}]},{breakpoint:"xs",breakpointWidth:480,numberOfCols:2,items:[{id:"1",x:0,y:0,width:1,height:1},{id:"2",x:1,y:0,width:1,height:1},{id:"3",x:0,y:1,width:2,height:1}]},{breakpoint:"xxs",breakpointWidth:0,numberOfCols:1,items:[{id:"1",x:0,y:0,width:1,height:1},{id:"2",x:0,y:1,width:1,height:1}]}]}},mounted:function(){var t=this;Promise.all([h.e(0),h.e(3),h.e(4)]).then(h.bind(null,392)).then((function(i){t.Dashboard=i.Dashboard,t.DashLayout=i.DashLayout,t.DashItem=i.DashItem}))},beforeDestroy:function(){this.Dashboard=null,this.DashLayout=null,this.DashItem=null}},d=(h(376),h(41)),a=Object(d.a)(e,(function(){var t=this,i=t.$createElement,h=t._self._c||i;return t.Dashboard&&t.DashLayout&&t.DashItem?h("div",[h("dashboard",{attrs:{id:"dashExample"}},t._l(t.dlayouts,(function(i){return h("Dash-Layout",t._b({key:i.breakpoint},"Dash-Layout",i,!1),t._l(i.items,(function(i){return h("Dash-Item",t._b({key:i.id,scopedSlots:t._u([{key:"resizeBottomRight",fn:function(){return[h("svg",{staticClass:"b-icon bi bi-arrow-down-right mx-auto",attrs:{width:"1em",height:"1em",viewBox:"0 0 30 30",focusable:"false",role:"img",alt:"icon",xmlns:"http://www.w3.org/2000/svg",fill:"#42b983","data-v-11c9e491":""}},[h("g",{attrs:{"data-v-11c9e491":""}},[h("path",{attrs:{"fill-rule":"evenodd",d:"M14 9.5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5H9a.5.5 0 010-1h4.5V10a.5.5 0 01.5-.5z","clip-rule":"evenodd"}}),h("path",{attrs:{"fill-rule":"evenodd",d:"M4.646 5.646a.5.5 0 01.708 0l9 9a.5.5 0 01-.708.708l-9-9a.5.5 0 010-.708z","clip-rule":"evenodd"}})])])]},proxy:!0}],null,!0)},"Dash-Item",i,!1,!0),[h("div",{staticClass:"content"})])})),1)})),1)],1):t._e()}),[],!1,null,null,null);i.default=a.exports}}]); -------------------------------------------------------------------------------- /plugins/packages/fusioncharts/dist/fusioncharts.umd.min.js: -------------------------------------------------------------------------------- 1 | (function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue")):"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["fusioncharts"]=t(require("vue")):e["fusioncharts"]=t(e["Vue"])})("undefined"!==typeof self?self:this,(function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s="1c25")}({"1c25":function(e,t,r){"use strict";var n;(r.r(t),r.d(t,"FusionChart",(function(){return p})),"undefined"!==typeof window)&&(r("4141"),(n=window.document.currentScript)&&(n=n.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(r.p=n[1]));var o=r("8bbf"),i=r.n(o),u=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("fusioncharts",{attrs:{type:e.type,width:e.width,height:e.height,dataFormat:e.dataFormat,dataSource:e.dataSource}})},c=[],a={inject:["$item"],props:["type","dataFormat","dataSource"],computed:{item(){return this.$item()},width(){return this.item.widthPx},height(){return this.item.heightPx}}},s=a;function f(e,t,r,n,o,i,u,c){var a,s="function"===typeof e?e.options:e;if(t&&(s.render=t,s.staticRenderFns=r,s._compiled=!0),n&&(s.functional=!0),i&&(s._scopeId="data-v-"+i),u?(a=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(u)},s._ssrRegister=a):o&&(a=c?function(){o.call(this,this.$root.$options.shadowRoot)}:o),a)if(s.functional){s._injectStyles=a;var f=s.render;s.render=function(e,t){return a.call(t),f(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,a):[a]}return{exports:e,options:s}}var d=f(s,u,c,!1,null,null,null),p=d.exports;const l={FusionChart:p};Object.keys(l).forEach(e=>{i.a.component(e,l[e])});var h=l;t["default"]=h},4141:function(e,t){(function(e){var t="currentScript",r=e.getElementsByTagName("script");t in e||Object.defineProperty(e,t,{get:function(){try{throw new Error}catch(n){var e,t=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(n.stack)||[!1])[1];for(e in r)if(r[e].src==t||"interactive"==r[e].readyState)return r[e];return null}}})})(document)},"8bbf":function(t,r){t.exports=e}})})); 2 | //# sourceMappingURL=fusioncharts.umd.min.js.map -------------------------------------------------------------------------------- /examples/bootstrap-vue/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 88 | 89 | 97 | 98 | 99 | 115 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/RandomSpinner.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 97 | -------------------------------------------------------------------------------- /plugins/packages/epic-spinners/src/components/index.js: -------------------------------------------------------------------------------- 1 | import HollowDotsSpinner from "./HollowDotsSpinner.vue"; 2 | import PixelSpinner from "./PixelSpinner.vue"; 3 | import FlowerSpinner from "./FlowerSpinner.vue"; 4 | import IntersectingCirclesSpinner from "./IntersectingCirclesSpinner.vue"; 5 | import OrbitSpinner from "./OrbitSpinner.vue"; 6 | import FingerprintSpinner from "./FingerprintSpinner.vue"; 7 | import TrinityRingsSpinner from "./TrinityRingsSpinner.vue"; 8 | import FulfillingSquareSpinner from "./FulfillingSquareSpinner.vue"; 9 | import CirclesToRhombusesSpinner from "./CirclesToRhombusesSpinner.vue"; 10 | import SemipolarSpinner from "./SemipolarSpinner.vue"; 11 | import BreedingRhombusSpinner from "./BreedingRhombusSpinner.vue"; 12 | import SwappingSquaresSpinner from "./SwappingSquaresSpinner.vue"; 13 | import ScalingSquaresSpinner from "./ScalingSquaresSpinner.vue"; 14 | import FulfillingBouncingCircleSpinner from "./FulfillingBouncingCircleSpinner.vue"; 15 | import RadarSpinner from "./RadarSpinner.vue"; 16 | import SelfBuildingSquareSpinner from "./SelfBuildingSquareSpinner.vue"; 17 | import SpringSpinner from "./SpringSpinner.vue"; 18 | import LoopingRhombusesSpinner from "./LoopingRhombusesSpinner.vue"; 19 | import HalfCircleSpinner from "./HalfCircleSpinner.vue"; 20 | import AtomSpinner from "./AtomSpinner.vue"; 21 | 22 | import RandomSpinner from "./RandomSpinner"; 23 | 24 | const VueResponsiveDashEpicSpinners = { 25 | HollowDotsSpinner, 26 | PixelSpinner, 27 | FlowerSpinner, 28 | IntersectingCirclesSpinner, 29 | OrbitSpinner, 30 | FingerprintSpinner, 31 | TrinityRingsSpinner, 32 | FulfillingSquareSpinner, 33 | CirclesToRhombusesSpinner, 34 | SemipolarSpinner, 35 | BreedingRhombusSpinner, 36 | SwappingSquaresSpinner, 37 | ScalingSquaresSpinner, 38 | FulfillingBouncingCircleSpinner, 39 | RadarSpinner, 40 | SelfBuildingSquareSpinner, 41 | SpringSpinner, 42 | LoopingRhombusesSpinner, 43 | HalfCircleSpinner, 44 | AtomSpinner, 45 | RandomSpinner, 46 | }; 47 | // Declare install function executed by Vue.use() 48 | export function install(Vue) { 49 | if (install.installed) return; 50 | install.installed = true; 51 | Object.keys(VueResponsiveDashEpicSpinners).forEach((name) => { 52 | Vue.component(name, VueResponsiveDashEpicSpinners[name]); 53 | }); 54 | } 55 | 56 | // Create module definition for Vue.use() 57 | const plugin = { 58 | install, 59 | }; 60 | 61 | // Auto-install when vue is found (eg. in browser via 142 | -------------------------------------------------------------------------------- /docs/guide/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar: auto 3 | --- 4 | 5 | # Guide 6 | 7 | ## Getting Started 8 | 9 | ## Setup 10 | 11 | ```sh 12 | $ npm install vue-responsive-dash 13 | ``` 14 | 15 | ## How to use with Vue 16 | 17 | ```vue 18 | 29 | 30 | 107 | 108 | 116 | ``` 117 | 118 | ### Grid Item Child Component 119 | 120 | [![Edit Vue Template](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/vue-responsive-dash-idttk) 121 | 122 | See example above. The Grid Item object can be passed to the child component via props or injection. Typically the child component will look at the grid Item ID (which is unique) and decide what to render via a data/computed variable or VUEX. 123 | 124 | ## Support 125 | Please give a ⭐️ if this project helped you! 126 | 127 | ## Contributing 128 | 129 | If you have any questions or requests or want to contribute to `vue-responsive-dash` or other packages, please write the [issue](https://github.com/bensladden/vue-responsive-dash/issues) or give me a Pull Request freely. 130 | 131 | ## Bug Report 132 | 133 | If you find a bug, please report to us opening a new [Issue](https://github.com/bensladden/vue-responsive-dash/issues) on GitHub. 134 | -------------------------------------------------------------------------------- /plugins/packages/common/dataItems.js: -------------------------------------------------------------------------------- 1 | let layouts = [ 2 | { 3 | breakpoint: "xl", 4 | numberOfCols: 12, 5 | items: [ 6 | { 7 | id: "1", 8 | x: 0, 9 | y: 0, 10 | width: 1, 11 | height: 1 12 | } 13 | ] 14 | }, 15 | { 16 | breakpoint: "lg", 17 | breakpointWidth: 1200, 18 | numberOfCols: 10, 19 | items: [ 20 | { 21 | id: "1", 22 | x: 0, 23 | y: 0, 24 | width: 1, 25 | height: 1 26 | } 27 | ] 28 | }, 29 | { 30 | breakpoint: "md", 31 | breakpointWidth: 996, 32 | numberOfCols: 8, 33 | items: [ 34 | { 35 | id: "1", 36 | x: 0, 37 | y: 0, 38 | width: 1, 39 | height: 1 40 | } 41 | ] 42 | }, 43 | { 44 | breakpoint: "sm", 45 | breakpointWidth: 768, 46 | numberOfCols: 4, 47 | items: [ 48 | { 49 | id: "1", 50 | x: 0, 51 | y: 0, 52 | width: 1, 53 | height: 1 54 | } 55 | ] 56 | }, 57 | { 58 | breakpoint: "xs", 59 | breakpointWidth: 480, 60 | numberOfCols: 2, 61 | items: [ 62 | { 63 | id: "1", 64 | x: 0, 65 | y: 0, 66 | width: 1, 67 | height: 1 68 | } 69 | ] 70 | }, 71 | { 72 | breakpoint: "xxs", 73 | breakpointWidth: 0, 74 | numberOfCols: 1, 75 | items: [ 76 | { 77 | id: "1", 78 | x: 0, 79 | y: 0, 80 | width: 1, 81 | height: 1 82 | } 83 | ] 84 | } 85 | ]; 86 | let largeLayouts = [ 87 | { 88 | breakpoint: "xl", 89 | numberOfCols: 12, 90 | items: [ 91 | { 92 | id: "1", 93 | x: 0, 94 | y: 0, 95 | width: 1, 96 | height: 1 97 | }, 98 | { id: "2", x: 1, y: 0, width: 2, height: 1 }, 99 | { id: "3", x: 0, y: 1, width: 2, height: 1 }, 100 | { id: "4", x: 3, y: 0, width: 2, height: 2 }, 101 | { id: "5", x: 5, y: 0, width: 1, height: 2 }, 102 | { id: "6", x: 6, y: 0, width: 2, height: 1 }, 103 | { id: "7", x: 7, y: 1, width: 5, height: 2 }, 104 | { id: "8", x: 0, y: 3, width: 2, height: 2 }, 105 | { id: "9", x: 2, y: 3, width: 2, height: 2 } 106 | ] 107 | }, 108 | { 109 | breakpoint: "lg", 110 | breakpointWidth: 1200, 111 | numberOfCols: 10, 112 | items: [ 113 | { id: "1", x: 0, y: 0, width: 2, height: 2 }, 114 | { id: "2", x: 2, y: 0, width: 2, height: 2 }, 115 | { id: "3", x: 4, y: 0, width: 2, height: 2 }, 116 | { id: "4", x: 6, y: 0, width: 2, height: 2 }, 117 | { id: "5", x: 8, y: 0, width: 2, height: 2 }, 118 | { id: "6", x: 0, y: 2, width: 2, height: 2 }, 119 | { id: "7", x: 2, y: 2, width: 2, height: 2 }, 120 | { id: "8", x: 4, y: 2, width: 2, height: 2 }, 121 | { id: "9", x: 6, y: 2, width: 2, height: 2 } 122 | ] 123 | }, 124 | { 125 | breakpoint: "md", 126 | breakpointWidth: 996, 127 | numberOfCols: 8, 128 | items: [ 129 | { id: "1", x: 0, y: 0, width: 2, height: 2 }, 130 | { id: "2", x: 2, y: 0, width: 2, height: 2 }, 131 | { id: "3", x: 4, y: 0, width: 2, height: 2 }, 132 | { id: "4", x: 6, y: 0, width: 2, height: 2 }, 133 | { id: "5", x: 0, y: 2, width: 2, height: 2 }, 134 | { id: "6", x: 2, y: 2, width: 2, height: 2 }, 135 | { id: "7", x: 4, y: 2, width: 2, height: 2 }, 136 | { id: "8", x: 6, y: 2, width: 2, height: 2 }, 137 | { id: "9", x: 0, y: 4, width: 2, height: 2 } 138 | ] 139 | }, 140 | { 141 | breakpoint: "sm", 142 | breakpointWidth: 768, 143 | numberOfCols: 4, 144 | items: [ 145 | { id: "1", x: 0, y: 0, width: 1, height: 1 }, 146 | { id: "2", x: 1, y: 0, width: 1, height: 1 }, 147 | { id: "3", x: 2, y: 0, width: 1, height: 1 }, 148 | { id: "4", x: 3, y: 0, width: 1, height: 1 }, 149 | { id: "5", x: 0, y: 1, width: 1, height: 1 } 150 | ] 151 | }, 152 | { 153 | breakpoint: "xs", 154 | breakpointWidth: 480, 155 | numberOfCols: 2, 156 | items: [ 157 | { id: "1", x: 0, y: 0, width: 1, height: 1 }, 158 | { id: "2", x: 1, y: 0, width: 1, height: 1 }, 159 | { id: "3", x: 0, y: 1, width: 2, height: 1 } 160 | ] 161 | }, 162 | { 163 | breakpoint: "xxs", 164 | breakpointWidth: 0, 165 | numberOfCols: 1, 166 | items: [ 167 | { id: "1", x: 0, y: 0, width: 1, height: 1 }, 168 | { id: "2", x: 0, y: 1, width: 1, height: 1 } 169 | ] 170 | } 171 | ]; 172 | export { layouts, largeLayouts }; 173 | -------------------------------------------------------------------------------- /plugins/packages/basicItems/src/components/layoutExamples.js: -------------------------------------------------------------------------------- 1 | let layouts = [ 2 | { 3 | breakpoint: "xl", 4 | numberOfCols: 12, 5 | items: [ 6 | { 7 | id: "1", 8 | x: 0, 9 | y: 0, 10 | width: 1, 11 | height: 1 12 | } 13 | ] 14 | }, 15 | { 16 | breakpoint: "lg", 17 | breakpointWidth: 1200, 18 | numberOfCols: 10, 19 | items: [ 20 | { 21 | id: "1", 22 | x: 0, 23 | y: 0, 24 | width: 1, 25 | height: 1 26 | } 27 | ] 28 | }, 29 | { 30 | breakpoint: "md", 31 | breakpointWidth: 996, 32 | numberOfCols: 8, 33 | items: [ 34 | { 35 | id: "1", 36 | x: 0, 37 | y: 0, 38 | width: 1, 39 | height: 1 40 | } 41 | ] 42 | }, 43 | { 44 | breakpoint: "sm", 45 | breakpointWidth: 768, 46 | numberOfCols: 4, 47 | items: [ 48 | { 49 | id: "1", 50 | x: 0, 51 | y: 0, 52 | width: 1, 53 | height: 1 54 | } 55 | ] 56 | }, 57 | { 58 | breakpoint: "xs", 59 | breakpointWidth: 480, 60 | numberOfCols: 2, 61 | items: [ 62 | { 63 | id: "1", 64 | x: 0, 65 | y: 0, 66 | width: 1, 67 | height: 1 68 | } 69 | ] 70 | }, 71 | { 72 | breakpoint: "xxs", 73 | breakpointWidth: 0, 74 | numberOfCols: 1, 75 | items: [ 76 | { 77 | id: "1", 78 | x: 0, 79 | y: 0, 80 | width: 1, 81 | height: 1 82 | } 83 | ] 84 | } 85 | ]; 86 | let largeLayouts = [ 87 | { 88 | breakpoint: "xl", 89 | numberOfCols: 12, 90 | items: [ 91 | { 92 | id: "1", 93 | x: 0, 94 | y: 0, 95 | width: 1, 96 | height: 1 97 | }, 98 | { id: "2", x: 1, y: 0, width: 2, height: 1 }, 99 | { id: "3", x: 0, y: 1, width: 2, height: 1 }, 100 | { id: "4", x: 3, y: 0, width: 2, height: 2 }, 101 | { id: "5", x: 5, y: 0, width: 1, height: 2 }, 102 | { id: "6", x: 6, y: 0, width: 2, height: 1 }, 103 | { id: "7", x: 7, y: 1, width: 5, height: 2 }, 104 | { id: "8", x: 0, y: 3, width: 2, height: 2 }, 105 | { id: "9", x: 2, y: 3, width: 2, height: 2 } 106 | ] 107 | }, 108 | { 109 | breakpoint: "lg", 110 | breakpointWidth: 1200, 111 | numberOfCols: 10, 112 | items: [ 113 | { 114 | id: "1", 115 | x: 0, 116 | y: 0, 117 | width: 1, 118 | height: 1 119 | }, 120 | { id: "2", x: 1, y: 0, width: 2, height: 1 }, 121 | { id: "3", x: 0, y: 1, width: 2, height: 1 }, 122 | { id: "4", x: 3, y: 0, width: 2, height: 2 }, 123 | { id: "5", x: 5, y: 0, width: 1, height: 2 }, 124 | { id: "6", x: 6, y: 0, width: 2, height: 1 }, 125 | { id: "7", x: 7, y: 1, width: 3, height: 2 }, 126 | { id: "8", x: 0, y: 3, width: 2, height: 2 }, 127 | { id: "9", x: 2, y: 3, width: 2, height: 2 } 128 | ] 129 | }, 130 | { 131 | breakpoint: "md", 132 | breakpointWidth: 996, 133 | numberOfCols: 8, 134 | items: [ 135 | { 136 | id: "1", 137 | x: 0, 138 | y: 0, 139 | width: 1, 140 | height: 1 141 | }, 142 | { id: "2", x: 1, y: 0, width: 2, height: 1 }, 143 | { id: "3", x: 0, y: 1, width: 2, height: 1 }, 144 | { id: "4", x: 3, y: 0, width: 2, height: 2 }, 145 | { id: "5", x: 5, y: 0, width: 1, height: 2 }, 146 | { id: "6", x: 6, y: 0, width: 2, height: 1 }, 147 | { id: "7", x: 7, y: 1, width: 2, height: 2 }, 148 | { id: "8", x: 0, y: 3, width: 2, height: 2 }, 149 | { id: "9", x: 2, y: 3, width: 2, height: 2 } 150 | ] 151 | }, 152 | { 153 | breakpoint: "sm", 154 | breakpointWidth: 768, 155 | numberOfCols: 4, 156 | items: [ 157 | { 158 | id: "1", 159 | x: 0, 160 | y: 0, 161 | width: 1, 162 | height: 1 163 | }, 164 | { id: "2", x: 1, y: 0, width: 2, height: 1 }, 165 | { id: "3", x: 0, y: 1, width: 2, height: 1 }, 166 | { id: "4", x: 3, y: 0, width: 1, height: 2 }, 167 | { id: "5", x: 2, y: 1, width: 1, height: 1 } 168 | ] 169 | }, 170 | { 171 | breakpoint: "xs", 172 | breakpointWidth: 480, 173 | numberOfCols: 2, 174 | items: [ 175 | { 176 | id: "1", 177 | x: 0, 178 | y: 0, 179 | width: 1, 180 | height: 1 181 | }, 182 | { id: "2", x: 1, y: 0, width: 1, height: 1 }, 183 | { id: "3", x: 0, y: 1, width: 2, height: 1 } 184 | ] 185 | }, 186 | { 187 | breakpoint: "xxs", 188 | breakpointWidth: 0, 189 | numberOfCols: 1, 190 | items: [ 191 | { 192 | id: "1", 193 | x: 0, 194 | y: 0, 195 | width: 1, 196 | height: 1 197 | }, 198 | { id: "2", x: 0, y: 1, width: 1, height: 1 } 199 | ] 200 | } 201 | ]; 202 | export { layouts, largeLayouts }; 203 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-responsive-dash 2 | 3 | A Responsive, Draggable & Resizable Dashboard (grid) made with vue and typescript. 4 | Inspired by React-Grid-Layout & Vue-Grid-Layout 5 | 6 |

7 | netlify 8 | deps 9 | code-size 10 | repo-size 11 | open-issues 12 | pull-req 13 | lic 14 | npm 15 |

16 | 17 | 18 | Example: [![Edit Vue Template](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/vue-responsive-dash-eggbc?fontsize=14&hidenavigation=1&theme=dark) 19 | 20 | ## ⚙️ Installation 21 | ```sh 22 | $ npm install vue-responsive-dash 23 | ``` 24 | ## 📄 Documents 25 | [Link](https://vue-responsive-dash.netlify.com/) 26 | 27 | ## 🚀 How to use in Vue 28 | 29 | ```vue 30 | 41 | 42 | 119 | 120 | 128 | 129 | 130 | ``` 131 | 132 | ### Grid Item Child Component 133 | 134 | [![Edit Vue Template](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/vue-responsive-dash-idttk) 135 | 136 | See example above. The Grid Item object can be passed to the child component via props or injection. Typically the child component will look at the grid Item ID (which is unique) and decide what to render via a data/computed variable/s or VUEX. 137 | 138 | See Example/Docs Website for more information. 139 | 140 | ## ⭐️ Show Your Support 141 | Please give a ⭐️ if this project helped you! 142 | 143 | 144 | ## 👏 Contributing 145 | 146 | If you have any questions or requests or want to contribute to `vue-responsive-dash` or other packages, please write the [issue](https://github.com/bensladden/vue-responsive-dash/issues) or give me a Pull Request freely. 147 | 148 | ## 🐞 Bug Report 149 | 150 | If you find a bug, please report to us opening a new [Issue](https://github.com/bensladden/vue-responsive-dash/issues) on GitHub. 151 | 152 | ## ⚙️ Development 153 | ### `npm run serve` 154 | 155 | Runs the app in the development mode.
156 | Open [http://localhost:8080](http://localhost:8080) to view it in the browser. 157 | 158 | The page will reload if you make edits.
159 | You will also see any lint errors in the console. --------------------------------------------------------------------------------