webicon
Version:
Icon library
75 lines (62 loc) • 1.59 kB
JavaScript
;(function(window, jQuery, angular) {
;
extension(function(injector) {
var
iconManager = injector('iconManager');
iconManager
.addFontIconSet(
'fa',
function(name, params) {
var
classBuilder = [
'fa',
'fa-' + name
];
params = params || [];
Array.prototype.push.apply(
classBuilder,
params.map(function(param) {
return 'fa-'+param
})
);
return classBuilder.join(' ')
}
);
});
;
if (typeof jQuery != 'undefined' && jQuery.fn.webicon) {
jQuery.fn.webicon.extension(extensionBinder);
}
if (typeof angular != 'undefined' && angular.module('webicon')) {
angular.module('webicon').config([
'$webiconProvider',
function($webiconProvider) {
$webiconProvider.extension(extensionBinder)
}
])
}
function extensionBinder(injector) {
(extension.extensions || []).forEach(function(extension) {
extension(injector);
});
extension.listeners = extension.listeners || [];
extension.listeners.push(function(extension) {
extension(injector);
});
}
function extension(fn) {
var
listeners,
extensions;
listeners = extension.listeners = extension.listeners || [];
extensions = extension.extensions = extension.extensions || [];
if (typeof fn != 'function') {
console.error('Extension is not a function');
return;
}
extensions.push(fn);
listeners.forEach(function(listener) {
listener(fn);
});
}
})(window, window.jQuery, window.angular);