lookbook 1.0.0.beta.4 → 1.0.0.beta.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +27 -254
  3. data/app/assets/lookbook/css/lookbook.css +1 -1
  4. data/app/assets/lookbook/css/themes/blue.css +57 -36
  5. data/app/assets/lookbook/css/themes/indigo.css +57 -36
  6. data/app/assets/lookbook/css/themes/zinc.css +57 -36
  7. data/app/assets/lookbook/css/tooltip.css +5 -5
  8. data/app/components/lookbook/base_component.rb +6 -4
  9. data/app/components/lookbook/button/component.html.erb +2 -2
  10. data/app/components/lookbook/copy_button/component.html.erb +3 -3
  11. data/app/components/lookbook/embed/component.html.erb +33 -33
  12. data/app/components/lookbook/embed/component.rb +8 -0
  13. data/app/components/lookbook/filter/component.html.erb +1 -1
  14. data/app/components/lookbook/header/component.html.erb +3 -3
  15. data/app/components/lookbook/inspector_panel/component.html.erb +4 -0
  16. data/app/components/lookbook/inspector_panel/component.rb +36 -0
  17. data/app/components/lookbook/nav/component.html.erb +4 -8
  18. data/app/components/lookbook/nav/component.rb +5 -7
  19. data/app/components/lookbook/nav/item/component.html.erb +12 -6
  20. data/app/components/lookbook/nav/item/component.rb +9 -2
  21. data/app/components/lookbook/page_tabs/component.html.erb +1 -1
  22. data/app/components/lookbook/params_editor/field/component.rb +2 -1
  23. data/app/components/lookbook/prose/component.html.erb +1 -1
  24. data/app/components/lookbook/split_layout/component.html.erb +1 -1
  25. data/app/components/lookbook/tab_panels/panel/component.html.erb +2 -2
  26. data/app/components/lookbook/tabs/component.html.erb +2 -2
  27. data/app/components/lookbook/tabs/dropdown_tab/component.html.erb +2 -2
  28. data/app/components/lookbook/tabs/tab/component.html.erb +2 -2
  29. data/app/components/lookbook/tag_component.rb +5 -10
  30. data/app/components/lookbook/toolbar/component.html.erb +1 -1
  31. data/app/components/lookbook/viewport/component.css +1 -1
  32. data/app/components/lookbook/viewport/component.html.erb +1 -1
  33. data/app/controllers/lookbook/application_controller.rb +2 -2
  34. data/app/controllers/lookbook/pages_controller.rb +1 -0
  35. data/app/controllers/lookbook/previews_controller.rb +15 -3
  36. data/app/helpers/lookbook/application_helper.rb +9 -6
  37. data/app/helpers/lookbook/preview_helper.rb +2 -3
  38. data/app/views/layouts/lookbook/application.html.erb +76 -60
  39. data/app/views/layouts/lookbook/page.html.erb +36 -36
  40. data/app/views/layouts/lookbook/shell.html.erb +6 -0
  41. data/app/views/layouts/lookbook/skeleton.html.erb +15 -14
  42. data/app/views/lookbook/index.html.erb +24 -11
  43. data/app/views/lookbook/pages/show.html.erb +1 -1
  44. data/app/views/lookbook/previews/panels/_content.html.erb +1 -1
  45. data/app/views/lookbook/previews/panels/_notes.html.erb +2 -2
  46. data/app/views/lookbook/previews/panels/_params.html.erb +1 -1
  47. data/app/views/lookbook/previews/show.html.erb +12 -10
  48. data/lib/lookbook/config.rb +63 -36
  49. data/lib/lookbook/data.rb +11 -0
  50. data/lib/lookbook/engine.rb +68 -60
  51. data/lib/lookbook/hooks.rb +21 -0
  52. data/lib/lookbook/markdown.rb +3 -1
  53. data/lib/lookbook/page.rb +4 -0
  54. data/lib/lookbook/panels.rb +15 -0
  55. data/lib/lookbook/params.rb +12 -0
  56. data/lib/lookbook/parser.rb +4 -1
  57. data/lib/lookbook/preview.rb +36 -6
  58. data/lib/lookbook/preview_example.rb +1 -1
  59. data/lib/lookbook/preview_group.rb +8 -0
  60. data/lib/lookbook/source_inspector.rb +9 -0
  61. data/lib/lookbook/store.rb +8 -0
  62. data/lib/lookbook/tag.rb +108 -0
  63. data/lib/lookbook/tags.rb +22 -0
  64. data/lib/lookbook/theme.rb +36 -7
  65. data/lib/lookbook/version.rb +1 -1
  66. data/lib/lookbook.rb +1 -0
  67. data/lib/tasks/lookbook_tasks.rake +1 -1
  68. data/public/lookbook-assets/css/lookbook.css +314 -162
  69. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  70. data/public/lookbook-assets/css/themes/blue.css +57 -36
  71. data/public/lookbook-assets/css/themes/blue.css.map +1 -1
  72. data/public/lookbook-assets/css/themes/indigo.css +57 -36
  73. data/public/lookbook-assets/css/themes/indigo.css.map +1 -1
  74. data/public/lookbook-assets/css/themes/zinc.css +57 -36
  75. data/public/lookbook-assets/css/themes/zinc.css.map +1 -1
  76. data/public/lookbook-assets/js/embed.js +193 -193
  77. data/public/lookbook-assets/js/lookbook.js +1162 -1319
  78. data/public/lookbook-assets/js/lookbook.js.map +1 -1
  79. metadata +11 -4
@@ -1,24 +1,24 @@
1
1
  (() => {
2
2
  var $b2e1fd3e30ab1f5c$exports = {};
3
3
  (function(undefined) {
4
- if (typeof window === 'undefined') return; // don't run for server side render
5
- var autoResize = true, base = 10, bodyBackground = '', bodyMargin = 0, bodyMarginStr = '', bodyObserver = null, bodyPadding = '', calculateWidth = false, doubleEventList = {
4
+ if (typeof window === "undefined") return; // don't run for server side render
5
+ var autoResize = true, base = 10, bodyBackground = "", bodyMargin = 0, bodyMarginStr = "", bodyObserver = null, bodyPadding = "", calculateWidth = false, doubleEventList = {
6
6
  resize: 1,
7
7
  click: 1
8
- }, eventCancelTimer = 128, firstRun = true, height1 = 1, heightCalcModeDefault = 'bodyOffset', heightCalcMode = heightCalcModeDefault, initLock = true, initMsg = '', inPageLinks = {}, interval = 32, intervalTimer = null, logging = false, mouseEvents = false, msgID = '[iFrameSizer]', msgIdLen = msgID.length, myID = '', resetRequiredMethods = {
8
+ }, eventCancelTimer = 128, firstRun = true, height1 = 1, heightCalcModeDefault = "bodyOffset", heightCalcMode = heightCalcModeDefault, initLock = true, initMsg = "", inPageLinks = {}, interval = 32, intervalTimer = null, logging = false, mouseEvents = false, msgID = "[iFrameSizer]", msgIdLen = msgID.length, myID = "", resetRequiredMethods = {
9
9
  max: 1,
10
10
  min: 1,
11
11
  bodyScroll: 1,
12
12
  documentElementScroll: 1
13
- }, resizeFrom = 'child', sendPermit = true, target1 = window.parent, targetOriginDefault = '*', tolerance = 0, triggerLocked = false, triggerLockedTimer = null, throttledTimer = 16, width1 = 1, widthCalcModeDefault = 'scroll', widthCalcMode = widthCalcModeDefault, win = window, onMessage = function() {
14
- warn('onMessage function not defined');
13
+ }, resizeFrom = "child", sendPermit = true, target1 = window.parent, targetOriginDefault = "*", tolerance = 0, triggerLocked = false, triggerLockedTimer = null, throttledTimer = 16, width1 = 1, widthCalcModeDefault = "scroll", widthCalcMode = widthCalcModeDefault, win = window, onMessage = function() {
14
+ warn("onMessage function not defined");
15
15
  }, onReady = function() {}, onPageInfo = function() {}, customCalcMethods = {
16
16
  height: function() {
17
- warn('Custom height calculation function not defined');
17
+ warn("Custom height calculation function not defined");
18
18
  return document.documentElement.offsetHeight;
19
19
  },
20
20
  width: function() {
21
- warn('Custom width calculation function not defined');
21
+ warn("Custom width calculation function not defined");
22
22
  return document.body.scrollWidth;
23
23
  }
24
24
  }, eventHandlersByName = {}, passiveSupported = false;
@@ -31,8 +31,8 @@ var $b2e1fd3e30ab1f5c$exports = {};
31
31
  }
32
32
  }
33
33
  });
34
- window.addEventListener('test', noop, options);
35
- window.removeEventListener('test', noop, options);
34
+ window.addEventListener("test", noop, options);
35
+ window.removeEventListener("test", noop, options);
36
36
  } catch (error) {
37
37
  /* */ }
38
38
  function addEventListener(el, evt, func, options) {
@@ -73,23 +73,23 @@ var $b2e1fd3e30ab1f5c$exports = {};
73
73
  };
74
74
  }
75
75
  function formatLogMsg(msg) {
76
- return msgID + '[' + myID + '] ' + msg;
76
+ return msgID + "[" + myID + "] " + msg;
77
77
  }
78
78
  function log(msg) {
79
- if (logging && 'object' === typeof window.console) // eslint-disable-next-line no-console
79
+ if (logging && "object" === typeof window.console) // eslint-disable-next-line no-console
80
80
  console.log(formatLogMsg(msg));
81
81
  }
82
82
  function warn(msg) {
83
- if ('object' === typeof window.console) // eslint-disable-next-line no-console
83
+ if ("object" === typeof window.console) // eslint-disable-next-line no-console
84
84
  console.warn(formatLogMsg(msg));
85
85
  }
86
86
  function init() {
87
87
  readDataFromParent();
88
- log('Initialising iFrame (' + window.location.href + ')');
88
+ log("Initialising iFrame (" + window.location.href + ")");
89
89
  readDataFromPage();
90
90
  setMargin();
91
- setBodyStyle('background', bodyBackground);
92
- setBodyStyle('padding', bodyPadding);
91
+ setBodyStyle("background", bodyBackground);
92
+ setBodyStyle("padding", bodyPadding);
93
93
  injectClearFixIntoBodyElement();
94
94
  checkHeightMode();
95
95
  checkWidthMode();
@@ -98,14 +98,14 @@ var $b2e1fd3e30ab1f5c$exports = {};
98
98
  setupMouseEvents();
99
99
  startEventListeners();
100
100
  inPageLinks = setupInPageLinks();
101
- sendSize('init', 'Init message from host page');
101
+ sendSize("init", "Init message from host page");
102
102
  onReady();
103
103
  }
104
104
  function readDataFromParent() {
105
105
  function strBool(str) {
106
- return 'true' === str;
106
+ return "true" === str;
107
107
  }
108
- var data = initMsg.substr(msgIdLen).split(':');
108
+ var data = initMsg.substr(msgIdLen).split(":");
109
109
  myID = data[0];
110
110
  bodyMargin = undefined !== data[1] ? Number(data[1]) : bodyMargin // For V1 compatibility
111
111
  ;
@@ -124,9 +124,9 @@ var $b2e1fd3e30ab1f5c$exports = {};
124
124
  mouseEvents = undefined !== data[15] ? Boolean(data[15]) : mouseEvents;
125
125
  }
126
126
  function depricate(key) {
127
- var splitName = key.split('Callback');
127
+ var splitName = key.split("Callback");
128
128
  if (splitName.length === 2) {
129
- var name = 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1);
129
+ var name = "on" + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1);
130
130
  this[name] = this[key];
131
131
  delete this[key];
132
132
  warn("Deprecated: '" + key + "' has been renamed '" + name + "'. The old method will be removed in the next major version.");
@@ -135,50 +135,50 @@ var $b2e1fd3e30ab1f5c$exports = {};
135
135
  function readDataFromPage() {
136
136
  function readData() {
137
137
  var data = window.iFrameResizer;
138
- log('Reading data from page: ' + JSON.stringify(data));
138
+ log("Reading data from page: " + JSON.stringify(data));
139
139
  Object.keys(data).forEach(depricate, data);
140
- onMessage = 'onMessage' in data ? data.onMessage : onMessage;
141
- onReady = 'onReady' in data ? data.onReady : onReady;
142
- targetOriginDefault = 'targetOrigin' in data ? data.targetOrigin : targetOriginDefault;
143
- heightCalcMode = 'heightCalculationMethod' in data ? data.heightCalculationMethod : heightCalcMode;
144
- widthCalcMode = 'widthCalculationMethod' in data ? data.widthCalculationMethod : widthCalcMode;
140
+ onMessage = "onMessage" in data ? data.onMessage : onMessage;
141
+ onReady = "onReady" in data ? data.onReady : onReady;
142
+ targetOriginDefault = "targetOrigin" in data ? data.targetOrigin : targetOriginDefault;
143
+ heightCalcMode = "heightCalculationMethod" in data ? data.heightCalculationMethod : heightCalcMode;
144
+ widthCalcMode = "widthCalculationMethod" in data ? data.widthCalculationMethod : widthCalcMode;
145
145
  }
146
146
  function setupCustomCalcMethods(calcMode, calcFunc) {
147
- if ('function' === typeof calcMode) {
148
- log('Setup custom ' + calcFunc + 'CalcMethod');
147
+ if ("function" === typeof calcMode) {
148
+ log("Setup custom " + calcFunc + "CalcMethod");
149
149
  customCalcMethods[calcFunc] = calcMode;
150
- calcMode = 'custom';
150
+ calcMode = "custom";
151
151
  }
152
152
  return calcMode;
153
153
  }
154
- if ('iFrameResizer' in window && Object === window.iFrameResizer.constructor) {
154
+ if ("iFrameResizer" in window && Object === window.iFrameResizer.constructor) {
155
155
  readData();
156
- heightCalcMode = setupCustomCalcMethods(heightCalcMode, 'height');
157
- widthCalcMode = setupCustomCalcMethods(widthCalcMode, 'width');
156
+ heightCalcMode = setupCustomCalcMethods(heightCalcMode, "height");
157
+ widthCalcMode = setupCustomCalcMethods(widthCalcMode, "width");
158
158
  }
159
- log('TargetOrigin for parent set to: ' + targetOriginDefault);
159
+ log("TargetOrigin for parent set to: " + targetOriginDefault);
160
160
  }
161
161
  function chkCSS(attr, value) {
162
- if (-1 !== value.indexOf('-')) {
163
- warn('Negative CSS value ignored for ' + attr);
164
- value = '';
162
+ if (-1 !== value.indexOf("-")) {
163
+ warn("Negative CSS value ignored for " + attr);
164
+ value = "";
165
165
  }
166
166
  return value;
167
167
  }
168
168
  function setBodyStyle(attr, value) {
169
- if (undefined !== value && '' !== value && 'null' !== value) {
169
+ if (undefined !== value && "" !== value && "null" !== value) {
170
170
  document.body.style[attr] = value;
171
- log('Body ' + attr + ' set to "' + value + '"');
171
+ log("Body " + attr + ' set to "' + value + '"');
172
172
  }
173
173
  }
174
174
  function setMargin() {
175
175
  // If called via V1 script, convert bodyMargin from int to str
176
- if (undefined === bodyMarginStr) bodyMarginStr = bodyMargin + 'px';
177
- setBodyStyle('margin', chkCSS('margin', bodyMarginStr));
176
+ if (undefined === bodyMarginStr) bodyMarginStr = bodyMargin + "px";
177
+ setBodyStyle("margin", chkCSS("margin", bodyMarginStr));
178
178
  }
179
179
  function stopInfiniteResizingOfIFrame() {
180
- document.documentElement.style.height = '';
181
- document.body.style.height = '';
180
+ document.documentElement.style.height = "";
181
+ document.body.style.height = "";
182
182
  log('HTML & body height set to "auto"');
183
183
  }
184
184
  function manageTriggerEvent(options) {
@@ -202,124 +202,124 @@ var $b2e1fd3e30ab1f5c$exports = {};
202
202
  options.eventName = options.eventNames[0];
203
203
  options.eventNames.map(listener[options.method]);
204
204
  } else listener[options.method](options.eventName);
205
- log(capitalizeFirstLetter(options.method) + ' event listener: ' + options.eventType);
205
+ log(capitalizeFirstLetter(options.method) + " event listener: " + options.eventType);
206
206
  }
207
207
  function manageEventListeners(method) {
208
208
  manageTriggerEvent({
209
209
  method: method,
210
- eventType: 'Animation Start',
210
+ eventType: "Animation Start",
211
211
  eventNames: [
212
- 'animationstart',
213
- 'webkitAnimationStart'
212
+ "animationstart",
213
+ "webkitAnimationStart"
214
214
  ]
215
215
  });
216
216
  manageTriggerEvent({
217
217
  method: method,
218
- eventType: 'Animation Iteration',
218
+ eventType: "Animation Iteration",
219
219
  eventNames: [
220
- 'animationiteration',
221
- 'webkitAnimationIteration'
220
+ "animationiteration",
221
+ "webkitAnimationIteration"
222
222
  ]
223
223
  });
224
224
  manageTriggerEvent({
225
225
  method: method,
226
- eventType: 'Animation End',
226
+ eventType: "Animation End",
227
227
  eventNames: [
228
- 'animationend',
229
- 'webkitAnimationEnd'
228
+ "animationend",
229
+ "webkitAnimationEnd"
230
230
  ]
231
231
  });
232
232
  manageTriggerEvent({
233
233
  method: method,
234
- eventType: 'Input',
235
- eventName: 'input'
234
+ eventType: "Input",
235
+ eventName: "input"
236
236
  });
237
237
  manageTriggerEvent({
238
238
  method: method,
239
- eventType: 'Mouse Up',
240
- eventName: 'mouseup'
239
+ eventType: "Mouse Up",
240
+ eventName: "mouseup"
241
241
  });
242
242
  manageTriggerEvent({
243
243
  method: method,
244
- eventType: 'Mouse Down',
245
- eventName: 'mousedown'
244
+ eventType: "Mouse Down",
245
+ eventName: "mousedown"
246
246
  });
247
247
  manageTriggerEvent({
248
248
  method: method,
249
- eventType: 'Orientation Change',
250
- eventName: 'orientationchange'
249
+ eventType: "Orientation Change",
250
+ eventName: "orientationchange"
251
251
  });
252
252
  manageTriggerEvent({
253
253
  method: method,
254
- eventType: 'Print',
254
+ eventType: "Print",
255
255
  eventName: [
256
- 'afterprint',
257
- 'beforeprint'
256
+ "afterprint",
257
+ "beforeprint"
258
258
  ]
259
259
  });
260
260
  manageTriggerEvent({
261
261
  method: method,
262
- eventType: 'Ready State Change',
263
- eventName: 'readystatechange'
262
+ eventType: "Ready State Change",
263
+ eventName: "readystatechange"
264
264
  });
265
265
  manageTriggerEvent({
266
266
  method: method,
267
- eventType: 'Touch Start',
268
- eventName: 'touchstart'
267
+ eventType: "Touch Start",
268
+ eventName: "touchstart"
269
269
  });
270
270
  manageTriggerEvent({
271
271
  method: method,
272
- eventType: 'Touch End',
273
- eventName: 'touchend'
272
+ eventType: "Touch End",
273
+ eventName: "touchend"
274
274
  });
275
275
  manageTriggerEvent({
276
276
  method: method,
277
- eventType: 'Touch Cancel',
278
- eventName: 'touchcancel'
277
+ eventType: "Touch Cancel",
278
+ eventName: "touchcancel"
279
279
  });
280
280
  manageTriggerEvent({
281
281
  method: method,
282
- eventType: 'Transition Start',
282
+ eventType: "Transition Start",
283
283
  eventNames: [
284
- 'transitionstart',
285
- 'webkitTransitionStart',
286
- 'MSTransitionStart',
287
- 'oTransitionStart',
288
- 'otransitionstart'
284
+ "transitionstart",
285
+ "webkitTransitionStart",
286
+ "MSTransitionStart",
287
+ "oTransitionStart",
288
+ "otransitionstart"
289
289
  ]
290
290
  });
291
291
  manageTriggerEvent({
292
292
  method: method,
293
- eventType: 'Transition Iteration',
293
+ eventType: "Transition Iteration",
294
294
  eventNames: [
295
- 'transitioniteration',
296
- 'webkitTransitionIteration',
297
- 'MSTransitionIteration',
298
- 'oTransitionIteration',
299
- 'otransitioniteration'
295
+ "transitioniteration",
296
+ "webkitTransitionIteration",
297
+ "MSTransitionIteration",
298
+ "oTransitionIteration",
299
+ "otransitioniteration"
300
300
  ]
301
301
  });
302
302
  manageTriggerEvent({
303
303
  method: method,
304
- eventType: 'Transition End',
304
+ eventType: "Transition End",
305
305
  eventNames: [
306
- 'transitionend',
307
- 'webkitTransitionEnd',
308
- 'MSTransitionEnd',
309
- 'oTransitionEnd',
310
- 'otransitionend'
306
+ "transitionend",
307
+ "webkitTransitionEnd",
308
+ "MSTransitionEnd",
309
+ "oTransitionEnd",
310
+ "otransitionend"
311
311
  ]
312
312
  });
313
- if ('child' === resizeFrom) manageTriggerEvent({
313
+ if ("child" === resizeFrom) manageTriggerEvent({
314
314
  method: method,
315
- eventType: 'IFrame Resized',
316
- eventName: 'resize'
315
+ eventType: "IFrame Resized",
316
+ eventName: "resize"
317
317
  });
318
318
  }
319
319
  function checkCalcMode(calcMode, calcModeDefault, modes, type) {
320
320
  if (calcModeDefault !== calcMode) {
321
321
  if (!(calcMode in modes)) {
322
- warn(calcMode + ' is not a valid option for ' + type + 'CalculationMethod.');
322
+ warn(calcMode + " is not a valid option for " + type + "CalculationMethod.");
323
323
  calcMode = calcModeDefault;
324
324
  }
325
325
  log(type + ' calculation method set to "' + calcMode + '"');
@@ -327,16 +327,16 @@ var $b2e1fd3e30ab1f5c$exports = {};
327
327
  return calcMode;
328
328
  }
329
329
  function checkHeightMode() {
330
- heightCalcMode = checkCalcMode(heightCalcMode, heightCalcModeDefault, getHeight, 'height');
330
+ heightCalcMode = checkCalcMode(heightCalcMode, heightCalcModeDefault, getHeight, "height");
331
331
  }
332
332
  function checkWidthMode() {
333
- widthCalcMode = checkCalcMode(widthCalcMode, widthCalcModeDefault, getWidth, 'width');
333
+ widthCalcMode = checkCalcMode(widthCalcMode, widthCalcModeDefault, getWidth, "width");
334
334
  }
335
335
  function startEventListeners() {
336
336
  if (true === autoResize) {
337
- manageEventListeners('add');
337
+ manageEventListeners("add");
338
338
  setupMutationObserver();
339
- } else log('Auto Resize disabled');
339
+ } else log("Auto Resize disabled");
340
340
  }
341
341
  // function stopMsgsToParent() {
342
342
  // log('Disable outgoing messages')
@@ -351,7 +351,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
351
351
  bodyObserver.disconnect();
352
352
  }
353
353
  function stopEventListeners() {
354
- manageEventListeners('remove');
354
+ manageEventListeners("remove");
355
355
  disconnectMutationObserver();
356
356
  clearInterval(intervalTimer);
357
357
  }
@@ -361,11 +361,11 @@ var $b2e1fd3e30ab1f5c$exports = {};
361
361
  // if (true === autoResize) stopEventListeners()
362
362
  // }
363
363
  function injectClearFixIntoBodyElement() {
364
- var clearFix = document.createElement('div');
365
- clearFix.style.clear = 'both';
364
+ var clearFix = document.createElement("div");
365
+ clearFix.style.clear = "both";
366
366
  // Guard against the following having been globally redefined in CSS.
367
- clearFix.style.display = 'block';
368
- clearFix.style.height = '0';
367
+ clearFix.style.display = "block";
368
+ clearFix.style.height = "0";
369
369
  document.body.appendChild(clearFix);
370
370
  }
371
371
  function setupInPageLinks() {
@@ -385,34 +385,34 @@ var $b2e1fd3e30ab1f5c$exports = {};
385
385
  function findTarget(location) {
386
386
  function jumpToTarget(target) {
387
387
  var jumpPosition = getElementPosition(target);
388
- log('Moving to in page link (#' + hash + ') at x: ' + jumpPosition.x + ' y: ' + jumpPosition.y);
389
- sendMsg(jumpPosition.y, jumpPosition.x, 'scrollToOffset') // X&Y reversed at sendMsg uses height/width
388
+ log("Moving to in page link (#" + hash + ") at x: " + jumpPosition.x + " y: " + jumpPosition.y);
389
+ sendMsg(jumpPosition.y, jumpPosition.x, "scrollToOffset") // X&Y reversed at sendMsg uses height/width
390
390
  ;
391
391
  }
392
- var hash = location.split('#')[1] || location, hashData = decodeURIComponent(hash), target2 = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
392
+ var hash = location.split("#")[1] || location, hashData = decodeURIComponent(hash), target2 = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
393
393
  if (undefined !== target2) jumpToTarget(target2);
394
394
  else {
395
- log('In page link (#' + hash + ') not found in iFrame, so sending to parent');
396
- sendMsg(0, 0, 'inPageLink', '#' + hash);
395
+ log("In page link (#" + hash + ") not found in iFrame, so sending to parent");
396
+ sendMsg(0, 0, "inPageLink", "#" + hash);
397
397
  }
398
398
  }
399
399
  function checkLocationHash() {
400
400
  var hash = window.location.hash;
401
401
  var href = window.location.href;
402
- if ('' !== hash && '#' !== hash) findTarget(href);
402
+ if ("" !== hash && "#" !== hash) findTarget(href);
403
403
  }
404
404
  function bindAnchors() {
405
405
  function setupLink(el) {
406
406
  function linkClicked(e) {
407
407
  e.preventDefault();
408
- /* jshint validthis:true */ findTarget(this.getAttribute('href'));
408
+ /* jshint validthis:true */ findTarget(this.getAttribute("href"));
409
409
  }
410
- if ('#' !== el.getAttribute('href')) addEventListener(el, 'click', linkClicked);
410
+ if ("#" !== el.getAttribute("href")) addEventListener(el, "click", linkClicked);
411
411
  }
412
412
  Array.prototype.forEach.call(document.querySelectorAll('a[href^="#"]'), setupLink);
413
413
  }
414
414
  function bindLocationHash() {
415
- addEventListener(window, 'hashchange', checkLocationHash);
415
+ addEventListener(window, "hashchange", checkLocationHash);
416
416
  }
417
417
  function initCheck() {
418
418
  // Check if page loaded with location hash after init resize
@@ -421,14 +421,14 @@ var $b2e1fd3e30ab1f5c$exports = {};
421
421
  function enableInPageLinks() {
422
422
  /* istanbul ignore else */ // Not testable in phantonJS
423
423
  if (Array.prototype.forEach && document.querySelectorAll) {
424
- log('Setting up location.hash handlers');
424
+ log("Setting up location.hash handlers");
425
425
  bindAnchors();
426
426
  bindLocationHash();
427
427
  initCheck();
428
- } else warn('In page linking not fully supported in this browser! (See README.md for IE8 workaround)');
428
+ } else warn("In page linking not fully supported in this browser! (See README.md for IE8 workaround)");
429
429
  }
430
430
  if (inPageLinks.enable) enableInPageLinks();
431
- else log('In page linking not enabled');
431
+ else log("In page linking not enabled");
432
432
  return {
433
433
  findTarget: findTarget
434
434
  };
@@ -436,17 +436,17 @@ var $b2e1fd3e30ab1f5c$exports = {};
436
436
  function setupMouseEvents() {
437
437
  if (mouseEvents !== true) return;
438
438
  function sendMouse(e) {
439
- sendMsg(0, 0, e.type, e.screenY + ':' + e.screenX);
439
+ sendMsg(0, 0, e.type, e.screenY + ":" + e.screenX);
440
440
  }
441
441
  function addMouseListener(evt, name) {
442
- log('Add event listener: ' + name);
442
+ log("Add event listener: " + name);
443
443
  addEventListener(window.document, evt, sendMouse);
444
444
  }
445
- addMouseListener('mouseenter', 'Mouse Enter');
446
- addMouseListener('mouseleave', 'Mouse Leave');
445
+ addMouseListener("mouseenter", "Mouse Enter");
446
+ addMouseListener("mouseleave", "Mouse Leave");
447
447
  }
448
448
  function setupPublicMethods() {
449
- log('Enable public methods');
449
+ log("Enable public methods");
450
450
  win.parentIFrame = {
451
451
  autoResize: function autoResizeF(resize) {
452
452
  if (true === resize && false === autoResize) {
@@ -456,41 +456,41 @@ var $b2e1fd3e30ab1f5c$exports = {};
456
456
  autoResize = false;
457
457
  stopEventListeners();
458
458
  }
459
- sendMsg(0, 0, 'autoResize', JSON.stringify(autoResize));
459
+ sendMsg(0, 0, "autoResize", JSON.stringify(autoResize));
460
460
  return autoResize;
461
461
  },
462
462
  close: function closeF() {
463
- sendMsg(0, 0, 'close');
463
+ sendMsg(0, 0, "close");
464
464
  // teardown()
465
465
  },
466
466
  getId: function getIdF() {
467
467
  return myID;
468
468
  },
469
469
  getPageInfo: function getPageInfoF(callback) {
470
- if ('function' === typeof callback) {
470
+ if ("function" === typeof callback) {
471
471
  onPageInfo = callback;
472
- sendMsg(0, 0, 'pageInfo');
472
+ sendMsg(0, 0, "pageInfo");
473
473
  } else {
474
474
  onPageInfo = function() {};
475
- sendMsg(0, 0, 'pageInfoStop');
475
+ sendMsg(0, 0, "pageInfoStop");
476
476
  }
477
477
  },
478
478
  moveToAnchor: function moveToAnchorF(hash) {
479
479
  inPageLinks.findTarget(hash);
480
480
  },
481
481
  reset: function resetF() {
482
- resetIFrame('parentIFrame.reset');
482
+ resetIFrame("parentIFrame.reset");
483
483
  },
484
484
  scrollTo: function scrollToF(x, y) {
485
- sendMsg(y, x, 'scrollTo') // X&Y reversed at sendMsg uses height/width
485
+ sendMsg(y, x, "scrollTo") // X&Y reversed at sendMsg uses height/width
486
486
  ;
487
487
  },
488
488
  scrollToOffset: function scrollToF(x, y) {
489
- sendMsg(y, x, 'scrollToOffset') // X&Y reversed at sendMsg uses height/width
489
+ sendMsg(y, x, "scrollToOffset") // X&Y reversed at sendMsg uses height/width
490
490
  ;
491
491
  },
492
492
  sendMessage: function sendMessageF(msg, targetOrigin) {
493
- sendMsg(0, 0, 'message', JSON.stringify(msg), targetOrigin);
493
+ sendMsg(0, 0, "message", JSON.stringify(msg), targetOrigin);
494
494
  },
495
495
  setHeightCalculationMethod: function setHeightCalculationMethodF(heightCalculationMethod) {
496
496
  heightCalcMode = heightCalculationMethod;
@@ -501,20 +501,20 @@ var $b2e1fd3e30ab1f5c$exports = {};
501
501
  checkWidthMode();
502
502
  },
503
503
  setTargetOrigin: function setTargetOriginF(targetOrigin) {
504
- log('Set targetOrigin: ' + targetOrigin);
504
+ log("Set targetOrigin: " + targetOrigin);
505
505
  targetOriginDefault = targetOrigin;
506
506
  },
507
507
  size: function sizeF(customHeight, customWidth) {
508
- var valString = '' + (customHeight || '') + (customWidth ? ',' + customWidth : '');
509
- sendSize('size', 'parentIFrame.size(' + valString + ')', customHeight, customWidth);
508
+ var valString = "" + (customHeight || "") + (customWidth ? "," + customWidth : "");
509
+ sendSize("size", "parentIFrame.size(" + valString + ")", customHeight, customWidth);
510
510
  }
511
511
  };
512
512
  }
513
513
  function initInterval() {
514
514
  if (0 !== interval) {
515
- log('setInterval: ' + interval + 'ms');
515
+ log("setInterval: " + interval + "ms");
516
516
  intervalTimer = setInterval(function() {
517
- sendSize('interval', 'setInterval: ' + interval);
517
+ sendSize("interval", "setInterval: " + interval);
518
518
  }, Math.abs(interval));
519
519
  }
520
520
  }
@@ -523,41 +523,41 @@ var $b2e1fd3e30ab1f5c$exports = {};
523
523
  function addImageLoadListners(mutation) {
524
524
  function addImageLoadListener(element) {
525
525
  if (false === element.complete) {
526
- log('Attach listeners to ' + element.src);
527
- element.addEventListener('load', imageLoaded, false);
528
- element.addEventListener('error', imageError, false);
526
+ log("Attach listeners to " + element.src);
527
+ element.addEventListener("load", imageLoaded, false);
528
+ element.addEventListener("error", imageError, false);
529
529
  elements.push(element);
530
530
  }
531
531
  }
532
- if (mutation.type === 'attributes' && mutation.attributeName === 'src') addImageLoadListener(mutation.target);
533
- else if (mutation.type === 'childList') Array.prototype.forEach.call(mutation.target.querySelectorAll('img'), addImageLoadListener);
532
+ if (mutation.type === "attributes" && mutation.attributeName === "src") addImageLoadListener(mutation.target);
533
+ else if (mutation.type === "childList") Array.prototype.forEach.call(mutation.target.querySelectorAll("img"), addImageLoadListener);
534
534
  }
535
535
  function removeFromArray(element) {
536
536
  elements.splice(elements.indexOf(element), 1);
537
537
  }
538
538
  function removeImageLoadListener(element) {
539
- log('Remove listeners from ' + element.src);
540
- element.removeEventListener('load', imageLoaded, false);
541
- element.removeEventListener('error', imageError, false);
539
+ log("Remove listeners from " + element.src);
540
+ element.removeEventListener("load", imageLoaded, false);
541
+ element.removeEventListener("error", imageError, false);
542
542
  removeFromArray(element);
543
543
  }
544
544
  function imageEventTriggered(event, type, typeDesc) {
545
545
  removeImageLoadListener(event.target);
546
- sendSize(type, typeDesc + ': ' + event.target.src);
546
+ sendSize(type, typeDesc + ": " + event.target.src);
547
547
  }
548
548
  function imageLoaded(event) {
549
- imageEventTriggered(event, 'imageLoad', 'Image loaded');
549
+ imageEventTriggered(event, "imageLoad", "Image loaded");
550
550
  }
551
551
  function imageError(event) {
552
- imageEventTriggered(event, 'imageLoadFailed', 'Image load failed');
552
+ imageEventTriggered(event, "imageLoadFailed", "Image load failed");
553
553
  }
554
554
  function mutationObserved(mutations) {
555
- sendSize('mutationObserver', 'mutationObserver: ' + mutations[0].target + ' ' + mutations[0].type);
555
+ sendSize("mutationObserver", "mutationObserver: " + mutations[0].target + " " + mutations[0].type);
556
556
  // Deal with WebKit / Blink asyncing image loading when tags are injected into the page
557
557
  mutations.forEach(addImageLoadListners);
558
558
  }
559
559
  function createMutationObserver() {
560
- var target = document.querySelector('body'), config = {
560
+ var target = document.querySelector("body"), config = {
561
561
  attributes: true,
562
562
  attributeOldValue: false,
563
563
  characterData: true,
@@ -566,15 +566,15 @@ var $b2e1fd3e30ab1f5c$exports = {};
566
566
  subtree: true
567
567
  };
568
568
  observer = new MutationObserver(mutationObserved);
569
- log('Create body MutationObserver');
569
+ log("Create body MutationObserver");
570
570
  observer.observe(target, config);
571
571
  return observer;
572
572
  }
573
573
  var elements = [], MutationObserver = window.MutationObserver || window.WebKitMutationObserver, observer = createMutationObserver();
574
574
  return {
575
575
  disconnect: function() {
576
- if ('disconnect' in observer) {
577
- log('Disconnect body MutationObserver');
576
+ if ("disconnect" in observer) {
577
+ log("Disconnect body MutationObserver");
578
578
  observer.disconnect();
579
579
  elements.forEach(removeImageLoadListener);
580
580
  }
@@ -588,7 +588,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
588
588
  if (forceIntervalTimer) initInterval();
589
589
  else bodyObserver = setupBodyMutationObserver();
590
590
  } else {
591
- log('MutationObserver not supported in this browser!');
591
+ log("MutationObserver not supported in this browser!");
592
592
  initInterval();
593
593
  }
594
594
  }
@@ -605,19 +605,19 @@ var $b2e1fd3e30ab1f5c$exports = {};
605
605
  function chkEventThottle(timer) {
606
606
  if (timer > throttledTimer / 2) {
607
607
  throttledTimer = 2 * timer;
608
- log('Event throttle increased to ' + throttledTimer + 'ms');
608
+ log("Event throttle increased to " + throttledTimer + "ms");
609
609
  }
610
610
  }
611
611
  // Idea from https://github.com/guardian/iframe-messenger
612
612
  function getMaxElement(side, elements) {
613
613
  var elementsLength = elements.length, elVal = 0, maxVal = 0, Side = capitalizeFirstLetter(side), timer = Date.now();
614
614
  for(var i = 0; i < elementsLength; i++){
615
- elVal = elements[i].getBoundingClientRect()[side] + getComputedStyle('margin' + Side, elements[i]);
615
+ elVal = elements[i].getBoundingClientRect()[side] + getComputedStyle("margin" + Side, elements[i]);
616
616
  if (elVal > maxVal) maxVal = elVal;
617
617
  }
618
618
  timer = Date.now() - timer;
619
- log('Parsed ' + elementsLength + ' HTML elements');
620
- log('Element position calculated in ' + timer + 'ms');
619
+ log("Parsed " + elementsLength + " HTML elements");
620
+ log("Element position calculated in " + timer + "ms");
621
621
  chkEventThottle(timer);
622
622
  return maxVal;
623
623
  }
@@ -631,19 +631,19 @@ var $b2e1fd3e30ab1f5c$exports = {};
631
631
  }
632
632
  function getTaggedElements(side, tag) {
633
633
  function noTaggedElementsFound() {
634
- warn('No tagged elements (' + tag + ') found on page');
635
- return document.querySelectorAll('body *');
634
+ warn("No tagged elements (" + tag + ") found on page");
635
+ return document.querySelectorAll("body *");
636
636
  }
637
- var elements = document.querySelectorAll('[' + tag + ']');
637
+ var elements = document.querySelectorAll("[" + tag + "]");
638
638
  if (elements.length === 0) noTaggedElementsFound();
639
639
  return getMaxElement(side, elements);
640
640
  }
641
641
  function getAllElements() {
642
- return document.querySelectorAll('body *');
642
+ return document.querySelectorAll("body *");
643
643
  }
644
644
  var getHeight = {
645
645
  bodyOffset: function getBodyOffsetHeight() {
646
- return document.body.offsetHeight + getComputedStyle('marginTop') + getComputedStyle('marginBottom');
646
+ return document.body.offsetHeight + getComputedStyle("marginTop") + getComputedStyle("marginBottom");
647
647
  },
648
648
  offset: function() {
649
649
  return getHeight.bodyOffset() // Backwards compatability
@@ -672,10 +672,10 @@ var $b2e1fd3e30ab1f5c$exports = {};
672
672
  ;
673
673
  },
674
674
  lowestElement: function getBestHeight() {
675
- return Math.max(getHeight.bodyOffset() || getHeight.documentElementOffset(), getMaxElement('bottom', getAllElements()));
675
+ return Math.max(getHeight.bodyOffset() || getHeight.documentElementOffset(), getMaxElement("bottom", getAllElements()));
676
676
  },
677
677
  taggedElement: function getTaggedElementsHeight() {
678
- return getTaggedElements('bottom', 'data-iframe-height');
678
+ return getTaggedElements("bottom", "data-iframe-height");
679
679
  }
680
680
  }, getWidth = {
681
681
  bodyScroll: function getBodyScrollWidth() {
@@ -703,10 +703,10 @@ var $b2e1fd3e30ab1f5c$exports = {};
703
703
  return Math.min.apply(null, getAllMeasurements(getWidth));
704
704
  },
705
705
  rightMostElement: function rightMostElement() {
706
- return getMaxElement('right', getAllElements());
706
+ return getMaxElement("right", getAllElements());
707
707
  },
708
708
  taggedElement: function getTaggedElementsWidth() {
709
- return getTaggedElements('right', 'data-iframe-width');
709
+ return getTaggedElements("right", "data-iframe-width");
710
710
  }
711
711
  };
712
712
  function sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth) {
@@ -735,7 +735,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
735
735
  return heightCalcMode in resetRequiredMethods || calculateWidth && widthCalcMode in resetRequiredMethods;
736
736
  }
737
737
  function logIgnored() {
738
- log('No change in size detected');
738
+ log("No change in size detected");
739
739
  }
740
740
  function checkDownSizing() {
741
741
  if (isForceResizableEvent() && isForceResizableCalcMode()) resetIFrame(triggerEventDesc);
@@ -744,7 +744,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
744
744
  })) logIgnored();
745
745
  }
746
746
  var currentHeight, currentWidth;
747
- if (isSizeChangeDetected() || 'init' === triggerEvent) {
747
+ if (isSizeChangeDetected() || "init" === triggerEvent) {
748
748
  lockTrigger();
749
749
  resizeIFrame();
750
750
  } else checkDownSizing();
@@ -756,27 +756,27 @@ var $b2e1fd3e30ab1f5c$exports = {};
756
756
  reset: 1,
757
757
  resetPage: 1,
758
758
  init: 1
759
- })) log('Trigger event: ' + triggerEventDesc);
759
+ })) log("Trigger event: " + triggerEventDesc);
760
760
  }
761
761
  function isDoubleFiredEvent() {
762
762
  return triggerLocked && triggerEvent in doubleEventList;
763
763
  }
764
764
  if (!isDoubleFiredEvent()) {
765
765
  recordTrigger();
766
- if (triggerEvent === 'init') sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth);
766
+ if (triggerEvent === "init") sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth);
767
767
  else sizeIFrameThrottled(triggerEvent, triggerEventDesc, customHeight, customWidth);
768
- } else log('Trigger event cancelled: ' + triggerEvent);
768
+ } else log("Trigger event cancelled: " + triggerEvent);
769
769
  }
770
770
  function lockTrigger() {
771
771
  if (!triggerLocked) {
772
772
  triggerLocked = true;
773
- log('Trigger event lock on');
773
+ log("Trigger event lock on");
774
774
  }
775
775
  clearTimeout(triggerLockedTimer);
776
776
  triggerLockedTimer = setTimeout(function() {
777
777
  triggerLocked = false;
778
- log('Trigger event lock off');
779
- log('--');
778
+ log("Trigger event lock off");
779
+ log("--");
780
780
  }, eventCancelTimer);
781
781
  }
782
782
  function triggerReset(triggerEvent) {
@@ -787,19 +787,19 @@ var $b2e1fd3e30ab1f5c$exports = {};
787
787
  function resetIFrame(triggerEventDesc) {
788
788
  var hcm = heightCalcMode;
789
789
  heightCalcMode = heightCalcModeDefault;
790
- log('Reset trigger event: ' + triggerEventDesc);
790
+ log("Reset trigger event: " + triggerEventDesc);
791
791
  lockTrigger();
792
- triggerReset('reset');
792
+ triggerReset("reset");
793
793
  heightCalcMode = hcm;
794
794
  }
795
795
  function sendMsg(height, width, triggerEvent, msg, targetOrigin) {
796
796
  function setTargetOrigin() {
797
797
  if (undefined === targetOrigin) targetOrigin = targetOriginDefault;
798
- else log('Message targetOrigin: ' + targetOrigin);
798
+ else log("Message targetOrigin: " + targetOrigin);
799
799
  }
800
800
  function sendToParent() {
801
- var size = height + ':' + width, message = myID + ':' + size + ':' + triggerEvent + (undefined !== msg ? ':' + msg : '');
802
- log('Sending message to host page (' + message + ')');
801
+ var size = height + ":" + width, message = myID + ":" + size + ":" + triggerEvent + (undefined !== msg ? ":" + msg : "");
802
+ log("Sending message to host page (" + message + ")");
803
803
  target1.postMessage(msgID + message, targetOrigin);
804
804
  }
805
805
  if (true === sendPermit) {
@@ -820,12 +820,12 @@ var $b2e1fd3e30ab1f5c$exports = {};
820
820
  },
821
821
  reset: function resetFromParent() {
822
822
  if (!initLock) {
823
- log('Page size reset by host page');
824
- triggerReset('resetPage');
825
- } else log('Page reset ignored by init');
823
+ log("Page size reset by host page");
824
+ triggerReset("resetPage");
825
+ } else log("Page reset ignored by init");
826
826
  },
827
827
  resize: function resizeFromParent() {
828
- sendSize('resizeParent', 'Parent window requested size check');
828
+ sendSize("resizeParent", "Parent window requested size check");
829
829
  },
830
830
  moveToAnchor: function moveToAnchorF() {
831
831
  inPageLinks.findTarget(getData());
@@ -835,35 +835,35 @@ var $b2e1fd3e30ab1f5c$exports = {};
835
835
  },
836
836
  pageInfo: function pageInfoFromParent() {
837
837
  var msgBody = getData();
838
- log('PageInfoFromParent called from parent: ' + msgBody);
838
+ log("PageInfoFromParent called from parent: " + msgBody);
839
839
  onPageInfo(JSON.parse(msgBody));
840
- log(' --');
840
+ log(" --");
841
841
  },
842
842
  message: function messageFromParent() {
843
843
  var msgBody = getData();
844
- log('onMessage called from parent: ' + msgBody);
844
+ log("onMessage called from parent: " + msgBody);
845
845
  // eslint-disable-next-line sonarjs/no-extra-arguments
846
846
  onMessage(JSON.parse(msgBody));
847
- log(' --');
847
+ log(" --");
848
848
  }
849
849
  };
850
850
  function isMessageForUs() {
851
- return msgID === ('' + event.data).substr(0, msgIdLen) // ''+ Protects against non-string messages
851
+ return msgID === ("" + event.data).substr(0, msgIdLen) // ''+ Protects against non-string messages
852
852
  ;
853
853
  }
854
854
  function getMessageType() {
855
- return event.data.split(']')[1].split(':')[0];
855
+ return event.data.split("]")[1].split(":")[0];
856
856
  }
857
857
  function getData() {
858
- return event.data.substr(event.data.indexOf(':') + 1);
858
+ return event.data.substr(event.data.indexOf(":") + 1);
859
859
  }
860
860
  function isMiddleTier() {
861
- return !$b2e1fd3e30ab1f5c$exports && 'iFrameResize' in window || 'jQuery' in window && 'iFrameResize' in window.jQuery.prototype;
861
+ return !$b2e1fd3e30ab1f5c$exports && "iFrameResize" in window || "jQuery" in window && "iFrameResize" in window.jQuery.prototype;
862
862
  }
863
863
  function isInitMsg() {
864
864
  // Test if this message is from a child below us. This is an ugly test, however, updating
865
865
  // the message format would break backwards compatibity.
866
- return event.data.split(':')[2] in {
866
+ return event.data.split(":")[2] in {
867
867
  true: 1,
868
868
  false: 1
869
869
  };
@@ -871,7 +871,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
871
871
  function callFromParent() {
872
872
  var messageType = getMessageType();
873
873
  if (messageType in processRequestFromParent) processRequestFromParent[messageType]();
874
- else if (!isMiddleTier() && !isInitMsg()) warn('Unexpected message (' + event.data + ')');
874
+ else if (!isMiddleTier() && !isInitMsg()) warn("Unexpected message (" + event.data + ")");
875
875
  }
876
876
  function processMessage() {
877
877
  if (false === firstRun) callFromParent();
@@ -883,10 +883,10 @@ var $b2e1fd3e30ab1f5c$exports = {};
883
883
  // Normally the parent kicks things off when it detects the iFrame has loaded.
884
884
  // If this script is async-loaded, then tell parent page to retry init.
885
885
  function chkLateLoaded() {
886
- if ('loading' !== document.readyState) window.parent.postMessage('[iFrameResizerChild]Ready', '*');
886
+ if ("loading" !== document.readyState) window.parent.postMessage("[iFrameResizerChild]Ready", "*");
887
887
  }
888
- addEventListener(window, 'message', receiver);
889
- addEventListener(window, 'readystatechange', chkLateLoaded);
888
+ addEventListener(window, "message", receiver);
889
+ addEventListener(window, "readystatechange", chkLateLoaded);
890
890
  chkLateLoaded();
891
891
  })();
892
892