diff --git a/.gitignore b/.gitignore index bc93dbb2..c6e15ec8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ selenium-debug.log test/unit/coverage test/e2e/reports es/ +docs/.vuepress/dist diff --git a/deploy-docs.sh b/deploy-docs.sh index 6f989bfe..90fd6c05 100644 --- a/deploy-docs.sh +++ b/deploy-docs.sh @@ -10,4 +10,11 @@ cd docs/.vuepress/dist # if you are deploying to a custom domain echo 'vue-chartjs.org' > CNAME -touch .nojekyll + +git init +git add -A +git commit -m 'docs: Deploy docs' + +git push -f git@github.com:apertureless/vue-chartjs.git master:gh-pages + +cd - diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index e591c1ea..b55b2cc0 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -12,7 +12,7 @@ module.exports = { editLinkText: 'Help us improve this page!', docsDir: 'docs', docsBranch: 'master', - base: '/vue-chartjs/', + serviceWorker: true, locales: { '/': { selectText: 'Languages', diff --git a/docs/.vuepress/dist/.nojekyll b/docs/.vuepress/dist/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/.vuepress/dist/404.html b/docs/.vuepress/dist/404.html deleted file mode 100644 index b3dc451e..00000000 --- a/docs/.vuepress/dist/404.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -

404

Looks like we've got some broken links.
Take me home.
- - - diff --git a/docs/.vuepress/dist/CNAME b/docs/.vuepress/dist/CNAME deleted file mode 100644 index 4aafea50..00000000 --- a/docs/.vuepress/dist/CNAME +++ /dev/null @@ -1 +0,0 @@ -vue-chartjs.org diff --git a/docs/.vuepress/dist/api/index.html b/docs/.vuepress/dist/api/index.html deleted file mode 100644 index daf85464..00000000 --- a/docs/.vuepress/dist/api/index.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - Coding Reference | 📈 vue-chartjs - - - - - - - -

Coding Reference

Props

There are some basic props defined in the components provided by vue-chartjs. Because you extend them, they are invisible, but you can overwrite them:

Prop Description
width chart width
height chart height
chart-id id of the canvas
css-classes String with css classes for the surrounding div
styles Object with css styles for the surrounding div container
plugins Array with chartjs plugins

Events

If the reactiveData or reactiveProp mixin is attached, following events will be emitted:

Event Description
chart:render if the mixin performs a complete rerender
chart:destroy if the mixin deletes the chart object instance
chart:update if the mixin performs an update instead of a re-render
labels:update if new labels were set
xlabels:update if new xLabels were set
ylabels:update if new yLabels were set

Global Methods

Global Methods need to be imported.

generateChart

  • Type: Function
  • Arguments: chart-id, chart-type
  • Usage:
import { generateChart } from 'vue-chartjs'
-// First argument is the chart-id, second the chart type.
-const CustomLine = generateChart('custom-line', 'LineWithLine')
-

Instance Methods

Instance methods can be used inside your chart component.

generateLegend()

Helper function to generate a HTML legend.

  • Type: Function
  • Arguments: none
  • Usage:










 




import { Line } from 'vue-chartjs'
-
-export default {
-  extends: Line,
-  props: ['datasets', 'options']
-  data: () => ({
-    htmlLegend: null
-  })
-  mounted () {
-    this.renderChart(this.datasets, this.options)
-    this.htmlLegend = this.generateLegend()
-  }
-}
-
-

addPlugin

In Chart.js you can define global and inline plugins. Global plugins are working without problems with vue-chartjs like in the Chart.js docs described.

If you want to add inline plugins, vue-chartjs exposes a helper method called addPlugin() -You should call addPlugin() before the renderChart() method.

  • Type: Function
  • Arguments: Array of Plugins
  • Usage:
mounted () {
-  this.addPlugin({
-    id: 'my-plugin',
-    beforeInit: function (chart) {
-      ....
-    }
-  })
-}
-

renderChart()

Creates a Chart.js instance and renders the chart.

  • Type: Function
  • Arguments: Chart Data, Chart Options
  • Usage:
mounted () {
-  this.renderChart({
-    labels: ['January', 'February'],
-    datasets: [
-      {
-        label: 'Data One',
-        backgroundColor: '#f87979',
-        data: [40, 20]
-      }
-    ]},
-    {
-      responsive: true
-    }
-  )
-}
-

Chart.js Object

You can access the Chart.js object inside your chart component with this.$data._chart

Canvas

You can access the canvas with this.$refs.canvas

- - - diff --git a/docs/.vuepress/dist/assets/css/1.styles.3ac4ce2d.css b/docs/.vuepress/dist/assets/css/1.styles.3ac4ce2d.css deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/.vuepress/dist/assets/css/2.styles.8f5c8e96.css b/docs/.vuepress/dist/assets/css/2.styles.8f5c8e96.css deleted file mode 100644 index 4cbd7d26..00000000 --- a/docs/.vuepress/dist/assets/css/2.styles.8f5c8e96.css +++ /dev/null @@ -1 +0,0 @@ -.badge[data-v-099ab69c]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;margin-right:5px;background-color:#42b983}.badge.middle[data-v-099ab69c]{vertical-align:middle}.badge.top[data-v-099ab69c]{vertical-align:top}.badge.green[data-v-099ab69c],.badge.tip[data-v-099ab69c]{background-color:#42b983}.badge.error[data-v-099ab69c]{background-color:#da5961}.badge.warn[data-v-099ab69c],.badge.warning[data-v-099ab69c],.badge.yellow[data-v-099ab69c]{background-color:#e7c000} \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/css/styles.698fecae.css b/docs/.vuepress/dist/assets/css/styles.698fecae.css deleted file mode 100644 index 9d2ca394..00000000 --- a/docs/.vuepress/dist/assets/css/styles.698fecae.css +++ /dev/null @@ -1 +0,0 @@ -.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto}.home .hero{text-align:center}.home .hero img{max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3eaf7c;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70}.home .hero .action-button:hover{background-color:#4abf8a}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3a5169}.home .feature p{color:#4e6e8e}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#4e6e8e}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.sidebar-button{display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#3eaf7c}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:1.5rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#3eaf7c}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid #ddd;border-bottom-color:#ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #46bd87}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem;position:relative}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}.navbar .links .nav-links{flex:1}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}}.page-edit,.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit,.page-nav{padding:2rem}}@media (max-width:419px){.page-edit,.page-nav{padding:1.5rem}}.page{padding-bottom:2rem}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#aaa}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#3eaf7c}a.sidebar-link.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar-group:not(.first){margin-top:1em}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading{cursor:auto;color:inherit}.sidebar-heading{color:#999;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:0 1.5rem;margin-top:0;margin-bottom:.5rem}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading:.open .arrow{top:-.18em}.sidebar-group-items{transition:height .1s ease-out;overflow:hidden}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem 0}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar .sidebar-links{padding:1.5rem 0}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar .sidebar-links{padding:1rem 0}}.sw-update-popup{position:fixed;right:1em;bottom:1em;padding:1em;border:1px solid #3eaf7c;border-radius:3px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.5);text-align:center}.sw-update-popup button{margin-top:.5em;padding:.25em 2em}.sw-update-popup-enter-active,.sw-update-popup-leave-active{transition:opacity .3s,transform .3s}.sw-update-popup-enter,.sw-update-popup-leave-to{opacity:0;transform:translateY(50%) scale(.5)}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}#nprogress{pointer-events:none}#nprogress .bar{background:#3eaf7c;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3eaf7c,0 0 5px #3eaf7c;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#3eaf7c;border-left-color:#3eaf7c;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.content pre,.content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.content pre[class*=language-] code,.content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number,div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.content:not(.custom){padding:2rem}}@media (max-width:419px){.content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:15px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.content:not(.custom)>:first-child{margin-top:3.6rem}.content:not(.custom) a:hover{text-decoration:underline}.content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.content:not(.custom) img{max-width:100%}.content.custom{padding:0;margin:0}.content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1.2rem;color:#999;border-left:.25rem solid #dfe2e5;margin-left:0;padding-left:1rem}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.content:not(.custom)>h1,.content:not(.custom)>h2,.content:not(.custom)>h3,.content:not(.custom)>h4,.content:not(.custom)>h5,.content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.content:not(.custom)>h1:first-child,.content:not(.custom)>h2:first-child,.content:not(.custom)>h3:first-child,.content:not(.custom)>h4:first-child,.content:not(.custom)>h5:first-child,.content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.content:not(.custom)>h1:first-child+.custom-block,.content:not(.custom)>h1:first-child+p,.content:not(.custom)>h1:first-child+pre,.content:not(.custom)>h2:first-child+.custom-block,.content:not(.custom)>h2:first-child+p,.content:not(.custom)>h2:first-child+pre,.content:not(.custom)>h3:first-child+.custom-block,.content:not(.custom)>h3:first-child+p,.content:not(.custom)>h3:first-child+pre,.content:not(.custom)>h4:first-child+.custom-block,.content:not(.custom)>h4:first-child+p,.content:not(.custom)>h4:first-child+pre,.content:not(.custom)>h5:first-child+.custom-block,.content:not(.custom)>h5:first-child+p,.content:not(.custom)>h5:first-child+pre,.content:not(.custom)>h6:first-child+.custom-block,.content:not(.custom)>h6:first-child+p,.content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.custom-layout{padding-top:3.6rem}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}.theme-container.no-navbar .custom-layout{padding-top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.icon.outbound{color:#aaa;display:inline-block} \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/img/search.83621669.svg b/docs/.vuepress/dist/assets/img/search.83621669.svg deleted file mode 100644 index 03d83913..00000000 --- a/docs/.vuepress/dist/assets/img/search.83621669.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/.vuepress/dist/assets/js/1.3ac4ce2d.js b/docs/.vuepress/dist/assets/js/1.3ac4ce2d.js deleted file mode 100644 index 10068202..00000000 --- a/docs/.vuepress/dist/assets/js/1.3ac4ce2d.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{144:function(n,w,o){}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/10.b27c2bcc.js b/docs/.vuepress/dist/assets/js/10.b27c2bcc.js deleted file mode 100644 index 75c22d0d..00000000 --- a/docs/.vuepress/dist/assets/js/10.b27c2bcc.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{145:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/11.49ff9f4e.js b/docs/.vuepress/dist/assets/js/11.49ff9f4e.js deleted file mode 100644 index 6c3545be..00000000 --- a/docs/.vuepress/dist/assets/js/11.49ff9f4e.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{150:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/12.01d63eaa.js b/docs/.vuepress/dist/assets/js/12.01d63eaa.js deleted file mode 100644 index 84ab42a0..00000000 --- a/docs/.vuepress/dist/assets/js/12.01d63eaa.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{149:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/13.ebea3386.js b/docs/.vuepress/dist/assets/js/13.ebea3386.js deleted file mode 100644 index b8394874..00000000 --- a/docs/.vuepress/dist/assets/js/13.ebea3386.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{148:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/14.94612b70.js b/docs/.vuepress/dist/assets/js/14.94612b70.js deleted file mode 100644 index f06fbe85..00000000 --- a/docs/.vuepress/dist/assets/js/14.94612b70.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{147:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/15.fd4516df.js b/docs/.vuepress/dist/assets/js/15.fd4516df.js deleted file mode 100644 index d0e852dd..00000000 --- a/docs/.vuepress/dist/assets/js/15.fd4516df.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{146:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/16.9ae1da91.js b/docs/.vuepress/dist/assets/js/16.9ae1da91.js deleted file mode 100644 index c7f2c7e7..00000000 --- a/docs/.vuepress/dist/assets/js/16.9ae1da91.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{165:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/17.546d6885.js b/docs/.vuepress/dist/assets/js/17.546d6885.js deleted file mode 100644 index 2c7ebf19..00000000 --- a/docs/.vuepress/dist/assets/js/17.546d6885.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{164:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/18.26f4f9eb.js b/docs/.vuepress/dist/assets/js/18.26f4f9eb.js deleted file mode 100644 index 5a376192..00000000 --- a/docs/.vuepress/dist/assets/js/18.26f4f9eb.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{163:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/19.4100c56d.js b/docs/.vuepress/dist/assets/js/19.4100c56d.js deleted file mode 100644 index 3773d11e..00000000 --- a/docs/.vuepress/dist/assets/js/19.4100c56d.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{162:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/2.8f5c8e96.js b/docs/.vuepress/dist/assets/js/2.8f5c8e96.js deleted file mode 100644 index 05a71591..00000000 --- a/docs/.vuepress/dist/assets/js/2.8f5c8e96.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{142:function(t,e,n){},143:function(t,e,n){"use strict";var a=n(142);n.n(a).a},155:function(t,e,n){"use strict";n.r(e);var a={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,a=e.slots;return t("span",{class:["badge",n.type,n.vertical]},n.text||a().default)}},i=(n(143),n(0)),o=Object(i.a)(a,void 0,void 0,!1,null,"099ab69c",null);o.options.__file="Badge.vue";e.default=o.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/20.8a5c8025.js b/docs/.vuepress/dist/assets/js/20.8a5c8025.js deleted file mode 100644 index 6beb029f..00000000 --- a/docs/.vuepress/dist/assets/js/20.8a5c8025.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{161:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/21.e2afe677.js b/docs/.vuepress/dist/assets/js/21.e2afe677.js deleted file mode 100644 index 117f6d16..00000000 --- a/docs/.vuepress/dist/assets/js/21.e2afe677.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{160:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/22.28a14c49.js b/docs/.vuepress/dist/assets/js/22.28a14c49.js deleted file mode 100644 index 92984411..00000000 --- a/docs/.vuepress/dist/assets/js/22.28a14c49.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{159:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/23.e1908054.js b/docs/.vuepress/dist/assets/js/23.e1908054.js deleted file mode 100644 index a141099c..00000000 --- a/docs/.vuepress/dist/assets/js/23.e1908054.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{151:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/3.5774cb5b.js b/docs/.vuepress/dist/assets/js/3.5774cb5b.js deleted file mode 100644 index 1b0c26cb..00000000 --- a/docs/.vuepress/dist/assets/js/3.5774cb5b.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{158:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/4.06a15e23.js b/docs/.vuepress/dist/assets/js/4.06a15e23.js deleted file mode 100644 index 3b93ad6d..00000000 --- a/docs/.vuepress/dist/assets/js/4.06a15e23.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{157:function(t,s,a){"use strict";a.r(s);var n=a(0),e=Object(n.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"content"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7),t._v(" "),a("p",[t._v("Global Methods need to be imported.")]),t._v(" "),t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._m(11),t._v(" "),a("p",[t._v("Instance methods can be used inside your chart component.")]),t._v(" "),t._m(12),t._v(" "),a("p",[t._v("Helper function to generate a HTML legend.")]),t._v(" "),t._m(13),t._v(" "),t._m(14),t._m(15),t._v(" "),a("p",[t._v("In Chart.js you can define global and inline plugins. Global plugins are working without problems with "),a("code",[t._v("vue-chartjs")]),t._v(" like in the "),a("a",{attrs:{href:"http://www.chartjs.org/docs/latest/developers/plugins.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chart.js docs"),a("OutboundLink")],1),t._v(" described.")]),t._v(" "),t._m(16),t._v(" "),t._m(17),t._v(" "),t._m(18),t._m(19),t._v(" "),a("p",[t._v("Creates a Chart.js instance and renders the chart.")]),t._v(" "),t._m(20),t._v(" "),t._m(21),t._m(22),t._v(" "),t._m(23),t._v(" "),t._m(24),t._v(" "),t._m(25)])},[function(){var t=this.$createElement,s=this._self._c||t;return s("h1",{attrs:{id:"coding-reference"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#coding-reference","aria-hidden":"true"}},[this._v("#")]),this._v(" Coding Reference")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"props"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#props","aria-hidden":"true"}},[this._v("#")]),this._v(" Props")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("There are some basic props defined in the components provided by "),s("code",[this._v("vue-chartjs")]),this._v(". Because you "),s("code",[this._v("extend")]),this._v(" them, they are "),s("em",[this._v("invisible")]),this._v(", but you can overwrite them:")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("table",[a("thead",[a("tr",[a("th",[t._v("Prop")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("width")]),t._v(" "),a("td",[t._v("chart width")])]),t._v(" "),a("tr",[a("td",[t._v("height")]),t._v(" "),a("td",[t._v("chart height")])]),t._v(" "),a("tr",[a("td",[t._v("chart-id")]),t._v(" "),a("td",[t._v("id of the canvas")])]),t._v(" "),a("tr",[a("td",[t._v("css-classes")]),t._v(" "),a("td",[t._v("String with css classes for the surrounding div")])]),t._v(" "),a("tr",[a("td",[t._v("styles")]),t._v(" "),a("td",[t._v("Object with css styles for the surrounding div container")])]),t._v(" "),a("tr",[a("td",[t._v("plugins")]),t._v(" "),a("td",[t._v("Array with chartjs plugins")])])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"events"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#events","aria-hidden":"true"}},[this._v("#")]),this._v(" Events")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("If the "),s("code",[this._v("reactiveData")]),this._v(" or "),s("code",[this._v("reactiveProp")]),this._v(" mixin is attached, following events will be emitted:")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("table",[a("thead",[a("tr",[a("th",[t._v("Event")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("chart:render")])]),t._v(" "),a("td",[t._v("if the mixin performs a complete rerender")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("chart:destroy")])]),t._v(" "),a("td",[t._v("if the mixin deletes the chart object instance")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("chart:update")])]),t._v(" "),a("td",[t._v("if the mixin performs an update instead of a re-render")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("labels:update")])]),t._v(" "),a("td",[t._v("if new labels were set")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("xlabels:update")])]),t._v(" "),a("td",[t._v("if new xLabels were set")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("ylabels:update")])]),t._v(" "),a("td",[t._v("if new yLabels were set")])])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"global-methods"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#global-methods","aria-hidden":"true"}},[this._v("#")]),this._v(" Global Methods")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"generatechart"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#generatechart","aria-hidden":"true"}},[this._v("#")]),this._v(" generateChart")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ul",[a("li",[a("strong",[t._v("Type:")]),t._v(" "),a("code",[t._v("Function")])]),t._v(" "),a("li",[a("strong",[t._v("Arguments")]),t._v(": "),a("code",[t._v("chart-id")]),t._v(", "),a("code",[t._v("chart-type")])]),t._v(" "),a("li",[a("strong",[t._v("Usage:")])])])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" generateChart "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'vue-chartjs'")]),t._v("\n"),a("span",{attrs:{class:"token comment"}},[t._v("// First argument is the chart-id, second the chart type.")]),t._v("\n"),a("span",{attrs:{class:"token keyword"}},[t._v("const")]),t._v(" CustomLine "),a("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{attrs:{class:"token function"}},[t._v("generateChart")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token string"}},[t._v("'custom-line'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'LineWithLine'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"instance-methods"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#instance-methods","aria-hidden":"true"}},[this._v("#")]),this._v(" Instance Methods")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"generatelegend"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#generatelegend","aria-hidden":"true"}},[this._v("#")]),this._v(" generateLegend()")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ul",[a("li",[a("strong",[t._v("Type:")]),t._v(" "),a("code",[t._v("Function")])]),t._v(" "),a("li",[a("strong",[t._v("Arguments")]),t._v(": "),a("code",[t._v("none")])]),t._v(" "),a("li",[a("strong",[t._v("Usage:")])])])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[t._v(" ")]),a("br"),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" Line "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'vue-chartjs'")]),t._v("\n\n"),a("span",{attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token keyword"}},[t._v("extends")]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Line"),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n props"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{attrs:{class:"token string"}},[t._v("'datasets'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'options'")]),a("span",{attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n data"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n htmlLegend"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("null")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{attrs:{class:"token function"}},[t._v("mounted")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token keyword"}},[t._v("this")]),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("renderChart")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token keyword"}},[t._v("this")]),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasets"),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("this")]),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{attrs:{class:"token keyword"}},[t._v("this")]),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("htmlLegend "),a("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("this")]),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("generateLegend")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"addplugin"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#addplugin","aria-hidden":"true"}},[this._v("#")]),this._v(" addPlugin")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("p",[t._v("If you want to add inline plugins, "),a("code",[t._v("vue-chartjs")]),t._v(" exposes a helper method called "),a("code",[t._v("addPlugin()")]),t._v("\nYou should call "),a("code",[t._v("addPlugin()")]),t._v(" before the "),a("code",[t._v("renderChart()")]),t._v(" method.")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ul",[a("li",[a("strong",[t._v("Type:")]),t._v(" "),a("code",[t._v("Function")])]),t._v(" "),a("li",[a("strong",[t._v("Arguments")]),t._v(": "),a("code",[t._v("Array")]),t._v(" of Plugins")]),t._v(" "),a("li",[a("strong",[t._v("Usage:")])])])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token function"}},[t._v("mounted")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token keyword"}},[t._v("this")]),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("addPlugin")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n id"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'my-plugin'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n beforeInit"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("chart"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token operator"}},[t._v("...")]),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"renderchart"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#renderchart","aria-hidden":"true"}},[this._v("#")]),this._v(" renderChart()")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ul",[a("li",[a("strong",[t._v("Type:")]),t._v(" "),a("code",[t._v("Function")])]),t._v(" "),a("li",[a("strong",[t._v("Arguments")]),t._v(": "),a("code",[t._v("Chart Data")]),t._v(", "),a("code",[t._v("Chart Options")])]),t._v(" "),a("li",[a("strong",[t._v("Usage:")])])])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token function"}},[t._v("mounted")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token keyword"}},[t._v("this")]),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("renderChart")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n labels"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{attrs:{class:"token string"}},[t._v("'January'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'February'")]),a("span",{attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n datasets"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n label"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'Data One'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n backgroundColor"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'#f87979'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n data"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{attrs:{class:"token number"}},[t._v("40")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{attrs:{class:"token number"}},[t._v("20")]),a("span",{attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n responsive"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"chart-js-object"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#chart-js-object","aria-hidden":"true"}},[this._v("#")]),this._v(" Chart.js Object")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("You can access the Chart.js object inside your chart component with "),s("code",[this._v("this.$data._chart")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"canvas"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#canvas","aria-hidden":"true"}},[this._v("#")]),this._v(" Canvas")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("You can access the canvas with "),s("code",[this._v("this.$refs.canvas")])])}],!1,null,null,null);e.options.__file="README.md";s.default=e.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/5.e04e82dd.js b/docs/.vuepress/dist/assets/js/5.e04e82dd.js deleted file mode 100644 index 2d063ea6..00000000 --- a/docs/.vuepress/dist/assets/js/5.e04e82dd.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{156:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/6.b2f4c173.js b/docs/.vuepress/dist/assets/js/6.b2f4c173.js deleted file mode 100644 index b038d477..00000000 --- a/docs/.vuepress/dist/assets/js/6.b2f4c173.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{166:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/7.aed9035e.js b/docs/.vuepress/dist/assets/js/7.aed9035e.js deleted file mode 100644 index e7efec93..00000000 --- a/docs/.vuepress/dist/assets/js/7.aed9035e.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{154:function(t,n,e){"use strict";e.r(n);var s=e(0),i=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);i.options.__file="README.md";n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/8.d5b39b11.js b/docs/.vuepress/dist/assets/js/8.d5b39b11.js deleted file mode 100644 index 4b87d3db..00000000 --- a/docs/.vuepress/dist/assets/js/8.d5b39b11.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{153:function(t,s,a){"use strict";a.r(s);var n=a(0),e=Object(n.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"content"},[t._m(0),t._v(" "),a("p",[a("strong",[t._v("vue-chartjs")]),t._v(" is a wrapper for "),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chart.js"),a("OutboundLink")],1),t._v(" in Vue. You can easily create reusable chart components.")]),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),a("p",[t._v("It abstracts the basic logic but exposes the Chart.js object to give you maximal flexibility.")]),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7),t._v(" "),t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),a("p",[t._v("This way, the methods and logic in the Chart components, get merged into your own chart component.")]),t._v(" "),t._m(14),t._v(" "),a("p",[t._v("You need to import the base chart and extend it. This gives more flexibility when working with different data. You can encapsulate your components and use props to pass data or you can input them directly inside the component. However your component is not reusable this way.")]),t._v(" "),t._m(15),t._v(" "),t._m(16),t._m(17),t._v(" "),t._m(18),t._v(" "),a("p",[t._v("Check out the offical "),a("a",{attrs:{href:"http://www.chartjs.org/docs/latest/#creating-a-chart",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chart.js docs"),a("OutboundLink")],1),t._v(" to see the object structure you need to provide.")]),t._v(" "),t._m(19),t._v(" "),t._m(20),t._v(" "),t._m(21),t._v(" "),t._m(22),t._m(23),t._v(" "),t._m(24),t._v(" "),t._m(25),t._v(" "),t._m(26),t._v(" "),t._m(27),t._v(" "),t._m(28),t._v(" "),t._m(29),t._v(" "),t._m(30),t._v(" "),t._m(31),t._m(32),t._v(" "),t._m(33),a("div",{staticClass:"danger custom-block"},[a("p",{staticClass:"custom-block-title"},[t._v("Limitations")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://vuejs.org/v2/guide/list.html#Caveats",target:"_blank",rel:"noopener noreferrer"}},[t._v("Caveats"),a("OutboundLink")],1),t._v(" "),a("a",{attrs:{href:"https://vuejs.org/v2/guide/reactivity.html#Change-Detection-Caveats",target:"_blank",rel:"noopener noreferrer"}},[t._v("Change-Detection-Caveats"),a("OutboundLink")],1),t._v(" "),a("a",{attrs:{href:"https://vuejs.org/v2/api/#vm-watch",target:"_blank",rel:"noopener noreferrer"}},[t._v("vm.$watch"),a("OutboundLink")],1)])]),t._v(" "),t._m(34),t._v(" "),t._m(35),t._v(" "),t._m(36),t._v(" "),t._m(37),t._v(" "),t._m(38),t._v(" "),t._m(39),t._v(" "),t._m(40),t._v(" "),t._m(41),t._v(" "),t._m(42),t._v(" "),t._m(43),t._v(" "),t._m(44),t._v(" "),t._m(45),t._v(" "),t._m(46),t._v(" "),a("p",[t._v("A simple watcher would be:")]),t._v(" "),t._m(47),t._m(48),t._v(" "),t._m(49),t._v(" "),a("p",[t._v("Your goal should be to create reuseable chart components. For this purpose you should utilize Vue.js props to pass in your options and your chart data. This way the chart itself does not care,about fetching data and is only for presentation.")]),t._v(" "),a("p",[t._v("First create your component")]),t._v(" "),t._m(50),a("p",[t._v("After that you can add your chart component to a parent component")]),t._v(" "),t._m(51),t._m(52),t._v(" "),t._m(53),t._v(" "),t._m(54),t._m(55),t._v(" "),a("p",[t._v("It is a common pattern to use an API to get your data. However there are some things to keep in mind. The most common problem is, that you mount your chart component directly and pass in data from an async api call. The problem with this approach is, that chart.js tries to render your chart and access the chart data, but your api call is async. So you chart mounts before your data arrives.")]),t._v(" "),t._m(56),t._v(" "),a("p",[t._v("Create your chart component with a data prop and options prop, so we can pass in our data and options from a container component.")]),t._v(" "),t._m(57),t._v(" "),t._m(58),t._m(59),t._v(" "),t._m(60),t._m(61),t._v(" "),t._m(62),t._v(" "),t._m(63),t._v(" "),t._m(64),t._m(65),t._v(" "),a("p",[t._v("Sometimes you need to extend the default Chart.js charts. There are a lot of "),a("a",{attrs:{href:"http://www.chartjs.org/docs/latest/developers/charts.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("examples"),a("OutboundLink")],1),t._v(" how to extend and modify the default charts. Or you want to create a own chart type.")]),t._v(" "),t._m(66),t._v(" "),t._m(67),t._m(68),t._v(" "),t._m(69),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://medium.com/@apertureless/wordpress-vue-and-chart-js-6b61493e289f",target:"_blank",rel:"noopener noreferrer"}},[t._v("Using vue-chartjs with WordPress"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://hackernoon.com/creating-stunning-charts-with-vue-js-and-chart-js-28af584adc0a",target:"_blank",rel:"noopener noreferrer"}},[t._v("Create stunning Charts with Vue and Chart.js"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://hackernoon.com/lets-build-a-web-app-with-vue-chart-js-and-an-api-544eb81c4b44",target:"_blank",rel:"noopener noreferrer"}},[t._v("Let’s Build a Web App with Vue, Chart.js and an API Part I"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://hackernoon.com/lets-build-a-web-app-with-vue-chart-js-and-an-api-part-ii-39781b1d5acf",target:"_blank",rel:"noopener noreferrer"}},[t._v("Let’s Build a Web App with Vue, Chart.js and an API Part II"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://blog.pusher.com/build-realtime-chart-with-vuejs-pusher/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Build a realtime chart with VueJS and Pusher"),a("OutboundLink")],1)])])])},[function(){var t=this.$createElement,s=this._self._c||t;return s("h1",{attrs:{id:"getting-started"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[this._v("#")]),this._v(" Getting Started")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction","aria-hidden":"true"}},[this._v("#")]),this._v(" Introduction")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[s("code",[this._v("vue-chartjs")]),this._v(" lets you use Chart.js without much hassle inside Vue. It's perfect for people who need simple charts up and running as fast as possible.")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installation","aria-hidden":"true"}},[this._v("#")]),this._v(" Installation")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"npm"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#npm","aria-hidden":"true"}},[this._v("#")]),this._v(" NPM")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("p",[t._v("You can install "),a("code",[t._v("vue-chartjs")]),t._v(" over "),a("code",[t._v("npm")]),t._v(". However you also need to add "),a("code",[t._v("chart.js")]),t._v(" as a dependency to your project. Because "),a("code",[t._v("Chart.js")]),t._v(" is a peerDependency. This way you have full control over the versioning of Chart.js")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[s("code",[this._v("yarn add vue-chartjs chart.js")]),this._v(" or "),s("code",[this._v("npm install vue-chartjs chart.js --save")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"tip custom-block"},[s("p",{staticClass:"custom-block-title"},[this._v("TIP")]),this._v(" "),s("p",[this._v("If you are using vue 1.x please use the "),s("code",[this._v("legacy")]),this._v(" tag. However the Vue 1 version is not maintained anymore.")]),this._v(" "),s("p",[s("code",[this._v("yarn add vue-chartjs@legacy")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"browser"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#browser","aria-hidden":"true"}},[this._v("#")]),this._v(" Browser")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("You can also use "),s("code",[this._v("vue-chartjs")]),this._v(" directly in the browser.\nFirst add the "),s("code",[this._v("Chart.js")]),this._v(" script and then the "),s("code",[this._v("vue-chartjs")]),this._v(" script.")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{attrs:{class:"token tag"}},[a("span",{attrs:{class:"token tag"}},[a("span",{attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{attrs:{class:"token attr-value"}},[a("span",{attrs:{class:"token punctuation"}},[t._v("=")]),a("span",{attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"),a("span",{attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{attrs:{class:"token script language-javascript"}}),a("span",{attrs:{class:"token tag"}},[a("span",{attrs:{class:"token tag"}},[a("span",{attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{attrs:{class:"token tag"}},[a("span",{attrs:{class:"token tag"}},[a("span",{attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{attrs:{class:"token attr-value"}},[a("span",{attrs:{class:"token punctuation"}},[t._v("=")]),a("span",{attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://unpkg.com/vue-chartjs/dist/vue-chartjs.min.js"),a("span",{attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{attrs:{class:"token script language-javascript"}}),a("span",{attrs:{class:"token tag"}},[a("span",{attrs:{class:"token tag"}},[a("span",{attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"integration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#integration","aria-hidden":"true"}},[this._v("#")]),this._v(" Integration")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("Every chart type that is available in "),s("code",[this._v("Chart.js")]),this._v(" is exported as a named component and can be imported as such. These components are normal Vue components, however you need to "),s("code",[this._v("extend")]),this._v(" it.")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("The idea behind "),s("code",[this._v("vue-chartjs")]),this._v(" is to provide easy to use components, with maximum flexibility and extensibility. To achive this, you need to create your own "),s("em",[this._v("Chart Component")]),this._v(" and extend it with the provided "),s("code",[this._v("vue-chartjs")]),this._v(" components.")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"creating-your-first-chart"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creating-your-first-chart","aria-hidden":"true"}},[this._v("#")]),this._v(" Creating your first Chart")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("p",[t._v("You can import the whole package or each module individual. Then you need either to use "),a("code",[t._v("extends:")]),t._v(" or "),a("code",[t._v("mixins:[]")]),t._v(". And then in the "),a("code",[t._v("mounted()")]),t._v(" hook, call "),a("code",[t._v("this.renderChart()")]),t._v(". This will create your chart instance.")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("div",{staticClass:"highlight-lines"},[a("div",{staticClass:"highlighted"},[t._v(" ")]),a("br"),a("br"),a("div",{staticClass:"highlighted"},[t._v(" ")]),a("br"),a("div",{staticClass:"highlighted"},[t._v(" ")]),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" Bar "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'vue-chartjs'")]),t._v("\n\n"),a("span",{attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token keyword"}},[t._v("extends")]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Bar"),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token function"}},[t._v("mounted")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token keyword"}},[t._v("this")]),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("renderChart")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"tip custom-block"},[s("p",{staticClass:"custom-block-title"},[this._v("TIP")]),this._v(" "),s("p",[this._v("You can either use "),s("code",[this._v("extends: Bar")]),this._v(" or "),s("code",[this._v("mixins: [Bar]")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("The method "),s("code",[this._v("this.renderChart()")]),this._v(" is provided by the "),s("code",[this._v("Bar")]),this._v(" component and is accepting two parameters. Both are "),s("code",[this._v("objects")]),this._v(". The first one is your chart data and the second one is an options object.")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"vue-single-file-components"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#vue-single-file-components","aria-hidden":"true"}},[this._v("#")]),this._v(" Vue Single File Components")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("Most examples in the docs are based on javascript files and not "),s("code",[this._v(".vue")]),this._v(" files. This is because you mostly will only need the "),s("code",[this._v(" - - diff --git a/docs/.vuepress/dist/fr-fr/guide/index.html b/docs/.vuepress/dist/fr-fr/guide/index.html deleted file mode 100644 index c9e0cf9f..00000000 --- a/docs/.vuepress/dist/fr-fr/guide/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/fr-fr/index.html b/docs/.vuepress/dist/fr-fr/index.html deleted file mode 100644 index 3497d6eb..00000000 --- a/docs/.vuepress/dist/fr-fr/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
hero

📈 vue-chartjs

- ⚡ Easy and beautiful charts with Chart.js and Vue.js -

Get Started →

Easy

Easy for both beginners and pros 🙌

Extendable

Simple to use, easy to extend 💪

Powerfull

With the full power of chart.js 💯

- - - diff --git a/docs/.vuepress/dist/guide/index.html b/docs/.vuepress/dist/guide/index.html deleted file mode 100644 index f0ca64ef..00000000 --- a/docs/.vuepress/dist/guide/index.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - Getting Started | 📈 vue-chartjs - - - - - - - -

Getting Started

vue-chartjs is a wrapper for Chart.js in Vue. You can easily create reusable chart components.

Introduction

vue-chartjs lets you use Chart.js without much hassle inside Vue. It's perfect for people who need simple charts up and running as fast as possible.

It abstracts the basic logic but exposes the Chart.js object to give you maximal flexibility.

Installation

NPM

You can install vue-chartjs over npm. However you also need to add chart.js as a dependency to your project. Because Chart.js is a peerDependency. This way you have full control over the versioning of Chart.js

yarn add vue-chartjs chart.js or npm install vue-chartjs chart.js --save

TIP

If you are using vue 1.x please use the legacy tag. However the Vue 1 version is not maintained anymore.

yarn add vue-chartjs@legacy

Browser

You can also use vue-chartjs directly in the browser. -First add the Chart.js script and then the vue-chartjs script.

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"></script>
-<script src="https://unpkg.com/vue-chartjs/dist/vue-chartjs.min.js"></script>
-

Integration

Every chart type that is available in Chart.js is exported as a named component and can be imported as such. These components are normal Vue components, however you need to extend it.

The idea behind vue-chartjs is to provide easy to use components, with maximum flexibility and extensibility. To achive this, you need to create your own Chart Component and extend it with the provided vue-chartjs components.

This way, the methods and logic in the Chart components, get merged into your own chart component.

Creating your first Chart

You need to import the base chart and extend it. This gives more flexibility when working with different data. You can encapsulate your components and use props to pass data or you can input them directly inside the component. However your component is not reusable this way.

You can import the whole package or each module individual. Then you need either to use extends: or mixins:[]. And then in the mounted() hook, call this.renderChart(). This will create your chart instance.

 


 

 



import { Bar } from 'vue-chartjs'
-
-export default {
-  extends: Bar,
-  mounted () {
-    this.renderChart(data, options)
-  }
-}
-

TIP

You can either use extends: Bar or mixins: [Bar]

The method this.renderChart() is provided by the Bar component and is accepting two parameters. Both are objects. The first one is your chart data and the second one is an options object.

Check out the offical Chart.js docs to see the object structure you need to provide.

Vue Single File Components

Most examples in the docs are based on javascript files and not .vue files. This is because you mostly will only need the <script> block. You can however use .vue files as well.

Chart.vue

<script>
-import { Line } from 'vue-chartjs'
-
-export default {
-  extends: Line,
-  props: ['chartdata', 'options'],
-  mounted () {
-    this.renderChart(this.chartdata, this.options)
-  }
-}
-</script>
-
-<style>
-</style>
-

Template Tag can not be merged

Do not include the <template> tag to your .vue files. Vue can not merge templates. If you add an empty <template> tag, Vue will took the template from your component and not from the extended one, which will result in an empty template and errors.

Updating Charts

Chart.js does not provide a live update if you change the datasets. However vue-chartjs provides two mixins to achieve this.

  • reactiveProp
  • reactiveData

Both mixins do actually achieve the same. Most of the time you will use reactiveProp. It extends the logic of your chart component and automatically creates a prop named chartData and adds a vue watch on this prop. On data change, it will either call update() if only the data inside the datasets has changed or renderChart() if new datasets were added.

reactiveData simply creates a local chartData variable which is not a prop! and adds a watcher. This is only useful, if you need single purpose charts and make an API call inside your chart component.

Example

LineChart.js

import { Line, mixins } from 'vue-chartjs'
-const { reactiveProp } = mixins
-
-export default {
-  extends: Line,
-  mixins: [reactiveProp],
-  props: ['options'],
-  mounted () {
-    // this.chartData is created in the mixin.
-    // If you want to pass options please create a local options object
-    this.renderChart(this.chartData, this.options)
-  }
-}
-

RandomChart.vue

<template>
-  <div class="small">
-    <line-chart :chart-data="datacollection"></line-chart>
-    <button @click="fillData()">Randomize</button>
-  </div>
-</template>
-
-<script>
-  import LineChart from './LineChart.js'
-
-  export default {
-    components: {
-      LineChart
-    },
-    data () {
-      return {
-        datacollection: null
-      }
-    },
-    mounted () {
-      this.fillData()
-    },
-    methods: {
-      fillData () {
-        this.datacollection = {
-          labels: [this.getRandomInt(), this.getRandomInt()],
-          datasets: [
-            {
-              label: 'Data One',
-              backgroundColor: '#f87979',
-              data: [this.getRandomInt(), this.getRandomInt()]
-            }, {
-              label: 'Data One',
-              backgroundColor: '#f87979',
-              data: [this.getRandomInt(), this.getRandomInt()]
-            }
-          ]
-        }
-      },
-      getRandomInt () {
-        return Math.floor(Math.random() * (50 - 5 + 1)) + 5
-      }
-    }
-  }
-</script>
-
-<style>
-  .small {
-    max-width: 600px;
-    margin:  150px auto;
-  }
-</style>
-

Events

The reactive mixins will emit events if the data changes. You can listen to them with v:on on the chart component. Following events are available:

  • chart:render - if the mixin performs a complete rerender
  • chart:destroy - if the mixin deletes the chart object instance
  • chart:update - if the mixin performs an update instead of a re-render
  • labels:update - if new labels were set
  • xlabels:update if new xLabels were set
  • ylabels:update - if new yLabels were set

Troubleshooting

The reactivity system at it's current state is not robust. You will run into several problems with it, because there are many use-cases and ways to pass in your data.

Options

The options object is not reactive right now. So if you dynamically change the chart options, they will not be recognized by the mixin.

If you are using the mixin you need to pass in your options as a prop names options. This is important because the mixin will call chart.js update() method or destroy and render a new chart. If the mixin renders a new chart it calls this.renderChart(this.chartData, this.options).

But if you pass in your options directly in your mounted() hook, they get lost.

Wrong Way







 



import { Line, mixins } from 'vue-chartjs'
-
-export default {
-  components: { Line }
-  mixins: [mixins.reactiveProp],
-  mounted () {
-    this.renderChart(this.chartData, {responsive: true})
-  }
-}
-

Right Way







 



import { Line, mixins } from 'vue-chartjs'
-
-export default {
-  components: { Line }
-  mixins: [mixins.reactiveProp],
-  mounted () {
-    this.renderChart(this.chartData, this.options)
-  }
-}
-

Own watcher

If you transform your data a lot of changing it (instead of pushing new data) it is the best, if you implement your own watcher. -You can then either call this.$data._chart.update() or this.renderChart() by yourself, depending on your needs.

A simple watcher would be:

watch: {
-  chartData () {
-    this.$data._chart.update()
-  }
-}
-

Exampels

Chart with props

Your goal should be to create reuseable chart components. For this purpose you should utilize Vue.js props to pass in your options and your chart data. This way the chart itself does not care,about fetching data and is only for presentation.

First create your component

import { Line } from 'vue-chartjs'
-
-export default {
-  extends: Line,
-  props: {
-    chartdata: {
-      type: Object,
-      default: null
-    }
-    options: {
-      type: Object,
-      default: null
-    }
-  },
-  mounted () {
-    this.renderChart(this.chartdata, this.options)
-  }
-}
-

After that you can add your chart component to a parent component

 <line-chart :chartdata="chartData" :options="chartOptions"/>
-

Chart with local data

You can handle your chart data directly in your own chart component. You only need to pass it to the renderChart() method.

import { Bar } from 'vue-chartjs'
-
-export default {
-  extends: Bar,
-  data: () => ({
-    chartdata: {
-      datacollection: {
-        labels: ['January', 'February'],
-        datasets: [
-          {
-            label: 'Data One',
-            backgroundColor: '#f87979',
-            data: [40, 20]
-          }
-        ]
-      }
-    },
-    options: {
-      responsive: true,
-      maintainAspectRatio: false
-    }
-  }),
-
-  mounted () {
-    this.renderChart(this.datacollection, this.options)
-  }
-}
-

Chart with API data

It is a common pattern to use an API to get your data. However there are some things to keep in mind. The most common problem is, that you mount your chart component directly and pass in data from an async api call. The problem with this approach is, that chart.js tries to render your chart and access the chart data, but your api call is async. So you chart mounts before your data arrives.

To prevent this, a simple v-if is the best solution.

Create your chart component with a data prop and options prop, so we can pass in our data and options from a container component.

Chart.vue

import { Line } from 'vue-chartjs'
-
-export default {
-  extends: Line,
-  props: {
-    chartdata: {
-      type: Object,
-      default: null
-    }
-    options: {
-      type: Object,
-      default: null
-    }
-  },
-  mounted () {
-    this.renderChart(this.chartdata, this.options)
-  }
-}
-

Then create a container component, which handles your api call or vuex connection. -ChartContainer.vue




 




























<template>
-  <div class="container">
-    <line-chart
-      v-if="loaded"
-      :chartdata="chartdata"
-      :options="options"/>
-  </div>
-</template>
-
-<script>
-import LineChart from './LineChart.vue'
-
-export default {
-  name: 'LineChartContainer',
-  components: { LineChart },
-  data: () => ({
-    loaded: false,
-    chartdata: null
-  }),
-  async mounted () {
-    this.loaded = false
-      try {
-        const { userlist } = await fetch('/api/userlist')
-        this.chartData = userlist
-        this.loaded = true
-      } catch (e) {
-        console.error(e)
-      }
-  }
-}
-</script>
-

Chart with dynamic styles

You can set responsive: true and pass in an styles object which get applied as inline styles to the outer div. This way you can change the height and width of the outer container dynamically. Which is not the default behaviour of chart.js. It is best to use computed properties for this.

WARNING

You need to set position: relative

<template>
-     <div>
-       <line-chart :styles="myStyles"/>
-       <button @click="increase()">Increase height</button>
-     </div>
-</template>
-
-<script>
-export default {
-  data () {
-    return {
-      height: 300
-    }
-  },
-  methods: {
-    increase () {
-     this.height += 10
-    }
-  },
-  computed: {
-    myStyles () {
-      return {
-        height: `${this.height}px`,
-        position: 'relative'
-      }
-    }
-  }
-}
-</script>
-

Custom / New Charts

Sometimes you need to extend the default Chart.js charts. There are a lot of examples how to extend and modify the default charts. Or you want to create a own chart type.

In vue-chartjs you can do this pretty much the same way.

// 1. Import Chart.js so you can use the global Chart object
-import Chart from 'chart.js'
-// 2. Import the `generateChart()` method to create the vue component.
-import { generateChart } from 'vue-chartjs'
-
-// 3. Extend on of the default charts
-// http://www.chartjs.org/docs/latest/developers/charts.html
-Chart.defaults.LineWithLine = Chart.defaults.line;
-Chart.controllers.LineWithLine = Chart.controllers.line.extend({ /* custom magic here */})
-
-// 4. Generate the vue-chartjs component
-// First argument is the chart-id, second the chart type.
-const CustomLine = generateChart('custom-line', 'LineWithLine')
-
-// 5. Extend the CustomLine Component just like you do with the default vue-chartjs charts.
-
-export default {
-  extends: CustomLine,
-  mounted () {
-    // ....
-  }
-}
-

Resources

You can find here some resources like tutorials on how to use vue-chartjs

- - - diff --git a/docs/.vuepress/dist/id/api/index.html b/docs/.vuepress/dist/id/api/index.html deleted file mode 100644 index 86cd7a09..00000000 --- a/docs/.vuepress/dist/id/api/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/id/guide/index.html b/docs/.vuepress/dist/id/guide/index.html deleted file mode 100644 index 867be925..00000000 --- a/docs/.vuepress/dist/id/guide/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/id/index.html b/docs/.vuepress/dist/id/index.html deleted file mode 100644 index 32ef98e8..00000000 --- a/docs/.vuepress/dist/id/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
hero

📈 vue-chartjs

- ⚡ Easy and beautiful charts with Chart.js and Vue.js -

Get Started →

Easy

Easy for both beginners and pros 🙌

Extendable

Simple to use, easy to extend 💪

Powerfull

With the full power of chart.js 💯

- - - diff --git a/docs/.vuepress/dist/index.html b/docs/.vuepress/dist/index.html deleted file mode 100644 index e25674b0..00000000 --- a/docs/.vuepress/dist/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
hero

📈 vue-chartjs

- ⚡ Easy and beautiful charts with Chart.js and Vue.js -

Get Started →

Easy

Easy for both beginners and pros 🙌

Extendable

Simple to use, easy to extend 💪

Powerfull

With the full power of chart.js 💯

- - - diff --git a/docs/.vuepress/dist/ja/api/index.html b/docs/.vuepress/dist/ja/api/index.html deleted file mode 100644 index a362db1f..00000000 --- a/docs/.vuepress/dist/ja/api/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/ja/guide/index.html b/docs/.vuepress/dist/ja/guide/index.html deleted file mode 100644 index 678138c2..00000000 --- a/docs/.vuepress/dist/ja/guide/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/ja/index.html b/docs/.vuepress/dist/ja/index.html deleted file mode 100644 index 7392ba20..00000000 --- a/docs/.vuepress/dist/ja/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
hero

📈 vue-chartjs

- ⚡ Easy and beautiful charts with Chart.js and Vue.js -

Get Started →

Easy

Easy for both beginners and pros 🙌

Extendable

Simple to use, easy to extend 💪

Powerfull

With the full power of chart.js 💯

- - - diff --git a/docs/.vuepress/dist/pt-br/api/index.html b/docs/.vuepress/dist/pt-br/api/index.html deleted file mode 100644 index 07f8d83d..00000000 --- a/docs/.vuepress/dist/pt-br/api/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/pt-br/guide/index.html b/docs/.vuepress/dist/pt-br/guide/index.html deleted file mode 100644 index 31842408..00000000 --- a/docs/.vuepress/dist/pt-br/guide/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/pt-br/index.html b/docs/.vuepress/dist/pt-br/index.html deleted file mode 100644 index a4729748..00000000 --- a/docs/.vuepress/dist/pt-br/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
hero

📈 vue-chartjs

- ⚡ Easy and beautiful charts with Chart.js and Vue.js -

Get Started →

Easy

Easy for both beginners and pros 🙌

Extendable

Simple to use, easy to extend 💪

Powerfull

With the full power of chart.js 💯

- - - diff --git a/docs/.vuepress/dist/ru/api/index.html b/docs/.vuepress/dist/ru/api/index.html deleted file mode 100644 index 01f6ae95..00000000 --- a/docs/.vuepress/dist/ru/api/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/ru/guide/index.html b/docs/.vuepress/dist/ru/guide/index.html deleted file mode 100644 index deaa10e8..00000000 --- a/docs/.vuepress/dist/ru/guide/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/ru/index.html b/docs/.vuepress/dist/ru/index.html deleted file mode 100644 index cbcd6cc4..00000000 --- a/docs/.vuepress/dist/ru/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
hero

📈 vue-chartjs

- ⚡ Easy and beautiful charts with Chart.js and Vue.js -

Get Started →

Easy

Easy for both beginners and pros 🙌

Extendable

Simple to use, easy to extend 💪

Powerfull

With the full power of chart.js 💯

- - - diff --git a/docs/.vuepress/dist/vue-chartjs.png b/docs/.vuepress/dist/vue-chartjs.png deleted file mode 100644 index 43fb2a0a..00000000 Binary files a/docs/.vuepress/dist/vue-chartjs.png and /dev/null differ diff --git a/docs/.vuepress/dist/vue-chartjs.svg b/docs/.vuepress/dist/vue-chartjs.svg deleted file mode 100644 index 43cd47b4..00000000 --- a/docs/.vuepress/dist/vue-chartjs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/.vuepress/dist/zh-cn/api/index.html b/docs/.vuepress/dist/zh-cn/api/index.html deleted file mode 100644 index 43b62531..00000000 --- a/docs/.vuepress/dist/zh-cn/api/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/zh-cn/guide/index.html b/docs/.vuepress/dist/zh-cn/guide/index.html deleted file mode 100644 index 8330ac93..00000000 --- a/docs/.vuepress/dist/zh-cn/guide/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
- - - diff --git a/docs/.vuepress/dist/zh-cn/index.html b/docs/.vuepress/dist/zh-cn/index.html deleted file mode 100644 index bca86beb..00000000 --- a/docs/.vuepress/dist/zh-cn/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 📈 vue-chartjs - - - - - - - -
hero

📈 vue-chartjs

- ⚡ Easy and beautiful charts with Chart.js and Vue.js -

Get Started →

Easy

Easy for both beginners and pros 🙌

Extendable

Simple to use, easy to extend 💪

Powerfull

With the full power of chart.js 💯

- - -