Explorar el Código

update values with svg animation

tags/1.2.0
pratu16x7 hace 7 años
padre
commit
e08196e0fd
Se han modificado 11 ficheros con 3324 adiciones y 0 borrados
  1. +7
    -0
      docs/assets/css/bootstrap.min.css
  2. +99
    -0
      docs/assets/css/default.css
  3. +693
    -0
      docs/assets/css/frappe_theme.css
  4. +59
    -0
      docs/assets/css/index.css
  5. +424
    -0
      docs/assets/css/normalize.css
  6. +2
    -0
      docs/assets/js/highlight.pack.js
  7. +84
    -0
      docs/assets/js/index.js
  8. +193
    -0
      docs/index.html
  9. +10
    -0
      docs/test_data.json
  10. +272
    -0
      src/charts.css
  11. +1481
    -0
      src/charts.js

+ 7
- 0
docs/assets/css/bootstrap.min.css
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 99
- 0
docs/assets/css/default.css Ver fichero

@@ -0,0 +1,99 @@
/*

Original highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>

*/

.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #F0F0F0;
}


/* Base color: saturation 0; */

.hljs,
.hljs-subst {
color: #444;
}

.hljs-comment {
color: #888888;
}

.hljs-keyword,
.hljs-attribute,
.hljs-selector-tag,
.hljs-meta-keyword,
.hljs-doctag,
.hljs-name {
font-weight: bold;
}


/* User color: hue: 0 */

.hljs-type,
.hljs-string,
.hljs-number,
.hljs-selector-id,
.hljs-selector-class,
.hljs-quote,
.hljs-template-tag,
.hljs-deletion {
color: #880000;
}

.hljs-title,
.hljs-section {
color: #880000;
font-weight: bold;
}

.hljs-regexp,
.hljs-symbol,
.hljs-variable,
.hljs-template-variable,
.hljs-link,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #BC6060;
}


/* Language color: hue: 90; */

.hljs-literal {
color: #78A960;
}

.hljs-built_in,
.hljs-bullet,
.hljs-code,
.hljs-addition {
color: #397300;
}


/* Meta color: hue: 200 */

.hljs-meta {
color: #1f7199;
}

.hljs-meta-string {
color: #4d99bf;
}


/* Misc effects */

.hljs-emphasis {
font-style: italic;
}

.hljs-strong {
font-weight: bold;
}

+ 693
- 0
docs/assets/css/frappe_theme.css Ver fichero

@@ -0,0 +1,693 @@
/*-------------------------------------

Custom CSS

---------------------------------------*/
body {
font-family: "proxima-nova", sans-serif;
font-size: 15px;
color: #6c7680;
text-rendering: optimizeLegibility !important;
line-height: 1.5em;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
}
p.lead {
font-family: "proxima-nova", sans-serif;
}
h1,
h2,
h3,
h4,
h5,
h6,
.lead,
.page-sidebar,
.breadcrumb,
.label,
.h6,
.sans,
blockquote {
font-family: "proxima-nova", sans-serif;
color: #36414C;
}
button,
.button,
.btn {
font-family: "proxima-nova", sans-serif;
}
.page-header-block,
.page-header-actions {
display: none;
}
.btn-primary {
background-color: #7575ff;
border-color: #7575ff;
}
.btn-primary :hover {
background-color: #5b5be5;
}
article button,
article .button,
article .btn,
blockquote {
font-size: 0.93em;
}
article ul > li,
article ol > li {
margin: 10px 0px;
}
figcaption {
font-size: 0.8em;
color: #B8C2CC;
padding: 10px 0px;
line-height: 1.3em;
}
.text-extra-muted {
color: #B8C2CC !important;
}
.page-sidebar,
.breadcrumb {
line-height: 1.5em;
}
.breadcrumb {
background-color: transparent;
padding: 10px 0px;
}
.breadcrumb a,
.breadcrumb a:hover,
.breadcrumb a:focus,
.breadcrumb a:visited {
color: inherit;
}
.container,
.navbar,
footer {
max-width: 900px;
margin: auto;
}
@media (min-width: 768px) {
.narrow {
max-width: 75%;
margin: auto;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 700;
}
p.description,
p.description a {
color: #B8C2CC;
font-size: 1.06em;
margin: 12px 0 0;
text-decoration: none;
}
p.description a:focus,
p.description a:active,
p.description a:hover {
color: #36414C;
}
.hero-content p.description,
.page-hero p.description,
.hero-content p.description a,
.page-hero p.description a {
font-size: 0.9em;
}
.hero-content .x-large.button,
.page-hero .x-large.button {
font-size: 1em;
}
a {
color: #5E64FF;
}
a,
a:focus,
a:hover {
transition: color 0.3s, border 0.3s, background-color 0.3s;
}
a.grey {
color: #36414C;
}
a.close,
a.btn {
text-decoration: none;
}
.navbar a,
.sidebar-navbar-items a {
color: inherit;
text-decoration: none;
border-color: inherit;
}
.page-padding,
.page-content {
padding-top: 30px;
padding-bottom: 30px;
}
.page-title {
text-align: center;
margin-top: 30px;
}
.page-sub-title {
color: #8D99A6;
text-align: center;
margin-top: 0px;
margin-bottom: 45px;
font-weight: 300;
}
.btn-white {
background-color: #fff;
color: #36414C;
border-color: #d1d8dd;
}
.btn-white:hover {
background-color: #fafbfc;
}
.screenshot {
border: 2px solid #d1d8dd;
box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.15);
margin: 15px 0px;
}
blockquote {
border-left: 5px solid #F0F4F7;
background-color: #fafbfc;
margin-top: 15px;
}
blockquote p {
margin: 0px;
}
.page-hero {
padding: 130px 0px 100px;
margin-top: -60px;
}
h1 {
font-size: 2.13em;
}
.navbar {
background-color: transparent;
}
.button {
display: inline-block;
border-radius: 4px;
padding: 7px 12px 9px;
line-height: 1;
text-decoration: none;
}
.button:hover,
.button:active,
.button:focus {
text-decoration: none;
}
.large.button {
font-size: 1.33em;
padding: 12px 24px 10px;
border-bottom: 3px solid rgba(0, 0, 0, 0.2);
}
.x-large.button {
font-size: 1.6em;
padding: 16px 40px;
border-bottom: 3px solid rgba(0, 0, 0, 0.2);
}
.small.button {
padding-top: 11px;
}
.blue.button {
color: #fff;
background: #7575ff;
border: 0px;
border-bottom: 3px solid rgba(0, 0, 0, 0.2);
}
.blue.button:hover {
background: #5b5be5;
}
.white.button {
color: #6C7680;
border: 1px solid #d1d8dd;
}
.white.button:hover {
background: #fafbfc;
}
.navbar {
padding: 10px 0px;
border-bottom: 1px solid #d1d8dd;
}
.navbar-brand,
.navbar-brand:hover,
.navbar-brand:visited,
.navbar-brand:focus {
font-size: 1.2em;
text-decoration: none;
color: #36414C;
}
.hero {
padding: 70px 0;
font-size: 1.6em;
font-weight: 300;
text-align: center;
}
.hero-content {
font-weight: 300;
margin-top: 12px;
}
.hero-content h1 {
padding-top: 24px;
font-size: 1.5em;
}
.hero-content p {
width: 80%;
margin: 0 auto 24px;
line-height: 1.4;
}
.hero-content p.description {
margin-top: 16px;
margin-bottom: 0px;
}
.group,
.border-bottom {
border-bottom: 1px solid #d1d8dd;
}
.row.section,
section {
padding: 70px 0 70px;
}
.row.section p,
section p {
color: #6c7680;
}
.content {
padding: 24px 40px 0;
}
.small-content {
text-align: center;
padding: 0 32px;
}
.small-content img {
width: 130px;
height: 130px;
}
.small-content h1 {
font-size: 1.5em;
}
.tiny-content {
margin-bottom: 40px;
font-size: 1em;
}
.tiny-content h1 {
color: #36414c;
}
.tiny-content p {
margin: 6px 0 0;
color: #858d95;
}
.tiny-content h1 {
font-size: 1.2em;
}
footer {
color: #8D99A6;
padding: 3px 0;
border-top: 1px solid #d1d8dd;
}
footer h1 {
color: #36414C;
font-size: 1.42em;
margin: 0;
}
footer p {
margin: 0;
padding: 2px 0 10px;
color: #6c7680;
}
footer ul,
footer ul li {
margin: 0;
padding: 0;
list-style-type: none;
text-align: center;
}
footer li a {
text-decoration: none;
color: #6c7680;
}
footer li a:hover,
footer li a:active,
footer li a:focus {
color: #36414C;
text-decoration: none;
}
.footer-list {
text-align: center;
display: inline-block;
width: 100%;
margin-top: 50px;
margin-bottom: 10px;
}
.footer-list ul {
margin-top: 20px;
}
.footer-list li {
margin: 0px 15px;
display: inline-block;
}
.footer-link {
color: #B8C2CC;
}
.footer-link:hover,
.footer-link:focus {
color: #8D99A6;
}
.copyright {
font-size: 0.8em;
text-align: center;
padding-bottom: 50px;
}
.copyright p {
padding-bottom: 0px;
color: #B8C2CC;
}
.center {
text-align: center;
}
/*-------------------------------------

ERPNext

---------------------------------------*/
.erp-next-logo {
margin: 8px 0;
height: 14px;
width: 76px;
}
.erp-hero {
width: 500px;
margin: auto;
}
.tabs {
text-align: center;
}
.tabs ul,
.tabs li {
margin: 0;
padding: 0;
list-style-type: none;
display: inline-block;
}
.tabs ul {
margin: 0 auto;
}
.tabs li {
width: 64px;
text-align: center;
margin: 0 16px;
}
.tabs li input {
background: transparent;
border: 0;
color: #8d99a6;
padding-bottom: 8px;
transition: 0.5s;
border-bottom: 2px solid transparent;
cursor: pointer;
}
.tabs li input:focus {
outline: none;
}
.tabs li input:hover {
color: #36414c;
}
.tabs li input.active {
color: #36414c;
border-bottom: 2px solid #7575ff;
}
.feature {
text-align: center;
display: none;
}
.feature p,
.feature h1 {
width: 65%;
margin: 0 auto;
}
.feature h1 {
padding: 40px 0 16px;
}
.feature p {
font-size: 1.13em;
padding-bottom: 24px;
}
/*-------------------------------------

Frappé for Developers

---------------------------------------*/
.developers-hero {
width: 313px;
}
.developers-logo {
height: 19px;
}
.erp-framework {
width: 80%;
margin: 30px auto;
}
.get-involved {
color: #36414c;
font-size: 1.2em;
text-align: center;
}
.get-involved p {
margin-top: 0;
}
.get-involved img {
width: 20px;
height: 20px;
margin: -3px 10px 0 -5px;
}
.get-involved .button {
margin: 0 4px;
}
/*-------------------------------------

Frappé

---------------------------------------*/
.frappe-hero {
width: 385px;
}
.frappe-logo {
height: 19px;
}
.open-source {
text-align: center;
}
.open-source img {
width: 325px;
}
.team-picture {
text-align: center;
}
.team-picture h1 {
margin: 0 0 40px;
}
.team-description {
text-align: center;
margin-bottom: 20px;
}
.team-description a {
text-decoration: none;
}
.input-label {
margin: 16px 0 3px;
color: #8d99a6;
font-size: 0.93em;
}
#message {
height: 150px;
}
#send {
display: block;
text-align: center;
margin-top: 16px;
}
.office-map {
width: 394px;
margin-top: 40px;
}
.contact .content {
margin-top: -40px;
}
.page-breadcrumbs {
display: none !important;
}
.half-width {
max-width: 50%;
margin-left: auto;
margin-right: auto;
}
.width-75 {
max-width: 75%;
margin-left: auto;
margin-right: auto;
}
.media-object {
max-width: 120px;
margin-right: 15px;
}
.browser-image {
border: 1px solid #d1d8dd;
}
.fake-browser-frame {
position: relative;
margin: 40px auto;
max-width: 600px;
}
.fake-browser-frame::before {
content: "";
height: 24px;
position: absolute;
top: -24px;
left: 0px;
right: 0px;
border: 1px solid #d1d8dd;
border-bottom: none;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.fake-browser-frame::after {
content: '\f052 \f052 \f052';
position: absolute;
color: #d1d8dd;
top: -17px;
left: 8px;
/* octicon */
font: normal normal 12px octicons;
line-height: 1;
display: inline-block;
text-decoration: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.fake-iphone-frame {
position: relative;
padding: 40px 8px;
border: 1px solid #d1d8dd;
border-radius: 15px;
}
.fake-ipad-frame {
position: relative;
padding: 8px 40px;
border: 1px solid #d1d8dd;
border-radius: 15px;
}
.cover {
width: 100%;
}
.underline {
color: inherit;
text-decoration: underline;
}
.underline:hover,
.underline:focus,
.underline:active {
color: #36414C;
}
.spacer {
margin-top: 40px;
margin-bottom: 40px;
}
article h3 {
margin-top: 40px;
}
article hr + h3 {
margin-top: 0px;
}
.negative-margin {
margin-left: -15px;
margin-right: -15px;
padding-left: 15px;
padding-right: 15px;
}
.navbar-icon {
width: 24px;
margin-right: 7px;
margin-top: -3px;
}
.large-description {
line-height: 1.5;
font-size: 1.5em;
font-weight: 200;
display: inline-block;
}
@media (max-width: 767px) {
.navbar {
height: auto;
}
.hero {
font-size: 1.2em;
}
.large-description {
font-size: 1.2em;
}
.hero-content h1 {
font-size: 1.2em;
}
.hero-content p {
width: 100%;
}
.small-content {
padding-top: 70px;
}
.small-content:first-child {
padding-top: 0px;
}
.page-content {
padding-top: 0px;
}
.footer-list {
margin-top: 40px;
}
.footer-list li {
margin: 15px 0px;
display: block;
text-align: left;
}
.copyright {
text-align: left;
padding-bottom: 55px;
}
.half-width {
max-width: 90%;
}
.width-75 {
max-width: 100%;
}
.fake-iphone-frame {
display: inline-block;
margin-bottom: 60px;
}
.erp-hero {
margin-bottom: 1px;
}
}
.website-list .result {
border: none;
}
.page-container {
max-width: 970px;
margin: 0 auto;
}

.text-center {
text-align: center;
}

.jumbotron {
margin-bottom: 0;
}

+ 59
- 0
docs/assets/css/index.css Ver fichero

@@ -0,0 +1,59 @@
.page-header {
width: 100%;
text-align: center;
color: #fff;
padding: 2em 0;
}

.project-name {
padding-top: 1.8em;
font-size: 2.5em;
}
.project-tagline {
font-size: 1em;
opacity: 0.7;
padding: 2em;
}
.btn-transparent {
margin: 0 0.5em;
color: #fff;
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.4)
}
.btn-transparent:hover {
color: #fff;
background: rgba(255, 255, 255, 0.3);
}

.main-content {
padding: 2em;
}

.main-content .row {
margin-bottom: 20px;
}

hr {
margin-bottom: 2rem;
}

.chart-container {
border: 1px solid #ddd;
border-radius: 3px;
}

pre.highlight {
background: #f7f7f7;
border-radius: 3px;
}

.btn-group>.btn {
outline: none !important;
}
.dashboard-section h1 {
margin-left: -2px;
}

.hero .gantt-container {
text-align: left;
}

+ 424
- 0
docs/assets/css/normalize.css Ver fichero

@@ -0,0 +1,424 @@
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */

/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/

html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}

/**
* Remove default margin.
*/

body {
margin: 0;
}

/* HTML5 display definitions
========================================================================== */

/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}

/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/

audio,
canvas,
progress,
video {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}

/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/

audio:not([controls]) {
display: none;
height: 0;
}

/**
* Address `[hidden]` styling not present in IE 8/9/10.
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
*/

[hidden],
template {
display: none;
}

/* Links
========================================================================== */

/**
* Remove the gray background color from active links in IE 10.
*/

a {
background-color: transparent;
}

/**
* Improve readability when focused and also mouse hovered in all browsers.
*/

a:active,
a:hover {
outline: 0;
}

/* Text-level semantics
========================================================================== */

/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/

abbr[title] {
border-bottom: 1px dotted;
}

/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/

b,
strong {
font-weight: bold;
}

/**
* Address styling not present in Safari and Chrome.
*/

dfn {
font-style: italic;
}

/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/

h1 {
font-size: 2em;
margin: 0.67em 0;
}

/**
* Address styling not present in IE 8/9.
*/

mark {
background: #ff0;
color: #000;
}

/**
* Address inconsistent and variable font size in all browsers.
*/

small {
font-size: 80%;
}

/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/

sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}

sup {
top: -0.5em;
}

sub {
bottom: -0.25em;
}

/* Embedded content
========================================================================== */

/**
* Remove border when inside `a` element in IE 8/9/10.
*/

img {
border: 0;
}

/**
* Correct overflow not hidden in IE 9/10/11.
*/

svg:not(:root) {
overflow: hidden;
}

/* Grouping content
========================================================================== */

/**
* Address margin not present in IE 8/9 and Safari.
*/

figure {
margin: 1em 40px;
}

/**
* Address differences between Firefox and other browsers.
*/

hr {
box-sizing: content-box;
height: 0;
}

/**
* Contain overflow in all browsers.
*/

pre {
overflow: auto;
}

/**
* Address odd `em`-unit font size rendering in all browsers.
*/

code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}

/* Forms
========================================================================== */

/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/

/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
*/

button,
input,
optgroup,
select,
textarea {
color: inherit; /* 1 */
font: inherit; /* 2 */
margin: 0; /* 3 */
}

/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/

button {
overflow: visible;
}

/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/

button,
select {
text-transform: none;
}

/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/

button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}

/**
* Re-set default cursor for disabled elements.
*/

button[disabled],
html input[disabled] {
cursor: default;
}

/**
* Remove inner padding and border in Firefox 4+.
*/

button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}

/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/

input {
line-height: normal;
}

/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/

input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}

/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}

/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
* (include `-moz` to future-proof).
*/

input[type="search"] {
-webkit-appearance: textfield; /* 1 */ /* 2 */
box-sizing: content-box;
}

/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}

/**
* Define consistent border, margin, and padding.
*/

fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}

/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/

legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}

/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/

textarea {
overflow: auto;
}

/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/

optgroup {
font-weight: bold;
}

/* Tables
========================================================================== */

/**
* Remove most spacing between table cells.
*/

table {
border-collapse: collapse;
border-spacing: 0;
}

td,
th {
padding: 0;
}

+ 2
- 0
docs/assets/js/highlight.pack.js
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 84
- 0
docs/assets/js/index.js Ver fichero

@@ -0,0 +1,84 @@
let bar_data = {
"labels": ["Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep"],
"datasets": [{
"color": "orange",
"values": [50804, 10000, 20000, 61500, 82936.88, 24010, 4000, 6000, 25840, 50804.82, 116820, 6000],
"formatted": ["₹ 0.00", "₹ 0.00", "₹ 0.00", "₹ 61,500.00", "₹ 82,936.88", "₹ 24,010.00", "₹ 0.00", "₹ 0.00", "₹ 25,840.00", "₹ 5,08,048.82", "₹ 1,16,820.00", "₹ 0.00"],
},
// {
// "color": "blue",
// "values": [108048, 0, 0, 101500, 50000.88, 24010, 0, 0, 25840, 108048.82, 51682, 0],
// "formatted": ["₹ 0.00", "₹ 0.00", "₹ 0.00", "₹ 61,500.00", "₹ 82,936.88", "₹ 24,010.00", "₹ 0.00", "₹ 0.00", "₹ 25,840.00", "₹ 5,08,048.82", "₹ 1,16,820.00", "₹ 0.00"],
// }
]
}

let line_data = {
"labels": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
"datasets": [{
"color": "green",
"values": [25, 40, 30, 35, 48, 52, 17]
}
]
};

let more_line_data = {
0: {
values: [25, 40, 30, 35, 48, 52, 17]
},
1: {
values: [35, 48, 40, 30, 52, 17, 25]
},
2: {
values: [5, 48, 52, 17, 25, 40, 30]
},
3: {
values: [25, 40, 30, 35, 48, 52, 17]
},
4: {
values: [35, 48, 40, 30, 52, 17, 72]
},
5: {
values: [5, 48, 52, 17, 72, 40, 30]
},
6: {
values: [72, 40, 30, 35, 48, 52, 17]
},
7: {
values: [35, 48, 40, 30, 52, 17, 25]
},
8: {
values: [5, 48, 52, 17, 25, 40, 30]
},
9: {
values: [25, 40, 30, 35, 48, 52, 17]
},
10: {
values: [35, 48, 40, 30, 52, 17, 25]
},
11: {
values: [5, 48, 52, 17, 25, 40, 30]
}
}

let bar_chart = new FrappeChart ({
parent: "#charts-1",
data: bar_data,
type: 'bar',
height: 140,
is_navigable: 1
})

let line_chart = new FrappeChart ({
parent: "#charts-2",
data: line_data,
type: 'line',
height: 140,
is_navigable: 0
})

bar_chart.parent.addEventListener('data-select', (e) => {
line_chart.update_values([more_line_data[e.index]]);
});

console.log("chart", bar_chart);

+ 193
- 0
docs/index.html Ver fichero

@@ -0,0 +1,193 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Frappe Charts</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="keywords" content="open source javascript js charts library svg zero-dependency interactive data visualization beautiful drag resize">
<meta name="description" content="A simple, responsive, modern charts library for the web.">

<link rel="stylesheet" type="text/css" href="assets/css/normalize.css" media="screen">
<!--<link href='https://fonts.googleapis.com/css?family=Roboto:400,700' rel='stylesheet' type='text/css'>-->
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.min.css" media="screen">
<link rel="stylesheet" type="text/css" href="assets/css/frappe_theme.css" media="screen">
<link rel="stylesheet" type="text/css" href="assets/css/index.css" media="screen">
<link rel="stylesheet" type="text/css" href="assets/css/default.css" media="screen">
<link rel="stylesheet" type="text/css" href="../src/charts.css" media="screen">
<script src="assets/js/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

<!--<link rel="shortcut icon" href="https://frappe.github.io/frappe/assets/img/favicon.png" type="image/x-icon">
<link rel="icon" href="https://frappe.github.io/frappe/assets/img/favicon.png" type="image/x-icon">-->
</head>

<body>
<div class="container">
<div class="row hero" style="padding-top: 30px; padding-bottom: 0px;">
<div class="jumbotron" style="background: transparent;">
<h1>Frappé Charts</h1>
<p class="mt-2">GitHub-style simple and modern charts for the web</p>
<p class="mt-2">with zero dependencies.</p>
</div>

<div class="col-sm-10 push-sm-1 later" style="font-size: 14px;">
<div id="charts-1" class="chart-container"></div>
<p class="mt-1"><strong>Try it!</strong> Use arrow keys to navigate data points</p>
</div>
<div class="col-sm-10 push-sm-1 later" style="font-size: 14px;">
<div id="charts-2" class="chart-container"></div>
</div>
</div>

<div class="group later">
<div class="row section">
<div class="col-sm-10 push-sm-1">
<div class="dashboard-section">
<h1>Installation</h1>
<pre>
<code class="hljs">npm install frappe-charts</code>
</pre>
<svg class="chart" width="720" height="140">

<rect class="bar mini fill green" x="449.99999999999994" y="15.32519666666667" width="23.076923076923077" height="10">
</rect>
<!--<animate
attributeName="height"
from="10"
to="110"
begin="0.2s"
dur="2s"
values="10;110"
keySplines="0 0 1 1"
keyTimes="
0;1"
calcMode="spline"


/>-->

<!--<animate
attributeName="height"
from="10"
to="110"
begin="0s"
dur="1s"
values="10;110"
keySplines="0.1 0.8 0.2 1"
keyTimes="
0;1"
calcMode="spline"


/>
<animate
attributeName="y"
from="15"
to="50"
begin="0s"
dur="1s"
values="15;50"
keySplines="0.1 0.8 0.2 1"
keyTimes="
0;1"
calcMode="spline"


/>-->

<path class="stroke green"
d="M0,100L54.55,100L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,100L381.82,100L436.36,95.69L490.91,15.33L545.45,80.53L600,100">
<animate
attributeName="d"
from="M0,100L54.55,100L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,100L381.82,100L436.36,95.69L490.91,15.33L545.45,80.53L600,100"
to="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L222.73,96L267.27,32L381.82,45L436.36,95.69L490.91,65.33L545.45,80.53L600,100"
begin="1s"
dur="1s"
values="M0,100L54.55,100L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,100L381.82,100L436.36,95.69L490.91,15.33L545.45,80.53L600,100;
M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L222.73,96L267.27,32L381.82,45L436.36,95.69L490.91,65.33L545.45,80.53L600,100"
keySplines="0.1 0.8 0.2 1"
keyTimes="
0;1"
calcMode="spline"
repeatCount="indefinite"
/>
</path>
<!--<path class="stroke green"
d="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20">
<animate
attributeName="d"
from="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20"
to="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20L560,80L600,50"
begin="0s"
dur="6s"
values="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20;
M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20L560,80L600,50"
keySplines="0.1 0.8 0.2 1"
keyTimes="
0;1"
calcMode="spline"
repeatCount="indefinite"
/>
</path>-->

<!--<path class="stroke green" d="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L600,100"></path>-->
</svg>
<!--<svg class="chart" width="720" height="140">
<path class="stroke green" d="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20L560,80L600,50"></path>
</svg>-->
</div>
</div>
<div class="col-sm-10 push-sm-1">
<div class="dashboard-section">
<h1>Usage</h1>
<h6 style="margin:2em 0 0 0">
Include it in your html
</h6>
<pre>
<code class="hljs html">&lt;script src="frappe-charts.min.js" /&gt;</code>
</pre>
<h6 style="margin:0">Create an svg element</h6>
<pre>
<code class="hljs html">&lt;svg id="chart"&gt;&lt;/svg&gt;</code>
</pre>
<h6 style="margin:0">Initiliaze a new Chart object</h6>
<pre>
<code class="hljs javascript">var tasks = [
{
id: 'Task 1',
name: 'Redesign website',
start: '2016-12-28',
end: '2016-12-31',
progress: 20,
dependencies: 'Task 2, Task 3'
},
...
]
var chart = new Chart;
</code>
</pre>
</div>
</div>
<div class="col-sm-10 push-sm-1">
<div class="dashboard-section">
<h1>Examples</h1>




<!-- Closing -->
<div class="text-center" style="margin-top: 70px">
<a href=""><button class="large blue button">Download</button></a>
<p class="mt-2"><a href="https://github.com/frappe" target="_blank">View on GitHub</a></p>
<p>License: MIT</p>
</div>
</div>
</div>
</div>
</div>
</div>

<script src="../src/charts.js"></script>
<script src="assets/js/index.js"></script>
</body>
</html>

+ 10
- 0
docs/test_data.json Ver fichero

@@ -0,0 +1,10 @@
{
"labels": ["Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep"],
"datasets": [{
"color": "green",
"values": [0, 0, 0, 61500, 82936.88, 24010, 0, 0, 25840, 508048.82, 116820, 0],
"formatted": ["₹ 0.00", "₹ 0.00", "₹ 0.00", "₹ 61,500.00", "₹ 82,936.88", "₹ 24,010.00", "₹ 0.00", "₹ 0.00", "₹ 25,840.00", "₹ 5,08,048.82", "₹ 1,16,820.00", "₹ 0.00"],
"y_tops": [100, 100, 100, 89.75, 86.17718666666667, 95.99833333333333, 100, 100, 95.69333333333333, 15.32519666666667, 80.53, 100],
"data_units": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}]
}]
}

+ 272
- 0
src/charts.css Ver fichero

@@ -0,0 +1,272 @@
/* graphs */
.graph-container .graph-focus-margin {
margin: 0px 5%;
}
.graph-container .graphics {
margin-top: 10px;
padding-top: 10px;
padding-bottom: 10px;
position: relative;
}
.graph-container .graph-stats-group {
display: flex;
justify-content: space-around;
flex: 1;
}
.graph-container .graph-stats-container {
display: flex;
justify-content: space-around;
padding-top: 10px;
}
.graph-container .graph-stats-container .stats {
padding-bottom: 15px;
}
.graph-container .graph-stats-container .stats-title {
color: #8D99A6;
}
.graph-container .graph-stats-container .stats-value {
font-size: 20px;
font-weight: 300;
}
.graph-container .graph-stats-container .stats-description {
font-size: 12px;
color: #8D99A6;
}
.graph-container .graph-stats-container .graph-data .stats-value {
color: #98d85b;
}
.graph-container .axis,
.graph-container .chart-label {
font-size: 10px;
fill: #959ba1;
}
.graph-container .axis line,
.graph-container .chart-label line {
stroke: rgba(27, 31, 35, 0.1);
}
.graph-container .percentage-graph .progress {
margin-bottom: 0px;
}
.graph-container .data-points circle {
stroke: #fff;
stroke-width: 2;
}
.graph-container .data-points path {
fill: none;
stroke-opacity: 1;
stroke-width: 2px;
}
.graph-container line.dashed {
stroke-dasharray: 5,3;
}
.graph-container .tick.x-axis-label {
display: block;
}
.graph-container .tick .specific-value {
text-anchor: start;
}
.graph-container .tick .y-value-text {
text-anchor: end;
}
.graph-container .tick .x-value-text {
text-anchor: middle;
}
.graph-svg-tip {
position: absolute;
z-index: 99999;
padding: 10px;
font-size: 12px;
color: #959da5;
text-align: center;
background: rgba(0, 0, 0, 0.8);
border-radius: 3px;
}
.graph-svg-tip.comparison {
padding: 0;
text-align: left;
pointer-events: none;
}
.graph-svg-tip.comparison .title {
display: block;
padding: 10px;
margin: 0;
font-weight: 600;
line-height: 1;
pointer-events: none;
}
.graph-svg-tip.comparison ul {
margin: 0;
white-space: nowrap;
list-style: none;
}
.graph-svg-tip.comparison li {
display: inline-block;
padding: 5px 10px;
}
.graph-svg-tip ul,
.graph-svg-tip ol {
padding-left: 0;
display: flex;
}
.graph-svg-tip ul.data-point-list li {
min-width: 90px;
flex: 1;
}
.graph-svg-tip strong {
color: #dfe2e5;
}
.graph-svg-tip .svg-pointer {
position: absolute;
bottom: -10px;
left: 50%;
width: 5px;
height: 5px;
margin: 0 0 0 -5px;
content: " ";
border: 5px solid transparent;
border-top-color: rgba(0, 0, 0, 0.8);
}
.stroke.grey {
stroke: #F0F4F7;
}
.stroke.blue {
stroke: #5e64ff;
}
.stroke.red {
stroke: #ff5858;
}
.stroke.light-green {
stroke: #98d85b;
}
.stroke.green {
stroke: #28a745;
}
.stroke.orange {
stroke: #ffa00a;
}
.stroke.purple {
stroke: #743ee2;
}
.stroke.darkgrey {
stroke: #b8c2cc;
}
.stroke.black {
stroke: #36414C;
}
.stroke.yellow {
stroke: #FEEF72;
}
.stroke.light-blue {
stroke: #7CD6FD;
}
.stroke.lightblue {
stroke: #7CD6FD;
}
.fill.grey {
fill: #F0F4F7;
}
.fill.blue {
fill: #5e64ff;
}
.fill.red {
fill: #ff5858;
}
.fill.light-green {
fill: #98d85b;
}
.fill.green {
fill: #28a745;
}
.fill.orange {
fill: #ffa00a;
}
.fill.purple {
fill: #743ee2;
}
.fill.darkgrey {
fill: #b8c2cc;
}
.fill.black {
fill: #36414C;
}
.fill.yellow {
fill: #FEEF72;
}
.fill.light-blue {
fill: #7CD6FD;
}
.fill.lightblue {
fill: #7CD6FD;
}
.background.grey {
background: #F0F4F7;
}
.background.blue {
background: #5e64ff;
}
.background.red {
background: #ff5858;
}
.background.light-green {
background: #98d85b;
}
.background.green {
background: #28a745;
}
.background.orange {
background: #ffa00a;
}
.background.purple {
background: #743ee2;
}
.background.darkgrey {
background: #b8c2cc;
}
.background.black {
background: #36414C;
}
.background.yellow {
background: #FEEF72;
}
.background.light-blue {
background: #7CD6FD;
}
.background.lightblue {
background: #7CD6FD;
}
.border-top.grey {
border-top: 3px solid #F0F4F7;
}
.border-top.blue {
border-top: 3px solid #5e64ff;
}
.border-top.red {
border-top: 3px solid #ff5858;
}
.border-top.light-green {
border-top: 3px solid #98d85b;
}
.border-top.green {
border-top: 3px solid #28a745;
}
.border-top.orange {
border-top: 3px solid #ffa00a;
}
.border-top.purple {
border-top: 3px solid #743ee2;
}
.border-top.darkgrey {
border-top: 3px solid #b8c2cc;
}
.border-top.black {
border-top: 3px solid #36414C;
}
.border-top.yellow {
border-top: 3px solid #FEEF72;
}
.border-top.light-blue {
border-top: 3px solid #7CD6FD;
}
.border-top.lightblue {
border-top: 3px solid #7CD6FD;
}

+ 1481
- 0
src/charts.js
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


Cargando…
Cancelar
Guardar