goog.provide('webfont.modules.google.GoogleFontApi');
goog.require('webfont.modules.google.FontApiUrlBuilder'); goog.require('webfont.modules.google.FontApiParser'); goog.require('webfont.FontWatchRunner'); goog.require('webfont.StyleSheetWaiter');
/**
* @constructor * @implements {webfont.FontModule} */
webfont.modules.google.GoogleFontApi = function(domHelper, configuration) {
this.domHelper_ = domHelper; this.configuration_ = configuration;
};
/**
* @const * @type {string} */
webfont.modules.google.GoogleFontApi.NAME = 'google';
goog.scope(function () {
var GoogleFontApi = webfont.modules.google.GoogleFontApi, FontWatchRunner = webfont.FontWatchRunner, StyleSheetWaiter = webfont.StyleSheetWaiter, FontApiUrlBuilder = webfont.modules.google.FontApiUrlBuilder, FontApiParser = webfont.modules.google.FontApiParser; GoogleFontApi.METRICS_COMPATIBLE_FONTS = { "Arimo": true, "Cousine": true, "Tinos": true }; GoogleFontApi.prototype.load = function(onReady) { var waiter = new StyleSheetWaiter(); var domHelper = this.domHelper_; var fontApiUrlBuilder = new FontApiUrlBuilder( this.configuration_['api'], this.configuration_['text'] ); var fontFamilies = this.configuration_['families']; fontApiUrlBuilder.setFontFamilies(fontFamilies); var fontApiParser = new FontApiParser(fontFamilies); fontApiParser.parse(); domHelper.loadStylesheet(fontApiUrlBuilder.build(), waiter.startWaitingLoad()); waiter.waitWhileNeededThen(function() { onReady(fontApiParser.getFonts(), fontApiParser.getFontTestStrings(), GoogleFontApi.METRICS_COMPATIBLE_FONTS); }); };
});