xuwei 3 жил өмнө
parent
commit
45d1ea487c
100 өөрчлөгдсөн 2261 нэмэгдсэн , 3 устгасан
  1. 1 0
      .gitignore
  2. 41 0
      HEGII.ft.mes.dashboard.sln
  3. 0 3
      README.md
  4. 52 0
      wwwroot/Global.asax
  5. BIN
      wwwroot/Img/accept.png
  6. BIN
      wwwroot/Img/bullet_tick.png
  7. BIN
      wwwroot/Img/chart.png
  8. BIN
      wwwroot/Img/clock.png
  9. BIN
      wwwroot/Img/detail.png
  10. BIN
      wwwroot/Img/dongke.png
  11. BIN
      wwwroot/Img/dongke_logo.jpg
  12. BIN
      wwwroot/Img/email.png
  13. BIN
      wwwroot/Img/email_delete.png
  14. BIN
      wwwroot/Img/email_error.png
  15. BIN
      wwwroot/Img/email_open.png
  16. BIN
      wwwroot/Img/email_stop.png
  17. BIN
      wwwroot/Img/excel.png
  18. BIN
      wwwroot/Img/exclamation.png
  19. BIN
      wwwroot/Img/file_blank.png
  20. BIN
      wwwroot/Img/file_line.png
  21. BIN
      wwwroot/Img/folder_close.png
  22. BIN
      wwwroot/Img/folder_open.png
  23. BIN
      wwwroot/Img/grid.png
  24. BIN
      wwwroot/Img/hegii.png
  25. BIN
      wwwroot/Img/hegii_logo.png
  26. BIN
      wwwroot/Img/lightbulb.png
  27. BIN
      wwwroot/Img/lightbulb_off.png
  28. BIN
      wwwroot/Img/logo.png
  29. BIN
      wwwroot/Img/mail.png
  30. BIN
      wwwroot/Img/mailbox.png
  31. BIN
      wwwroot/Img/mailbox_close.png
  32. BIN
      wwwroot/Img/mailbox_open.png
  33. BIN
      wwwroot/Img/new.png
  34. BIN
      wwwroot/Img/new_blue.png
  35. BIN
      wwwroot/Img/new_red.png
  36. BIN
      wwwroot/Img/package_stop.png
  37. BIN
      wwwroot/Img/page.png
  38. BIN
      wwwroot/Img/page_delete.png
  39. BIN
      wwwroot/Img/page_green.png
  40. BIN
      wwwroot/Img/page_red.png
  41. BIN
      wwwroot/Img/plan.png
  42. BIN
      wwwroot/Img/stop_blue.png
  43. BIN
      wwwroot/Img/stop_green.png
  44. BIN
      wwwroot/Img/stop_red.png
  45. BIN
      wwwroot/Img/tab_blue.png
  46. BIN
      wwwroot/Img/tab_green.png
  47. BIN
      wwwroot/Img/tab_red.png
  48. BIN
      wwwroot/Img/table.png
  49. BIN
      wwwroot/Img/tag_blue.png
  50. BIN
      wwwroot/Img/tag_green.png
  51. BIN
      wwwroot/Img/tag_orange.png
  52. BIN
      wwwroot/Img/tag_pink.png
  53. BIN
      wwwroot/Img/tag_purple.png
  54. BIN
      wwwroot/Img/tag_red.png
  55. BIN
      wwwroot/Img/tag_yellow.png
  56. BIN
      wwwroot/Img/tick.png
  57. BIN
      wwwroot/Img/time.png
  58. BIN
      wwwroot/Img/time_green.png
  59. BIN
      wwwroot/Img/time_red.png
  60. BIN
      wwwroot/Img/vcard.png
  61. BIN
      wwwroot/Img/vcard_delete.png
  62. BIN
      wwwroot/Img/weixin16x16.png
  63. BIN
      wwwroot/Img/weixin32x32.png
  64. BIN
      wwwroot/Img/word.png
  65. 19 0
      wwwroot/Plugins/Chart.js-master/.codeclimate.yml
  66. 18 0
      wwwroot/Plugins/Chart.js-master/.editorconfig
  67. 1 0
      wwwroot/Plugins/Chart.js-master/.eslintignore
  68. 7 0
      wwwroot/Plugins/Chart.js-master/.eslintrc.yml
  69. 14 0
      wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE.md
  70. 50 0
      wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE/BUG.md
  71. 25 0
      wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE/DOCS.md
  72. 25 0
      wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE/FEATURE.md
  73. 27 0
      wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE/SUPPORT.md
  74. 11 0
      wwwroot/Plugins/Chart.js-master/.github/PULL_REQUEST_TEMPLATE.md
  75. 18 0
      wwwroot/Plugins/Chart.js-master/.gitignore
  76. 19 0
      wwwroot/Plugins/Chart.js-master/.htmllintrc
  77. 55 0
      wwwroot/Plugins/Chart.js-master/.travis.yml
  78. 9 0
      wwwroot/Plugins/Chart.js-master/LICENSE.md
  79. 36 0
      wwwroot/Plugins/Chart.js-master/MAINTAINING.md
  80. 32 0
      wwwroot/Plugins/Chart.js-master/README.md
  81. 32 0
      wwwroot/Plugins/Chart.js-master/book.json
  82. 26 0
      wwwroot/Plugins/Chart.js-master/composer.json
  83. 65 0
      wwwroot/Plugins/Chart.js-master/docs/README.md
  84. 56 0
      wwwroot/Plugins/Chart.js-master/docs/SUMMARY.md
  85. 58 0
      wwwroot/Plugins/Chart.js-master/docs/axes/README.md
  86. 107 0
      wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/README.md
  87. 69 0
      wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/category.md
  88. 73 0
      wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/linear.md
  89. 7 0
      wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/logarithmic.md
  90. 157 0
      wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/time.md
  91. 46 0
      wwwroot/Plugins/Chart.js-master/docs/axes/labelling.md
  92. 5 0
      wwwroot/Plugins/Chart.js-master/docs/axes/radial/README.md
  93. 113 0
      wwwroot/Plugins/Chart.js-master/docs/axes/radial/linear.md
  94. 69 0
      wwwroot/Plugins/Chart.js-master/docs/axes/styling.md
  95. 14 0
      wwwroot/Plugins/Chart.js-master/docs/charts/README.md
  96. 72 0
      wwwroot/Plugins/Chart.js-master/docs/charts/area.md
  97. 304 0
      wwwroot/Plugins/Chart.js-master/docs/charts/bar.md
  98. 111 0
      wwwroot/Plugins/Chart.js-master/docs/charts/bubble.md
  99. 136 0
      wwwroot/Plugins/Chart.js-master/docs/charts/doughnut.md
  100. 281 0
      wwwroot/Plugins/Chart.js-master/docs/charts/line.md

+ 1 - 0
.gitignore

@@ -108,3 +108,4 @@ _UpgradeReport_Files/
 Backup*/
 UpgradeLog*.XML
 
+/.vs

+ 41 - 0
HEGII.ft.mes.dashboard.sln

@@ -0,0 +1,41 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "wwwroot", "wwwroot\", "{DB74DD9E-F84B-4372-A298-41376272D607}"
+	ProjectSection(WebsiteProperties) = preProject
+		TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
+		Debug.AspNetCompiler.VirtualPath = "/localhost_62172"
+		Debug.AspNetCompiler.PhysicalPath = "wwwroot\"
+		Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_62172\"
+		Debug.AspNetCompiler.Updateable = "true"
+		Debug.AspNetCompiler.ForceOverwrite = "true"
+		Debug.AspNetCompiler.FixedNames = "false"
+		Debug.AspNetCompiler.Debug = "True"
+		Release.AspNetCompiler.VirtualPath = "/localhost_62172"
+		Release.AspNetCompiler.PhysicalPath = "wwwroot\"
+		Release.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_62172\"
+		Release.AspNetCompiler.Updateable = "true"
+		Release.AspNetCompiler.ForceOverwrite = "true"
+		Release.AspNetCompiler.FixedNames = "false"
+		Release.AspNetCompiler.Debug = "False"
+		VWDPort = "62172"
+		SlnRelativePath = "wwwroot\"
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{DB74DD9E-F84B-4372-A298-41376272D607}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DB74DD9E-F84B-4372-A298-41376272D607}.Debug|Any CPU.Build.0 = Debug|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {9CA3E13F-6ECD-4AFF-BB80-B7C099FAE7B3}
+	EndGlobalSection
+EndGlobal

+ 0 - 3
README.md

@@ -1,3 +0,0 @@
-# HEGIIft.mes.dashboard
-
-恒洁凤塘厂电子看板

+ 52 - 0
wwwroot/Global.asax

@@ -0,0 +1,52 @@
+<%@ Application Language="C#" %>
+<%@ Import Namespace="Curtain.DataAccess" %>
+<%@ Import Namespace="Curtain.Log" %>
+<%@ Import Namespace="DK.XuWei.WebMes" %>
+
+<script runat="server">
+
+    void Application_Start(object sender, EventArgs e)
+    {
+        // 在应用程序启动时运行的代码
+        string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
+        DataAccess.DefaultParameterType = SQLParameterType.CDA;
+        DataAccess.DefaultDataBaseType = Curtain.DataAccess.DataBaseType.Oracle;
+        DataAccess.DefaultConnectionString = connStr;
+    }
+
+    void Application_End(object sender, EventArgs e)
+    {
+        //  在应用程序关闭时运行的代码
+
+    }
+
+    void Application_Error(object sender, EventArgs e)
+    {
+        // 在出现未处理的错误时运行的代码
+        Exception error = Server.GetLastError().GetBaseException();
+        if (error != null)
+        {
+            //记录日志
+            Logger.Error(error);
+            //输出错误信息
+            HttpContext.Current.Response.Write(new JsonResult(JsonStatus.otherError).ToJson());
+        }
+        Server.ClearError();
+    }
+
+    void Session_Start(object sender, EventArgs e)
+    {
+        // 在新会话启动时运行的代码
+
+    }
+
+    void Session_End(object sender, EventArgs e)
+    {
+        // 在会话结束时运行的代码。 
+        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
+        // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
+        // 或 SQLServer,则不引发该事件。
+
+    }
+
+</script>

BIN
wwwroot/Img/accept.png


BIN
wwwroot/Img/bullet_tick.png


BIN
wwwroot/Img/chart.png


BIN
wwwroot/Img/clock.png


BIN
wwwroot/Img/detail.png


BIN
wwwroot/Img/dongke.png


BIN
wwwroot/Img/dongke_logo.jpg


BIN
wwwroot/Img/email.png


BIN
wwwroot/Img/email_delete.png


BIN
wwwroot/Img/email_error.png


BIN
wwwroot/Img/email_open.png


BIN
wwwroot/Img/email_stop.png


BIN
wwwroot/Img/excel.png


BIN
wwwroot/Img/exclamation.png


BIN
wwwroot/Img/file_blank.png


BIN
wwwroot/Img/file_line.png


BIN
wwwroot/Img/folder_close.png


BIN
wwwroot/Img/folder_open.png


BIN
wwwroot/Img/grid.png


BIN
wwwroot/Img/hegii.png


BIN
wwwroot/Img/hegii_logo.png


BIN
wwwroot/Img/lightbulb.png


BIN
wwwroot/Img/lightbulb_off.png


BIN
wwwroot/Img/logo.png


BIN
wwwroot/Img/mail.png


BIN
wwwroot/Img/mailbox.png


BIN
wwwroot/Img/mailbox_close.png


BIN
wwwroot/Img/mailbox_open.png


BIN
wwwroot/Img/new.png


BIN
wwwroot/Img/new_blue.png


BIN
wwwroot/Img/new_red.png


BIN
wwwroot/Img/package_stop.png


BIN
wwwroot/Img/page.png


BIN
wwwroot/Img/page_delete.png


BIN
wwwroot/Img/page_green.png


BIN
wwwroot/Img/page_red.png


BIN
wwwroot/Img/plan.png


BIN
wwwroot/Img/stop_blue.png


BIN
wwwroot/Img/stop_green.png


BIN
wwwroot/Img/stop_red.png


BIN
wwwroot/Img/tab_blue.png


BIN
wwwroot/Img/tab_green.png


BIN
wwwroot/Img/tab_red.png


BIN
wwwroot/Img/table.png


BIN
wwwroot/Img/tag_blue.png


BIN
wwwroot/Img/tag_green.png


BIN
wwwroot/Img/tag_orange.png


BIN
wwwroot/Img/tag_pink.png


BIN
wwwroot/Img/tag_purple.png


BIN
wwwroot/Img/tag_red.png


BIN
wwwroot/Img/tag_yellow.png


BIN
wwwroot/Img/tick.png


BIN
wwwroot/Img/time.png


BIN
wwwroot/Img/time_green.png


BIN
wwwroot/Img/time_red.png


BIN
wwwroot/Img/vcard.png


BIN
wwwroot/Img/vcard_delete.png


BIN
wwwroot/Img/weixin16x16.png


BIN
wwwroot/Img/weixin32x32.png


BIN
wwwroot/Img/word.png


+ 19 - 0
wwwroot/Plugins/Chart.js-master/.codeclimate.yml

@@ -0,0 +1,19 @@
+version: "2"
+plugins:
+  duplication:
+    enabled: true
+    config:
+      languages:
+        - javascript
+  fixme:
+    enabled: true
+exclude_patterns:
+  - "dist/"
+  - "docs/"
+  - "samples/"
+  - "scripts/"
+  - "test/"
+  - "*.js"
+  - "*.json"
+  - "*.md"
+  - ".*"

+ 18 - 0
wwwroot/Plugins/Chart.js-master/.editorconfig

@@ -0,0 +1,18 @@
+# https://editorconfig.org
+root = true
+
+[*]
+indent_style = tab
+indent_size = 4
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[gulpfile.js]
+indent_style = space
+indent_size = 2
+
+[*.yml]
+indent_style = space
+indent_size = 2

+ 1 - 0
wwwroot/Plugins/Chart.js-master/.eslintignore

@@ -0,0 +1 @@
+**/*{.,-}min.js

+ 7 - 0
wwwroot/Plugins/Chart.js-master/.eslintrc.yml

@@ -0,0 +1,7 @@
+extends: chartjs
+
+env:
+  browser: true
+  node: true
+
+plugins: ['html']

+ 14 - 0
wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE.md

@@ -0,0 +1,14 @@
+<!--
+  Need help or support? Don't open an issue!
+  Head to https://stackoverflow.com/questions/tagged/chart.js
+
+  Ahoy!
+
+  You're seeing this because you felt none of the other options fit the type of
+  issue you'd like to create. Please use this opportunity to tell us about the
+  type of issue you were looking for, so we can try to accommodate similar
+  issues in the future.
+
+  If you're using this template to report an issue covered by an existing issue
+  type, we'll close it as invalid faster than you can spell 'Mississippi'.
+-->

+ 50 - 0
wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE/BUG.md

@@ -0,0 +1,50 @@
+---
+name: Bug Report
+about: Something went awry
+labels: 'type: bug'
+---
+
+<!--
+  Need help or support? Please don't open an issue!
+  Head to https://stackoverflow.com/questions/tagged/chart.js
+
+  Bug reports MUST be submitted with an interactive example:
+  https://codepen.io/pen?template=JXVYzq
+
+  Chart.js 1.x is NOT supported anymore, new issues will be disregarded.
+-->
+
+## Expected Behavior
+<!-- Tell us what should happen -->
+
+## Current Behavior
+<!-- Tell us what happens instead of the expected behavior -->
+
+## Possible Solution
+<!--
+  Not obligatory, but suggest a fix/reason for the bug,
+  or ideas how to implement the addition or change
+-->
+
+## Steps to Reproduce (for bugs)
+<!--
+  Provide a link to a live example. Bug reports MUST be submitted with an
+  interactive example (https://codepen.io/pen?template=JXVYzq).
+
+  If filing a bug against `master`, you may reference the latest code via
+  https://www.chartjs.org/dist/master/Chart.min.js (changing the filename to
+  point at the file you need as appropriate). Do not rely on these files for
+  production purposes as they may be removed at any time.
+-->
+
+## Context
+<!--
+  How has this issue affected you? What are you trying to accomplish? Providing
+  context helps us come up with a solution that is most useful in the real world
+-->
+
+## Environment
+<!-- Include as many relevant details about the environment you experienced the bug in -->
+* Chart.js version:
+* Browser name and version:
+* Link to your project:

+ 25 - 0
wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE/DOCS.md

@@ -0,0 +1,25 @@
+---
+name: Documentation
+about: Are the docs lacking or missing something?
+labels: 'type: documentation'
+---
+
+Documentation Is:
+
+<!-- Please place an x (no spaces!) in all [ ] that apply -->
+
+- [ ] Missing or needed
+- [ ] Confusing
+- [ ] Not Sure?
+
+### Please Explain in Detail...
+
+
+### Your Proposal for Changes
+
+
+### Example
+<!--
+  Provide a link to a live example demonstrating the issue or feature to be documented:
+  https://codepen.io/pen?template=JXVYzq
+-->

+ 25 - 0
wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE/FEATURE.md

@@ -0,0 +1,25 @@
+---
+name: Feature Request
+about: Suggest an idea
+labels: 'type: enhancement'
+---
+
+<!--
+  Most features should start as plugins outside of Chart.js
+  (https://www.chartjs.org/docs/#advanced-usage-creating-plugins).
+  Please consider whether your changes are useful for all users, or if this is
+  specific to your usecase and a Chart.js plugin would be more appropriate.
+
+  Need help or tech support? Please don't open an issue!
+  Head to https://stackoverflow.com/questions/tagged/chart.js
+-->
+
+### Feature Proposal
+<!-- Tell us how it should work -->
+
+### Feature Use Case
+<!-- What are you trying to accomplish? -->
+<!-- Providing context helps us come up with a solution that is most useful in the real world -->
+
+## Possible Implementation
+<!-- Not obligatory, but suggest ideas for how to implement the addition or change -->

+ 27 - 0
wwwroot/Plugins/Chart.js-master/.github/ISSUE_TEMPLATE/SUPPORT.md

@@ -0,0 +1,27 @@
+---
+name: Support, Help, and Advice
+about: Need help or support? Head to https://stackoverflow.com/questions/tagged/chart.js
+labels: 'type: support'
+---
+
+<!--
+  Hey there! 
+
+  If you need help or tech support then this is not the place to ask. Please post
+  a question to https://stackoverflow.com/questions/tagged/chart.js or head over
+  to our Slack workspace at https://chartjs-slack.herokuapp.com/.
+
+  You maximize your chances of having your question answered if you follow
+  StackOverflow's guidelines: https://stackoverflow.com/help/how-to-ask.
+  If your question was not answered on StackOverflow, that does not mean you 
+  should post it here. If you do, it will be immediately closed.
+
+  Chart.js users vastly outnumber our small number of volunteer maintainers and 
+  we try to help as many users as we can, but we may not get to every question. 
+  Chart.js is a community project. You can contribute towards the goal of helping
+  every user by asking good questions, answering questions on StackOverflow
+  or Slack, creating an issue or pull request for the documentation, or otherwise
+  contributing to the project:
+
+  https://www.chartjs.org/docs/latest/developers/contributing.html
+-->

+ 11 - 0
wwwroot/Plugins/Chart.js-master/.github/PULL_REQUEST_TEMPLATE.md

@@ -0,0 +1,11 @@
+<!--
+Please consider the following before submitting a pull request:
+
+Guidelines for contributing: https://github.com/chartjs/Chart.js/blob/master/docs/developers/contributing.md
+
+Example of changes on an interactive website such as the following:
+- https://jsbin.com/
+- https://jsfiddle.net/
+- https://codepen.io/pen/
+- Premade template: https://codepen.io/pen?template=JXVYzq
+-->

+ 18 - 0
wwwroot/Plugins/Chart.js-master/.gitignore

@@ -0,0 +1,18 @@
+/_book
+/coverage
+/custom
+/dist
+/docs/index.md
+/gh-pages
+/jsdoc
+/node_modules
+/package-lock.json
+.DS_Store
+.idea
+.project
+.settings
+.vscode
+bower.json
+*.log
+*.swp
+*.stackdump

+ 19 - 0
wwwroot/Plugins/Chart.js-master/.htmllintrc

@@ -0,0 +1,19 @@
+{
+	"indent-style": "tabs",
+	"line-end-style": false,
+	"attr-quote-style": "double",
+	"spec-char-escape": false,
+	"attr-bans": [
+		"align",
+		"background",
+		"bgcolor",
+		"border",
+		"frameborder",
+		"longdesc",
+		"marginwidth",
+		"marginheight",
+		"scrolling"
+	],
+	"tag-bans": [ "b", "i" ],
+	"id-class-style": false
+}

+ 55 - 0
wwwroot/Plugins/Chart.js-master/.travis.yml

@@ -0,0 +1,55 @@
+language: node_js
+node_js:
+  - lts/*
+
+before_install:
+  - "export CHROME_BIN=/usr/bin/google-chrome"
+  - "export DISPLAY=:99.0"
+  - "sh -e /etc/init.d/xvfb start"
+
+script:
+  - gulp build
+  - gulp test --coverage
+  - gulp docs
+  - gulp package
+  - gulp bower
+  - cat ./coverage/lcov.info | ./node_modules/.bin/coveralls || true
+
+sudo: required
+dist: trusty
+
+addons:
+  chrome: stable
+  firefox: latest
+
+# IMPORTANT: scripts require GITHUB_AUTH_TOKEN and GITHUB_AUTH_EMAIL environment variables
+# IMPORTANT: scripts has to be set executables in the Git repository (error 127)
+# https://github.com/travis-ci/travis-ci/issues/5538#issuecomment-225025939
+
+deploy:
+- provider: script
+  script: ./scripts/deploy.sh
+  skip_cleanup: true
+  on:
+    all_branches: true
+- provider: script
+  script: ./scripts/release.sh
+  skip_cleanup: true
+  on:
+    branch: release
+- provider: releases
+  api_key: $GITHUB_AUTH_TOKEN
+  skip_cleanup: true
+  file_glob: true
+  file:
+  - ./dist/*.css
+  - ./dist/*.js
+  - ./dist/*.zip
+  on:
+    tags: true
+- provider: npm
+  email: $NPM_AUTH_EMAIL
+  api_key: $NPM_AUTH_TOKEN
+  skip_cleanup: true
+  on:
+    tags: true

+ 9 - 0
wwwroot/Plugins/Chart.js-master/LICENSE.md

@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2018 Chart.js Contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 36 - 0
wwwroot/Plugins/Chart.js-master/MAINTAINING.md

@@ -0,0 +1,36 @@
+# Maintaining
+## Release Process
+Chart.js relies on [Travis CI](https://travis-ci.org/) to automate the library [releases](https://github.com/chartjs/Chart.js/releases).
+
+### Releasing a New Version
+
+1. draft release notes on [GitHub](https://github.com/chartjs/Chart.js/releases/new) for the upcoming tag
+1. update `master` `package.json` version using [semver](https://semver.org/) semantic
+1. merge `master` into the `release` branch
+1. follow the build process on [Travis CI](https://travis-ci.org/chartjs/Chart.js)
+
+> **Note:** if `master` is merged in `release` with a `package.json` version that already exists, the tag
+creation fails and the release process is aborted.
+
+### Automated Tasks
+Merging into the `release` branch kicks off the automated release process:
+
+* build of the `dist/*.js` files
+* `bower.json` is generated from `package.json`
+* `dist/*.js` and `bower.json` are added to a detached branch
+* a tag is created from the `package.json` version
+* tag (with dist files) is pushed to GitHub
+
+Creation of this tag triggers a new build:
+
+* `Chart.js.zip` package is generated, containing dist files and examples
+* `dist/*.js` and `Chart.js.zip` are attached to the GitHub release (downloads)
+* a new npm package is published on [npmjs](https://www.npmjs.com/package/chart.js)
+
+Finally, [cdnjs](https://cdnjs.com/libraries/Chart.js) is automatically updated from the npm release.
+
+### Further Reading
+
+* [Travis GitHub releases](https://github.com/chartjs/Chart.js/pull/2555)
+* [Bower support and dist/* files](https://github.com/chartjs/Chart.js/issues/3033)
+* [cdnjs npm auto update](https://github.com/cdnjs/cdnjs/pull/8401)

+ 32 - 0
wwwroot/Plugins/Chart.js-master/README.md

@@ -0,0 +1,32 @@
+<p align="center">
+    <img src="https://www.chartjs.org/media/logo-title.svg"><br/>
+    Simple yet flexible JavaScript charting for designers & developers
+</p>
+
+<p align="center">
+    <a href="https://www.chartjs.org/docs/latest/getting-started/installation.html"><img src="https://img.shields.io/github/release/chartjs/Chart.js.svg?style=flat-square&maxAge=600" alt="Downloads"></a>
+    <a href="https://travis-ci.org/chartjs/Chart.js"><img src="https://img.shields.io/travis/chartjs/Chart.js.svg?style=flat-square&maxAge=600" alt="Builds"></a>
+    <a href="https://coveralls.io/github/chartjs/Chart.js?branch=master"><img src="https://img.shields.io/coveralls/chartjs/Chart.js.svg?style=flat-square&maxAge=600" alt="Coverage"></a>
+    <a href="https://github.com/chartjs/awesome"><img src="https://awesome.re/badge-flat2.svg" alt="Awesome"></a>
+    <a href="https://chartjs-slack.herokuapp.com/"><img src="https://img.shields.io/badge/slack-chartjs-blue.svg?style=flat-square&maxAge=3600" alt="Slack"></a>
+</p>
+
+## Documentation
+
+- [Introduction](https://www.chartjs.org/docs/latest/)
+- [Getting Started](https://www.chartjs.org/docs/latest/getting-started/)
+- [General](https://www.chartjs.org/docs/latest/general/)
+- [Configuration](https://www.chartjs.org/docs/latest/configuration/)
+- [Charts](https://www.chartjs.org/docs/latest/charts/)
+- [Axes](https://www.chartjs.org/docs/latest/axes/)
+- [Developers](https://www.chartjs.org/docs/latest/developers/)
+- [Popular Extensions](https://github.com/chartjs/awesome)
+- [Samples](https://www.chartjs.org/samples/)
+
+## Contributing
+
+Instructions on building and testing Chart.js can be found in [the documentation](https://github.com/chartjs/Chart.js/blob/master/docs/developers/contributing.md#building-and-testing). Before submitting an issue or a pull request, please take a moment to look over the [contributing guidelines](https://github.com/chartjs/Chart.js/blob/master/docs/developers/contributing.md) first. For support, please post questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/chartjs) with the `chartjs` tag.
+
+## License
+
+Chart.js is available under the [MIT license](https://opensource.org/licenses/MIT).

+ 32 - 0
wwwroot/Plugins/Chart.js-master/book.json

@@ -0,0 +1,32 @@
+{
+  "root": "./docs",
+  "title": "Chart.js documentation",
+  "author": "chartjs",
+  "gitbook": "3.2.2",
+  "plugins": [
+    "-lunr",
+    "-search",
+    "search-plus",
+    "anchorjs",
+    "chartjs",
+    "ga",
+    "redirect"
+  ],
+  "pluginsConfig": {
+    "anchorjs": {
+      "icon": "#",
+      "placement": "left",
+      "visible": "always"
+    },
+    "ga": {
+      "token": "UA-28909194-3",
+      "configuration": "auto"
+    },
+    "theme-default": {
+      "showLevel": false,
+      "styles": {
+        "website": "style.css"
+      }
+    }
+  }
+}

+ 26 - 0
wwwroot/Plugins/Chart.js-master/composer.json

@@ -0,0 +1,26 @@
+{
+    "name": "nnnick/chartjs",
+    "type": "library",
+    "description": "Simple HTML5 charts using the canvas element.",
+    "keywords": [
+        "chart",
+        "js"
+    ],
+    "homepage": "https://www.chartjs.org/",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "NICK DOWNIE",
+            "email": "hello@nickdownie.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.3"
+    },
+    "minimum-stability": "stable",
+    "extra": {
+        "branch-alias": {
+            "release/2.0": "v2.0-dev"
+        }
+    }
+}

+ 65 - 0
wwwroot/Plugins/Chart.js-master/docs/README.md

@@ -0,0 +1,65 @@
+# Chart.js
+
+[![slack](https://img.shields.io/badge/slack-chartjs-blue.svg?style=flat-square&maxAge=3600)](https://chartjs-slack.herokuapp.com/)
+
+## Installation
+
+You can download the latest version of Chart.js from the [GitHub releases](https://github.com/chartjs/Chart.js/releases/latest) or use a [Chart.js CDN](https://www.jsdelivr.com/package/npm/chart.js). Detailed installation instructions can be found on the [installation](./getting-started/installation.md) page.
+
+## Creating a Chart
+
+It's easy to get started with Chart.js. All that's required is the script included in your page along with a single `<canvas>` node to render the chart.
+
+In this example, we create a bar chart for a single dataset and render that in our page. You can see all the ways to use Chart.js in the [usage documentation](./getting-started/usage.md).
+```html
+<canvas id="myChart" width="400" height="400"></canvas>
+<script>
+var ctx = document.getElementById('myChart').getContext('2d');
+var myChart = new Chart(ctx, {
+    type: 'bar',
+    data: {
+        labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
+        datasets: [{
+            label: '# of Votes',
+            data: [12, 19, 3, 5, 2, 3],
+            backgroundColor: [
+                'rgba(255, 99, 132, 0.2)',
+                'rgba(54, 162, 235, 0.2)',
+                'rgba(255, 206, 86, 0.2)',
+                'rgba(75, 192, 192, 0.2)',
+                'rgba(153, 102, 255, 0.2)',
+                'rgba(255, 159, 64, 0.2)'
+            ],
+            borderColor: [
+                'rgba(255, 99, 132, 1)',
+                'rgba(54, 162, 235, 1)',
+                'rgba(255, 206, 86, 1)',
+                'rgba(75, 192, 192, 1)',
+                'rgba(153, 102, 255, 1)',
+                'rgba(255, 159, 64, 1)'
+            ],
+            borderWidth: 1
+        }]
+    },
+    options: {
+        scales: {
+            yAxes: [{
+                ticks: {
+                    beginAtZero: true
+                }
+            }]
+        }
+    }
+});
+</script>
+```
+
+## Contributing
+
+Before submitting an issue or a pull request to the project, please take a moment to look over the [contributing guidelines](https://github.com/chartjs/Chart.js/blob/master/docs/developers/contributing.md) first.
+
+For support using Chart.js, please post questions with the [`chartjs` tag on Stack Overflow](https://stackoverflow.com/questions/tagged/chartjs).
+
+## License
+
+Chart.js is available under the [MIT license](https://opensource.org/licenses/MIT).

+ 56 - 0
wwwroot/Plugins/Chart.js-master/docs/SUMMARY.md

@@ -0,0 +1,56 @@
+# Summary
+
+* [Chart.js](https://www.chartjs.org)
+* [Introduction](README.md)
+* [Getting Started](getting-started/README.md)
+  * [Installation](getting-started/installation.md)
+  * [Integration](getting-started/integration.md)
+  * [Usage](getting-started/usage.md)
+* [General](general/README.md)
+  * [Accessibility](general/accessibility.md)
+  * [Responsive](general/responsive.md)
+  * [Pixel Ratio](general/device-pixel-ratio.md)
+  * [Interactions](general/interactions/README.md)
+    * [Events](general/interactions/events.md)
+    * [Modes](general/interactions/modes.md)
+  * [Options](general/options.md)
+  * [Colors](general/colors.md)
+  * [Fonts](general/fonts.md)
+* [Configuration](configuration/README.md)
+  * [Animations](configuration/animations.md)
+  * [Layout](configuration/layout.md)
+  * [Legend](configuration/legend.md)
+  * [Title](configuration/title.md)
+  * [Tooltip](configuration/tooltip.md)
+  * [Elements](configuration/elements.md)
+* [Charts](charts/README.md)
+  * [Line](charts/line.md)
+  * [Bar](charts/bar.md)
+  * [Radar](charts/radar.md)
+  * [Doughnut & Pie](charts/doughnut.md)
+  * [Polar Area](charts/polar.md)
+  * [Bubble](charts/bubble.md)
+  * [Scatter](charts/scatter.md)
+  * [Area](charts/area.md)
+  * [Mixed](charts/mixed.md)
+* [Axes](axes/README.md)
+  * [Cartesian](axes/cartesian/README.md)
+    * [Category](axes/cartesian/category.md)
+    * [Linear](axes/cartesian/linear.md)
+    * [Logarithmic](axes/cartesian/logarithmic.md)
+    * [Time](axes/cartesian/time.md)
+  * [Radial](axes/radial/README.md)
+    * [Linear](axes/radial/linear.md)
+  * [Labelling](axes/labelling.md)
+  * [Styling](axes/styling.md)
+* [Developers](developers/README.md)
+  * [Chart.js API](developers/api.md)
+  * [Updating Charts](developers/updates.md)
+  * [Plugins](developers/plugins.md)
+  * [New Charts](developers/charts.md)
+  * [New Axes](developers/axes.md)
+  * [Contributing](developers/contributing.md)
+* [Additional Notes](notes/README.md)
+  * [Comparison Table](notes/comparison.md)
+  * [Popular Extensions](notes/extensions.md)
+  * [License](notes/license.md)

+ 58 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/README.md

@@ -0,0 +1,58 @@
+# Axes
+
+Axes are an integral part of a chart. They are used to determine how data maps to a pixel value on the chart. In a cartesian chart, there is 1 or more X axis and 1 or more Y axis to map points onto the 2 dimensional canvas. These axes are know as ['cartesian axes'](./cartesian/README.md#cartesian-axes).
+
+In a radial chart, such as a radar chart or a polar area chart, there is a single axis that maps points in the angular and radial directions. These are known as ['radial axes'](./radial/README.md#radial-axes).
+
+Scales in Chart.js >v2.0 are significantly more powerful, but also different than those of v1.0.
+* Multiple X & Y axes are supported.
+* A built-in label auto-skip feature detects would-be overlapping ticks and labels and removes every nth label to keep things displaying normally.
+* Scale titles are supported.
+* New scale types can be extended without writing an entirely new chart type.
+
+## Common Configuration
+
+The following properties are common to all axes provided by Chart.js.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `display` | <code>boolean&#124;string</code> | `true` | Controls the axis global visibility (visible when `true`, hidden when `false`). When `display: 'auto'`, the axis is visible only if at least one associated dataset is visible.
+| `callbacks` | `object` | | Callback functions to hook into the axis lifecycle. [more...](#callbacks)
+| `weight` | `number` | `0` | The weight used to sort the axis. Higher weights are further away from the chart area.
+
+### Callbacks
+There are a number of config callbacks that can be used to change parameters in the scale at different points in the update process.
+
+| Name | Arguments | Description
+| ---- | --------- | -----------
+| `beforeUpdate` | `axis` | Callback called before the update process starts.
+| `beforeSetDimensions` | `axis` | Callback that runs before dimensions are set.
+| `afterSetDimensions` | `axis` | Callback that runs after dimensions are set.
+| `beforeDataLimits` | `axis` | Callback that runs before data limits are determined.
+| `afterDataLimits` | `axis` | Callback that runs after data limits are determined.
+| `beforeBuildTicks` | `axis` | Callback that runs before ticks are created.
+| `afterBuildTicks` | `axis`, `ticks` | Callback that runs after ticks are created. Useful for filtering ticks. Should return the filtered ticks.
+| `beforeTickToLabelConversion` | `axis` | Callback that runs before ticks are converted into strings.
+| `afterTickToLabelConversion` | `axis` | Callback that runs after ticks are converted into strings.
+| `beforeCalculateTickRotation` | `axis` | Callback that runs before tick rotation is determined.
+| `afterCalculateTickRotation` | `axis` | Callback that runs after tick rotation is determined.
+| `beforeFit` | `axis` | Callback that runs before the scale fits to the canvas.
+| `afterFit` | `axis` | Callback that runs after the scale fits to the canvas.
+| `afterUpdate` | `axis` | Callback that runs at the end of the update process.
+
+### Updating Axis Defaults
+
+The default configuration for a scale can be easily changed using the scale service. All you need to do is to pass in a partial configuration that will be merged with the current scale default configuration to form the new default.
+
+For example, to set the minimum value of 0 for all linear scales, you would do the following. Any linear scales created after this time would now have a minimum of 0.
+
+```javascript
+Chart.scaleService.updateScaleDefaults('linear', {
+    ticks: {
+        min: 0
+    }
+});
+```
+
+## Creating New Axes
+To create a new axis, see the [developer docs](../developers/axes.md).

+ 107 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/README.md

@@ -0,0 +1,107 @@
+# Cartesian Axes
+
+Axes that follow a cartesian grid are known as 'Cartesian Axes'. Cartesian axes are used for line, bar, and bubble charts. Four cartesian axes are included in Chart.js by default.
+
+* [linear](./linear.md#linear-cartesian-axis)
+* [logarithmic](./logarithmic.md#logarithmic-cartesian-axis)
+* [category](./category.md#category-cartesian-axis)
+* [time](./time.md#time-cartesian-axis)
+
+## Common Configuration
+
+All of the included cartesian axes support a number of common options.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `type` | `string` | | Type of scale being employed. Custom scales can be created and registered with a string key. This allows changing the type of an axis for a chart.
+| `position` | `string` | | Position of the axis in the chart. Possible values are: `'top'`, `'left'`, `'bottom'`, `'right'`
+| `offset` | `boolean` | `false` | If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to `true` for a category scale in a bar chart by default.
+| `id` | `string` | | The ID is used to link datasets and scale axes together. [more...](#axis-id)
+| `gridLines` | `object` | | Grid line configuration. [more...](../styling.md#grid-line-configuration)
+| `scaleLabel` | `object` | | Scale title configuration. [more...](../labelling.md#scale-title-configuration)
+| `ticks` | `object` | | Tick configuration. [more...](#tick-configuration)
+
+### Tick Configuration
+The following options are common to all cartesian axes but do not apply to other axes.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `min` | `number` | | User defined minimum value for the scale, overrides minimum value from data.
+| `max` | `number` | | User defined maximum value for the scale, overrides maximum value from data.
+| `autoSkip` | `boolean` | `true` | If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to `maxRotation` before skipping any. Turn `autoSkip` off to show all labels no matter what.
+| `autoSkipPadding` | `number` | `0` | Padding between the ticks on the horizontal axis when `autoSkip` is enabled.
+| `labelOffset` | `number` | `0` | Distance in pixels to offset the label from the centre point of the tick (in the x direction for the x axis, and the y direction for the y axis). *Note: this can cause labels at the edges to be cropped by the edge of the canvas*
+| `maxRotation` | `number` | `50` | Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. *Note: Only applicable to horizontal scales.*
+| `minRotation` | `number` | `0` | Minimum rotation for tick labels. *Note: Only applicable to horizontal scales.*
+| `mirror` | `boolean` | `false` | Flips tick labels around axis, displaying the labels inside the chart instead of outside. *Note: Only applicable to vertical scales.*
+| `padding` | `number` | `0` | Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.
+
+### Axis ID
+The properties `dataset.xAxisID` or `dataset.yAxisID` have to match the scale properties `scales.xAxes.id` or `scales.yAxes.id`. This is especially needed if multi-axes charts are used.
+
+```javascript
+var myChart = new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            // This dataset appears on the first axis
+            yAxisID: 'first-y-axis'
+        }, {
+            // This dataset appears on the second axis
+            yAxisID: 'second-y-axis'
+        }]
+    },
+    options: {
+        scales: {
+            yAxes: [{
+                id: 'first-y-axis',
+                type: 'linear'
+            }, {
+                id: 'second-y-axis',
+                type: 'linear'
+            }]
+        }
+    }
+});
+```
+
+## Creating Multiple Axes
+
+With cartesian axes, it is possible to create multiple X and Y axes. To do so, you can add multiple configuration objects to the `xAxes` and `yAxes` properties. When adding new axes, it is important to ensure that you specify the type of the new axes as default types are **not** used in this case.
+
+In the example below, we are creating two Y axes. We then use the `yAxisID` property to map the datasets to their correct axes.
+
+```javascript
+var myChart = new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            data: [20, 50, 100, 75, 25, 0],
+            label: 'Left dataset',
+
+            // This binds the dataset to the left y axis
+            yAxisID: 'left-y-axis'
+        }, {
+            data: [0.1, 0.5, 1.0, 2.0, 1.5, 0],
+            label: 'Right dataset',
+
+            // This binds the dataset to the right y axis
+            yAxisID: 'right-y-axis'
+        }],
+        labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
+    },
+    options: {
+        scales: {
+            yAxes: [{
+                id: 'left-y-axis',
+                type: 'linear',
+                position: 'left'
+            }, {
+                id: 'right-y-axis',
+                type: 'linear',
+                position: 'right'
+            }]
+        }
+    }
+});
+```

+ 69 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/category.md

@@ -0,0 +1,69 @@
+# Category Cartesian Axis
+
+If global configuration is used, labels are drawn from one of the label arrays included in the chart data. If only `data.labels` is defined, this will be used. If `data.xLabels` is defined and the axis is horizontal, this will be used. Similarly, if `data.yLabels` is defined and the axis is vertical, this property will be used. Using both `xLabels` and `yLabels` together can create a chart that uses strings for both the X and Y axes.
+
+Specifying any of the settings above defines the x axis as `type: 'category'` if not defined otherwise. For more fine-grained control of category labels it is also possible to add `labels` as part of the category axis definition. Doing so does not apply the global defaults.
+
+## Category Axis Definition
+
+Globally:
+
+```javascript
+let chart = new Chart(ctx, {
+    type: ...
+    data: {
+        labels: ['January', 'February', 'March', 'April', 'May', 'June'],
+        datasets: ...
+    }
+});
+```
+As part of axis definition:
+
+```javascript
+let chart = new Chart(ctx, {
+    type: ...
+    data: ...
+    options: {
+        scales: {
+            xAxes: [{
+                type: 'category',
+                labels: ['January', 'February', 'March', 'April', 'May', 'June']
+            }]
+        }
+    }
+});
+```
+
+## Tick Configuration Options
+
+The category scale provides the following options for configuring tick marks. They are nested in the `ticks` sub object. These options extend the [common tick configuration](README.md#tick-configuration).
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `labels` | `string[]` | - | An array of labels to display.
+| `min` | `string` | | The minimum item to display. [more...](#min-max-configuration)
+| `max` | `string` | | The maximum item to display. [more...](#min-max-configuration)
+
+## Min Max Configuration
+For both the `min` and `max` properties, the value must be in the `labels` array. In the example below, the x axis would only display "March" through "June".
+
+```javascript
+let chart = new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            data: [10, 20, 30, 40, 50, 60]
+        }],
+        labels: ['January', 'February', 'March', 'April', 'May', 'June']
+    },
+    options: {
+        scales: {
+            xAxes: [{
+                ticks: {
+                    min: 'March'
+                }
+            }]
+        }
+    }
+});
+```

+ 73 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/linear.md

@@ -0,0 +1,73 @@
+# Linear Cartesian Axis
+
+The linear scale is use to chart numerical data. It can be placed on either the x or y axis. The scatter chart type automatically configures a line chart to use one of these scales for the x axis. As the name suggests, linear interpolation is used to determine where a value lies on the axis.
+
+## Tick Configuration Options
+
+The following options are provided by the linear scale. They are all located in the `ticks` sub options. These options extend the [common tick configuration](README.md#tick-configuration).
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `beginAtZero` | `boolean` | | if true, scale will include 0 if it is not already included.
+| `maxTicksLimit` | `number` | `11` | Maximum number of ticks and gridlines to show.
+| `precision` | `number` | | if defined and `stepSize` is not specified, the step size will be rounded to this many decimal places.
+| `stepSize` | `number` | | User defined fixed step size for the scale. [more...](#step-size)
+| `suggestedMax` | `number` | | Adjustment used when calculating the maximum data value. [more...](#axis-range-settings)
+| `suggestedMin` | `number` | | Adjustment used when calculating the minimum data value. [more...](#axis-range-settings)
+
+## Axis Range Settings
+
+Given the number of axis range settings, it is important to understand how they all interact with each other.
+
+The `suggestedMax` and `suggestedMin` settings only change the data values that are used to scale the axis. These are useful for extending the range of the axis while maintaining the auto fit behaviour.
+
+```javascript
+let minDataValue = Math.min(mostNegativeValue, options.ticks.suggestedMin);
+let maxDataValue = Math.max(mostPositiveValue, options.ticks.suggestedMax);
+```
+
+In this example, the largest positive value is 50, but the data maximum is expanded out to 100. However, because the lowest data value is below the `suggestedMin` setting, it is ignored.
+
+```javascript
+let chart = new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            label: 'First dataset',
+            data: [0, 20, 40, 50]
+        }],
+        labels: ['January', 'February', 'March', 'April']
+    },
+    options: {
+        scales: {
+            yAxes: [{
+                ticks: {
+                    suggestedMin: 50,
+                    suggestedMax: 100
+                }
+            }]
+        }
+    }
+});
+```
+
+In contrast to the `suggested*` settings, the `min` and `max` settings set explicit ends to the axes. When these are set, some data points may not be visible.
+
+## Step Size
+If set, the scale ticks will be enumerated by multiple of `stepSize`, having one tick per increment. If not set, the ticks are labeled automatically using the nice numbers algorithm.
+
+This example sets up a chart with a y axis that creates ticks at `0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5`.
+
+```javascript
+let options = {
+    scales: {
+        yAxes: [{
+            ticks: {
+                max: 5,
+                min: 0,
+                stepSize: 0.5
+            }
+        }]
+    }
+};
+```

+ 7 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/logarithmic.md

@@ -0,0 +1,7 @@
+# Logarithmic Cartesian Axis
+
+The logarithmic scale is use to chart numerical data. It can be placed on either the x or y axis. As the name suggests, logarithmic interpolation is used to determine where a value lies on the axis.
+
+## Tick Configuration Options
+
+The logarithmic scale options extend the [common tick configuration](README.md#tick-configuration). This scale does not define any options that are unique to it.

+ 157 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/cartesian/time.md

@@ -0,0 +1,157 @@
+# Time Cartesian Axis
+
+The time scale is used to display times and dates. When building its ticks, it will automatically calculate the most comfortable unit base on the size of the scale.
+
+## Date Adapters
+
+The time scale requires both a date library and corresponding adapter to be present. By default, Chart.js includes an adapter for Moment.js. You may wish to [exclude moment](../../getting-started/integration.md) and choose from [other available adapters](https://github.com/chartjs/awesome#adapters) instead.
+
+## Data Sets
+
+### Input Data
+
+The x-axis data points may additionally be specified via the `t` or `x` attribute when using the time scale.
+
+```javascript
+data: [{
+    x: new Date(),
+    y: 1
+}, {
+    t: new Date(),
+    y: 10
+}]
+```
+
+### Date Formats
+
+When providing data for the time scale, Chart.js supports all of the formats that Moment.js accepts. See [Moment.js docs](https://momentjs.com/docs/#/parsing/) for details.
+
+## Configuration Options
+
+The following options are provided by the time scale. You may also set options provided by the [common tick configuration](README.md#tick-configuration).
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `adapters.date` | `object` | `{}` | Options for adapter for external date library if that adapter needs or supports options
+| `distribution` | `string` | `'linear'` | How data is plotted. [more...](#scale-distribution)
+| `bounds` | `string` | `'data'` | Determines the scale bounds. [more...](#scale-bounds)
+| `ticks.source` | `string` | `'auto'` | How ticks are generated. [more...](#ticks-source)
+| `time.displayFormats` | `object` | | Sets how different time units are displayed. [more...](#display-formats)
+| `time.isoWeekday` | `boolean` | `false` | If true and the unit is set to 'week', then the first day of the week will be Monday. Otherwise, it will be Sunday.
+| `time.parser` | <code>string&#124;function</code> | | Custom parser for dates. [more...](#parser)
+| `time.round` | `string` | `false` | If defined, dates will be rounded to the start of this unit. See [Time Units](#time-units) below for the allowed units.
+| `time.tooltipFormat` | `string` | | The Moment.js format string to use for the tooltip.
+| `time.unit` | `string` | `false` | If defined, will force the unit to be a certain type. See [Time Units](#time-units) section below for details.
+| `time.stepSize` | `number` | `1` | The number of units between grid lines.
+| `time.minUnit` | `string` | `'millisecond'` | The minimum display format to be used for a time unit.
+
+### Time Units
+
+The following time measurements are supported. The names can be passed as strings to the `time.unit` config option to force a certain unit.
+
+* `'millisecond'`
+* `'second'`
+* `'minute'`
+* `'hour'`
+* `'day'`
+* `'week'`
+* `'month'`
+* `'quarter'`
+* `'year'`
+
+For example, to create a chart with a time scale that always displayed units per month, the following config could be used.
+
+```javascript
+var chart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            xAxes: [{
+                type: 'time',
+                time: {
+                    unit: 'month'
+                }
+            }]
+        }
+    }
+});
+```
+
+### Display Formats
+The following display formats are used to configure how different time units are formed into strings for the axis tick marks. See [Moment.js](https://momentjs.com/docs/#/displaying/format/) for the allowable format strings.
+
+Name | Default | Example
+--- | --- | ---
+`millisecond` | `'h:mm:ss.SSS a'` | `'11:20:01.123 AM'`
+`second` | `'h:mm:ss a'` | `'11:20:01 AM'`
+`minute` | `'h:mm a'` | `'11:20 AM'`
+`hour` | `'hA'` | `'11AM'`
+`day` | `'MMM D'` | `'Sep 4'`
+`week` | `'ll'` | `'Sep 4 2015'`
+`month` | `'MMM YYYY'` | `'Sep 2015'`
+`quarter` | `'[Q]Q - YYYY'` | `'Q3 - 2015'`
+`year` | `'YYYY'` | `'2015'`
+
+For example, to set the display format for the `quarter` unit to show the month and year, the following config would be passed to the chart constructor.
+
+```javascript
+var chart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            xAxes: [{
+                type: 'time',
+                time: {
+                    displayFormats: {
+                        quarter: 'MMM YYYY'
+                    }
+                }
+            }]
+        }
+    }
+});
+```
+
+### Scale Distribution
+
+The `distribution` property controls the data distribution along the scale:
+
+* `'linear'`: data are spread according to their time (distances can vary)
+* `'series'`: data are spread at the same distance from each other
+
+```javascript
+var chart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            xAxes: [{
+                type: 'time',
+                distribution: 'series'
+            }]
+        }
+    }
+});
+```
+
+### Scale Bounds
+
+The `bounds` property controls the scale boundary strategy (bypassed by `min`/`max` time options).
+
+* `'data'`: makes sure data are fully visible, labels outside are removed
+* `'ticks'`: makes sure ticks are fully visible, data outside are truncated
+
+### Ticks Source
+
+The `ticks.source` property controls the ticks generation.
+
+* `'auto'`: generates "optimal" ticks based on scale size and time options
+* `'data'`: generates ticks from data (including labels from data `{t|x|y}` objects)
+* `'labels'`: generates ticks from user given `labels` ONLY
+
+### Parser
+If this property is defined as a string, it is interpreted as a custom format to be used by Moment.js to parse the date.
+
+If this is a function, it must return a Moment.js object given the appropriate data value.

+ 46 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/labelling.md

@@ -0,0 +1,46 @@
+# Labeling Axes
+
+When creating a chart, you want to tell the viewer what data they are viewing. To do this, you need to label the axis.
+
+## Scale Title Configuration
+
+The scale label configuration is nested under the scale configuration in the `scaleLabel` key. It defines options for the scale title. Note that this only applies to cartesian axes.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `display` | `boolean` | `false` | If true, display the axis title.
+| `labelString` | `string` | `''` | The text for the title. (i.e. "# of People" or "Response Choices").
+| `lineHeight` | <code>number&#124;string</code> | `1.2` | Height of an individual line of text (see [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height)).
+| `fontColor` | `Color` | `'#666'` | Font color for scale title.
+| `fontFamily` | `string` | `"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif"` | Font family for the scale title, follows CSS font-family options.
+| `fontSize` | `number` | `12` | Font size for scale title.
+| `fontStyle` | `string` | `'normal'` | Font style for the scale title, follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit).
+| `padding` | <code>number&#124;object</code> | `4` | Padding to apply around scale labels. Only `top` and `bottom` are implemented.
+
+## Creating Custom Tick Formats
+
+It is also common to want to change the tick marks to include information about the data type. For example, adding a dollar sign ('$'). To do this, you need to override the `ticks.callback` method in the axis configuration.
+In the following example, every label of the Y axis would be displayed with a dollar sign at the front.
+
+If the callback returns `null` or `undefined` the associated grid line will be hidden.
+
+```javascript
+var chart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            yAxes: [{
+                ticks: {
+                    // Include a dollar sign in the ticks
+                    callback: function(value, index, values) {
+                        return '$' + value;
+                    }
+                }
+            }]
+        }
+    }
+});
+```
+
+The third parameter passed to the callback function is an array of labels, but in the time scale, it is an array of `{label: string, major: boolean}` objects.

+ 5 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/radial/README.md

@@ -0,0 +1,5 @@
+# Radial Axes
+
+Radial axes are used specifically for the radar and polar area chart types. These axes overlay the chart area, rather than being positioned on one of the edges. One radial axis is included by default in Chart.js.
+
+* [linear](./linear.md#linear-radial-axis)

+ 113 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/radial/linear.md

@@ -0,0 +1,113 @@
+# Linear Radial Axis
+
+The linear scale is used to chart numerical data. As the name suggests, linear interpolation is used to determine where a value lies in relation the center of the axis.
+
+The following additional configuration options are provided by the radial linear scale.
+
+## Configuration Options
+
+The axis has configuration properties for ticks, angle lines (line that appear in a radar chart outward from the center), pointLabels (labels around the edge in a radar chart). The following sections define each of the properties in those sections.
+
+| Name | Type | Description
+| ---- | ---- | -----------
+| `angleLines` | `object` | Angle line configuration. [more...](#angle-line-options)
+| `gridLines` | `object` | Grid line configuration. [more...](../styling.md#grid-line-configuration)
+| `pointLabels` | `object` | Point label configuration. [more...](#point-label-options)
+| `ticks` | `object` | Tick configuration. [more...](#tick-options)
+
+## Tick Options
+The following options are provided by the linear scale. They are all located in the `ticks` sub options. The [common tick configuration](../styling.md#tick-configuration) options are supported by this axis.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `backdropColor` | `Color` | `'rgba(255, 255, 255, 0.75)'` | Color of label backdrops.
+| `backdropPaddingX` | `number` | `2` | Horizontal padding of label backdrop.
+| `backdropPaddingY` | `number` | `2` | Vertical padding of label backdrop.
+| `beginAtZero` | `boolean` | `false` | if true, scale will include 0 if it is not already included.
+| `min` | `number` | | User defined minimum number for the scale, overrides minimum value from data. [more...](#axis-range-settings)
+| `max` | `number` | | User defined maximum number for the scale, overrides maximum value from data. [more...](#axis-range-settings)
+| `maxTicksLimit` | `number` | `11` | Maximum number of ticks and gridlines to show.
+| `precision` | `number` | | if defined and `stepSize` is not specified, the step size will be rounded to this many decimal places.
+| `stepSize` | `number` | | User defined fixed step size for the scale. [more...](#step-size)
+| `suggestedMax` | `number` | | Adjustment used when calculating the maximum data value. [more...](#axis-range-settings)
+| `suggestedMin` | `number` | | Adjustment used when calculating the minimum data value. [more...](#axis-range-settings)
+| `showLabelBackdrop` | `boolean` | `true` | If true, draw a background behind the tick labels.
+
+## Axis Range Settings
+
+Given the number of axis range settings, it is important to understand how they all interact with each other.
+
+The `suggestedMax` and `suggestedMin` settings only change the data values that are used to scale the axis. These are useful for extending the range of the axis while maintaining the auto fit behaviour.
+
+```javascript
+let minDataValue = Math.min(mostNegativeValue, options.ticks.suggestedMin);
+let maxDataValue = Math.max(mostPositiveValue, options.ticks.suggestedMax);
+```
+
+In this example, the largest positive value is 50, but the data maximum is expanded out to 100. However, because the lowest data value is below the `suggestedMin` setting, it is ignored.
+
+```javascript
+let chart = new Chart(ctx, {
+    type: 'radar',
+    data: {
+        datasets: [{
+            label: 'First dataset',
+            data: [0, 20, 40, 50]
+        }],
+        labels: ['January', 'February', 'March', 'April']
+    },
+    options: {
+        scale: {
+            ticks: {
+                suggestedMin: 50,
+                suggestedMax: 100
+            }
+        }
+    }
+});
+```
+
+In contrast to the `suggested*` settings, the `min` and `max` settings set explicit ends to the axes. When these are set, some data points may not be visible.
+
+## Step Size
+If set, the scale ticks will be enumerated by multiple of `stepSize`, having one tick per increment. If not set, the ticks are labeled automatically using the nice numbers algorithm.
+
+This example sets up a chart with a y axis that creates ticks at `0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5`.
+
+```javascript
+let options = {
+    scale: {
+        ticks: {
+            max: 5,
+            min: 0,
+            stepSize: 0.5
+        }
+    }
+};
+```
+
+## Angle Line Options
+
+The following options are used to configure angled lines that radiate from the center of the chart to the point labels. They can be found in the `angleLines` sub options.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `display` | `boolean` | `true` | if true, angle lines are shown.
+| `color` | `Color` | `'rgba(0, 0, 0, 0.1)'` | Color of angled lines.
+| `lineWidth` | `number` | `1` | Width of angled lines.
+| `borderDash` | `number[]` | `[]` | Length and spacing of dashes on angled lines. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash).
+| `borderDashOffset` | `number` | `0.0` | Offset for line dashes. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset).
+
+## Point Label Options
+
+The following options are used to configure the point labels that are shown on the perimeter of the scale. They can be found in the `pointLabels` sub options.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `display` | `boolean` | `true` | if true, point labels are shown.
+| `callback` | `function` | | Callback function to transform data labels to point labels. The default implementation simply returns the current string.
+| `fontColor` | <code>Color&#124;Color[]</code> | `'#666'` | Font color for point labels.
+| `fontFamily` | `string` | `"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif"` | Font family to use when rendering labels.
+| `fontSize` | `number` | `10` | font size in pixels.
+| `fontStyle` | `string` | `'normal'` | Font style to use when rendering point labels.
+| `lineHeight` | <code>number&#124;string</code> | `1.2` | Height of an individual line of text (see [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height)).

+ 69 - 0
wwwroot/Plugins/Chart.js-master/docs/axes/styling.md

@@ -0,0 +1,69 @@
+# Styling
+
+There are a number of options to allow styling an axis. There are settings to control [grid lines](#grid-line-configuration) and [ticks](#tick-configuration).
+
+## Grid Line Configuration
+
+The grid line configuration is nested under the scale configuration in the `gridLines` key. It defines options for the grid lines that run perpendicular to the axis.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `display` | `boolean` | `true` | If false, do not display grid lines for this axis.
+| `circular` | `boolean` | `false` | If true, gridlines are circular (on radar chart only).
+| `color` | <code>Color&#124;Color[]</code> | `'rgba(0, 0, 0, 0.1)'` | The color of the grid lines. If specified as an array, the first color applies to the first grid line, the second to the second grid line and so on.
+| `borderDash` | `number[]` | `[]` | Length and spacing of dashes on grid lines. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash).
+| `borderDashOffset` | `number` | `0.0` | Offset for line dashes. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset).
+| `lineWidth` | <code>number&#124;number[]</code> | `1` | Stroke width of grid lines.
+| `drawBorder` | `boolean` | `true` | If true, draw border at the edge between the axis and the chart area.
+| `drawOnChartArea` | `boolean` | `true` | If true, draw lines on the chart area inside the axis lines. This is useful when there are multiple axes and you need to control which grid lines are drawn.
+| `drawTicks` | `boolean` | `true` | If true, draw lines beside the ticks in the axis area beside the chart.
+| `tickMarkLength` | `number` | `10` | Length in pixels that the grid lines will draw into the axis area.
+| `zeroLineWidth` | `number` | `1` | Stroke width of the grid line for the first index (index 0).
+| `zeroLineColor` | `Color` | `'rgba(0, 0, 0, 0.25)'` | Stroke color of the grid line for the first index (index 0).
+| `zeroLineBorderDash` | `number[]` | `[]` | Length and spacing of dashes of the grid line for the first index (index 0). See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash).
+| `zeroLineBorderDashOffset` | `number` | `0.0` | Offset for line dashes of the grid line for the first index (index 0). See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset).
+| `offsetGridLines` | `boolean` | `false` | If true, grid lines will be shifted to be between labels. This is set to `true` for a category scale in a bar chart by default.
+| `z` | `number` | `0` | z-index of gridline layer. Values &lt;= 0 are drawn under datasets, &gt; 0 on top.
+
+## Tick Configuration
+The tick configuration is nested under the scale configuration in the `ticks` key. It defines options for the tick marks that are generated by the axis.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `callback` | `function` | | Returns the string representation of the tick value as it should be displayed on the chart. See [callback](../axes/labelling.md#creating-custom-tick-formats).
+| `display` | `boolean` | `true` | If true, show tick labels.
+| `fontColor` | `Color` | `'#666'` | Font color for tick labels.
+| `fontFamily` | `string` | `"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif"` | Font family for the tick labels, follows CSS font-family options.
+| `fontSize` | `number` | `12` | Font size for the tick labels.
+| `fontStyle` | `string` | `'normal'` | Font style for the tick labels, follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit).
+| `lineHeight` | <code>number&#124;string</code> | `1.2` | Height of an individual line of text (see [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height)).
+| `reverse` | `boolean` | `false` | Reverses order of tick labels.
+| `minor` | `object` | `{}` | Minor ticks configuration. Omitted options are inherited from options above.
+| `major` | `object` | `{}` | Major ticks configuration. Omitted options are inherited from options above.
+| `padding` | `number` | `0` | Sets the offset of the tick labels from the axis
+| `z` | `number` | `0` | z-index of tick layer. Useful when ticks are drawn on chart area. Values &lt;= 0 are drawn under datasets, &gt; 0 on top.
+
+## Minor Tick Configuration
+The minorTick configuration is nested under the ticks configuration in the `minor` key. It defines options for the minor tick marks that are generated by the axis. Omitted options are inherited from `ticks` configuration.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `callback` | `function` | | Returns the string representation of the tick value as it should be displayed on the chart. See [callback](../axes/labelling.md#creating-custom-tick-formats).
+| `fontColor` | `Color` | `'#666'` | Font color for tick labels.
+| `fontFamily` | `string` | `"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif"` | Font family for the tick labels, follows CSS font-family options.
+| `fontSize` | `number` | `12` | Font size for the tick labels.
+| `fontStyle` | `string` | `'normal'` | Font style for the tick labels, follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit).
+| `lineHeight` | <code>number&#124;string</code> | `1.2` | Height of an individual line of text (see [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height)).
+
+## Major Tick Configuration
+The majorTick configuration is nested under the ticks configuration in the `major` key. It defines options for the major tick marks that are generated by the axis. Omitted options are inherited from `ticks` configuration. These options are disabled by default.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `enabled` | `boolean` | `false` | If true, major tick options are used to show major ticks.
+| `callback` | `function` | | Returns the string representation of the tick value as it should be displayed on the chart. See [callback](../axes/labelling.md#creating-custom-tick-formats).
+| `fontColor` | `Color` | `'#666'` | Font color for tick labels.
+| `fontFamily` | `string` | `"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif"` | Font family for the tick labels, follows CSS font-family options.
+| `fontSize` | `number` | `12` | Font size for the tick labels.
+| `fontStyle` | `string` | `'normal'` | Font style for the tick labels, follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit).
+| `lineHeight` | <code>number&#124;string</code> | `1.2` | Height of an individual line of text (see [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height)).

+ 14 - 0
wwwroot/Plugins/Chart.js-master/docs/charts/README.md

@@ -0,0 +1,14 @@
+# Charts
+
+Chart.js comes with built-in chart types:
+* [line](./line.md)
+* [bar](./bar.md)
+* [radar](./radar.md)
+* [doughnut and pie](./doughnut.md)
+* [polar area](./polar.md)
+* [bubble](./bubble.md)
+* [scatter](./scatter.md)
+
+[Area charts](area.md) can be built from a line or radar chart using the dataset `fill` option.
+
+To create a new chart type, see the [developer notes](../developers/charts.md#new-charts).

+ 72 - 0
wwwroot/Plugins/Chart.js-master/docs/charts/area.md

@@ -0,0 +1,72 @@
+# Area Charts
+
+Both [line](line.md) and [radar](radar.md) charts support a `fill` option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale `origin`, `start` or `end` (see [filling modes](#filling-modes)).
+
+> **Note:** this feature is implemented by the [`filler` plugin](https://github.com/chartjs/Chart.js/blob/master/src/plugins/plugin.filler.js).
+
+## Filling modes
+
+| Mode | Type | Values |
+| :--- | :--- | :--- |
+| Absolute dataset index <sup>1</sup> | `number` | `1`, `2`, `3`, ... |
+| Relative dataset index <sup>1</sup> | `string` | `'-1'`, `'-2'`, `'+1'`, ... |
+| Boundary <sup>2</sup> | `string` | `'start'`, `'end'`, `'origin'` |
+| Disabled <sup>3</sup> | `boolean` | `false` |
+
+> <sup>1</sup> dataset filling modes have been introduced in version 2.6.0<br>
+> <sup>2</sup> prior version 2.6.0, boundary values was `'zero'`, `'top'`, `'bottom'` (deprecated)<br>
+> <sup>3</sup> for backward compatibility, `fill: true` (default) is equivalent to `fill: 'origin'`<br>
+
+**Example**
+```javascript
+new Chart(ctx, {
+    data: {
+        datasets: [
+            {fill: 'origin'},      // 0: fill to 'origin'
+            {fill: '+2'},          // 1: fill to dataset 3
+            {fill: 1},             // 2: fill to dataset 1
+            {fill: false},         // 3: no fill
+            {fill: '-2'}           // 4: fill to dataset 2
+        ]
+    }
+});
+```
+
+## Configuration
+| Option | Type | Default | Description |
+| :--- | :--- | :--- | :--- |
+| [`plugins.filler.propagate`](#propagate) | `boolean` | `true` | Fill propagation when target is hidden.
+
+### propagate
+`propagate` takes a `boolean` value (default: `true`).
+
+If `true`, the fill area will be recursively extended to the visible target defined by the `fill` value of hidden dataset targets:
+
+**Example**
+```javascript
+new Chart(ctx, {
+    data: {
+        datasets: [
+            {fill: 'origin'},   // 0: fill to 'origin'
+            {fill: '-1'},       // 1: fill to dataset 0
+            {fill: 1},          // 2: fill to dataset 1
+            {fill: false},      // 3: no fill
+            {fill: '-2'}        // 4: fill to dataset 2
+        ]
+    },
+    options: {
+        plugins: {
+            filler: {
+                propagate: true
+            }
+        }
+    }
+});
+```
+
+`propagate: true`:
+- if dataset 2 is hidden, dataset 4 will fill to dataset 1
+- if dataset 2 and 1 are hidden, dataset 4 will fill to `'origin'`
+
+`propagate: false`:
+- if dataset 2 and/or 4 are hidden, dataset 4 will not be filled

+ 304 - 0
wwwroot/Plugins/Chart.js-master/docs/charts/bar.md

@@ -0,0 +1,304 @@
+# Bar
+A bar chart provides a way of showing data values represented as vertical bars. It is sometimes used to show trend data, and the comparison of multiple data sets side by side.
+
+{% chartjs %}
+{
+    "type": "bar",
+    "data": {
+        "labels": [
+            "January",
+            "February",
+            "March",
+            "April",
+            "May",
+            "June",
+            "July"
+        ],
+        "datasets": [{
+            "label": "My First Dataset",
+            "data": [65, 59, 80, 81, 56, 55, 40],
+            "fill": false,
+            "backgroundColor": [
+                "rgba(255, 99, 132, 0.2)",
+                "rgba(255, 159, 64, 0.2)",
+                "rgba(255, 205, 86, 0.2)",
+                "rgba(75, 192, 192, 0.2)",
+                "rgba(54, 162, 235, 0.2)",
+                "rgba(153, 102, 255, 0.2)",
+                "rgba(201, 203, 207, 0.2)"
+            ],
+            "borderColor": [
+                "rgb(255, 99, 132)",
+                "rgb(255, 159, 64)",
+                "rgb(255, 205, 86)",
+                "rgb(75, 192, 192)",
+                "rgb(54, 162, 235)",
+                "rgb(153, 102, 255)",
+                "rgb(201, 203, 207)"
+            ],
+            "borderWidth": 1
+        }]
+    },
+    "options": {
+        "scales": {
+            "yAxes": [{
+                "ticks": {
+                    "beginAtZero": true
+                }
+            }]
+        }
+    }
+}
+{% endchartjs %}
+
+## Example Usage
+```javascript
+var myBarChart = new Chart(ctx, {
+    type: 'bar',
+    data: data,
+    options: options
+});
+```
+
+## Dataset Properties
+
+The bar chart allows a number of properties to be specified for each dataset.
+These are used to set display properties for a specific dataset. For example,
+the color of the bars is generally set this way.
+
+| Name | Type | [Scriptable](../general/options.md#scriptable-options) | [Indexable](../general/options.md#indexable-options) | Default
+| ---- | ---- | :----: | :----: | ----
+| [`backgroundColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'rgba(0, 0, 0, 0.1)'`
+| [`borderColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'rgba(0, 0, 0, 0.1)'`
+| [`borderSkipped`](#borderskipped) | `string` | Yes | Yes | `'bottom'`
+| [`borderWidth`](#borderwidth) | <code>number&#124;object</code> | Yes | Yes | `0`
+| [`data`](#data-structure) | `object[]` | - | - | **required**
+| [`hoverBackgroundColor`](#interactions) | [`Color`](../general/colors.md) | - | Yes | `undefined`
+| [`hoverBorderColor`](#interactions) | [`Color`](../general/colors.md) | - | Yes | `undefined`
+| [`hoverBorderWidth`](#interactions) | `number` | - | Yes | `1`
+| [`label`](#general) | `string` | - | - | `''`
+| [`xAxisID`](#general) | `string` | - | - | first x axis
+| [`yAxisID`](#general) | `string` | - | - | first y axis
+
+### General
+
+| Name | Description
+| ---- | ----
+| `label` | The label for the dataset which appears in the legend and tooltips.
+| `xAxisID` | The ID of the x axis to plot this dataset on.
+| `yAxisID` | The ID of the y axis to plot this dataset on.
+
+### Styling
+
+The style of each bar can be controlled with the following properties:
+
+| Name | Description
+| ---- | ----
+| `backgroundColor` | The bar background color.
+| `borderColor` | The bar border color.
+| [`borderSkipped`](#borderskipped) | The edge to skip when drawing bar.
+| [`borderWidth`](#borderwidth) | The bar border width (in pixels).
+
+All these values, if `undefined`, fallback to the associated [`elements.rectangle.*`](../configuration/elements.md#rectangle-configuration) options.
+
+#### borderSkipped
+
+This setting is used to avoid drawing the bar stroke at the base of the fill.
+In general, this does not need to be changed except when creating chart types
+that derive from a bar chart.
+
+**Note:** for negative bars in vertical chart, `top` and `bottom` are flipped. Same goes for `left` and `right` in horizontal chart.
+
+Options are:
+* `'bottom'`
+* `'left'`
+* `'top'`
+* `'right'`
+* `false`
+
+#### borderWidth
+
+If this value is a number, it is applied to all sides of the rectangle (left, top, right, bottom), except [`borderSkipped`](#borderskipped). If this value is an object, the `left` property defines the left border width. Similarly the `right`, `top` and `bottom` properties can also be specified. Omitted borders and [`borderSkipped`](#borderskipped) are skipped.
+
+### Interactions
+
+The interaction with each bar can be controlled with the following properties:
+
+| Name | Description
+| ---- | -----------
+| `hoverBackgroundColor` | The bar background color when hovered.
+| `hoverBorderColor` | The bar border color when hovered.
+| `hoverBorderWidth` | The bar border width when hovered (in pixels).
+
+All these values, if `undefined`, fallback to the associated [`elements.rectangle.*`](../configuration/elements.md#rectangle-configuration) options.
+
+## Scale Configuration
+The bar chart accepts the following configuration from the associated `scale` options:
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `barPercentage` | `number` | `0.9` | Percent (0-1) of the available width each bar should be within the category width. 1.0 will take the whole category width and put the bars right next to each other. [more...](#barpercentage-vs-categorypercentage)
+| `categoryPercentage` | `number` | `0.8` | Percent (0-1) of the available width each category should be within the sample width. [more...](#barpercentage-vs-categorypercentage)
+| `barThickness` | <code>number&#124;string</code> | | Manually set width of each bar in pixels. If set to `'flex'`, it computes "optimal" sample widths that globally arrange bars side by side. If not set (default), bars are equally sized based on the smallest interval. [more...](#barthickness)
+| `maxBarThickness` | `number` | | Set this to ensure that bars are not sized thicker than this.
+| `minBarLength` | `number` | | Set this to ensure that bars have a minimum length in pixels.
+| `gridLines.offsetGridLines` | `boolean` | `true` | If true, the bars for a particular data point fall between the grid lines. The grid line will move to the left by one half of the tick interval. If false, the grid line will go right down the middle of the bars. [more...](#offsetgridlines)
+
+### Example Usage
+
+```javascript
+options = {
+    scales: {
+        xAxes: [{
+            barPercentage: 0.5,
+            barThickness: 6,
+            maxBarThickness: 8,
+            minBarLength: 2,
+            gridLines: {
+                offsetGridLines: true
+            }
+        }]
+    }
+};
+```
+### barThickness
+If this value is a number, it is applied to the width of each bar, in pixels. When this is enforced, `barPercentage` and `categoryPercentage` are ignored.
+
+If set to `'flex'`, the base sample widths are calculated automatically based on the previous and following samples so that they take the full available widths without overlap. Then, bars are sized using `barPercentage` and `categoryPercentage`. There is no gap when the percentage options are 1. This mode generates bars with different widths when data are not evenly spaced.
+
+If not set (default), the base sample widths are calculated using the smallest interval that prevents bar overlapping, and bars are sized using `barPercentage` and `categoryPercentage`. This mode always generates bars equally sized.
+
+### offsetGridLines
+If true, the bars for a particular data point fall between the grid lines. The grid line will move to the left by one half of the tick interval, which is the space between the grid lines. If false, the grid line will go right down the middle of the bars. This is set to true for a category scale in a bar chart while false for other scales or chart types by default.
+
+## Default Options
+
+It is common to want to apply a configuration setting to all created bar charts. The global bar chart settings are stored in `Chart.defaults.bar`. Changing the global options only affects charts created after the change. Existing charts are not changed.
+
+## barPercentage vs categoryPercentage
+
+The following shows the relationship between the bar percentage option and the category percentage option.
+
+```text
+// categoryPercentage: 1.0
+// barPercentage: 1.0
+Bar:        | 1.0 | 1.0 |
+Category:   |    1.0    |
+Sample:     |===========|
+
+// categoryPercentage: 1.0
+// barPercentage: 0.5
+Bar:          |.5|  |.5|
+Category:  |      1.0     |
+Sample:    |==============|
+
+// categoryPercentage: 0.5
+// barPercentage: 1.0
+Bar:            |1.||1.|
+Category:       |  .5  |
+Sample:     |==============|
+```
+
+## Data Structure
+
+The `data` property of a dataset for a bar chart is specified as an array of numbers. Each point in the data array corresponds to the label at the same index on the x axis.
+
+```javascript
+data: [20, 10]
+```
+
+You can also specify the dataset as x/y coordinates when using the [time scale](../axes/cartesian/time.md#time-cartesian-axis).
+
+```javascript
+data: [{x:'2016-12-25', y:20}, {x:'2016-12-26', y:10}]
+```
+
+You can also specify the dataset for a bar chart as arrays of two numbers. This will force rendering of bars with gaps between them (floating-bars). First and second numbers in array will correspond the start and the end point of a bar respectively.
+```javascript
+data: [[5,6], [-3,-6]]
+```
+
+## Stacked Bar Chart
+
+Bar charts can be configured into stacked bar charts by changing the settings on the X and Y axes to enable stacking. Stacked bar charts can be used to show how one data series is made up of a number of smaller pieces.
+
+```javascript
+var stackedBar = new Chart(ctx, {
+    type: 'bar',
+    data: data,
+    options: {
+        scales: {
+            xAxes: [{
+                stacked: true
+            }],
+            yAxes: [{
+                stacked: true
+            }]
+        }
+    }
+});
+```
+
+The following dataset properties are specific to stacked bar charts.
+
+| Name | Type | Description
+| ---- | ---- | -----------
+| `stack` | `string` | The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).
+
+## Horizontal Bar Chart
+A horizontal bar chart is a variation on a vertical bar chart. It is sometimes used to show trend data, and the comparison of multiple data sets side by side.
+{% chartjs %}
+{
+    "type": "horizontalBar",
+    "data": {
+        "labels": ["January", "February", "March", "April", "May", "June", "July"],
+        "datasets": [{
+            "label": "My First Dataset",
+            "data": [65, 59, 80, 81, 56, 55, 40],
+            "fill": false,
+            "backgroundColor": [
+                "rgba(255, 99, 132, 0.2)",
+                "rgba(255, 159, 64, 0.2)",
+                "rgba(255, 205, 86, 0.2)",
+                "rgba(75, 192, 192, 0.2)",
+                "rgba(54, 162, 235, 0.2)",
+                "rgba(153, 102, 255, 0.2)",
+                "rgba(201, 203, 207, 0.2)"
+            ],
+            "borderColor": [
+                "rgb(255, 99, 132)",
+                "rgb(255, 159, 64)",
+                "rgb(255, 205, 86)",
+                "rgb(75, 192, 192)",
+                "rgb(54, 162, 235)",
+                "rgb(153, 102, 255)",
+                "rgb(201, 203, 207)"
+            ],
+            "borderWidth": 1
+        }]
+    },
+    "options": {
+        "scales": {
+            "xAxes": [{
+                "ticks": {
+                    "beginAtZero": true
+                }
+            }]
+        }
+    }
+}
+{% endchartjs %}
+
+## Example
+```javascript
+var myBarChart = new Chart(ctx, {
+    type: 'horizontalBar',
+    data: data,
+    options: options
+});
+```
+
+### Config Options
+The configuration options for the horizontal bar chart are the same as for the [bar chart](#scale-configuration). However, any options specified on the x axis in a bar chart, are applied to the y axis in a horizontal bar chart.
+
+The default horizontal bar configuration is specified in `Chart.defaults.horizontalBar`.

+ 111 - 0
wwwroot/Plugins/Chart.js-master/docs/charts/bubble.md

@@ -0,0 +1,111 @@
+# Bubble Chart
+
+A bubble chart is used to display three dimensions of data at the same time. The location of the bubble is determined by the first two dimensions and the corresponding horizontal and vertical axes. The third dimension is represented by the size of the individual bubbles.
+
+{% chartjs %}
+{
+    "type": "bubble",
+    "data": {
+        "datasets": [{
+            "label": "First Dataset",
+            "data": [{
+                "x": 20,
+                "y": 30,
+                "r": 15
+            }, {
+                "x": 40,
+                "y": 10,
+                "r": 10
+            }],
+            "backgroundColor": "rgb(255, 99, 132)"
+        }]
+    }
+}
+{% endchartjs %}
+
+## Example Usage
+
+```javascript
+// For a bubble chart
+var myBubbleChart = new Chart(ctx, {
+    type: 'bubble',
+    data: data,
+    options: options
+});
+```
+
+## Dataset Properties
+
+The bubble chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of the bubbles is generally set this way.
+
+| Name | Type | [Scriptable](../general/options.md#scriptable-options) | [Indexable](../general/options.md#indexable-options) | Default
+| ---- | ---- | :----: | :----: | ----
+| [`backgroundColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'rgba(0, 0, 0, 0.1)'`
+| [`borderColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'rgba(0, 0, 0, 0.1)'`
+| [`borderWidth`](#styling) | `number` | Yes | Yes | `3`
+| [`data`](#data-structure) | `object[]` | - | - | **required**
+| [`hoverBackgroundColor`](#interactions) | [`Color`](../general/colors.md) | Yes | Yes | `undefined`
+| [`hoverBorderColor`](#interactions) | [`Color`](../general/colors.md) | Yes | Yes | `undefined`
+| [`hoverBorderWidth`](#interactions) | `number` | Yes | Yes | `1`
+| [`hoverRadius`](#interactions) | `number` | Yes | Yes | `4`
+| [`hitRadius`](#interactions) | `number` | Yes | Yes | `1`
+| [`label`](#labeling) | `string` | - | - | `undefined`
+| [`pointStyle`](#styling) | `string` | Yes | Yes | `'circle'`
+| [`rotation`](#styling) | `number` | Yes | Yes | `0`
+| [`radius`](#styling) | `number` | Yes | Yes | `3`
+
+### Labeling
+
+`label` defines the text associated to the dataset and which appears in the legend and tooltips.
+
+### Styling
+
+The style of each bubble can be controlled with the following properties:
+
+| Name | Description
+| ---- | ----
+| `backgroundColor` | bubble background color.
+| `borderColor` | bubble border color.
+| `borderWidth` | bubble border width (in pixels).
+| `pointStyle` | bubble [shape style](../configuration/elements#point-styles).
+| `rotation` | bubble rotation (in degrees).
+| `radius` | bubble radius (in pixels).
+
+All these values, if `undefined`, fallback to the associated [`elements.point.*`](../configuration/elements.md#point-configuration) options.
+
+### Interactions
+
+The interaction with each bubble can be controlled with the following properties:
+
+| Name | Description
+| ---- | -----------
+| `hoverBackgroundColor` | bubble background color when hovered.
+| `hoverBorderColor` | bubble border color when hovered.
+| `hoverBorderWidth` | bubble border width when hovered (in pixels).
+| `hoverRadius` | bubble **additional** radius when hovered (in pixels).
+| `hitRadius` | bubble **additional** radius for hit detection (in pixels).
+
+All these values, if `undefined`, fallback to the associated [`elements.point.*`](../configuration/elements.md#point-configuration) options.
+
+## Default Options
+
+We can also change the default values for the Bubble chart type. Doing so will give all bubble charts created after this point the new defaults. The default configuration for the bubble chart can be accessed at `Chart.defaults.bubble`.
+
+## Data Structure
+
+Bubble chart datasets need to contain a `data` array of points, each points represented by an object containing the following properties:
+
+```javascript
+{
+    // X Value
+    x: number,
+
+    // Y Value
+    y: number,
+
+    // Bubble radius in pixels (not scaled).
+    r: number
+}
+```
+
+**Important:** the radius property, `r` is **not** scaled by the chart, it is the raw radius in pixels of the bubble that is drawn on the canvas.

+ 136 - 0
wwwroot/Plugins/Chart.js-master/docs/charts/doughnut.md

@@ -0,0 +1,136 @@
+# Doughnut and Pie
+Pie and doughnut charts are probably the most commonly used charts. They are divided into segments, the arc of each segment shows the proportional value of each piece of data.
+
+They are excellent at showing the relational proportions between data.
+
+Pie and doughnut charts are effectively the same class in Chart.js, but have one different default value - their `cutoutPercentage`. This equates what percentage of the inner should be cut out. This defaults to `0` for pie charts, and `50` for doughnuts.
+
+They are also registered under two aliases in the `Chart` core. Other than their different default value, and different alias, they are exactly the same.
+
+{% chartjs %}
+{
+    "type": "doughnut",
+    "data": {
+        "labels": [
+            "Red",
+            "Blue",
+            "Yellow"
+        ],
+        "datasets": [{
+            "label": "My First Dataset",
+            "data": [300, 50, 100],
+            "backgroundColor": [
+                "rgb(255, 99, 132)",
+                "rgb(54, 162, 235)",
+                "rgb(255, 205, 86)"
+            ]
+        }]
+    }
+}
+{% endchartjs %}
+
+## Example Usage
+
+```javascript
+// For a pie chart
+var myPieChart = new Chart(ctx, {
+    type: 'pie',
+    data: data,
+    options: options
+});
+```
+
+```javascript
+// And for a doughnut chart
+var myDoughnutChart = new Chart(ctx, {
+    type: 'doughnut',
+    data: data,
+    options: options
+});
+```
+
+## Dataset Properties
+
+The doughnut/pie chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of a the dataset's arc are generally set this way.
+
+| Name | Type | [Scriptable](../general/options.md#scriptable-options) | [Indexable](../general/options.md#indexable-options) | Default
+| ---- | ---- | :----: | :----: | ----
+| [`backgroundColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'rgba(0, 0, 0, 0.1)'`
+| [`borderAlign`](#border-alignment) | `string` | Yes | Yes | `'center'`
+| [`borderColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'#fff'`
+| [`borderWidth`](#styling) | `number` | Yes | Yes | `2`
+| [`data`](#data-structure) | `number[]` | - | - | **required**
+| [`hoverBackgroundColor`](#interations) | [`Color`](../general/colors.md) | Yes | Yes | `undefined`
+| [`hoverBorderColor`](#interactions) | [`Color`](../general/colors.md) | Yes | Yes | `undefined`
+| [`hoverBorderWidth`](#interactions) | `number` | Yes | Yes | `undefined`
+| [`weight`](#styling) | `number` | - | - | `1`
+
+### Styling
+
+The style of each arc can be controlled with the following properties:
+
+| Name | Description
+| ---- | ----
+| `backgroundColor` | arc background color.
+| `borderColor` | arc border color.
+| `borderWidth` | arc border width (in pixels).
+| `weight` | The relative thickness of the dataset. Providing a value for weight will cause the pie or doughnut dataset to be drawn with a thickness relative to the sum of all the dataset weight values.
+
+All these values, if `undefined`, fallback to the associated [`elements.arc.*`](../configuration/elements.md#arc-configuration) options.
+
+### Border Alignment
+
+The following values are supported for `borderAlign`.
+* `'center'` (default)
+* `'inner'`
+
+When `'center'` is set, the borders of arcs next to each other will overlap. When `'inner'` is set, it is guaranteed that all borders will not overlap.
+
+### Interactions
+
+The interaction with each arc can be controlled with the following properties:
+
+| Name | Description
+| ---- | -----------
+| `hoverBackgroundColor` | arc background color when hovered.
+| `hoverBorderColor` | arc border color when hovered.
+| `hoverBorderWidth` | arc border width when hovered (in pixels).
+
+All these values, if `undefined`, fallback to the associated [`elements.arc.*`](../configuration/elements.md#arc-configuration) options.
+
+## Config Options
+
+These are the customisation options specific to Pie & Doughnut charts. These options are merged with the global chart configuration options, and form the options of the chart.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `cutoutPercentage` | `number` | `50` - for doughnut, `0` - for pie | The percentage of the chart that is cut out of the middle.
+| `rotation` | `number` | `-0.5 * Math.PI` | Starting angle to draw arcs from.
+| `circumference` | `number` | `2 * Math.PI` | Sweep to allow arcs to cover.
+| `animation.animateRotate` | `boolean` | `true` | If true, the chart will animate in with a rotation animation. This property is in the `options.animation` object.
+| `animation.animateScale` | `boolean` | `false` | If true, will animate scaling the chart from the center outwards.
+
+## Default Options
+
+We can also change these default values for each Doughnut type that is created, this object is available at `Chart.defaults.doughnut`. Pie charts also have a clone of these defaults available to change at `Chart.defaults.pie`, with the only difference being `cutoutPercentage` being set to 0.
+
+## Data Structure
+
+For a pie chart, datasets need to contain an array of data points. The data points should be a number, Chart.js will total all of the numbers and calculate the relative proportion of each.
+
+You also need to specify an array of labels so that tooltips appear correctly.
+
+```javascript
+data = {
+    datasets: [{
+        data: [10, 20, 30]
+    }],
+
+    // These labels appear in the legend and in the tooltips when hovering different arcs
+    labels: [
+        'Red',
+        'Yellow',
+        'Blue'
+    ]
+};
+```

+ 281 - 0
wwwroot/Plugins/Chart.js-master/docs/charts/line.md

@@ -0,0 +1,281 @@
+# Line
+A line chart is a way of plotting data points on a line. Often, it is used to show trend data, or the comparison of two data sets.
+
+{% chartjs %}
+{
+    "type": "line",
+    "data": {
+        "labels": [
+            "January",
+            "February",
+            "March",
+            "April",
+            "May",
+            "June",
+            "July"
+        ],
+        "datasets": [{
+            "label": "My First Dataset",
+            "data": [65, 59, 80, 81, 56, 55, 40],
+            "fill": false,
+            "borderColor": "rgb(75, 192, 192)",
+            "lineTension": 0.1
+        }]
+    },
+    "options": {
+
+    }
+}
+{% endchartjs %}
+
+## Example Usage
+```javascript
+var myLineChart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: options
+});
+```
+
+## Dataset Properties
+
+The line chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of a line is generally set this way.
+
+| Name | Type | [Scriptable](../general/options.md#scriptable-options) | [Indexable](../general/options.md#indexable-options) | Default
+| ---- | ---- | :----: | :----: | ----
+| [`backgroundColor`](#line-styling) | [`Color`](../general/colors.md) | Yes | - | `'rgba(0, 0, 0, 0.1)'`
+| [`borderCapStyle`](#line-styling) | `string` | Yes | - | `'butt'`
+| [`borderColor`](#line-styling) | [`Color`](../general/colors.md) | Yes | - | `'rgba(0, 0, 0, 0.1)'`
+| [`borderDash`](#line-styling) | `number[]` | Yes | - | `[]`
+| [`borderDashOffset`](#line-styling) | `number` | Yes | - | `0.0`
+| [`borderJoinStyle`](#line-styling) | `string` | Yes | - | `'miter'`
+| [`borderWidth`](#line-styling) | `number` | Yes | - | `3`
+| [`cubicInterpolationMode`](#cubicinterpolationmode) | `string` | Yes | - | `'default'`
+| [`fill`](#line-styling) | <code>boolean&#124;string</code> | Yes | - | `true`
+| [`label`](#general) | `string` | - | - | `''`
+| [`lineTension`](#line-styling) | `number` | - | - | `0.4`
+| [`pointBackgroundColor`](#point-styling) | `Color` | Yes | Yes | `'rgba(0, 0, 0, 0.1)'`
+| [`pointBorderColor`](#point-styling) | `Color` | Yes | Yes | `'rgba(0, 0, 0, 0.1)'`
+| [`pointBorderWidth`](#point-styling) | `number` | Yes | Yes | `1`
+| [`pointHitRadius`](#point-styling) | `number` | Yes | Yes | `1`
+| [`pointHoverBackgroundColor`](#interactions) | `Color` | Yes | Yes | `undefined`
+| [`pointHoverBorderColor`](#interactions) | `Color` | Yes | Yes | `undefined`
+| [`pointHoverBorderWidth`](#interactions) | `number` | Yes | Yes | `1`
+| [`pointHoverRadius`](#interactions) | `number` | Yes | Yes | `4`
+| [`pointRadius`](#point-styling) | `number` | Yes | Yes | `3`
+| [`pointRotation`](#point-styling) | `number` | Yes | Yes | `0`
+| [`pointStyle`](#point-styling) | <code>string&#124;Image</code> | Yes | Yes | `'circle'`
+| [`showLine`](#line-styling) | `boolean` | - | - | `undefined`
+| [`spanGaps`](#line-styling) | `boolean` | - | - | `undefined`
+| [`steppedLine`](#stepped-line) | <code>boolean&#124;string</code> | - | - | `false`
+| [`xAxisID`](#general) | `string` | - | - | first x axis
+| [`yAxisID`](#general) | `string` | - | - | first y axis
+
+### General
+
+| Name | Description
+| ---- | ----
+| `label` | The label for the dataset which appears in the legend and tooltips.
+| `xAxisID` | The ID of the x axis to plot this dataset on.
+| `yAxisID` | The ID of the y axis to plot this dataset on.
+
+### Point Styling
+
+The style of each point can be controlled with the following properties:
+
+| Name | Description
+| ---- | ----
+| `pointBackgroundColor` | The fill color for points.
+| `pointBorderColor` | The border color for points.
+| `pointBorderWidth` | The width of the point border in pixels.
+| `pointHitRadius` | The pixel size of the non-displayed point that reacts to mouse events.
+| `pointRadius` | The radius of the point shape. If set to 0, the point is not rendered.
+| `pointRotation` | The rotation of the point in degrees.
+| `pointStyle` | Style of the point. [more...](../configuration/elements.md#point-styles)
+
+All these values, if `undefined`, fallback first to the dataset options then to the associated [`elements.point.*`](../configuration/elements.md#point-configuration) options.
+
+### Line Styling
+
+The style of the line can be controlled with the following properties:
+
+| Name | Description
+| ---- | ----
+| `backgroundColor` | The line fill color.
+| `borderCapStyle` | Cap style of the line. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap).
+| `borderColor` | The line color.
+| `borderDash` | Length and spacing of dashes. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash).
+| `borderDashOffset` | Offset for line dashes. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset).
+| `borderJoinStyle` | Line joint style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin).
+| `borderWidth` | The line width (in pixels).
+| `fill` | How to fill the area under the line. See [area charts](area.md).
+| `lineTension` | Bezier curve tension of the line. Set to 0 to draw straightlines. This option is ignored if monotone cubic interpolation is used.
+| `showLine` | If false, the line is not drawn for this dataset.
+| `spanGaps` | If true, lines will be drawn between points with no or null data. If false, points with `NaN` data will create a break in the line.
+
+If the value is `undefined`, `showLine` and `spanGaps` fallback to the associated [chart configuration options](#configuration-options). The rest of the values fallback to the associated [`elements.line.*`](../configuration/elements.md#line-configuration) options.
+
+### Interactions
+
+The interaction with each point can be controlled with the following properties:
+
+| Name | Description
+| ---- | -----------
+| `pointHoverBackgroundColor` | Point background color when hovered.
+| `pointHoverBorderColor` | Point border color when hovered.
+| `pointHoverBorderWidth` | Border width of point when hovered.
+| `pointHoverRadius` | The radius of the point when hovered.
+
+### cubicInterpolationMode
+The following interpolation modes are supported.
+* `'default'`
+* `'monotone'`
+
+The `'default'` algorithm uses a custom weighted cubic interpolation, which produces pleasant curves for all types of datasets.
+
+The `'monotone'` algorithm is more suited to `y = f(x)` datasets : it preserves monotonicity (or piecewise monotonicity) of the dataset being interpolated, and ensures local extremums (if any) stay at input data points.
+
+If left untouched (`undefined`), the global `options.elements.line.cubicInterpolationMode` property is used.
+
+### Stepped Line
+The following values are supported for `steppedLine`.
+* `false`: No Step Interpolation (default)
+* `true`: Step-before Interpolation (eq. `'before'`)
+* `'before'`: Step-before Interpolation
+* `'after'`: Step-after Interpolation
+* `'middle'`: Step-middle Interpolation
+
+If the `steppedLine` value is set to anything other than false, `lineTension` will be ignored.
+
+## Configuration Options
+
+The line chart defines the following configuration options. These options are merged with the global chart configuration options, `Chart.defaults.global`, to form the options passed to the chart.
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| `showLines` | `boolean` | `true` | If false, the lines between points are not drawn.
+| `spanGaps` | `boolean` | `false` | If false, NaN data causes a break in the line.
+
+## Default Options
+
+It is common to want to apply a configuration setting to all created line charts. The global line chart settings are stored in `Chart.defaults.line`. Changing the global options only affects charts created after the change. Existing charts are not changed.
+
+For example, to configure all line charts with `spanGaps = true` you would do:
+```javascript
+Chart.defaults.line.spanGaps = true;
+```
+
+## Data Structure
+
+The `data` property of a dataset for a line chart can be passed in two formats.
+
+### number[]
+```javascript
+data: [20, 10]
+```
+
+When the `data` array is an array of numbers, the x axis is generally a [category](../axes/cartesian/category.md#category-cartesian-axis). The points are placed onto the axis using their position in the array. When a line chart is created with a category axis, the `labels` property of the data object must be specified.
+
+### Point[]
+
+```javascript
+data: [{
+    x: 10,
+    y: 20
+}, {
+    x: 15,
+    y: 10
+}]
+```
+
+This alternate is used for sparse datasets, such as those in [scatter charts](./scatter.md#scatter-chart). Each data point is specified using an object containing `x` and `y` properties.
+
+## Stacked Area Chart
+
+Line charts can be configured into stacked area charts by changing the settings on the y axis to enable stacking. Stacked area charts can be used to show how one data trend is made up of a number of smaller pieces.
+
+```javascript
+var stackedLine = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            yAxes: [{
+                stacked: true
+            }]
+        }
+    }
+});
+```
+
+## High Performance Line Charts
+
+When charting a lot of data, the chart render time may start to get quite large. In that case, the following strategies can be used to improve performance.
+
+### Data Decimation
+
+Decimating your data will achieve the best results. When there is a lot of data to display on the graph, it doesn't make sense to show tens of thousands of data points on a graph that is only a few hundred pixels wide.
+
+There are many approaches to data decimation and selection of an algorithm will depend on your data and the results you want to achieve. For instance, [min/max](https://digital.ni.com/public.nsf/allkb/F694FFEEA0ACF282862576020075F784) decimation will preserve peaks in your data but could require up to 4 points for each pixel. This type of decimation would work well for a very noisy signal where you need to see data peaks.
+
+### Disable Bezier Curves
+
+If you are drawing lines on your chart, disabling bezier curves will improve render times since drawing a straight line is more performant than a bezier curve.
+
+To disable bezier curves for an entire chart:
+
+```javascript
+new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        elements: {
+            line: {
+                tension: 0 // disables bezier curves
+            }
+        }
+    }
+});
+```
+
+### Disable Line Drawing
+
+If you have a lot of data points, it can be more performant to disable rendering of the line for a dataset and only draw points. Doing this means that there is less to draw on the canvas which will improve render performance.
+
+To disable lines:
+
+```javascript
+new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            showLine: false // disable for a single dataset
+        }]
+    },
+    options: {
+        showLines: false // disable for all datasets
+    }
+});
+```
+
+### Disable Animations
+
+If your charts have long render times, it is a good idea to disable animations. Doing so will mean that the chart needs to only be rendered once during an update instead of multiple times. This will have the effect of reducing CPU usage and improving general page performance.
+
+To disable animations
+
+```javascript
+new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        animation: {
+            duration: 0 // general animation time
+        },
+        hover: {
+            animationDuration: 0 // duration of animations when hovering an item
+        },
+        responsiveAnimationDuration: 0 // animation duration after a resize
+    }
+});
+```

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно