webfontloader 1.6.7 → 1.6.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 814023d0ea20982472841ed699aac6a5b72fdb74
4
- data.tar.gz: 9f8067bbc26282a2b333bae024b67ee1e9905836
3
+ metadata.gz: 4164b541b5770878b3fd7fbb3c79f7450649891c
4
+ data.tar.gz: c716c510446e57990b3c0c07f4741b1e170ca892
5
5
  SHA512:
6
- metadata.gz: c747ebe1cdeb6e7b577f2b304415e30e88a8efe8440e2d579e055dae503810082d65c6fd8b65920c7ad70b2b5bb23e971b67a84ddcf16d394bc62c4491862f93
7
- data.tar.gz: a5e2a08e81cb00e22801bb0bb35a4afc417f901365c69381e97a4790d9ad595ff2965911b36673eb60139f2732cab385a8edf839ac5195fc1e1cd170ec446487
6
+ metadata.gz: a93f51b5e24eab7f7cf44a43ff1bb6047c36189c2d7e13591b0b8b59aa4134138b2d449cb4ea9524f3e04555e7722dba72fa947115715d94b7bfd6503ba6607b
7
+ data.tar.gz: 4f346002717ddb89d7e3ce98208b459ee5133fa5d408c643f66c7d10524ea1f1a5584aaeb4bdd27efeb16d9201782a1f17f2ccc0d71efab7a76b97aaace4e605
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ v1.6.8 (October 1, 2015)
2
+
3
+ * Add support for the native font loading API.
4
+
1
5
  v1.6.7 (September 24, 2015)
2
6
 
3
7
  * Update Monotype module
data/lib/webfontloader.rb CHANGED
@@ -3,7 +3,7 @@ require 'yaml'
3
3
  require 'webfontloader/modules'
4
4
 
5
5
  module WebFontLoader
6
- VERSION = '1.6.7'
6
+ VERSION = '1.6.8'
7
7
 
8
8
  ProjectRoot = File.expand_path(File.dirname(__FILE__) + "/..")
9
9
 
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webfontloader",
3
- "version": "1.6.6",
3
+ "version": "1.6.7",
4
4
  "description": "Web Font Loader gives you added control when using linked fonts via @font-face.",
5
5
  "main": "webfontloader.js",
6
6
  "scripts": {
@@ -1,6 +1,7 @@
1
1
  describe('FontWatcher', function () {
2
2
  var FontWatcher = webfont.FontWatcher,
3
3
  FontWatchRunner = webfont.FontWatchRunner,
4
+ NativeFontWatchRunner = webfont.NativeFontWatchRunner,
4
5
  Font = webfont.Font,
5
6
  DomHelper = webfont.DomHelper,
6
7
  Version = webfont.Version,
@@ -29,7 +30,7 @@ describe('FontWatcher', function () {
29
30
  eventDispatcher.dispatchActive = jasmine.createSpy('dispatchActive');
30
31
  eventDispatcher.dispatchInactive = jasmine.createSpy('dispatchInactive');
31
32
 
32
- spyOn(FontWatchRunner.prototype, 'start').andCallFake(function (font, fontTestString) {
33
+ var fakeStart = function (font, fontTestString) {
33
34
  var found = false;
34
35
 
35
36
  testStrings(this.fontTestString_);
@@ -47,7 +48,10 @@ describe('FontWatcher', function () {
47
48
  } else {
48
49
  this.inactiveCallback_(this.font_);
49
50
  }
50
- });
51
+ };
52
+
53
+ spyOn(FontWatchRunner.prototype, 'start').andCallFake(fakeStart);
54
+ spyOn(NativeFontWatchRunner.prototype, 'start').andCallFake(fakeStart);
51
55
  });
52
56
 
53
57
  describe('watch zero fonts', function () {
@@ -196,6 +200,7 @@ describe('FontWatcher', function () {
196
200
  it('should use the correct tests strings', function () {
197
201
  activeFonts = [font1, font2];
198
202
 
203
+ var defaultTestString = FontWatcher.SHOULD_USE_NATIVE_LOADER ? undefined : FontWatchRunner.DEFAULT_TEST_STRING;
199
204
  var fontWatcher = new FontWatcher(domHelper, eventDispatcher);
200
205
 
201
206
  fontWatcher.watchFonts([font1, font2, font3, font4], {
@@ -207,9 +212,9 @@ describe('FontWatcher', function () {
207
212
 
208
213
  expect(testStrings.callCount).toEqual(4);
209
214
  expect(testStrings.calls[0].args[0]).toEqual('testString1');
210
- expect(testStrings.calls[1].args[0]).toEqual(FontWatchRunner.DEFAULT_TEST_STRING);
215
+ expect(testStrings.calls[1].args[0]).toEqual(defaultTestString);
211
216
  expect(testStrings.calls[2].args[0]).toEqual('testString2');
212
- expect(testStrings.calls[3].args[0]).toEqual(FontWatchRunner.DEFAULT_TEST_STRING);
217
+ expect(testStrings.calls[3].args[0]).toEqual(defaultTestString);
213
218
  });
214
219
  });
215
220
 
data/spec/deps.js CHANGED
@@ -2,6 +2,7 @@
2
2
  goog.addDependency("../../src/closure.js", [], []);
3
3
  goog.addDependency("../../src/core/cssclassname.js", ["webfont.CssClassName"], []);
4
4
  goog.addDependency("../../src/core/domhelper.js", ["webfont.DomHelper"], []);
5
+ goog.addDependency("../../src/core/stylesheetwaiter.js", ["webfont.StyleSheetWaiter"], []);
5
6
  goog.addDependency("../../src/core/eventdispatcher.js", ["webfont.EventDispatcher"], ["webfont.CssClassName"]);
6
7
  goog.addDependency("../../src/core/font.js", ["webfont.Font"], []);
7
8
  goog.addDependency("../../src/core/fontmodule.js", ["webfont.FontModule"], []);
@@ -12,10 +13,10 @@ goog.addDependency("../../src/core/fontwatchrunner.js", ["webfont.FontWatchRunne
12
13
  goog.addDependency("../../src/core/initialize.js", ["webfont"], ["webfont.WebFont","webfont.modules.Typekit","webfont.modules.Fontdeck","webfont.modules.Monotype","webfont.modules.Custom","webfont.modules.google.GoogleFontApi"]);
13
14
  goog.addDependency("../../src/core/nativefontwatchrunner.js", ["webfont.NativeFontWatchRunner"], ["webfont.Font"]);
14
15
  goog.addDependency("../../src/core/webfont.js", ["webfont.WebFont"], ["webfont.DomHelper","webfont.EventDispatcher","webfont.FontWatcher","webfont.FontModuleLoader"]);
15
- goog.addDependency("../../src/modules/custom.js", ["webfont.modules.Custom"], ["webfont.Font"]);
16
+ goog.addDependency("../../src/modules/custom.js", ["webfont.modules.Custom"], ["webfont.Font", "webfont.StyleSheetWaiter"]);
16
17
  goog.addDependency("../../src/modules/fontdeck.js", ["webfont.modules.Fontdeck"], ["webfont.Font"]);
17
18
  goog.addDependency("../../src/modules/google/fontapiparser.js", ["webfont.modules.google.FontApiParser"], ["webfont.Font"]);
18
19
  goog.addDependency("../../src/modules/google/fontapiurlbuilder.js", ["webfont.modules.google.FontApiUrlBuilder"], []);
19
- goog.addDependency("../../src/modules/google/googlefontapi.js", ["webfont.modules.google.GoogleFontApi"], ["webfont.modules.google.FontApiUrlBuilder","webfont.modules.google.FontApiParser","webfont.FontWatchRunner"]);
20
+ goog.addDependency("../../src/modules/google/googlefontapi.js", ["webfont.modules.google.GoogleFontApi"], ["webfont.modules.google.FontApiUrlBuilder","webfont.modules.google.FontApiParser","webfont.FontWatchRunner", "webfont.StyleSheetWaiter"]);
20
21
  goog.addDependency("../../src/modules/monotype.js", ["webfont.modules.Monotype"], ["webfont.Font"]);
21
22
  goog.addDependency("../../src/modules/typekit.js", ["webfont.modules.Typekit"], ["webfont.Font"]);
@@ -1,11 +1,20 @@
1
1
  describe('modules.Custom', function () {
2
2
  var Custom = webfont.modules.Custom,
3
- FontFamily = webfont.FontFamily;
3
+ FontFamily = webfont.FontFamily,
4
+ Any = jasmine.Matchers.Any;
4
5
 
5
6
  describe('insert links correctly', function () {
6
7
  var fakeDomHelper = null,
7
8
  load = null;
8
9
 
10
+ function notifySheetsLoaded() {
11
+ var argsForCall = fakeDomHelper.loadStylesheet.argsForCall;
12
+ for (var i = 0; i < argsForCall.length; i++) {
13
+ var args = argsForCall[i];
14
+ args[1]();
15
+ }
16
+ }
17
+
9
18
  beforeEach(function () {
10
19
  fakeDomHelper = {
11
20
  loadStylesheet: jasmine.createSpy('createCssLink')
@@ -26,11 +35,20 @@ describe('modules.Custom', function () {
26
35
 
27
36
  it('should have inserted the links correctly', function () {
28
37
  expect(fakeDomHelper.loadStylesheet.callCount).toEqual(2);
29
- expect(fakeDomHelper.loadStylesheet).toHaveBeenCalledWith('http://moo');
30
- expect(fakeDomHelper.loadStylesheet).toHaveBeenCalledWith('http://meuh');
38
+ expect(fakeDomHelper.loadStylesheet).toHaveBeenCalledWith('http://moo', new Any(Function));
39
+ expect(fakeDomHelper.loadStylesheet).toHaveBeenCalledWith('http://meuh', new Any(Function));
31
40
  });
32
41
 
42
+ if (webfont.DomHelper.CAN_WAIT_STYLESHEET) {
43
+ it('should not invoke callback before all CSS are loaded', function () {
44
+ expect(load.callCount).toEqual(0);
45
+ notifySheetsLoaded();
46
+ expect(load.callCount).toEqual(1);
47
+ });
48
+ }
49
+
33
50
  it('should have loaded the families correctly', function () {
51
+ notifySheetsLoaded();
34
52
  expect(load.callCount).toEqual(1);
35
53
  expect(load.calls[0].args[0].length).toEqual(3);
36
54
  expect(load.calls[0].args[0][0].getName()).toEqual('Font1');
@@ -39,8 +57,10 @@ describe('modules.Custom', function () {
39
57
  });
40
58
 
41
59
  it('should have set a custom test string', function () {
60
+ notifySheetsLoaded();
42
61
  expect(load.callCount).toEqual(1);
43
62
  expect(load.calls[0].args[1]).toEqual({ Font3: 'hello world' });
44
63
  });
45
64
  });
65
+
46
66
  });
@@ -1,14 +1,17 @@
1
1
  describe('modules.google.GoogleFontApi', function () {
2
2
  var GoogleFontApi = webfont.modules.google.GoogleFontApi,
3
+ Any = jasmine.Matchers.Any,
3
4
  Font = webfont.Font,
4
5
  link = '',
5
6
  insert = '',
7
+ onload = null,
6
8
  fakeDomHelper = {
7
9
  whenBodyExists: function (callback) {
8
10
  callback();
9
11
  },
10
- loadStylesheet: function (cssLink) {
12
+ loadStylesheet: function (cssLink, cb) {
11
13
  link = cssLink;
14
+ onload = cb;
12
15
  },
13
16
  getProtocol: function () {
14
17
  return 'http:';
@@ -19,8 +22,14 @@ describe('modules.google.GoogleFontApi', function () {
19
22
  beforeEach(function () {
20
23
  insert = '';
21
24
  link = '';
25
+ onload = null;
22
26
  });
23
27
 
28
+ function notifySheetsLoaded() {
29
+ if (onload)
30
+ onload();
31
+ };
32
+
24
33
  describe('call onReady with font family loading', function () {
25
34
  var googleFontApi = null,
26
35
  fonts = null;
@@ -37,6 +46,7 @@ describe('modules.google.GoogleFontApi', function () {
37
46
  });
38
47
 
39
48
  it('has the correct families', function () {
49
+ notifySheetsLoaded();
40
50
  expect(fonts).not.toBeNull();
41
51
  expect(fonts.length).toEqual(2);
42
52
  expect(fonts[0]).toEqual(new Font('Font1'));
@@ -46,18 +56,30 @@ describe('modules.google.GoogleFontApi', function () {
46
56
 
47
57
  describe('call onReady with font family loading and custom API url', function () {
48
58
  var googleFontApi = null;
59
+ var loaded = false;
49
60
 
50
61
  beforeEach(function () {
62
+ loaded = false;
51
63
  googleFontApi = new GoogleFontApi(fakeDomHelper, {
52
64
  api: 'http://moo',
53
65
  families: ['Font1', 'Font2']
54
66
  });
55
- googleFontApi.load(function () {});
67
+ googleFontApi.load(function () { loaded = true; });
56
68
  });
57
69
 
58
70
  it('has inserted the link element correctly', function () {
59
71
  expect(link).toEqual('http://moo?family=Font1%7CFont2');
60
72
  });
73
+
74
+ if (webfont.DomHelper.CAN_WAIT_STYLESHEET) {
75
+ it('does not call onReady until sheets are loaded', function () {
76
+ expect(onload).toMatch(new Any(Function));
77
+ expect(loaded).toBe(false);
78
+
79
+ notifySheetsLoaded();
80
+ expect(loaded).toBe(true);
81
+ });
82
+ }
61
83
  });
62
84
 
63
85
  describe('spaces replaced by plus', function () {
@@ -22,6 +22,18 @@ webfont.DomHelper = function(mainWindow, opt_loadWindow) {
22
22
  goog.scope(function () {
23
23
  var DomHelper = webfont.DomHelper;
24
24
 
25
+ /**
26
+ * The NativeFontWatchRunnner depends on the correct and reliable
27
+ * |onload| event, and browsers with the native font loading API
28
+ * have reliable @onload support as far as we know. So we use the
29
+ * event for such a case and unconditionally invokes the callback
30
+ * otherwise.
31
+ *
32
+ * @const
33
+ * @type {boolean}
34
+ */
35
+ DomHelper.CAN_WAIT_STYLESHEET = !!window['FontFace'];
36
+
25
37
  /**
26
38
  * Creates an element.
27
39
  * @param {string} elem The element type.
@@ -298,25 +310,34 @@ goog.scope(function () {
298
310
 
299
311
  var done = false;
300
312
 
301
- link.onload = function () {
302
- if (!done) {
303
- done = true;
313
+ if (DomHelper.CAN_WAIT_STYLESHEET) {
314
+ link.onload = function () {
315
+ if (!done) {
316
+ done = true;
304
317
 
305
- if (opt_callback) {
306
- opt_callback(null);
318
+ if (opt_callback) {
319
+ opt_callback(null);
320
+ }
307
321
  }
308
- }
309
- };
322
+ };
310
323
 
311
- link.onerror = function () {
312
- if (!done) {
313
- done = true;
324
+ link.onerror = function () {
325
+ if (!done) {
326
+ done = true;
314
327
 
328
+ if (opt_callback) {
329
+ opt_callback(new Error('Stylesheet failed to load'));
330
+ }
331
+ }
332
+ };
333
+ } else {
334
+ // Some callers expect opt_callback being called asynchronously.
335
+ setTimeout(function () {
315
336
  if (opt_callback) {
316
- opt_callback(new Error('Stylesheet failed to load'));
337
+ opt_callback(null);
317
338
  }
318
- }
319
- };
339
+ }, 0);
340
+ }
320
341
 
321
342
  function onAvailable(callback) {
322
343
  for (var i = 0; i < sheets.length; i++) {
@@ -28,6 +28,12 @@ goog.scope(function () {
28
28
  FontWatchRunner = webfont.FontWatchRunner,
29
29
  NativeFontWatchRunner = webfont.NativeFontWatchRunner;
30
30
 
31
+ /**
32
+ * @const
33
+ * @type {boolean}
34
+ */
35
+ FontWatcher.SHOULD_USE_NATIVE_LOADER = !!window['FontFace'];
36
+
31
37
  /**
32
38
  * Watches a set of font families.
33
39
  * @param {Array.<webfont.Font>} fonts The fonts to watch.
@@ -61,37 +67,26 @@ goog.scope(function () {
61
67
 
62
68
  var fontWatchRunner = null;
63
69
 
64
- // We've disabled the native font watch runner for now. The
65
- // reason is that its behaviour is slightly different from
66
- // the non-native version in that it returns immediately if
67
- // a @font-face rule is not in the document. The non-native
68
- // version keeps polling the page. A lot of modules depend
69
- // on the ability to start font watching before actually
70
- // loading the fonts, so they fail in this case (which is
71
- // related to browser support; figuring out when a
72
- // stylesheet has loaded reliably). Until that issue is
73
- // resolved we'll keep the native font disabled.
74
- //
75
- //if (window['FontFace']) {
76
- // fontWatchRunner = new NativeFontWatchRunner(
77
- // goog.bind(this.fontActive_, this),
78
- // goog.bind(this.fontInactive_, this),
79
- // this.domHelper_,
80
- // font,
81
- // this.timeout_,
82
- // fontTestString
83
- // );
84
- //} else {
85
- //
86
- fontWatchRunner = new FontWatchRunner(
87
- goog.bind(this.fontActive_, this),
88
- goog.bind(this.fontInactive_, this),
89
- this.domHelper_,
90
- font,
91
- this.timeout_,
92
- metricCompatibleFonts,
93
- testString
94
- );
70
+ if (FontWatcher.SHOULD_USE_NATIVE_LOADER) {
71
+ fontWatchRunner = new NativeFontWatchRunner(
72
+ goog.bind(this.fontActive_, this),
73
+ goog.bind(this.fontInactive_, this),
74
+ this.domHelper_,
75
+ font,
76
+ this.timeout_,
77
+ testString
78
+ );
79
+ } else {
80
+ fontWatchRunner = new FontWatchRunner(
81
+ goog.bind(this.fontActive_, this),
82
+ goog.bind(this.fontInactive_, this),
83
+ this.domHelper_,
84
+ font,
85
+ this.timeout_,
86
+ metricCompatibleFonts,
87
+ testString
88
+ );
89
+ }
95
90
 
96
91
  fontWatchRunners.push(fontWatchRunner);
97
92
  }
@@ -0,0 +1,48 @@
1
+ goog.provide('webfont.StyleSheetWaiter');
2
+
3
+ /**
4
+ * A utility class for handling callback from DomHelper.loadStylesheet().
5
+ *
6
+ * @constructor
7
+ */
8
+ webfont.StyleSheetWaiter = function() {
9
+ /** @private @type {number} */
10
+ this.waitingCount_ = 0;
11
+ /** @private @type {Function} */
12
+ this.onReady_ = null;
13
+ };
14
+
15
+ goog.scope(function () {
16
+ var StyleSheetWaiter = webfont.StyleSheetWaiter;
17
+
18
+ /**
19
+ * @return {function(Error)}
20
+ */
21
+ StyleSheetWaiter.prototype.startWaitingLoad = function() {
22
+ var self = this;
23
+ self.waitingCount_++;
24
+ return function(error) {
25
+ self.waitingCount_--;
26
+ self.fireIfReady_();
27
+ };
28
+ };
29
+
30
+ /**
31
+ * @param {Function} fn
32
+ */
33
+ StyleSheetWaiter.prototype.waitWhileNeededThen = function(fn) {
34
+ this.onReady_ = fn;
35
+ this.fireIfReady_();
36
+ };
37
+
38
+ /**
39
+ * @private
40
+ */
41
+ StyleSheetWaiter.prototype.fireIfReady_ = function() {
42
+ var isReady = 0 == this.waitingCount_;
43
+ if (isReady && this.onReady_) {
44
+ this.onReady_();
45
+ this.onReady_ = null;
46
+ }
47
+ };
48
+ });
@@ -1,6 +1,7 @@
1
1
  goog.provide('webfont.modules.Custom');
2
2
 
3
3
  goog.require('webfont.Font');
4
+ goog.require('webfont.StyleSheetWaiter');
4
5
 
5
6
  /**
6
7
  *
@@ -26,16 +27,17 @@ webfont.modules.Custom.NAME = 'custom';
26
27
 
27
28
  goog.scope(function () {
28
29
  var Custom = webfont.modules.Custom,
29
- Font = webfont.Font;
30
+ Font = webfont.Font,
31
+ StyleSheetWaiter = webfont.StyleSheetWaiter;
30
32
 
31
33
  Custom.prototype.load = function(onReady) {
32
34
  var i, len;
33
35
  var urls = this.configuration_['urls'] || [];
34
36
  var familiesConfiguration = this.configuration_['families'] || [];
35
37
  var fontTestStrings = this.configuration_['testStrings'] || {};
36
-
38
+ var waiter = new StyleSheetWaiter();
37
39
  for (i = 0, len = urls.length; i < len; i++) {
38
- this.domHelper_.loadStylesheet(urls[i]);
40
+ this.domHelper_.loadStylesheet(urls[i], waiter.startWaitingLoad());
39
41
  }
40
42
 
41
43
  var fonts = [];
@@ -54,6 +56,8 @@ goog.scope(function () {
54
56
  }
55
57
  }
56
58
 
57
- onReady(fonts, fontTestStrings);
59
+ waiter.waitWhileNeededThen(function() {
60
+ onReady(fonts, fontTestStrings);
61
+ });
58
62
  };
59
63
  });
@@ -3,6 +3,7 @@ goog.provide('webfont.modules.google.GoogleFontApi');
3
3
  goog.require('webfont.modules.google.FontApiUrlBuilder');
4
4
  goog.require('webfont.modules.google.FontApiParser');
5
5
  goog.require('webfont.FontWatchRunner');
6
+ goog.require('webfont.StyleSheetWaiter');
6
7
 
7
8
  /**
8
9
  * @constructor
@@ -22,6 +23,7 @@ webfont.modules.google.GoogleFontApi.NAME = 'google';
22
23
  goog.scope(function () {
23
24
  var GoogleFontApi = webfont.modules.google.GoogleFontApi,
24
25
  FontWatchRunner = webfont.FontWatchRunner,
26
+ StyleSheetWaiter = webfont.StyleSheetWaiter,
25
27
  FontApiUrlBuilder = webfont.modules.google.FontApiUrlBuilder,
26
28
  FontApiParser = webfont.modules.google.FontApiParser;
27
29
 
@@ -32,6 +34,7 @@ goog.scope(function () {
32
34
  };
33
35
 
34
36
  GoogleFontApi.prototype.load = function(onReady) {
37
+ var waiter = new StyleSheetWaiter();
35
38
  var domHelper = this.domHelper_;
36
39
  var fontApiUrlBuilder = new FontApiUrlBuilder(
37
40
  this.configuration_['api'],
@@ -44,7 +47,9 @@ goog.scope(function () {
44
47
  var fontApiParser = new FontApiParser(fontFamilies);
45
48
  fontApiParser.parse();
46
49
 
47
- domHelper.loadStylesheet(fontApiUrlBuilder.build());
48
- onReady(fontApiParser.getFonts(), fontApiParser.getFontTestStrings(), GoogleFontApi.METRICS_COMPATIBLE_FONTS);
50
+ domHelper.loadStylesheet(fontApiUrlBuilder.build(), waiter.startWaitingLoad());
51
+ waiter.waitWhileNeededThen(function() {
52
+ onReady(fontApiParser.getFonts(), fontApiParser.getFontTestStrings(), GoogleFontApi.METRICS_COMPATIBLE_FONTS);
53
+ });
49
54
  };
50
55
  });
data/src/modules.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  core:
2
2
  - ../tools/compiler/base.js
3
3
  - core/domhelper.js
4
+ - core/stylesheetwaiter.js
4
5
  - core/cssclassname.js
5
6
  - core/font.js
6
7
  - core/eventdispatcher.js
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'webfontloader'
16
- s.version = '1.6.7'
17
- s.date = '2015-09-24'
16
+ s.version = '1.6.8'
17
+ s.date = '2015-10-01'
18
18
 
19
19
  ## Make sure your summary is short. The description may be as long
20
20
  ## as you like.
@@ -158,6 +158,7 @@ DESC
158
158
  src/core/fontwatchrunner.js
159
159
  src/core/initialize.js
160
160
  src/core/nativefontwatchrunner.js
161
+ src/core/stylesheetwaiter.js
161
162
  src/core/webfont.js
162
163
  src/modules.yml
163
164
  src/modules/custom.js
data/webfontloader.js CHANGED
@@ -1,18 +1,18 @@
1
- /* Web Font Loader v1.6.7 - (c) Adobe Systems, Google. License: Apache 2.0 */
2
- (function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function n(a,b,c){n=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return n.apply(null,arguments)}var p=Date.now||function(){return+new Date};function r(a,b){this.D=a;this.m=b||a;this.F=this.m.document}r.prototype.createElement=function(a,b,c){a=this.F.createElement(a);if(b)for(var d in b)b.hasOwnProperty(d)&&("style"==d?a.style.cssText=b[d]:a.setAttribute(d,b[d]));c&&a.appendChild(this.F.createTextNode(c));return a};function s(a,b,c){a=a.F.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}
1
+ /* Web Font Loader v1.6.8 - (c) Adobe Systems, Google. License: Apache 2.0 */
2
+ (function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function n(a,b,c){n=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return n.apply(null,arguments)}var p=Date.now||function(){return+new Date};function q(a,b){this.F=a;this.k=b||a;this.H=this.k.document}var ca=!!window.FontFace;q.prototype.createElement=function(a,b,c){a=this.H.createElement(a);if(b)for(var d in b)b.hasOwnProperty(d)&&("style"==d?a.style.cssText=b[d]:a.setAttribute(d,b[d]));c&&a.appendChild(this.H.createTextNode(c));return a};function s(a,b,c){a=a.H.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}
3
3
  function t(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function u(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
4
- function v(a){if("string"===typeof a.da)return a.da;var b=a.m.location.protocol;"about:"==b&&(b=a.D.location.protocol);return"https:"==b?"https:":"http:"}function w(a,b){var c=a.createElement("link",{rel:"stylesheet",href:b,media:"all"}),d=!1;c.onload=function(){d||(d=!0)};c.onerror=function(){d||(d=!0)};s(a,"head",c)}
5
- function x(a,b,c,d){var e=a.F.getElementsByTagName("head")[0];if(e){var f=a.createElement("script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function y(a){this.ca=a||"-"}y.prototype.d=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.ca)};function A(a,b){this.V=a;this.N=4;this.H="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.H=c[1],this.N=parseInt(c[2],10))}A.prototype.getName=function(){return this.V};function B(a){return a.H+a.N}function ca(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function da(a,b){this.a=a;this.h=a.m.document.documentElement;this.J=b;this.f="wf";this.e=new y("-");this.Z=!1!==b.events;this.u=!1!==b.classes}function ea(a){a.u&&t(a.h,[a.e.d(a.f,"loading")]);C(a,"loading")}function D(a){if(a.u){var b=u(a.h,a.e.d(a.f,"active")),c=[],d=[a.e.d(a.f,"loading")];b||c.push(a.e.d(a.f,"inactive"));t(a.h,c,d)}C(a,"inactive")}function C(a,b,c){if(a.Z&&a.J[b])if(c)a.J[b](c.getName(),B(c));else a.J[b]()};function fa(){this.t={}}function ga(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.t[e];f&&d.push(f(b[e],c))}return d};function E(a,b){this.a=a;this.q=b;this.j=this.a.createElement("span",{"aria-hidden":"true"},this.q)}
6
- function G(a,b){var c=a.j,d;d=[];for(var e=b.V.split(/,\s*/),f=0;f<e.length;f++){var g=e[f].replace(/['"]/g,"");-1==g.indexOf(" ")?d.push(g):d.push("'"+g+"'")}d=d.join(",");e="normal";"o"===b.H?e="oblique":"i"===b.H&&(e="italic");c.style.cssText="display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+d+";"+("font-style:"+e+";font-weight:"+(b.N+"00")+";")}
7
- function H(a){s(a.a,"body",a.j)}E.prototype.remove=function(){var a=this.j;a.parentNode&&a.parentNode.removeChild(a)};function I(a,b,c,d,e,f,g){this.O=a;this.ba=b;this.a=c;this.g=d;this.q=g||"BESbswy";this.s={};this.M=e||3E3;this.T=f||null;this.C=this.B=this.w=this.v=null;this.v=new E(this.a,this.q);this.w=new E(this.a,this.q);this.B=new E(this.a,this.q);this.C=new E(this.a,this.q);G(this.v,new A(this.g.getName()+",serif",B(this.g)));G(this.w,new A(this.g.getName()+",sans-serif",B(this.g)));G(this.B,new A("serif",B(this.g)));G(this.C,new A("sans-serif",B(this.g)));H(this.v);H(this.w);H(this.B);H(this.C)}
8
- var J={ga:"serif",fa:"sans-serif"},K=null;function L(){if(null===K){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);K=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return K}I.prototype.start=function(){this.s.serif=this.B.j.offsetWidth;this.s["sans-serif"]=this.C.j.offsetWidth;this.ea=p();M(this)};function N(a,b,c){for(var d in J)if(J.hasOwnProperty(d)&&b===a.s[J[d]]&&c===a.s[J[d]])return!0;return!1}
9
- function M(a){var b=a.v.j.offsetWidth,c=a.w.j.offsetWidth,d;(d=b===a.s.serif&&c===a.s["sans-serif"])||(d=L()&&N(a,b,c));d?p()-a.ea>=a.M?L()&&N(a,b,c)&&(null===a.T||a.T.hasOwnProperty(a.g.getName()))?O(a,a.O):O(a,a.ba):ha(a):O(a,a.O)}function ha(a){setTimeout(n(function(){M(this)},a),50)}function O(a,b){setTimeout(n(function(){this.v.remove();this.w.remove();this.B.remove();this.C.remove();b(this.g)},a),0)};function P(a,b,c){this.a=a;this.o=b;this.K=0;this.X=this.S=!1;this.M=c}P.prototype.$=function(a){var b=this.o;b.u&&t(b.h,[b.e.d(b.f,a.getName(),B(a).toString(),"active")],[b.e.d(b.f,a.getName(),B(a).toString(),"loading"),b.e.d(b.f,a.getName(),B(a).toString(),"inactive")]);C(b,"fontactive",a);this.X=!0;Q(this)};
10
- P.prototype.aa=function(a){var b=this.o;if(b.u){var c=u(b.h,b.e.d(b.f,a.getName(),B(a).toString(),"active")),d=[],e=[b.e.d(b.f,a.getName(),B(a).toString(),"loading")];c||d.push(b.e.d(b.f,a.getName(),B(a).toString(),"inactive"));t(b.h,d,e)}C(b,"fontinactive",a);Q(this)};function Q(a){0==--a.K&&a.S&&(a.X?(a=a.o,a.u&&t(a.h,[a.e.d(a.f,"active")],[a.e.d(a.f,"loading"),a.e.d(a.f,"inactive")]),C(a,"active")):D(a.o))};function R(a){this.D=a;this.p=new fa;this.U=0;this.P=this.Q=!0}R.prototype.load=function(a){this.a=new r(this.D,a.context||this.D);this.Q=!1!==a.events;this.P=!1!==a.classes;ia(this,new da(this.a,a),a)};
11
- function ja(a,b,c,d,e){var f=0==--a.U;(a.P||a.Q)&&setTimeout(function(){var a=e||null,l=d||null||{};if(0===c.length&&f)D(b.o);else{b.K+=c.length;f&&(b.S=f);var h,k=[];for(h=0;h<c.length;h++){var m=c[h],z=l[m.getName()],q=b.o,F=m;q.u&&t(q.h,[q.e.d(q.f,F.getName(),B(F).toString(),"loading")]);C(q,"fontloading",F);q=null;q=new I(n(b.$,b),n(b.aa,b),b.a,m,b.M,a,z);k.push(q)}for(h=0;h<k.length;h++)k[h].start()}},0)}
12
- function ia(a,b,c){var d=[],e=c.timeout;ea(b);var d=ga(a.p,c,a.a),f=new P(a.a,b,e);a.U=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,c,d){ja(a,f,b,c,d)})};function S(a,b,c){this.I=a?a:b+ka;this.k=[];this.L=[];this.Y=c||""}var ka="//fonts.googleapis.com/css";S.prototype.d=function(){if(0==this.k.length)throw Error("No fonts to load!");if(-1!=this.I.indexOf("kit="))return this.I;for(var a=this.k.length,b=[],c=0;c<a;c++)b.push(this.k[c].replace(/ /g,"+"));a=this.I+"?family="+b.join("%7C");0<this.L.length&&(a+="&subset="+this.L.join(","));0<this.Y.length&&(a+="&text="+encodeURIComponent(this.Y));return a};function T(a){this.k=a;this.W=[];this.G={}}
13
- var U={latin:"BESbswy",cyrillic:"&#1081;&#1103;&#1046;",greek:"&#945;&#946;&#931;",khmer:"&#x1780;&#x1781;&#x1782;",Hanuman:"&#x1780;&#x1781;&#x1782;"},la={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},ma={i:"i",italic:"i",n:"n",normal:"n"},na=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
14
- T.prototype.parse=function(){for(var a=this.k.length,b=0;b<a;b++){var c=this.k[b].split(":"),d=c[0].replace(/\+/g," "),e=["n4"];if(2<=c.length){var f;var g=c[1];f=[];if(g)for(var g=g.split(","),l=g.length,h=0;h<l;h++){var k;k=g[h];if(k.match(/^[\w-]+$/))if(k=na.exec(k.toLowerCase()),null==k)k="";else{var m;m=k[1];if(null==m||""==m)m="4";else{var z=la[m];m=z?z:isNaN(m)?"4":m.substr(0,1)}k=k[2];k=[null==k||""==k?"n":ma[k],m].join("")}else k="";k&&f.push(k)}0<f.length&&(e=f);3==c.length&&(c=c[2],f=[],
15
- c=c?c.split(","):f,0<c.length&&(c=U[c[0]])&&(this.G[d]=c))}this.G[d]||(c=U[d])&&(this.G[d]=c);for(c=0;c<e.length;c+=1)this.W.push(new A(d,e[c]))}};function V(a,b){this.a=a;this.c=b}var oa={Arimo:!0,Cousine:!0,Tinos:!0};V.prototype.load=function(a){for(var b=this.a,c=new S(this.c.api,v(b),this.c.text),d=this.c.families,e=d.length,f=0;f<e;f++){var g=d[f].split(":");3==g.length&&c.L.push(g.pop());var l="";2==g.length&&""!=g[1]&&(l=":");c.k.push(g.join(l))}d=new T(d);d.parse();w(b,c.d());a(d.W,d.G,oa)};function W(a,b){this.a=a;this.c=b;this.R=[]}W.prototype.A=function(a){var b=this.a;return v(this.a)+(this.c.api||"//f.fontdeck.com/s/css/js/")+(b.m.location.hostname||b.D.location.hostname)+"/"+a+".js"};
16
- W.prototype.load=function(a){var b=this.c.id,c=this.a.m,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,l=c.fonts.length;g<l;++g){var h=c.fonts[g];d.R.push(new A(h.name,ca("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.R)},x(this.a,this.A(b),function(b){b&&a([])})):a([])};function X(a,b){this.a=a;this.c=b}X.prototype.A=function(a){return(this.c.api||"https://use.typekit.net")+"/"+a+".js"};X.prototype.load=function(a){var b=this.c.id,c=this.a.m;b?x(this.a,this.A(b),function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],l=b[f+1],h=0;h<l.length;h++)e.push(new A(g,l[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(k){}a(e)}},2E3):a([])};function Y(a,b){this.a=a;this.c=b}Y.prototype.A=function(a,b){var c=v(this.a),d=(this.c.api||"fast.fonts.net/jsapi").replace(/^.*http(s?):(\/\/)?/,"");return c+"//"+d+"/"+a+".js"+(b?"?v="+b:"")};
17
- Y.prototype.load=function(a){function b(){if(e["__mti_fntLst"+c]){var d=e["__mti_fntLst"+c](),g=[],l;if(d)for(var h=0;h<d.length;h++){var k=d[h].fontfamily;void 0!=d[h].fontStyle&&void 0!=d[h].fontWeight?(l=d[h].fontStyle+d[h].fontWeight,g.push(new A(k,l))):g.push(new A(k))}a(g)}else setTimeout(function(){b()},50)}var c=this.c.projectId,d=this.c.version;if(c){var e=this.a.m;x(this.a,this.A(c,d),function(c){c?a([]):b()}).id="__MonotypeAPIScript__"+c}else a([])};function pa(a,b){this.a=a;this.c=b}pa.prototype.load=function(a){var b,c,d=this.c.urls||[],e=this.c.families||[],f=this.c.testStrings||{};b=0;for(c=d.length;b<c;b++)w(this.a,d[b]);d=[];b=0;for(c=e.length;b<c;b++){var g=e[b].split(":");if(g[1])for(var l=g[1].split(","),h=0;h<l.length;h+=1)d.push(new A(g[0],l[h]));else d.push(new A(g[0]))}a(d,f)};var Z=new R(window);Z.p.t.custom=function(a,b){return new pa(b,a)};Z.p.t.fontdeck=function(a,b){return new W(b,a)};Z.p.t.monotype=function(a,b){return new Y(b,a)};Z.p.t.typekit=function(a,b){return new X(b,a)};Z.p.t.google=function(a,b){return new V(b,a)};var $={load:n(Z.load,Z)};"function"===typeof define&&define.amd?define(function(){return $}):"undefined"!==typeof module&&module.exports?module.exports=$:(window.WebFont=$,window.WebFontConfig&&Z.load(window.WebFontConfig));}());
4
+ function v(a){if("string"===typeof a.fa)return a.fa;var b=a.k.location.protocol;"about:"==b&&(b=a.F.location.protocol);return"https:"==b?"https:":"http:"}function x(a,b,c){b=a.createElement("link",{rel:"stylesheet",href:b,media:"all"});var d=!1;ca?(b.onload=function(){d||(d=!0,c&&c(null))},b.onerror=function(){d||(d=!0,c&&c(Error("Stylesheet failed to load")))}):setTimeout(function(){c&&c(null)},0);s(a,"head",b)}
5
+ function y(a,b,c,d){var e=a.H.getElementsByTagName("head")[0];if(e){var f=a.createElement("script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function z(){this.S=0;this.K=null}function A(a){a.S++;return function(){a.S--;B(a)}}function C(a,b){a.K=b;B(a)}function B(a){0==a.S&&a.K&&(a.K(),a.K=null)};function D(a){this.ea=a||"-"}D.prototype.d=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.ea)};function E(a,b){this.Q=a;this.M=4;this.L="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.L=c[1],this.M=parseInt(c[2],10))}E.prototype.getName=function(){return this.Q};function da(a){return G(a)+" "+(a.M+"00")+" 300px "+H(a.Q)}function H(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1==d.indexOf(" ")?b.push(d):b.push("'"+d+"'")}return b.join(",")}function I(a){return a.L+a.M}
6
+ function G(a){var b="normal";"o"===a.L?b="oblique":"i"===a.L&&(b="italic");return b}function ea(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function fa(a,b){this.a=a;this.j=a.k.document.documentElement;this.O=b;this.g="wf";this.e=new D("-");this.da=!1!==b.events;this.u=!1!==b.classes}function ga(a){a.u&&t(a.j,[a.e.d(a.g,"loading")]);J(a,"loading")}function K(a){if(a.u){var b=u(a.j,a.e.d(a.g,"active")),c=[],d=[a.e.d(a.g,"loading")];b||c.push(a.e.d(a.g,"inactive"));t(a.j,c,d)}J(a,"inactive")}function J(a,b,c){if(a.da&&a.O[b])if(c)a.O[b](c.getName(),I(c));else a.O[b]()};function ha(){this.t={}}function ia(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.t[e];f&&d.push(f(b[e],c))}return d};function L(a,b){this.a=a;this.h=b;this.m=this.a.createElement("span",{"aria-hidden":"true"},this.h)}function M(a,b){var c=a.m,d;d="display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+H(b.Q)+";"+("font-style:"+G(b)+";font-weight:"+(b.M+"00")+";");c.style.cssText=d}function N(a){s(a.a,"body",a.m)}L.prototype.remove=function(){var a=this.m;a.parentNode&&a.parentNode.removeChild(a)};function O(a,b,c,d,e,f){this.G=a;this.J=b;this.f=d;this.a=c;this.v=e||3E3;this.h=f||void 0}O.prototype.start=function(){var a=this.a.k.document,b=this;Promise.race([new Promise(function(a,d){setTimeout(function(){d(b.f)},b.v)}),a.fonts.load(da(this.f),this.h)]).then(function(a){1===a.length?b.G(b.f):b.J(b.f)},function(){b.J(b.f)})};function P(a,b,c,d,e,f,g){this.G=a;this.J=b;this.a=c;this.f=d;this.h=g||"BESbswy";this.s={};this.v=e||3E3;this.Z=f||null;this.D=this.C=this.A=this.w=null;this.w=new L(this.a,this.h);this.A=new L(this.a,this.h);this.C=new L(this.a,this.h);this.D=new L(this.a,this.h);M(this.w,new E(this.f.getName()+",serif",I(this.f)));M(this.A,new E(this.f.getName()+",sans-serif",I(this.f)));M(this.C,new E("serif",I(this.f)));M(this.D,new E("sans-serif",I(this.f)));N(this.w);N(this.A);N(this.C);N(this.D)}
7
+ var Q={ia:"serif",ha:"sans-serif"},R=null;function S(){if(null===R){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);R=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return R}P.prototype.start=function(){this.s.serif=this.C.m.offsetWidth;this.s["sans-serif"]=this.D.m.offsetWidth;this.ga=p();T(this)};function ja(a,b,c){for(var d in Q)if(Q.hasOwnProperty(d)&&b===a.s[Q[d]]&&c===a.s[Q[d]])return!0;return!1}
8
+ function T(a){var b=a.w.m.offsetWidth,c=a.A.m.offsetWidth,d;(d=b===a.s.serif&&c===a.s["sans-serif"])||(d=S()&&ja(a,b,c));d?p()-a.ga>=a.v?S()&&ja(a,b,c)&&(null===a.Z||a.Z.hasOwnProperty(a.f.getName()))?U(a,a.G):U(a,a.J):ka(a):U(a,a.G)}function ka(a){setTimeout(n(function(){T(this)},a),50)}function U(a,b){setTimeout(n(function(){this.w.remove();this.A.remove();this.C.remove();this.D.remove();b(this.f)},a),0)};function V(a,b,c){this.a=a;this.p=b;this.P=0;this.ba=this.Y=!1;this.v=c}var la=!!window.FontFace;V.prototype.V=function(a){var b=this.p;b.u&&t(b.j,[b.e.d(b.g,a.getName(),I(a).toString(),"active")],[b.e.d(b.g,a.getName(),I(a).toString(),"loading"),b.e.d(b.g,a.getName(),I(a).toString(),"inactive")]);J(b,"fontactive",a);this.ba=!0;ma(this)};
9
+ V.prototype.W=function(a){var b=this.p;if(b.u){var c=u(b.j,b.e.d(b.g,a.getName(),I(a).toString(),"active")),d=[],e=[b.e.d(b.g,a.getName(),I(a).toString(),"loading")];c||d.push(b.e.d(b.g,a.getName(),I(a).toString(),"inactive"));t(b.j,d,e)}J(b,"fontinactive",a);ma(this)};function ma(a){0==--a.P&&a.Y&&(a.ba?(a=a.p,a.u&&t(a.j,[a.e.d(a.g,"active")],[a.e.d(a.g,"loading"),a.e.d(a.g,"inactive")]),J(a,"active")):K(a.p))};function na(a){this.F=a;this.q=new ha;this.$=0;this.T=this.U=!0}na.prototype.load=function(a){this.a=new q(this.F,a.context||this.F);this.U=!1!==a.events;this.T=!1!==a.classes;oa(this,new fa(this.a,a),a)};
10
+ function pa(a,b,c,d,e){var f=0==--a.$;(a.T||a.U)&&setTimeout(function(){var a=e||null,l=d||null||{};if(0===c.length&&f)K(b.p);else{b.P+=c.length;f&&(b.Y=f);var h,k=[];for(h=0;h<c.length;h++){var m=c[h],w=l[m.getName()],r=b.p,F=m;r.u&&t(r.j,[r.e.d(r.g,F.getName(),I(F).toString(),"loading")]);J(r,"fontloading",F);r=null;r=la?new O(n(b.V,b),n(b.W,b),b.a,m,b.v,w):new P(n(b.V,b),n(b.W,b),b.a,m,b.v,a,w);k.push(r)}for(h=0;h<k.length;h++)k[h].start()}},0)}
11
+ function oa(a,b,c){var d=[],e=c.timeout;ga(b);var d=ia(a.q,c,a.a),f=new V(a.a,b,e);a.$=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,c,d){pa(a,f,b,c,d)})};function qa(a,b,c){this.N=a?a:b+ra;this.o=[];this.R=[];this.ca=c||""}var ra="//fonts.googleapis.com/css";function sa(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.R.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.o.push(e.join(f))}}
12
+ qa.prototype.d=function(){if(0==this.o.length)throw Error("No fonts to load!");if(-1!=this.N.indexOf("kit="))return this.N;for(var a=this.o.length,b=[],c=0;c<a;c++)b.push(this.o[c].replace(/ /g,"+"));a=this.N+"?family="+b.join("%7C");0<this.R.length&&(a+="&subset="+this.R.join(","));0<this.ca.length&&(a+="&text="+encodeURIComponent(this.ca));return a};function ta(a){this.o=a;this.aa=[];this.I={}}
13
+ var ua={latin:"BESbswy",cyrillic:"&#1081;&#1103;&#1046;",greek:"&#945;&#946;&#931;",khmer:"&#x1780;&#x1781;&#x1782;",Hanuman:"&#x1780;&#x1781;&#x1782;"},va={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},wa={i:"i",italic:"i",n:"n",normal:"n"},xa=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
14
+ ta.prototype.parse=function(){for(var a=this.o.length,b=0;b<a;b++){var c=this.o[b].split(":"),d=c[0].replace(/\+/g," "),e=["n4"];if(2<=c.length){var f;var g=c[1];f=[];if(g)for(var g=g.split(","),l=g.length,h=0;h<l;h++){var k;k=g[h];if(k.match(/^[\w-]+$/))if(k=xa.exec(k.toLowerCase()),null==k)k="";else{var m;m=k[1];if(null==m||""==m)m="4";else{var w=va[m];m=w?w:isNaN(m)?"4":m.substr(0,1)}k=k[2];k=[null==k||""==k?"n":wa[k],m].join("")}else k="";k&&f.push(k)}0<f.length&&(e=f);3==c.length&&(c=c[2],f=
15
+ [],c=c?c.split(","):f,0<c.length&&(c=ua[c[0]])&&(this.I[d]=c))}this.I[d]||(c=ua[d])&&(this.I[d]=c);for(c=0;c<e.length;c+=1)this.aa.push(new E(d,e[c]))}};function ya(a,b){this.a=a;this.c=b}var za={Arimo:!0,Cousine:!0,Tinos:!0};ya.prototype.load=function(a){var b=new z,c=this.a,d=new qa(this.c.api,v(c),this.c.text),e=this.c.families;sa(d,e);var f=new ta(e);f.parse();x(c,d.d(),A(b));C(b,function(){a(f.aa,f.I,za)})};function W(a,b){this.a=a;this.c=b;this.X=[]}W.prototype.B=function(a){var b=this.a;return v(this.a)+(this.c.api||"//f.fontdeck.com/s/css/js/")+(b.k.location.hostname||b.F.location.hostname)+"/"+a+".js"};
16
+ W.prototype.load=function(a){var b=this.c.id,c=this.a.k,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,l=c.fonts.length;g<l;++g){var h=c.fonts[g];d.X.push(new E(h.name,ea("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.X)},y(this.a,this.B(b),function(b){b&&a([])})):a([])};function X(a,b){this.a=a;this.c=b}X.prototype.B=function(a){return(this.c.api||"https://use.typekit.net")+"/"+a+".js"};X.prototype.load=function(a){var b=this.c.id,c=this.a.k;b?y(this.a,this.B(b),function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],l=b[f+1],h=0;h<l.length;h++)e.push(new E(g,l[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(k){}a(e)}},2E3):a([])};function Y(a,b){this.a=a;this.c=b}Y.prototype.B=function(a,b){var c=v(this.a),d=(this.c.api||"fast.fonts.net/jsapi").replace(/^.*http(s?):(\/\/)?/,"");return c+"//"+d+"/"+a+".js"+(b?"?v="+b:"")};
17
+ Y.prototype.load=function(a){function b(){if(e["__mti_fntLst"+c]){var d=e["__mti_fntLst"+c](),g=[],l;if(d)for(var h=0;h<d.length;h++){var k=d[h].fontfamily;void 0!=d[h].fontStyle&&void 0!=d[h].fontWeight?(l=d[h].fontStyle+d[h].fontWeight,g.push(new E(k,l))):g.push(new E(k))}a(g)}else setTimeout(function(){b()},50)}var c=this.c.projectId,d=this.c.version;if(c){var e=this.a.k;y(this.a,this.B(c,d),function(c){c?a([]):b()}).id="__MonotypeAPIScript__"+c}else a([])};function Aa(a,b){this.a=a;this.c=b}Aa.prototype.load=function(a){var b,c,d=this.c.urls||[],e=this.c.families||[],f=this.c.testStrings||{},g=new z;b=0;for(c=d.length;b<c;b++)x(this.a,d[b],A(g));var l=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),k=0;k<h.length;k+=1)l.push(new E(d[0],h[k]));else l.push(new E(d[0]));C(g,function(){a(l,f)})};var Z=new na(window);Z.q.t.custom=function(a,b){return new Aa(b,a)};Z.q.t.fontdeck=function(a,b){return new W(b,a)};Z.q.t.monotype=function(a,b){return new Y(b,a)};Z.q.t.typekit=function(a,b){return new X(b,a)};Z.q.t.google=function(a,b){return new ya(b,a)};var $={load:n(Z.load,Z)};"function"===typeof define&&define.amd?define(function(){return $}):"undefined"!==typeof module&&module.exports?module.exports=$:(window.WebFont=$,window.WebFontConfig&&Z.load(window.WebFontConfig));}());
18
18
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webfontloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.7
4
+ version: 1.6.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Carver
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-09-24 00:00:00.000000000 Z
12
+ date: 2015-10-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -167,6 +167,7 @@ files:
167
167
  - src/core/fontwatchrunner.js
168
168
  - src/core/initialize.js
169
169
  - src/core/nativefontwatchrunner.js
170
+ - src/core/stylesheetwaiter.js
170
171
  - src/core/webfont.js
171
172
  - src/modules.yml
172
173
  - src/modules/custom.js