@mjhls/mjh-framework 1.0.885 → 1.0.886

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 (32) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/ContentCardPaginated.js +414 -0
  3. package/dist/cjs/DeckQueuePaginated.js +345 -0
  4. package/dist/cjs/GridContent.js +44 -157
  5. package/dist/cjs/GridContentPaginated.js +704 -0
  6. package/dist/cjs/ImageSlider-b96720eb.js +2813 -0
  7. package/dist/cjs/MasterDeckPaginated.js +446 -0
  8. package/dist/cjs/MediaSeriesCard-8b4efd28.js +9505 -0
  9. package/dist/cjs/MediaSeriesLanding.js +20 -9502
  10. package/dist/cjs/MediaSeriesLandingPaginated.js +524 -0
  11. package/dist/cjs/Pagination-8f2038bf.js +53 -0
  12. package/dist/cjs/PartnerDetailListing.js +12 -2807
  13. package/dist/cjs/PartnerDetailListingPaginated.js +314 -0
  14. package/dist/cjs/PublicationFeature-5ccf9b13.js +130 -0
  15. package/dist/cjs/QueueDeckExpandedPaginated.js +1378 -0
  16. package/dist/cjs/index.js +2 -0
  17. package/dist/esm/ContentCardPaginated.js +403 -0
  18. package/dist/esm/DeckQueuePaginated.js +334 -0
  19. package/dist/esm/GridContent.js +2 -114
  20. package/dist/esm/GridContentPaginated.js +693 -0
  21. package/dist/esm/ImageSlider-de7846ea.js +2804 -0
  22. package/dist/esm/MasterDeckPaginated.js +438 -0
  23. package/dist/esm/MediaSeriesCard-51ebf1c0.js +9495 -0
  24. package/dist/esm/MediaSeriesLanding.js +16 -9496
  25. package/dist/esm/MediaSeriesLandingPaginated.js +517 -0
  26. package/dist/esm/Pagination-c0db7ca1.js +46 -0
  27. package/dist/esm/PartnerDetailListing.js +13 -2807
  28. package/dist/esm/PartnerDetailListingPaginated.js +308 -0
  29. package/dist/esm/PublicationFeature-d88e76b9.js +121 -0
  30. package/dist/esm/QueueDeckExpandedPaginated.js +1372 -0
  31. package/dist/esm/index.js +2 -0
  32. package/package.json +2 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # mjh-framework v. 1.0.885
1
+ # mjh-framework v. 1.0.886
2
2
 
3
3
  [![NPM](https://img.shields.io/npm/v/mjh-framework.svg)](https://www.npmjs.com/package/mjh-framework) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
4
4
 
@@ -0,0 +1,414 @@
1
+ 'use strict';
2
+
3
+ var toConsumableArray = require('./toConsumableArray-d7797c2b.js');
4
+ var asyncToGenerator = require('./asyncToGenerator-77821af0.js');
5
+ var _extends = require('./extends-7c86182f.js');
6
+ var inherits = require('./inherits-de66ea16.js');
7
+ var React = require('react');
8
+ var index = require('./index-fc2f1ca2.js');
9
+ var Container = require('react-bootstrap/Container');
10
+ var Row = require('react-bootstrap/Row');
11
+ var Col = require('react-bootstrap/Col');
12
+ var Card = require('react-bootstrap/Card');
13
+ var moment = require('./moment-aca40de1.js');
14
+ var Router = require('next/router');
15
+ var urlFor = require('./urlFor.js');
16
+ var index$1 = require('./index-eadd5035.js');
17
+ var main = require('./main-f1c77adb.js');
18
+ var entities = require('./entities-df1aed86.js');
19
+ var ADInfeed = require('./ADInfeed-bce0ba07.js');
20
+ var Pagination = require('./Pagination-8f2038bf.js');
21
+ var Spinner = require('react-bootstrap/Spinner');
22
+ require('./_commonjsHelpers-06173234.js');
23
+ require('./core.get-iterator-method-5643aa10.js');
24
+ require('./_iter-detect-b1df62f0.js');
25
+ require('./web.dom.iterable-d98303e0.js');
26
+ require('./_library-dd23b178.js');
27
+ require('./_object-pie-083f2dd6.js');
28
+ require('./_object-sap-d1978572.js');
29
+ require('./define-property-e8404b64.js');
30
+ require('./typeof-567e31ff.js');
31
+ require('./_is-array-54228b29.js');
32
+ require('./events-1b438fe7.js');
33
+ require('prop-types');
34
+ require('./slicedToArray-067dd3bc.js');
35
+ require('./index-d48b231c.js');
36
+ require('react-dom');
37
+ require('./AdSlot.js');
38
+ require('./debounce-d4a2369b.js');
39
+ require('./isSymbol-03abbdf0.js');
40
+ require('./toNumber-5e1fac58.js');
41
+ require('./Beam.js');
42
+ require('./stringify-f7a37a8d.js');
43
+ require('./Segment.js');
44
+ require('react-paginate');
45
+
46
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
47
+
48
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
49
+ var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
50
+ var Row__default = /*#__PURE__*/_interopDefaultLegacy(Row);
51
+ var Col__default = /*#__PURE__*/_interopDefaultLegacy(Col);
52
+ var Card__default = /*#__PURE__*/_interopDefaultLegacy(Card);
53
+ var Spinner__default = /*#__PURE__*/_interopDefaultLegacy(Spinner);
54
+
55
+ var DeckContent = function (_React$Component) {
56
+ inherits._inherits(DeckContent, _React$Component);
57
+
58
+ function DeckContent() {
59
+ var _ref,
60
+ _this2 = this;
61
+
62
+ var _temp, _this, _ret;
63
+
64
+ inherits._classCallCheck(this, DeckContent);
65
+
66
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
67
+ args[_key] = arguments[_key];
68
+ }
69
+
70
+ return _ret = (_temp = (_this = inherits._possibleConstructorReturn(this, (_ref = DeckContent.__proto__ || inherits._Object$getPrototypeOf(DeckContent)).call.apply(_ref, [this].concat(args))), _this), _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.client = _this.props.client, _this.seoPaginate = _this.props.seoPaginate, _this.state = {
71
+ data: _this.data,
72
+ dataKeptToCompareNewDatarecord: _this.data,
73
+ itemsPerPage: _this.params ? _this.params.itemsPerPage : _this.params.from && _this.params.to ? _this.params.to - _this.params.from : 30,
74
+ page: _this.props.currentPage || 1,
75
+ from: _this.params ? _this.params.from : 0,
76
+ to: _this.params ? _this.params.to : 30,
77
+ total_pages: null,
78
+ query: _this.query,
79
+ currentPage: _this.props.currentPage || 1,
80
+ isDataLoading: false,
81
+ totalDataCount: _this.props.totalDataCount
82
+ }, _this.renderCardImage = function (row, page) {
83
+ if (row.thumbnail && row.thumbnail.asset) {
84
+ var url = urlFor({
85
+ client: _this.client,
86
+ source: row.thumbnail,
87
+ imageHeight: _this.props.imageHeight || null,
88
+ imageWidth: _this.props.imageWidth || null,
89
+ imageFit: _this.props.imageFit || null
90
+ });
91
+ return url;
92
+ } else {
93
+ return _this.defaultImage;
94
+ }
95
+ }, _this.seoPagination = function (pageNumber) {
96
+ var router = _this.props.router;
97
+
98
+ var path = router.asPath;
99
+ var qrIndex = path.indexOf('?');
100
+ var pathname = router.pathname;
101
+ var queryString = '';
102
+ if (qrIndex > 0) {
103
+ path = path.substring(1, qrIndex);
104
+ var partialQS = router.asPath.substring(qrIndex + 1);
105
+ var partialQSArr = partialQS.split('&');
106
+ // exclude page=xxx from query string
107
+ partialQSArr.map(function (item) {
108
+ var itemArr = item.split('=');
109
+ var key = itemArr[0];
110
+ var val = itemArr[1];
111
+ if (key !== 'page') queryString += (queryString.length === 0 ? '' : '&') + key + '=' + val;
112
+ });
113
+ }
114
+ if (queryString.length > 0) path += '?' + queryString;
115
+ pageNumber = parseInt(pageNumber);
116
+ if (_this.state.page !== pageNumber) {
117
+ if (path[0] !== '/') path = '/' + path;
118
+ var newPath = pageNumber === 1 ? '' + path : '' + path + (queryString.length > 0 ? '&' : '?') + 'page=' + pageNumber;
119
+ router.push(pathname, newPath, {
120
+ shallow: true
121
+ });
122
+ }
123
+ }, _this.handlePageChange = function () {
124
+ var _ref2 = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee(selectedPage) {
125
+ var start, newParams, newData;
126
+ return asyncToGenerator.regenerator.wrap(function _callee$(_context) {
127
+ while (1) {
128
+ switch (_context.prev = _context.next) {
129
+ case 0:
130
+ console.log('selectedPage', selectedPage);
131
+ _this.setState({
132
+ isDataLoading: true,
133
+ currentPage: selectedPage
134
+ });
135
+ _this.seoPaginate && _this.seoPagination(selectedPage);
136
+ index.lib_3.refresh();
137
+ document.body.scrollTop = 0;
138
+ document.documentElement.scrollTop = 0;
139
+ start = (selectedPage - 1) * _this.state.itemsPerPage;
140
+ newParams = _extends._extends({}, _this.params, {
141
+ from: start,
142
+ to: start + _this.state.itemsPerPage
143
+ });
144
+ _context.prev = 8;
145
+ _context.next = 11;
146
+ return _this.client.fetch(_this.query, newParams);
147
+
148
+ case 11:
149
+ newData = _context.sent;
150
+
151
+ if (_this.pointer && _this.pointerArray) newData = newData[pointerArray][pointer];
152
+ if (newData && newData.length > 0) {
153
+ _this.setState({
154
+ isDataLoading: false,
155
+ data: newData,
156
+ page: selectedPage
157
+ });
158
+ }
159
+ _context.next = 19;
160
+ break;
161
+
162
+ case 16:
163
+ _context.prev = 16;
164
+ _context.t0 = _context['catch'](8);
165
+
166
+ console.error(_context.t0);
167
+
168
+ case 19:
169
+ case 'end':
170
+ return _context.stop();
171
+ }
172
+ }
173
+ }, _callee, _this2, [[8, 16]]);
174
+ }));
175
+
176
+ return function (_x) {
177
+ return _ref2.apply(this, arguments);
178
+ };
179
+ }(), _this.renderAuthor = function (authorDetail, index, length) {
180
+ if (authorDetail) {
181
+ var _id = authorDetail._id,
182
+ displayName = authorDetail.displayName,
183
+ url = authorDetail.url;
184
+
185
+ if (displayName && url && url.current) {
186
+ return React__default['default'].createElement(
187
+ 'div',
188
+ { key: _id },
189
+ index === 0 && React__default['default'].createElement(
190
+ 'span',
191
+ { className: 'pr-1' },
192
+ 'By'
193
+ ),
194
+ React__default['default'].createElement(
195
+ 'a',
196
+ { href: '/authors/${url.current}', className: 'text-muted' },
197
+ displayName,
198
+ length !== index + 1 && React__default['default'].createElement('br', null)
199
+ )
200
+ );
201
+ } else if (displayName) {
202
+ return React__default['default'].createElement(
203
+ 'div',
204
+ { key: _id },
205
+ index === 0 && React__default['default'].createElement(
206
+ 'span',
207
+ { className: 'pr-1' },
208
+ 'By'
209
+ ),
210
+ React__default['default'].createElement(
211
+ 'span',
212
+ { className: 'text-muted' },
213
+ displayName,
214
+ length !== index + 1 && React__default['default'].createElement('br', null)
215
+ )
216
+ );
217
+ }
218
+ } else return null;
219
+ }, _this.cardLoader = function (page, columns, variant, showBI, brandInsight) {
220
+ var mode = variant && variant === 'bottom' ? 'column-reverse' : 'column';
221
+
222
+ var itemCounter = 0;
223
+ var lgVar = 12;
224
+ var numberOfItemsBeforeAd = 6;
225
+
226
+ var insert = function insert(arr, index, newElement) {
227
+ return [].concat(toConsumableArray._toConsumableArray(arr.slice(0, index)), [newElement], toConsumableArray._toConsumableArray(arr.slice(index)));
228
+ };
229
+ var articles = [];
230
+ if (showBI) {
231
+ var data = _this.state.data;
232
+ articles = data;
233
+ var pos = 3;
234
+ for (var i = 1; pos < articles.length; i++) {
235
+ var inFeedAd = {
236
+ adUnit: brandInsight.adUnit,
237
+ className: brandInsight.className,
238
+ networkID: brandInsight.networkID,
239
+ sizes: brandInsight.sizes,
240
+ slotId: brandInsight.slotId + '_' + i,
241
+ targeting: {
242
+ pos: 'infeed',
243
+ content_placement: brandInsight.targeting.content_placement,
244
+ document_url: brandInsight.targeting.document_url
245
+ },
246
+ _type: 'BrandInsight',
247
+ /* Passing refresh flag */
248
+ refreshFlag: brandInsight.refreshFlag ? brandInsight.refreshFlag : false
249
+ };
250
+
251
+ articles = insert(articles, pos, inFeedAd);
252
+ pos += brandInsight.interval + 1;
253
+ }
254
+ } else {
255
+ articles = _this.state.data;
256
+ }
257
+
258
+ return React__default['default'].createElement(
259
+ Row__default['default'],
260
+ null,
261
+ articles && articles.map(function (row, index) {
262
+ if (columns === 'rotate' && itemCounter % 3 === 0) {
263
+ lgVar = 12;
264
+ } else if (columns && columns !== 'rotate') {
265
+ lgVar = Math.floor(12 / columns);
266
+ } else {
267
+ lgVar = 6;
268
+ }
269
+ if (row._type === 'BrandInsight' && row.adUnit) {
270
+ return React__default['default'].createElement(ADInfeed.ADInfeed, { index: index, infeedAd: row });
271
+ } else {
272
+ var contentCategoryName = row.contentCategory && row.contentCategory.name && _this.mapping[row.contentCategory.name] ? row.contentCategory.name : 'Articles';
273
+ return React__default['default'].createElement(
274
+ React__default['default'].Fragment,
275
+ { key: itemCounter },
276
+ React__default['default'].createElement(
277
+ Col__default['default'],
278
+ { md: 12, lg: lgVar, counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
279
+ React__default['default'].createElement(
280
+ Card__default['default'],
281
+ { className: 'content-card', style: { flexDirection: mode } },
282
+ (row.thumbnail && row.thumbnail.asset || _this.props.defaultImage) && React__default['default'].createElement(
283
+ 'a',
284
+ { href: _this.mapping[contentCategoryName] + '/' + row.url.current },
285
+ React__default['default'].createElement(
286
+ index$1.LazyLoad,
287
+ { height: _this.props.imageHeight },
288
+ React__default['default'].createElement(Card__default['default'].Img, { variant: 'top', src: _this.renderCardImage(row, page), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
289
+ )
290
+ ),
291
+ React__default['default'].createElement(
292
+ Card__default['default'].Body,
293
+ null,
294
+ React__default['default'].createElement(
295
+ 'a',
296
+ { href: _this.mapping[contentCategoryName] + '/' + row.url.current },
297
+ React__default['default'].createElement(
298
+ Card__default['default'].Title,
299
+ null,
300
+ row.title
301
+ )
302
+ ),
303
+ _this.props.showPublished && row.published && React__default['default'].createElement(
304
+ Card__default['default'].Subtitle,
305
+ null,
306
+ moment.moment(row.published).format('MMMM DD, YYYY')
307
+ ),
308
+ _this.props.showAuthor && row.authorMapping && row.authorMapping.length > 0 && row.authorMapping.map(function (authorDetail, index) {
309
+ return _this.renderAuthor(authorDetail, index, row.authorMapping.length);
310
+ }),
311
+ React__default['default'].createElement(
312
+ Card__default['default'].Text,
313
+ null,
314
+ entities.clean_html_1(row.summary)
315
+ )
316
+ )
317
+ )
318
+ ),
319
+ main.main_43 && _this.props.rightItems && (index + 1) % numberOfItemsBeforeAd === 0 && _this.renderMobileAd(index, numberOfItemsBeforeAd)
320
+ );
321
+ }
322
+ })
323
+ );
324
+ }, _this.renderMobileAd = function (index, numberOfItemsBeforeAd) {
325
+ var rightItems = _this.props.rightItems;
326
+
327
+ var i = ((index + 1) / numberOfItemsBeforeAd - 1) % rightItems.length;
328
+ return React__default['default'].createElement(
329
+ Col__default['default'],
330
+ { md: 12, style: { display: 'flex', flex: '1 0 auto' } },
331
+ rightItems[i].component
332
+ );
333
+ }, _temp), inherits._possibleConstructorReturn(_this, _ret);
334
+ }
335
+
336
+ inherits._createClass(DeckContent, [{
337
+ key: 'componentDidUpdate',
338
+ value: function componentDidUpdate(prevProps, prevState) {
339
+ if (this.state.dataKeptToCompareNewDatarecord !== this.props.dataRecord) {
340
+ // eslint-disable-next-line react/no-did-update-set-state
341
+ this.setState({
342
+ data: this.props.dataRecord,
343
+ dataKeptToCompareNewDatarecord: this.props.dataRecord,
344
+ itemsPerPage: this.props.params ? this.props.params.to : 2,
345
+ page: 1,
346
+ from: this.props.params ? this.props.params.from : 0,
347
+ to: this.props.params ? this.props.params.to : 2,
348
+ total_pages: null,
349
+ query: this.props.query,
350
+ isDataLoading: false,
351
+ totalDataCount: this.props.totalDataCount
352
+ });
353
+ }
354
+ }
355
+ }, {
356
+ key: 'render',
357
+ value: function render() {
358
+ var _props = this.props,
359
+ columns = _props.columns,
360
+ variant = _props.variant,
361
+ page = _props.page,
362
+ showBI = _props.showBI,
363
+ brandInsight = _props.brandInsight;
364
+
365
+
366
+ return React__default['default'].createElement(
367
+ 'div',
368
+ { className: 'contentDeck' },
369
+ this.state.isDataLoading ? React__default['default'].createElement(
370
+ 'div',
371
+ { className: 'd-flex justify-content-center', style: { marginTop: '100px' } },
372
+ React__default['default'].createElement(
373
+ Spinner__default['default'],
374
+ { animation: 'border', role: 'status' },
375
+ React__default['default'].createElement(
376
+ 'span',
377
+ { className: 'sr-only' },
378
+ 'Loading...'
379
+ )
380
+ )
381
+ ) : React__default['default'].createElement(
382
+ React__default['default'].Fragment,
383
+ null,
384
+ React__default['default'].createElement(
385
+ Container__default['default'],
386
+ null,
387
+ this.cardLoader(page, columns, variant, showBI, brandInsight)
388
+ ),
389
+ React__default['default'].createElement(
390
+ 'div',
391
+ { className: 'pagination-wrapper' },
392
+ React__default['default'].createElement(Pagination.Pagination, {
393
+ pageCount: Math.ceil(this.state.totalDataCount / this.state.itemsPerPage),
394
+ pageRangeDisplayed: main.main_43 ? 3 : 9,
395
+ currentPage: this.state.currentPage,
396
+ onPageChange: this.handlePageChange
397
+ }),
398
+ React__default['default'].createElement(
399
+ 'style',
400
+ { jsx: 'true' },
401
+ '\n .pagination-wrapper {\n margin: 3rem 0;\n }\n @media only screen and (max-width: 768px) {\n .pagination-wrapper {\n margin-bottom: 6rem;\n }\n }\n '
402
+ )
403
+ )
404
+ )
405
+ );
406
+ }
407
+ }]);
408
+
409
+ return DeckContent;
410
+ }(React__default['default'].Component);
411
+
412
+ var ContentCardPaginated = Router.withRouter(DeckContent);
413
+
414
+ module.exports = ContentCardPaginated;