@mjhls/mjh-framework 1.0.204 → 1.0.205

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