@mjhls/mjh-framework 1.0.907 → 1.0.908-ris-export-v1

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.
Files changed (74) hide show
  1. package/README.md +168 -168
  2. package/dist/cjs/AlgoliaSearch.js +131 -15
  3. package/dist/cjs/AuthWrapper.js +1 -1
  4. package/dist/cjs/ConferenceArticleCard.js +15 -15
  5. package/dist/cjs/ContentCardPaginated.js +1 -2
  6. package/dist/cjs/DeckContent.js +8 -8
  7. package/dist/cjs/DeckQueuePaginated.js +1 -2
  8. package/dist/cjs/EventsDeck.js +17 -17
  9. package/dist/cjs/Feature.js +16 -6
  10. package/dist/cjs/GridContentPaginated.js +1 -2
  11. package/dist/cjs/HamMagazine.js +9 -9
  12. package/dist/cjs/IssueLanding.js +29 -29
  13. package/dist/cjs/KMTracker.js +15 -15
  14. package/dist/cjs/MasterDeck.js +8 -8
  15. package/dist/cjs/MasterDeckPaginated.js +9 -10
  16. package/dist/cjs/{MediaSeriesCard-d46317f0.js → MediaSeriesCard-68ae756e.js} +1 -1
  17. package/dist/cjs/MediaSeriesLanding.js +6 -6
  18. package/dist/cjs/MediaSeriesLandingPaginated.js +7 -8
  19. package/dist/cjs/NavMagazine.js +10 -10
  20. package/dist/cjs/NavNative.js +9 -9
  21. package/dist/cjs/Pagination-42f92f7c.js +97 -0
  22. package/dist/cjs/PartnerDetailListingPaginated.js +1 -2
  23. package/dist/cjs/PublicationLanding.js +26 -26
  24. package/dist/cjs/QueueDeckExpandedPaginated.js +1 -2
  25. package/dist/cjs/RelatedContent.js +28 -28
  26. package/dist/cjs/RelatedTopicsDropdown.js +10 -10
  27. package/dist/cjs/SeriesListingDeck.js +1 -1
  28. package/dist/cjs/{SeriesSlider-ba0c5d1a.js → SeriesSlider-de93a303.js} +4 -4
  29. package/dist/cjs/SideFooter.js +2 -2
  30. package/dist/cjs/VideoSeriesCard.js +1 -1
  31. package/dist/cjs/View.js +78 -12
  32. package/dist/cjs/YoutubeGroup.js +4 -4
  33. package/dist/cjs/getQuery.js +2 -2
  34. package/dist/cjs/{getTargeting-9d509319.js → getTargeting-6d59cc5b.js} +9 -9
  35. package/dist/cjs/getTargeting.js +1 -1
  36. package/dist/cjs/index.js +2 -2
  37. package/dist/esm/AlgoliaSearch.js +132 -16
  38. package/dist/esm/AuthWrapper.js +1 -1
  39. package/dist/esm/ConferenceArticleCard.js +15 -15
  40. package/dist/esm/ContentCardPaginated.js +1 -2
  41. package/dist/esm/DeckContent.js +8 -8
  42. package/dist/esm/DeckQueuePaginated.js +1 -2
  43. package/dist/esm/EventsDeck.js +17 -17
  44. package/dist/esm/Feature.js +16 -6
  45. package/dist/esm/GridContentPaginated.js +1 -2
  46. package/dist/esm/HamMagazine.js +9 -9
  47. package/dist/esm/IssueLanding.js +29 -29
  48. package/dist/esm/KMTracker.js +15 -15
  49. package/dist/esm/MasterDeck.js +8 -8
  50. package/dist/esm/MasterDeckPaginated.js +9 -10
  51. package/dist/esm/{MediaSeriesCard-b1845b19.js → MediaSeriesCard-ec988ce9.js} +1 -1
  52. package/dist/esm/MediaSeriesLanding.js +6 -6
  53. package/dist/esm/MediaSeriesLandingPaginated.js +7 -8
  54. package/dist/esm/NavMagazine.js +10 -10
  55. package/dist/esm/NavNative.js +9 -9
  56. package/dist/esm/Pagination-484b86c5.js +90 -0
  57. package/dist/esm/PartnerDetailListingPaginated.js +1 -2
  58. package/dist/esm/PublicationLanding.js +26 -26
  59. package/dist/esm/QueueDeckExpandedPaginated.js +1 -2
  60. package/dist/esm/RelatedContent.js +28 -28
  61. package/dist/esm/RelatedTopicsDropdown.js +10 -10
  62. package/dist/esm/SeriesListingDeck.js +1 -1
  63. package/dist/esm/{SeriesSlider-45adb8dc.js → SeriesSlider-98ad6d97.js} +4 -4
  64. package/dist/esm/SideFooter.js +2 -2
  65. package/dist/esm/VideoSeriesCard.js +1 -1
  66. package/dist/esm/View.js +78 -12
  67. package/dist/esm/YoutubeGroup.js +4 -4
  68. package/dist/esm/getQuery.js +2 -2
  69. package/dist/esm/{getTargeting-4061f839.js → getTargeting-36031a00.js} +9 -9
  70. package/dist/esm/getTargeting.js +1 -1
  71. package/dist/esm/index.js +2 -2
  72. package/package.json +114 -112
  73. package/dist/cjs/Pagination-885dcfbd.js +0 -90
  74. package/dist/esm/Pagination-59436882.js +0 -82
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var _commonjsHelpers = require('./_commonjsHelpers-06173234.js');
5
+ var Button = require('react-bootstrap/Button');
6
+ var index_esm = require('./index.esm-d51c9ac6.js');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
11
+ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
12
+
13
+ var reactPaginate = _commonjsHelpers.createCommonjsModule(function (module, exports) {
14
+ !function(e,a){module.exports=a(React__default['default']);}(_commonjsHelpers.commonjsGlobal,(function(e){return function(e){var a={};function t(r){if(a[r])return a[r].exports;var n=a[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}return t.m=e,t.c=a,t.d=function(e,a,r){t.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:r});},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0});},t.t=function(e,a){if(1&a&&(e=t(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var n in e)t.d(r,n,function(a){return e[a]}.bind(null,n));return r},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},t.p="",t(t.s=4)}([function(e,a,t){e.exports=t(2)();},function(a,t){a.exports=e;},function(e,a,t){var r=t(3);function n(){}function i(){}i.resetWarningCache=n,e.exports=function(){function e(e,a,t,n,i,s){if(s!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function a(){return e}e.isRequired=e;var t={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:a,element:e,elementType:e,instanceOf:a,node:e,objectOf:a,oneOf:a,oneOfType:a,shape:a,exact:a,checkPropTypes:i,resetWarningCache:n};return t.PropTypes=t,t};},function(e,a,t){e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";},function(e,a,t){t.r(a);var r=t(1),n=t.n(r),i=t(0),s=t.n(i);function l(){return (l=Object.assign||function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);}return e}).apply(this,arguments)}var o=function(e){var a=e.pageClassName,t=e.pageLinkClassName,r=e.page,i=e.selected,s=e.activeClassName,o=e.activeLinkClassName,u=e.getEventListener,c=e.pageSelectedHandler,p=e.href,f=e.extraAriaContext,g=e.pageLabelBuilder,d=e.ariaLabel||"Page "+r+(f?" "+f:""),b=null;return i&&(b="page",d=e.ariaLabel||"Page "+r+" is your current page",a=void 0!==a?a+" "+s:s,void 0!==t?void 0!==o&&(t=t+" "+o):t=o),n.a.createElement("li",{className:a},n.a.createElement("a",l({role:"button",className:t,href:p,tabIndex:"0","aria-label":d,"aria-current":b,onKeyPress:c},u(c)),g(r)))};o.propTypes={pageSelectedHandler:s.a.func.isRequired,selected:s.a.bool.isRequired,pageClassName:s.a.string,pageLinkClassName:s.a.string,activeClassName:s.a.string,activeLinkClassName:s.a.string,extraAriaContext:s.a.string,href:s.a.string,ariaLabel:s.a.string,page:s.a.number.isRequired,getEventListener:s.a.func.isRequired,pageLabelBuilder:s.a.func.isRequired};var u=o;function c(){return (c=Object.assign||function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);}return e}).apply(this,arguments)}var p=function(e){var a=e.breakLabel,t=e.breakClassName,r=e.breakLinkClassName,i=e.breakHandler,s=e.getEventListener,l=t||"break";return n.a.createElement("li",{className:l},n.a.createElement("a",c({className:r,role:"button",tabIndex:"0",onKeyPress:i},s(i)),a))};p.propTypes={breakLabel:s.a.oneOfType([s.a.string,s.a.node]),breakClassName:s.a.string,breakLinkClassName:s.a.string,breakHandler:s.a.func.isRequired,getEventListener:s.a.func.isRequired};var f=p;function g(e){return (g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(){return (d=Object.assign||function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);}return e}).apply(this,arguments)}function b(e,a){for(var t=0;t<a.length;t++){var r=a[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r);}}function v(e,a){return (v=Object.setPrototypeOf||function(e,a){return e.__proto__=a,e})(e,a)}function m(e){var a=function(){if("undefined"==typeof Reflect||!Reflect.construct)return !1;if(Reflect.construct.sham)return !1;if("function"==typeof Proxy)return !0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return !1}}();return function(){var t,r=C(e);if(a){var n=C(this).constructor;t=Reflect.construct(r,arguments,n);}else t=r.apply(this,arguments);return h(this,t)}}function h(e,a){return !a||"object"!==g(a)&&"function"!=typeof a?y(e):a}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function C(e){return (C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function P(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}var k=function(e){!function(e,a){if("function"!=typeof a&&null!==a)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(a&&a.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),a&&v(e,a);}(s,e);var a,t,i=m(s);function s(e){var a,t;return function(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}(this,s),P(y(a=i.call(this,e)),"handlePreviousPage",(function(e){var t=a.state.selected;e.preventDefault?e.preventDefault():e.returnValue=!1,t>0&&a.handlePageSelected(t-1,e);})),P(y(a),"handleNextPage",(function(e){var t=a.state.selected,r=a.props.pageCount;e.preventDefault?e.preventDefault():e.returnValue=!1,t<r-1&&a.handlePageSelected(t+1,e);})),P(y(a),"handlePageSelected",(function(e,t){t.preventDefault?t.preventDefault():t.returnValue=!1,a.state.selected!==e?(a.setState({selected:e}),a.callCallback(e)):a.callActiveCallback(e);})),P(y(a),"getEventListener",(function(e){return P({},a.props.eventListener,e)})),P(y(a),"handleBreakClick",(function(e,t){t.preventDefault?t.preventDefault():t.returnValue=!1;var r=a.state.selected;a.handlePageSelected(r<e?a.getForwardJump():a.getBackwardJump(),t);})),P(y(a),"callCallback",(function(e){void 0!==a.props.onPageChange&&"function"==typeof a.props.onPageChange&&a.props.onPageChange({selected:e});})),P(y(a),"callActiveCallback",(function(e){void 0!==a.props.onPageActive&&"function"==typeof a.props.onPageActive&&a.props.onPageActive({selected:e});})),P(y(a),"pagination",(function(){var e=[],t=a.props,r=t.pageRangeDisplayed,i=t.pageCount,s=t.marginPagesDisplayed,l=t.breakLabel,o=t.breakClassName,u=t.breakLinkClassName,c=a.state.selected;if(i<=r)for(var p=0;p<i;p++)e.push(a.getPageElement(p));else {var g,d,b,v=r/2,m=r-v;c>i-r/2?v=r-(m=i-c):c<r/2&&(m=r-(v=c));var h=function(e){return a.getPageElement(e)};for(g=0;g<i;g++)(d=g+1)<=s||d>i-s||g>=c-v&&g<=c+m?e.push(h(g)):l&&e[e.length-1]!==b&&(b=n.a.createElement(f,{key:g,breakLabel:l,breakClassName:o,breakLinkClassName:u,breakHandler:a.handleBreakClick.bind(null,g),getEventListener:a.getEventListener}),e.push(b));}return e})),t=e.initialPage?e.initialPage:e.forcePage?e.forcePage:0,a.state={selected:t},a}return a=s,(t=[{key:"componentDidMount",value:function(){var e=this.props,a=e.initialPage,t=e.disableInitialCallback,r=e.extraAriaContext;void 0===a||t||this.callCallback(a),r&&console.warn("DEPRECATED (react-paginate): The extraAriaContext prop is deprecated. You should now use the ariaLabelBuilder instead.");}},{key:"componentDidUpdate",value:function(e){void 0!==this.props.forcePage&&this.props.forcePage!==e.forcePage&&this.setState({selected:this.props.forcePage});}},{key:"getForwardJump",value:function(){var e=this.state.selected,a=this.props,t=a.pageCount,r=e+a.pageRangeDisplayed;return r>=t?t-1:r}},{key:"getBackwardJump",value:function(){var e=this.state.selected-this.props.pageRangeDisplayed;return e<0?0:e}},{key:"hrefBuilder",value:function(e){var a=this.props,t=a.hrefBuilder,r=a.pageCount;if(t&&e!==this.state.selected&&e>=0&&e<r)return t(e+1)}},{key:"ariaLabelBuilder",value:function(e){var a=e===this.state.selected;if(this.props.ariaLabelBuilder&&e>=0&&e<this.props.pageCount){var t=this.props.ariaLabelBuilder(e+1,a);return this.props.extraAriaContext&&!a&&(t=t+" "+this.props.extraAriaContext),t}}},{key:"getPageElement",value:function(e){var a=this.state.selected,t=this.props,r=t.pageClassName,i=t.pageLinkClassName,s=t.activeClassName,l=t.activeLinkClassName,o=t.extraAriaContext,c=t.pageLabelBuilder;return n.a.createElement(u,{key:e,pageSelectedHandler:this.handlePageSelected.bind(null,e),selected:a===e,pageClassName:r,pageLinkClassName:i,activeClassName:s,activeLinkClassName:l,extraAriaContext:o,href:this.hrefBuilder(e),ariaLabel:this.ariaLabelBuilder(e),page:e+1,pageLabelBuilder:c,getEventListener:this.getEventListener})}},{key:"render",value:function(){var e=this.props,a=e.disabledClassName,t=e.pageCount,r=e.containerClassName,i=e.previousLabel,s=e.previousClassName,l=e.previousLinkClassName,o=e.previousAriaLabel,u=e.prevRel,c=e.nextLabel,p=e.nextClassName,f=e.nextLinkClassName,g=e.nextAriaLabel,b=e.nextRel,v=this.state.selected,m=s+(0===v?" ".concat(a):""),h=p+(v===t-1?" ".concat(a):""),y=0===v?"true":"false",C=v===t-1?"true":"false";return n.a.createElement("ul",{className:r},n.a.createElement("li",{className:m},n.a.createElement("a",d({className:l,href:this.hrefBuilder(v-1),tabIndex:"0",role:"button",onKeyPress:this.handlePreviousPage,"aria-disabled":y,"aria-label":o,rel:u},this.getEventListener(this.handlePreviousPage)),i)),this.pagination(),n.a.createElement("li",{className:h},n.a.createElement("a",d({className:f,href:this.hrefBuilder(v+1),tabIndex:"0",role:"button",onKeyPress:this.handleNextPage,"aria-disabled":C,"aria-label":g,rel:b},this.getEventListener(this.handleNextPage)),c)))}}])&&b(a.prototype,t),s}(r.Component);P(k,"propTypes",{pageCount:s.a.number.isRequired,pageRangeDisplayed:s.a.number.isRequired,marginPagesDisplayed:s.a.number.isRequired,previousLabel:s.a.node,previousAriaLabel:s.a.string,prevRel:s.a.string,nextLabel:s.a.node,nextAriaLabel:s.a.string,nextRel:s.a.string,breakLabel:s.a.oneOfType([s.a.string,s.a.node]),hrefBuilder:s.a.func,onPageChange:s.a.func,onPageActive:s.a.func,initialPage:s.a.number,forcePage:s.a.number,disableInitialCallback:s.a.bool,containerClassName:s.a.string,pageClassName:s.a.string,pageLinkClassName:s.a.string,pageLabelBuilder:s.a.func,activeClassName:s.a.string,activeLinkClassName:s.a.string,previousClassName:s.a.string,nextClassName:s.a.string,previousLinkClassName:s.a.string,nextLinkClassName:s.a.string,disabledClassName:s.a.string,breakClassName:s.a.string,breakLinkClassName:s.a.string,extraAriaContext:s.a.string,ariaLabelBuilder:s.a.func,eventListener:s.a.string}),P(k,"defaultProps",{pageCount:10,pageRangeDisplayed:2,marginPagesDisplayed:3,activeClassName:"selected",previousLabel:"Previous",previousClassName:"previous",previousAriaLabel:"Previous page",prevRel:"prev",nextLabel:"Next",nextClassName:"next",nextAriaLabel:"Next page",nextRel:"next",breakLabel:"...",disabledClassName:"disabled",disableInitialCallback:!1,pageLabelBuilder:function(e){return e},eventListener:"onClick"});a.default=k;}])}));
15
+
16
+ });
17
+
18
+ var ReactPaginate = _commonjsHelpers.unwrapExports(reactPaginate);
19
+ reactPaginate.ReactPaginate;
20
+
21
+ var Pagination = function Pagination(props) {
22
+ var pageCount = props.pageCount,
23
+ _props$marginPagesDis = props.marginPagesDisplayed,
24
+ marginPagesDisplayed = _props$marginPagesDis === undefined ? 1 : _props$marginPagesDis,
25
+ _props$pageRangeDispl = props.pageRangeDisplayed,
26
+ pageRangeDisplayed = _props$pageRangeDispl === undefined ? 5 : _props$pageRangeDispl,
27
+ _props$currentPage = props.currentPage,
28
+ currentPage = _props$currentPage === undefined ? 1 : _props$currentPage,
29
+ _onPageChange = props.onPageChange,
30
+ _props$needLargePagin = props.needLargePaginateButtons,
31
+ needLargePaginateButtons = _props$needLargePagin === undefined ? false : _props$needLargePagin;
32
+
33
+ if (!pageCount || pageCount <= 1) return null;
34
+ return React__default['default'].createElement(
35
+ React__default['default'].Fragment,
36
+ null,
37
+ needLargePaginateButtons && React__default['default'].createElement(
38
+ 'div',
39
+ { className: 'pagination-lg-btn-nxt' },
40
+ React__default['default'].createElement(
41
+ Button__default['default'],
42
+ {
43
+ onClick: function onClick(e) {
44
+ e.preventDefault();
45
+ _onPageChange(currentPage + 1);
46
+ },
47
+ disabled: currentPage === pageCount,
48
+ href: '?page=' + (currentPage + 1) },
49
+ 'NEXT PAGE',
50
+ React__default['default'].createElement(index_esm.FaArrowRight, { className: 'fa-arrow-right' })
51
+ )
52
+ ),
53
+ React__default['default'].createElement(ReactPaginate, {
54
+ pageCount: pageCount,
55
+ marginPagesDisplayed: marginPagesDisplayed,
56
+ pageRangeDisplayed: pageRangeDisplayed,
57
+ forcePage: currentPage - 1,
58
+ onPageChange: function onPageChange(_ref) {
59
+ var selected = _ref.selected;
60
+ return _onPageChange(selected + 1);
61
+ },
62
+ hrefBuilder: function hrefBuilder(page) {
63
+ return '?page=' + page;
64
+ },
65
+ previousLabel: '<',
66
+ nextLabel: '>',
67
+ containerClassName: 'pagination-container',
68
+ previousLinkClassName: 'previous',
69
+ nextLinkClassName: 'next',
70
+ disabledClassName: 'disbaled',
71
+ activeClassName: 'active'
72
+ }),
73
+ needLargePaginateButtons && React__default['default'].createElement(
74
+ 'div',
75
+ { className: 'pagination-lg-btn-prv' },
76
+ React__default['default'].createElement(
77
+ Button__default['default'],
78
+ {
79
+ onClick: function onClick(e) {
80
+ e.preventDefault();
81
+ _onPageChange(currentPage - 1);
82
+ },
83
+ disabled: currentPage === 1,
84
+ href: '?page=' + (currentPage - 1) },
85
+ React__default['default'].createElement(index_esm.FaArrowLeft, { className: 'fa-arrow-left' }),
86
+ 'PREVIOUS PAGE'
87
+ )
88
+ ),
89
+ React__default['default'].createElement(
90
+ 'style',
91
+ { jsx: 'true' },
92
+ '\n .pagination-container {\n list-style: none;\n padding: 10px 0;\n margin: 0;\n display: flex;\n overflow: auto;\n }\n .pagination-container::before,\n .pagination-container::after {\n content: \'\';\n margin: 0 auto;\n }\n .pagination-container a {\n padding: 10px;\n border: 1px solid #dee2e6;\n }\n .pagination-container a:hover {\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n }\n .pagination-container .active a {\n color: #fff;\n background-color: #666;\n background-color: var(--primary);\n }\n .pagination-container li:first-child a {\n border-radius: 5px 0 0 5px;\n }\n .pagination-container li:last-child a {\n border-radius: 0 5px 5px 0;\n }\n .pagination-container .disbaled a {\n cursor: default;\n }\n .pagination-lg-btn-nxt,\n .pagination-lg-btn-prv {\n text-align: center;\n }\n .pagination-lg-btn-nxt .btn,\n .pagination-lg-btn-prv .btn {\n min-width: 80%;\n color: #000;\n color: var(--primary);\n background-color: transparent;\n border-color: #000;\n border-color: var(--primary);\n }\n .pagination-lg-btn-nxt {\n margin: 0 0 1.5rem;\n }\n .pagination-lg-btn-prv {\n margin: 1.5rem 0 0;\n }\n .pagination-lg-btn-nxt .btn:not(:disabled):not(.disabled).active,\n .pagination-lg-btn-prv .btn:not(:disabled):not(.disabled):active {\n color: #fff;\n background-color: #000;\n background-color: var(--primary);\n border-color: #000;\n border-color: var(--primary);\n }\n @media only screen and (min-width: 601px) {\n [class^=\'pagination-lg-btn\'] {\n display: none;\n }\n }\n .fa-arrow-left {\n margin-right: 0.5rem;\n }\n .fa-arrow-right {\n margin-left: 0.5rem;\n }\n .pagination-container::-webkit-scrollbar {\n height: 8px;\n }\n .pagination-container::-webkit-scrollbar-track,\n .pagination-container::-webkit-scrollbar-thumb {\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);\n border-radius: 4px;\n }\n .pagination-container::-webkit-scrollbar-track {\n background-color: rgba(0, 0, 0, 0.1);\n }\n .pagination-container::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.3);\n }\n '
93
+ )
94
+ );
95
+ };
96
+
97
+ exports.Pagination = Pagination;
@@ -46,8 +46,7 @@ require('./AuthorComponent-39b37d84.js');
46
46
  require('./ADlgInfeed-950b414b.js');
47
47
  require('./getContentCategory-f38a4c00.js');
48
48
  require('./timeDifferenceCalc.js');
49
- require('./Pagination-885dcfbd.js');
50
- require('react-paginate');
49
+ require('./Pagination-42f92f7c.js');
51
50
  require('react-bootstrap/Button');
52
51
  require('./index.esm-d51c9ac6.js');
53
52
  require('./iconBase-be4097c0.js');
@@ -385,32 +385,32 @@ module.exports = { "default": set$1, __esModule: true };
385
385
 
386
386
  var _Set = _commonjsHelpers.unwrapExports(set);
387
387
 
388
- /* usage & query
389
- const Publication = (props) => {
390
- const { cache, pub, year } = props
391
- const targeting = {
392
- content_placement: [`/journals/${pub.identifier.current}`],
393
- document_url: [`/journals/${pub.identifier.current}`],
394
- }
395
- return (
396
- <Shell title={pub.name} cache={cache} settings={Settings} targeting={targeting} ads={Ads} layout='3'>
397
- <PublicationLanding publication={pub} year={year} href={'journals'} />
398
- </Shell>
399
- )
400
- }
401
- Publication.getInitialProps = async (ctx) => {
402
- const { query } = ctx
403
- const {
404
- query: { year },
405
- } = ctx
406
- const pub = await client.fetch(getQuery('publication'), query)
407
- **import urlFor from framework**
408
- pub.issues.map((issue) => {
409
- issue.thumbnail = urlFor({client, source: issue.thumbnail})
410
- })
411
- return { pub, year }
412
- }
413
- export default Publication
388
+ /* usage & query
389
+ const Publication = (props) => {
390
+ const { cache, pub, year } = props
391
+ const targeting = {
392
+ content_placement: [`/journals/${pub.identifier.current}`],
393
+ document_url: [`/journals/${pub.identifier.current}`],
394
+ }
395
+ return (
396
+ <Shell title={pub.name} cache={cache} settings={Settings} targeting={targeting} ads={Ads} layout='3'>
397
+ <PublicationLanding publication={pub} year={year} href={'journals'} />
398
+ </Shell>
399
+ )
400
+ }
401
+ Publication.getInitialProps = async (ctx) => {
402
+ const { query } = ctx
403
+ const {
404
+ query: { year },
405
+ } = ctx
406
+ const pub = await client.fetch(getQuery('publication'), query)
407
+ **import urlFor from framework**
408
+ pub.issues.map((issue) => {
409
+ issue.thumbnail = urlFor({client, source: issue.thumbnail})
410
+ })
411
+ return { pub, year }
412
+ }
413
+ export default Publication
414
414
  */
415
415
 
416
416
  var generateContentPlacements = function generateContentPlacements(issues) {
@@ -19,7 +19,7 @@ var ADlgInfeed = require('./ADlgInfeed-950b414b.js');
19
19
  var getContentCategory = require('./getContentCategory-f38a4c00.js');
20
20
  var timeDifferenceCalc = require('./timeDifferenceCalc.js');
21
21
  var urlFor = require('./urlFor.js');
22
- var Pagination = require('./Pagination-885dcfbd.js');
22
+ var Pagination = require('./Pagination-42f92f7c.js');
23
23
  require('./_commonjsHelpers-06173234.js');
24
24
  require('./core.get-iterator-method-5643aa10.js');
25
25
  require('./web.dom.iterable-d98303e0.js');
@@ -38,7 +38,6 @@ require('./Beam.js');
38
38
  require('./stringify-f7a37a8d.js');
39
39
  require('./Segment.js');
40
40
  require('./index-d48b231c.js');
41
- require('react-paginate');
42
41
  require('react-bootstrap/Button');
43
42
  require('./index.esm-d51c9ac6.js');
44
43
  require('./iconBase-be4097c0.js');
@@ -17,34 +17,34 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
17
17
 
18
18
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
19
19
 
20
- /*
21
- Sample query
22
- let references = ''
23
- if(article.taxonomyMapping.length > 0){
24
- article.taxonomyMapping.forEach((ref, index) => {
25
- references = references + `references('${ref._ref}') `
26
- if(index+1 !== article.taxonomyMapping.length){
27
- references = references + ` && `
28
- }
29
- })
30
- }
31
-
32
- const relatedArticlesQuery = `*[!(_id in path("drafts.**")) && _type == "article" && title !='${article.title}' && defined(title) && is_visible == true && ( references('article.documentGroup._id') || ${references} ) && published <= '${today}'] | order(published desc) [0...4] {
33
- ...,
34
- title,
35
- summary,
36
- thumbnail,
37
- url,
38
- published,
39
- authorMapping[]->,
40
- contentCategory->
41
- }`
42
- const relatedArticles = await client.fetch(relatedArticlesQuery)
43
-
44
- Sample usage
45
- <RelatedContent dataRecord={props.relatedArticles} client={client} showAuthor showPublished reverse/>
46
-
47
-
20
+ /*
21
+ Sample query
22
+ let references = ''
23
+ if(article.taxonomyMapping.length > 0){
24
+ article.taxonomyMapping.forEach((ref, index) => {
25
+ references = references + `references('${ref._ref}') `
26
+ if(index+1 !== article.taxonomyMapping.length){
27
+ references = references + ` && `
28
+ }
29
+ })
30
+ }
31
+
32
+ const relatedArticlesQuery = `*[!(_id in path("drafts.**")) && _type == "article" && title !='${article.title}' && defined(title) && is_visible == true && ( references('article.documentGroup._id') || ${references} ) && published <= '${today}'] | order(published desc) [0...4] {
33
+ ...,
34
+ title,
35
+ summary,
36
+ thumbnail,
37
+ url,
38
+ published,
39
+ authorMapping[]->,
40
+ contentCategory->
41
+ }`
42
+ const relatedArticles = await client.fetch(relatedArticlesQuery)
43
+
44
+ Sample usage
45
+ <RelatedContent dataRecord={props.relatedArticles} client={client} showAuthor showPublished reverse/>
46
+
47
+
48
48
  */
49
49
  var RelatedContent = function RelatedContent(props) {
50
50
  var client = props.client,
@@ -22,16 +22,16 @@ var RelatedTopicsDropdown = function RelatedTopicsDropdown(_ref) {
22
22
  _ref$className = _ref.className,
23
23
  className = _ref$className === undefined ? '' : _ref$className;
24
24
 
25
- /*
26
- Props accepted - parentTaxonomy(required, object), subTaxonomy(required, array), page(optional), exclude(optional), variant(optional), className(optional)
27
- example:
28
- <RelatedTopicDropdown
29
- page='/clinical'
30
- exclude="clinical"
31
- className='mb-3'
32
- parentTaxonomy={props.parentTaxonomy}
33
- subTaxonomies={props.subTaxonomies}
34
- />
25
+ /*
26
+ Props accepted - parentTaxonomy(required, object), subTaxonomy(required, array), page(optional), exclude(optional), variant(optional), className(optional)
27
+ example:
28
+ <RelatedTopicDropdown
29
+ page='/clinical'
30
+ exclude="clinical"
31
+ className='mb-3'
32
+ parentTaxonomy={props.parentTaxonomy}
33
+ subTaxonomies={props.subTaxonomies}
34
+ />
35
35
  */
36
36
  if (subTaxonomies.length === 0 && parentTaxonomy) {
37
37
  if (parentTaxonomy.identifier == exclude) {
@@ -7,7 +7,7 @@ var React = require('react');
7
7
  var Router = require('next/router');
8
8
  var index = require('./index-fc2f1ca2.js');
9
9
  var index_es = require('./index.es-f3e47207.js');
10
- var SeriesSlider = require('./SeriesSlider-ba0c5d1a.js');
10
+ var SeriesSlider = require('./SeriesSlider-de93a303.js');
11
11
  var visibilitySensor = require('./visibility-sensor-eb2c5b69.js');
12
12
  require('./_commonjsHelpers-06173234.js');
13
13
  require('./core.get-iterator-method-5643aa10.js');
@@ -12,10 +12,10 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
12
12
 
13
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
14
 
15
- /*
16
- GROQ query -
17
- accepts an array of title, URL
18
- `https://img.youtube.com/vi/${getYouTubeId(vid.url)}/hqdefault.jpg`
15
+ /*
16
+ GROQ query -
17
+ accepts an array of title, URL
18
+ `https://img.youtube.com/vi/${getYouTubeId(vid.url)}/hqdefault.jpg`
19
19
  */
20
20
 
21
21
  var SeriesSlider = function SeriesSlider(_ref) {
@@ -38,8 +38,8 @@ var renderLink = function renderLink(row) {
38
38
  };
39
39
 
40
40
  var SideFooter = function SideFooter(props) {
41
- /*
42
- useage example: <SideFooter cache={props.cache} logo='https://mjh-web.s3.amazonaws.com/_media/an_mjhls_brand_logo.png' />
41
+ /*
42
+ useage example: <SideFooter cache={props.cache} logo='https://mjh-web.s3.amazonaws.com/_media/an_mjhls_brand_logo.png' />
43
43
  */
44
44
  var _get = get.get_1(props, 'cache.siteSettingCache', {}),
45
45
  socialLinks = _get.socialLinks,
@@ -21,7 +21,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
21
21
 
22
22
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
23
 
24
- var css = ".VideoSeriesCard-module_article__Hlc3e {\n width: 100%;\n margin: 0 0 1rem 0;\n}\n.VideoSeriesCard-module_article__Hlc3e a {\n display: flex;\n width: 100%;\n color: #000000;\n}\n.VideoSeriesCard-module_thumb__3hGyJ {\n width: 25%;\n}\n.VideoSeriesCard-module_thumb__3hGyJ img {\n width: 100%;\n height: auto;\n}\n.VideoSeriesCard-module_info__2_i1N {\n width: 75%;\n font-size: 1rem;\n}\n.VideoSeriesCard-module_info__2_i1N h2 {\n font-weight: bold;\n font-size: 1.25rem;\n margin: 0;\n}\n.VideoSeriesCard-module_published__1fI0q {\n color: #6d6d6d;\n margin: 0;\n}\n.VideoSeriesCard-module_summary__3hWJT {\n margin: 0.5rem 0 0 0;\n}\n.VideoSeriesCard-module_author__aU35o {\n margin: 0;\n}\n.VideoSeriesCard-module_author__aU35o span {\n color: #6d6d6d;\n}\n@media only screen and (max-width: 568px) {\n .VideoSeriesCard-module_article__Hlc3e {\n margin: 1rem 0;\n box-shadow: 2px 4px 8px rgba(0,0,0,.2);\n }\n .VideoSeriesCard-module_article__Hlc3e a {\n flex-direction: column;\n align-items: center;\n }\n .VideoSeriesCard-module_thumb__3hGyJ {\n overflow: hidden;\n width: 100%;\n margin-bottom: 1rem;\n }\n .VideoSeriesCard-module_thumb__3hGyJ img{\n border-radius: 10px 10px 0 0; \n }\n .VideoSeriesCard-module_thumb__3hGyJ figure {\n margin: 0;\n }\n .VideoSeriesCard-module_info__2_i1N {\n width: 90%;\n padding: 1rem !important;\n }\n .VideoSeriesCard-module_info__2_i1N h2 {\n font-size: 1rem;\n }\n}\n";
24
+ var css = ".VideoSeriesCard-module_article__Hlc3e {\r\n width: 100%;\r\n margin: 0 0 1rem 0;\r\n}\r\n.VideoSeriesCard-module_article__Hlc3e a {\r\n display: flex;\r\n width: 100%;\r\n color: #000000;\r\n}\r\n.VideoSeriesCard-module_thumb__3hGyJ {\r\n width: 25%;\r\n}\r\n.VideoSeriesCard-module_thumb__3hGyJ img {\r\n width: 100%;\r\n height: auto;\r\n}\r\n.VideoSeriesCard-module_info__2_i1N {\r\n width: 75%;\r\n font-size: 1rem;\r\n}\r\n.VideoSeriesCard-module_info__2_i1N h2 {\r\n font-weight: bold;\r\n font-size: 1.25rem;\r\n margin: 0;\r\n}\r\n.VideoSeriesCard-module_published__1fI0q {\r\n color: #6d6d6d;\r\n margin: 0;\r\n}\r\n.VideoSeriesCard-module_summary__3hWJT {\r\n margin: 0.5rem 0 0 0;\r\n}\r\n.VideoSeriesCard-module_author__aU35o {\r\n margin: 0;\r\n}\r\n.VideoSeriesCard-module_author__aU35o span {\r\n color: #6d6d6d;\r\n}\r\n@media only screen and (max-width: 568px) {\r\n .VideoSeriesCard-module_article__Hlc3e {\r\n margin: 1rem 0;\r\n box-shadow: 2px 4px 8px rgba(0,0,0,.2);\r\n }\r\n .VideoSeriesCard-module_article__Hlc3e a {\r\n flex-direction: column;\r\n align-items: center;\r\n }\r\n .VideoSeriesCard-module_thumb__3hGyJ {\r\n overflow: hidden;\r\n width: 100%;\r\n margin-bottom: 1rem;\r\n }\r\n .VideoSeriesCard-module_thumb__3hGyJ img{\r\n border-radius: 10px 10px 0 0; \r\n }\r\n .VideoSeriesCard-module_thumb__3hGyJ figure {\r\n margin: 0;\r\n }\r\n .VideoSeriesCard-module_info__2_i1N {\r\n width: 90%;\r\n padding: 1rem !important;\r\n }\r\n .VideoSeriesCard-module_info__2_i1N h2 {\r\n font-size: 1rem;\r\n }\r\n}\r\n";
25
25
  var styles = { "article": "VideoSeriesCard-module_article__Hlc3e", "thumb": "VideoSeriesCard-module_thumb__3hGyJ", "info": "VideoSeriesCard-module_info__2_i1N", "published": "VideoSeriesCard-module_published__1fI0q", "summary": "VideoSeriesCard-module_summary__3hWJT", "author": "VideoSeriesCard-module_author__aU35o" };
26
26
  styleInject_es.styleInject(css);
27
27
 
package/dist/cjs/View.js CHANGED
@@ -19,8 +19,8 @@ var visibilitySensor = require('./visibility-sensor-eb2c5b69.js');
19
19
  var SocialShare = require('./SocialShare.js');
20
20
  var getSerializers = require('./index-5ce5e821.js');
21
21
  var AdSlot = require('./AdSlot.js');
22
- var SeriesSlider = require('./SeriesSlider-ba0c5d1a.js');
23
- var getTargeting = require('./getTargeting-9d509319.js');
22
+ var SeriesSlider = require('./SeriesSlider-de93a303.js');
23
+ var getTargeting = require('./getTargeting-6d59cc5b.js');
24
24
  var getKeywords = require('./getKeywords.js');
25
25
  var urlFor = require('./urlFor.js');
26
26
  var _typeof = require('./typeof-567e31ff.js');
@@ -29,13 +29,13 @@ var styleInject_es = require('./style-inject.es-dcee06b6.js');
29
29
  require('./index-eadd5035.js');
30
30
  var disqusReact = require('disqus-react');
31
31
  var Schema = require('./Schema.js');
32
+ var _commonjsHelpers = require('./_commonjsHelpers-06173234.js');
32
33
  var keys = require('./keys-e982b3fa.js');
33
34
  var index_es = require('./index.es-f3e47207.js');
34
35
  var index = require('./index-fc2f1ca2.js');
35
36
  var getRelatedArticle = require('./getRelatedArticle.js');
36
37
  var getQuery = require('./getQuery.js');
37
38
  var getSeriesDetail = require('./getSeriesDetail.js');
38
- require('./_commonjsHelpers-06173234.js');
39
39
  require('./core.get-iterator-method-5643aa10.js');
40
40
  require('./web.dom.iterable-d98303e0.js');
41
41
  require('./_library-dd23b178.js');
@@ -347,7 +347,7 @@ var ISI = function ISI(props) {
347
347
  );
348
348
  };
349
349
 
350
- var css = ".RelatedArticles-module_mediaContainer__10h9k {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n margin: 0 -1rem;\n}\n.RelatedArticles-module_mediaCard__3wQbn {\n margin: 0 1rem 1rem;\n width: calc(33% - 1rem);\n display: column;\n flex-direction: row;\n margin-bottom: 0.75rem;\n padding-bottom: 0.75rem;\n border-bottom: none;\n}\n.RelatedArticles-module_mediaCard__3wQbn:last-child {\n border-bottom: none;\n}\n.RelatedArticles-module_cardTitle__3P-Ib {\n font-weight: bold;\n color: #252525;\n margin-bottom: 0.25rem;\n font-size: 15px;\n}\n.RelatedArticles-module_authorListing__1EFg4 span.RelatedArticles-module_text-muted__3b0zX {\n color: #000;\n font-weight: bold;\n}\n.RelatedArticles-module_cardDate__1wOR5 {\n color: var(--dark);\n display: block;\n background: #fff !important;\n margin-bottom: 0;\n}\n.RelatedArticles-module_imgWrapper__5Jx_4 {\n display: block;\n text-align: center;\n margin-bottom: 0.5rem;\n}\n.RelatedArticles-module_imgWrapper__5Jx_4 img {\n height: 135px;\n width: 100%;\n object-fit: cover;\n object-position: center;\n}\n@media screen and (max-width: 1064px) {\n}\n@media screen and (max-width: 968px) {\n .RelatedArticles-module_mediaContainer__10h9k {\n flex-wrap: wrap;\n }\n .RelatedArticles-module_imgWrapper__5Jx_4 {\n display: none;\n }\n .RelatedArticles-module_mediaCard__3wQbn {\n width: 100%;\n margin-bottom: 0.5rem;\n padding: 0;\n }\n .RelatedArticles-module_cardTitle__3P-Ib {\n font-size: 0.75rem;\n margin-bottom: 0;\n }\n}\n";
350
+ var css = ".RelatedArticles-module_mediaContainer__10h9k {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: nowrap;\r\n margin: 0 -1rem;\r\n}\r\n.RelatedArticles-module_mediaCard__3wQbn {\r\n margin: 0 1rem 1rem;\r\n width: calc(33% - 1rem);\r\n display: column;\r\n flex-direction: row;\r\n margin-bottom: 0.75rem;\r\n padding-bottom: 0.75rem;\r\n border-bottom: none;\r\n}\r\n.RelatedArticles-module_mediaCard__3wQbn:last-child {\r\n border-bottom: none;\r\n}\r\n.RelatedArticles-module_cardTitle__3P-Ib {\r\n font-weight: bold;\r\n color: #252525;\r\n margin-bottom: 0.25rem;\r\n font-size: 15px;\r\n}\r\n.RelatedArticles-module_authorListing__1EFg4 span.RelatedArticles-module_text-muted__3b0zX {\r\n color: #000;\r\n font-weight: bold;\r\n}\r\n.RelatedArticles-module_cardDate__1wOR5 {\r\n color: var(--dark);\r\n display: block;\r\n background: #fff !important;\r\n margin-bottom: 0;\r\n}\r\n.RelatedArticles-module_imgWrapper__5Jx_4 {\r\n display: block;\r\n text-align: center;\r\n margin-bottom: 0.5rem;\r\n}\r\n.RelatedArticles-module_imgWrapper__5Jx_4 img {\r\n height: 135px;\r\n width: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n}\r\n@media screen and (max-width: 1064px) {\r\n}\r\n@media screen and (max-width: 968px) {\r\n .RelatedArticles-module_mediaContainer__10h9k {\r\n flex-wrap: wrap;\r\n }\r\n .RelatedArticles-module_imgWrapper__5Jx_4 {\r\n display: none;\r\n }\r\n .RelatedArticles-module_mediaCard__3wQbn {\r\n width: 100%;\r\n margin-bottom: 0.5rem;\r\n padding: 0;\r\n }\r\n .RelatedArticles-module_cardTitle__3P-Ib {\r\n font-size: 0.75rem;\r\n margin-bottom: 0;\r\n }\r\n}\r\n";
351
351
  var styles = { "mediaContainer": "RelatedArticles-module_mediaContainer__10h9k", "mediaCard": "RelatedArticles-module_mediaCard__3wQbn", "cardTitle": "RelatedArticles-module_cardTitle__3P-Ib", "authorListing": "RelatedArticles-module_authorListing__1EFg4", "text-muted": "RelatedArticles-module_text-muted__3b0zX", "cardDate": "RelatedArticles-module_cardDate__1wOR5", "imgWrapper": "RelatedArticles-module_imgWrapper__5Jx_4" };
352
352
  styleInject_es.styleInject(css);
353
353
 
@@ -446,6 +446,12 @@ var getSocialShareDisableFlag = function getSocialShareDisableFlag(article) {
446
446
  return showSocialShare;
447
447
  };
448
448
 
449
+ var FileSaver_min = _commonjsHelpers.createCommonjsModule(function (module, exports) {
450
+ (function(a,b){b();})(_commonjsHelpers.commonjsGlobal,function(){function b(a,b){return "undefined"==typeof b?b={autoBom:!1}:"object"!=typeof b&&(console.warn("Deprecated: Expected third argument to be a object"),b={autoBom:!b}),b.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\uFEFF",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open("GET",a),d.responseType="blob",d.onload=function(){g(d.response,b,c);},d.onerror=function(){console.error("could not download file");},d.send();}function d(a){var b=new XMLHttpRequest;b.open("HEAD",a,!1);try{b.send();}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent("click"));}catch(c){var b=document.createEvent("MouseEvents");b.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b);}}var f="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof _commonjsHelpers.commonjsGlobal&&_commonjsHelpers.commonjsGlobal.global===_commonjsHelpers.commonjsGlobal?_commonjsHelpers.commonjsGlobal:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||("object"!=typeof window||window!==f?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement("a");g=g||b.name||"download",j.download=g,j.rel="noopener","string"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target="_blank")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href);},4E4),setTimeout(function(){e(j);},0));}:"msSaveOrOpenBlob"in navigator?function(f,g,h){if(g=g||f.name||"download","string"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else {var i=document.createElement("a");i.href=f,i.target="_blank",setTimeout(function(){e(i);});}}:function(b,d,e,g){if(g=g||open("","_blank"),g&&(g.document.title=g.document.body.innerText="downloading..."),"string"==typeof b)return c(b,d,e);var h="application/octet-stream"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\/[\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&"undefined"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,"data:attachment/file;"),g?g.location.href=a:location=a,g=null;},k.readAsDataURL(b);}else {var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m);},4E4);}});f.saveAs=g.saveAs=g,(module.exports=g);});
451
+
452
+
453
+ });
454
+
449
455
  var Article = React.forwardRef(function (props, ref) {
450
456
  var onVote = function () {
451
457
  var _ref = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee(nodeKey, selectedChoice) {
@@ -557,7 +563,9 @@ var Article = React.forwardRef(function (props, ref) {
557
563
  _props$refreshFlag = props.refreshFlag,
558
564
  refreshFlag = _props$refreshFlag === undefined ? false : _props$refreshFlag,
559
565
  disqusConfig = props.disqusConfig,
560
- showDisqus = props.showDisqus;
566
+ showDisqus = props.showDisqus,
567
+ _props$downloadCitati = props.downloadCitation,
568
+ downloadCitation = _props$downloadCitati === undefined ? false : _props$downloadCitati;
561
569
 
562
570
 
563
571
  var targeting = getTargeting.getTargeting(props);
@@ -666,6 +674,53 @@ var Article = React.forwardRef(function (props, ref) {
666
674
  }
667
675
  return null;
668
676
  };
677
+ var generateRIS = function generateRIS() {
678
+ var fileContent = 'TY - JOUR\n';
679
+ if (issue) {
680
+ if (article.title) {
681
+ fileContent += 'TI - ' + article.title + '\n'; //Title - TI
682
+ fileContent += 'T1 - ' + article.title + '\n'; //Title - T1
683
+ }
684
+ if (issue.publication && issue.publication.name) {
685
+ fileContent += 'T2 - ' + issue.publication.name + '\n'; //Secondary Title - T2
686
+ fileContent += 'JF - ' + issue.publication.name + '\n'; //Journal Name - JF
687
+ }
688
+ if (issue.abbreviatedJournal) {
689
+ fileContent += 'JO - ' + issue.abbreviatedJournal + '\n'; //Journal Name - JO
690
+ }
691
+ if (article.fieldAbstract) fileContent += 'N2 - ' + article.fieldAbstract + '\n'; //Abstract - N2
692
+ if (issue.issueNumber) fileContent += 'IS - ' + issue.issueNumber + '\n'; //Issue Number - IS
693
+ fileContent += 'PB - MJH Life Sciences\n'; //Publisher - PB
694
+ if (issue.year) fileContent += 'PY - ' + issue.year + '\n'; //Published Year - PY
695
+ if (issue.volume) fileContent += 'VL - ' + issue.volume + '\n'; //Volume - VL
696
+ if (issue.url) fileContent += 'L1 - ' + issue.url + '\n'; //Link to PDF - L1
697
+ if (shareOptions && shareOptions.shareBaseUrl) {
698
+ fileContent += 'L2 - ' + (shareOptions.shareBaseUrl + url) + '\n'; //Link to Full-text - L2
699
+ fileContent += 'UR - ' + (shareOptions.shareBaseUrl + url) + '\n'; //Doc URL - UR
700
+ }
701
+ if (props.Website) fileContent += 'LK - https://' + props.Website.liveDomain + '\n'; //Website Link - LK
702
+ if (issue.isbn_issn) {
703
+ fileContent += 'SN - ' + issue.isbn_issn + '\n'; //ISSN/ISBN - TI
704
+ }
705
+ if (pageNumber) {
706
+ if (pageNumber.includes('-')) {
707
+ fileContent += 'SP - ' + pageNumber.split('-')[0] + '\n'; //Start Page - SP
708
+ fileContent += 'EP - ' + pageNumber.split('-')[1] + '\n'; //End Page - EP
709
+ } else {
710
+ fileContent += 'SP - ' + pageNumber + '\n';
711
+ }
712
+ }
713
+ if (article.published) fileContent += 'Y1 - ' + moment.moment(published).format('DD-MMMM-YYYY') + '\n'; //Primary Date - Y1
714
+ fileContent += 'Y2 - ' + moment.moment().format('DD-MMMM-YYYY') + '\n'; //Access Date - Y2
715
+ }
716
+ fileContent += 'ER -\n'; //End of Record
717
+ return fileContent;
718
+ };
719
+ var downloadRIS = function downloadRIS() {
720
+ var fileContent = generateRIS();
721
+ var file = new File([fileContent], 'citation-' + url + '.ris', { type: 'application/x-research-info-systems;charset=utf-8' });
722
+ FileSaver_min.saveAs(file, 'citation-' + url + '.ris');
723
+ };
669
724
 
670
725
  var RelevantTopics = function RelevantTopics() {
671
726
  if (content_placement && content_placement.length > 0 || documentGroupMapping && documentGroupMapping.length > 0) {
@@ -1009,7 +1064,7 @@ var Article = React.forwardRef(function (props, ref) {
1009
1064
  var shareTitle = article.title;
1010
1065
  var shareSummary = article.summary;
1011
1066
  var shareImage = thumbnail && thumbnail.asset ? urlFor({ client: props.client, source: thumbnail.asset }) : shareImageDefault;
1012
- var siteName = props.website && props.website.title ? props.website.title : '';
1067
+ var siteName = props.Website && props.Website.title ? props.Website.title : '';
1013
1068
  var shareKeywords = getKeywords(props.article).join(',');
1014
1069
 
1015
1070
  var meta = {
@@ -1256,12 +1311,23 @@ var Article = React.forwardRef(function (props, ref) {
1256
1311
  )
1257
1312
  )
1258
1313
  ),
1259
- issue && issue.url && React__default['default'].createElement(
1260
- 'a',
1261
- { rel: 'noopener', href: issue.url, target: '_blank', title: 'Download issue' },
1262
- React__default['default'].createElement('img', { style: { margin: '1rem', maxHeight: '40px', maxWidth: '40px' }, src: '/download.png', alt: 'download issue' }),
1263
- 'Download Issue : ',
1264
- issue.name
1314
+ React__default['default'].createElement(
1315
+ 'div',
1316
+ { className: 'downloads-container' },
1317
+ issue && downloadCitation && React__default['default'].createElement(
1318
+ Button__default['default'],
1319
+ { className: 'ris-download-button', onClick: function onClick() {
1320
+ return downloadRIS();
1321
+ } },
1322
+ 'Download RIS'
1323
+ ),
1324
+ issue && issue.url && React__default['default'].createElement(
1325
+ 'a',
1326
+ { rel: 'noopener', href: issue.url, target: '_blank', title: 'Download issue' },
1327
+ React__default['default'].createElement('img', { style: { margin: '1rem', maxHeight: '40px', maxWidth: '40px' }, src: '/download.png', alt: 'download issue' }),
1328
+ 'Download Issue : ',
1329
+ issue.name
1330
+ )
1265
1331
  )
1266
1332
  ),
1267
1333
  React__default['default'].createElement('div', { className: 'clearfix', style: { minHeight: '1px' } }),
@@ -18,10 +18,10 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
18
18
 
19
19
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
20
 
21
- /*
22
- GROQ query -
23
- accepts an array of title, URL
24
- `https://img.youtube.com/vi/${getYouTubeId(vid.url)}/hqdefault.jpg`
21
+ /*
22
+ GROQ query -
23
+ accepts an array of title, URL
24
+ `https://img.youtube.com/vi/${getYouTubeId(vid.url)}/hqdefault.jpg`
25
25
  */
26
26
 
27
27
  var YoutubeGroup = function YoutubeGroup(props) {
@@ -10,9 +10,9 @@ var getQuery = function getQuery(type) {
10
10
 
11
11
  switch (type) {
12
12
  case 'related':
13
- return '*[\n _type == "article"\n && defined(title)\n && defined(url)\n && !(_id in path("drafts.**"))\n && is_visible == true\n && defined(published) \n && dateTime(published) <= dateTime(now())\n && passwordLock!=true\n && taxonomyMapping[]._ref in $taxonomy\n && taxonomyMapping[].disableAds != \'true\'\n && contentCategory->.name != \'Poll\'\n && contentCategory->.name != \'Slideshows\'\n && contentCategory->.disableAds != \'true\'\n && ExcludeFromInfiniteScroll !=true\n && url.current != $url\n && !defined(body[].videos)\n ' + conditions + '\n ]| order(published desc)[' + (articleCount ? articleCount : '$index') + ']{\n ' + params + '\n title,\n published,\n summary,\n thumbnail,\n ...,\n passwordLock,\n password,\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n body[] {\n ...,\n asset->,\n images[]{\n ...,\n asset->\n },\n content[]{\n ...,\n asset->\n },\n videos[]{\n ...,\n thumbnail{\n _type,\n asset->\n }\n },\n response[]{\n ...,\n asset->\n },\n quizzes[]{\n ...,\n answer[]{\n ...,\n asset->\n },\n question[]{\n ...,\n asset->\n }\n },\n poster {\n _type,\n asset->\n },\n slides[]{\n ...,\n slideshowImage{\n ...,\n asset->\n }\n },\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n }\n },\n \'category\':contentCategory->{\n name,\n disableAds\n },\n \'content_placement\': taxonomyMapping[]-> {\n _id,\n \'ancestor\': parent->parent->identifier,\n \'parent\': parent->identifier,\n \'name\': name,\n \'path\': identifier,\n disableAds,\n showSocialShare\n },\n documentGroup-> {\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n \'path\': identifier.current,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current\n },\n \'url\' : pdf.asset-> url\n }\n }';
13
+ return '*[\n _type == "article"\n && defined(title)\n && defined(url)\n && !(_id in path("drafts.**"))\n && is_visible == true\n && defined(published) \n && dateTime(published) <= dateTime(now())\n && passwordLock!=true\n && taxonomyMapping[]._ref in $taxonomy\n && taxonomyMapping[].disableAds != \'true\'\n && contentCategory->.name != \'Poll\'\n && contentCategory->.name != \'Slideshows\'\n && contentCategory->.disableAds != \'true\'\n && ExcludeFromInfiniteScroll !=true\n && url.current != $url\n && !defined(body[].videos)\n ' + conditions + '\n ]| order(published desc)[' + (articleCount ? articleCount : '$index') + ']{\n ' + params + '\n title,\n published,\n summary,\n thumbnail,\n fieldAbstract,\n ...,\n passwordLock,\n password,\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n body[] {\n ...,\n asset->,\n images[]{\n ...,\n asset->\n },\n content[]{\n ...,\n asset->\n },\n videos[]{\n ...,\n thumbnail{\n _type,\n asset->\n }\n },\n response[]{\n ...,\n asset->\n },\n quizzes[]{\n ...,\n answer[]{\n ...,\n asset->\n },\n question[]{\n ...,\n asset->\n }\n },\n poster {\n _type,\n asset->\n },\n slides[]{\n ...,\n slideshowImage{\n ...,\n asset->\n }\n },\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n }\n },\n \'category\':contentCategory->{\n name,\n disableAds\n },\n \'content_placement\': taxonomyMapping[]-> {\n _id,\n \'ancestor\': parent->parent->identifier,\n \'parent\': parent->identifier,\n \'name\': name,\n \'path\': identifier,\n disableAds,\n showSocialShare\n },\n documentGroup-> {\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n \'path\': identifier.current,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current\n },\n \'url\' : pdf.asset-> url,\n isbn_issn,\n abbreviatedJournal,\n }\n }';
14
14
  case 'article':
15
- return '*[\n _type == "article"\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible != false\n && url.current == $url\n ' + conditions + '\n ][0]{\n ' + params + '\n title,\n published,\n summary,\n thumbnail,\n ...,\n passwordLock,\n password,\n issueGroup-> { _id, name, identifier, parent-> },\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n body[] {\n ...,\n asset->,\n images[]{\n ...,\n asset->\n },\n content[]{\n ...,\n asset->\n },\n videos[]{\n ...,\n thumbnail{\n _type,\n asset->\n }\n },\n response[]{\n ...,\n asset->\n },\n quizzes[]{\n ...,\n answer[]{\n ...,\n asset->\n },\n question[]{\n ...,\n asset->\n }\n },\n poster {\n _type,\n asset->\n },\n slides[]{\n ...,\n slideshowImage{\n ...,\n asset->\n }\n },\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n },\n medias[]{\n ...,\n upload_doc {\n _type,\n asset-> \n },\n poster {\n _type,\n asset-> \n }\n },\n articles[]{\n ...,\n thumbnail{\n ...,\n asset-> \n },\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n text[]{\n ...,\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n },\n }\n }\n },\n \'content_placement\': taxonomyMapping[]-> {\n ...,\n \'ancestor\': parent->parent->identifier,\n \'parent\': parent->identifier,\n \'name\': name,\n \'path\': identifier,\n showSocialShare\n },\n documentGroup-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n isSeries,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current\n },\n \'category\':contentCategory->{\n name,\n disableAds\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n volume,\n \'issueNumber\': number,\n \'articleSource\': source,\n \'path\': identifier.current,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current\n },\n \'url\' : pdf.asset-> url\n }\n\n }';
15
+ return '*[\n _type == "article"\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible != false\n && url.current == $url\n ' + conditions + '\n ][0]{\n ' + params + '\n title,\n published,\n summary,\n thumbnail,\n fieldAbstract,\n ...,\n passwordLock,\n password,\n issueGroup-> { _id, name, identifier, parent-> },\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n body[] {\n ...,\n asset->,\n images[]{\n ...,\n asset->\n },\n content[]{\n ...,\n asset->\n },\n videos[]{\n ...,\n thumbnail{\n _type,\n asset->\n }\n },\n response[]{\n ...,\n asset->\n },\n quizzes[]{\n ...,\n answer[]{\n ...,\n asset->\n },\n question[]{\n ...,\n asset->\n }\n },\n poster {\n _type,\n asset->\n },\n slides[]{\n ...,\n slideshowImage{\n ...,\n asset->\n }\n },\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n },\n medias[]{\n ...,\n upload_doc {\n _type,\n asset-> \n },\n poster {\n _type,\n asset-> \n }\n },\n articles[]{\n ...,\n thumbnail{\n ...,\n asset-> \n },\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n text[]{\n ...,\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n },\n }\n }\n },\n \'content_placement\': taxonomyMapping[]-> {\n ...,\n \'ancestor\': parent->parent->identifier,\n \'parent\': parent->identifier,\n \'name\': name,\n \'path\': identifier,\n showSocialShare\n },\n documentGroup-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n isSeries,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current\n },\n \'category\':contentCategory->{\n name,\n disableAds\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n volume,\n year,\n \'issueNumber\': number,\n \'articleSource\': source,\n \'path\': identifier.current,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current\n },\n \'url\' : pdf.asset-> url,\n isbn_issn,\n abbreviatedJournal,\n }\n\n }';
16
16
  case 'publication':
17
17
  return '*[_type == \'publication\'\n && identifier.current == $publication\n ' + conditions + '][0] {\n ' + params + '\n ...,\n \'issues\': *[_type == \'publication\'\n && is_visible\n && references(^._id)\n && defined(identifier)] {\n ...,\n thumbnail{ ..., asset-> },\n taxonomyMapping[]->,\n pdf{asset->},\n } | order(year desc, month desc)\n }';
18
18
  case 'issue':