@mjhls/mjh-framework 1.0.84 → 1.0.86

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
@@ -15,6 +15,8 @@ var Card = _interopDefault(require('react-bootstrap/Card'));
15
15
  var Link = _interopDefault(require('next/link'));
16
16
  var router = require('next/router');
17
17
  var Media = _interopDefault(require('react-bootstrap/Media'));
18
+ var reactBootstrap = require('react-bootstrap');
19
+ var moment = _interopDefault(require('moment'));
18
20
  var ListGroup = _interopDefault(require('react-bootstrap/ListGroup'));
19
21
  var Head = _interopDefault(require('next/head'));
20
22
  var Accordion = _interopDefault(require('react-bootstrap/Accordion'));
@@ -26,7 +28,6 @@ var NavDropdown = _interopDefault(require('react-bootstrap/NavDropdown'));
26
28
  var Form = _interopDefault(require('react-bootstrap/Form'));
27
29
  var FormControl = _interopDefault(require('react-bootstrap/FormControl'));
28
30
  var Button = _interopDefault(require('react-bootstrap/Button'));
29
- var reactBootstrap = require('react-bootstrap');
30
31
 
31
32
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
32
33
 
@@ -6164,6 +6165,333 @@ var YoutubeGroup = function YoutubeGroup(props) {
6164
6165
  );
6165
6166
  };
6166
6167
 
6168
+ var _this = undefined;
6169
+
6170
+ var urlFor = function urlFor(builder, source) {
6171
+ return builder.image(source);
6172
+ };
6173
+
6174
+ var loadMore = function loadMore(values, setValues, per) {
6175
+ setValues({
6176
+ page: values.page + 1,
6177
+ from: values.from + per,
6178
+ to: values.to + per
6179
+ });
6180
+ };
6181
+
6182
+ var loadData = function loadData(values, query, client, params, setData, setScrolling, pointer, pointerArray) {
6183
+ params = _extends({}, params, {
6184
+ from: values.from,
6185
+ to: values.to
6186
+ });
6187
+
6188
+ client.fetch(query, params).then(function (dataArr) {
6189
+ if (pointer && pointerArray) {
6190
+ var _pointer = _this.pointer;
6191
+ dataArr = dataArr[pointerArray][_pointer];
6192
+ }
6193
+ dataArr = dataArr.map(function (item) {
6194
+ return _extends({}, item, {
6195
+ pageNumber: values.page
6196
+ });
6197
+ });
6198
+
6199
+ if (dataArr.length > 0) {
6200
+ setData(function (prevData) {
6201
+ return [].concat(toConsumableArray(prevData), toConsumableArray(dataArr));
6202
+ });
6203
+ setScrolling(true);
6204
+ } else {
6205
+ setScrolling(false);
6206
+ }
6207
+ });
6208
+ };
6209
+
6210
+ var changePageNumber = function changePageNumber(pageNumber, seoPaginate, pageview, router$$1, currentPage, setCurrentPage) {
6211
+ if (seoPaginate) {
6212
+ var path = router$$1.asPath;
6213
+ var qrIndex = path.indexOf('?');
6214
+ var pathname = router$$1.pathname;
6215
+ var queryString = '';
6216
+
6217
+ if (qrIndex > 0) {
6218
+ path = path.substring(1, qrIndex);
6219
+
6220
+ var partialQS = router$$1.asPath.substring(qrIndex + 1);
6221
+ var partialQSArr = partialQS.split('&');
6222
+
6223
+ // exclude page=xxx from query string
6224
+ partialQSArr.map(function (item) {
6225
+ var itemArr = item.split('=');
6226
+ var key = itemArr[0];
6227
+ var val = itemArr[1];
6228
+
6229
+ if (key !== 'page') {
6230
+ queryString += (queryString.length === 0 ? '' : '&') + key + '=' + val;
6231
+ }
6232
+ });
6233
+ }
6234
+
6235
+ if (queryString.length > 0) {
6236
+ path += '?' + queryString;
6237
+ }
6238
+
6239
+ pageNumber = parseInt(pageNumber);
6240
+
6241
+ if (currentPage !== pageNumber) {
6242
+ lib_3.refresh();
6243
+ if (pageview) {
6244
+ setCurrentPage(pageNumber);
6245
+ if (path[0] !== '/') {
6246
+ path = '/' + path;
6247
+ }
6248
+ var newPath = pageNumber === 1 ? '' + path : path + '?page=' + pageNumber;
6249
+ pageview(newPath);
6250
+
6251
+ router$$1.push(pathname, newPath, {
6252
+ shallow: true
6253
+ });
6254
+ }
6255
+ }
6256
+ }
6257
+ };
6258
+
6259
+ var renderAuthor = function renderAuthor(authorName, authorURL, index$$1, length) {
6260
+ if (authorName && authorURL) {
6261
+ return React__default.createElement(
6262
+ Link,
6263
+ { href: '/authors/' + authorURL.current, key: index$$1 },
6264
+ React__default.createElement(
6265
+ 'a',
6266
+ null,
6267
+ authorName,
6268
+ length !== index$$1 + 1 && ' | '
6269
+ )
6270
+ );
6271
+ } else if (authorName) {
6272
+ return React__default.createElement(
6273
+ 'span',
6274
+ { key: index$$1 },
6275
+ authorName,
6276
+ length !== index$$1 + 1 && ' | '
6277
+ );
6278
+ }
6279
+ };
6280
+
6281
+ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate, pageview, router$$1, currentPage, setCurrentPage) {
6282
+ return React__default.createElement(
6283
+ 'div',
6284
+ null,
6285
+ data && data.map(function (article, index$$1) {
6286
+ var pageNumber = article.pageNumber || values.page;
6287
+ var contentCategoryName = article.contentCategory ? article.contentCategory.name : 'Articles';
6288
+ return React__default.createElement(
6289
+ VisibilitySensor,
6290
+ {
6291
+ key: article._id ? article._id : index$$1,
6292
+ onChange: function onChange(isVisible) {
6293
+ isVisible && changePageNumber(pageNumber, seoPaginate, pageview, router$$1, currentPage, setCurrentPage);
6294
+ } },
6295
+ React__default.createElement(
6296
+ reactBootstrap.Card,
6297
+ { key: article._id ? article._id : index$$1 },
6298
+ React__default.createElement(
6299
+ reactBootstrap.Card.Body,
6300
+ null,
6301
+ React__default.createElement(
6302
+ reactBootstrap.Media,
6303
+ null,
6304
+ React__default.createElement(
6305
+ Link,
6306
+ { href: mapping[contentCategoryName] + '/[url]', as: mapping[contentCategoryName] + '/' + article.url.current },
6307
+ React__default.createElement(
6308
+ 'a',
6309
+ null,
6310
+ React__default.createElement('img', { width: 200, height: 130, className: 'mr-3', src: urlFor(builder, article.thumbnail.asset).url(), style: { objectFit: 'cover' } })
6311
+ )
6312
+ ),
6313
+ React__default.createElement(
6314
+ reactBootstrap.Media.Body,
6315
+ null,
6316
+ React__default.createElement(
6317
+ Link,
6318
+ { href: mapping[contentCategoryName] + '/[url]', as: mapping[contentCategoryName] + '/' + article.url.current },
6319
+ React__default.createElement(
6320
+ 'a',
6321
+ null,
6322
+ article.title && React__default.createElement(
6323
+ 'h5',
6324
+ { className: 'card-title' },
6325
+ article.title
6326
+ )
6327
+ )
6328
+ ),
6329
+ article.published && React__default.createElement(
6330
+ 'h6',
6331
+ { className: 'card-text' },
6332
+ moment(article.published).format('MMMM DD, YYYY')
6333
+ ),
6334
+ article.authorDetails && article.authorDetails.length > 0 && article.authorDetails.map(function (authorDetail, index$$1) {
6335
+ return React__default.createElement(
6336
+ 'div',
6337
+ { className: 'card-text d-inline', key: index$$1 },
6338
+ renderAuthor(authorDetail.displayName, authorDetail.url, index$$1, article.authorDetails.length)
6339
+ );
6340
+ })
6341
+ )
6342
+ ),
6343
+ article.summary && React__default.createElement(
6344
+ 'p',
6345
+ { className: 'pt-2 card-text' },
6346
+ article.summary
6347
+ )
6348
+ )
6349
+ )
6350
+ );
6351
+ })
6352
+ );
6353
+ };
6354
+
6355
+ var renderManualPagination = function renderManualPagination(currentPage) {
6356
+ return React__default.createElement(
6357
+ 'div',
6358
+ { className: 'd-flex justify-content-between' },
6359
+ currentPage && currentPage > 1 && React__default.createElement(
6360
+ 'a',
6361
+ { href: '?page=' + (currentPage - 1) },
6362
+ '<< Previous'
6363
+ ),
6364
+ React__default.createElement(
6365
+ 'a',
6366
+ { href: '?page=' + (currentPage + 1) },
6367
+ 'Next >>'
6368
+ )
6369
+ );
6370
+ };
6371
+
6372
+ var usePrevious = function usePrevious(value) {
6373
+ var ref = React.useRef();
6374
+ React.useEffect(function () {
6375
+ ref.current = value;
6376
+ });
6377
+ return ref.current;
6378
+ };
6379
+
6380
+ var QueueDeckExpanded = function QueueDeckExpanded(props) {
6381
+ var router$$1 = router.useRouter();
6382
+ var initialData = props.dataRecord,
6383
+ client = props.client,
6384
+ params = props.params,
6385
+ query = props.query,
6386
+ autoScroll = props.autoScroll,
6387
+ pointer = props.pointer,
6388
+ pointerArray = props.pointerArray,
6389
+ mapping = props.mapping,
6390
+ seoPaginate = props.seoPaginate,
6391
+ pageview = props.pageview;
6392
+ var initialCurrentPage = props.currentPage;
6393
+
6394
+ var builder = imageUrlBuilder(client);
6395
+
6396
+ var _useState = React.useState(initialData),
6397
+ _useState2 = slicedToArray(_useState, 2),
6398
+ data = _useState2[0],
6399
+ setData = _useState2[1];
6400
+
6401
+ var _useState3 = React.useState(true),
6402
+ _useState4 = slicedToArray(_useState3, 2),
6403
+ scrolling = _useState4[0],
6404
+ setScrolling = _useState4[1];
6405
+
6406
+ var _useState5 = React.useState(params ? params.to : 0),
6407
+ _useState6 = slicedToArray(_useState5, 2),
6408
+ per = _useState6[0],
6409
+ setPer = _useState6[1];
6410
+
6411
+ var _useState7 = React.useState(initialCurrentPage || 1),
6412
+ _useState8 = slicedToArray(_useState7, 2),
6413
+ currentPage = _useState8[0],
6414
+ setCurrentPage = _useState8[1];
6415
+
6416
+ var _useState9 = React.useState({
6417
+ from: params ? params.from : 0,
6418
+ to: params ? params.to : 0,
6419
+ page: 1
6420
+ }),
6421
+ _useState10 = slicedToArray(_useState9, 2),
6422
+ values = _useState10[0],
6423
+ setValues = _useState10[1];
6424
+
6425
+ var prevValues = usePrevious(values);
6426
+
6427
+ React.useEffect(function () {
6428
+ if (prevValues) {
6429
+ if (values.page !== prevValues.page && values.from !== prevValues.from && values.to !== prevValues.from) {
6430
+ loadData(values, query, client, params, setData, setScrolling, pointer, pointerArray);
6431
+ }
6432
+ }
6433
+ }, [values, prevValues, query, client, params, setData, setScrolling, pointer, pointerArray]);
6434
+
6435
+ return React__default.createElement(
6436
+ 'div',
6437
+ null,
6438
+ autoScroll ? React__default.createElement(
6439
+ React__default.Fragment,
6440
+ null,
6441
+ React__default.createElement(
6442
+ InfiniteScroll,
6443
+ { dataLength: data && data.length, next: function next() {
6444
+ return loadMore(values, setValues, per);
6445
+ }, hasMore: scrolling, scrollThreshold: 0.9 },
6446
+ React__default.createElement(
6447
+ reactBootstrap.Container,
6448
+ null,
6449
+ cardLoader(data, builder, mapping, values, seoPaginate, pageview, router$$1, currentPage, setCurrentPage)
6450
+ )
6451
+ ),
6452
+ React__default.createElement(
6453
+ 'noscript',
6454
+ null,
6455
+ renderManualPagination(currentPage)
6456
+ )
6457
+ ) : React__default.createElement(
6458
+ React__default.Fragment,
6459
+ null,
6460
+ React__default.createElement(
6461
+ reactBootstrap.Container,
6462
+ null,
6463
+ cardLoader(data, builder, mapping, values, seoPaginate, pageview, router$$1, currentPage, setCurrentPage)
6464
+ ),
6465
+ React__default.createElement(
6466
+ 'div',
6467
+ { style: { padding: '0px 10px' } },
6468
+ scrolling ? React__default.createElement(
6469
+ 'button',
6470
+ {
6471
+ style: { margin: 'auto', width: '100%' },
6472
+ onClick: function onClick(e) {
6473
+ loadMore(values, setValues, per);
6474
+ } },
6475
+ 'Load More'
6476
+ ) : React__default.createElement(
6477
+ 'p',
6478
+ { style: { textAlign: 'center' } },
6479
+ React__default.createElement(
6480
+ 'b',
6481
+ null,
6482
+ 'End of data'
6483
+ )
6484
+ )
6485
+ ),
6486
+ React__default.createElement(
6487
+ 'noscript',
6488
+ null,
6489
+ renderManualPagination(currentPage)
6490
+ )
6491
+ )
6492
+ );
6493
+ };
6494
+
6167
6495
  var Column1 = function Column1(props) {
6168
6496
  var title = props.title;
6169
6497
 
@@ -6187,9 +6515,71 @@ var Column1 = function Column1(props) {
6187
6515
  );
6188
6516
  };
6189
6517
 
6518
+ var SideFooter = function SideFooter(props) {
6519
+ var year = new Date().getFullYear();
6520
+ var website = props.website;
6521
+
6522
+ return React__default.createElement(
6523
+ 'div',
6524
+ { className: 'side-footer' },
6525
+ website.sideFooterContent && website.sideFooterContent.length && React__default.createElement(
6526
+ 'ul',
6527
+ null,
6528
+ website.sideFooterContent.map(function (content, index) {
6529
+ return content.blank ? React__default.createElement(
6530
+ 'li',
6531
+ { key: index },
6532
+ React__default.createElement(
6533
+ 'a',
6534
+ { target: '_blank', href: content.url },
6535
+ content.title
6536
+ )
6537
+ ) : React__default.createElement(
6538
+ 'li',
6539
+ { key: index },
6540
+ React__default.createElement(
6541
+ Link,
6542
+ { href: content.url },
6543
+ React__default.createElement(
6544
+ 'a',
6545
+ null,
6546
+ content.title
6547
+ )
6548
+ )
6549
+ );
6550
+ })
6551
+ ),
6552
+ React__default.createElement(
6553
+ 'p',
6554
+ null,
6555
+ '\xA9 ',
6556
+ year,
6557
+ ' ',
6558
+ website.title,
6559
+ '. All rights reserved.'
6560
+ )
6561
+ );
6562
+ };
6563
+
6564
+ var ConferenceBanner = function ConferenceBanner(props) {
6565
+ var website = props.website;
6566
+
6567
+
6568
+ return React__default.createElement(
6569
+ "div",
6570
+ { className: "conf-img" },
6571
+ React__default.createElement(
6572
+ "a",
6573
+ { href: website.conferenceBannerContent.href },
6574
+ React__default.createElement("img", { src: website.conferenceBannerContent.src, alt: website.conferenceBannerContent.alt })
6575
+ )
6576
+ );
6577
+ };
6578
+
6190
6579
  var Column2 = function Column2(props) {
6191
6580
  var rightItems = props.rightItems,
6192
- title = props.title;
6581
+ title = props.title,
6582
+ website = props.website;
6193
6583
 
6194
6584
 
6195
6585
  return React__default.createElement(
@@ -6211,13 +6601,19 @@ var Column2 = function Column2(props) {
6211
6601
  React__default.createElement(
6212
6602
  Col,
6213
6603
  { xs: 12, className: 'rightCol' },
6214
- rightItems && rightItems.map(function (row, index) {
6215
- return React__default.createElement(
6216
- 'div',
6217
- { key: index },
6218
- row.component
6219
- );
6220
- })
6604
+ website && website.conferenceBannerContent && React__default.createElement(ConferenceBanner, { website: website }),
6605
+ React__default.createElement(
6606
+ 'div',
6607
+ { style: { position: "sticky", top: "60px" } },
6608
+ rightItems && rightItems.map(function (row, index) {
6609
+ return React__default.createElement(
6610
+ 'div',
6611
+ { key: index },
6612
+ row.component
6613
+ );
6614
+ }),
6615
+ website && website.sideFooterContent && website.sideFooterContent.length && React__default.createElement(SideFooter, { website: website })
6616
+ )
6221
6617
  )
6222
6618
  )
6223
6619
  );
@@ -6296,7 +6692,8 @@ var LeftNav = function LeftNav(props) {
6296
6692
  var Column3 = function Column3(props) {
6297
6693
  var leftItems = props.leftItems,
6298
6694
  rightItems = props.rightItems,
6299
- title = props.title;
6695
+ title = props.title,
6696
+ website = props.website;
6300
6697
 
6301
6698
  return React__default.createElement(
6302
6699
  'section',
@@ -6322,13 +6719,19 @@ var Column3 = function Column3(props) {
6322
6719
  React__default.createElement(
6323
6720
  Col,
6324
6721
  { xs: 12, className: 'rightCol' },
6325
- rightItems && rightItems.map(function (row, index) {
6326
- return React__default.createElement(
6327
- 'div',
6328
- { key: index },
6329
- row.component
6330
- );
6331
- })
6722
+ website && website.conferenceBannerContent && React__default.createElement(ConferenceBanner, { website: website }),
6723
+ React__default.createElement(
6724
+ 'div',
6725
+ { style: { position: "sticky", top: "60px" } },
6726
+ rightItems && rightItems.map(function (row, index) {
6727
+ return React__default.createElement(
6728
+ 'div',
6729
+ { key: index },
6730
+ row.component
6731
+ );
6732
+ }),
6733
+ website && website.sideFooterContent && website.sideFooterContent.length && React__default.createElement(SideFooter, { website: website })
6734
+ )
6332
6735
  )
6333
6736
  )
6334
6737
  );
@@ -7942,13 +8345,13 @@ var TemplateNormal = function TemplateNormal(props) {
7942
8345
  case '2':
7943
8346
  return React__default.createElement(
7944
8347
  Column2,
7945
- { title: title, rightItems: config.rightItems },
8348
+ { title: title, rightItems: config.rightItems, website: website },
7946
8349
  props.children
7947
8350
  );
7948
8351
  case '3':
7949
8352
  return React__default.createElement(
7950
8353
  Column3,
7951
- { title: title, leftItems: config.leftItems, rightItems: config.rightItems },
8354
+ { title: title, leftItems: config.leftItems, rightItems: config.rightItems, website: website },
7952
8355
  props.children
7953
8356
  );
7954
8357
  default:
@@ -8089,7 +8492,7 @@ var FigureComponent = function FigureComponent(_ref) {
8089
8492
  );
8090
8493
  };
8091
8494
 
8092
- var urlFor = function urlFor(source, builder) {
8495
+ var urlFor$1 = function urlFor(source, builder) {
8093
8496
  return builder.image(source);
8094
8497
  };
8095
8498
 
@@ -8125,7 +8528,7 @@ var Slideshow = function Slideshow(_ref) {
8125
8528
  return React__default.createElement(
8126
8529
  reactBootstrap.Carousel.Item,
8127
8530
  { key: slide._key },
8128
- React__default.createElement('img', { src: urlFor(slide.asset, builder).url(), style: { width: '100%' } })
8531
+ React__default.createElement('img', { src: urlFor$1(slide.asset, builder).url(), style: { width: '100%' } })
8129
8532
  );
8130
8533
  })
8131
8534
  )
@@ -12041,6 +12444,7 @@ exports.ThumbnailCard = ThumbnailCard;
12041
12444
  exports.TaxonomyCard = TaxonomyCard;
12042
12445
  exports.GroupDeck = GroupDeck;
12043
12446
  exports.YoutubeGroup = YoutubeGroup;
12447
+ exports.QueueDeckExpanded = QueueDeckExpanded;
12044
12448
  exports.Column1 = Column1;
12045
12449
  exports.Column2 = Column2;
12046
12450
  exports.Column3 = Column3;