@mjhls/mjh-framework 1.0.112 → 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.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(
@@ -11763,11 +11839,74 @@ var LeftNav = function LeftNav(props) {
11763
11839
  );
11764
11840
  };
11765
11841
 
11842
+ var PageFilter = function PageFilter(props) {
11843
+ var getParams = props.getParams,
11844
+ filters = props.filters,
11845
+ defaultFilter = props.defaultFilter;
11846
+
11847
+ var _useState = React.useState(''),
11848
+ _useState2 = slicedToArray(_useState, 2),
11849
+ filter = _useState2[0],
11850
+ setFilter = _useState2[1];
11851
+
11852
+ var usePrevious = function usePrevious(value) {
11853
+ var ref = React.useRef();
11854
+ React.useEffect(function () {
11855
+ ref.current = value;
11856
+ });
11857
+ return ref.current;
11858
+ };
11859
+
11860
+ var sortAttr = usePrevious({ filter: filter });
11861
+
11862
+ React.useEffect(function () {
11863
+ if (sortAttr && sortAttr.filter !== filter) {
11864
+ getParams(filter);
11865
+ }
11866
+ }, [filter, sortAttr, getParams]);
11867
+
11868
+ if (filters.length) {
11869
+ return React__default.createElement(
11870
+ reactBootstrap.Dropdown,
11871
+ null,
11872
+ React__default.createElement(
11873
+ reactBootstrap.Dropdown.Toggle,
11874
+ { id: 'filter-dropdown' },
11875
+ filter || defaultFilter
11876
+ ),
11877
+ React__default.createElement(
11878
+ reactBootstrap.Dropdown.Menu,
11879
+ { className: 'select-dropdown' },
11880
+ filters.map(function (filter, index) {
11881
+ return React__default.createElement(
11882
+ reactBootstrap.Dropdown.Item,
11883
+ { key: index, onClick: function onClick() {
11884
+ return setFilter(filter);
11885
+ } },
11886
+ filter
11887
+ );
11888
+ })
11889
+ ),
11890
+ React__default.createElement(
11891
+ 'style',
11892
+ { jsx: true },
11893
+ '\n .select-dropdown > a {\n color: #8e8c84;\n }\n '
11894
+ )
11895
+ );
11896
+ }
11897
+ return null;
11898
+ };
11899
+
11766
11900
  var Column3 = function Column3(props) {
11767
11901
  var leftItems = props.leftItems,
11768
11902
  rightItems = props.rightItems,
11769
11903
  title = props.title,
11770
- website = props.website;
11904
+ website = props.website,
11905
+ showFilter = props.showFilter,
11906
+ getParams = props.getParams,
11907
+ filters = props.filters,
11908
+ defaultFilter = props.defaultFilter;
11909
+
11771
11910
 
11772
11911
  return React__default.createElement(
11773
11912
  'section',
@@ -11783,20 +11922,38 @@ var Column3 = function Column3(props) {
11783
11922
  React__default.createElement(
11784
11923
  Col,
11785
11924
  { md: true, className: 'middleCol', style: { maxWidth: '640px', marginTop: !title && '10px' } },
11786
- title && React__default.createElement(
11925
+ showFilter ? React__default.createElement(
11926
+ 'div',
11927
+ { className: 'title-wrap' },
11928
+ React__default.createElement(
11929
+ 'h1',
11930
+ { className: 'title' },
11931
+ title
11932
+ ),
11933
+ React__default.createElement(
11934
+ 'div',
11935
+ { className: 'filter-box' },
11936
+ React__default.createElement(PageFilter, { getParams: getParams, filters: filters, defaultFilter: defaultFilter })
11937
+ )
11938
+ ) : title && React__default.createElement(
11787
11939
  'h1',
11788
- null,
11940
+ { className: 'title' },
11789
11941
  title
11790
11942
  ),
11791
11943
  props.children
11792
11944
  ),
11945
+ React__default.createElement(
11946
+ 'style',
11947
+ { jsx: true },
11948
+ '\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 '
11949
+ ),
11793
11950
  React__default.createElement(
11794
11951
  Col,
11795
11952
  { xs: 12, className: 'rightCol' },
11796
11953
  website && website.conferenceBannerContent && React__default.createElement(ConferenceBanner, { website: website }),
11797
11954
  React__default.createElement(
11798
11955
  'div',
11799
- { style: { position: "sticky", top: "60px" } },
11956
+ { style: { position: 'sticky', top: '60px' } },
11800
11957
  rightItems && rightItems.map(function (row, index) {
11801
11958
  return React__default.createElement(
11802
11959
  'div',
@@ -12049,59 +12206,6 @@ var SocialShare = function SocialShare(props) {
12049
12206
  );
12050
12207
  };
12051
12208
 
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
12209
  var Search = function Search(props) {
12106
12210
  var _props$placeholder = props.placeholder,
12107
12211
  placeholder = _props$placeholder === undefined ? 'Search' : _props$placeholder,
@@ -12537,6 +12641,10 @@ var MdMouse = function (props) {
12537
12641
  return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 24 24"},"child":[{"tag":"path","attr":{"d":"M13 1.07V9h7c0-4.08-3.05-7.44-7-7.93zM4 15c0 4.42 3.58 8 8 8s8-3.58 8-8v-4H4v4zm7-13.93C7.05 1.56 4 4.92 4 9h7V1.07z"}}]})(props);
12538
12642
  };
12539
12643
  MdMouse.displayName = "MdMouse";
12644
+ var MdPictureAsPdf = function (props) {
12645
+ return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 24 24"},"child":[{"tag":"path","attr":{"d":"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8.5 7.5c0 .83-.67 1.5-1.5 1.5H9v2H7.5V7H10c.83 0 1.5.67 1.5 1.5v1zm5 2c0 .83-.67 1.5-1.5 1.5h-2.5V7H15c.83 0 1.5.67 1.5 1.5v3zm4-3H19v1h1.5V11H19v2h-1.5V7h3v1.5zM9 9.5h1v-1H9v1zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm10 5.5h1v-3h-1v3z"}}]})(props);
12646
+ };
12647
+ MdPictureAsPdf.displayName = "MdPictureAsPdf";
12540
12648
 
12541
12649
  var NavNormal = function NavNormal(props) {
12542
12650
  var logo = props.logo,
@@ -13657,7 +13765,11 @@ var TemplateNormal = function TemplateNormal(props) {
13657
13765
  keywords = props.keywords,
13658
13766
  description = props.description,
13659
13767
  website = props.website,
13660
- horizontalAD = props.config.horizontalAD;
13768
+ horizontalAD = props.config.horizontalAD,
13769
+ showFilter = props.showFilter,
13770
+ filterParams = props.filterParams,
13771
+ filters = props.filters,
13772
+ defaultFilter = props.defaultFilter;
13661
13773
 
13662
13774
 
13663
13775
  var navigation = function navigation() {
@@ -13697,7 +13809,15 @@ var TemplateNormal = function TemplateNormal(props) {
13697
13809
  case '3':
13698
13810
  return React__default.createElement(
13699
13811
  Column3,
13700
- { title: title, leftItems: config.leftItems, rightItems: config.rightItems, website: website },
13812
+ {
13813
+ title: title,
13814
+ leftItems: config.leftItems,
13815
+ rightItems: config.rightItems,
13816
+ website: website,
13817
+ showFilter: showFilter,
13818
+ getParams: filterParams,
13819
+ filters: filters,
13820
+ defaultFilter: defaultFilter },
13701
13821
  props.children
13702
13822
  );
13703
13823
  default:
@@ -13844,7 +13964,12 @@ var FigureComponent = function FigureComponent(_ref) {
13844
13964
  link ? React__default.createElement(
13845
13965
  'a',
13846
13966
  { href: link, target: blank ? '_blank' : '_self' },
13847
- React__default.createElement(reactBootstrap.Figure.Image, { ref: imgElement, onLoad: loadImg, src: urlFor$1(node$$1, client).url(), alt: alt && alt }),
13967
+ React__default.createElement(reactBootstrap.Figure.Image, {
13968
+ ref: imgElement,
13969
+ onLoad: loadImg,
13970
+ src: urlFor$1(node$$1, client).url(),
13971
+ alt: alt && alt
13972
+ }),
13848
13973
  caption && React__default.createElement(
13849
13974
  reactBootstrap.Figure.Caption,
13850
13975
  { style: { width: captionWidth } },
@@ -13853,7 +13978,12 @@ var FigureComponent = function FigureComponent(_ref) {
13853
13978
  ) : React__default.createElement(
13854
13979
  React__default.Fragment,
13855
13980
  null,
13856
- React__default.createElement(reactBootstrap.Figure.Image, { ref: imgElement, onLoad: loadImg, src: urlFor$1(node$$1, client).url(), alt: alt && alt }),
13981
+ React__default.createElement(reactBootstrap.Figure.Image, {
13982
+ ref: imgElement,
13983
+ onLoad: loadImg,
13984
+ src: urlFor$1(node$$1, client).url(),
13985
+ alt: alt && alt
13986
+ }),
13857
13987
  caption && React__default.createElement(
13858
13988
  reactBootstrap.Figure.Caption,
13859
13989
  { style: { width: captionWidth } },
@@ -13899,7 +14029,11 @@ var Slideshow = function Slideshow(_ref) {
13899
14029
  return React__default.createElement(
13900
14030
  reactBootstrap.Carousel.Item,
13901
14031
  { key: slide._key },
13902
- React__default.createElement('img', { src: slide.asset && urlFor$2(slide.asset, builder).url(), alt: slide.alt && slide.alt, style: { width: '100%' } }),
14032
+ React__default.createElement('img', {
14033
+ src: slide.asset && urlFor$2(slide.asset, builder).url(),
14034
+ alt: slide.alt && slide.alt,
14035
+ style: { width: '100%' }
14036
+ }),
13903
14037
  slide.caption && React__default.createElement(
13904
14038
  'p',
13905
14039
  { className: 'p-2' },
@@ -17518,7 +17652,10 @@ var Media$1 = function Media$$1(_ref) {
17518
17652
  React__default.createElement(
17519
17653
  'a',
17520
17654
  { href: uploadDoc.asset.url, target: blank ? '_blank' : '_self' },
17521
- React__default.createElement(reactBootstrap.Figure.Image, { src: urlFor(poster.asset).url(), fluid: true }),
17655
+ React__default.createElement(reactBootstrap.Figure.Image, {
17656
+ src: urlFor(poster.asset).url(),
17657
+ fluid: true
17658
+ }),
17522
17659
  caption && React__default.createElement(
17523
17660
  reactBootstrap.Figure.Caption,
17524
17661
  null,
@@ -17530,7 +17667,9 @@ var Media$1 = function Media$$1(_ref) {
17530
17667
  return React__default.createElement(
17531
17668
  reactBootstrap.Figure,
17532
17669
  { className: 'd-block text-center mb-3' },
17533
- React__default.createElement(reactBootstrap.Figure.Image, { src: urlFor(poster.asset).url() }),
17670
+ React__default.createElement(reactBootstrap.Figure.Image, {
17671
+ src: urlFor(poster.asset).url()
17672
+ }),
17534
17673
  caption && React__default.createElement(
17535
17674
  reactBootstrap.Figure.Caption,
17536
17675
  null,
@@ -20476,9 +20615,18 @@ var urlFor$3 = function urlFor(source, client) {
20476
20615
  return builder.image(source);
20477
20616
  };
20478
20617
 
20618
+ var renderCardImage$1 = function renderCardImage(thumbnail, client, imageHeight, imageWidth) {
20619
+ var url = urlFor$3(thumbnail, client);
20620
+ if (imageHeight) url = url.height(imageHeight);
20621
+ if (imageWidth) url = url.width(imageWidth);
20622
+ return url.url();
20623
+ };
20624
+
20479
20625
  var Hero = function Hero(_ref) {
20480
20626
  var data = _ref.data,
20481
- client = _ref.client;
20627
+ client = _ref.client,
20628
+ imageHeight = _ref.imageHeight,
20629
+ imageWidth = _ref.imageWidth;
20482
20630
  var title = data.title,
20483
20631
  summary = data.summary,
20484
20632
  thumbnail = data.thumbnail,
@@ -20498,7 +20646,7 @@ var Hero = function Hero(_ref) {
20498
20646
  { className: 'h4' },
20499
20647
  title
20500
20648
  ),
20501
- thumbnail && React__default.createElement(reactBootstrap.Card.Img, { src: urlFor$3(thumbnail, client).url() }),
20649
+ thumbnail && client && React__default.createElement(reactBootstrap.Card.Img, { src: renderCardImage$1(thumbnail, client, imageHeight, imageWidth) }),
20502
20650
  summary && React__default.createElement(
20503
20651
  reactBootstrap.Card.Footer,
20504
20652
  { className: 'h6' },
@@ -20638,6 +20786,25 @@ var AlphabeticList = function AlphabeticList(_ref) {
20638
20786
  );
20639
20787
  };
20640
20788
 
20789
+ var PdfDownload = function PdfDownload(props) {
20790
+ console.log(props.issueInfo.asset.url);
20791
+
20792
+ return React__default.createElement(
20793
+ 'div',
20794
+ { className: 'pdf-download', style: { textAlign: 'center', padding: '1rem 0', borderTop: '1px solid #eee', marginTop: '1rem' } },
20795
+ React__default.createElement(
20796
+ 'a',
20797
+ { href: props.issueInfo.asset.url, target: '_blank' },
20798
+ React__default.createElement(MdPictureAsPdf, { style: { fontSize: '65px', color: '#ff0000' } }),
20799
+ React__default.createElement(
20800
+ 'span',
20801
+ null,
20802
+ 'Click to download this publication issue.'
20803
+ )
20804
+ )
20805
+ );
20806
+ };
20807
+
20641
20808
  exports.DeckContent = ContentCard;
20642
20809
  exports.GridContent = GridContent$1;
20643
20810
  exports.DeckQueue = Queue;
@@ -20670,4 +20837,5 @@ exports.Breadcrumbs = Breadcrumbs;
20670
20837
  exports.SetCookie = SetCookie;
20671
20838
  exports.Hero = Hero;
20672
20839
  exports.AlphabeticList = AlphabeticList;
20840
+ exports.PdfDownload = PdfDownload;
20673
20841
  //# sourceMappingURL=index.js.map