UNPKG

@iccube/webfontloader

Version:

Web Font Loader gives you added control when using linked fonts via @font-face.

48 lines (40 loc) 1.19 kB
goog.provide('webfont.FontModuleLoader'); goog.provide('webfont.FontModuleFactory'); /** @typedef {function(Object, webfont.DomHelper): webfont.FontModule} */ webfont.FontModuleFactory; /** * @constructor */ webfont.FontModuleLoader = function() { /** * @type {Object.<string, webfont.FontModuleFactory>} */ this.modules_ = {}; }; goog.scope(function () { var FontModuleLoader = webfont.FontModuleLoader; /** * @param {string} name * @param {webfont.FontModuleFactory} factory */ FontModuleLoader.prototype.addModuleFactory = function(name, factory) { this.modules_[name] = factory; }; /** * @param {Object} configuration * @param {webfont.DomHelper} domHelper * @return {Array.<webfont.FontModule>} */ FontModuleLoader.prototype.getModules = function(configuration, domHelper) { var modules = []; for (var key in configuration) { if (configuration.hasOwnProperty(key)) { var moduleFactory = this.modules_[key]; if (moduleFactory) { modules.push(moduleFactory(configuration[key], domHelper)); } } } return modules; }; });