@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.js CHANGED
@@ -8508,7 +8508,10 @@ var DeckContent = function (_React$Component) {
8508
8508
  return builder.image(source);
8509
8509
  }, _this.renderCardImage = function (row, page) {
8510
8510
  if (row.thumbnail && row.thumbnail.asset) {
8511
- return _this.urlFor(row.thumbnail).url();
8511
+ var url = _this.urlFor(row.thumbnail);
8512
+ if (_this.props.imageHeight) url = url.height(_this.props.imageHeight);
8513
+ if (_this.props.imageWidth) url = url.width(_this.props.imageWidth);
8514
+ return url.url();
8512
8515
  } else {
8513
8516
  return _this.defaultImage;
8514
8517
  }
@@ -8581,6 +8584,50 @@ var DeckContent = function (_React$Component) {
8581
8584
  }
8582
8585
  }
8583
8586
  }
8587
+ }, _this.renderAuthor = function (authorDetail, index$$1, length) {
8588
+ if (authorDetail) {
8589
+ var _id = authorDetail._id,
8590
+ displayName = authorDetail.displayName,
8591
+ url = authorDetail.url;
8592
+
8593
+ if (displayName && url && url.current) {
8594
+ return React__default.createElement(
8595
+ 'div',
8596
+ { key: _id },
8597
+ index$$1 === 0 && React__default.createElement(
8598
+ 'span',
8599
+ { className: 'pr-1' },
8600
+ 'By'
8601
+ ),
8602
+ React__default.createElement(
8603
+ Link,
8604
+ { href: '/authors/[url]', as: '/authors/' + url.current },
8605
+ React__default.createElement(
8606
+ 'a',
8607
+ { className: 'text-muted' },
8608
+ displayName,
8609
+ length !== index$$1 + 1 && React__default.createElement('br', null)
8610
+ )
8611
+ )
8612
+ );
8613
+ } else if (displayName) {
8614
+ return React__default.createElement(
8615
+ 'div',
8616
+ { key: _id },
8617
+ index$$1 === 0 && React__default.createElement(
8618
+ 'span',
8619
+ { className: 'pr-1' },
8620
+ 'By'
8621
+ ),
8622
+ React__default.createElement(
8623
+ 'span',
8624
+ { className: 'text-muted' },
8625
+ displayName,
8626
+ length !== index$$1 + 1 && React__default.createElement('br', null)
8627
+ )
8628
+ );
8629
+ }
8630
+ } else return null;
8584
8631
  }, _this.cardLoader = function (page, columns, variant) {
8585
8632
  var mode = variant && variant === 'bottom' ? 'column-reverse' : 'column';
8586
8633
 
@@ -8635,18 +8682,21 @@ var DeckContent = function (_React$Component) {
8635
8682
  Card.Title,
8636
8683
  null,
8637
8684
  row.title
8638
- ),
8639
- _this.props.showPublished && row.published && React__default.createElement(
8640
- Card.Subtitle,
8641
- null,
8642
- moment(row.published).format('MMMM DD, YYYY')
8643
- ),
8644
- React__default.createElement(
8645
- Card.Text,
8646
- null,
8647
- row.summary
8648
8685
  )
8649
8686
  )
8687
+ ),
8688
+ _this.props.showPublished && row.published && React__default.createElement(
8689
+ Card.Subtitle,
8690
+ null,
8691
+ moment(row.published).format('MMMM DD, YYYY')
8692
+ ),
8693
+ _this.props.showAuthor && row.authorMapping && row.authorMapping.length > 0 && row.authorMapping.map(function (authorDetail, index$$1) {
8694
+ return _this.renderAuthor(authorDetail, index$$1, row.authorMapping.length);
8695
+ }),
8696
+ React__default.createElement(
8697
+ Card.Text,
8698
+ null,
8699
+ row.summary
8650
8700
  )
8651
8701
  )
8652
8702
  )
@@ -9839,7 +9889,10 @@ var GridContent = function (_React$Component) {
9839
9889
  return builder.image(source);
9840
9890
  }, _this.renderCardImage = function (row, page) {
9841
9891
  if (row.thumbnail && row.thumbnail.asset) {
9842
- return _this.urlFor(row.thumbnail).url();
9892
+ var url = _this.urlFor(row.thumbnail);
9893
+ if (_this.props.imageHeight) url = url.height(_this.props.imageHeight);
9894
+ if (_this.props.imageWidth) url = url.width(_this.props.imageWidth);
9895
+ return url.url();
9843
9896
  } else {
9844
9897
  return _this.defaultImage;
9845
9898
  }
@@ -9902,47 +9955,49 @@ var GridContent = function (_React$Component) {
9902
9955
  }
9903
9956
  }
9904
9957
  }, _this.renderAuthor = function (authorDetail, index$$1, length) {
9905
- var _id = authorDetail._id,
9906
- displayName = authorDetail.displayName,
9907
- url = authorDetail.url;
9958
+ if (authorDetail) {
9959
+ var _id = authorDetail._id,
9960
+ displayName = authorDetail.displayName,
9961
+ url = authorDetail.url;
9908
9962
 
9909
- if (displayName && url && url.current) {
9910
- return React__default.createElement(
9911
- 'div',
9912
- { key: _id },
9913
- index$$1 === 0 && React__default.createElement(
9914
- 'span',
9915
- { className: 'pr-1' },
9916
- 'By'
9917
- ),
9918
- React__default.createElement(
9919
- Link,
9920
- { href: '/authors/[url]', as: '/authors/' + url.current },
9963
+ if (displayName && url && url.current) {
9964
+ return React__default.createElement(
9965
+ 'div',
9966
+ { key: _id },
9967
+ index$$1 === 0 && React__default.createElement(
9968
+ 'span',
9969
+ { className: 'pr-1' },
9970
+ 'By'
9971
+ ),
9921
9972
  React__default.createElement(
9922
- 'a',
9973
+ Link,
9974
+ { href: '/authors/[url]', as: '/authors/' + url.current },
9975
+ React__default.createElement(
9976
+ 'a',
9977
+ { className: 'text-muted' },
9978
+ displayName,
9979
+ length !== index$$1 + 1 && React__default.createElement('br', null)
9980
+ )
9981
+ )
9982
+ );
9983
+ } else if (displayName) {
9984
+ return React__default.createElement(
9985
+ 'div',
9986
+ { key: _id },
9987
+ index$$1 === 0 && React__default.createElement(
9988
+ 'span',
9989
+ { className: 'pr-1' },
9990
+ 'By'
9991
+ ),
9992
+ React__default.createElement(
9993
+ 'span',
9923
9994
  { className: 'text-muted' },
9924
9995
  displayName,
9925
9996
  length !== index$$1 + 1 && React__default.createElement('br', null)
9926
9997
  )
9927
- )
9928
- );
9929
- } else if (displayName) {
9930
- return React__default.createElement(
9931
- 'div',
9932
- { key: _id },
9933
- index$$1 === 0 && React__default.createElement(
9934
- 'span',
9935
- { className: 'pr-1' },
9936
- 'By'
9937
- ),
9938
- React__default.createElement(
9939
- 'span',
9940
- { className: 'text-muted' },
9941
- displayName,
9942
- length !== index$$1 + 1 && React__default.createElement('br', null)
9943
- )
9944
- );
9945
- }
9998
+ );
9999
+ }
10000
+ } else return null;
9946
10001
  }, _this.renderManualPagination = function () {
9947
10002
  var currentPage = _this.state.currentPage;
9948
10003
 
@@ -9976,7 +10031,6 @@ var GridContent = function (_React$Component) {
9976
10031
  null,
9977
10032
  this.state.data && this.state.data.map(function (row, index$$1) {
9978
10033
  // const thumbnailURL = get(row, 'thumbnail.asset.url', this.props.defaultImage)
9979
- var thumbnailURL = row.thumbnail ? _this2.urlFor(row.thumbnail).url() : _this2.props.defaultImage;
9980
10034
  return React__default.createElement(
9981
10035
  Col,
9982
10036
  { key: index$$1, md: 12, lg: lgVar, style: { display: 'flex', flex: '1 0 auto' } },
@@ -9995,7 +10049,7 @@ var GridContent = function (_React$Component) {
9995
10049
  React__default.createElement(
9996
10050
  'a',
9997
10051
  null,
9998
- React__default.createElement(Card.Img, { variant: 'top', src: thumbnailURL })
10052
+ React__default.createElement(Card.Img, { variant: 'top', src: _this2.renderCardImage(row, page), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
9999
10053
  )
10000
10054
  )
10001
10055
  ),
@@ -10247,6 +10301,15 @@ var DeckQueue = function (_React$Component) {
10247
10301
 
10248
10302
  var builder = imageUrlBuilder(client);
10249
10303
  return builder.image(source);
10304
+ }, _this.renderCardImage = function (row) {
10305
+ if (row.thumbnail && row.thumbnail.asset) {
10306
+ var url = _this.urlFor(row.thumbnail);
10307
+ if (_this.props.imageHeight) url = url.height(_this.props.imageHeight);
10308
+ if (_this.props.imageWidth) url = url.width(_this.props.imageWidth);
10309
+ return url.url();
10310
+ } else {
10311
+ return _this.defaultImage;
10312
+ }
10250
10313
  }, _this.changePageNumber = function (pageNumber) {
10251
10314
  var _this$props = _this.props,
10252
10315
  seoPaginate = _this$props.seoPaginate,
@@ -10339,7 +10402,7 @@ var DeckQueue = function (_React$Component) {
10339
10402
  this.state.data && this.state.data.map(function (row, index$$1) {
10340
10403
  var pageNumber = row.pageNumber || _this2.state.page;
10341
10404
  // const thumbnailURL = get(row, 'thumbnail.asset.url', this.props.defaultImage)
10342
- var thumbnailURL = row.thumbnail && row.thumbnail.asset ? _this2.urlFor(row.thumbnail).url() : _this2.props.defaultImage;
10405
+
10343
10406
  return React__default.createElement(
10344
10407
  VisibilitySensor,
10345
10408
  {
@@ -10362,7 +10425,7 @@ var DeckQueue = function (_React$Component) {
10362
10425
  React__default.createElement(
10363
10426
  Link,
10364
10427
  { href: _this2.page + '/[url]', as: _this2.page + '/' + get_1(row, 'url.current') },
10365
- React__default.createElement(Card.Img, { variant: 'top', src: thumbnailURL })
10428
+ React__default.createElement(Card.Img, { variant: 'top', src: _this2.renderCardImage(row), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
10366
10429
  )
10367
10430
  ),
10368
10431
  React__default.createElement(
@@ -10498,7 +10561,13 @@ var ThumbnailCard = function ThumbnailCard(_ref) {
10498
10561
  return React__default.createElement(
10499
10562
  Media,
10500
10563
  { className: 'mb-3 thumbnail-card' },
10501
- React__default.createElement('img', { width: size, height: size, className: 'mr-3', src: item.thumbnail ? urlFor(item.thumbnail).url() : defaultImage, alt: 'Generic placeholder' }),
10564
+ React__default.createElement('img', {
10565
+ width: size,
10566
+ height: size,
10567
+ className: 'mr-3',
10568
+ src: item.thumbnail ? urlFor(item.thumbnail).url() : defaultImage,
10569
+ alt: 'Generic placeholder'
10570
+ }),
10502
10571
  React__default.createElement(
10503
10572
  Media.Body,
10504
10573
  null,
@@ -10525,7 +10594,9 @@ var TaxonomyCard = function TaxonomyCard(props) {
10525
10594
  icon = _props$icon === undefined ? false : _props$icon,
10526
10595
  data = props.dataRecord,
10527
10596
  defaultImage = props.defaultImage,
10528
- client = props.client;
10597
+ client = props.client,
10598
+ imageHeight = props.imageHeight,
10599
+ imageWidth = props.imageWidth;
10529
10600
 
10530
10601
 
10531
10602
  var builder = imageUrlBuilder(client);
@@ -10534,6 +10605,13 @@ var TaxonomyCard = function TaxonomyCard(props) {
10534
10605
  return builder.image(source);
10535
10606
  };
10536
10607
 
10608
+ var renderCardImage = function renderCardImage(row) {
10609
+ var url = urlFor(row.thumbnail);
10610
+ if (imageHeight) url = url.height(imageHeight);
10611
+ if (imageWidth) url = url.width(imageWidth);
10612
+ return url.url();
10613
+ };
10614
+
10537
10615
  var mode = variant && variant === 'bottom' ? 'column-reverse' : 'column';
10538
10616
 
10539
10617
  var itemCounter = 0;
@@ -10556,7 +10634,7 @@ var TaxonomyCard = function TaxonomyCard(props) {
10556
10634
  } else {
10557
10635
  lgVar = 6;
10558
10636
  }
10559
- var thumbnailURL = row.thumbnail && row.thumbnail.asset ? urlFor(row.thumbnail.asset).url() : defaultImage;
10637
+ var thumbnailURL = row.thumbnail && row.thumbnail.asset ? renderCardImage(row) : defaultImage;
10560
10638
  return React__default.createElement(
10561
10639
  Col,
10562
10640
  { key: itemCounter, md: 12, lg: lgVar, counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
@@ -10629,15 +10707,6 @@ var TaxonomyCard = function TaxonomyCard(props) {
10629
10707
  );
10630
10708
  };
10631
10709
 
10632
- /*
10633
- GROQ query -
10634
- *[_type == "article" && references(*[_type == 'documentGroup' && name == 'test']._id)][0...10]{
10635
- title,
10636
- published,
10637
- "thumbnail": thumbnail.asset->url,
10638
- "url": url.current
10639
- }
10640
- */
10641
10710
  var GroupDeck = function GroupDeck(props) {
10642
10711
  // Props should be an array of objects containing Thumbnail, title, and URL
10643
10712
  var get2 = props.get2 ? '/' + props.get2 + '/' : '/view/';
@@ -10982,10 +11051,17 @@ var YoutubeGroup = function YoutubeGroup(props) {
10982
11051
  );
10983
11052
  };
10984
11053
 
10985
- var urlFor = function urlFor(builder, source) {
11054
+ var urlFor = function urlFor(source, builder) {
10986
11055
  return builder.image(source);
10987
11056
  };
10988
11057
 
11058
+ var renderCardImage = function renderCardImage(row, builder, imageHeight, imageWidth) {
11059
+ var url = urlFor(row.thumbnail, builder);
11060
+ if (imageHeight) url = url.height(imageHeight);
11061
+ if (imageWidth) url = url.width(imageWidth);
11062
+ return url.url();
11063
+ };
11064
+
10989
11065
  var loadMore = function loadMore(values, setValues, per) {
10990
11066
  setValues({
10991
11067
  page: values.page + 1,
@@ -11070,50 +11146,52 @@ var changePageNumber = function changePageNumber(pageNumber, seoPaginate, pagevi
11070
11146
  };
11071
11147
 
11072
11148
  var renderAuthor = function renderAuthor(authorDetail, index$$1, length) {
11073
- var _id = authorDetail._id,
11074
- displayName = authorDetail.displayName,
11075
- url = authorDetail.url;
11149
+ if (authorDetail) {
11150
+ var _id = authorDetail._id,
11151
+ displayName = authorDetail.displayName,
11152
+ url = authorDetail.url;
11076
11153
 
11077
- if (displayName && url && url.current) {
11078
- return React__default.createElement(
11079
- 'div',
11080
- { key: _id },
11081
- index$$1 === 0 && React__default.createElement(
11082
- 'span',
11083
- { className: 'pr-1' },
11084
- 'By'
11085
- ),
11086
- React__default.createElement(
11087
- Link,
11088
- { href: '/authors/[url]', as: '/authors/' + url.current },
11154
+ if (displayName && url && url.current) {
11155
+ return React__default.createElement(
11156
+ 'div',
11157
+ { key: _id },
11158
+ index$$1 === 0 && React__default.createElement(
11159
+ 'span',
11160
+ { className: 'pr-1' },
11161
+ 'By'
11162
+ ),
11089
11163
  React__default.createElement(
11090
- 'a',
11164
+ Link,
11165
+ { href: '/authors/[url]', as: '/authors/' + url.current },
11166
+ React__default.createElement(
11167
+ 'a',
11168
+ { className: 'text-muted' },
11169
+ displayName,
11170
+ length !== index$$1 + 1 && React__default.createElement('br', null)
11171
+ )
11172
+ )
11173
+ );
11174
+ } else if (displayName) {
11175
+ return React__default.createElement(
11176
+ 'div',
11177
+ { key: _id },
11178
+ index$$1 === 0 && React__default.createElement(
11179
+ 'span',
11180
+ { className: 'pr-1' },
11181
+ 'By'
11182
+ ),
11183
+ React__default.createElement(
11184
+ 'span',
11091
11185
  { className: 'text-muted' },
11092
11186
  displayName,
11093
11187
  length !== index$$1 + 1 && React__default.createElement('br', null)
11094
11188
  )
11095
- )
11096
- );
11097
- } else if (displayName) {
11098
- return React__default.createElement(
11099
- 'div',
11100
- { key: _id },
11101
- index$$1 === 0 && React__default.createElement(
11102
- 'span',
11103
- { className: 'pr-1' },
11104
- 'By'
11105
- ),
11106
- React__default.createElement(
11107
- 'span',
11108
- { className: 'text-muted' },
11109
- displayName,
11110
- length !== index$$1 + 1 && React__default.createElement('br', null)
11111
- )
11112
- );
11113
- }
11189
+ );
11190
+ }
11191
+ } else return null;
11114
11192
  };
11115
11193
 
11116
- var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate, pageview, router$$1, currentPage, setCurrentPage, showPublished, defaultImage, showAuthor, showCategory) {
11194
+ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate, pageview, router$$1, currentPage, setCurrentPage, showPublished, defaultImage, showAuthor, showCategory, imageHeight, imageWidth) {
11117
11195
  return React__default.createElement(
11118
11196
  'div',
11119
11197
  null,
@@ -11139,11 +11217,7 @@ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate
11139
11217
  React__default.createElement(
11140
11218
  'a',
11141
11219
  null,
11142
- article.thumbnail && article.thumbnail.asset ? React__default.createElement('img', {
11143
- className: 'mr-3',
11144
- src: urlFor(builder, article.thumbnail).width(240).height(135).url(),
11145
- alt: article.title
11146
- }) : React__default.createElement('img', { src: defaultImage, className: 'mr-3', width: '240', height: '135' })
11220
+ 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' })
11147
11221
  )
11148
11222
  ),
11149
11223
  React__default.createElement(
@@ -11235,7 +11309,9 @@ var QueueDeckExpanded = function QueueDeckExpanded(props) {
11235
11309
  pageview = props.pageview,
11236
11310
  defaultImage = props.defaultImage,
11237
11311
  showAuthor = props.showAuthor,
11238
- showCategory = props.showCategory;
11312
+ showCategory = props.showCategory,
11313
+ imageHeight = props.imageHeight,
11314
+ imageWidth = props.imageWidth;
11239
11315
  var initialCurrentPage = props.currentPage,
11240
11316
  showPublished = props.showPublished;
11241
11317
 
@@ -11293,7 +11369,7 @@ var QueueDeckExpanded = function QueueDeckExpanded(props) {
11293
11369
  React__default.createElement(
11294
11370
  reactBootstrap.Container,
11295
11371
  null,
11296
- cardLoader(data, builder, mapping, values, seoPaginate, pageview, router$$1, currentPage, setCurrentPage, showPublished, defaultImage, showAuthor, showCategory)
11372
+ cardLoader(data, builder, mapping, values, seoPaginate, pageview, router$$1, currentPage, setCurrentPage, showPublished, defaultImage, showAuthor, showCategory, imageHeight, imageWidth)
11297
11373
  )
11298
11374
  ),
11299
11375
  React__default.createElement(
@@ -11339,6 +11415,98 @@ var QueueDeckExpanded = function QueueDeckExpanded(props) {
11339
11415
  );
11340
11416
  };
11341
11417
 
11418
+ var DefaultContext = {
11419
+ color: undefined,
11420
+ size: undefined,
11421
+ className: undefined,
11422
+ style: undefined,
11423
+ attr: undefined
11424
+ };
11425
+ var IconContext = React.createContext && React.createContext(DefaultContext);
11426
+
11427
+ var __assign$1 = undefined && undefined.__assign || function () {
11428
+ __assign$1 = Object.assign || function (t) {
11429
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
11430
+ s = arguments[i];
11431
+
11432
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
11433
+ }
11434
+
11435
+ return t;
11436
+ };
11437
+
11438
+ return __assign$1.apply(this, arguments);
11439
+ };
11440
+
11441
+ var __rest = undefined && undefined.__rest || function (s, e) {
11442
+ var t = {};
11443
+
11444
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
11445
+
11446
+ 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]];
11447
+ return t;
11448
+ };
11449
+
11450
+ function Tree2Element(tree) {
11451
+ return tree && tree.map(function (node, i) {
11452
+ return React.createElement(node.tag, __assign$1({
11453
+ key: i
11454
+ }, node.attr), Tree2Element(node.child));
11455
+ });
11456
+ }
11457
+
11458
+ function GenIcon(data) {
11459
+ return function (props) {
11460
+ return React.createElement(IconBase, __assign$1({
11461
+ attr: __assign$1({}, data.attr)
11462
+ }, props), Tree2Element(data.child));
11463
+ };
11464
+ }
11465
+ function IconBase(props) {
11466
+ var elem = function (conf) {
11467
+ var computedSize = props.size || conf.size || "1em";
11468
+ var className;
11469
+ if (conf.className) className = conf.className;
11470
+ if (props.className) className = (className ? className + ' ' : '') + props.className;
11471
+
11472
+ var attr = props.attr,
11473
+ title = props.title,
11474
+ svgProps = __rest(props, ["attr", "title"]);
11475
+
11476
+ return React.createElement("svg", __assign$1({
11477
+ stroke: "currentColor",
11478
+ fill: "currentColor",
11479
+ strokeWidth: "0"
11480
+ }, conf.attr, attr, svgProps, {
11481
+ className: className,
11482
+ style: __assign$1({
11483
+ color: props.color || conf.color
11484
+ }, conf.style, props.style),
11485
+ height: computedSize,
11486
+ width: computedSize,
11487
+ xmlns: "http://www.w3.org/2000/svg"
11488
+ }), title && React.createElement("title", null, title), props.children);
11489
+ };
11490
+
11491
+ return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {
11492
+ return elem(conf);
11493
+ }) : elem(DefaultContext);
11494
+ }
11495
+
11496
+ // THIS FILE IS AUTO GENERATED
11497
+ var IoIosArrowForward = function (props) {
11498
+ 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);
11499
+ };
11500
+ IoIosArrowForward.displayName = "IoIosArrowForward";
11501
+ var IoIosHome = function (props) {
11502
+ 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);
11503
+ };
11504
+ IoIosHome.displayName = "IoIosHome";
11505
+ var IoMdArrowDropdown = function (props) {
11506
+ return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M128 192l128 128 128-128z"}}]})(props);
11507
+ };
11508
+ IoMdArrowDropdown.displayName = "IoMdArrowDropdown";
11509
+
11342
11510
  var VideoSeriesListing = function (_React$Component) {
11343
11511
  inherits(VideoSeriesListing, _React$Component);
11344
11512
 
@@ -11515,8 +11683,8 @@ var VideoSeriesListing = function (_React$Component) {
11515
11683
  docSeries.title,
11516
11684
  React__default.createElement(
11517
11685
  'span',
11518
- { style: { fontSize: '.9rem', color: 'grey', marginLeft: '1rem' } },
11519
- 'View Topic'
11686
+ { style: { fontSize: '.9rem', color: 'grey', marginLeft: '1rem', transform: 'translateY(-2px)' } },
11687
+ React__default.createElement(IoIosArrowForward, null)
11520
11688
  )
11521
11689
  )
11522
11690
  )
@@ -11763,11 +11931,74 @@ var LeftNav = function LeftNav(props) {
11763
11931
  );
11764
11932
  };
11765
11933
 
11934
+ var PageFilter = function PageFilter(props) {
11935
+ var getParams = props.getParams,
11936
+ filters = props.filters,
11937
+ defaultFilter = props.defaultFilter;
11938
+
11939
+ var _useState = React.useState(''),
11940
+ _useState2 = slicedToArray(_useState, 2),
11941
+ filter = _useState2[0],
11942
+ setFilter = _useState2[1];
11943
+
11944
+ var usePrevious = function usePrevious(value) {
11945
+ var ref = React.useRef();
11946
+ React.useEffect(function () {
11947
+ ref.current = value;
11948
+ });
11949
+ return ref.current;
11950
+ };
11951
+
11952
+ var sortAttr = usePrevious({ filter: filter });
11953
+
11954
+ React.useEffect(function () {
11955
+ if (sortAttr && sortAttr.filter !== filter) {
11956
+ getParams(filter);
11957
+ }
11958
+ }, [filter, sortAttr, getParams]);
11959
+
11960
+ if (filters.length) {
11961
+ return React__default.createElement(
11962
+ reactBootstrap.Dropdown,
11963
+ null,
11964
+ React__default.createElement(
11965
+ reactBootstrap.Dropdown.Toggle,
11966
+ { id: 'filter-dropdown' },
11967
+ filter || defaultFilter
11968
+ ),
11969
+ React__default.createElement(
11970
+ reactBootstrap.Dropdown.Menu,
11971
+ { className: 'select-dropdown' },
11972
+ filters.map(function (filter, index) {
11973
+ return React__default.createElement(
11974
+ reactBootstrap.Dropdown.Item,
11975
+ { key: index, onClick: function onClick() {
11976
+ return setFilter(filter);
11977
+ } },
11978
+ filter
11979
+ );
11980
+ })
11981
+ ),
11982
+ React__default.createElement(
11983
+ 'style',
11984
+ { jsx: true },
11985
+ '\n .select-dropdown > a {\n color: #8e8c84;\n }\n '
11986
+ )
11987
+ );
11988
+ }
11989
+ return null;
11990
+ };
11991
+
11766
11992
  var Column3 = function Column3(props) {
11767
11993
  var leftItems = props.leftItems,
11768
11994
  rightItems = props.rightItems,
11769
11995
  title = props.title,
11770
- website = props.website;
11996
+ website = props.website,
11997
+ showFilter = props.showFilter,
11998
+ getParams = props.getParams,
11999
+ filters = props.filters,
12000
+ defaultFilter = props.defaultFilter;
12001
+
11771
12002
 
11772
12003
  return React__default.createElement(
11773
12004
  'section',
@@ -11783,20 +12014,38 @@ var Column3 = function Column3(props) {
11783
12014
  React__default.createElement(
11784
12015
  Col,
11785
12016
  { md: true, className: 'middleCol', style: { maxWidth: '640px', marginTop: !title && '10px' } },
11786
- title && React__default.createElement(
12017
+ showFilter ? React__default.createElement(
12018
+ 'div',
12019
+ { className: 'title-wrap' },
12020
+ React__default.createElement(
12021
+ 'h1',
12022
+ { className: 'title' },
12023
+ title
12024
+ ),
12025
+ React__default.createElement(
12026
+ 'div',
12027
+ { className: 'filter-box' },
12028
+ React__default.createElement(PageFilter, { getParams: getParams, filters: filters, defaultFilter: defaultFilter })
12029
+ )
12030
+ ) : title && React__default.createElement(
11787
12031
  'h1',
11788
- null,
12032
+ { className: 'title' },
11789
12033
  title
11790
12034
  ),
11791
12035
  props.children
11792
12036
  ),
12037
+ React__default.createElement(
12038
+ 'style',
12039
+ { jsx: true },
12040
+ '\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 '
12041
+ ),
11793
12042
  React__default.createElement(
11794
12043
  Col,
11795
12044
  { xs: 12, className: 'rightCol' },
11796
12045
  website && website.conferenceBannerContent && React__default.createElement(ConferenceBanner, { website: website }),
11797
12046
  React__default.createElement(
11798
12047
  'div',
11799
- { style: { position: "sticky", top: "60px" } },
12048
+ { style: { position: 'sticky', top: '60px' } },
11800
12049
  rightItems && rightItems.map(function (row, index) {
11801
12050
  return React__default.createElement(
11802
12051
  'div',
@@ -11834,94 +12083,6 @@ var Header = function Header(props) {
11834
12083
  );
11835
12084
  };
11836
12085
 
11837
- var DefaultContext = {
11838
- color: undefined,
11839
- size: undefined,
11840
- className: undefined,
11841
- style: undefined,
11842
- attr: undefined
11843
- };
11844
- var IconContext = React.createContext && React.createContext(DefaultContext);
11845
-
11846
- var __assign$1 = undefined && undefined.__assign || function () {
11847
- __assign$1 = Object.assign || function (t) {
11848
- for (var s, i = 1, n = arguments.length; i < n; i++) {
11849
- s = arguments[i];
11850
-
11851
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
11852
- }
11853
-
11854
- return t;
11855
- };
11856
-
11857
- return __assign$1.apply(this, arguments);
11858
- };
11859
-
11860
- var __rest = undefined && undefined.__rest || function (s, e) {
11861
- var t = {};
11862
-
11863
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
11864
-
11865
- 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]];
11866
- return t;
11867
- };
11868
-
11869
- function Tree2Element(tree) {
11870
- return tree && tree.map(function (node, i) {
11871
- return React.createElement(node.tag, __assign$1({
11872
- key: i
11873
- }, node.attr), Tree2Element(node.child));
11874
- });
11875
- }
11876
-
11877
- function GenIcon(data) {
11878
- return function (props) {
11879
- return React.createElement(IconBase, __assign$1({
11880
- attr: __assign$1({}, data.attr)
11881
- }, props), Tree2Element(data.child));
11882
- };
11883
- }
11884
- function IconBase(props) {
11885
- var elem = function (conf) {
11886
- var computedSize = props.size || conf.size || "1em";
11887
- var className;
11888
- if (conf.className) className = conf.className;
11889
- if (props.className) className = (className ? className + ' ' : '') + props.className;
11890
-
11891
- var attr = props.attr,
11892
- title = props.title,
11893
- svgProps = __rest(props, ["attr", "title"]);
11894
-
11895
- return React.createElement("svg", __assign$1({
11896
- stroke: "currentColor",
11897
- fill: "currentColor",
11898
- strokeWidth: "0"
11899
- }, conf.attr, attr, svgProps, {
11900
- className: className,
11901
- style: __assign$1({
11902
- color: props.color || conf.color
11903
- }, conf.style, props.style),
11904
- height: computedSize,
11905
- width: computedSize,
11906
- xmlns: "http://www.w3.org/2000/svg"
11907
- }), title && React.createElement("title", null, title), props.children);
11908
- };
11909
-
11910
- return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {
11911
- return elem(conf);
11912
- }) : elem(DefaultContext);
11913
- }
11914
-
11915
- // THIS FILE IS AUTO GENERATED
11916
- var IoIosHome = function (props) {
11917
- 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);
11918
- };
11919
- IoIosHome.displayName = "IoIosHome";
11920
- var IoMdArrowDropdown = function (props) {
11921
- return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M128 192l128 128 128-128z"}}]})(props);
11922
- };
11923
- IoMdArrowDropdown.displayName = "IoMdArrowDropdown";
11924
-
11925
12086
  var AccordionPanel = function AccordionPanel(props) {
11926
12087
  var accordionClassName = props.accordionClassName,
11927
12088
  data = props.data;
@@ -12049,59 +12210,6 @@ var SocialShare = function SocialShare(props) {
12049
12210
  );
12050
12211
  };
12051
12212
 
12052
- var PageFilter = function PageFilter(props) {
12053
- var getParams = props.getParams,
12054
- filters = props.filters,
12055
- defaultFilter = props.defaultFilter;
12056
-
12057
- var _useState = React.useState(''),
12058
- _useState2 = slicedToArray(_useState, 2),
12059
- filter = _useState2[0],
12060
- setFilter = _useState2[1];
12061
-
12062
- var usePrevious = function usePrevious(value) {
12063
- var ref = React.useRef();
12064
- React.useEffect(function () {
12065
- ref.current = value;
12066
- });
12067
- return ref.current;
12068
- };
12069
-
12070
- var sortAttr = usePrevious({ filter: filter });
12071
-
12072
- React.useEffect(function () {
12073
- if (sortAttr && sortAttr.filter !== filter) {
12074
- getParams(filter);
12075
- }
12076
- }, [filter, sortAttr, getParams]);
12077
-
12078
- if (filters.length) {
12079
- return React__default.createElement(
12080
- reactBootstrap.Dropdown,
12081
- null,
12082
- React__default.createElement(
12083
- reactBootstrap.Dropdown.Toggle,
12084
- { id: 'filter-dropdown' },
12085
- filter || defaultFilter
12086
- ),
12087
- React__default.createElement(
12088
- reactBootstrap.Dropdown.Menu,
12089
- null,
12090
- filters.map(function (filter, index) {
12091
- return React__default.createElement(
12092
- reactBootstrap.Dropdown.Item,
12093
- { key: index, onClick: function onClick() {
12094
- return setFilter(filter);
12095
- } },
12096
- filter
12097
- );
12098
- })
12099
- )
12100
- );
12101
- }
12102
- return null;
12103
- };
12104
-
12105
12213
  var Search = function Search(props) {
12106
12214
  var _props$placeholder = props.placeholder,
12107
12215
  placeholder = _props$placeholder === undefined ? 'Search' : _props$placeholder,
@@ -13661,7 +13769,11 @@ var TemplateNormal = function TemplateNormal(props) {
13661
13769
  keywords = props.keywords,
13662
13770
  description = props.description,
13663
13771
  website = props.website,
13664
- horizontalAD = props.config.horizontalAD;
13772
+ horizontalAD = props.config.horizontalAD,
13773
+ showFilter = props.showFilter,
13774
+ filterParams = props.filterParams,
13775
+ filters = props.filters,
13776
+ defaultFilter = props.defaultFilter;
13665
13777
 
13666
13778
 
13667
13779
  var navigation = function navigation() {
@@ -13701,7 +13813,15 @@ var TemplateNormal = function TemplateNormal(props) {
13701
13813
  case '3':
13702
13814
  return React__default.createElement(
13703
13815
  Column3,
13704
- { title: title, leftItems: config.leftItems, rightItems: config.rightItems, website: website },
13816
+ {
13817
+ title: title,
13818
+ leftItems: config.leftItems,
13819
+ rightItems: config.rightItems,
13820
+ website: website,
13821
+ showFilter: showFilter,
13822
+ getParams: filterParams,
13823
+ filters: filters,
13824
+ defaultFilter: defaultFilter },
13705
13825
  props.children
13706
13826
  );
13707
13827
  default:
@@ -13848,7 +13968,12 @@ var FigureComponent = function FigureComponent(_ref) {
13848
13968
  link ? React__default.createElement(
13849
13969
  'a',
13850
13970
  { href: link, target: blank ? '_blank' : '_self' },
13851
- React__default.createElement(reactBootstrap.Figure.Image, { ref: imgElement, onLoad: loadImg, src: urlFor$1(node$$1, client).url(), alt: alt && alt }),
13971
+ React__default.createElement(reactBootstrap.Figure.Image, {
13972
+ ref: imgElement,
13973
+ onLoad: loadImg,
13974
+ src: urlFor$1(node$$1, client).url(),
13975
+ alt: alt && alt
13976
+ }),
13852
13977
  caption && React__default.createElement(
13853
13978
  reactBootstrap.Figure.Caption,
13854
13979
  { style: { width: captionWidth } },
@@ -13857,7 +13982,12 @@ var FigureComponent = function FigureComponent(_ref) {
13857
13982
  ) : React__default.createElement(
13858
13983
  React__default.Fragment,
13859
13984
  null,
13860
- React__default.createElement(reactBootstrap.Figure.Image, { ref: imgElement, onLoad: loadImg, src: urlFor$1(node$$1, client).url(), alt: alt && alt }),
13985
+ React__default.createElement(reactBootstrap.Figure.Image, {
13986
+ ref: imgElement,
13987
+ onLoad: loadImg,
13988
+ src: urlFor$1(node$$1, client).url(),
13989
+ alt: alt && alt
13990
+ }),
13861
13991
  caption && React__default.createElement(
13862
13992
  reactBootstrap.Figure.Caption,
13863
13993
  { style: { width: captionWidth } },
@@ -13903,7 +14033,11 @@ var Slideshow = function Slideshow(_ref) {
13903
14033
  return React__default.createElement(
13904
14034
  reactBootstrap.Carousel.Item,
13905
14035
  { key: slide._key },
13906
- React__default.createElement('img', { src: slide.asset && urlFor$2(slide.asset, builder).url(), alt: slide.alt && slide.alt, style: { width: '100%' } }),
14036
+ React__default.createElement('img', {
14037
+ src: slide.asset && urlFor$2(slide.asset, builder).url(),
14038
+ alt: slide.alt && slide.alt,
14039
+ style: { width: '100%' }
14040
+ }),
13907
14041
  slide.caption && React__default.createElement(
13908
14042
  'p',
13909
14043
  { className: 'p-2' },
@@ -17522,7 +17656,10 @@ var Media$1 = function Media$$1(_ref) {
17522
17656
  React__default.createElement(
17523
17657
  'a',
17524
17658
  { href: uploadDoc.asset.url, target: blank ? '_blank' : '_self' },
17525
- React__default.createElement(reactBootstrap.Figure.Image, { src: urlFor(poster.asset).url(), fluid: true }),
17659
+ React__default.createElement(reactBootstrap.Figure.Image, {
17660
+ src: urlFor(poster.asset).url(),
17661
+ fluid: true
17662
+ }),
17526
17663
  caption && React__default.createElement(
17527
17664
  reactBootstrap.Figure.Caption,
17528
17665
  null,
@@ -17534,7 +17671,9 @@ var Media$1 = function Media$$1(_ref) {
17534
17671
  return React__default.createElement(
17535
17672
  reactBootstrap.Figure,
17536
17673
  { className: 'd-block text-center mb-3' },
17537
- React__default.createElement(reactBootstrap.Figure.Image, { src: urlFor(poster.asset).url() }),
17674
+ React__default.createElement(reactBootstrap.Figure.Image, {
17675
+ src: urlFor(poster.asset).url()
17676
+ }),
17538
17677
  caption && React__default.createElement(
17539
17678
  reactBootstrap.Figure.Caption,
17540
17679
  null,
@@ -20480,9 +20619,18 @@ var urlFor$3 = function urlFor(source, client) {
20480
20619
  return builder.image(source);
20481
20620
  };
20482
20621
 
20622
+ var renderCardImage$1 = function renderCardImage(thumbnail, client, imageHeight, imageWidth) {
20623
+ var url = urlFor$3(thumbnail, client);
20624
+ if (imageHeight) url = url.height(imageHeight);
20625
+ if (imageWidth) url = url.width(imageWidth);
20626
+ return url.url();
20627
+ };
20628
+
20483
20629
  var Hero = function Hero(_ref) {
20484
20630
  var data = _ref.data,
20485
- client = _ref.client;
20631
+ client = _ref.client,
20632
+ imageHeight = _ref.imageHeight,
20633
+ imageWidth = _ref.imageWidth;
20486
20634
  var title = data.title,
20487
20635
  summary = data.summary,
20488
20636
  thumbnail = data.thumbnail,
@@ -20502,7 +20650,7 @@ var Hero = function Hero(_ref) {
20502
20650
  { className: 'h4' },
20503
20651
  title
20504
20652
  ),
20505
- thumbnail && React__default.createElement(reactBootstrap.Card.Img, { src: urlFor$3(thumbnail, client).url() }),
20653
+ thumbnail && client && React__default.createElement(reactBootstrap.Card.Img, { src: renderCardImage$1(thumbnail, client, imageHeight, imageWidth) }),
20506
20654
  summary && React__default.createElement(
20507
20655
  reactBootstrap.Card.Footer,
20508
20656
  { className: 'h6' },