@momentum-design/charts
A pure library based on web components and chart.js that is for building dashboards
which can be used in any front-end framework.
All examples in website are using the JSX and online code editor to render charts in real time.
Installation
umd
The UMD build is also available on unpkg.com:
<link rel="stylesheet" href="https://unpkg.com/@momentum-design/charts/dist/charts.css" />
<script src="https://unpkg.com/@momentum-design/charts/dist/charts.umd.js"></script>
Then you can find the library on window.md.
npm
NPM is the easiest and fastest way to get started using this library. It is also the recommended installation method when building single-page applications (SPAs). It pairs nicely with a CommonJS module bundler such as Webpack.
$ npm i @momentum-design/charts
Use with Angular
- 
Import library and enable web component support in src/app/app.module.ts. import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
+import '@momentum-design/charts';
import { AppComponent } from './app.component';
@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent],
+  schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class AppModule { }
 
- 
Use the components in your HTML template. <md-chart
  type="pie"
  data='{
         "Alabama": 13,
         "Colorado": 17,
         "Arizona": 8,
         "Vermont": 10,
         "South Carolina": 40
       }'
></md-chart>
 
Contributing
Prerequisites
Steps to Start
- 
Clone this repo. 
- 
Install all dependencies via run command npm run init.
 
- 
Now, run npm startto start your work.
 
- 
The component code should be placed to src/components. The new component should be structured as below: new-component
  ├─ index.ts                 // should export all public members
  ├─ new-component.ts         // the component code
  ├─ new-component.spec.ts    // unit tests
  ├─ new-component.types.ts   // all types definitions
  └─ new-component.plugins.ts // plugins of chart.js if need
 
- 
The style file should be placed with component code and imported in src/styles/main.scss. 
- 
Also export the new component in src/components/index.ts file. 
- 
The internal folder dependency should be as below. That means we should not import anything from core folder into types folder or components into core folder. components ─⫸ core ─⫸ types
 
 
- 
Commit your changes and push them to your forked repo, and submit a Pull Request to main branch. 
Styles Guides
- 
Coding guidelines 
- Names
- Use PascalCasefor type names.
- Do not use Ias a prefix for interface names.
- Use PascalCasefor enum values.
- Use camelCasefor function names.
- Use camelCasefor property names and local variables.
- Do not use _as a prefix for private properties.
- Use whole words in names when possible.
- Use CONSTANT_CASEfor the constants that is immutable.
 
 
- 
Documentation Guide 
Commit Message Guidelines
All commit message MUST follow Angular Commit Message Format.
Format as:
<type>(<scope>): <short summary>
  │       │             │
  │       │             └─⫸ Summary in present tense. Not capitalized. No period at the end.
  │       │
  │       └─⫸ Commit Scope: <component-name>
  │
  └─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test
The <type> and <summary> fields are mandatory, the (<scope>) field is optional.
Useful Commands
- npm run datawill print the random data which is predefined in ./tools/data.ts and can be used to test your component. For example,- npm run data -- --pie --default --5,- npm run data -- --number --10to get 10 random numbers.