File: /home/barbeatleanalyti/www/barisnew.beatleanalytics.com/HTML-/js/app/weather/angular-skycons.js
var angularSkycons = angular.module( 'angular-skycons', [] );
angularSkycons.directive( 'skycon', function () {
return {
restrict: 'E',
replace: true,
scope: {
icon: "=",
size: "="
},
link: function ( scope, element, attrs ) {
// make a canvas for our icon
var canvas = document.createElement( 'canvas' );
// set the CSS class from attribute
if ( !attrs.class ) {
canvas.className = "";
} else {
canvas.className = attrs.class;
}
// set default color if "color" attribute not present
var config = {};
if ( !attrs.color ) {
config.color = "black";
} else {
config.color = attrs.color;
}
var skycons = new Skycons( config );
// watch the size property from the controller
scope.$watch( "size", function ( newVal, oldVal ) {
if ( newVal ) {
canvas.height = newVal;
canvas.width = newVal;
} else {
canvas.height = scope.size || 64;
canvas.width = scope.size || 64;
}
}, true );
// watch the icon property from the controller
scope.$watch( "icon", function () {
skycons.set( canvas, scope.icon );
}, true );
skycons.play();
if ( element[0].nodeType === 8 ) {
element.replaceWith( canvas );
} else {
element[0].appendChild( canvas );
}
scope.$on('$destroy', function () {
skycons.remove(canvas);
if (skycons.list.length === 0) {
skycons.pause(canvas);
}
});
}
};
} );