@mjhls/mjh-framework 1.0.203 → 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 -30213
  72. package/dist/index.es.js.map +0 -1
  73. package/dist/index.js +0 -30271
  74. package/dist/index.js.map +0 -1
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- # mjh-framework v. 1.0.203
2
+ # mjh-framework v. 1.0.205
3
3
 
4
4
 
5
5
 
@@ -0,0 +1,31 @@
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
+
8
+ var Dfp = React__default.lazy(function () {
9
+ return new Promise(function (resolve) { resolve(require('./Dfp-d94f7f73.js')); });
10
+ });
11
+
12
+ var AD = function AD(props) {
13
+ if (typeof window === 'undefined') {
14
+ return null;
15
+ }
16
+ return React__default.createElement(
17
+ 'div',
18
+ null,
19
+ React__default.createElement(
20
+ React.Suspense,
21
+ { fallback: React__default.createElement(
22
+ 'div',
23
+ null,
24
+ 'Loading...'
25
+ ) },
26
+ React__default.createElement(Dfp, props)
27
+ )
28
+ );
29
+ };
30
+
31
+ exports.AD = AD;
@@ -0,0 +1,430 @@
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
+ require('./_commonjsHelpers-3fc1f64e.js');
8
+ var visibilitySensor = require('./visibility-sensor-5c5a7302.js');
9
+ require('prop-types');
10
+ var Container = _interopDefault(require('react-bootstrap/Container'));
11
+ var Row = _interopDefault(require('react-bootstrap/Row'));
12
+ var Col = _interopDefault(require('react-bootstrap/Col'));
13
+ var Card = _interopDefault(require('react-bootstrap/Card'));
14
+ var index_es = require('./index.es-2289df51.js');
15
+ require('next/link');
16
+ var Router = require('next/router');
17
+ var Router__default = _interopDefault(Router);
18
+ require('./isSymbol-311eb805.js');
19
+ var debounce = require('./debounce-286eb3fb.js');
20
+ require('react-dom');
21
+ var index = require('./index-a4c53ff4.js');
22
+ var index$1 = require('./index-0d0efcfa.js');
23
+ var main = require('./main-58839f4e.js');
24
+ var entities = require('./entities-3e0b4a16.js');
25
+ var _babelHelpers = require('./_babelHelpers-f321c258.js');
26
+
27
+ var DeckContent = function (_React$Component) {
28
+ _babelHelpers.inherits(DeckContent, _React$Component);
29
+
30
+ function DeckContent() {
31
+ var _ref;
32
+
33
+ var _temp, _this, _ret;
34
+
35
+ _babelHelpers.classCallCheck(this, DeckContent);
36
+
37
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
38
+ args[_key] = arguments[_key];
39
+ }
40
+
41
+ return _ret = (_temp = (_this = _babelHelpers.possibleConstructorReturn(this, (_ref = DeckContent.__proto__ || 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.state = {
42
+ data: _this.data,
43
+ dataKeptToCompareNewDatarecord: _this.data,
44
+ per: _this.params ? _this.params.to : 2,
45
+ page: _this.props.currentPage || 1,
46
+ from: _this.params ? _this.params.from : 0,
47
+ to: _this.params ? _this.params.to : 2,
48
+ total_pages: null,
49
+ scrolling: true,
50
+ query: _this.query,
51
+ currentPage: _this.props.currentPage || 1
52
+ }, _this.loadMore = debounce.debounce_1(function () {
53
+ _this.setState(function (state) {
54
+ var page = state.page,
55
+ from = state.from,
56
+ per = state.per,
57
+ to = state.to;
58
+
59
+ return {
60
+ page: page + 1,
61
+ from: from + per,
62
+ to: to + per
63
+ };
64
+ }, _this.loadData);
65
+ }, 0), _this.loadData = function () {
66
+ var _this$state = _this.state,
67
+ from = _this$state.from,
68
+ to = _this$state.to,
69
+ data = _this$state.data,
70
+ query = _this$state.query,
71
+ page = _this$state.page;
72
+ var client = _this.props.client;
73
+
74
+
75
+ var params = _babelHelpers._extends({}, _this.params, { from: from, to: to
76
+ // const queryUpdated = query.replace('$from', params.from).replace('$to', params.to)
77
+ // const query = '*[_type == "article" && defined(title) && defined(thumbnail)][$from...$to] { title, summary, thumbnail { asset-> }, url }'
78
+ });client.fetch(query, params).then(function (dataArr) {
79
+ if (_this.pointer && _this.pointerArray) {
80
+ var pointer = _this.pointer;
81
+ dataArr = dataArr[_this.pointerArray][pointer];
82
+ }
83
+ dataArr = dataArr.map(function (item) {
84
+ return _babelHelpers._extends({}, item, {
85
+ pageNumber: page
86
+ });
87
+ });
88
+
89
+ _this.setState(function () {
90
+ if (dataArr.length > 0) {
91
+ return {
92
+ data: [].concat(_babelHelpers.toConsumableArray(data), _babelHelpers.toConsumableArray(dataArr)),
93
+ scrolling: true
94
+ };
95
+ } else {
96
+ return {
97
+ scrolling: false
98
+ };
99
+ }
100
+ });
101
+ });
102
+ }, _this.urlFor = function (source) {
103
+ var client = _this.props.client;
104
+
105
+ var builder = index.imageUrlBuilder(client);
106
+ return builder.image(source).auto('format');
107
+ }, _this.renderCardImage = function (row, page) {
108
+ if (row.thumbnail && row.thumbnail.asset) {
109
+ var url = _this.urlFor(row.thumbnail);
110
+ if (_this.props.imageHeight) url = url.height(_this.props.imageHeight);
111
+ if (_this.props.imageWidth) url = url.width(_this.props.imageWidth);
112
+ return url.url();
113
+ } else {
114
+ return _this.defaultImage;
115
+ }
116
+ }, _this.changePageNumber = function (pageNumber) {
117
+ var _this$props = _this.props,
118
+ seoPaginate = _this$props.seoPaginate,
119
+ pageview = _this$props.pageview,
120
+ router = _this$props.router;
121
+ var currentPage = _this.state.currentPage;
122
+
123
+ if (seoPaginate) {
124
+ var path = router.asPath;
125
+ var qrIndex = path.indexOf('?');
126
+ var pathname = router.pathname;
127
+ var queryString = '';
128
+
129
+ if (qrIndex > 0) {
130
+ path = path.substring(1, qrIndex);
131
+
132
+ var partialQS = router.asPath.substring(qrIndex + 1);
133
+ var partialQSArr = partialQS.split('&');
134
+
135
+ // exclude page=xxx from query string
136
+ partialQSArr.map(function (item) {
137
+ var itemArr = item.split('=');
138
+ var key = itemArr[0];
139
+ var val = itemArr[1];
140
+
141
+ if (key !== 'page') {
142
+ queryString += (queryString.length === 0 ? '' : '&') + key + '=' + val;
143
+ }
144
+ });
145
+ }
146
+
147
+ if (queryString.length > 0) {
148
+ path += '?' + queryString;
149
+ }
150
+
151
+ pageNumber = parseInt(pageNumber);
152
+
153
+ if (currentPage !== pageNumber) {
154
+ visibilitySensor.lib_3.refresh();
155
+
156
+ _this.setState({
157
+ currentPage: pageNumber
158
+ }, function () {
159
+ if (path[0] !== '/') {
160
+ path = '/' + path;
161
+ }
162
+
163
+ var newPath = pageNumber === 1 ? '' + path : path + '?page=' + pageNumber;
164
+
165
+ // please leave this for later debug purpose : Yong Jun.
166
+ /* console.log('page change reported', {
167
+ currentPage: currentPage,
168
+ pageNumber: pageNumber,
169
+ pathname: pathname,
170
+ path: path,
171
+ newPath: newPath,
172
+ firstPage: pageNumber === 1,
173
+ queryString: queryString
174
+ }) */
175
+
176
+ if (pageview) {
177
+ pageview(newPath);
178
+ }
179
+
180
+ router.push(pathname, newPath, {
181
+ shallow: true
182
+ });
183
+ });
184
+ }
185
+ }
186
+ }, _this.renderAuthor = function (authorDetail, index, length) {
187
+ if (authorDetail) {
188
+ var _id = authorDetail._id,
189
+ displayName = authorDetail.displayName,
190
+ url = authorDetail.url;
191
+
192
+ if (displayName && url && url.current) {
193
+ return React__default.createElement(
194
+ 'div',
195
+ { key: _id },
196
+ index === 0 && React__default.createElement(
197
+ 'span',
198
+ { className: 'pr-1' },
199
+ 'By'
200
+ ),
201
+ React__default.createElement(
202
+ 'a',
203
+ { href: '/authors/${url.current}', className: 'text-muted' },
204
+ displayName,
205
+ length !== index + 1 && React__default.createElement('br', null)
206
+ )
207
+ );
208
+ } else if (displayName) {
209
+ return React__default.createElement(
210
+ 'div',
211
+ { key: _id },
212
+ index === 0 && React__default.createElement(
213
+ 'span',
214
+ { className: 'pr-1' },
215
+ 'By'
216
+ ),
217
+ React__default.createElement(
218
+ 'span',
219
+ { className: 'text-muted' },
220
+ displayName,
221
+ length !== index + 1 && React__default.createElement('br', null)
222
+ )
223
+ );
224
+ }
225
+ } else return null;
226
+ }, _this.cardLoader = function (page, columns, variant) {
227
+ var mode = variant && variant === 'bottom' ? 'column-reverse' : 'column';
228
+
229
+ var itemCounter = 0;
230
+ var lgVar = 12;
231
+ var numberOfItemsBeforeAd = 6;
232
+ return React__default.createElement(
233
+ Row,
234
+ null,
235
+ _this.state.data && _this.state.data.map(function (row, index) {
236
+ if (columns === 'rotate' && itemCounter % 3 === 0) {
237
+ lgVar = 12;
238
+ } else if (columns && columns !== 'rotate') {
239
+ lgVar = Math.floor(12 / columns);
240
+ } else {
241
+ lgVar = 6;
242
+ }
243
+
244
+ var pageNumber = row.pageNumber || _this.state.page;
245
+ var contentCategoryName = row.contentCategory && row.contentCategory.name && _this.mapping[row.contentCategory.name] ? row.contentCategory.name : 'Articles';
246
+ return React__default.createElement(
247
+ React__default.Fragment,
248
+ { key: itemCounter },
249
+ React__default.createElement(
250
+ visibilitySensor.VisibilitySensor,
251
+ {
252
+ onChange: function onChange(isVisible) {
253
+ isVisible && _this.changePageNumber(pageNumber);
254
+ } },
255
+ React__default.createElement(
256
+ Col,
257
+ { md: 12, lg: lgVar, counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
258
+ React__default.createElement(
259
+ Card,
260
+ { className: 'content-card', style: { flexDirection: mode } },
261
+ (row.thumbnail && row.thumbnail.asset || _this.props.defaultImage) && React__default.createElement(
262
+ 'a',
263
+ { href: _this.mapping[contentCategoryName] + '/' + row.url.current },
264
+ React__default.createElement(
265
+ index$1.LazyLoad,
266
+ { height: _this.props.imageHeight },
267
+ React__default.createElement(Card.Img, { variant: 'top', src: _this.renderCardImage(row, page), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
268
+ )
269
+ ),
270
+ React__default.createElement(
271
+ Card.Body,
272
+ null,
273
+ React__default.createElement(
274
+ 'a',
275
+ { href: _this.mapping[contentCategoryName] + '/' + row.url.current },
276
+ React__default.createElement(
277
+ Card.Title,
278
+ null,
279
+ row.title
280
+ )
281
+ ),
282
+ _this.props.showPublished && row.published && React__default.createElement(
283
+ Card.Subtitle,
284
+ null,
285
+ index_es.moment(row.published).format('MMMM DD, YYYY')
286
+ ),
287
+ _this.props.showAuthor && row.authorMapping && row.authorMapping.length > 0 && row.authorMapping.map(function (authorDetail, index) {
288
+ return _this.renderAuthor(authorDetail, index, row.authorMapping.length);
289
+ }),
290
+ React__default.createElement(
291
+ Card.Text,
292
+ null,
293
+ entities.clean_html_1(row.summary)
294
+ )
295
+ )
296
+ )
297
+ )
298
+ ),
299
+ main.main_36 && _this.props.rightItems && (index + 1) % numberOfItemsBeforeAd === 0 && _this.renderMobileAd(index, numberOfItemsBeforeAd)
300
+ );
301
+ })
302
+ );
303
+ }, _this.renderMobileAd = function (index, numberOfItemsBeforeAd) {
304
+ var rightItems = _this.props.rightItems;
305
+
306
+ var i = ((index + 1) / numberOfItemsBeforeAd - 1) % rightItems.length;
307
+ return React__default.createElement(
308
+ Col,
309
+ { md: 12, style: { display: 'flex', flex: '1 0 auto' } },
310
+ rightItems[i].component
311
+ );
312
+ }, _this.renderManualPagination = function () {
313
+ var currentPage = _this.state.currentPage;
314
+
315
+ return React__default.createElement(
316
+ 'div',
317
+ { className: 'd-flex justify-content-between' },
318
+ currentPage && currentPage > 1 && React__default.createElement(
319
+ 'a',
320
+ { href: '?page=' + (currentPage - 1) },
321
+ '<< Previous'
322
+ ),
323
+ React__default.createElement(
324
+ 'a',
325
+ { href: '?page=' + (currentPage + 1) },
326
+ 'Next >>'
327
+ )
328
+ );
329
+ }, _temp), _babelHelpers.possibleConstructorReturn(_this, _ret);
330
+ }
331
+
332
+ _babelHelpers.createClass(DeckContent, [{
333
+ key: 'componentDidUpdate',
334
+ value: function componentDidUpdate(prevProps, prevState) {
335
+ if (this.state.dataKeptToCompareNewDatarecord !== this.props.dataRecord) {
336
+ // eslint-disable-next-line react/no-did-update-set-state
337
+ this.setState({
338
+ data: this.props.dataRecord,
339
+ dataKeptToCompareNewDatarecord: this.props.dataRecord,
340
+ per: this.props.params ? this.props.params.to : 2,
341
+ page: 1,
342
+ from: this.props.params ? this.props.params.from : 0,
343
+ to: this.props.params ? this.props.params.to : 2,
344
+ total_pages: null,
345
+ scrolling: true,
346
+ query: this.props.query
347
+ });
348
+ }
349
+ }
350
+ }, {
351
+ key: 'componentDidMount',
352
+ value: function componentDidMount() {
353
+ // this.loadData();
354
+ }
355
+ }, {
356
+ key: 'render',
357
+ value: function render() {
358
+ var _this2 = this;
359
+
360
+ var _props = this.props,
361
+ columns = _props.columns,
362
+ variant = _props.variant,
363
+ autoScroll = _props.autoScroll,
364
+ page = _props.page;
365
+
366
+
367
+ return React__default.createElement(
368
+ 'div',
369
+ { className: 'contentDeck' },
370
+ autoScroll ? React__default.createElement(
371
+ React__default.Fragment,
372
+ null,
373
+ React__default.createElement(
374
+ index_es.InfiniteScroll,
375
+ { dataLength: this.state.data.length, next: this.loadMore, hasMore: this.state.scrolling, scrollThreshold: 0.9 },
376
+ React__default.createElement(
377
+ Container,
378
+ null,
379
+ this.cardLoader(page, columns, variant)
380
+ )
381
+ ),
382
+ React__default.createElement(
383
+ 'noscript',
384
+ null,
385
+ this.renderManualPagination()
386
+ )
387
+ ) : React__default.createElement(
388
+ React__default.Fragment,
389
+ null,
390
+ React__default.createElement(
391
+ Container,
392
+ null,
393
+ this.cardLoader(page, columns, variant)
394
+ ),
395
+ React__default.createElement(
396
+ 'div',
397
+ { style: { padding: '0px 10px' } },
398
+ this.state.scrolling ? React__default.createElement(
399
+ 'button',
400
+ {
401
+ style: { margin: 'auto', width: '100%' },
402
+ onClick: function onClick(e) {
403
+ _this2.loadMore();
404
+ } },
405
+ 'Load More'
406
+ ) : React__default.createElement(
407
+ 'p',
408
+ { style: { textAlign: 'center' } },
409
+ React__default.createElement(
410
+ 'b',
411
+ null,
412
+ 'End of data'
413
+ )
414
+ )
415
+ ),
416
+ React__default.createElement(
417
+ 'noscript',
418
+ null,
419
+ this.renderManualPagination()
420
+ )
421
+ )
422
+ );
423
+ }
424
+ }]);
425
+ return DeckContent;
426
+ }(React__default.Component);
427
+
428
+ var ContentCard = Router.withRouter(DeckContent);
429
+
430
+ module.exports = ContentCard;