@mjhls/mjh-framework 1.0.82 → 1.0.84

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.
package/dist/index.js CHANGED
@@ -5133,6 +5133,330 @@ function get$1(object, path, defaultValue) {
5133
5133
 
5134
5134
  var get_1 = get$1;
5135
5135
 
5136
+ var GridContent = function (_React$Component) {
5137
+ inherits(GridContent, _React$Component);
5138
+
5139
+ function GridContent() {
5140
+ var _ref;
5141
+
5142
+ var _temp, _this, _ret;
5143
+
5144
+ classCallCheck(this, GridContent);
5145
+
5146
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
5147
+ args[_key] = arguments[_key];
5148
+ }
5149
+
5150
+ return _ret = (_temp = (_this = 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.state = {
5151
+ data: _this.data,
5152
+ per: _this.params ? _this.params.to : 2,
5153
+ page: 1,
5154
+ from: _this.params ? _this.params.from : 0,
5155
+ to: _this.params ? _this.params.to : 2,
5156
+ total_pages: null,
5157
+ scrolling: true,
5158
+ query: _this.query
5159
+ }, _this.loadMore = function () {
5160
+ setTimeout(function () {
5161
+ _this.setState(function (state, props) {
5162
+ return {
5163
+ page: state.page + 1,
5164
+ from: state.from + state.per,
5165
+ to: state.to + state.per
5166
+ };
5167
+ }, _this.loadData);
5168
+ }, 10);
5169
+ }, _this.loadData = function () {
5170
+ var _this$state = _this.state,
5171
+ from = _this$state.from,
5172
+ to = _this$state.to,
5173
+ data = _this$state.data,
5174
+ query = _this$state.query;
5175
+ var client = _this.props.client;
5176
+
5177
+
5178
+ var params = _extends({}, _this.params, { from: from, to: to
5179
+ // const queryUpdated = query.replace('$from', params.from).replace('$to', params.to)
5180
+
5181
+ });if (_this.pointer && _this.pointerArray) {
5182
+ var pointer = _this.pointer;
5183
+ client.fetch(query, params).then(function (dataArr) {
5184
+ _this.setState(function (state, props) {
5185
+ if (dataArr[_this.pointerArray][pointer].length > 0) {
5186
+ return {
5187
+ data: [].concat(toConsumableArray(data), toConsumableArray(dataArr[_this.pointerArray][pointer])),
5188
+ scrolling: true
5189
+ };
5190
+ } else {
5191
+ return {
5192
+ scrolling: false
5193
+ };
5194
+ }
5195
+ });
5196
+ });
5197
+ } else {
5198
+ client.fetch(query, params).then(function (dataArr) {
5199
+ _this.setState(function (state, props) {
5200
+ if (dataArr.length > 0) {
5201
+ return {
5202
+ data: [].concat(toConsumableArray(data), toConsumableArray(dataArr)),
5203
+ scrolling: true
5204
+ };
5205
+ } else {
5206
+ return {
5207
+ scrolling: false
5208
+ };
5209
+ }
5210
+ });
5211
+ });
5212
+ }
5213
+ }, _this.urlFor = function (source) {
5214
+ var client = _this.props.client;
5215
+
5216
+ var builder = imageUrlBuilder(client);
5217
+ return builder.image(source);
5218
+ }, _this.renderCardImage = function (row, page) {
5219
+ if (row.thumbnail) {
5220
+ return _this.urlFor(row.thumbnail).url();
5221
+ } else {
5222
+ return _this.defaultImage;
5223
+ }
5224
+ }, _this.changePageNumber = function (pageNumber) {
5225
+ var _this$props = _this.props,
5226
+ seoPaginate = _this$props.seoPaginate,
5227
+ pageview = _this$props.pageview,
5228
+ router$$1 = _this$props.router;
5229
+ var currentPage = _this.state.currentPage;
5230
+
5231
+ if (seoPaginate) {
5232
+ var path = router$$1.asPath;
5233
+ var qrIndex = path.indexOf('?');
5234
+ var pathname = router$$1.pathname;
5235
+ var queryString = '';
5236
+
5237
+ if (qrIndex > 0) {
5238
+ path = path.substring(1, qrIndex);
5239
+
5240
+ var partialQS = router$$1.asPath.substring(qrIndex + 1);
5241
+ var partialQSArr = partialQS.split('&');
5242
+
5243
+ // exclude page=xxx from query string
5244
+ partialQSArr.map(function (item) {
5245
+ var itemArr = item.split('=');
5246
+ var key = itemArr[0];
5247
+ var val = itemArr[1];
5248
+
5249
+ if (key !== 'page') {
5250
+ queryString += (queryString.length === 0 ? '' : '&') + key + '=' + val;
5251
+ }
5252
+ });
5253
+ }
5254
+
5255
+ if (queryString.length > 0) {
5256
+ path += '?' + queryString;
5257
+ }
5258
+
5259
+ pageNumber = parseInt(pageNumber);
5260
+
5261
+ if (currentPage !== pageNumber) {
5262
+ DFPManager.refresh();
5263
+ if (pageview) {
5264
+ _this.setState({
5265
+ currentPage: pageNumber
5266
+ }, function () {
5267
+ if (path[0] !== '/') {
5268
+ path = '/' + path;
5269
+ }
5270
+
5271
+ var newPath = pageNumber === 1 ? '' + path : path + '?page=' + pageNumber;
5272
+
5273
+ pageview(newPath);
5274
+
5275
+ router$$1.push(pathname, newPath, {
5276
+ shallow: true
5277
+ });
5278
+ });
5279
+ }
5280
+ }
5281
+ }
5282
+ }, _temp), possibleConstructorReturn(_this, _ret);
5283
+ }
5284
+
5285
+ createClass(GridContent, [{
5286
+ key: 'cardLoader',
5287
+ value: function cardLoader(page, columns, variant) {
5288
+ var _this2 = this;
5289
+
5290
+ var lgVar = Math.floor(12 / columns);
5291
+ var itemCounter = 0;
5292
+ if (variant === 'stack') {
5293
+ return React__default.createElement(
5294
+ Row,
5295
+ null,
5296
+ this.state.data && this.state.data.map(function (row, index) {
5297
+ // const thumbnailURL = get(row, 'thumbnail.asset.url', this.props.defaultImage)
5298
+ var thumbnailURL = row.thumbnail ? _this2.urlFor(row.thumbnail).url() : _this2.props.defaultImage;
5299
+ return React__default.createElement(
5300
+ Col,
5301
+ { key: index, md: 12, lg: lgVar, style: { display: 'flex', flex: '1 0 auto' } },
5302
+ React__default.createElement(
5303
+ Link,
5304
+ { href: _this2.page + '/[url]', as: _this2.page + '/' + get_1(row, 'url.current') },
5305
+ React__default.createElement(
5306
+ 'a',
5307
+ null,
5308
+ React__default.createElement(
5309
+ Card,
5310
+ { className: 'queue-card', style: { borderTop: '1px solid #EEE' } },
5311
+ React__default.createElement(
5312
+ Row,
5313
+ { style: { flexDirection: 'row' } },
5314
+ React__default.createElement(
5315
+ Col,
5316
+ { md: 12, lg: 4 },
5317
+ React__default.createElement(Card.Img, { variant: 'top', src: thumbnailURL })
5318
+ ),
5319
+ React__default.createElement(
5320
+ Col,
5321
+ null,
5322
+ React__default.createElement(
5323
+ Card.Body,
5324
+ { style: { padding: '20px' } },
5325
+ React__default.createElement(
5326
+ Card.Title,
5327
+ null,
5328
+ row.title
5329
+ ),
5330
+ React__default.createElement(
5331
+ Card.Text,
5332
+ null,
5333
+ row.summary
5334
+ )
5335
+ )
5336
+ )
5337
+ )
5338
+ )
5339
+ )
5340
+ )
5341
+ );
5342
+ })
5343
+ );
5344
+ }
5345
+ return React__default.createElement(
5346
+ 'div',
5347
+ { className: 'grid-container' },
5348
+ this.state.data && this.state.data.map(function (row, index) {
5349
+ var pageNumber = row.pageNumber || _this2.state.page;
5350
+ var contentCategoryName = row.contentCategory ? row.contentCategory.name : 'Articles';
5351
+ return React__default.createElement(
5352
+ VisibilitySensor,
5353
+ {
5354
+ key: itemCounter,
5355
+ onChange: function onChange(isVisible) {
5356
+ isVisible && _this2.changePageNumber(pageNumber);
5357
+ } },
5358
+ React__default.createElement(
5359
+ 'div',
5360
+ { counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
5361
+ React__default.createElement(
5362
+ Card,
5363
+ { className: 'content-card', style: { flexDirection: index === 0 || index % 4 === 0 ? 'top' : 'row' } },
5364
+ React__default.createElement(
5365
+ Link,
5366
+ { href: _this2.mapping[contentCategoryName] + '/[url]', as: _this2.mapping[contentCategoryName] + '/' + row.url.current },
5367
+ React__default.createElement(
5368
+ 'a',
5369
+ { className: index === 0 || index % 4 === 0 ? '' : 'card-image' },
5370
+ React__default.createElement(Card.Img, { variant: 'top', src: _this2.renderCardImage(row, page), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
5371
+ )
5372
+ ),
5373
+ React__default.createElement(
5374
+ Card.Body,
5375
+ null,
5376
+ React__default.createElement(
5377
+ Link,
5378
+ { href: _this2.mapping[contentCategoryName] + '/[url]', as: _this2.mapping[contentCategoryName] + '/' + row.url.current },
5379
+ React__default.createElement(
5380
+ 'a',
5381
+ null,
5382
+ React__default.createElement(
5383
+ Card.Title,
5384
+ null,
5385
+ row.title
5386
+ ),
5387
+ React__default.createElement(
5388
+ Card.Text,
5389
+ { className: index === 0 || index % 4 === 0 ? '' : 'card-subtext' },
5390
+ row.summary
5391
+ )
5392
+ )
5393
+ )
5394
+ )
5395
+ )
5396
+ )
5397
+ );
5398
+ })
5399
+ );
5400
+ }
5401
+ }, {
5402
+ key: 'render',
5403
+ value: function render() {
5404
+ var _this3 = this;
5405
+
5406
+ var _props = this.props,
5407
+ columns = _props.columns,
5408
+ variant = _props.variant,
5409
+ autoScroll = _props.autoScroll,
5410
+ page = _props.page;
5411
+
5412
+
5413
+ return React__default.createElement(
5414
+ 'div',
5415
+ { className: 'contentDeck' },
5416
+ autoScroll ? React__default.createElement(
5417
+ InfiniteScroll,
5418
+ { dataLength: this.state.data.length, next: this.loadMore, hasMore: this.state.scrolling },
5419
+ React__default.createElement(
5420
+ Container,
5421
+ null,
5422
+ this.cardLoader(page, columns, variant)
5423
+ )
5424
+ ) : React__default.createElement(
5425
+ React__default.Fragment,
5426
+ null,
5427
+ React__default.createElement(
5428
+ Container,
5429
+ null,
5430
+ this.cardLoader(page, columns, variant)
5431
+ ),
5432
+ React__default.createElement(
5433
+ 'div',
5434
+ { style: { padding: '0px 10px' } },
5435
+ this.state.scrolling ? React__default.createElement(
5436
+ 'button',
5437
+ {
5438
+ style: { margin: 'auto', width: '100%' },
5439
+ onClick: function onClick(e) {
5440
+ _this3.loadMore();
5441
+ } },
5442
+ 'Load More'
5443
+ ) : React__default.createElement(
5444
+ 'p',
5445
+ { style: { textAlign: 'center' } },
5446
+ React__default.createElement(
5447
+ 'b',
5448
+ null,
5449
+ 'End of data'
5450
+ )
5451
+ )
5452
+ )
5453
+ )
5454
+ );
5455
+ }
5456
+ }]);
5457
+ return GridContent;
5458
+ }(React__default.Component);
5459
+
5136
5460
  var DeckQueue = function (_React$Component) {
5137
5461
  inherits(DeckQueue, _React$Component);
5138
5462
 
@@ -7765,26 +8089,43 @@ var FigureComponent = function FigureComponent(_ref) {
7765
8089
  );
7766
8090
  };
7767
8091
 
8092
+ var urlFor = function urlFor(source, builder) {
8093
+ return builder.image(source);
8094
+ };
8095
+
8096
+ var onChangeSlide = function onChangeSlide(selectedIndex, pageview, setCarouselIndex, asPath) {
8097
+ setCarouselIndex(selectedIndex);
8098
+ lib_3.refresh();
8099
+ pageview(asPath);
8100
+ };
8101
+
7768
8102
  var Slideshow = function Slideshow(_ref) {
7769
8103
  var slides = _ref.slides,
7770
- client = _ref.client;
8104
+ client = _ref.client,
8105
+ pageview = _ref.pageview;
8106
+
8107
+ var router$$1 = router.useRouter();
8108
+
8109
+ var _useState = React.useState(0),
8110
+ _useState2 = slicedToArray(_useState, 2),
8111
+ carouselIndex = _useState2[0],
8112
+ setCarouselIndex = _useState2[1];
7771
8113
 
7772
8114
  var builder = imageUrlBuilder(client);
7773
8115
 
7774
- var urlFor = function urlFor(source) {
7775
- return builder.image(source);
7776
- };
7777
8116
  return React__default.createElement(
7778
8117
  'div',
7779
8118
  { style: { marginTop: '1em', marginBottom: '1em' } },
7780
8119
  React__default.createElement(
7781
8120
  reactBootstrap.Carousel,
7782
- null,
8121
+ { activeIndex: carouselIndex, onSelect: function onSelect(selectedIndex, e) {
8122
+ return onChangeSlide(selectedIndex, pageview, setCarouselIndex, router$$1.asPath);
8123
+ } },
7783
8124
  slides && slides.map(function (slide) {
7784
8125
  return React__default.createElement(
7785
8126
  reactBootstrap.Carousel.Item,
7786
8127
  { key: slide._key },
7787
- React__default.createElement('img', { src: urlFor(slide).url(), style: { width: '100%' } })
8128
+ React__default.createElement('img', { src: urlFor(slide.asset, builder).url(), style: { width: '100%' } })
7788
8129
  );
7789
8130
  })
7790
8131
  )
@@ -11609,7 +11950,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
11609
11950
  );
11610
11951
  };
11611
11952
 
11612
- var getSerializers$1 = function getSerializers(client) {
11953
+ var getSerializers$1 = function getSerializers(client, pageview) {
11613
11954
  return {
11614
11955
  types: {
11615
11956
  youtube: function youtube(_ref) {
@@ -11632,7 +11973,7 @@ var getSerializers$1 = function getSerializers(client) {
11632
11973
  var node = _ref4.node;
11633
11974
  var slides = node.slides;
11634
11975
 
11635
- return React__default.createElement(Slideshow, { slides: slides, client: client });
11976
+ return React__default.createElement(Slideshow, { slides: slides, client: client, pageview: pageview });
11636
11977
  },
11637
11978
  sidebar: function sidebar(_ref5) {
11638
11979
  var node = _ref5.node;
@@ -11694,6 +12035,7 @@ var getSerializers$1 = function getSerializers(client) {
11694
12035
  };
11695
12036
 
11696
12037
  exports.DeckContent = ContentCard;
12038
+ exports.GridContent = GridContent;
11697
12039
  exports.DeckQueue = DeckQueue;
11698
12040
  exports.ThumbnailCard = ThumbnailCard;
11699
12041
  exports.TaxonomyCard = TaxonomyCard;