@mjhls/mjh-framework 1.0.206 → 1.0.208

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 (44) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/DeckContent.js +10 -11
  3. package/dist/cjs/DeckQueue.js +11 -12
  4. package/dist/cjs/{Dfp-d94f7f73.js → Dfp-c4f1f12a.js} +5 -5
  5. package/dist/cjs/GridContent-089aa22c.js +632 -0
  6. package/dist/cjs/GridContent.js +17 -604
  7. package/dist/cjs/IssueContentDeck.js +4 -4
  8. package/dist/cjs/IssueDeck.js +4 -4
  9. package/dist/cjs/MasterDeck.js +5 -6
  10. package/dist/cjs/{Normal-7dd8c339.js → Normal-47d9e184.js} +62 -3
  11. package/dist/cjs/PublicationDeck.js +4 -4
  12. package/dist/cjs/QueueDeckExpanded.js +13 -13
  13. package/dist/cjs/{TaxonomyCard-7b5b4298.js → TaxonomyCard-d97685e2.js} +5 -5
  14. package/dist/cjs/TaxonomyCard.js +1 -1
  15. package/dist/cjs/TemplateNormal.js +4 -4
  16. package/dist/cjs/ThumbnailCard.js +4 -4
  17. package/dist/cjs/VideoSeriesListing.js +6 -7
  18. package/dist/cjs/{YoutubeGroup-4cf7a4aa.js → YoutubeGroup-7dc3064d.js} +3 -3
  19. package/dist/cjs/YoutubeGroup.js +1 -1
  20. package/dist/cjs/{debounce-286eb3fb.js → debounce-a963b136.js} +211 -6
  21. package/dist/cjs/{get-06aac51b.js → get-126b1712.js} +10 -10
  22. package/dist/cjs/{visibility-sensor-5c5a7302.js → index-0322e486.js} +0 -587
  23. package/dist/cjs/index.js +220 -100
  24. package/dist/cjs/{index.es-2289df51.js → visibility-sensor-bea3105d.js} +587 -0
  25. package/dist/esm/DeckContent.js +3 -4
  26. package/dist/esm/DeckQueue.js +4 -5
  27. package/dist/esm/{Dfp-ab7941d3.js → Dfp-6731ac01.js} +3 -3
  28. package/dist/esm/GridContent-214acb61.js +625 -0
  29. package/dist/esm/GridContent.js +16 -603
  30. package/dist/esm/MasterDeck.js +3 -4
  31. package/dist/esm/{Normal-403c5666.js → Normal-be430fa9.js} +62 -4
  32. package/dist/esm/QueueDeckExpanded.js +2 -2
  33. package/dist/esm/TemplateNormal.js +4 -4
  34. package/dist/esm/VideoSeriesListing.js +3 -4
  35. package/dist/esm/{debounce-a0242b4a.js → debounce-dc0c02e5.js} +202 -2
  36. package/dist/esm/{get-b684ff61.js → get-b074314b.js} +1 -1
  37. package/dist/esm/{visibility-sensor-3cfe6713.js → index-6a79dad6.js} +2 -588
  38. package/dist/esm/index.js +190 -72
  39. package/dist/esm/{index.es-f369b3e8.js → visibility-sensor-675d3fa1.js} +588 -2
  40. package/package.json +1 -1
  41. package/dist/cjs/AD-e2479b7c.js +0 -31
  42. package/dist/cjs/isSymbol-311eb805.js +0 -209
  43. package/dist/esm/AD-1b2a3dd3.js +0 -26
  44. package/dist/esm/isSymbol-c2b7d05a.js +0 -203
@@ -0,0 +1,632 @@
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 index = require('./index-0322e486.js');
8
+ var Container = _interopDefault(require('react-bootstrap/Container'));
9
+ var Row = _interopDefault(require('react-bootstrap/Row'));
10
+ var Col = _interopDefault(require('react-bootstrap/Col'));
11
+ var Card = _interopDefault(require('react-bootstrap/Card'));
12
+ var visibilitySensor = require('./visibility-sensor-bea3105d.js');
13
+ require('next/link');
14
+ var Router = require('next/router');
15
+ var Router__default = _interopDefault(Router);
16
+ var debounce = require('./debounce-a963b136.js');
17
+ var index$1 = require('./index-a4c53ff4.js');
18
+ var index$2 = require('./index-0d0efcfa.js');
19
+ var main = require('./main-58839f4e.js');
20
+ var entities = require('./entities-3e0b4a16.js');
21
+ var _babelHelpers = require('./_babelHelpers-f321c258.js');
22
+ var get$1 = require('./get-126b1712.js');
23
+
24
+ var Dfp = React__default.lazy(function () {
25
+ return new Promise(function (resolve) { resolve(require('./Dfp-c4f1f12a.js')); });
26
+ });
27
+
28
+ var AD = function AD(props) {
29
+ if (typeof window === 'undefined') {
30
+ return null;
31
+ }
32
+ return React__default.createElement(
33
+ 'div',
34
+ null,
35
+ React__default.createElement(
36
+ React.Suspense,
37
+ { fallback: React__default.createElement(
38
+ 'div',
39
+ null,
40
+ 'Loading...'
41
+ ) },
42
+ React__default.createElement(Dfp, props)
43
+ )
44
+ );
45
+ };
46
+
47
+ var GridContent = function (_React$Component) {
48
+ _babelHelpers.inherits(GridContent, _React$Component);
49
+
50
+ function GridContent() {
51
+ var _ref;
52
+
53
+ var _temp, _this, _ret;
54
+
55
+ _babelHelpers.classCallCheck(this, GridContent);
56
+
57
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
58
+ args[_key] = arguments[_key];
59
+ }
60
+
61
+ return _ret = (_temp = (_this = _babelHelpers.possibleConstructorReturn(this, (_ref = GridContent.__proto__ || Object.getPrototypeOf(GridContent)).call.apply(_ref, [this].concat(args))), _this), _this.page = _this.props.page, _this.mapping = _this.props.mapping, _this.data = _this.props.dataRecord, _this.query = _this.props.query, _this.params = _this.props.params, _this.pointer = _this.props.pointer ? _this.props.pointer : false, _this.pointerArray = _this.props.pointerArray ? _this.props.pointerArray : false, _this.defaultImage = _this.props.defaultImage ? _this.props.defaultImage : '/placeholder.jpg', _this.state = {
62
+ data: _this.data,
63
+ per: _this.params ? _this.params.to : 2,
64
+ page: _this.props.currentPage || 1,
65
+ from: _this.params ? _this.params.from : 0,
66
+ to: _this.params ? _this.params.to : 2,
67
+ total_pages: null,
68
+ scrolling: true,
69
+ query: _this.query,
70
+ currentPage: _this.props.currentPage || 1
71
+ }, _this.loadMore = debounce.debounce_1(function () {
72
+ _this.setState(function (state) {
73
+ var page = state.page,
74
+ from = state.from,
75
+ per = state.per,
76
+ to = state.to;
77
+
78
+ return {
79
+ page: page + 1,
80
+ from: from + per,
81
+ to: to + per
82
+ };
83
+ }, _this.loadData);
84
+ }, 0), _this.loadData = function () {
85
+ var _this$state = _this.state,
86
+ from = _this$state.from,
87
+ to = _this$state.to,
88
+ data = _this$state.data,
89
+ query = _this$state.query,
90
+ page = _this$state.page;
91
+ var client = _this.props.client;
92
+
93
+
94
+ var params = _babelHelpers._extends({}, _this.params, { from: from, to: to
95
+ // const queryUpdated = query.replace('$from', params.from).replace('$to', params.to)
96
+ });client.fetch(query, params).then(function (dataArr) {
97
+ if (_this.pointer && _this.pointerArray) {
98
+ var pointer = _this.pointer;
99
+ dataArr = dataArr[_this.pointerArray][pointer];
100
+ }
101
+ dataArr = dataArr.map(function (item) {
102
+ return _babelHelpers._extends({}, item, {
103
+ pageNumber: page
104
+ });
105
+ });
106
+
107
+ _this.setState(function () {
108
+ if (dataArr.length > 0) {
109
+ return {
110
+ data: [].concat(_babelHelpers.toConsumableArray(data), _babelHelpers.toConsumableArray(dataArr)),
111
+ scrolling: true
112
+ };
113
+ } else {
114
+ return {
115
+ scrolling: false
116
+ };
117
+ }
118
+ });
119
+ });
120
+ }, _this.urlFor = function (source) {
121
+ var client = _this.props.client;
122
+
123
+ var builder = index$1.imageUrlBuilder(client);
124
+ return builder.image(source).auto('format');
125
+ }, _this.renderCardImage = function (row, page) {
126
+ if (row.thumbnail && row.thumbnail.asset) {
127
+ var url = _this.urlFor(row.thumbnail);
128
+ if (_this.props.imageHeight) url = url.height(_this.props.imageHeight);
129
+ if (_this.props.imageWidth) url = url.width(_this.props.imageWidth);
130
+ return url.url();
131
+ } else {
132
+ return _this.defaultImage;
133
+ }
134
+ }, _this.changePageNumber = function (pageNumber) {
135
+ var _this$props = _this.props,
136
+ seoPaginate = _this$props.seoPaginate,
137
+ pageview = _this$props.pageview,
138
+ router = _this$props.router;
139
+ var currentPage = _this.state.currentPage;
140
+
141
+ if (seoPaginate) {
142
+ var path = router.asPath;
143
+ var qrIndex = path.indexOf('?');
144
+ var pathname = router.pathname;
145
+ var queryString = '';
146
+
147
+ if (qrIndex > 0) {
148
+ path = path.substring(1, qrIndex);
149
+
150
+ var partialQS = router.asPath.substring(qrIndex + 1);
151
+ var partialQSArr = partialQS.split('&');
152
+
153
+ // exclude page=xxx from query string
154
+ partialQSArr.map(function (item) {
155
+ var itemArr = item.split('=');
156
+ var key = itemArr[0];
157
+ var val = itemArr[1];
158
+
159
+ if (key !== 'page') {
160
+ queryString += (queryString.length === 0 ? '' : '&') + key + '=' + val;
161
+ }
162
+ });
163
+ }
164
+
165
+ if (queryString.length > 0) {
166
+ path += '?' + queryString;
167
+ }
168
+
169
+ pageNumber = parseInt(pageNumber);
170
+
171
+ if (currentPage !== pageNumber) {
172
+ index.lib_3.refresh();
173
+
174
+ _this.setState({
175
+ currentPage: pageNumber
176
+ }, function () {
177
+ if (path[0] !== '/') {
178
+ path = '/' + path;
179
+ }
180
+
181
+ var newPath = pageNumber === 1 ? '' + path : path + '?page=' + pageNumber;
182
+ if (pageview) {
183
+ pageview(newPath);
184
+ }
185
+
186
+ router.push(pathname, newPath, {
187
+ shallow: true
188
+ });
189
+ });
190
+ }
191
+ }
192
+ }, _this.renderAuthor = function (authorDetail, index, length) {
193
+ if (authorDetail) {
194
+ var _id = authorDetail._id,
195
+ displayName = authorDetail.displayName,
196
+ url = authorDetail.url;
197
+
198
+ if (displayName && url && url.current) {
199
+ return React__default.createElement(
200
+ 'div',
201
+ { key: _id },
202
+ index === 0 && React__default.createElement(
203
+ 'span',
204
+ { className: 'pr-1' },
205
+ 'By'
206
+ ),
207
+ React__default.createElement(
208
+ 'a',
209
+ { href: '/authors/' + url.current, className: 'text-muted' },
210
+ displayName,
211
+ length !== index + 1 && React__default.createElement('br', null)
212
+ )
213
+ );
214
+ } else if (displayName) {
215
+ return React__default.createElement(
216
+ 'div',
217
+ { key: _id },
218
+ index === 0 && React__default.createElement(
219
+ 'span',
220
+ { className: 'pr-1' },
221
+ 'By'
222
+ ),
223
+ React__default.createElement(
224
+ 'span',
225
+ { className: 'text-muted' },
226
+ displayName,
227
+ length !== index + 1 && React__default.createElement('br', null)
228
+ )
229
+ );
230
+ }
231
+ } else return null;
232
+ }, _this.checkExternalUrl = function (url) {
233
+ return new RegExp(['http', 'https'].join('|')).test(url);
234
+ }, _this.renderMobileAd = function (index, numberOfItemsBeforeAd) {
235
+ var rightItems = _this.props.rightItems;
236
+
237
+ var i = ((index + 1) / numberOfItemsBeforeAd - 1) % rightItems.length;
238
+ return React__default.createElement(
239
+ 'div',
240
+ { style: { display: 'flex', flex: '1 0 auto' } },
241
+ rightItems[i].component
242
+ );
243
+ }, _this.renderManualPagination = function () {
244
+ var currentPage = _this.state.currentPage;
245
+
246
+ return React__default.createElement(
247
+ 'div',
248
+ { className: 'd-flex justify-content-between' },
249
+ currentPage && currentPage > 1 && React__default.createElement(
250
+ 'a',
251
+ { href: '?page=' + (currentPage - 1) },
252
+ '<< Previous'
253
+ ),
254
+ React__default.createElement(
255
+ 'a',
256
+ { href: '?page=' + (currentPage + 1) },
257
+ 'Next >>'
258
+ )
259
+ );
260
+ }, _temp), _babelHelpers.possibleConstructorReturn(_this, _ret);
261
+ }
262
+
263
+ _babelHelpers.createClass(GridContent, [{
264
+ key: 'cardLoader',
265
+ value: function cardLoader(page, columns, variant, showVideo, VideoPlayer, showBI, brandInsight) {
266
+ var _this2 = this;
267
+
268
+ var lgVar = Math.floor(12 / columns);
269
+ var itemCounter = 0;
270
+ var numberOfItemsBeforeAd = 6;
271
+ var numberOfItemsBeforeVideo = 3;
272
+ if (variant === 'stack') {
273
+ return React__default.createElement(
274
+ Row,
275
+ null,
276
+ this.state.data && this.state.data.map(function (row, index) {
277
+ // const thumbnailURL = get(row, 'thumbnail.asset.url', this.props.defaultImage)
278
+ return React__default.createElement(
279
+ Col,
280
+ { key: index, md: 12, lg: lgVar, style: { display: 'flex', flex: '1 0 auto' } },
281
+ React__default.createElement(
282
+ Card,
283
+ { className: 'queue-card', style: { borderTop: '1px solid #EEE' } },
284
+ React__default.createElement(
285
+ Row,
286
+ { style: { flexDirection: 'row' } },
287
+ React__default.createElement(
288
+ Col,
289
+ { md: 12, lg: 4 },
290
+ React__default.createElement(
291
+ 'a',
292
+ { href: _this2.page + '/' + get$1.get_1(row, 'url.current') },
293
+ React__default.createElement(
294
+ index$2.LazyLoad,
295
+ { height: _this2.props.imageHeight },
296
+ React__default.createElement(Card.Img, { variant: 'top', src: _this2.renderCardImage(row, page), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
297
+ )
298
+ )
299
+ ),
300
+ React__default.createElement(
301
+ Col,
302
+ null,
303
+ React__default.createElement(
304
+ Card.Body,
305
+ { style: { padding: '20px' } },
306
+ React__default.createElement(
307
+ Card.Title,
308
+ null,
309
+ React__default.createElement(
310
+ 'a',
311
+ { href: _this2.page + '/' + get$1.get_1(row, 'url.current') },
312
+ row.title
313
+ )
314
+ ),
315
+ _this2.props.showPublished && row.published && React__default.createElement(
316
+ Card.Subtitle,
317
+ { style: { marginTop: 0 } },
318
+ visibilitySensor.moment(row.published).format('MMMM DD, YYYY')
319
+ ),
320
+ _this2.props.showAuthor && row.authorMapping && row.authorMapping.length > 0 && row.authorMapping.map(function (authorDetail, index) {
321
+ return _this2.renderAuthor(authorDetail, index, row.authorMapping.length);
322
+ }),
323
+ React__default.createElement(
324
+ Card.Text,
325
+ null,
326
+ entities.clean_html_1(row.summary)
327
+ )
328
+ )
329
+ )
330
+ )
331
+ )
332
+ );
333
+ })
334
+ );
335
+ }
336
+
337
+ var insert = function insert(arr, index, newElement) {
338
+ return [].concat(_babelHelpers.toConsumableArray(arr.slice(0, index)), [newElement], _babelHelpers.toConsumableArray(arr.slice(index)));
339
+ };
340
+ var posts = [];
341
+ if (showBI) {
342
+ var data = this.state.data;
343
+ posts = data;
344
+ var pos = 3;
345
+ var i = 1;
346
+ while (pos < posts.length) {
347
+ brandInsight.targeting.pos = 'article' + i;
348
+ posts = insert(posts, pos, brandInsight);
349
+ i++;
350
+ pos += brandInsight.interval + 1;
351
+ }
352
+ } else {
353
+ posts = this.state.data;
354
+ }
355
+
356
+ return React__default.createElement(
357
+ 'div',
358
+ { className: 'grid-container' },
359
+ posts && posts.map(function (row, index) {
360
+ var pageNumber = row.pageNumber || _this2.state.page;
361
+ var contentCategoryName = row.contentCategory && row.contentCategory.name && _this2.mapping[row.contentCategory.name] ? row.contentCategory.name : 'Articles';
362
+ var linkHref = row.url && row.url.current ? _this2.mapping[contentCategoryName] + '/' + row.url.current : '';
363
+ if (row._type === 'feature') {
364
+ if (row.blank || _this2.checkExternalUrl(row.url.current)) {
365
+ return React__default.createElement(
366
+ React__default.Fragment,
367
+ { key: itemCounter },
368
+ React__default.createElement(
369
+ visibilitySensor.VisibilitySensor,
370
+ {
371
+ onChange: function onChange(isVisible) {
372
+ isVisible && _this2.changePageNumber(pageNumber);
373
+ } },
374
+ React__default.createElement(
375
+ 'div',
376
+ { counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
377
+ React__default.createElement(
378
+ Card,
379
+ { className: 'content-card', style: { flexDirection: index === 0 || index % 4 === 0 ? 'top' : 'row' } },
380
+ (row.thumbnail && row.thumbnail.asset || _this2.props.defaultImage) && React__default.createElement(
381
+ 'a',
382
+ { href: row.url.current, target: '_blank', className: index === 0 || index % 4 === 0 ? '' : 'card-image' },
383
+ React__default.createElement(
384
+ index$2.LazyLoad,
385
+ { height: _this2.props.imageHeight },
386
+ React__default.createElement(Card.Img, {
387
+ variant: 'top',
388
+ src: _this2.renderCardImage(row, page),
389
+ alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : ''
390
+ })
391
+ )
392
+ ),
393
+ React__default.createElement(
394
+ Card.Body,
395
+ null,
396
+ React__default.createElement(
397
+ 'a',
398
+ { href: row.url.current, target: '_blank' },
399
+ React__default.createElement(
400
+ Card.Title,
401
+ null,
402
+ row.title
403
+ )
404
+ ),
405
+ _this2.props.showPublished && row.published && React__default.createElement(
406
+ Card.Subtitle,
407
+ { style: { marginTop: 0 } },
408
+ visibilitySensor.moment(row.published).format('MMMM DD, YYYY')
409
+ ),
410
+ _this2.props.showAuthor && row.authorMapping && row.authorMapping.length > 0 && row.authorMapping.map(function (authorDetail, index) {
411
+ return _this2.renderAuthor(authorDetail, index, row.authorMapping.length);
412
+ }),
413
+ React__default.createElement(
414
+ Card.Text,
415
+ { className: index === 0 || index % 4 === 0 ? '' : 'card-subtext' },
416
+ entities.clean_html_1(row.summary)
417
+ )
418
+ )
419
+ )
420
+ )
421
+ ),
422
+ showVideo && (posts.length < numberOfItemsBeforeVideo || index + 1 === numberOfItemsBeforeVideo) && React__default.createElement(VideoPlayer, null),
423
+ main.main_36 && _this2.props.rightItems && (index + 1) % numberOfItemsBeforeAd === 0 && _this2.renderMobileAd(index, numberOfItemsBeforeAd)
424
+ );
425
+ } else {
426
+ return React__default.createElement(
427
+ React__default.Fragment,
428
+ { key: itemCounter },
429
+ React__default.createElement(
430
+ visibilitySensor.VisibilitySensor,
431
+ {
432
+ onChange: function onChange(isVisible) {
433
+ isVisible && _this2.changePageNumber(pageNumber);
434
+ } },
435
+ React__default.createElement(
436
+ 'div',
437
+ { counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
438
+ React__default.createElement(
439
+ Card,
440
+ { className: 'content-card', style: { flexDirection: index === 0 || index % 4 === 0 ? 'top' : 'row' } },
441
+ (row.thumbnail && row.thumbnail.asset || _this2.props.defaultImage) && React__default.createElement(
442
+ 'a',
443
+ { href: row.url.current, className: index === 0 || index % 4 === 0 ? '' : 'card-image' },
444
+ React__default.createElement(
445
+ index$2.LazyLoad,
446
+ { height: _this2.props.imageHeight },
447
+ React__default.createElement(Card.Img, {
448
+ variant: 'top',
449
+ src: _this2.renderCardImage(row, page),
450
+ alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : ''
451
+ })
452
+ )
453
+ ),
454
+ React__default.createElement(
455
+ Card.Body,
456
+ null,
457
+ React__default.createElement(
458
+ 'a',
459
+ { href: row.url.current },
460
+ React__default.createElement(
461
+ Card.Title,
462
+ null,
463
+ row.title
464
+ )
465
+ ),
466
+ _this2.props.showPublished && row.published && React__default.createElement(
467
+ Card.Subtitle,
468
+ { style: { marginTop: 0 } },
469
+ visibilitySensor.moment(row.published).format('MMMM DD, YYYY')
470
+ ),
471
+ _this2.props.showAuthor && row.authorMapping && row.authorMapping.length > 0 && row.authorMapping.map(function (authorDetail, index) {
472
+ return _this2.renderAuthor(authorDetail, index, row.authorMapping.length);
473
+ }),
474
+ React__default.createElement(
475
+ Card.Text,
476
+ { className: index === 0 || index % 4 === 0 ? '' : 'card-subtext' },
477
+ entities.clean_html_1(row.summary)
478
+ )
479
+ )
480
+ )
481
+ )
482
+ ),
483
+ showVideo && (posts.length < numberOfItemsBeforeVideo || index + 1 === numberOfItemsBeforeVideo) && React__default.createElement(VideoPlayer, null),
484
+ main.main_36 && _this2.props.rightItems && (index + 1) % numberOfItemsBeforeAd === 0 && _this2.renderMobileAd(index, numberOfItemsBeforeAd)
485
+ );
486
+ }
487
+ } else if (row._type === 'BrandInsight' && row.adUnit) {
488
+ return React__default.createElement(
489
+ React__default.Fragment,
490
+ { key: itemCounter, className: 'brand-insight-wrapper' },
491
+ React__default.createElement(
492
+ 'div',
493
+ { counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
494
+ React__default.createElement(
495
+ Card,
496
+ { className: 'content-card ad-wrapper', style: { flexDirection: index === 0 || index % 4 === 0 ? 'top' : 'row' } },
497
+ React__default.createElement(AD, { networkID: row.networkID, adUnit: row.adUnit, targeting: row.targeting, className: row.className, sizes: row.sizes, slotId: row.slotId })
498
+ )
499
+ )
500
+ );
501
+ }
502
+ return React__default.createElement(
503
+ React__default.Fragment,
504
+ { key: itemCounter },
505
+ React__default.createElement(
506
+ visibilitySensor.VisibilitySensor,
507
+ {
508
+ onChange: function onChange(isVisible) {
509
+ isVisible && _this2.changePageNumber(pageNumber);
510
+ } },
511
+ React__default.createElement(
512
+ 'div',
513
+ { counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
514
+ React__default.createElement(
515
+ Card,
516
+ { className: 'content-card', style: { flexDirection: index === 0 || index % 4 === 0 ? 'top' : 'row' } },
517
+ (row.thumbnail && row.thumbnail.asset || _this2.props.defaultImage) && React__default.createElement(
518
+ 'a',
519
+ { href: linkHref, className: index === 0 || index % 4 === 0 ? '' : 'card-image' },
520
+ React__default.createElement(
521
+ index$2.LazyLoad,
522
+ { height: _this2.props.imageHeight },
523
+ React__default.createElement(Card.Img, { variant: 'top', src: _this2.renderCardImage(row, page), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
524
+ )
525
+ ),
526
+ React__default.createElement(
527
+ Card.Body,
528
+ null,
529
+ React__default.createElement(
530
+ 'a',
531
+ { href: linkHref },
532
+ React__default.createElement(
533
+ Card.Title,
534
+ null,
535
+ row.title
536
+ )
537
+ ),
538
+ _this2.props.showPublished && row.published && React__default.createElement(
539
+ Card.Subtitle,
540
+ { style: { marginTop: 0 } },
541
+ visibilitySensor.moment(row.published).format('MMMM DD, YYYY')
542
+ ),
543
+ _this2.props.showAuthor && row.authorMapping && row.authorMapping.length > 0 && row.authorMapping.map(function (authorDetail, index) {
544
+ return _this2.renderAuthor(authorDetail, index, row.authorMapping.length);
545
+ }),
546
+ React__default.createElement(
547
+ Card.Text,
548
+ { className: index === 0 || index % 4 === 0 ? '' : 'card-subtext' },
549
+ entities.clean_html_1(row.summary)
550
+ )
551
+ )
552
+ )
553
+ )
554
+ ),
555
+ showVideo && (posts.length < numberOfItemsBeforeVideo || index + 1 === numberOfItemsBeforeVideo) && React__default.createElement(VideoPlayer, null),
556
+ main.main_36 && _this2.props.rightItems && (index + 1) % numberOfItemsBeforeAd === 0 && _this2.renderMobileAd(index, numberOfItemsBeforeAd)
557
+ );
558
+ })
559
+ );
560
+ }
561
+ }, {
562
+ key: 'render',
563
+ value: function render() {
564
+ var _this3 = this;
565
+
566
+ var _props = this.props,
567
+ columns = _props.columns,
568
+ variant = _props.variant,
569
+ autoScroll = _props.autoScroll,
570
+ page = _props.page,
571
+ showVideo = _props.showVideo,
572
+ VideoPlayer = _props.VideoPlayer,
573
+ showBI = _props.showBI,
574
+ brandInsight = _props.brandInsight;
575
+
576
+
577
+ return React__default.createElement(
578
+ 'div',
579
+ { className: 'contentDeck' },
580
+ autoScroll ? React__default.createElement(
581
+ visibilitySensor.InfiniteScroll,
582
+ { dataLength: this.state.data.length, next: this.loadMore, hasMore: this.state.scrolling },
583
+ React__default.createElement(
584
+ Container,
585
+ null,
586
+ this.cardLoader(page, columns, variant, showVideo, VideoPlayer, showBI, brandInsight)
587
+ )
588
+ ) : React__default.createElement(
589
+ React__default.Fragment,
590
+ null,
591
+ React__default.createElement(
592
+ Container,
593
+ null,
594
+ this.cardLoader(page, columns, variant, showVideo, VideoPlayer, showBI, brandInsight)
595
+ ),
596
+ React__default.createElement(
597
+ 'div',
598
+ { style: { padding: '0px 10px' } },
599
+ this.state.scrolling ? React__default.createElement(
600
+ 'button',
601
+ {
602
+ style: { margin: 'auto', width: '100%' },
603
+ onClick: function onClick(e) {
604
+ _this3.loadMore();
605
+ } },
606
+ 'Load More'
607
+ ) : React__default.createElement(
608
+ 'p',
609
+ { style: { textAlign: 'center' } },
610
+ React__default.createElement(
611
+ 'b',
612
+ null,
613
+ 'End of data'
614
+ )
615
+ )
616
+ ),
617
+ React__default.createElement(
618
+ 'noscript',
619
+ null,
620
+ this.renderManualPagination()
621
+ )
622
+ )
623
+ );
624
+ }
625
+ }]);
626
+ return GridContent;
627
+ }(React__default.Component);
628
+
629
+ var GridContent$1 = React__default.memo(Router.withRouter(GridContent));
630
+
631
+ exports.AD = AD;
632
+ exports.GridContent = GridContent$1;