Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

angular-tag-cloud

zeeshanhyder127MIT0.3.4

Create simple clean tag clouds in your Angular app. No other dependencies required.

angular, cloud-tags, tag-cloud, angular-tag-cloud, tags

readme

angular-tag-cloud

Create simple and clean tag clouds in angular with this library. This library is jQuery-less, for-angular port of Lucaong's jQCloud library.

Installation

General

  • Copy/move ng-tag-cloud.js from src dir in the package to your project dir
  • In your Angular app, add a dependency to your module as below:

    angular.module('yourApp',['ngTagCloud',...]');

bower

In your project dir, type the following command:

$ bower install angular-tag-cloud

Then add a <script> in your project html:

<script src='/bower_components/angular-tag-cloud/src/ng-tag-cloud.js'></script>

And finally in your Angular app, add the dependency as:

angular.module('yourApp',['ngTagCloud',...]');

npm

In your project dir, run the following command:

$ npm install angular-tag-cloud

Then require() in your project source as:

require('angular-tag-cloud')

Styling

I have included a default css file for default styling. Include it in your file:

<link rel="stylesheet" href="[bower_components | node_modules]/angular-tag-cloud/src/css/ng-tag-cloud.css">

You can easily override it with your custom css class.

Usage

In your html file, use the component like this:

<ng-tag-cloud cloud-width="250" cloud-height="250" cloud-data="data"></ng-tag-cloud> <!-- default height and width is 300px -->

or with your custom defined css. Please check code example to see how to implement custom css.

<ng-tag-cloud class="custom-css-class" cloud-width="250" cloud-height="250" cloud-data="data"></ng-tag-cloud>

You can also pass the font-sizes to make sure that the words not overlapping:

<ng-tag-cloud weights="[ '100%' , '120%' , '160%' , '180%' ]"></ng-tag-cloud> 

you can use 'px' or 'rem' as well.

where your data is of JSON format as shown below. In your controller:

$scope.data = [
          {text: "Lorem", weight: 15, link: "https://google.com"}, //if your tag has a link.
          {text: "Ipsum", weight: 9},
          {text: "Dolor", weight: 6},
          {text: "Sit", weight: 7},
          {text: "Amet", weight: 5}
          // ...as many words as you want
      ];

You can control whether there will be delay in word drawing like this:

<ng-tag-cloud  cloud-width="250" cloud-height="250" delayed-mode="false"></ng-tag-cloud>
  • True - 10 ms delay.
  • False - No delay.
  • Undefined - True only if there is more then 50 words.

You can pass function that will invoke after word cloud is rendered:

<ng-tag-cloud  on-rendered="ctrl.myFunc()"></ng-tag-cloud>

Examples

Please check the examples directory to get the exact idea of what i am talking about. It's always better to check examples.

Check code example here.

changelog

angular-tag-cloud changelog

v0.3.4 (19/12/2017)

  • Fix - not forcing to add click function
  • Add the ability to pass the weights into the component. (to make sure that words not overlapping because of custom css)

v0.3.3 (24/01/2017)

  • Expose "afterCloudRender" function call to user (on-rendered attribute).
  • Fix - run afterCloudRender.call() only after cloud render .(instead on before and after) . yonatan20.

v0.3.2 (22/01/2017)

  • Expose the "delayed-mode" to user.
  • Removed redundant Second call for drawing the words. yonatan20.

v0.3.1 (06/11/2016)

  • Added the minified version. By Ashok.

v0.3.0 (25/04/2016)

  • Added href support to tags. Use link property on tag object to specify link value.

v0.2.5

v0.2.0

  • Added overflow option.
  • Changed license to MIT
  • npm installation guide

v0.1.0

  • Basic options: height, width.
  • Custom css styling support