@mjhls/mjh-framework 1.0.959-gridcontent-nojs-fix-v3 → 1.0.959-ris-update-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.
@@ -87,8 +87,7 @@ var GridContent = function (_React$Component) {
87
87
  lgInfeedAd: _this.props.lgInfeedAd ? _this.props.lgInfeedAd : false,
88
88
  showCategory: _this.props.showCategory ? _this.props.showCategory : false,
89
89
  contentCategoryMapping: _this.props.contentCategoryMapping ? contentCategoryMapping : [],
90
- lastDataSize: _this.data ? _this.data.length : 0,
91
- dataRemapped: !_this.props.showBI || !_this.props.brandInsight
90
+ lastDataSize: _this.data ? _this.data.length : 0
92
91
  }, _this.loadMore = debounce.debounce_1(function () {
93
92
  _this.setState(function (state) {
94
93
  var page = state.page,
@@ -116,10 +115,6 @@ var GridContent = function (_React$Component) {
116
115
  if (pageview && currentPath !== prevPath) {
117
116
  pageview(currentPath);
118
117
  }
119
- // set dataRemap to true as there are no infeed or BI ads or window width is less than limit
120
- if (typeof window !== 'undefined' && (!_this.props.lgInfeedAd || !_this.props.brandInsight || window.innerWidth < 1400) && !_this.state.dataRemapped) {
121
- !_this.state.dataRemapped && _this.setState({ dataRemapped: true });
122
- }
123
118
  }, _this.loadData = function () {
124
119
  var _this$state = _this.state,
125
120
  from = _this$state.from,
@@ -434,7 +429,6 @@ var GridContent = function (_React$Component) {
434
429
  });
435
430
 
436
431
  posts = lodash.lodash.flatten(chunks);
437
- !this.state.dataRemapped && this.setState({ dataRemapped: true }); // To detect if appending of insights ads are completed
438
432
  }
439
433
 
440
434
  if (showBI) {
@@ -500,10 +494,6 @@ var GridContent = function (_React$Component) {
500
494
  var itemsPerPage = this.props.params && this.props.params.itemsPerPage ? this.props.params.itemsPerPage : 10;
501
495
  var heroContent = this.props.heroContent ? this.props.heroContent : 0;
502
496
  var featureCount = 0;
503
- if (!this.state.dataRemapped) {
504
- //For Javascript Disabled Cases. data is not remapped if JS is disabled.
505
- posts = this.state.data;
506
- }
507
497
  return React__default['default'].createElement(
508
498
  'div',
509
499
  { className: 'grid-container' },
package/dist/cjs/View.js CHANGED
@@ -1100,7 +1100,7 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1100
1100
  }
1101
1101
  if (authorDetails && authorDetails.length) {
1102
1102
  authorDetails.map(function (authorDetail, index) {
1103
- return fileContent += 'AU - ' + authorDetail.displayName + '\n';
1103
+ return fileContent += 'AU - ' + (authorDetail.firstName && authorDetail.lastName ? authorDetail.lastName + ', ' + authorDetail.firstName : '' + authorDetail.displayName) + '\n';
1104
1104
  } //Author
1105
1105
  );
1106
1106
  }
@@ -1108,9 +1108,13 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1108
1108
  fileContent += 'T2 - ' + issue.publication.name + '\n'; //Secondary Title - T2
1109
1109
  fileContent += 'JF - ' + issue.publication.name + '\n'; //Journal Name - JF
1110
1110
  }
1111
+ if (issue.name) {
1112
+ fileContent += 'T3 - ' + issue.name + '\n'; //Issue Name - T3
1113
+ }
1111
1114
  if (issue.abbreviatedJournal) {
1112
1115
  fileContent += 'JO - ' + issue.abbreviatedJournal + '\n'; //Journal Name - JO
1113
1116
  }
1117
+ if (article.summary) fileContent += 'AB - ' + article.summary + '\n'; //Abstract - AB
1114
1118
  if (article.fieldAbstract) fileContent += 'N2 - ' + article.fieldAbstract + '\n'; //Abstract - N2
1115
1119
  if (issue.issueNumber) fileContent += 'IS - ' + issue.issueNumber + '\n'; //Issue Number - IS
1116
1120
  fileContent += 'PB - MJH Life Sciences\n'; //Publisher - PB
@@ -1139,6 +1143,15 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1139
1143
  fileContent += 'ER -\n'; //End of Record
1140
1144
  return fileContent;
1141
1145
  };
1146
+ var getAuthorList = function getAuthorList() {
1147
+ var authorList = '';
1148
+ if (authorDetails && authorDetails.length > 0) {
1149
+ authorDetails.map(function (author) {
1150
+ if (author.lastName && author.firstName) authorList += author.lastName + ',' + author.firstName + ';';else if (author.displayName) authorList += author.displayName + ';';
1151
+ });
1152
+ }
1153
+ return authorList;
1154
+ };
1142
1155
  var downloadRIS = function downloadRIS() {
1143
1156
  var fileContent = generateRIS();
1144
1157
  var file = new File([fileContent], 'citation-' + url + '.ris', { type: 'application/x-research-info-systems;charset=utf-8' });
@@ -1212,7 +1225,14 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1212
1225
  return React__default['default'].createElement(
1213
1226
  'div',
1214
1227
  null,
1215
- useSegmentRecommendedArticles ? React__default['default'].createElement(Recommended, { client: client, article: article, index: props.index, Settings: props.Settings, showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage, cpModificationRequired: cpModificationRequired }) : React__default['default'].createElement(
1228
+ useSegmentRecommendedArticles ? React__default['default'].createElement(Recommended, {
1229
+ client: client,
1230
+ article: article,
1231
+ index: props.index,
1232
+ Settings: props.Settings,
1233
+ showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage,
1234
+ cpModificationRequired: cpModificationRequired
1235
+ }) : React__default['default'].createElement(
1216
1236
  'section',
1217
1237
  { id: 'related-content-section', className: 'my-1' },
1218
1238
  (article.relatedArticle || RelevantTopics()) && React__default['default'].createElement(
@@ -1324,9 +1344,7 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1324
1344
  React__default['default'].createElement(
1325
1345
  'div',
1326
1346
  { id: 'contextual-native-ad-' + payload._id, className: 'contextual-native-ad' },
1327
- React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualAD, {
1328
- refreshFlag: refreshFlag
1329
- }))
1347
+ React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualAD, { refreshFlag: refreshFlag }))
1330
1348
  ),
1331
1349
  React__default['default'].createElement(
1332
1350
  'style',
@@ -1380,9 +1398,7 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1380
1398
  React__default['default'].createElement(
1381
1399
  'div',
1382
1400
  { id: 'contextual-native-ad-' + payload._id, className: 'contextual-native-ad' },
1383
- React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualAD, {
1384
- refreshFlag: refreshFlag
1385
- }))
1401
+ React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualAD, { refreshFlag: refreshFlag }))
1386
1402
  ),
1387
1403
  React__default['default'].createElement(
1388
1404
  'style',
@@ -1566,7 +1582,6 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1566
1582
  partialVisibility: true,
1567
1583
  offset: { bottom: triggerOffset, top: containerHeight && containerHeight },
1568
1584
  onChange: function onChange(isVisible) {
1569
-
1570
1585
  if (isVisible && !isFirstArticle) {
1571
1586
  var pageviewProperties = _extends._extends({}, targeting, {
1572
1587
  category: article && article.category ? article.category.name : ''
@@ -1586,6 +1601,17 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1586
1601
  React__default['default'].createElement(
1587
1602
  'div',
1588
1603
  { className: 'video-detail', style: { marginBottom: isCutomPage(props.article) || showIsi && Array.isArray(isi) && isi.length > 0 ? '15rem' : 0 } },
1604
+ issue && React__default['default'].createElement(
1605
+ Head__default['default'],
1606
+ null,
1607
+ article.title && React__default['default'].createElement('meta', { name: 'citation_title', content: article.title }),
1608
+ published && React__default['default'].createElement('meta', { name: 'citation_date', content: moment.moment(published).format('LL') }),
1609
+ issue.year && React__default['default'].createElement('meta', { name: 'citation_year', content: issue.year }),
1610
+ issue.isbn_issn && React__default['default'].createElement('meta', { name: 'citation_isbn', content: issue.isbn_issn }),
1611
+ article.summary && React__default['default'].createElement('meta', { name: 'citation_abstract', content: article.summary }),
1612
+ React__default['default'].createElement('meta', { name: 'citation_author', content: getAuthorList() }),
1613
+ issue.pdf && React__default['default'].createElement('meta', { name: 'citation_pdf_url', content: urlForFile.urlForFile({ asset: issue.pdf }) })
1614
+ ),
1589
1615
  isVideoSeries && renderBlockContent(article, meta, authorImgHeight),
1590
1616
  !isVideoSeries && React__default['default'].createElement(
1591
1617
  'div',
@@ -1607,7 +1633,7 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1607
1633
  React__default['default'].createElement(
1608
1634
  'style',
1609
1635
  { jsx: 'true' },
1610
- '\n @media screen and (max-width: 468px) {\n .video-detail .doc-group-container {\n flex-direction: column;\n align-items: flex-start !important;\n }\n .video-detail .doc-group {\n margin-top: 2rem;\n width: calc(100vw - 45px);\n align-items: center;\n }\n .video-detail .doc-group img,\n .doc-group p {\n max-width: calc(100vw - 45px) !important;\n }\n }\n .author-details-img {\n margin-right: 10px;\n max-height: 250px;\n min-height: 150px;\n max-width: 250px;\n min-width: 150px;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .author-details-img-container {\n text-align: center;\n }\n .author-details-col {\n padding-left: 25px;\n }\n '
1636
+ '\n .social-ris-container {\n display: flex;\n justify-content: space-between;\n }\n @media screen and (max-width: 468px) {\n .video-detail .doc-group-container {\n flex-direction: column;\n align-items: flex-start !important;\n }\n .video-detail .doc-group {\n margin-top: 2rem;\n width: calc(100vw - 45px);\n align-items: center;\n }\n .video-detail .doc-group img,\n .doc-group p {\n max-width: calc(100vw - 45px) !important;\n }\n .social-ris-container {\n flex-direction: column;\n }\n }\n .author-details-img {\n margin-right: 10px;\n max-height: 250px;\n min-height: 150px;\n max-width: 250px;\n min-width: 150px;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .author-details-img-container {\n text-align: center;\n }\n .author-details-col {\n padding-left: 25px;\n }\n .left-wrap {\n width: 100%;\n }\n '
1611
1637
  ),
1612
1638
  React__default['default'].createElement(
1613
1639
  'div',
@@ -1691,23 +1717,34 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1691
1717
  'Pages: ' + pageNumber
1692
1718
  )
1693
1719
  ),
1694
- !isVideoSeries && showSocialShare && React__default['default'].createElement(
1695
- 'p',
1696
- null,
1697
- React__default['default'].createElement(SocialShare, {
1698
- shareUrl: shareUrl,
1699
- shareTitle: shareTitle,
1700
- shareVia: shareVia,
1701
- shareSummary: shareSummary,
1702
- shareSubject: shareSubject,
1703
- shareImage: shareImage,
1704
- size: 32,
1705
- siteName: siteName,
1706
- twitterSiteName: twitterSiteName,
1707
- disableMeta: true,
1708
- hidePinterest: hidePinterestShare,
1709
- hideFacebook: hideFBShare
1710
- })
1720
+ React__default['default'].createElement(
1721
+ 'div',
1722
+ { className: 'social-ris-container' },
1723
+ !isVideoSeries && showSocialShare && React__default['default'].createElement(
1724
+ 'p',
1725
+ null,
1726
+ React__default['default'].createElement(SocialShare, {
1727
+ shareUrl: shareUrl,
1728
+ shareTitle: shareTitle,
1729
+ shareVia: shareVia,
1730
+ shareSummary: shareSummary,
1731
+ shareSubject: shareSubject,
1732
+ shareImage: shareImage,
1733
+ size: 32,
1734
+ siteName: siteName,
1735
+ twitterSiteName: twitterSiteName,
1736
+ disableMeta: true,
1737
+ hidePinterest: hidePinterestShare,
1738
+ hideFacebook: hideFBShare
1739
+ })
1740
+ ),
1741
+ issue && downloadCitation && (!issue.hasOwnProperty('show_download_ris_button') || issue.show_download_ris_button !== false) && (!issue.publication || !issue.publication.hasOwnProperty('show_download_ris_button') || issue.publication.show_download_ris_button !== false) && React__default['default'].createElement(
1742
+ Button__default['default'],
1743
+ { className: 'ris-download-button', onClick: function onClick() {
1744
+ return downloadRIS();
1745
+ } },
1746
+ 'Download RIS'
1747
+ )
1711
1748
  )
1712
1749
  ),
1713
1750
  React__default['default'].createElement(
@@ -1775,13 +1812,6 @@ var Article = React__default['default'].memo(React.forwardRef(function (props, r
1775
1812
  React__default['default'].createElement(
1776
1813
  'div',
1777
1814
  { className: 'downloads-container' },
1778
- issue && downloadCitation && (!issue.hasOwnProperty('show_download_ris_button') || issue.show_download_ris_button !== false) && (!issue.publication || !issue.publication.hasOwnProperty('show_download_ris_button') || issue.publication.show_download_ris_button !== false) && React__default['default'].createElement(
1779
- Button__default['default'],
1780
- { className: 'ris-download-button', onClick: function onClick() {
1781
- return downloadRIS();
1782
- } },
1783
- 'Download RIS'
1784
- ),
1785
1815
  issue && issue.pdf && React__default['default'].createElement(
1786
1816
  'a',
1787
1817
  { rel: 'noopener', href: urlForFile.urlForFile({ asset: issue.pdf }), target: '_blank', title: 'Download issue' },
@@ -9,11 +9,11 @@ var getQuery = function getQuery(type) {
9
9
  //Site level conditions should start with && (logical AND), and site level params should end with , (comma) in order to execute query
10
10
 
11
11
  switch (type) {
12
- // quiz video series and slideshow
12
+ // quiz video series and slideshow
13
13
  case 'related':
14
- 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 && isHealthcareProfessional != 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 && !defined(body[].quizzes)\n && !defined(body[].slides)\n && !defined(body[].articles)\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 hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n }';
14
+ 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 && isHealthcareProfessional != 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 && !defined(body[].quizzes)\n && !defined(body[].slides)\n && !defined(body[].articles)\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, firstName, lastName, 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 hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n }';
15
15
  case 'article':
16
- 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 disableEpisodeNumber,\n excludeRelatedContents,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n excludeRelatedContents,\n \'path\': identifier.current,\n hideSeriesSlider\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 show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n\n }';
16
+ 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, firstName, lastName, 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, firstName, lastName, 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 disableEpisodeNumber,\n excludeRelatedContents,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n excludeRelatedContents,\n \'path\': identifier.current,\n hideSeriesSlider\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 show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n\n }';
17
17
  case 'publication':
18
18
  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 }';
19
19
  case 'issue':
@@ -77,8 +77,7 @@ var GridContent = function (_React$Component) {
77
77
  lgInfeedAd: _this.props.lgInfeedAd ? _this.props.lgInfeedAd : false,
78
78
  showCategory: _this.props.showCategory ? _this.props.showCategory : false,
79
79
  contentCategoryMapping: _this.props.contentCategoryMapping ? contentCategoryMapping : [],
80
- lastDataSize: _this.data ? _this.data.length : 0,
81
- dataRemapped: !_this.props.showBI || !_this.props.brandInsight
80
+ lastDataSize: _this.data ? _this.data.length : 0
82
81
  }, _this.loadMore = debounce_1(function () {
83
82
  _this.setState(function (state) {
84
83
  var page = state.page,
@@ -106,10 +105,6 @@ var GridContent = function (_React$Component) {
106
105
  if (pageview && currentPath !== prevPath) {
107
106
  pageview(currentPath);
108
107
  }
109
- // set dataRemap to true as there are no infeed or BI ads or window width is less than limit
110
- if (typeof window !== 'undefined' && (!_this.props.lgInfeedAd || !_this.props.brandInsight || window.innerWidth < 1400) && !_this.state.dataRemapped) {
111
- !_this.state.dataRemapped && _this.setState({ dataRemapped: true });
112
- }
113
108
  }, _this.loadData = function () {
114
109
  var _this$state = _this.state,
115
110
  from = _this$state.from,
@@ -424,7 +419,6 @@ var GridContent = function (_React$Component) {
424
419
  });
425
420
 
426
421
  posts = lodash.flatten(chunks);
427
- !this.state.dataRemapped && this.setState({ dataRemapped: true }); // To detect if appending of insights ads are completed
428
422
  }
429
423
 
430
424
  if (showBI) {
@@ -490,10 +484,6 @@ var GridContent = function (_React$Component) {
490
484
  var itemsPerPage = this.props.params && this.props.params.itemsPerPage ? this.props.params.itemsPerPage : 10;
491
485
  var heroContent = this.props.heroContent ? this.props.heroContent : 0;
492
486
  var featureCount = 0;
493
- if (!this.state.dataRemapped) {
494
- //For Javascript Disabled Cases. data is not remapped if JS is disabled.
495
- posts = this.state.data;
496
- }
497
487
  return React__default.createElement(
498
488
  'div',
499
489
  { className: 'grid-container' },
package/dist/esm/View.js CHANGED
@@ -1090,7 +1090,7 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1090
1090
  }
1091
1091
  if (authorDetails && authorDetails.length) {
1092
1092
  authorDetails.map(function (authorDetail, index) {
1093
- return fileContent += 'AU - ' + authorDetail.displayName + '\n';
1093
+ return fileContent += 'AU - ' + (authorDetail.firstName && authorDetail.lastName ? authorDetail.lastName + ', ' + authorDetail.firstName : '' + authorDetail.displayName) + '\n';
1094
1094
  } //Author
1095
1095
  );
1096
1096
  }
@@ -1098,9 +1098,13 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1098
1098
  fileContent += 'T2 - ' + issue.publication.name + '\n'; //Secondary Title - T2
1099
1099
  fileContent += 'JF - ' + issue.publication.name + '\n'; //Journal Name - JF
1100
1100
  }
1101
+ if (issue.name) {
1102
+ fileContent += 'T3 - ' + issue.name + '\n'; //Issue Name - T3
1103
+ }
1101
1104
  if (issue.abbreviatedJournal) {
1102
1105
  fileContent += 'JO - ' + issue.abbreviatedJournal + '\n'; //Journal Name - JO
1103
1106
  }
1107
+ if (article.summary) fileContent += 'AB - ' + article.summary + '\n'; //Abstract - AB
1104
1108
  if (article.fieldAbstract) fileContent += 'N2 - ' + article.fieldAbstract + '\n'; //Abstract - N2
1105
1109
  if (issue.issueNumber) fileContent += 'IS - ' + issue.issueNumber + '\n'; //Issue Number - IS
1106
1110
  fileContent += 'PB - MJH Life Sciences\n'; //Publisher - PB
@@ -1129,6 +1133,15 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1129
1133
  fileContent += 'ER -\n'; //End of Record
1130
1134
  return fileContent;
1131
1135
  };
1136
+ var getAuthorList = function getAuthorList() {
1137
+ var authorList = '';
1138
+ if (authorDetails && authorDetails.length > 0) {
1139
+ authorDetails.map(function (author) {
1140
+ if (author.lastName && author.firstName) authorList += author.lastName + ',' + author.firstName + ';';else if (author.displayName) authorList += author.displayName + ';';
1141
+ });
1142
+ }
1143
+ return authorList;
1144
+ };
1132
1145
  var downloadRIS = function downloadRIS() {
1133
1146
  var fileContent = generateRIS();
1134
1147
  var file = new File([fileContent], 'citation-' + url + '.ris', { type: 'application/x-research-info-systems;charset=utf-8' });
@@ -1202,7 +1215,14 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1202
1215
  return React__default.createElement(
1203
1216
  'div',
1204
1217
  null,
1205
- useSegmentRecommendedArticles ? React__default.createElement(Recommended, { client: client, article: article, index: props.index, Settings: props.Settings, showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage, cpModificationRequired: cpModificationRequired }) : React__default.createElement(
1218
+ useSegmentRecommendedArticles ? React__default.createElement(Recommended, {
1219
+ client: client,
1220
+ article: article,
1221
+ index: props.index,
1222
+ Settings: props.Settings,
1223
+ showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage,
1224
+ cpModificationRequired: cpModificationRequired
1225
+ }) : React__default.createElement(
1206
1226
  'section',
1207
1227
  { id: 'related-content-section', className: 'my-1' },
1208
1228
  (article.relatedArticle || RelevantTopics()) && React__default.createElement(
@@ -1314,9 +1334,7 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1314
1334
  React__default.createElement(
1315
1335
  'div',
1316
1336
  { id: 'contextual-native-ad-' + payload._id, className: 'contextual-native-ad' },
1317
- React__default.createElement(DFPAdSlot, _extends({}, payload.contextualAD, {
1318
- refreshFlag: refreshFlag
1319
- }))
1337
+ React__default.createElement(DFPAdSlot, _extends({}, payload.contextualAD, { refreshFlag: refreshFlag }))
1320
1338
  ),
1321
1339
  React__default.createElement(
1322
1340
  'style',
@@ -1370,9 +1388,7 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1370
1388
  React__default.createElement(
1371
1389
  'div',
1372
1390
  { id: 'contextual-native-ad-' + payload._id, className: 'contextual-native-ad' },
1373
- React__default.createElement(DFPAdSlot, _extends({}, payload.contextualAD, {
1374
- refreshFlag: refreshFlag
1375
- }))
1391
+ React__default.createElement(DFPAdSlot, _extends({}, payload.contextualAD, { refreshFlag: refreshFlag }))
1376
1392
  ),
1377
1393
  React__default.createElement(
1378
1394
  'style',
@@ -1556,7 +1572,6 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1556
1572
  partialVisibility: true,
1557
1573
  offset: { bottom: triggerOffset, top: containerHeight && containerHeight },
1558
1574
  onChange: function onChange(isVisible) {
1559
-
1560
1575
  if (isVisible && !isFirstArticle) {
1561
1576
  var pageviewProperties = _extends({}, targeting, {
1562
1577
  category: article && article.category ? article.category.name : ''
@@ -1576,6 +1591,17 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1576
1591
  React__default.createElement(
1577
1592
  'div',
1578
1593
  { className: 'video-detail', style: { marginBottom: isCutomPage(props.article) || showIsi && Array.isArray(isi) && isi.length > 0 ? '15rem' : 0 } },
1594
+ issue && React__default.createElement(
1595
+ Head,
1596
+ null,
1597
+ article.title && React__default.createElement('meta', { name: 'citation_title', content: article.title }),
1598
+ published && React__default.createElement('meta', { name: 'citation_date', content: moment(published).format('LL') }),
1599
+ issue.year && React__default.createElement('meta', { name: 'citation_year', content: issue.year }),
1600
+ issue.isbn_issn && React__default.createElement('meta', { name: 'citation_isbn', content: issue.isbn_issn }),
1601
+ article.summary && React__default.createElement('meta', { name: 'citation_abstract', content: article.summary }),
1602
+ React__default.createElement('meta', { name: 'citation_author', content: getAuthorList() }),
1603
+ issue.pdf && React__default.createElement('meta', { name: 'citation_pdf_url', content: urlForFile({ asset: issue.pdf }) })
1604
+ ),
1579
1605
  isVideoSeries && renderBlockContent(article, meta, authorImgHeight),
1580
1606
  !isVideoSeries && React__default.createElement(
1581
1607
  'div',
@@ -1597,7 +1623,7 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1597
1623
  React__default.createElement(
1598
1624
  'style',
1599
1625
  { jsx: 'true' },
1600
- '\n @media screen and (max-width: 468px) {\n .video-detail .doc-group-container {\n flex-direction: column;\n align-items: flex-start !important;\n }\n .video-detail .doc-group {\n margin-top: 2rem;\n width: calc(100vw - 45px);\n align-items: center;\n }\n .video-detail .doc-group img,\n .doc-group p {\n max-width: calc(100vw - 45px) !important;\n }\n }\n .author-details-img {\n margin-right: 10px;\n max-height: 250px;\n min-height: 150px;\n max-width: 250px;\n min-width: 150px;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .author-details-img-container {\n text-align: center;\n }\n .author-details-col {\n padding-left: 25px;\n }\n '
1626
+ '\n .social-ris-container {\n display: flex;\n justify-content: space-between;\n }\n @media screen and (max-width: 468px) {\n .video-detail .doc-group-container {\n flex-direction: column;\n align-items: flex-start !important;\n }\n .video-detail .doc-group {\n margin-top: 2rem;\n width: calc(100vw - 45px);\n align-items: center;\n }\n .video-detail .doc-group img,\n .doc-group p {\n max-width: calc(100vw - 45px) !important;\n }\n .social-ris-container {\n flex-direction: column;\n }\n }\n .author-details-img {\n margin-right: 10px;\n max-height: 250px;\n min-height: 150px;\n max-width: 250px;\n min-width: 150px;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .author-details-img-container {\n text-align: center;\n }\n .author-details-col {\n padding-left: 25px;\n }\n .left-wrap {\n width: 100%;\n }\n '
1601
1627
  ),
1602
1628
  React__default.createElement(
1603
1629
  'div',
@@ -1681,23 +1707,34 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1681
1707
  'Pages: ' + pageNumber
1682
1708
  )
1683
1709
  ),
1684
- !isVideoSeries && showSocialShare && React__default.createElement(
1685
- 'p',
1686
- null,
1687
- React__default.createElement(SocialShare, {
1688
- shareUrl: shareUrl,
1689
- shareTitle: shareTitle,
1690
- shareVia: shareVia,
1691
- shareSummary: shareSummary,
1692
- shareSubject: shareSubject,
1693
- shareImage: shareImage,
1694
- size: 32,
1695
- siteName: siteName,
1696
- twitterSiteName: twitterSiteName,
1697
- disableMeta: true,
1698
- hidePinterest: hidePinterestShare,
1699
- hideFacebook: hideFBShare
1700
- })
1710
+ React__default.createElement(
1711
+ 'div',
1712
+ { className: 'social-ris-container' },
1713
+ !isVideoSeries && showSocialShare && React__default.createElement(
1714
+ 'p',
1715
+ null,
1716
+ React__default.createElement(SocialShare, {
1717
+ shareUrl: shareUrl,
1718
+ shareTitle: shareTitle,
1719
+ shareVia: shareVia,
1720
+ shareSummary: shareSummary,
1721
+ shareSubject: shareSubject,
1722
+ shareImage: shareImage,
1723
+ size: 32,
1724
+ siteName: siteName,
1725
+ twitterSiteName: twitterSiteName,
1726
+ disableMeta: true,
1727
+ hidePinterest: hidePinterestShare,
1728
+ hideFacebook: hideFBShare
1729
+ })
1730
+ ),
1731
+ issue && downloadCitation && (!issue.hasOwnProperty('show_download_ris_button') || issue.show_download_ris_button !== false) && (!issue.publication || !issue.publication.hasOwnProperty('show_download_ris_button') || issue.publication.show_download_ris_button !== false) && React__default.createElement(
1732
+ Button,
1733
+ { className: 'ris-download-button', onClick: function onClick() {
1734
+ return downloadRIS();
1735
+ } },
1736
+ 'Download RIS'
1737
+ )
1701
1738
  )
1702
1739
  ),
1703
1740
  React__default.createElement(
@@ -1765,13 +1802,6 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1765
1802
  React__default.createElement(
1766
1803
  'div',
1767
1804
  { className: 'downloads-container' },
1768
- issue && downloadCitation && (!issue.hasOwnProperty('show_download_ris_button') || issue.show_download_ris_button !== false) && (!issue.publication || !issue.publication.hasOwnProperty('show_download_ris_button') || issue.publication.show_download_ris_button !== false) && React__default.createElement(
1769
- Button,
1770
- { className: 'ris-download-button', onClick: function onClick() {
1771
- return downloadRIS();
1772
- } },
1773
- 'Download RIS'
1774
- ),
1775
1805
  issue && issue.pdf && React__default.createElement(
1776
1806
  'a',
1777
1807
  { rel: 'noopener', href: urlForFile({ asset: issue.pdf }), target: '_blank', title: 'Download issue' },
@@ -7,11 +7,11 @@ var getQuery = function getQuery(type) {
7
7
  //Site level conditions should start with && (logical AND), and site level params should end with , (comma) in order to execute query
8
8
 
9
9
  switch (type) {
10
- // quiz video series and slideshow
10
+ // quiz video series and slideshow
11
11
  case 'related':
12
- 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 && isHealthcareProfessional != 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 && !defined(body[].quizzes)\n && !defined(body[].slides)\n && !defined(body[].articles)\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 hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n }';
12
+ 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 && isHealthcareProfessional != 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 && !defined(body[].quizzes)\n && !defined(body[].slides)\n && !defined(body[].articles)\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, firstName, lastName, 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 hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n }';
13
13
  case 'article':
14
- 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 disableEpisodeNumber,\n excludeRelatedContents,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n excludeRelatedContents,\n \'path\': identifier.current,\n hideSeriesSlider\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 show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n\n }';
14
+ 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, firstName, lastName, 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, firstName, lastName, 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 disableEpisodeNumber,\n excludeRelatedContents,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n excludeRelatedContents,\n \'path\': identifier.current,\n hideSeriesSlider\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 show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n\n }';
15
15
  case 'publication':
16
16
  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 }';
17
17
  case 'issue':
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mjhls/mjh-framework",
3
- "version": "1.0.959-gridcontent-nojs-fix-v3",
3
+ "version": "1.0.959-ris-update-v1",
4
4
  "description": "Foundation Framework",
5
5
  "author": "mjh-framework",
6
6
  "license": "MIT",