import { Component, Input } from '@angular/core';
import { RdComponent } from "../../base/rdComponent";
import { ScriptLoaderService } from '../../library/script-loader.service';
declare var TagCanvas;
export interface ICloudItem {
text: string,
href: string
}
@Component({
selector: 'rd-word-cloud',
template: `
`
})
export class WordCloud extends RdComponent {
constructor(private script: ScriptLoaderService) {
super();
this.script.load(["./assets/js/excanvas.js", "./assets/js/tagcanvas.js"]).then(() => this.setCloud());
}
@Input("rd-width") width: number | string = 250;
@Input("rd-height") height: number | string = 250;
@Input("rd-items") items: Array = [];
tagCanvasID = "tagcanvas" + (Math.random() * 100).toFixed(0);
setCloud() {
let options = {
textFont: 'Impact,Arial Black,sans-serif',
textHeight: 20,
maxSpeed: 0.1,
decel: 0.9,
depth: 0.99,
outlineColour: '#f6f',
outlineThickness: 3,
pulsateTo: 0.2,
pulsateTime: 0.5,
wheelZoom: false
};
TagCanvas.textFont = 'Trebuchet MS, Helvetica, sans-serif';
TagCanvas.textColour = '#000';
TagCanvas.textHeight = 15;
TagCanvas.outlineColour = '#FA7029';
TagCanvas.maxSpeed = 0.03;
TagCanvas.minBrightness = 0.2;
TagCanvas.depth = 0.92;
TagCanvas.pulsateTo = 0.6;
TagCanvas.initial = [0.1, -0.1];
TagCanvas.decel = 0.98;
TagCanvas.reverse = true;
TagCanvas.hideTags = false;
TagCanvas.shadow = '#ccf';
TagCanvas.shadowBlur = 3;
TagCanvas.weight = false;
TagCanvas.imageScale = null;
TagCanvas.fadeIn = 1000;
try {
TagCanvas.Start(this.tagCanvasID, 'taglist');
TagCanvas.Start('smallCanvas', 'moreTags', options);
TagCanvas.Start('otherCanvas', "options", options);
}
catch (e) {
document.getElementsByTagName('canvas')[0].style.border = '0'
}
}
}