@mjhls/mjh-framework 1.0.113 → 1.0.115

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.es.js CHANGED
@@ -8501,7 +8501,10 @@ var DeckContent = function (_React$Component) {
8501
8501
  return builder.image(source);
8502
8502
  }, _this.renderCardImage = function (row, page) {
8503
8503
  if (row.thumbnail && row.thumbnail.asset) {
8504
- return _this.urlFor(row.thumbnail).url();
8504
+ var url = _this.urlFor(row.thumbnail);
8505
+ if (_this.props.imageHeight) url = url.height(_this.props.imageHeight);
8506
+ if (_this.props.imageWidth) url = url.width(_this.props.imageWidth);
8507
+ return url.url();
8505
8508
  } else {
8506
8509
  return _this.defaultImage;
8507
8510
  }
@@ -8574,6 +8577,50 @@ var DeckContent = function (_React$Component) {
8574
8577
  }
8575
8578
  }
8576
8579
  }
8580
+ }, _this.renderAuthor = function (authorDetail, index$$1, length) {
8581
+ if (authorDetail) {
8582
+ var _id = authorDetail._id,
8583
+ displayName = authorDetail.displayName,
8584
+ url = authorDetail.url;
8585
+
8586
+ if (displayName && url && url.current) {
8587
+ return React__default.createElement(
8588
+ 'div',
8589
+ { key: _id },
8590
+ index$$1 === 0 && React__default.createElement(
8591
+ 'span',
8592
+ { className: 'pr-1' },
8593
+ 'By'
8594
+ ),
8595
+ React__default.createElement(
8596
+ Link,
8597
+ { href: '/authors/[url]', as: '/authors/' + url.current },
8598
+ React__default.createElement(
8599
+ 'a',
8600
+ { className: 'text-muted' },
8601
+ displayName,
8602
+ length !== index$$1 + 1 && React__default.createElement('br', null)
8603
+ )
8604
+ )
8605
+ );
8606
+ } else if (displayName) {
8607
+ return React__default.createElement(
8608
+ 'div',
8609
+ { key: _id },
8610
+ index$$1 === 0 && React__default.createElement(
8611
+ 'span',
8612
+ { className: 'pr-1' },
8613
+ 'By'
8614
+ ),
8615
+ React__default.createElement(
8616
+ 'span',
8617
+ { className: 'text-muted' },
8618
+ displayName,
8619
+ length !== index$$1 + 1 && React__default.createElement('br', null)
8620
+ )
8621
+ );
8622
+ }
8623
+ } else return null;
8577
8624
  }, _this.cardLoader = function (page, columns, variant) {
8578
8625
  var mode = variant && variant === 'bottom' ? 'column-reverse' : 'column';
8579
8626
 
@@ -8628,18 +8675,21 @@ var DeckContent = function (_React$Component) {
8628
8675
  Card.Title,
8629
8676
  null,
8630
8677
  row.title
8631
- ),
8632
- _this.props.showPublished && row.published && React__default.createElement(
8633
- Card.Subtitle,
8634
- null,
8635
- moment(row.published).format('MMMM DD, YYYY')
8636
- ),
8637
- React__default.createElement(
8638
- Card.Text,
8639
- null,
8640
- row.summary
8641
8678
  )
8642
8679
  )
8680
+ ),
8681
+ _this.props.showPublished && row.published && React__default.createElement(
8682
+ Card.Subtitle,
8683
+ null,
8684
+ moment(row.published).format('MMMM DD, YYYY')
8685
+ ),
8686
+ _this.props.showAuthor && row.authorMapping && row.authorMapping.length > 0 && row.authorMapping.map(function (authorDetail, index$$1) {
8687
+ return _this.renderAuthor(authorDetail, index$$1, row.authorMapping.length);
8688
+ }),
8689
+ React__default.createElement(
8690
+ Card.Text,
8691
+ null,
8692
+ row.summary
8643
8693
  )
8644
8694
  )
8645
8695
  )
@@ -9832,7 +9882,10 @@ var GridContent = function (_React$Component) {
9832
9882
  return builder.image(source);
9833
9883
  }, _this.renderCardImage = function (row, page) {
9834
9884
  if (row.thumbnail && row.thumbnail.asset) {
9835
- return _this.urlFor(row.thumbnail).url();
9885
+ var url = _this.urlFor(row.thumbnail);
9886
+ if (_this.props.imageHeight) url = url.height(_this.props.imageHeight);
9887
+ if (_this.props.imageWidth) url = url.width(_this.props.imageWidth);
9888
+ return url.url();
9836
9889
  } else {
9837
9890
  return _this.defaultImage;
9838
9891
  }
@@ -9895,47 +9948,49 @@ var GridContent = function (_React$Component) {
9895
9948
  }
9896
9949
  }
9897
9950
  }, _this.renderAuthor = function (authorDetail, index$$1, length) {
9898
- var _id = authorDetail._id,
9899
- displayName = authorDetail.displayName,
9900
- url = authorDetail.url;
9951
+ if (authorDetail) {
9952
+ var _id = authorDetail._id,
9953
+ displayName = authorDetail.displayName,
9954
+ url = authorDetail.url;
9901
9955
 
9902
- if (displayName && url && url.current) {
9903
- return React__default.createElement(
9904
- 'div',
9905
- { key: _id },
9906
- index$$1 === 0 && React__default.createElement(
9907
- 'span',
9908
- { className: 'pr-1' },
9909
- 'By'
9910
- ),
9911
- React__default.createElement(
9912
- Link,
9913
- { href: '/authors/[url]', as: '/authors/' + url.current },
9956
+ if (displayName && url && url.current) {
9957
+ return React__default.createElement(
9958
+ 'div',
9959
+ { key: _id },
9960
+ index$$1 === 0 && React__default.createElement(
9961
+ 'span',
9962
+ { className: 'pr-1' },
9963
+ 'By'
9964
+ ),
9914
9965
  React__default.createElement(
9915
- 'a',
9966
+ Link,
9967
+ { href: '/authors/[url]', as: '/authors/' + url.current },
9968
+ React__default.createElement(
9969
+ 'a',
9970
+ { className: 'text-muted' },
9971
+ displayName,
9972
+ length !== index$$1 + 1 && React__default.createElement('br', null)
9973
+ )
9974
+ )
9975
+ );
9976
+ } else if (displayName) {
9977
+ return React__default.createElement(
9978
+ 'div',
9979
+ { key: _id },
9980
+ index$$1 === 0 && React__default.createElement(
9981
+ 'span',
9982
+ { className: 'pr-1' },
9983
+ 'By'
9984
+ ),
9985
+ React__default.createElement(
9986
+ 'span',
9916
9987
  { className: 'text-muted' },
9917
9988
  displayName,
9918
9989
  length !== index$$1 + 1 && React__default.createElement('br', null)
9919
9990
  )
9920
- )
9921
- );
9922
- } else if (displayName) {
9923
- return React__default.createElement(
9924
- 'div',
9925
- { key: _id },
9926
- index$$1 === 0 && React__default.createElement(
9927
- 'span',
9928
- { className: 'pr-1' },
9929
- 'By'
9930
- ),
9931
- React__default.createElement(
9932
- 'span',
9933
- { className: 'text-muted' },
9934
- displayName,
9935
- length !== index$$1 + 1 && React__default.createElement('br', null)
9936
- )
9937
- );
9938
- }
9991
+ );
9992
+ }
9993
+ } else return null;
9939
9994
  }, _this.renderManualPagination = function () {
9940
9995
  var currentPage = _this.state.currentPage;
9941
9996
 
@@ -9969,7 +10024,6 @@ var GridContent = function (_React$Component) {
9969
10024
  null,
9970
10025
  this.state.data && this.state.data.map(function (row, index$$1) {
9971
10026
  // const thumbnailURL = get(row, 'thumbnail.asset.url', this.props.defaultImage)
9972
- var thumbnailURL = row.thumbnail ? _this2.urlFor(row.thumbnail).url() : _this2.props.defaultImage;
9973
10027
  return React__default.createElement(
9974
10028
  Col,
9975
10029
  { key: index$$1, md: 12, lg: lgVar, style: { display: 'flex', flex: '1 0 auto' } },
@@ -9988,7 +10042,7 @@ var GridContent = function (_React$Component) {
9988
10042
  React__default.createElement(
9989
10043
  'a',
9990
10044
  null,
9991
- React__default.createElement(Card.Img, { variant: 'top', src: thumbnailURL })
10045
+ React__default.createElement(Card.Img, { variant: 'top', src: _this2.renderCardImage(row, page), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
9992
10046
  )
9993
10047
  )
9994
10048
  ),
@@ -10240,6 +10294,15 @@ var DeckQueue = function (_React$Component) {
10240
10294
 
10241
10295
  var builder = imageUrlBuilder(client);
10242
10296
  return builder.image(source);
10297
+ }, _this.renderCardImage = function (row) {
10298
+ if (row.thumbnail && row.thumbnail.asset) {
10299
+ var url = _this.urlFor(row.thumbnail);
10300
+ if (_this.props.imageHeight) url = url.height(_this.props.imageHeight);
10301
+ if (_this.props.imageWidth) url = url.width(_this.props.imageWidth);
10302
+ return url.url();
10303
+ } else {
10304
+ return _this.defaultImage;
10305
+ }
10243
10306
  }, _this.changePageNumber = function (pageNumber) {
10244
10307
  var _this$props = _this.props,
10245
10308
  seoPaginate = _this$props.seoPaginate,
@@ -10332,7 +10395,7 @@ var DeckQueue = function (_React$Component) {
10332
10395
  this.state.data && this.state.data.map(function (row, index$$1) {
10333
10396
  var pageNumber = row.pageNumber || _this2.state.page;
10334
10397
  // const thumbnailURL = get(row, 'thumbnail.asset.url', this.props.defaultImage)
10335
- var thumbnailURL = row.thumbnail && row.thumbnail.asset ? _this2.urlFor(row.thumbnail).url() : _this2.props.defaultImage;
10398
+
10336
10399
  return React__default.createElement(
10337
10400
  VisibilitySensor,
10338
10401
  {
@@ -10355,7 +10418,7 @@ var DeckQueue = function (_React$Component) {
10355
10418
  React__default.createElement(
10356
10419
  Link,
10357
10420
  { href: _this2.page + '/[url]', as: _this2.page + '/' + get_1(row, 'url.current') },
10358
- React__default.createElement(Card.Img, { variant: 'top', src: thumbnailURL })
10421
+ React__default.createElement(Card.Img, { variant: 'top', src: _this2.renderCardImage(row), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
10359
10422
  )
10360
10423
  ),
10361
10424
  React__default.createElement(
@@ -10491,7 +10554,13 @@ var ThumbnailCard = function ThumbnailCard(_ref) {
10491
10554
  return React__default.createElement(
10492
10555
  Media,
10493
10556
  { className: 'mb-3 thumbnail-card' },
10494
- React__default.createElement('img', { width: size, height: size, className: 'mr-3', src: item.thumbnail ? urlFor(item.thumbnail).url() : defaultImage, alt: 'Generic placeholder' }),
10557
+ React__default.createElement('img', {
10558
+ width: size,
10559
+ height: size,
10560
+ className: 'mr-3',
10561
+ src: item.thumbnail ? urlFor(item.thumbnail).url() : defaultImage,
10562
+ alt: 'Generic placeholder'
10563
+ }),
10495
10564
  React__default.createElement(
10496
10565
  Media.Body,
10497
10566
  null,
@@ -10518,7 +10587,9 @@ var TaxonomyCard = function TaxonomyCard(props) {
10518
10587
  icon = _props$icon === undefined ? false : _props$icon,
10519
10588
  data = props.dataRecord,
10520
10589
  defaultImage = props.defaultImage,
10521
- client = props.client;
10590
+ client = props.client,
10591
+ imageHeight = props.imageHeight,
10592
+ imageWidth = props.imageWidth;
10522
10593
 
10523
10594
 
10524
10595
  var builder = imageUrlBuilder(client);
@@ -10527,6 +10598,13 @@ var TaxonomyCard = function TaxonomyCard(props) {
10527
10598
  return builder.image(source);
10528
10599
  };
10529
10600
 
10601
+ var renderCardImage = function renderCardImage(row) {
10602
+ var url = urlFor(row.thumbnail);
10603
+ if (imageHeight) url = url.height(imageHeight);
10604
+ if (imageWidth) url = url.width(imageWidth);
10605
+ return url.url();
10606
+ };
10607
+
10530
10608
  var mode = variant && variant === 'bottom' ? 'column-reverse' : 'column';
10531
10609
 
10532
10610
  var itemCounter = 0;
@@ -10549,7 +10627,7 @@ var TaxonomyCard = function TaxonomyCard(props) {
10549
10627
  } else {
10550
10628
  lgVar = 6;
10551
10629
  }
10552
- var thumbnailURL = row.thumbnail && row.thumbnail.asset ? urlFor(row.thumbnail.asset).url() : defaultImage;
10630
+ var thumbnailURL = row.thumbnail && row.thumbnail.asset ? renderCardImage(row) : defaultImage;
10553
10631
  return React__default.createElement(
10554
10632
  Col,
10555
10633
  { key: itemCounter, md: 12, lg: lgVar, counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
@@ -10622,15 +10700,6 @@ var TaxonomyCard = function TaxonomyCard(props) {
10622
10700
  );
10623
10701
  };
10624
10702
 
10625
- /*
10626
- GROQ query -
10627
- *[_type == "article" && references(*[_type == 'documentGroup' && name == 'test']._id)][0...10]{
10628
- title,
10629
- published,
10630
- "thumbnail": thumbnail.asset->url,
10631
- "url": url.current
10632
- }
10633
- */
10634
10703
  var GroupDeck = function GroupDeck(props) {
10635
10704
  // Props should be an array of objects containing Thumbnail, title, and URL
10636
10705
  var get2 = props.get2 ? '/' + props.get2 + '/' : '/view/';
@@ -10975,10 +11044,17 @@ var YoutubeGroup = function YoutubeGroup(props) {
10975
11044
  );
10976
11045
  };
10977
11046
 
10978
- var urlFor = function urlFor(builder, source) {
11047
+ var urlFor = function urlFor(source, builder) {
10979
11048
  return builder.image(source);
10980
11049
  };
10981
11050
 
11051
+ var renderCardImage = function renderCardImage(row, builder, imageHeight, imageWidth) {
11052
+ var url = urlFor(row.thumbnail, builder);
11053
+ if (imageHeight) url = url.height(imageHeight);
11054
+ if (imageWidth) url = url.width(imageWidth);
11055
+ return url.url();
11056
+ };
11057
+
10982
11058
  var loadMore = function loadMore(values, setValues, per) {
10983
11059
  setValues({
10984
11060
  page: values.page + 1,
@@ -11063,50 +11139,52 @@ var changePageNumber = function changePageNumber(pageNumber, seoPaginate, pagevi
11063
11139
  };
11064
11140
 
11065
11141
  var renderAuthor = function renderAuthor(authorDetail, index$$1, length) {
11066
- var _id = authorDetail._id,
11067
- displayName = authorDetail.displayName,
11068
- url = authorDetail.url;
11142
+ if (authorDetail) {
11143
+ var _id = authorDetail._id,
11144
+ displayName = authorDetail.displayName,
11145
+ url = authorDetail.url;
11069
11146
 
11070
- if (displayName && url && url.current) {
11071
- return React__default.createElement(
11072
- 'div',
11073
- { key: _id },
11074
- index$$1 === 0 && React__default.createElement(
11075
- 'span',
11076
- { className: 'pr-1' },
11077
- 'By'
11078
- ),
11079
- React__default.createElement(
11080
- Link,
11081
- { href: '/authors/[url]', as: '/authors/' + url.current },
11147
+ if (displayName && url && url.current) {
11148
+ return React__default.createElement(
11149
+ 'div',
11150
+ { key: _id },
11151
+ index$$1 === 0 && React__default.createElement(
11152
+ 'span',
11153
+ { className: 'pr-1' },
11154
+ 'By'
11155
+ ),
11082
11156
  React__default.createElement(
11083
- 'a',
11157
+ Link,
11158
+ { href: '/authors/[url]', as: '/authors/' + url.current },
11159
+ React__default.createElement(
11160
+ 'a',
11161
+ { className: 'text-muted' },
11162
+ displayName,
11163
+ length !== index$$1 + 1 && React__default.createElement('br', null)
11164
+ )
11165
+ )
11166
+ );
11167
+ } else if (displayName) {
11168
+ return React__default.createElement(
11169
+ 'div',
11170
+ { key: _id },
11171
+ index$$1 === 0 && React__default.createElement(
11172
+ 'span',
11173
+ { className: 'pr-1' },
11174
+ 'By'
11175
+ ),
11176
+ React__default.createElement(
11177
+ 'span',
11084
11178
  { className: 'text-muted' },
11085
11179
  displayName,
11086
11180
  length !== index$$1 + 1 && React__default.createElement('br', null)
11087
11181
  )
11088
- )
11089
- );
11090
- } else if (displayName) {
11091
- return React__default.createElement(
11092
- 'div',
11093
- { key: _id },
11094
- index$$1 === 0 && React__default.createElement(
11095
- 'span',
11096
- { className: 'pr-1' },
11097
- 'By'
11098
- ),
11099
- React__default.createElement(
11100
- 'span',
11101
- { className: 'text-muted' },
11102
- displayName,
11103
- length !== index$$1 + 1 && React__default.createElement('br', null)
11104
- )
11105
- );
11106
- }
11182
+ );
11183
+ }
11184
+ } else return null;
11107
11185
  };
11108
11186
 
11109
- var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate, pageview, router, currentPage, setCurrentPage, showPublished, defaultImage, showAuthor, showCategory) {
11187
+ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate, pageview, router, currentPage, setCurrentPage, showPublished, defaultImage, showAuthor, showCategory, imageHeight, imageWidth) {
11110
11188
  return React__default.createElement(
11111
11189
  'div',
11112
11190
  null,
@@ -11132,11 +11210,7 @@ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate
11132
11210
  React__default.createElement(
11133
11211
  'a',
11134
11212
  null,
11135
- article.thumbnail && article.thumbnail.asset ? React__default.createElement('img', {
11136
- className: 'mr-3',
11137
- src: urlFor(builder, article.thumbnail).width(240).height(135).url(),
11138
- alt: article.title
11139
- }) : React__default.createElement('img', { src: defaultImage, className: 'mr-3', width: '240', height: '135' })
11213
+ article.thumbnail && article.thumbnail.asset ? React__default.createElement('img', { className: 'mr-3', src: renderCardImage(article, builder, imageHeight, imageWidth), alt: article.title }) : React__default.createElement('img', { src: defaultImage, className: 'mr-3', width: '240', height: '135' })
11140
11214
  )
11141
11215
  ),
11142
11216
  React__default.createElement(
@@ -11228,7 +11302,9 @@ var QueueDeckExpanded = function QueueDeckExpanded(props) {
11228
11302
  pageview = props.pageview,
11229
11303
  defaultImage = props.defaultImage,
11230
11304
  showAuthor = props.showAuthor,
11231
- showCategory = props.showCategory;
11305
+ showCategory = props.showCategory,
11306
+ imageHeight = props.imageHeight,
11307
+ imageWidth = props.imageWidth;
11232
11308
  var initialCurrentPage = props.currentPage,
11233
11309
  showPublished = props.showPublished;
11234
11310
 
@@ -11286,7 +11362,7 @@ var QueueDeckExpanded = function QueueDeckExpanded(props) {
11286
11362
  React__default.createElement(
11287
11363
  Container$1,
11288
11364
  null,
11289
- cardLoader(data, builder, mapping, values, seoPaginate, pageview, router, currentPage, setCurrentPage, showPublished, defaultImage, showAuthor, showCategory)
11365
+ cardLoader(data, builder, mapping, values, seoPaginate, pageview, router, currentPage, setCurrentPage, showPublished, defaultImage, showAuthor, showCategory, imageHeight, imageWidth)
11290
11366
  )
11291
11367
  ),
11292
11368
  React__default.createElement(
@@ -11332,6 +11408,98 @@ var QueueDeckExpanded = function QueueDeckExpanded(props) {
11332
11408
  );
11333
11409
  };
11334
11410
 
11411
+ var DefaultContext = {
11412
+ color: undefined,
11413
+ size: undefined,
11414
+ className: undefined,
11415
+ style: undefined,
11416
+ attr: undefined
11417
+ };
11418
+ var IconContext = createContext && createContext(DefaultContext);
11419
+
11420
+ var __assign$1 = undefined && undefined.__assign || function () {
11421
+ __assign$1 = Object.assign || function (t) {
11422
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
11423
+ s = arguments[i];
11424
+
11425
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
11426
+ }
11427
+
11428
+ return t;
11429
+ };
11430
+
11431
+ return __assign$1.apply(this, arguments);
11432
+ };
11433
+
11434
+ var __rest = undefined && undefined.__rest || function (s, e) {
11435
+ var t = {};
11436
+
11437
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
11438
+
11439
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]];
11440
+ return t;
11441
+ };
11442
+
11443
+ function Tree2Element(tree) {
11444
+ return tree && tree.map(function (node, i) {
11445
+ return createElement(node.tag, __assign$1({
11446
+ key: i
11447
+ }, node.attr), Tree2Element(node.child));
11448
+ });
11449
+ }
11450
+
11451
+ function GenIcon(data) {
11452
+ return function (props) {
11453
+ return createElement(IconBase, __assign$1({
11454
+ attr: __assign$1({}, data.attr)
11455
+ }, props), Tree2Element(data.child));
11456
+ };
11457
+ }
11458
+ function IconBase(props) {
11459
+ var elem = function (conf) {
11460
+ var computedSize = props.size || conf.size || "1em";
11461
+ var className;
11462
+ if (conf.className) className = conf.className;
11463
+ if (props.className) className = (className ? className + ' ' : '') + props.className;
11464
+
11465
+ var attr = props.attr,
11466
+ title = props.title,
11467
+ svgProps = __rest(props, ["attr", "title"]);
11468
+
11469
+ return createElement("svg", __assign$1({
11470
+ stroke: "currentColor",
11471
+ fill: "currentColor",
11472
+ strokeWidth: "0"
11473
+ }, conf.attr, attr, svgProps, {
11474
+ className: className,
11475
+ style: __assign$1({
11476
+ color: props.color || conf.color
11477
+ }, conf.style, props.style),
11478
+ height: computedSize,
11479
+ width: computedSize,
11480
+ xmlns: "http://www.w3.org/2000/svg"
11481
+ }), title && createElement("title", null, title), props.children);
11482
+ };
11483
+
11484
+ return IconContext !== undefined ? createElement(IconContext.Consumer, null, function (conf) {
11485
+ return elem(conf);
11486
+ }) : elem(DefaultContext);
11487
+ }
11488
+
11489
+ // THIS FILE IS AUTO GENERATED
11490
+ var IoIosArrowForward = function (props) {
11491
+ return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z"}}]})(props);
11492
+ };
11493
+ IoIosArrowForward.displayName = "IoIosArrowForward";
11494
+ var IoIosHome = function (props) {
11495
+ return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M258.5 104.1c-1.5-1.2-3.5-1.2-5 0l-156 124.8c-.9.8-1.5 1.9-1.5 3.1v230c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V322c0-1.1.9-2 2-2h92c1.1 0 2 .9 2 2v140c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V232c0-1.2-.6-2.4-1.5-3.1l-156-124.8z"}},{"tag":"path","attr":{"d":"M458.7 204.2l-189-151.4C265.9 49.7 261 48 256 48s-9.9 1.7-13.7 4.8L160 119.7V77.5c0-1.1-.9-2-2-2H98c-1.1 0-2 .9-2 2v92.2l-42.7 35.1c-3.1 2.5-5.1 6.2-5.3 10.2-.2 4 1.3 7.9 4.1 10.7 2.6 2.6 6.1 4.1 9.9 4.1 3.2 0 6.3-1.1 8.8-3.1l183.9-148c.5-.4.9-.4 1.3-.4s.8.1 1.3.4l183.9 147.4c2.5 2 5.6 3.1 8.8 3.1 3.7 0 7.2-1.4 9.9-4.1 2.9-2.8 4.4-6.7 4.2-10.7-.3-4-2.2-7.7-5.4-10.2z"}}]})(props);
11496
+ };
11497
+ IoIosHome.displayName = "IoIosHome";
11498
+ var IoMdArrowDropdown = function (props) {
11499
+ return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M128 192l128 128 128-128z"}}]})(props);
11500
+ };
11501
+ IoMdArrowDropdown.displayName = "IoMdArrowDropdown";
11502
+
11335
11503
  var VideoSeriesListing = function (_React$Component) {
11336
11504
  inherits(VideoSeriesListing, _React$Component);
11337
11505
 
@@ -11508,8 +11676,8 @@ var VideoSeriesListing = function (_React$Component) {
11508
11676
  docSeries.title,
11509
11677
  React__default.createElement(
11510
11678
  'span',
11511
- { style: { fontSize: '.9rem', color: 'grey', marginLeft: '1rem' } },
11512
- 'View Topic'
11679
+ { style: { fontSize: '.9rem', color: 'grey', marginLeft: '1rem', transform: 'translateY(-2px)' } },
11680
+ React__default.createElement(IoIosArrowForward, null)
11513
11681
  )
11514
11682
  )
11515
11683
  )
@@ -11756,11 +11924,74 @@ var LeftNav = function LeftNav(props) {
11756
11924
  );
11757
11925
  };
11758
11926
 
11927
+ var PageFilter = function PageFilter(props) {
11928
+ var getParams = props.getParams,
11929
+ filters = props.filters,
11930
+ defaultFilter = props.defaultFilter;
11931
+
11932
+ var _useState = useState(''),
11933
+ _useState2 = slicedToArray(_useState, 2),
11934
+ filter = _useState2[0],
11935
+ setFilter = _useState2[1];
11936
+
11937
+ var usePrevious = function usePrevious(value) {
11938
+ var ref = useRef();
11939
+ useEffect(function () {
11940
+ ref.current = value;
11941
+ });
11942
+ return ref.current;
11943
+ };
11944
+
11945
+ var sortAttr = usePrevious({ filter: filter });
11946
+
11947
+ useEffect(function () {
11948
+ if (sortAttr && sortAttr.filter !== filter) {
11949
+ getParams(filter);
11950
+ }
11951
+ }, [filter, sortAttr, getParams]);
11952
+
11953
+ if (filters.length) {
11954
+ return React__default.createElement(
11955
+ Dropdown,
11956
+ null,
11957
+ React__default.createElement(
11958
+ Dropdown.Toggle,
11959
+ { id: 'filter-dropdown' },
11960
+ filter || defaultFilter
11961
+ ),
11962
+ React__default.createElement(
11963
+ Dropdown.Menu,
11964
+ { className: 'select-dropdown' },
11965
+ filters.map(function (filter, index) {
11966
+ return React__default.createElement(
11967
+ Dropdown.Item,
11968
+ { key: index, onClick: function onClick() {
11969
+ return setFilter(filter);
11970
+ } },
11971
+ filter
11972
+ );
11973
+ })
11974
+ ),
11975
+ React__default.createElement(
11976
+ 'style',
11977
+ { jsx: true },
11978
+ '\n .select-dropdown > a {\n color: #8e8c84;\n }\n '
11979
+ )
11980
+ );
11981
+ }
11982
+ return null;
11983
+ };
11984
+
11759
11985
  var Column3 = function Column3(props) {
11760
11986
  var leftItems = props.leftItems,
11761
11987
  rightItems = props.rightItems,
11762
11988
  title = props.title,
11763
- website = props.website;
11989
+ website = props.website,
11990
+ showFilter = props.showFilter,
11991
+ getParams = props.getParams,
11992
+ filters = props.filters,
11993
+ defaultFilter = props.defaultFilter;
11994
+
11764
11995
 
11765
11996
  return React__default.createElement(
11766
11997
  'section',
@@ -11776,20 +12007,38 @@ var Column3 = function Column3(props) {
11776
12007
  React__default.createElement(
11777
12008
  Col,
11778
12009
  { md: true, className: 'middleCol', style: { maxWidth: '640px', marginTop: !title && '10px' } },
11779
- title && React__default.createElement(
12010
+ showFilter ? React__default.createElement(
12011
+ 'div',
12012
+ { className: 'title-wrap' },
12013
+ React__default.createElement(
12014
+ 'h1',
12015
+ { className: 'title' },
12016
+ title
12017
+ ),
12018
+ React__default.createElement(
12019
+ 'div',
12020
+ { className: 'filter-box' },
12021
+ React__default.createElement(PageFilter, { getParams: getParams, filters: filters, defaultFilter: defaultFilter })
12022
+ )
12023
+ ) : title && React__default.createElement(
11780
12024
  'h1',
11781
- null,
12025
+ { className: 'title' },
11782
12026
  title
11783
12027
  ),
11784
12028
  props.children
11785
12029
  ),
12030
+ React__default.createElement(
12031
+ 'style',
12032
+ { jsx: true },
12033
+ '\n .filter-box {\n padding-top: 6px;\n padding-right: 18px;\n }\n @media only screen and (min-width: 768px) {\n .title-wrap {\n display: flex;\n justify-content: space-between;\n }\n }\n @media only screen and (max-width: 767px) {\n .filter-box {\n float: right;\n display: flex;\n justify-content: flex-end;\n }\n .title-wrap {\n display: flex;\n flex-direction: column;\n margin-bottom: 10px;\n }\n }\n '
12034
+ ),
11786
12035
  React__default.createElement(
11787
12036
  Col,
11788
12037
  { xs: 12, className: 'rightCol' },
11789
12038
  website && website.conferenceBannerContent && React__default.createElement(ConferenceBanner, { website: website }),
11790
12039
  React__default.createElement(
11791
12040
  'div',
11792
- { style: { position: "sticky", top: "60px" } },
12041
+ { style: { position: 'sticky', top: '60px' } },
11793
12042
  rightItems && rightItems.map(function (row, index) {
11794
12043
  return React__default.createElement(
11795
12044
  'div',
@@ -11827,94 +12076,6 @@ var Header = function Header(props) {
11827
12076
  );
11828
12077
  };
11829
12078
 
11830
- var DefaultContext = {
11831
- color: undefined,
11832
- size: undefined,
11833
- className: undefined,
11834
- style: undefined,
11835
- attr: undefined
11836
- };
11837
- var IconContext = createContext && createContext(DefaultContext);
11838
-
11839
- var __assign$1 = undefined && undefined.__assign || function () {
11840
- __assign$1 = Object.assign || function (t) {
11841
- for (var s, i = 1, n = arguments.length; i < n; i++) {
11842
- s = arguments[i];
11843
-
11844
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
11845
- }
11846
-
11847
- return t;
11848
- };
11849
-
11850
- return __assign$1.apply(this, arguments);
11851
- };
11852
-
11853
- var __rest = undefined && undefined.__rest || function (s, e) {
11854
- var t = {};
11855
-
11856
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
11857
-
11858
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]];
11859
- return t;
11860
- };
11861
-
11862
- function Tree2Element(tree) {
11863
- return tree && tree.map(function (node, i) {
11864
- return createElement(node.tag, __assign$1({
11865
- key: i
11866
- }, node.attr), Tree2Element(node.child));
11867
- });
11868
- }
11869
-
11870
- function GenIcon(data) {
11871
- return function (props) {
11872
- return createElement(IconBase, __assign$1({
11873
- attr: __assign$1({}, data.attr)
11874
- }, props), Tree2Element(data.child));
11875
- };
11876
- }
11877
- function IconBase(props) {
11878
- var elem = function (conf) {
11879
- var computedSize = props.size || conf.size || "1em";
11880
- var className;
11881
- if (conf.className) className = conf.className;
11882
- if (props.className) className = (className ? className + ' ' : '') + props.className;
11883
-
11884
- var attr = props.attr,
11885
- title = props.title,
11886
- svgProps = __rest(props, ["attr", "title"]);
11887
-
11888
- return createElement("svg", __assign$1({
11889
- stroke: "currentColor",
11890
- fill: "currentColor",
11891
- strokeWidth: "0"
11892
- }, conf.attr, attr, svgProps, {
11893
- className: className,
11894
- style: __assign$1({
11895
- color: props.color || conf.color
11896
- }, conf.style, props.style),
11897
- height: computedSize,
11898
- width: computedSize,
11899
- xmlns: "http://www.w3.org/2000/svg"
11900
- }), title && createElement("title", null, title), props.children);
11901
- };
11902
-
11903
- return IconContext !== undefined ? createElement(IconContext.Consumer, null, function (conf) {
11904
- return elem(conf);
11905
- }) : elem(DefaultContext);
11906
- }
11907
-
11908
- // THIS FILE IS AUTO GENERATED
11909
- var IoIosHome = function (props) {
11910
- return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M258.5 104.1c-1.5-1.2-3.5-1.2-5 0l-156 124.8c-.9.8-1.5 1.9-1.5 3.1v230c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V322c0-1.1.9-2 2-2h92c1.1 0 2 .9 2 2v140c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V232c0-1.2-.6-2.4-1.5-3.1l-156-124.8z"}},{"tag":"path","attr":{"d":"M458.7 204.2l-189-151.4C265.9 49.7 261 48 256 48s-9.9 1.7-13.7 4.8L160 119.7V77.5c0-1.1-.9-2-2-2H98c-1.1 0-2 .9-2 2v92.2l-42.7 35.1c-3.1 2.5-5.1 6.2-5.3 10.2-.2 4 1.3 7.9 4.1 10.7 2.6 2.6 6.1 4.1 9.9 4.1 3.2 0 6.3-1.1 8.8-3.1l183.9-148c.5-.4.9-.4 1.3-.4s.8.1 1.3.4l183.9 147.4c2.5 2 5.6 3.1 8.8 3.1 3.7 0 7.2-1.4 9.9-4.1 2.9-2.8 4.4-6.7 4.2-10.7-.3-4-2.2-7.7-5.4-10.2z"}}]})(props);
11911
- };
11912
- IoIosHome.displayName = "IoIosHome";
11913
- var IoMdArrowDropdown = function (props) {
11914
- return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M128 192l128 128 128-128z"}}]})(props);
11915
- };
11916
- IoMdArrowDropdown.displayName = "IoMdArrowDropdown";
11917
-
11918
12079
  var AccordionPanel = function AccordionPanel(props) {
11919
12080
  var accordionClassName = props.accordionClassName,
11920
12081
  data = props.data;
@@ -12042,59 +12203,6 @@ var SocialShare = function SocialShare(props) {
12042
12203
  );
12043
12204
  };
12044
12205
 
12045
- var PageFilter = function PageFilter(props) {
12046
- var getParams = props.getParams,
12047
- filters = props.filters,
12048
- defaultFilter = props.defaultFilter;
12049
-
12050
- var _useState = useState(''),
12051
- _useState2 = slicedToArray(_useState, 2),
12052
- filter = _useState2[0],
12053
- setFilter = _useState2[1];
12054
-
12055
- var usePrevious = function usePrevious(value) {
12056
- var ref = useRef();
12057
- useEffect(function () {
12058
- ref.current = value;
12059
- });
12060
- return ref.current;
12061
- };
12062
-
12063
- var sortAttr = usePrevious({ filter: filter });
12064
-
12065
- useEffect(function () {
12066
- if (sortAttr && sortAttr.filter !== filter) {
12067
- getParams(filter);
12068
- }
12069
- }, [filter, sortAttr, getParams]);
12070
-
12071
- if (filters.length) {
12072
- return React__default.createElement(
12073
- Dropdown,
12074
- null,
12075
- React__default.createElement(
12076
- Dropdown.Toggle,
12077
- { id: 'filter-dropdown' },
12078
- filter || defaultFilter
12079
- ),
12080
- React__default.createElement(
12081
- Dropdown.Menu,
12082
- null,
12083
- filters.map(function (filter, index) {
12084
- return React__default.createElement(
12085
- Dropdown.Item,
12086
- { key: index, onClick: function onClick() {
12087
- return setFilter(filter);
12088
- } },
12089
- filter
12090
- );
12091
- })
12092
- )
12093
- );
12094
- }
12095
- return null;
12096
- };
12097
-
12098
12206
  var Search = function Search(props) {
12099
12207
  var _props$placeholder = props.placeholder,
12100
12208
  placeholder = _props$placeholder === undefined ? 'Search' : _props$placeholder,
@@ -13654,7 +13762,11 @@ var TemplateNormal = function TemplateNormal(props) {
13654
13762
  keywords = props.keywords,
13655
13763
  description = props.description,
13656
13764
  website = props.website,
13657
- horizontalAD = props.config.horizontalAD;
13765
+ horizontalAD = props.config.horizontalAD,
13766
+ showFilter = props.showFilter,
13767
+ filterParams = props.filterParams,
13768
+ filters = props.filters,
13769
+ defaultFilter = props.defaultFilter;
13658
13770
 
13659
13771
 
13660
13772
  var navigation = function navigation() {
@@ -13694,7 +13806,15 @@ var TemplateNormal = function TemplateNormal(props) {
13694
13806
  case '3':
13695
13807
  return React__default.createElement(
13696
13808
  Column3,
13697
- { title: title, leftItems: config.leftItems, rightItems: config.rightItems, website: website },
13809
+ {
13810
+ title: title,
13811
+ leftItems: config.leftItems,
13812
+ rightItems: config.rightItems,
13813
+ website: website,
13814
+ showFilter: showFilter,
13815
+ getParams: filterParams,
13816
+ filters: filters,
13817
+ defaultFilter: defaultFilter },
13698
13818
  props.children
13699
13819
  );
13700
13820
  default:
@@ -13841,7 +13961,12 @@ var FigureComponent = function FigureComponent(_ref) {
13841
13961
  link ? React__default.createElement(
13842
13962
  'a',
13843
13963
  { href: link, target: blank ? '_blank' : '_self' },
13844
- React__default.createElement(Figure.Image, { ref: imgElement, onLoad: loadImg, src: urlFor$1(node$$1, client).url(), alt: alt && alt }),
13964
+ React__default.createElement(Figure.Image, {
13965
+ ref: imgElement,
13966
+ onLoad: loadImg,
13967
+ src: urlFor$1(node$$1, client).url(),
13968
+ alt: alt && alt
13969
+ }),
13845
13970
  caption && React__default.createElement(
13846
13971
  Figure.Caption,
13847
13972
  { style: { width: captionWidth } },
@@ -13850,7 +13975,12 @@ var FigureComponent = function FigureComponent(_ref) {
13850
13975
  ) : React__default.createElement(
13851
13976
  React__default.Fragment,
13852
13977
  null,
13853
- React__default.createElement(Figure.Image, { ref: imgElement, onLoad: loadImg, src: urlFor$1(node$$1, client).url(), alt: alt && alt }),
13978
+ React__default.createElement(Figure.Image, {
13979
+ ref: imgElement,
13980
+ onLoad: loadImg,
13981
+ src: urlFor$1(node$$1, client).url(),
13982
+ alt: alt && alt
13983
+ }),
13854
13984
  caption && React__default.createElement(
13855
13985
  Figure.Caption,
13856
13986
  { style: { width: captionWidth } },
@@ -13896,7 +14026,11 @@ var Slideshow = function Slideshow(_ref) {
13896
14026
  return React__default.createElement(
13897
14027
  Carousel.Item,
13898
14028
  { key: slide._key },
13899
- React__default.createElement('img', { src: slide.asset && urlFor$2(slide.asset, builder).url(), alt: slide.alt && slide.alt, style: { width: '100%' } }),
14029
+ React__default.createElement('img', {
14030
+ src: slide.asset && urlFor$2(slide.asset, builder).url(),
14031
+ alt: slide.alt && slide.alt,
14032
+ style: { width: '100%' }
14033
+ }),
13900
14034
  slide.caption && React__default.createElement(
13901
14035
  'p',
13902
14036
  { className: 'p-2' },
@@ -17515,7 +17649,10 @@ var Media$2 = function Media$$1(_ref) {
17515
17649
  React__default.createElement(
17516
17650
  'a',
17517
17651
  { href: uploadDoc.asset.url, target: blank ? '_blank' : '_self' },
17518
- React__default.createElement(Figure.Image, { src: urlFor(poster.asset).url(), fluid: true }),
17652
+ React__default.createElement(Figure.Image, {
17653
+ src: urlFor(poster.asset).url(),
17654
+ fluid: true
17655
+ }),
17519
17656
  caption && React__default.createElement(
17520
17657
  Figure.Caption,
17521
17658
  null,
@@ -17527,7 +17664,9 @@ var Media$2 = function Media$$1(_ref) {
17527
17664
  return React__default.createElement(
17528
17665
  Figure,
17529
17666
  { className: 'd-block text-center mb-3' },
17530
- React__default.createElement(Figure.Image, { src: urlFor(poster.asset).url() }),
17667
+ React__default.createElement(Figure.Image, {
17668
+ src: urlFor(poster.asset).url()
17669
+ }),
17531
17670
  caption && React__default.createElement(
17532
17671
  Figure.Caption,
17533
17672
  null,
@@ -20473,9 +20612,18 @@ var urlFor$3 = function urlFor(source, client) {
20473
20612
  return builder.image(source);
20474
20613
  };
20475
20614
 
20615
+ var renderCardImage$1 = function renderCardImage(thumbnail, client, imageHeight, imageWidth) {
20616
+ var url = urlFor$3(thumbnail, client);
20617
+ if (imageHeight) url = url.height(imageHeight);
20618
+ if (imageWidth) url = url.width(imageWidth);
20619
+ return url.url();
20620
+ };
20621
+
20476
20622
  var Hero = function Hero(_ref) {
20477
20623
  var data = _ref.data,
20478
- client = _ref.client;
20624
+ client = _ref.client,
20625
+ imageHeight = _ref.imageHeight,
20626
+ imageWidth = _ref.imageWidth;
20479
20627
  var title = data.title,
20480
20628
  summary = data.summary,
20481
20629
  thumbnail = data.thumbnail,
@@ -20495,7 +20643,7 @@ var Hero = function Hero(_ref) {
20495
20643
  { className: 'h4' },
20496
20644
  title
20497
20645
  ),
20498
- thumbnail && React__default.createElement(Card$1.Img, { src: urlFor$3(thumbnail, client).url() }),
20646
+ thumbnail && client && React__default.createElement(Card$1.Img, { src: renderCardImage$1(thumbnail, client, imageHeight, imageWidth) }),
20499
20647
  summary && React__default.createElement(
20500
20648
  Card$1.Footer,
20501
20649
  { className: 'h6' },