@mjhls/mjh-framework 1.0.204 → 1.0.206

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AD-e2479b7c.js +31 -0
  3. package/dist/cjs/DeckContent.js +430 -0
  4. package/dist/cjs/DeckQueue.js +366 -0
  5. package/dist/cjs/Dfp-d94f7f73.js +97 -0
  6. package/dist/cjs/GridContent.js +613 -0
  7. package/dist/cjs/GroupDeck.js +156 -0
  8. package/dist/cjs/IssueContentDeck.js +81 -0
  9. package/dist/cjs/IssueDeck.js +144 -0
  10. package/dist/cjs/MasterDeck.js +340 -0
  11. package/dist/cjs/Normal-7dd8c339.js +2374 -0
  12. package/dist/cjs/PublicationDeck.js +81 -0
  13. package/dist/cjs/QueueDeckExpanded.js +559 -0
  14. package/dist/cjs/TaxonomyCard-7b5b4298.js +1045 -0
  15. package/dist/cjs/TaxonomyCard.js +18 -0
  16. package/dist/cjs/TemplateNormal.js +29 -0
  17. package/dist/cjs/ThumbnailCard.js +58 -0
  18. package/dist/cjs/Ustream-0d3dd953.js +122 -0
  19. package/dist/cjs/Ustream.js +10 -0
  20. package/dist/cjs/VideoSeriesListing.js +248 -0
  21. package/dist/cjs/YoutubeGroup-4cf7a4aa.js +228 -0
  22. package/dist/cjs/YoutubeGroup.js +13 -0
  23. package/dist/cjs/_babelHelpers-f321c258.js +119 -0
  24. package/dist/cjs/_commonjsHelpers-3fc1f64e.js +20 -0
  25. package/dist/cjs/debounce-286eb3fb.js +279 -0
  26. package/dist/cjs/entities-3e0b4a16.js +506 -0
  27. package/dist/cjs/get-06aac51b.js +992 -0
  28. package/dist/cjs/index-0d0efcfa.js +610 -0
  29. package/dist/cjs/index-a4c53ff4.js +551 -0
  30. package/dist/cjs/index.es-2289df51.js +5028 -0
  31. package/dist/cjs/index.esm-340d3792.js +113 -0
  32. package/dist/cjs/index.js +12044 -0
  33. package/dist/cjs/isSymbol-311eb805.js +209 -0
  34. package/dist/cjs/main-58839f4e.js +858 -0
  35. package/dist/cjs/visibility-sensor-5c5a7302.js +2251 -0
  36. package/dist/esm/AD-1b2a3dd3.js +26 -0
  37. package/dist/esm/DeckContent.js +424 -0
  38. package/dist/esm/DeckQueue.js +360 -0
  39. package/dist/esm/Dfp-ab7941d3.js +92 -0
  40. package/dist/esm/GridContent.js +607 -0
  41. package/dist/esm/GroupDeck.js +151 -0
  42. package/dist/esm/IssueContentDeck.js +76 -0
  43. package/dist/esm/IssueDeck.js +139 -0
  44. package/dist/esm/MasterDeck.js +334 -0
  45. package/dist/esm/Normal-403c5666.js +2354 -0
  46. package/dist/esm/PublicationDeck.js +76 -0
  47. package/dist/esm/QueueDeckExpanded.js +553 -0
  48. package/dist/esm/TaxonomyCard-f9c93953.js +1039 -0
  49. package/dist/esm/TaxonomyCard.js +12 -0
  50. package/dist/esm/TemplateNormal.js +23 -0
  51. package/dist/esm/ThumbnailCard.js +53 -0
  52. package/dist/esm/Ustream-6bb45fe7.js +116 -0
  53. package/dist/esm/Ustream.js +4 -0
  54. package/dist/esm/VideoSeriesListing.js +242 -0
  55. package/dist/esm/YoutubeGroup-dc617e8b.js +222 -0
  56. package/dist/esm/YoutubeGroup.js +7 -0
  57. package/dist/esm/_babelHelpers-67c05996.js +111 -0
  58. package/dist/esm/_commonjsHelpers-ae1b5db5.js +15 -0
  59. package/dist/esm/debounce-a0242b4a.js +277 -0
  60. package/dist/esm/entities-e85d3a4a.js +503 -0
  61. package/dist/esm/get-b684ff61.js +990 -0
  62. package/dist/esm/index-3c1ee9ab.js +605 -0
  63. package/dist/esm/index-ca4ff5cb.js +548 -0
  64. package/dist/esm/index.es-f369b3e8.js +5022 -0
  65. package/dist/esm/index.esm-536609db.js +103 -0
  66. package/dist/esm/index.js +11991 -0
  67. package/dist/esm/isSymbol-c2b7d05a.js +203 -0
  68. package/dist/esm/main-dea495b7.js +851 -0
  69. package/dist/esm/visibility-sensor-3cfe6713.js +2243 -0
  70. package/package.json +8 -7
  71. package/dist/index.es.js +0 -30261
  72. package/dist/index.es.js.map +0 -1
  73. package/dist/index.js +0 -30320
  74. package/dist/index.js.map +0 -1
@@ -0,0 +1,605 @@
1
+ import React__default from 'react';
2
+ import { c as createCommonjsModule, u as unwrapExports } from './_commonjsHelpers-ae1b5db5.js';
3
+ import PropTypes from 'prop-types';
4
+ import reactDom from 'react-dom';
5
+
6
+ var event = createCommonjsModule(function (module, exports) {
7
+
8
+ Object.defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports.on = on;
12
+ exports.off = off;
13
+ function on(el, eventName, callback, opts) {
14
+ opts = opts || false;
15
+ if (el.addEventListener) {
16
+ el.addEventListener(eventName, callback, opts);
17
+ } else if (el.attachEvent) {
18
+ el.attachEvent("on" + eventName, function (e) {
19
+ callback.call(el, e || window.event);
20
+ });
21
+ }
22
+ }
23
+
24
+ function off(el, eventName, callback, opts) {
25
+ opts = opts || false;
26
+ if (el.removeEventListener) {
27
+ el.removeEventListener(eventName, callback, opts);
28
+ } else if (el.detachEvent) {
29
+ el.detachEvent("on" + eventName, callback);
30
+ }
31
+ }
32
+ });
33
+
34
+ unwrapExports(event);
35
+ var event_1 = event.on;
36
+ var event_2 = event.off;
37
+
38
+ var scrollParent = createCommonjsModule(function (module, exports) {
39
+
40
+ Object.defineProperty(exports, "__esModule", {
41
+ value: true
42
+ });
43
+
44
+ /**
45
+ * @fileOverview Find scroll parent
46
+ */
47
+
48
+ exports.default = function (node) {
49
+ if (!(node instanceof HTMLElement)) {
50
+ return document.documentElement;
51
+ }
52
+
53
+ var excludeStaticParent = node.style.position === 'absolute';
54
+ var overflowRegex = /(scroll|auto)/;
55
+ var parent = node;
56
+
57
+ while (parent) {
58
+ if (!parent.parentNode) {
59
+ return node.ownerDocument || document.documentElement;
60
+ }
61
+
62
+ var style = window.getComputedStyle(parent);
63
+ var position = style.position;
64
+ var overflow = style.overflow;
65
+ var overflowX = style['overflow-x'];
66
+ var overflowY = style['overflow-y'];
67
+
68
+ if (position === 'static' && excludeStaticParent) {
69
+ parent = parent.parentNode;
70
+ continue;
71
+ }
72
+
73
+ if (overflowRegex.test(overflow) && overflowRegex.test(overflowX) && overflowRegex.test(overflowY)) {
74
+ return parent;
75
+ }
76
+
77
+ parent = parent.parentNode;
78
+ }
79
+
80
+ return node.ownerDocument || node.documentElement || document.documentElement;
81
+ };
82
+ });
83
+
84
+ unwrapExports(scrollParent);
85
+
86
+ var debounce_1 = createCommonjsModule(function (module, exports) {
87
+
88
+ Object.defineProperty(exports, "__esModule", {
89
+ value: true
90
+ });
91
+ exports.default = debounce;
92
+ function debounce(func, wait, immediate) {
93
+ var timeout = void 0;
94
+ var args = void 0;
95
+ var context = void 0;
96
+ var timestamp = void 0;
97
+ var result = void 0;
98
+
99
+ var later = function later() {
100
+ var last = +new Date() - timestamp;
101
+
102
+ if (last < wait && last >= 0) {
103
+ timeout = setTimeout(later, wait - last);
104
+ } else {
105
+ timeout = null;
106
+ if (!immediate) {
107
+ result = func.apply(context, args);
108
+ if (!timeout) {
109
+ context = null;
110
+ args = null;
111
+ }
112
+ }
113
+ }
114
+ };
115
+
116
+ return function debounced() {
117
+ context = this;
118
+ args = arguments;
119
+ timestamp = +new Date();
120
+
121
+ var callNow = immediate && !timeout;
122
+ if (!timeout) {
123
+ timeout = setTimeout(later, wait);
124
+ }
125
+
126
+ if (callNow) {
127
+ result = func.apply(context, args);
128
+ context = null;
129
+ args = null;
130
+ }
131
+
132
+ return result;
133
+ };
134
+ }
135
+ });
136
+
137
+ unwrapExports(debounce_1);
138
+
139
+ var throttle_1 = createCommonjsModule(function (module, exports) {
140
+
141
+ Object.defineProperty(exports, "__esModule", {
142
+ value: true
143
+ });
144
+ exports.default = throttle;
145
+ /*eslint-disable */
146
+ function throttle(fn, threshhold, scope) {
147
+ threshhold || (threshhold = 250);
148
+ var last, deferTimer;
149
+ return function () {
150
+ var context = scope || this;
151
+
152
+ var now = +new Date(),
153
+ args = arguments;
154
+ if (last && now < last + threshhold) {
155
+ // hold on to it
156
+ clearTimeout(deferTimer);
157
+ deferTimer = setTimeout(function () {
158
+ last = now;
159
+ fn.apply(context, args);
160
+ }, threshhold);
161
+ } else {
162
+ last = now;
163
+ fn.apply(context, args);
164
+ }
165
+ };
166
+ }
167
+ });
168
+
169
+ unwrapExports(throttle_1);
170
+
171
+ var lib = createCommonjsModule(function (module, exports) {
172
+
173
+ Object.defineProperty(exports, "__esModule", {
174
+ value: true
175
+ });
176
+ exports.forceVisible = exports.forceCheck = exports.lazyload = undefined;
177
+
178
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
179
+
180
+
181
+
182
+ var _react2 = _interopRequireDefault(React__default);
183
+
184
+
185
+
186
+ var _reactDom2 = _interopRequireDefault(reactDom);
187
+
188
+
189
+
190
+ var _propTypes2 = _interopRequireDefault(PropTypes);
191
+
192
+
193
+
194
+
195
+
196
+ var _scrollParent2 = _interopRequireDefault(scrollParent);
197
+
198
+
199
+
200
+ var _debounce2 = _interopRequireDefault(debounce_1);
201
+
202
+
203
+
204
+ var _throttle2 = _interopRequireDefault(throttle_1);
205
+
206
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
207
+
208
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
209
+
210
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
211
+
212
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**
213
+ * react-lazyload
214
+ */
215
+
216
+
217
+ var defaultBoundingClientRect = { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };
218
+ var LISTEN_FLAG = 'data-lazyload-listened';
219
+ var listeners = [];
220
+ var pending = [];
221
+
222
+ // try to handle passive events
223
+ var passiveEventSupported = false;
224
+ try {
225
+ var opts = Object.defineProperty({}, 'passive', {
226
+ get: function get() {
227
+ passiveEventSupported = true;
228
+ }
229
+ });
230
+ window.addEventListener('test', null, opts);
231
+ } catch (e) {}
232
+ // if they are supported, setup the optional params
233
+ // IMPORTANT: FALSE doubles as the default CAPTURE value!
234
+ var passiveEvent = passiveEventSupported ? { capture: false, passive: true } : false;
235
+
236
+ /**
237
+ * Check if `component` is visible in overflow container `parent`
238
+ * @param {node} component React component
239
+ * @param {node} parent component's scroll parent
240
+ * @return {bool}
241
+ */
242
+ var checkOverflowVisible = function checkOverflowVisible(component, parent) {
243
+ var node = _reactDom2.default.findDOMNode(component);
244
+ // const node = component.ref;
245
+
246
+ var parentTop = void 0;
247
+ var parentLeft = void 0;
248
+ var parentHeight = void 0;
249
+ var parentWidth = void 0;
250
+
251
+ try {
252
+ var _parent$getBoundingCl = parent.getBoundingClientRect();
253
+
254
+ parentTop = _parent$getBoundingCl.top;
255
+ parentLeft = _parent$getBoundingCl.left;
256
+ parentHeight = _parent$getBoundingCl.height;
257
+ parentWidth = _parent$getBoundingCl.width;
258
+ } catch (e) {
259
+ parentTop = defaultBoundingClientRect.top;
260
+ parentLeft = defaultBoundingClientRect.left;
261
+ parentHeight = defaultBoundingClientRect.height;
262
+ parentWidth = defaultBoundingClientRect.width;
263
+ }
264
+
265
+ var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;
266
+ var windowInnerWidth = window.innerWidth || document.documentElement.clientWidth;
267
+
268
+ // calculate top and height of the intersection of the element's scrollParent and viewport
269
+ var intersectionTop = Math.max(parentTop, 0); // intersection's top relative to viewport
270
+ var intersectionLeft = Math.max(parentLeft, 0); // intersection's left relative to viewport
271
+ var intersectionHeight = Math.min(windowInnerHeight, parentTop + parentHeight) - intersectionTop; // height
272
+ var intersectionWidth = Math.min(windowInnerWidth, parentLeft + parentWidth) - intersectionLeft; // width
273
+
274
+ // check whether the element is visible in the intersection
275
+ var top = void 0;
276
+ var left = void 0;
277
+ var height = void 0;
278
+ var width = void 0;
279
+
280
+ try {
281
+ var _node$getBoundingClie = node.getBoundingClientRect();
282
+
283
+ top = _node$getBoundingClie.top;
284
+ left = _node$getBoundingClie.left;
285
+ height = _node$getBoundingClie.height;
286
+ width = _node$getBoundingClie.width;
287
+ } catch (e) {
288
+ top = defaultBoundingClientRect.top;
289
+ left = defaultBoundingClientRect.left;
290
+ height = defaultBoundingClientRect.height;
291
+ width = defaultBoundingClientRect.width;
292
+ }
293
+
294
+ var offsetTop = top - intersectionTop; // element's top relative to intersection
295
+ var offsetLeft = left - intersectionLeft; // element's left relative to intersection
296
+
297
+ var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API
298
+
299
+ return offsetTop - offsets[0] <= intersectionHeight && offsetTop + height + offsets[1] >= 0 && offsetLeft - offsets[0] <= intersectionWidth && offsetLeft + width + offsets[1] >= 0;
300
+ };
301
+
302
+ /**
303
+ * Check if `component` is visible in document
304
+ * @param {node} component React component
305
+ * @return {bool}
306
+ */
307
+ var checkNormalVisible = function checkNormalVisible(component) {
308
+ var node = _reactDom2.default.findDOMNode(component);
309
+ // const node = component.ref;
310
+
311
+ // If this element is hidden by css rules somehow, it's definitely invisible
312
+ if (!(node.offsetWidth || node.offsetHeight || node.getClientRects().length)) return false;
313
+
314
+ var top = void 0;
315
+ var elementHeight = void 0;
316
+
317
+ try {
318
+ var _node$getBoundingClie2 = node.getBoundingClientRect();
319
+
320
+ top = _node$getBoundingClie2.top;
321
+ elementHeight = _node$getBoundingClie2.height;
322
+ } catch (e) {
323
+ top = defaultBoundingClientRect.top;
324
+ elementHeight = defaultBoundingClientRect.height;
325
+ }
326
+
327
+ var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;
328
+
329
+ var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API
330
+
331
+ return top - offsets[0] <= windowInnerHeight && top + elementHeight + offsets[1] >= 0;
332
+ };
333
+
334
+ /**
335
+ * Detect if element is visible in viewport, if so, set `visible` state to true.
336
+ * If `once` prop is provided true, remove component as listener after checkVisible
337
+ *
338
+ * @param {React} component React component that respond to scroll and resize
339
+ */
340
+ var checkVisible = function checkVisible(component) {
341
+ var node = _reactDom2.default.findDOMNode(component);
342
+ // const node = component.ref;
343
+ if (!(node instanceof HTMLElement)) {
344
+ return;
345
+ }
346
+
347
+ var parent = (0, _scrollParent2.default)(node);
348
+ var isOverflow = component.props.overflow && parent !== node.ownerDocument && parent !== document && parent !== document.documentElement;
349
+ var visible = isOverflow ? checkOverflowVisible(component, parent) : checkNormalVisible(component);
350
+ if (visible) {
351
+ // Avoid extra render if previously is visible
352
+ if (!component.visible) {
353
+ if (component.props.once) {
354
+ pending.push(component);
355
+ }
356
+
357
+ component.visible = true;
358
+ component.forceUpdate();
359
+ }
360
+ } else if (!(component.props.once && component.visible)) {
361
+ component.visible = false;
362
+ if (component.props.unmountIfInvisible) {
363
+ component.forceUpdate();
364
+ }
365
+ }
366
+ };
367
+
368
+ var purgePending = function purgePending() {
369
+ pending.forEach(function (component) {
370
+ var index = listeners.indexOf(component);
371
+ if (index !== -1) {
372
+ listeners.splice(index, 1);
373
+ }
374
+ });
375
+
376
+ pending = [];
377
+ };
378
+
379
+ var lazyLoadHandler = function lazyLoadHandler() {
380
+ for (var i = 0; i < listeners.length; ++i) {
381
+ var listener = listeners[i];
382
+ checkVisible(listener);
383
+ }
384
+ // Remove `once` component in listeners
385
+ purgePending();
386
+ };
387
+
388
+ /**
389
+ * Forces the component to display regardless of whether the element is visible in the viewport.
390
+ */
391
+ var forceVisible = function forceVisible() {
392
+ for (var i = 0; i < listeners.length; ++i) {
393
+ var listener = listeners[i];
394
+ listener.visible = true;
395
+ listener.forceUpdate();
396
+ }
397
+ // Remove `once` component in listeners
398
+ purgePending();
399
+ };
400
+
401
+ // Depending on component's props
402
+ var delayType = void 0;
403
+ var finalLazyLoadHandler = null;
404
+
405
+ var isString = function isString(string) {
406
+ return typeof string === 'string';
407
+ };
408
+
409
+ var LazyLoad = function (_Component) {
410
+ _inherits(LazyLoad, _Component);
411
+
412
+ function LazyLoad(props) {
413
+ _classCallCheck(this, LazyLoad);
414
+
415
+ var _this = _possibleConstructorReturn(this, (LazyLoad.__proto__ || Object.getPrototypeOf(LazyLoad)).call(this, props));
416
+
417
+ _this.visible = false;
418
+ // this.setRef = this.setRef.bind(this);
419
+ return _this;
420
+ }
421
+
422
+ // setRef(element) {
423
+ // if (element) {
424
+ // this.ref = element;
425
+ // }
426
+ // }
427
+
428
+ _createClass(LazyLoad, [{
429
+ key: 'componentDidMount',
430
+ value: function componentDidMount() {
431
+ // It's unlikely to change delay type on the fly, this is mainly
432
+ // designed for tests
433
+ var scrollport = window;
434
+ var scrollContainer = this.props.scrollContainer;
435
+
436
+ if (scrollContainer) {
437
+ if (isString(scrollContainer)) {
438
+ scrollport = scrollport.document.querySelector(scrollContainer);
439
+ }
440
+ }
441
+ var needResetFinalLazyLoadHandler = this.props.debounce !== undefined && delayType === 'throttle' || delayType === 'debounce' && this.props.debounce === undefined;
442
+
443
+ if (needResetFinalLazyLoadHandler) {
444
+ (0, event.off)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);
445
+ (0, event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);
446
+ finalLazyLoadHandler = null;
447
+ }
448
+
449
+ if (!finalLazyLoadHandler) {
450
+ if (this.props.debounce !== undefined) {
451
+ finalLazyLoadHandler = (0, _debounce2.default)(lazyLoadHandler, typeof this.props.debounce === 'number' ? this.props.debounce : 300);
452
+ delayType = 'debounce';
453
+ } else if (this.props.throttle !== undefined) {
454
+ finalLazyLoadHandler = (0, _throttle2.default)(lazyLoadHandler, typeof this.props.throttle === 'number' ? this.props.throttle : 300);
455
+ delayType = 'throttle';
456
+ } else {
457
+ finalLazyLoadHandler = lazyLoadHandler;
458
+ }
459
+ }
460
+
461
+ if (this.props.overflow) {
462
+ var parent = (0, _scrollParent2.default)(_reactDom2.default.findDOMNode(this));
463
+ // const parent = scrollParent(this.ref);
464
+ if (parent && typeof parent.getAttribute === 'function') {
465
+ var listenerCount = 1 + +parent.getAttribute(LISTEN_FLAG);
466
+ if (listenerCount === 1) {
467
+ parent.addEventListener('scroll', finalLazyLoadHandler, passiveEvent);
468
+ }
469
+ parent.setAttribute(LISTEN_FLAG, listenerCount);
470
+ }
471
+ } else if (listeners.length === 0 || needResetFinalLazyLoadHandler) {
472
+ var _props = this.props,
473
+ scroll = _props.scroll,
474
+ resize = _props.resize;
475
+
476
+
477
+ if (scroll) {
478
+ (0, event.on)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);
479
+ }
480
+
481
+ if (resize) {
482
+ (0, event.on)(window, 'resize', finalLazyLoadHandler, passiveEvent);
483
+ }
484
+ }
485
+
486
+ listeners.push(this);
487
+ checkVisible(this);
488
+ }
489
+ }, {
490
+ key: 'shouldComponentUpdate',
491
+ value: function shouldComponentUpdate() {
492
+ return this.visible;
493
+ }
494
+ }, {
495
+ key: 'componentWillUnmount',
496
+ value: function componentWillUnmount() {
497
+ if (this.props.overflow) {
498
+ var parent = (0, _scrollParent2.default)(_reactDom2.default.findDOMNode(this));
499
+ // const parent = scrollParent(this.ref);
500
+ if (parent && typeof parent.getAttribute === 'function') {
501
+ var listenerCount = +parent.getAttribute(LISTEN_FLAG) - 1;
502
+ if (listenerCount === 0) {
503
+ parent.removeEventListener('scroll', finalLazyLoadHandler, passiveEvent);
504
+ parent.removeAttribute(LISTEN_FLAG);
505
+ } else {
506
+ parent.setAttribute(LISTEN_FLAG, listenerCount);
507
+ }
508
+ }
509
+ }
510
+
511
+ var index = listeners.indexOf(this);
512
+ if (index !== -1) {
513
+ listeners.splice(index, 1);
514
+ }
515
+
516
+ if (listeners.length === 0 && typeof window !== 'undefined') {
517
+ (0, event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);
518
+ (0, event.off)(window, 'scroll', finalLazyLoadHandler, passiveEvent);
519
+ }
520
+ }
521
+ }, {
522
+ key: 'render',
523
+ value: function render() {
524
+ return this.visible ? this.props.children : this.props.placeholder ? this.props.placeholder : _react2.default.createElement('div', { style: { height: this.props.height }, className: 'lazyload-placeholder' });
525
+ // <span ref={this.setRef} className="lazyload-custom-placeholder">
526
+ // {this.props.placeholder}
527
+ // </span> :
528
+ // <div ref={this.setRef} style={{ height: this.props.height }} className="lazyload-placeholder" />;
529
+ }
530
+ }]);
531
+
532
+ return LazyLoad;
533
+ }(React__default.Component);
534
+
535
+ LazyLoad.propTypes = {
536
+ once: _propTypes2.default.bool,
537
+ height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
538
+ offset: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
539
+ overflow: _propTypes2.default.bool,
540
+ resize: _propTypes2.default.bool,
541
+ scroll: _propTypes2.default.bool,
542
+ children: _propTypes2.default.node,
543
+ throttle: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),
544
+ debounce: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),
545
+ placeholder: _propTypes2.default.node,
546
+ scrollContainer: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),
547
+ unmountIfInvisible: _propTypes2.default.bool
548
+ };
549
+
550
+ LazyLoad.defaultProps = {
551
+ once: false,
552
+ offset: 0,
553
+ overflow: false,
554
+ resize: false,
555
+ scroll: true,
556
+ unmountIfInvisible: false
557
+ };
558
+
559
+ var getDisplayName = function getDisplayName(WrappedComponent) {
560
+ return WrappedComponent.displayName || WrappedComponent.name || 'Component';
561
+ };
562
+
563
+ var decorator = function decorator() {
564
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
565
+ return function lazyload(WrappedComponent) {
566
+ return function (_Component2) {
567
+ _inherits(LazyLoadDecorated, _Component2);
568
+
569
+ function LazyLoadDecorated() {
570
+ _classCallCheck(this, LazyLoadDecorated);
571
+
572
+ var _this2 = _possibleConstructorReturn(this, (LazyLoadDecorated.__proto__ || Object.getPrototypeOf(LazyLoadDecorated)).call(this));
573
+
574
+ _this2.displayName = 'LazyLoad' + getDisplayName(WrappedComponent);
575
+ return _this2;
576
+ }
577
+
578
+ _createClass(LazyLoadDecorated, [{
579
+ key: 'render',
580
+ value: function render() {
581
+ return _react2.default.createElement(
582
+ LazyLoad,
583
+ options,
584
+ _react2.default.createElement(WrappedComponent, this.props)
585
+ );
586
+ }
587
+ }]);
588
+
589
+ return LazyLoadDecorated;
590
+ }(React__default.Component);
591
+ };
592
+ };
593
+
594
+ exports.lazyload = decorator;
595
+ exports.default = LazyLoad;
596
+ exports.forceCheck = lazyLoadHandler;
597
+ exports.forceVisible = forceVisible;
598
+ });
599
+
600
+ var LazyLoad = unwrapExports(lib);
601
+ var lib_1 = lib.forceVisible;
602
+ var lib_2 = lib.forceCheck;
603
+ var lib_3 = lib.lazyload;
604
+
605
+ export { LazyLoad as L };