@mjhls/mjh-framework 1.0.113 → 1.0.114

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(
@@ -11756,11 +11832,74 @@ var LeftNav = function LeftNav(props) {
11756
11832
  );
11757
11833
  };
11758
11834
 
11835
+ var PageFilter = function PageFilter(props) {
11836
+ var getParams = props.getParams,
11837
+ filters = props.filters,
11838
+ defaultFilter = props.defaultFilter;
11839
+
11840
+ var _useState = useState(''),
11841
+ _useState2 = slicedToArray(_useState, 2),
11842
+ filter = _useState2[0],
11843
+ setFilter = _useState2[1];
11844
+
11845
+ var usePrevious = function usePrevious(value) {
11846
+ var ref = useRef();
11847
+ useEffect(function () {
11848
+ ref.current = value;
11849
+ });
11850
+ return ref.current;
11851
+ };
11852
+
11853
+ var sortAttr = usePrevious({ filter: filter });
11854
+
11855
+ useEffect(function () {
11856
+ if (sortAttr && sortAttr.filter !== filter) {
11857
+ getParams(filter);
11858
+ }
11859
+ }, [filter, sortAttr, getParams]);
11860
+
11861
+ if (filters.length) {
11862
+ return React__default.createElement(
11863
+ Dropdown,
11864
+ null,
11865
+ React__default.createElement(
11866
+ Dropdown.Toggle,
11867
+ { id: 'filter-dropdown' },
11868
+ filter || defaultFilter
11869
+ ),
11870
+ React__default.createElement(
11871
+ Dropdown.Menu,
11872
+ { className: 'select-dropdown' },
11873
+ filters.map(function (filter, index) {
11874
+ return React__default.createElement(
11875
+ Dropdown.Item,
11876
+ { key: index, onClick: function onClick() {
11877
+ return setFilter(filter);
11878
+ } },
11879
+ filter
11880
+ );
11881
+ })
11882
+ ),
11883
+ React__default.createElement(
11884
+ 'style',
11885
+ { jsx: true },
11886
+ '\n .select-dropdown > a {\n color: #8e8c84;\n }\n '
11887
+ )
11888
+ );
11889
+ }
11890
+ return null;
11891
+ };
11892
+
11759
11893
  var Column3 = function Column3(props) {
11760
11894
  var leftItems = props.leftItems,
11761
11895
  rightItems = props.rightItems,
11762
11896
  title = props.title,
11763
- website = props.website;
11897
+ website = props.website,
11898
+ showFilter = props.showFilter,
11899
+ getParams = props.getParams,
11900
+ filters = props.filters,
11901
+ defaultFilter = props.defaultFilter;
11902
+
11764
11903
 
11765
11904
  return React__default.createElement(
11766
11905
  'section',
@@ -11776,20 +11915,38 @@ var Column3 = function Column3(props) {
11776
11915
  React__default.createElement(
11777
11916
  Col,
11778
11917
  { md: true, className: 'middleCol', style: { maxWidth: '640px', marginTop: !title && '10px' } },
11779
- title && React__default.createElement(
11918
+ showFilter ? React__default.createElement(
11919
+ 'div',
11920
+ { className: 'title-wrap' },
11921
+ React__default.createElement(
11922
+ 'h1',
11923
+ { className: 'title' },
11924
+ title
11925
+ ),
11926
+ React__default.createElement(
11927
+ 'div',
11928
+ { className: 'filter-box' },
11929
+ React__default.createElement(PageFilter, { getParams: getParams, filters: filters, defaultFilter: defaultFilter })
11930
+ )
11931
+ ) : title && React__default.createElement(
11780
11932
  'h1',
11781
- null,
11933
+ { className: 'title' },
11782
11934
  title
11783
11935
  ),
11784
11936
  props.children
11785
11937
  ),
11938
+ React__default.createElement(
11939
+ 'style',
11940
+ { jsx: true },
11941
+ '\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 '
11942
+ ),
11786
11943
  React__default.createElement(
11787
11944
  Col,
11788
11945
  { xs: 12, className: 'rightCol' },
11789
11946
  website && website.conferenceBannerContent && React__default.createElement(ConferenceBanner, { website: website }),
11790
11947
  React__default.createElement(
11791
11948
  'div',
11792
- { style: { position: "sticky", top: "60px" } },
11949
+ { style: { position: 'sticky', top: '60px' } },
11793
11950
  rightItems && rightItems.map(function (row, index) {
11794
11951
  return React__default.createElement(
11795
11952
  'div',
@@ -12042,59 +12199,6 @@ var SocialShare = function SocialShare(props) {
12042
12199
  );
12043
12200
  };
12044
12201
 
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
12202
  var Search = function Search(props) {
12099
12203
  var _props$placeholder = props.placeholder,
12100
12204
  placeholder = _props$placeholder === undefined ? 'Search' : _props$placeholder,
@@ -13654,7 +13758,11 @@ var TemplateNormal = function TemplateNormal(props) {
13654
13758
  keywords = props.keywords,
13655
13759
  description = props.description,
13656
13760
  website = props.website,
13657
- horizontalAD = props.config.horizontalAD;
13761
+ horizontalAD = props.config.horizontalAD,
13762
+ showFilter = props.showFilter,
13763
+ filterParams = props.filterParams,
13764
+ filters = props.filters,
13765
+ defaultFilter = props.defaultFilter;
13658
13766
 
13659
13767
 
13660
13768
  var navigation = function navigation() {
@@ -13694,7 +13802,15 @@ var TemplateNormal = function TemplateNormal(props) {
13694
13802
  case '3':
13695
13803
  return React__default.createElement(
13696
13804
  Column3,
13697
- { title: title, leftItems: config.leftItems, rightItems: config.rightItems, website: website },
13805
+ {
13806
+ title: title,
13807
+ leftItems: config.leftItems,
13808
+ rightItems: config.rightItems,
13809
+ website: website,
13810
+ showFilter: showFilter,
13811
+ getParams: filterParams,
13812
+ filters: filters,
13813
+ defaultFilter: defaultFilter },
13698
13814
  props.children
13699
13815
  );
13700
13816
  default:
@@ -13841,7 +13957,12 @@ var FigureComponent = function FigureComponent(_ref) {
13841
13957
  link ? React__default.createElement(
13842
13958
  'a',
13843
13959
  { 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 }),
13960
+ React__default.createElement(Figure.Image, {
13961
+ ref: imgElement,
13962
+ onLoad: loadImg,
13963
+ src: urlFor$1(node$$1, client).url(),
13964
+ alt: alt && alt
13965
+ }),
13845
13966
  caption && React__default.createElement(
13846
13967
  Figure.Caption,
13847
13968
  { style: { width: captionWidth } },
@@ -13850,7 +13971,12 @@ var FigureComponent = function FigureComponent(_ref) {
13850
13971
  ) : React__default.createElement(
13851
13972
  React__default.Fragment,
13852
13973
  null,
13853
- React__default.createElement(Figure.Image, { ref: imgElement, onLoad: loadImg, src: urlFor$1(node$$1, client).url(), alt: alt && alt }),
13974
+ React__default.createElement(Figure.Image, {
13975
+ ref: imgElement,
13976
+ onLoad: loadImg,
13977
+ src: urlFor$1(node$$1, client).url(),
13978
+ alt: alt && alt
13979
+ }),
13854
13980
  caption && React__default.createElement(
13855
13981
  Figure.Caption,
13856
13982
  { style: { width: captionWidth } },
@@ -13896,7 +14022,11 @@ var Slideshow = function Slideshow(_ref) {
13896
14022
  return React__default.createElement(
13897
14023
  Carousel.Item,
13898
14024
  { 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%' } }),
14025
+ React__default.createElement('img', {
14026
+ src: slide.asset && urlFor$2(slide.asset, builder).url(),
14027
+ alt: slide.alt && slide.alt,
14028
+ style: { width: '100%' }
14029
+ }),
13900
14030
  slide.caption && React__default.createElement(
13901
14031
  'p',
13902
14032
  { className: 'p-2' },
@@ -17515,7 +17645,10 @@ var Media$2 = function Media$$1(_ref) {
17515
17645
  React__default.createElement(
17516
17646
  'a',
17517
17647
  { href: uploadDoc.asset.url, target: blank ? '_blank' : '_self' },
17518
- React__default.createElement(Figure.Image, { src: urlFor(poster.asset).url(), fluid: true }),
17648
+ React__default.createElement(Figure.Image, {
17649
+ src: urlFor(poster.asset).url(),
17650
+ fluid: true
17651
+ }),
17519
17652
  caption && React__default.createElement(
17520
17653
  Figure.Caption,
17521
17654
  null,
@@ -17527,7 +17660,9 @@ var Media$2 = function Media$$1(_ref) {
17527
17660
  return React__default.createElement(
17528
17661
  Figure,
17529
17662
  { className: 'd-block text-center mb-3' },
17530
- React__default.createElement(Figure.Image, { src: urlFor(poster.asset).url() }),
17663
+ React__default.createElement(Figure.Image, {
17664
+ src: urlFor(poster.asset).url()
17665
+ }),
17531
17666
  caption && React__default.createElement(
17532
17667
  Figure.Caption,
17533
17668
  null,
@@ -20473,9 +20608,18 @@ var urlFor$3 = function urlFor(source, client) {
20473
20608
  return builder.image(source);
20474
20609
  };
20475
20610
 
20611
+ var renderCardImage$1 = function renderCardImage(thumbnail, client, imageHeight, imageWidth) {
20612
+ var url = urlFor$3(thumbnail, client);
20613
+ if (imageHeight) url = url.height(imageHeight);
20614
+ if (imageWidth) url = url.width(imageWidth);
20615
+ return url.url();
20616
+ };
20617
+
20476
20618
  var Hero = function Hero(_ref) {
20477
20619
  var data = _ref.data,
20478
- client = _ref.client;
20620
+ client = _ref.client,
20621
+ imageHeight = _ref.imageHeight,
20622
+ imageWidth = _ref.imageWidth;
20479
20623
  var title = data.title,
20480
20624
  summary = data.summary,
20481
20625
  thumbnail = data.thumbnail,
@@ -20495,7 +20639,7 @@ var Hero = function Hero(_ref) {
20495
20639
  { className: 'h4' },
20496
20640
  title
20497
20641
  ),
20498
- thumbnail && React__default.createElement(Card$1.Img, { src: urlFor$3(thumbnail, client).url() }),
20642
+ thumbnail && client && React__default.createElement(Card$1.Img, { src: renderCardImage$1(thumbnail, client, imageHeight, imageWidth) }),
20499
20643
  summary && React__default.createElement(
20500
20644
  Card$1.Footer,
20501
20645
  { className: 'h6' },