alhazmy13 / Angular4-word-cloud

Word cloud directive for Angular4
https://alhazmy13.github.io/Angular4-word-cloud/index.html
10 stars 12 forks source link
angular4 d3 wordcloud

ag-word-cloud

NPM

Coverage Status npm version GitHub issues GitHub stars GitHub license

Angular4 Word Cloud

Links:

Installation

To install this library, run:

$ npm install angular4-word-cloud --save
$ npm install d3 --save

API

Import


// In your App's module:
imports: [
   AgWordCloudModule.forRoot()
]

Then add add the script to .angular-cli.json

"scripts": [
      ***
        "../node_modules/angular4-word-cloud/d3.min.js"
      ]

How to use

There are one directive for word cloud: ag-word-cloud, to use it just add this block on your html file:

<div AgWordCloud 
    #word_cloud_chart=ag-word-cloud 
    [wordData]="word_cloud"
     [options]="options">
    </div>
// Create Work Cloud Data Array
wordData: Array<AgWordCloudData> = [// Words];
// Word Cloud Options
options = {
    settings: {
        minFontSize: 10,
        maxFontSize: 100,
        textRotation: 0 // see below
    },
    margin: {
        top: 10,
        right: 10,
        bottom: 10,
        left: 10
    },
    labels: true // false to hide hover labels
};

Properties

Events

To Update it dynamically

First of all you need to add a reference for your div:

<div WordCloud #word_cloud_chart=word-cloud [wordData]="word_cloud" [height]="300"></div>

Update your component to this:

export class MyComponent implements ..... {
...
    @ViewChild('word_cloud_chart') word_cloud_chart: WordCloudDirective;
    word_cloud: Array<WordCloudData> = [];
.....
    updateWordCloud(wordCloud: WordCloud) {
        this.word_cloud.length = 0;
        const temp = wordCloud.words.map(res => {
            return {text: res.word, size: res.score};
        });
        this.word_cloud.push(...temp);
        setTimeout(() => {
            this.word_cloud_chart.update();
        });
    }

When ever you ready just call updateWordCloud .

Troubleshooting

Please follow this guidelines when reporting bugs and feature requests:

  1. Use GitHub Issues board to report bugs and feature requests (not our email address)
  2. Please always write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it.

Thanks for understanding!

License

MIT © Abdullah Alhazmy