@mjhls/mjh-framework 1.0.99-0.next12 → 1.0.99

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 (356) hide show
  1. package/README.md +172 -168
  2. package/dist/index.es.js +12800 -0
  3. package/dist/index.es.js.map +1 -0
  4. package/dist/index.js +12835 -0
  5. package/dist/index.js.map +1 -0
  6. package/package.json +84 -115
  7. package/dist/cjs/AD.js +0 -32
  8. package/dist/cjs/AD300x250.js +0 -95
  9. package/dist/cjs/AD300x250x600.js +0 -112
  10. package/dist/cjs/AD728x90.js +0 -109
  11. package/dist/cjs/ADFloatingFooter.js +0 -143
  12. package/dist/cjs/ADFooter.js +0 -53
  13. package/dist/cjs/ADGutter.js +0 -115
  14. package/dist/cjs/ADInfeed-cf54cb8a.js +0 -66
  15. package/dist/cjs/ADSkyscraper.js +0 -117
  16. package/dist/cjs/ADSponsoredResources.js +0 -114
  17. package/dist/cjs/ADWebcast.js +0 -119
  18. package/dist/cjs/ADWelcome.js +0 -166
  19. package/dist/cjs/ADlgInfeed-d06624d8.js +0 -60
  20. package/dist/cjs/AccordionPanel.js +0 -94
  21. package/dist/cjs/AdSlot.js +0 -251
  22. package/dist/cjs/AdSlotsProvider.js +0 -183
  23. package/dist/cjs/AlgoliaSearch.js +0 -195
  24. package/dist/cjs/AlphabeticList.js +0 -135
  25. package/dist/cjs/ArticleCarousel.js +0 -46
  26. package/dist/cjs/ArticleProgramLandingPage.js +0 -184
  27. package/dist/cjs/ArticleSeriesLandingPage.js +0 -162
  28. package/dist/cjs/ArticleSeriesListing.js +0 -315
  29. package/dist/cjs/AuthWrapper.js +0 -720
  30. package/dist/cjs/AuthorComponent-39b37d84.js +0 -96
  31. package/dist/cjs/Beam.js +0 -350
  32. package/dist/cjs/BlockContent-36e54d77.js +0 -916
  33. package/dist/cjs/Breadcrumbs.js +0 -107
  34. package/dist/cjs/CMEDeck.js +0 -443
  35. package/dist/cjs/Column1.js +0 -39
  36. package/dist/cjs/Column2.js +0 -75
  37. package/dist/cjs/Column3.js +0 -144
  38. package/dist/cjs/ConferenceArticleCard.js +0 -93
  39. package/dist/cjs/ConferenceBanner-6c9e718a.js +0 -24
  40. package/dist/cjs/ContentCardPaginated.js +0 -417
  41. package/dist/cjs/DeckContent.js +0 -507
  42. package/dist/cjs/DeckQueue.js +0 -403
  43. package/dist/cjs/DeckQueuePaginated.js +0 -348
  44. package/dist/cjs/Dfp-94f8ccdf.js +0 -103
  45. package/dist/cjs/EventsDeck.js +0 -857
  46. package/dist/cjs/ExternalResources.js +0 -217
  47. package/dist/cjs/Feature.js +0 -129
  48. package/dist/cjs/ForbesHero.js +0 -137
  49. package/dist/cjs/GridContent.js +0 -828
  50. package/dist/cjs/GridContentPaginated.js +0 -704
  51. package/dist/cjs/GridHero.js +0 -147
  52. package/dist/cjs/GroupDeck.js +0 -314
  53. package/dist/cjs/HamMagazine.js +0 -602
  54. package/dist/cjs/Header.js +0 -39
  55. package/dist/cjs/HealthCareProfessionalModal.js +0 -78
  56. package/dist/cjs/Hero.js +0 -48
  57. package/dist/cjs/HighlightenVideo.js +0 -69
  58. package/dist/cjs/HorizontalArticleListing.js +0 -165
  59. package/dist/cjs/HorizontalHero.js +0 -111
  60. package/dist/cjs/ImageSlider-a7fb6218.js +0 -182
  61. package/dist/cjs/IssueContentDeck.js +0 -241
  62. package/dist/cjs/IssueDeck.js +0 -268
  63. package/dist/cjs/IssueLanding.js +0 -172
  64. package/dist/cjs/KMTracker.js +0 -27
  65. package/dist/cjs/LeftNav.js +0 -145
  66. package/dist/cjs/MasterDeck.js +0 -555
  67. package/dist/cjs/MasterDeckPaginated.js +0 -469
  68. package/dist/cjs/MediaSeriesCard-36eab8b7.js +0 -9502
  69. package/dist/cjs/MediaSeriesLanding.js +0 -503
  70. package/dist/cjs/MediaSeriesLandingPaginated.js +0 -529
  71. package/dist/cjs/NavDvm.js +0 -245
  72. package/dist/cjs/NavFooter-3dcd99a8.js +0 -66
  73. package/dist/cjs/NavMagazine.js +0 -595
  74. package/dist/cjs/NavNative.js +0 -861
  75. package/dist/cjs/OncliveHero.js +0 -79
  76. package/dist/cjs/OncliveLargeHero.js +0 -241
  77. package/dist/cjs/PageFilter.js +0 -72
  78. package/dist/cjs/Pagination-1e0d5f1d.js +0 -90
  79. package/dist/cjs/PartnerDetailListing.js +0 -326
  80. package/dist/cjs/PartnerDetailListingPaginated.js +0 -318
  81. package/dist/cjs/PdfDownload.js +0 -28
  82. package/dist/cjs/PixelTracking.js +0 -165
  83. package/dist/cjs/PopUpModal.js +0 -58
  84. package/dist/cjs/PtceDeck.js +0 -149
  85. package/dist/cjs/PubSection.js +0 -120
  86. package/dist/cjs/PubToc.js +0 -87
  87. package/dist/cjs/PublicationDeck.js +0 -183
  88. package/dist/cjs/PublicationFeature-be5f3503.js +0 -130
  89. package/dist/cjs/PublicationLanding.js +0 -853
  90. package/dist/cjs/QueueDeckExpanded.js +0 -1540
  91. package/dist/cjs/QueueDeckExpandedPaginated.js +0 -1388
  92. package/dist/cjs/RecentNews.js +0 -91
  93. package/dist/cjs/RelatedContent.js +0 -114
  94. package/dist/cjs/RelatedTopicsDropdown.js +0 -90
  95. package/dist/cjs/RolesDeck.js +0 -94
  96. package/dist/cjs/Schema.js +0 -101
  97. package/dist/cjs/Search.js +0 -66
  98. package/dist/cjs/Segment.js +0 -403
  99. package/dist/cjs/SeriesListingDeck.js +0 -248
  100. package/dist/cjs/SeriesSlider-b94f1dd5.js +0 -332
  101. package/dist/cjs/SetCookie.js +0 -10
  102. package/dist/cjs/SideFooter.js +0 -151
  103. package/dist/cjs/SocialIcons.js +0 -103
  104. package/dist/cjs/SocialSearchComponent-b7faaedc.js +0 -213
  105. package/dist/cjs/SocialShare.js +0 -74
  106. package/dist/cjs/TaxonomyCard.js +0 -253
  107. package/dist/cjs/TaxonomyDescription.js +0 -205
  108. package/dist/cjs/TemplateNormal.js +0 -204
  109. package/dist/cjs/ThumbnailCard.js +0 -59
  110. package/dist/cjs/Ustream.js +0 -156
  111. package/dist/cjs/VerticalHero.js +0 -74
  112. package/dist/cjs/VideoProgramLandingPage.js +0 -260
  113. package/dist/cjs/VideoSeriesCard.js +0 -88
  114. package/dist/cjs/VideoSeriesFilter.js +0 -128
  115. package/dist/cjs/VideoSeriesLandingPage.js +0 -178
  116. package/dist/cjs/VideoSeriesListing.js +0 -422
  117. package/dist/cjs/View.js +0 -2601
  118. package/dist/cjs/YahooHero.js +0 -126
  119. package/dist/cjs/YoutubeGroup.js +0 -371
  120. package/dist/cjs/_commonjsHelpers-06173234.js +0 -25
  121. package/dist/cjs/_is-array-54228b29.js +0 -74
  122. package/dist/cjs/_iter-detect-b1df62f0.js +0 -52
  123. package/dist/cjs/_library-dd23b178.js +0 -5
  124. package/dist/cjs/_object-pie-083f2dd6.js +0 -16
  125. package/dist/cjs/_object-sap-d1978572.js +0 -16
  126. package/dist/cjs/_object-to-array-ce86cae7.js +0 -25
  127. package/dist/cjs/asyncToGenerator-77821af0.js +0 -1395
  128. package/dist/cjs/brightcove-react-player-loader.es-a195642e.js +0 -2232
  129. package/dist/cjs/core.get-iterator-method-5643aa10.js +0 -584
  130. package/dist/cjs/debounce-d4a2369b.js +0 -216
  131. package/dist/cjs/define-property-e8404b64.js +0 -20
  132. package/dist/cjs/defineProperty-9673846a.js +0 -34
  133. package/dist/cjs/entities-3f9d0f2f.js +0 -506
  134. package/dist/cjs/eq-5fc26c07.js +0 -79
  135. package/dist/cjs/extends-7c86182f.js +0 -87
  136. package/dist/cjs/faundadb.js +0 -644
  137. package/dist/cjs/get-5839e5b5.js +0 -920
  138. package/dist/cjs/getContentCategory-f38a4c00.js +0 -11
  139. package/dist/cjs/getKeywords.js +0 -46
  140. package/dist/cjs/getPtceActivities.js +0 -89
  141. package/dist/cjs/getQuery.js +0 -28
  142. package/dist/cjs/getRelatedArticle.js +0 -747
  143. package/dist/cjs/getRootDocGroup.js +0 -62
  144. package/dist/cjs/getSerializers.js +0 -64
  145. package/dist/cjs/getSeriesDetail.js +0 -40
  146. package/dist/cjs/getTargeting-4439c99d.js +0 -164
  147. package/dist/cjs/getTargeting.js +0 -13
  148. package/dist/cjs/iconBase-be4097c0.js +0 -106
  149. package/dist/cjs/index-0e4427c8.js +0 -1683
  150. package/dist/cjs/index-187c967e.js +0 -54
  151. package/dist/cjs/index-7361fa72.js +0 -11305
  152. package/dist/cjs/index-eadd5035.js +0 -613
  153. package/dist/cjs/index-efca863c.js +0 -556
  154. package/dist/cjs/index-f86bb269.js +0 -1571
  155. package/dist/cjs/index.es-f3e47207.js +0 -445
  156. package/dist/cjs/index.esm-2bb721c8.js +0 -96
  157. package/dist/cjs/index.esm-c1e16606.js +0 -13
  158. package/dist/cjs/index.esm-d51c9ac6.js +0 -25
  159. package/dist/cjs/index.esm-d81454e7.js +0 -19
  160. package/dist/cjs/index.js +0 -635
  161. package/dist/cjs/inherits-de66ea16.js +0 -188
  162. package/dist/cjs/isSymbol-03abbdf0.js +0 -209
  163. package/dist/cjs/js.cookie-a511c430.js +0 -160
  164. package/dist/cjs/keys-e982b3fa.js +0 -25
  165. package/dist/cjs/lodash-f0783643.js +0 -17195
  166. package/dist/cjs/main-f1c77adb.js +0 -973
  167. package/dist/cjs/moment-aca40de1.js +0 -5669
  168. package/dist/cjs/react-social-icons-af932527.js +0 -616
  169. package/dist/cjs/slicedToArray-067dd3bc.js +0 -95
  170. package/dist/cjs/smoothscroll-99df7f93.js +0 -438
  171. package/dist/cjs/stringify-f7a37a8d.js +0 -17
  172. package/dist/cjs/style-inject.es-dcee06b6.js +0 -30
  173. package/dist/cjs/timeDifferenceCalc.js +0 -39
  174. package/dist/cjs/toConsumableArray-d7797c2b.js +0 -74
  175. package/dist/cjs/toNumber-5e1fac58.js +0 -104
  176. package/dist/cjs/typeof-567e31ff.js +0 -382
  177. package/dist/cjs/urlFor.js +0 -65
  178. package/dist/cjs/urlForFile-29d3815a.js +0 -24
  179. package/dist/cjs/ustream-api-3819e4aa.js +0 -106
  180. package/dist/cjs/visibility-sensor-eb2c5b69.js +0 -597
  181. package/dist/cjs/web.dom.iterable-d98303e0.js +0 -50
  182. package/dist/esm/AD.js +0 -26
  183. package/dist/esm/AD300x250.js +0 -89
  184. package/dist/esm/AD300x250x600.js +0 -106
  185. package/dist/esm/AD728x90.js +0 -103
  186. package/dist/esm/ADFloatingFooter.js +0 -137
  187. package/dist/esm/ADFooter.js +0 -47
  188. package/dist/esm/ADGutter.js +0 -109
  189. package/dist/esm/ADInfeed-f684cac9.js +0 -59
  190. package/dist/esm/ADSkyscraper.js +0 -111
  191. package/dist/esm/ADSponsoredResources.js +0 -108
  192. package/dist/esm/ADWebcast.js +0 -113
  193. package/dist/esm/ADWelcome.js +0 -160
  194. package/dist/esm/ADlgInfeed-8c438cee.js +0 -54
  195. package/dist/esm/AccordionPanel.js +0 -87
  196. package/dist/esm/AdSlot.js +0 -244
  197. package/dist/esm/AdSlotsProvider.js +0 -176
  198. package/dist/esm/AlgoliaSearch.js +0 -188
  199. package/dist/esm/AlphabeticList.js +0 -129
  200. package/dist/esm/ArticleCarousel.js +0 -40
  201. package/dist/esm/ArticleProgramLandingPage.js +0 -178
  202. package/dist/esm/ArticleSeriesLandingPage.js +0 -156
  203. package/dist/esm/ArticleSeriesListing.js +0 -308
  204. package/dist/esm/AuthWrapper.js +0 -714
  205. package/dist/esm/AuthorComponent-defe68b6.js +0 -90
  206. package/dist/esm/Beam.js +0 -348
  207. package/dist/esm/BlockContent-c99c9a8d.js +0 -909
  208. package/dist/esm/Breadcrumbs.js +0 -100
  209. package/dist/esm/CMEDeck.js +0 -437
  210. package/dist/esm/Column1.js +0 -29
  211. package/dist/esm/Column2.js +0 -65
  212. package/dist/esm/Column3.js +0 -134
  213. package/dist/esm/ConferenceArticleCard.js +0 -87
  214. package/dist/esm/ConferenceBanner-8792ebd2.js +0 -18
  215. package/dist/esm/ContentCardPaginated.js +0 -406
  216. package/dist/esm/DeckContent.js +0 -497
  217. package/dist/esm/DeckQueue.js +0 -393
  218. package/dist/esm/DeckQueuePaginated.js +0 -337
  219. package/dist/esm/Dfp-4b99f79d.js +0 -96
  220. package/dist/esm/EventsDeck.js +0 -844
  221. package/dist/esm/ExternalResources.js +0 -210
  222. package/dist/esm/Feature.js +0 -122
  223. package/dist/esm/ForbesHero.js +0 -131
  224. package/dist/esm/GridContent.js +0 -818
  225. package/dist/esm/GridContentPaginated.js +0 -693
  226. package/dist/esm/GridHero.js +0 -141
  227. package/dist/esm/GroupDeck.js +0 -308
  228. package/dist/esm/HamMagazine.js +0 -590
  229. package/dist/esm/Header.js +0 -30
  230. package/dist/esm/HealthCareProfessionalModal.js +0 -70
  231. package/dist/esm/Hero.js +0 -42
  232. package/dist/esm/HighlightenVideo.js +0 -63
  233. package/dist/esm/HorizontalArticleListing.js +0 -159
  234. package/dist/esm/HorizontalHero.js +0 -105
  235. package/dist/esm/ImageSlider-eab2fe41.js +0 -176
  236. package/dist/esm/IssueContentDeck.js +0 -231
  237. package/dist/esm/IssueDeck.js +0 -258
  238. package/dist/esm/IssueLanding.js +0 -166
  239. package/dist/esm/KMTracker.js +0 -25
  240. package/dist/esm/LeftNav.js +0 -136
  241. package/dist/esm/MasterDeck.js +0 -548
  242. package/dist/esm/MasterDeckPaginated.js +0 -461
  243. package/dist/esm/MediaSeriesCard-99048e65.js +0 -9492
  244. package/dist/esm/MediaSeriesLanding.js +0 -496
  245. package/dist/esm/MediaSeriesLandingPaginated.js +0 -522
  246. package/dist/esm/NavDvm.js +0 -233
  247. package/dist/esm/NavFooter-e27bd93b.js +0 -60
  248. package/dist/esm/NavMagazine.js +0 -583
  249. package/dist/esm/NavNative.js +0 -846
  250. package/dist/esm/OncliveHero.js +0 -73
  251. package/dist/esm/OncliveLargeHero.js +0 -235
  252. package/dist/esm/PageFilter.js +0 -66
  253. package/dist/esm/Pagination-cd21f8c2.js +0 -82
  254. package/dist/esm/PartnerDetailListing.js +0 -320
  255. package/dist/esm/PartnerDetailListingPaginated.js +0 -312
  256. package/dist/esm/PdfDownload.js +0 -22
  257. package/dist/esm/PixelTracking.js +0 -156
  258. package/dist/esm/PopUpModal.js +0 -51
  259. package/dist/esm/PtceDeck.js +0 -143
  260. package/dist/esm/PubSection.js +0 -114
  261. package/dist/esm/PubToc.js +0 -81
  262. package/dist/esm/PublicationDeck.js +0 -173
  263. package/dist/esm/PublicationFeature-03500094.js +0 -121
  264. package/dist/esm/PublicationLanding.js +0 -843
  265. package/dist/esm/QueueDeckExpanded.js +0 -1534
  266. package/dist/esm/QueueDeckExpandedPaginated.js +0 -1382
  267. package/dist/esm/RecentNews.js +0 -85
  268. package/dist/esm/RelatedContent.js +0 -108
  269. package/dist/esm/RelatedTopicsDropdown.js +0 -82
  270. package/dist/esm/RolesDeck.js +0 -84
  271. package/dist/esm/Schema.js +0 -95
  272. package/dist/esm/Search.js +0 -57
  273. package/dist/esm/Segment.js +0 -401
  274. package/dist/esm/SeriesListingDeck.js +0 -242
  275. package/dist/esm/SeriesSlider-609f9d94.js +0 -326
  276. package/dist/esm/SetCookie.js +0 -8
  277. package/dist/esm/SideFooter.js +0 -145
  278. package/dist/esm/SocialIcons.js +0 -97
  279. package/dist/esm/SocialSearchComponent-1d8a9f59.js +0 -204
  280. package/dist/esm/SocialShare.js +0 -67
  281. package/dist/esm/TaxonomyCard.js +0 -243
  282. package/dist/esm/TaxonomyDescription.js +0 -198
  283. package/dist/esm/TemplateNormal.js +0 -197
  284. package/dist/esm/ThumbnailCard.js +0 -52
  285. package/dist/esm/Ustream.js +0 -150
  286. package/dist/esm/VerticalHero.js +0 -68
  287. package/dist/esm/VideoProgramLandingPage.js +0 -251
  288. package/dist/esm/VideoSeriesCard.js +0 -82
  289. package/dist/esm/VideoSeriesFilter.js +0 -122
  290. package/dist/esm/VideoSeriesLandingPage.js +0 -172
  291. package/dist/esm/VideoSeriesListing.js +0 -415
  292. package/dist/esm/View.js +0 -2590
  293. package/dist/esm/YahooHero.js +0 -120
  294. package/dist/esm/YoutubeGroup.js +0 -365
  295. package/dist/esm/_commonjsHelpers-0c4b6f40.js +0 -19
  296. package/dist/esm/_is-array-893ab020.js +0 -71
  297. package/dist/esm/_iter-detect-f089461c.js +0 -48
  298. package/dist/esm/_library-528f1934.js +0 -3
  299. package/dist/esm/_object-pie-133f504a.js +0 -13
  300. package/dist/esm/_object-sap-169d6272.js +0 -14
  301. package/dist/esm/_object-to-array-50a6b9a3.js +0 -23
  302. package/dist/esm/asyncToGenerator-9716ae8d.js +0 -1387
  303. package/dist/esm/brightcove-react-player-loader.es-57a70a56.js +0 -2226
  304. package/dist/esm/core.get-iterator-method-e903ff31.js +0 -547
  305. package/dist/esm/debounce-533d9748.js +0 -214
  306. package/dist/esm/define-property-99e66838.js +0 -18
  307. package/dist/esm/defineProperty-8fa0bc8d.js +0 -32
  308. package/dist/esm/entities-932b50cf.js +0 -503
  309. package/dist/esm/eq-bdcbf886.js +0 -76
  310. package/dist/esm/extends-dc6a71fd.js +0 -83
  311. package/dist/esm/faundadb.js +0 -636
  312. package/dist/esm/get-3c308da4.js +0 -918
  313. package/dist/esm/getContentCategory-15dcc413.js +0 -9
  314. package/dist/esm/getKeywords.js +0 -44
  315. package/dist/esm/getPtceActivities.js +0 -87
  316. package/dist/esm/getQuery.js +0 -26
  317. package/dist/esm/getRelatedArticle.js +0 -745
  318. package/dist/esm/getRootDocGroup.js +0 -60
  319. package/dist/esm/getSerializers.js +0 -58
  320. package/dist/esm/getSeriesDetail.js +0 -38
  321. package/dist/esm/getTargeting-db566006.js +0 -161
  322. package/dist/esm/getTargeting.js +0 -7
  323. package/dist/esm/iconBase-ccc56b97.js +0 -81
  324. package/dist/esm/index-0dbff1d1.js +0 -553
  325. package/dist/esm/index-5cc7b406.js +0 -1674
  326. package/dist/esm/index-755f2cc2.js +0 -605
  327. package/dist/esm/index-79cfd25c.js +0 -1569
  328. package/dist/esm/index-c60f3bb6.js +0 -11284
  329. package/dist/esm/index-c7e2ac95.js +0 -52
  330. package/dist/esm/index.es-a6137319.js +0 -439
  331. package/dist/esm/index.esm-1bd8a0a8.js +0 -18
  332. package/dist/esm/index.esm-37268dca.js +0 -89
  333. package/dist/esm/index.esm-9b042655.js +0 -10
  334. package/dist/esm/index.esm-eb1e8e80.js +0 -14
  335. package/dist/esm/index.js +0 -529
  336. package/dist/esm/inherits-8a801a18.js +0 -179
  337. package/dist/esm/isSymbol-a7e9aafe.js +0 -203
  338. package/dist/esm/js.cookie-6874175c.js +0 -158
  339. package/dist/esm/keys-425c8ab0.js +0 -23
  340. package/dist/esm/lodash-f97fd99a.js +0 -17193
  341. package/dist/esm/main-1894c974.js +0 -961
  342. package/dist/esm/moment-bc12cb97.js +0 -5667
  343. package/dist/esm/react-social-icons-9be47857.js +0 -609
  344. package/dist/esm/slicedToArray-ca2c8b8d.js +0 -92
  345. package/dist/esm/smoothscroll-fa4e3f8c.js +0 -436
  346. package/dist/esm/stringify-c21932b3.js +0 -15
  347. package/dist/esm/style-inject.es-1f59c1d0.js +0 -28
  348. package/dist/esm/timeDifferenceCalc.js +0 -37
  349. package/dist/esm/toConsumableArray-7b1c0e23.js +0 -71
  350. package/dist/esm/toNumber-5aeba6e7.js +0 -102
  351. package/dist/esm/typeof-83d9eb10.js +0 -378
  352. package/dist/esm/urlFor.js +0 -63
  353. package/dist/esm/urlForFile-413f5ddb.js +0 -22
  354. package/dist/esm/ustream-api-41166338.js +0 -104
  355. package/dist/esm/visibility-sensor-72fd8f8b.js +0 -590
  356. package/dist/esm/web.dom.iterable-fdf034f5.js +0 -48
package/dist/cjs/View.js DELETED
@@ -1,2601 +0,0 @@
1
- 'use strict';
2
-
3
- var asyncToGenerator = require('./asyncToGenerator-77821af0.js');
4
- var _extends = require('./extends-7c86182f.js');
5
- var slicedToArray = require('./slicedToArray-067dd3bc.js');
6
- var React = require('react');
7
- var Head = require('next/head');
8
- var Router = require('next/router');
9
- var stringify = require('./stringify-f7a37a8d.js');
10
- var toConsumableArray = require('./toConsumableArray-d7797c2b.js');
11
- var moment = require('./moment-aca40de1.js');
12
- var BlockContent = require('./BlockContent-36e54d77.js');
13
- var main = require('./main-f1c77adb.js');
14
- require('react-bootstrap/Dropdown');
15
- var Form = require('react-bootstrap/Form');
16
- var FormControl = require('react-bootstrap/FormControl');
17
- var Button = require('react-bootstrap/Button');
18
- var visibilitySensor = require('./visibility-sensor-eb2c5b69.js');
19
- var SocialShare = require('./SocialShare.js');
20
- var getSerializers = require('./index-7361fa72.js');
21
- var AdSlot = require('./AdSlot.js');
22
- var SeriesSlider = require('./SeriesSlider-b94f1dd5.js');
23
- var getTargeting = require('./getTargeting-4439c99d.js');
24
- var getKeywords = require('./getKeywords.js');
25
- var urlFor = require('./urlFor.js');
26
- var urlForFile = require('./urlForFile-29d3815a.js');
27
- var _typeof = require('./typeof-567e31ff.js');
28
- var index_esm = require('./index.esm-d51c9ac6.js');
29
- var styleInject_es = require('./style-inject.es-dcee06b6.js');
30
- require('./index-eadd5035.js');
31
- var disqusReact = require('disqus-react');
32
- var Schema = require('./Schema.js');
33
- var FileSaver = require('file-saver');
34
- var PixelTracking = require('./PixelTracking.js');
35
- var keys = require('./keys-e982b3fa.js');
36
- var index_es = require('./index.es-f3e47207.js');
37
- var index = require('./index-0e4427c8.js');
38
- var getRelatedArticle = require('./getRelatedArticle.js');
39
- var getQuery = require('./getQuery.js');
40
- var getSeriesDetail = require('./getSeriesDetail.js');
41
- require('./_commonjsHelpers-06173234.js');
42
- require('./core.get-iterator-method-5643aa10.js');
43
- require('./web.dom.iterable-d98303e0.js');
44
- require('./_library-dd23b178.js');
45
- require('./_iter-detect-b1df62f0.js');
46
- require('./_object-pie-083f2dd6.js');
47
- require('prop-types');
48
- require('./index-efca863c.js');
49
- require('react-dom');
50
- require('react-share');
51
- require('react-bootstrap');
52
- require('./index-187c967e.js');
53
- require('./Beam.js');
54
- require('./Segment.js');
55
- require('./brightcove-react-player-loader.es-a195642e.js');
56
- require('react-bootstrap/Modal');
57
- require('react-ga');
58
- require('./GroupDeck.js');
59
- require('./smoothscroll-99df7f93.js');
60
- require('./_is-array-54228b29.js');
61
- require('./_object-to-array-ce86cae7.js');
62
- require('react-bootstrap/Pagination');
63
- require('./entities-3f9d0f2f.js');
64
- require('react-bootstrap/Row');
65
- require('react-bootstrap/Col');
66
- require('./inherits-de66ea16.js');
67
- require('./_object-sap-d1978572.js');
68
- require('./define-property-e8404b64.js');
69
- require('./index.esm-d81454e7.js');
70
- require('./iconBase-be4097c0.js');
71
- require('react-bootstrap/Figure');
72
- require('react-bootstrap/OverlayTrigger');
73
- require('react-bootstrap/Tooltip');
74
- require('react-bootstrap/Popover');
75
- require('./debounce-d4a2369b.js');
76
- require('./isSymbol-03abbdf0.js');
77
- require('./toNumber-5e1fac58.js');
78
-
79
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
80
-
81
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
82
- var Head__default = /*#__PURE__*/_interopDefaultLegacy(Head);
83
- var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form);
84
- var FormControl__default = /*#__PURE__*/_interopDefaultLegacy(FormControl);
85
- var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
86
- var FileSaver__default = /*#__PURE__*/_interopDefaultLegacy(FileSaver);
87
-
88
- var getArticleSummary = function getArticleSummary(article) {
89
- if (article.summary && article.summary.length > 0) {
90
- return article.summary;
91
- } else {
92
- return false;
93
- }
94
- };
95
-
96
- var getDocumentGroupUrl = function getDocumentGroupUrl(docGroup) {
97
- if (!docGroup) {
98
- return null;
99
- }
100
- var url = void 0;
101
-
102
- if (docGroup.path && docGroup.path.includes('/') && (!docGroup.parent || !docGroup.parent.parent)) {
103
- return '/' + docGroup.path;
104
- }
105
- // Checking if Parent has Parent
106
- if (docGroup.path && docGroup.path.includes('/') && docGroup.parent && docGroup.parent.parent) {
107
- if (docGroup.path.includes(docGroup.parent.identifier.current)) {
108
- return '/' + docGroup.parent.parent.identifier.current + '/' + docGroup.path;
109
- } else {
110
- return '/' + docGroup.parent.parent.identifier.current + '/' + docGroup.parent.identifier.current + '/' + docGroup.path;
111
- }
112
- }
113
-
114
- if (docGroup.parent) {
115
- url = '/' + docGroup.parent.identifier.current;
116
- if (docGroup.parent.parent && docGroup.parent.parent.name) {
117
- url = '/' + docGroup.parent.parent.identifier.current + url;
118
- }
119
- }
120
-
121
- if (!docGroup.thumbnail) ;
122
- if (typeof url != 'undefined') {
123
- url = url + '/' + docGroup.path;
124
- } else {
125
- url = '/' + docGroup.path;
126
- }
127
-
128
- return url;
129
- };
130
-
131
- var getDocumentGroupName = function getDocumentGroupName(docGroup) {
132
- var name = void 0;
133
- if (!docGroup) {
134
- return null;
135
- }
136
-
137
- if (docGroup.parent) {
138
- name = docGroup.parent.name;
139
-
140
- if (docGroup.parent.parent && docGroup.parent.parent.name) {
141
- name = docGroup.parent.parent.name + ' | ' + name;
142
- }
143
- }
144
-
145
- //if (!docGroup.thumbnail) {
146
- if (typeof name != 'undefined') {
147
- name = name + ' | <b>' + docGroup.name + '</b>';
148
- } else {
149
- name = '<b>' + docGroup.name + '</b>';
150
- }
151
- //}
152
-
153
- return name && typeof name != 'undefined' ? name : null;
154
- };
155
-
156
- var DocumentGroup = function DocumentGroup(_ref) {
157
- var article = _ref.article,
158
- client = _ref.client;
159
-
160
- var mediaSeriesGroup = null;
161
-
162
- if (article.documentGroup && article.documentGroup.isShow !== false && article.documentGroup.isSeries !== true) {
163
- mediaSeriesGroup = article.documentGroup;
164
- }
165
- if (!article.documentGroup && article.documentGroupMapping) {
166
- for (var i = 0; i < article.documentGroupMapping.length; i++) {
167
- if (article.documentGroupMapping[i].isShow !== false && article.documentGroupMapping[i].isSeries !== true) {
168
- mediaSeriesGroup = article.documentGroupMapping[i];
169
- break;
170
- }
171
- }
172
- }
173
-
174
- if (!mediaSeriesGroup) {
175
- return null;
176
- }
177
-
178
- var name = getDocumentGroupName(mediaSeriesGroup);
179
- var url = getDocumentGroupUrl(mediaSeriesGroup);
180
- var thumbnailUrl = false;
181
-
182
- if (mediaSeriesGroup.thumbnail) {
183
- thumbnailUrl = urlFor({ client: client, source: mediaSeriesGroup.thumbnail });
184
- }
185
-
186
- return React__default['default'].createElement(
187
- 'a',
188
- {
189
- href: url,
190
- className: 'doc-group',
191
- style: { display: 'flex', flexDirection: 'column', padding: '0 1rem', justifyContent: thumbnailUrl ? 'center' : 'flex-start', alignItems: 'center' } },
192
- thumbnailUrl && React__default['default'].createElement('img', { style: { maxWidth: '220px', maxHeight: '100px', marginTop: '1rem' }, src: thumbnailUrl, alt: name }),
193
- !thumbnailUrl && React__default['default'].createElement('p', {
194
- style: { maxWidth: '315px', margin: '0', color: 'var(--primary)', textAlign: thumbnailUrl ? 'center' : main.main_43 ? 'left' : 'right', marginTop: '.25rem' },
195
- dangerouslySetInnerHTML: { __html: name } }),
196
- main.main_43 && !thumbnailUrl && React__default['default'].createElement(
197
- 'style',
198
- { jsx: 'true' },
199
- '\n a.doc-group {\n display: block !important;\n padding: 0 !important;\n }\n '
200
- )
201
- );
202
- };
203
-
204
- var findIndex = function findIndex(arr) {
205
- var indexes = [];
206
- if ((typeof arr === 'undefined' ? 'undefined' : _typeof._typeof(arr)) === 'object') {
207
- var _iteratorNormalCompletion = true;
208
- var _didIteratorError = false;
209
- var _iteratorError = undefined;
210
-
211
- try {
212
- for (var _iterator = slicedToArray._getIterator(arr), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
213
- var ele = _step.value;
214
-
215
- if (ele['_type'] === 'block' && ele.children.some(function (child) {
216
- return child.text.trim().length > 0;
217
- }) && ele['listItem'] !== 'bullet' &&
218
- // To skip li tags when setting contextual native ads
219
- ele['listItem'] !== 'number' && ele['style'] === 'normal' || ele['_type'] === 'figure') {
220
- indexes.push(arr.indexOf(ele));
221
- }
222
- }
223
- } catch (err) {
224
- _didIteratorError = true;
225
- _iteratorError = err;
226
- } finally {
227
- try {
228
- if (!_iteratorNormalCompletion && _iterator.return) {
229
- _iterator.return();
230
- }
231
- } finally {
232
- if (_didIteratorError) {
233
- throw _iteratorError;
234
- }
235
- }
236
- }
237
- }
238
- return indexes;
239
- };
240
-
241
- var ISI = function ISI(props) {
242
- var children = props.children;
243
-
244
- var _useState = React.useState(false),
245
- _useState2 = slicedToArray._slicedToArray(_useState, 2),
246
- active = _useState2[0],
247
- setActive = _useState2[1];
248
-
249
- var _useState3 = React.useState(false),
250
- _useState4 = slicedToArray._slicedToArray(_useState3, 2),
251
- bottomOfArticle = _useState4[0],
252
- setbottomOfArticle = _useState4[1];
253
-
254
- var isi = React.useRef();
255
-
256
- React.useEffect(function () {
257
- if (active) {
258
- var offset = '5rem';
259
- var nav = document.getElementsByTagName('header');
260
- if (nav && nav.length > 0) {
261
- offset = nav[0].offsetHeight + 'px';
262
- }
263
- isi.current.style.maxHeight = 'calc(100% - ' + offset + ')';
264
- isi.current.style.overflowY = 'scroll';
265
- } else {
266
- isi.current.style.maxHeight = '';
267
- isi.current.style.overflowY = '';
268
- }
269
- }, [active]);
270
- React.useEffect(function () {
271
- var detectBottomOfArticle = function detectBottomOfArticle() {
272
- var article_body = document.getElementById('article__block');
273
- var isi = document.getElementById('isi');
274
- var articleBottomPosition = article_body.getBoundingClientRect().bottom - window.innerHeight;
275
- // console.log(articleBottomPosition, bottomOfArticle)
276
- if (articleBottomPosition < 30 && !isi.classList.contains('in-view')) {
277
- setbottomOfArticle(true);
278
- }
279
- if (articleBottomPosition > 60 && isi.classList.contains('in-view')) {
280
- setbottomOfArticle(false);
281
- }
282
- };
283
- window.addEventListener('scroll', detectBottomOfArticle);
284
- return function () {
285
- return window.removeEventListener('scroll', detectBottomOfArticle);
286
- };
287
- }, []);
288
-
289
- React.useEffect(function () {
290
- var isi = document.getElementById('isi');
291
- if (bottomOfArticle) {
292
- toggleSticky(true);
293
- isi.classList.add('in-view');
294
- if (active) {
295
- setActive(false);
296
- }
297
- }
298
- if (!bottomOfArticle) {
299
- toggleSticky(false);
300
- isi.classList.remove('in-view');
301
- }
302
- }, [bottomOfArticle]);
303
-
304
- var toggleSticky = function toggleSticky(sticky) {
305
- var isiToggle = document.getElementById('isiToggle');
306
- var isiContent = document.getElementById('isiContent');
307
- var isi = document.getElementById('isi');
308
- if (sticky) {
309
- isi.style.bottom = '-200px';
310
- setTimeout(function () {
311
- isi.style.maxHeight = 'unset';
312
- isi.style.position = 'relative';
313
- isi.style.boxShadow = 'none';
314
- isi.style.zIndex = '1';
315
- isi.style.marginTop = '-25rem';
316
- isi.style.marginBottom = '15rem';
317
- isiToggle.style.display = 'none';
318
- isiContent.style.padding = '0';
319
- }, 300);
320
- } else if (!sticky) {
321
-
322
- isi.style.marginBottom = '0';
323
- isi.style.maxHeight = '12rem';
324
- isi.style.position = 'fixed';
325
- isi.style.boxShadow = '0 0 1rem 0 rgba(0, 0, 0, 0.5)';
326
- isi.style.zIndex = '99999';
327
-
328
- isiToggle.style.display = 'block';
329
- isiContent.style.padding = '1rem';
330
- setTimeout(function () {
331
- isi.style.bottom = '0';
332
- isi.style.marginTop = '0';
333
- }, 300);
334
- }
335
- };
336
- return React__default['default'].createElement(
337
- React__default['default'].Fragment,
338
- null,
339
- React__default['default'].createElement(
340
- 'div',
341
- { id: 'isi', ref: isi },
342
- React__default['default'].createElement(
343
- 'div',
344
- { id: 'isiContent' },
345
- React__default['default'].createElement(
346
- 'div',
347
- { onClick: function onClick() {
348
- return setActive(function (prev) {
349
- return !prev;
350
- });
351
- }, id: 'isiToggle' },
352
- active ? React__default['default'].createElement(
353
- 'p',
354
- null,
355
- 'Close ',
356
- React__default['default'].createElement(index_esm.FaMinus, null)
357
- ) : React__default['default'].createElement(
358
- 'p',
359
- null,
360
- 'See More ',
361
- React__default['default'].createElement(index_esm.FaPlus, null)
362
- )
363
- ),
364
- children
365
- )
366
- ),
367
- React__default['default'].createElement(
368
- 'style',
369
- { jsx: true },
370
- '\n #isi {\n position: fixed;\n z-index: 9999999;\n bottom: 0;\n left: 0;\n max-height: 12rem;\n background-color: #ffffff;\n overflow-x: hidden;\n overflow-y: hidden;\n width: 100%;\n box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.5);\n transition: bottom .5s ease , margin-top .3s, max-height .2s;\n }\n #isiContent {\n width: 100%;\n max-width: 1000px;\n margin-left: auto;\n margin-right: auto;\n position: relative;\n padding: 1rem;\n font-size: 1rem;\n }\n #isi::-webkit-scrollbar {\n display: none;\n }\n #isiToggle {\n position: absolute;\n top: 0;\n right: 0;\n padding: 1rem;\n font-weight: bold;\n cursor: pointer;\n font-size: 1rem;\n }\n #isiToggle p {\n margin: 0;\n }\n '
371
- )
372
- );
373
- };
374
-
375
- var css$1 = ".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";
376
- var styles$1 = { "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" };
377
- styleInject_es.styleInject(css$1);
378
-
379
- var RelatedArticle = function RelatedArticle(_ref) {
380
- var articles = _ref.articles,
381
- client = _ref.client,
382
- fallbackImage = _ref.fallbackImage,
383
- _ref$showRelatedArtic = _ref.showRelatedArticleFallbackImage,
384
- showRelatedArticleFallbackImage = _ref$showRelatedArtic === undefined ? true : _ref$showRelatedArtic;
385
-
386
- if (!articles || articles.length == 0 || !articles[0]) {
387
- return null;
388
- }
389
- return React__default['default'].createElement(
390
- 'div',
391
- { className: styles$1.mediaContainer },
392
- articles.map(function (article, index) {
393
- if (article && article.url && article.url.current) {
394
- return React__default['default'].createElement(
395
- 'div',
396
- { id: 'related-card', key: index, className: styles$1.mediaCard },
397
- React__default['default'].createElement(
398
- 'a',
399
- { className: styles$1.imgWrapper, href: '/view/' + (article.url ? article.url.current : '') },
400
- article.thumbnail ? React__default['default'].createElement('img', {
401
- style: { objectFit: 'cover', objectPosition: 'center' },
402
- src: article.thumbnail && urlFor({ client: client, source: article.thumbnail.asset, imageWidth: 250 }),
403
- alt: article.title
404
- }) : React__default['default'].createElement(
405
- React__default['default'].Fragment,
406
- null,
407
- fallbackImage && showRelatedArticleFallbackImage && React__default['default'].createElement('img', { src: fallbackImage, alt: 'website logo', style: { objectFit: 'contain' } })
408
- )
409
- ),
410
- React__default['default'].createElement(
411
- 'div',
412
- { className: styles$1.mediaBody },
413
- React__default['default'].createElement(
414
- 'a',
415
- { href: '/view/' + (article.url ? article.url.current : '') },
416
- React__default['default'].createElement(
417
- 'div',
418
- { className: styles$1.cardTitle },
419
- article.title
420
- )
421
- )
422
- )
423
- );
424
- }
425
- })
426
- );
427
- };
428
-
429
- var getSocialShareDisableFlag = function getSocialShareDisableFlag(article) {
430
- //Need to check Taxonomy, DocumentGroup, and Authors for showSocialShare
431
- var showSocialShare = true;
432
- if (article.showSocialShare === true) {
433
- return showSocialShare;
434
- }
435
-
436
- if (article.showSocialShare === false) {
437
- showSocialShare = false;
438
- return showSocialShare;
439
- }
440
-
441
- if (article.content_placement && article.content_placement.length > 0) {
442
- //loop through each
443
- article.content_placement.forEach(function (category) {
444
- if (category.showSocialShare === false) {
445
- showSocialShare = false;
446
- }
447
- });
448
- }
449
- if (article.authorDetails && article.authorDetails.length > 0) {
450
- article.authorDetails.forEach(function (author) {
451
- if (author.showSocialShare === false) {
452
- showSocialShare = false;
453
- }
454
- });
455
- }
456
- if (article.documentGroup && article.documentGroup.length > 0) {
457
- article.documentGroup.forEach(function (docGroup) {
458
- if (docGroup.showSocialShare === false) {
459
- showSocialShare = false;
460
- }
461
- });
462
- }
463
- if (article.documentGroupMapping && article.documentGroupMapping.length > 0) {
464
- article.documentGroupMapping.forEach(function (docGroup) {
465
- if (docGroup.showSocialShare === false) {
466
- showSocialShare = false;
467
- }
468
- });
469
- }
470
-
471
- return showSocialShare;
472
- };
473
-
474
- var css = ".RecommendedArticles-module_recommendTitle__2kUji {\r\n border-bottom: 2px solid var(--secondary-blue);\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: #0d335a;\r\n padding: 0.5rem;\r\n}\r\n.RecommendedArticles-module_recommendContainer__sZukI {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n margin: 0 -0.5rem;\r\n}\r\n.RecommendedArticles-module_recommendTop__1_yqw {\r\n margin: 0.5rem;\r\n width: 100%;\r\n flex-basis: 100%;\r\n display: flex;\r\n\r\n}\r\n.RecommendedArticles-module_recommendTopImg__1b9gu {\r\n min-width: 55%;\r\n width: 55%;\r\n height: 100%;\r\n}\r\n.RecommendedArticles-module_recommendTopImg__1b9gu img {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n}\r\n.RecommendedArticles-module_recommendTopBody__-13FI {\r\n margin-left: 1rem;\r\n line-height: 1.3;\r\n color: #121212;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n.RecommendedArticles-module_topTitle__2EafN {\r\n font-size: 25px;\r\n font-weight: bold;\r\n margin-bottom: 0.5rem;\r\n}\r\n.RecommendedArticles-module_topBody__2_VNi {\r\n font-size: 19px;\r\n margin-bottom: 0.5rem;\r\n}\r\n.RecommendedArticles-module_topLink__2RnXu {\r\n font-size: 19px;\r\n color: rgb(43, 43, 151);\r\n text-decoration: underline;\r\n margin-top: auto;\r\n}\r\n.RecommendedArticles-module_smContainer__4byBO {\r\n width: calc(25% - 1rem);\r\n margin: 0 0.5rem;\r\n}\r\n.RecommendedArticles-module_smImage__TYZGY img {\r\n width: 100%;\r\n}\r\n.RecommendedArticles-module_title__3q1ud {\r\n margin-top: 1rem;\r\n line-height: 1.2;\r\n color: #121212;\r\n}\r\n.RecommendedArticles-module_category__2jRto {\r\n text-transform: uppercase;\r\n font-size: 16px;\r\n letter-spacing: 2px;\r\n margin: 0.25rem 0;\r\n}\r\n\r\n/* media query */\r\n\r\n@media screen and (max-width: 1399px) {\r\n .RecommendedArticles-module_topTitle__2EafN {\r\n font-size: 21px;\r\n }\r\n .RecommendedArticles-module_topBody__2_VNi {\r\n font-size: 15px;\r\n }\r\n}\r\n@media screen and (max-width: 1191px) {\r\n .RecommendedArticles-module_topTitle__2EafN {\r\n font-size: 23px;\r\n }\r\n .RecommendedArticles-module_topBody__2_VNi,\r\n .RecommendedArticles-module_topLink__2RnXu {\r\n font-size: 17px;\r\n }\r\n}\r\n@media screen and (max-width: 968px) {\r\n .RecommendedArticles-module_topTitle__2EafN {\r\n font-size: 18px;\r\n }\r\n .RecommendedArticles-module_topBody__2_VNi,\r\n .RecommendedArticles-module_topLink__2RnXu {\r\n font-size: 15px;\r\n }\r\n}\r\n@media screen and (max-width: 768px) {\r\n .RecommendedArticles-module_recommendTop__1_yqw {\r\n flex-direction: column;\r\n }\r\n .RecommendedArticles-module_recommendTopImg__1b9gu,\r\n .RecommendedArticles-module_recommendTopBody__-13FI {\r\n width: 100%;\r\n margin: 0;\r\n }\r\n .RecommendedArticles-module_recommendTopBody__-13FI {\r\n margin-bottom: 1rem;\r\n }\r\n .RecommendedArticles-module_smContainer__4byBO {\r\n width: calc(50% - 1rem);\r\n }\r\n}";
475
- var styles = { "recommendTitle": "RecommendedArticles-module_recommendTitle__2kUji", "recommendContainer": "RecommendedArticles-module_recommendContainer__sZukI", "recommendTop": "RecommendedArticles-module_recommendTop__1_yqw", "recommendTopImg": "RecommendedArticles-module_recommendTopImg__1b9gu", "recommendTopBody": "RecommendedArticles-module_recommendTopBody__-13FI", "topTitle": "RecommendedArticles-module_topTitle__2EafN", "topBody": "RecommendedArticles-module_topBody__2_VNi", "topLink": "RecommendedArticles-module_topLink__2RnXu", "smContainer": "RecommendedArticles-module_smContainer__4byBO", "smImage": "RecommendedArticles-module_smImage__TYZGY", "title": "RecommendedArticles-module_title__3q1ud", "category": "RecommendedArticles-module_category__2jRto" };
476
- styleInject_es.styleInject(css);
477
-
478
- var _this$2 = undefined;
479
-
480
- var Recommended = function Recommended(props) {
481
- var article = props.article,
482
- client = props.client,
483
- _props$index = props.index,
484
- index = _props$index === undefined ? 0 : _props$index,
485
- cpModificationRequired = props.cpModificationRequired;
486
-
487
- var _useState = React.useState(false),
488
- _useState2 = slicedToArray._slicedToArray(_useState, 2),
489
- segmentLoaded = _useState2[0],
490
- setSegmentLoaded = _useState2[1];
491
-
492
- var _useState3 = React.useState([]),
493
- _useState4 = slicedToArray._slicedToArray(_useState3, 2),
494
- articles = _useState4[0],
495
- setArticles = _useState4[1];
496
-
497
- var _useState5 = React.useState('loading'),
498
- _useState6 = slicedToArray._slicedToArray(_useState5, 2),
499
- loaded = _useState6[0],
500
- setLoaded = _useState6[1]; //loading, loaded, failed
501
-
502
-
503
- var starting = index * 5;
504
- var contentMapping = {
505
- videos: 'video',
506
- articles: 'article',
507
- podcasts: 'podcast'
508
- };
509
-
510
- var mainCategories = article.content_placement.filter(function (cp) {
511
- return cp.usedForRecommendations === true;
512
- }).map(function (cp) {
513
- return cp.name;
514
- }).sort();
515
-
516
- React.useEffect(function () {
517
- try {
518
- if (!segmentLoaded) {
519
- return;
520
- }
521
- if (mainCategories.length > 0) {
522
- //console.log(mainCategories)
523
- analytics.track('Article Category Viewed', {
524
- categories: stringify._JSON$stringify(mainCategories)
525
- });
526
- }
527
-
528
- // get users traits
529
- var getSegmentProfile = function () {
530
- var _ref = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee() {
531
- var anonymousId, response, data, addTaxonomyName, favoriteCategories, articlesCategory, videosCategory, podcastCategory, taxonomyCategories, taxonomies, articlesQuery, videosQuery, podcastQuery, params, _ref2, _ref3, _articles, videos, podcasts;
532
-
533
- return asyncToGenerator.regenerator.wrap(function _callee$(_context) {
534
- while (1) {
535
- switch (_context.prev = _context.next) {
536
- case 0:
537
- anonymousId = analytics.user().anonymousId();
538
- _context.next = 3;
539
- return fetch('/api/getSegmentProfile', {
540
- method: 'POST',
541
- body: stringify._JSON$stringify({ anonymousId: anonymousId })
542
- });
543
-
544
- case 3:
545
- response = _context.sent;
546
- _context.next = 6;
547
- return response.json();
548
-
549
- case 6:
550
- data = _context.sent;
551
-
552
- if (!(data && data.traits && data.traits.favorite_article_category)) {
553
- _context.next = 40;
554
- break;
555
- }
556
-
557
- //console.log('%csegment user profile', 'font-size:1.5rem;color:#000000;padding:1rem;background-color:yellow;', data.traits)
558
-
559
- addTaxonomyName = function addTaxonomyName(taxArr) {
560
- if (!taxArr) return '';
561
- var query = ' && ( ';
562
- taxArr.forEach(function (item, index) {
563
- if (index === 0) {
564
- query = query + ('name == \'' + item + '\'');
565
- } else {
566
- query = query + (' || name == \'' + item + '\'');
567
- }
568
- });
569
-
570
- query = query + ' )';
571
-
572
- return query;
573
- };
574
-
575
- favoriteCategories = JSON.parse(data.traits.favorite_article_category);
576
-
577
- //grab contentCategory ID
578
-
579
- _context.next = 12;
580
- return client.fetch("*[_type == 'contentCategory' && name == 'Articles'][0]{_id}");
581
-
582
- case 12:
583
- articlesCategory = _context.sent;
584
- _context.next = 15;
585
- return client.fetch("*[_type == 'contentCategory' && name == 'Videos'][0]{_id}");
586
-
587
- case 15:
588
- videosCategory = _context.sent;
589
- _context.next = 18;
590
- return client.fetch("*[_type == 'contentCategory' && name == 'Podcasts'][0]{_id}");
591
-
592
- case 18:
593
- podcastCategory = _context.sent;
594
- _context.next = 21;
595
- return client.fetch('*[_type == \'taxonomy\' ' + addTaxonomyName(favoriteCategories) + ']');
596
-
597
- case 21:
598
- taxonomyCategories = _context.sent;
599
- taxonomies = '';
600
-
601
- taxonomyCategories.forEach(function (taxonomy, index) {
602
- if (index === 0) {
603
- taxonomies = taxonomies + (' && ( references(\'' + taxonomy._id + '\')');
604
- } else {
605
- taxonomies = taxonomies + (' || references(\'' + taxonomy._id + '\')');
606
- }
607
- });
608
- taxonomies = taxonomies + ' )';
609
-
610
- // grab 3 articles from sanity different from the one currently being read
611
- articlesQuery = '*[_type == \'article\'\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible == true \n && passwordLock != true\n && references(\'' + articlesCategory._id + '\')\n ' + taxonomies + '\n && defined(published)\n && _id != $id\n && dateTime(published) <= dateTime(now())] | order(published desc) [' + starting + '...' + (starting + 5) + '] {\n ...,\n title,\n thumbnail,\n url,\n contentCategory->,\n published,\n }';
612
- videosQuery = '*[_type == \'article\'\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible == true \n && passwordLock != true\n && references(\'' + videosCategory._id + '\')\n ' + taxonomies + '\n && defined(published)\n && _id != $id\n && dateTime(published) <= dateTime(now())] | order(published desc) [' + starting + '...' + (starting + 1) + '] {\n ...,\n title,\n thumbnail,\n url,\n contentCategory->,\n published,\n }';
613
- podcastQuery = '*[_type == \'article\'\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible == true \n && passwordLock != true\n && references(\'' + podcastCategory._id + '\')\n ' + taxonomies + '\n && defined(published)\n && _id != $id\n && dateTime(published) <= dateTime(now())] | order(published desc) [' + starting + '...' + (starting + 2) + '] {\n ...,\n title,\n thumbnail,\n url,\n contentCategory->,\n published,\n }';
614
- params = {
615
- id: article._id
616
- };
617
- _context.next = 31;
618
- return asyncToGenerator._Promise.all([client.fetch(articlesQuery, params), client.fetch(videosQuery, params), client.fetch(podcastQuery, params)]);
619
-
620
- case 31:
621
- _ref2 = _context.sent;
622
- _ref3 = slicedToArray._slicedToArray(_ref2, 3);
623
- _articles = _ref3[0];
624
- videos = _ref3[1];
625
- podcasts = _ref3[2];
626
-
627
- if (_articles.length === 0) setLoaded('failed');
628
- if (_articles) {
629
- if (videos[0] && _articles[2]) {
630
- _articles[2] = videos[0];
631
- }
632
- if (videos[1] && _articles[4]) {
633
- _articles[4] = videos[1];
634
- }
635
- if (podcasts[0] && _articles[3]) {
636
- _articles[3] = podcasts[0];
637
- }
638
- setArticles(_articles);
639
- }
640
- _context.next = 41;
641
- break;
642
-
643
- case 40:
644
- setLoaded('failed');
645
-
646
- case 41:
647
- case 'end':
648
- return _context.stop();
649
- }
650
- }
651
- }, _callee, _this$2);
652
- }));
653
-
654
- return function getSegmentProfile() {
655
- return _ref.apply(this, arguments);
656
- };
657
- }();
658
-
659
- getSegmentProfile();
660
- } catch (err) {
661
- console.log(err);
662
- setLoaded('failed');
663
- }
664
- }, [segmentLoaded]);
665
-
666
- React.useEffect(function () {
667
- if (articles && articles.length > 0) {
668
- setLoaded('loaded');
669
- }
670
- }, [articles]);
671
-
672
- React.useEffect(function () {
673
- try {
674
- analytics.ready(function () {
675
- setSegmentLoaded(function () {
676
- return 'loaded';
677
- });
678
- });
679
- } catch (err) {
680
- console.log(err);
681
- setLoaded('failed');
682
- }
683
- }, []);
684
-
685
- return React__default['default'].createElement(
686
- 'div',
687
- { id: 'recommended', style: { minHeight: '150px' } },
688
- loaded === 'loaded' && React__default['default'].createElement(
689
- React__default['default'].Fragment,
690
- null,
691
- React__default['default'].createElement(
692
- 'h4',
693
- { className: styles.recommendTitle },
694
- 'Recommended For You'
695
- ),
696
- React__default['default'].createElement(
697
- 'div',
698
- { className: styles.recommendContainer, id: 'recommendedContent' },
699
- articles.map(function (article, index) {
700
- if (index === 0) {
701
- return React__default['default'].createElement(
702
- 'div',
703
- { key: article._id + ('-' + index), className: styles.recommendTop },
704
- React__default['default'].createElement(
705
- 'div',
706
- { className: styles.recommendTopImg },
707
- React__default['default'].createElement(
708
- 'a',
709
- { href: '/view/' + article.url.current + '?utm_source=website&utm_medium=dynamic_content&utm_campaign=in_feed_unit' },
710
- React__default['default'].createElement('img', { src: urlFor({ source: article.thumbnail, client: client, imageHeight: 306, imageWidth: 544 }) })
711
- )
712
- ),
713
- React__default['default'].createElement(
714
- 'div',
715
- { className: styles.recommendTopBody },
716
- React__default['default'].createElement(
717
- 'div',
718
- { className: styles.topTitle },
719
- article.title
720
- ),
721
- React__default['default'].createElement(
722
- 'p',
723
- { className: styles.topBody },
724
- article.summary
725
- ),
726
- React__default['default'].createElement(
727
- 'a',
728
- { href: '/view/' + article.url.current + '?utm_source=website&utm_medium=dynamic_content&utm_campaign=in_feed_unit', className: styles.topLink },
729
- '>> ',
730
- 'Read Article'
731
- )
732
- )
733
- );
734
- } else {
735
- return React__default['default'].createElement(
736
- 'div',
737
- { key: article._id + ('-' + index), className: styles.smContainer },
738
- React__default['default'].createElement(
739
- 'div',
740
- { className: styles.category },
741
- contentMapping[article.contentCategory.name.toLowerCase()] ? contentMapping[article.contentCategory.name.toLowerCase()] : article.contentCategory.name
742
- ),
743
- React__default['default'].createElement(
744
- 'a',
745
- { href: '/view/' + article.url.current + '?utm_source=website&utm_medium=dynamic_content&utm_campaign=in_feed_unit' },
746
- React__default['default'].createElement(
747
- 'div',
748
- { className: styles.smImage },
749
- React__default['default'].createElement('img', { src: urlFor({ source: article.thumbnail, client: client, imageHeight: 270, imageWidth: 480 }) })
750
- ),
751
- React__default['default'].createElement(
752
- 'div',
753
- { className: styles.title },
754
- article.title
755
- )
756
- )
757
- );
758
- }
759
- })
760
- )
761
- ),
762
- loaded === 'failed' && React__default['default'].createElement(
763
- 'section',
764
- { id: 'related-content-section', className: 'my-1' },
765
- (article.relatedArticle || RelevantTopics({ article: article })) && React__default['default'].createElement(
766
- 'p',
767
- { className: 'mb-0' },
768
- React__default['default'].createElement(
769
- 'b',
770
- null,
771
- 'Related Content:'
772
- )
773
- ),
774
- React__default['default'].createElement(RelevantTopics, { article: article, cpModificationRequired: cpModificationRequired, Settings: props.Settings }),
775
- React__default['default'].createElement(
776
- 'div',
777
- { className: 'pt-2' },
778
- React__default['default'].createElement(RelatedArticle, {
779
- articles: article.relatedArticle,
780
- client: client,
781
- fallbackImage: props.Settings.logo,
782
- showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage
783
- })
784
- )
785
- )
786
- );
787
- };
788
-
789
- var RelevantTopics = function RelevantTopics(props) {
790
- var article = props.article,
791
- cpModificationRequired = props.cpModificationRequired;
792
- var content_placement = article.content_placement,
793
- documentGroupMapping = article.documentGroupMapping,
794
- issueGroup = article.issueGroup;
795
-
796
- if (content_placement && content_placement.length > 0 || documentGroupMapping && documentGroupMapping.length > 0) {
797
- var relatedLinks = [];
798
- if (documentGroupMapping && documentGroupMapping.length > 0) {
799
- documentGroupMapping.forEach(function (documentGroup) {
800
- if (documentGroup.isShow === false || documentGroup.excludeRelatedContents) {
801
- return null;
802
- }
803
- if (documentGroup.parent) {
804
- relatedLinks = [].concat(toConsumableArray._toConsumableArray(relatedLinks), [{
805
- label: documentGroup.name,
806
- href: cpModificationRequired ? getDocumentGroupUrl(documentGroup) : documentGroup.parent.identifier && documentGroup.parent.identifier.current && !documentGroup.path.includes('/') ? '/' + documentGroup.parent.identifier.current + '/' + documentGroup.path : '/' + documentGroup.path
807
- }]);
808
- }
809
- });
810
- }
811
- if (content_placement && content_placement.length > 0) {
812
- content_placement.filter(function (item) {
813
- return item.path !== 'news';
814
- }).forEach(function (cp) {
815
- if (cp.excludeRelatedContents) {
816
- return null;
817
- }
818
- var cp_url = cpModificationRequired ? getTargeting.getContentPlacementUrl(cp) : cp.path;
819
- var href = '/' + cp_url;
820
- relatedLinks = [].concat(toConsumableArray._toConsumableArray(relatedLinks), [{ label: cp.name, href: href }]);
821
- });
822
- }
823
- if (issueGroup && issueGroup.name && issueGroup.identifier && issueGroup.identifier.current && issueGroup.parent && issueGroup.parent.identifier && issueGroup.parent.identifier.current) {
824
- var _props$Settings$issue = props.Settings.issueMapping,
825
- issueMapping = _props$Settings$issue === undefined ? '/publications' : _props$Settings$issue;
826
-
827
- relatedLinks = [].concat(toConsumableArray._toConsumableArray(relatedLinks), [{ label: issueGroup.name, href: issueMapping + '/' + issueGroup.parent.identifier.current + '/' + issueGroup.identifier.current }]);
828
- }
829
- if (relatedLinks && relatedLinks.length > 0) {
830
- return React__default['default'].createElement(
831
- 'div',
832
- null,
833
- relatedLinks.map(function (relatedLink, index) {
834
- if (relatedLink && relatedLink.href && relatedLink.label) {
835
- return React__default['default'].createElement(
836
- 'span',
837
- { key: relatedLink.label, className: 'related-link' },
838
- React__default['default'].createElement(
839
- 'a',
840
- { className: 'related-links', style: { color: 'blue' }, href: relatedLink.href },
841
- relatedLink.label
842
- ),
843
- React__default['default'].createElement(
844
- 'style',
845
- { jsx: 'true' },
846
- '\n .related-link:not(:first-child):before {\n content: \' | \';\n }\n '
847
- )
848
- );
849
- }
850
- })
851
- );
852
- }
853
- return null;
854
- }
855
- return null;
856
- };
857
-
858
- var checkDocGroupMappingForSeries = function checkDocGroupMappingForSeries(docGroupArray) {
859
-
860
- for (var i = 0; i < docGroupArray.length; i++) {
861
- if (docGroupArray[i].isSeries) {
862
- return docGroupArray[i];
863
- }
864
- }
865
-
866
- return false;
867
- };
868
-
869
- var Article = React__default['default'].memo(React.forwardRef(function (props, ref) {
870
- var onVote = function () {
871
- var _ref = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee(nodeKey, selectedChoice) {
872
- var response, result;
873
- return asyncToGenerator.regenerator.wrap(function _callee$(_context) {
874
- while (1) {
875
- switch (_context.prev = _context.next) {
876
- case 0:
877
- _context.next = 2;
878
- return fetch('/api/polls/vote', {
879
- method: 'POST',
880
- headers: { 'Content-Type': 'application/json' },
881
- body: stringify._JSON$stringify({ articleId: props.article._id, nodeKey: nodeKey, selectedChoice: selectedChoice, body: articleBody })
882
- });
883
-
884
- case 2:
885
- response = _context.sent;
886
-
887
- if (!response.ok) {
888
- _context.next = 11;
889
- break;
890
- }
891
-
892
- _context.next = 6;
893
- return response.json();
894
-
895
- case 6:
896
- result = _context.sent;
897
-
898
- setArticleBody(result.body);
899
-
900
- console.log('Voted successfully');
901
- _context.next = 12;
902
- break;
903
-
904
- case 11:
905
- console.log('Unable to vote!');
906
-
907
- case 12:
908
- case 'end':
909
- return _context.stop();
910
- }
911
- }
912
- }, _callee, this);
913
- }));
914
-
915
- return function onVote(_x, _x2) {
916
- return _ref.apply(this, arguments);
917
- };
918
- }();
919
-
920
- var article = props.article,
921
- Ads = props.Ads,
922
- showRelatedArticles = props.showRelatedArticles,
923
- _props$hideFBShare = props.hideFBShare,
924
- hideFBShare = _props$hideFBShare === undefined ? false : _props$hideFBShare,
925
- _props$hidePinterestS = props.hidePinterestShare,
926
- hidePinterestShare = _props$hidePinterestS === undefined ? false : _props$hidePinterestS,
927
- onChangeArticle = props.onChangeArticle,
928
- _props$showSocialShar = props.showSocialShare,
929
- showSocialShare = _props$showSocialShar === undefined ? true : _props$showSocialShar;
930
- var client = props.client,
931
- pageview = props.pageview,
932
- videoAccountIDs = props.videoAccountIDs,
933
- drupalLeadSettings = props.drupalLeadSettings,
934
- currentPage = props.currentPage,
935
- _props$showAuthorDeta = props.showAuthorDetails,
936
- showAuthorDetails = _props$showAuthorDeta === undefined ? false : _props$showAuthorDeta,
937
- audioAutoplay = props.audioAutoplay,
938
- _props$article = props.article,
939
- title = _props$article.title,
940
- _props$article$passwo = _props$article.passwordLock,
941
- passwordLock = _props$article$passwo === undefined ? false : _props$article$passwo,
942
- authorDetails = _props$article.authorDetails,
943
- pageNumber = _props$article.pageNumber,
944
- published = _props$article.published,
945
- _props$article$showPu = _props$article.showPublished,
946
- showPublished = _props$article$showPu === undefined ? true : _props$article$showPu,
947
- body = _props$article.body,
948
- thumbnail = _props$article.thumbnail,
949
- content_placement = _props$article.content_placement,
950
- _props$article$url = _props$article.url;
951
- _props$article$url = _props$article$url === undefined ? {
952
- current: ''
953
- } : _props$article$url;
954
- var url = _props$article$url.current,
955
- issue = _props$article.issue,
956
- source = _props$article.source,
957
- documentGroupMapping = _props$article.documentGroupMapping,
958
- issueGroup = _props$article.issueGroup,
959
- showIsi = _props$article.showIsi,
960
- isi = _props$article.isi,
961
- _props$article$displa = _props$article.display_summary,
962
- display_summary = _props$article$displa === undefined ? true : _props$article$displa,
963
- regionalPages = props.regionalPages,
964
- nationalPage = props.nationalPage,
965
- ISIContent = props.ISIContent,
966
- shareOptions = props.shareOptions,
967
- cpModificationRequired = props.cpModificationRequired,
968
- authorPrefix = props.authorPrefix,
969
- _props$lgContextAd = props.lgContextAd,
970
- lgContextAd = _props$lgContextAd === undefined ? false : _props$lgContextAd,
971
- queueData = props.queueData,
972
- _props$sponsoredFlag = props.sponsoredFlag,
973
- sponsoredFlag = _props$sponsoredFlag === undefined ? false : _props$sponsoredFlag,
974
- _props$authorImgHeigh = props.authorImgHeight,
975
- authorImgHeight = _props$authorImgHeigh === undefined ? 270 : _props$authorImgHeigh;
976
- props.active;
977
- var _props$refreshFlag = props.refreshFlag,
978
- refreshFlag = _props$refreshFlag === undefined ? false : _props$refreshFlag,
979
- disqusConfig = props.disqusConfig,
980
- showDisqus = props.showDisqus,
981
- _props$downloadCitati = props.downloadCitation,
982
- downloadCitation = _props$downloadCitati === undefined ? false : _props$downloadCitati,
983
- _props$useSegmentReco = props.useSegmentRecommendedArticles,
984
- useSegmentRecommendedArticles = _props$useSegmentReco === undefined ? false : _props$useSegmentReco;
985
- var sliderData = props.sliderData;
986
-
987
- var disableEpisodeNumber = false;
988
- if (article && article.documentGroup && article.documentGroup.disableEpisodeNumber === true) {
989
- disableEpisodeNumber = true;
990
- }
991
- var logicforDisplayingEpisodeNumber = disableEpisodeNumber ? false : true;
992
- var targeting = getTargeting.getTargeting(props);
993
- //remove slider data if toggled
994
- if (article && article.documentGroup && article.documentGroup.hideSeriesSlider === true) {
995
- sliderData = null;
996
- }
997
-
998
- //next video url
999
- if (sliderData) {
1000
- var nextArticle = void 0;
1001
- sliderData.forEach(function (data, index) {
1002
- if (data.url.current === props.article.url.current) {
1003
- nextArticle = index + 1;
1004
- }
1005
- });
1006
-
1007
- if (nextArticle && sliderData[nextArticle]) {
1008
- article.nextVideo = sliderData[nextArticle].url.current;
1009
- }
1010
- }
1011
-
1012
- //if showSocialShare is not disabled for entire site, check article taxonomy, docgroup, authors for showSocialShare === false
1013
- if (showSocialShare) {
1014
- showSocialShare = getSocialShareDisableFlag(props.article);
1015
- }
1016
-
1017
- //If sponsored flag, disable contextual ads
1018
- if (sponsoredFlag) {
1019
- article.contextualVideoAD = false;
1020
- article.contextualAD = false;
1021
- showRelatedArticles = false;
1022
- }
1023
- if (article.disableRelatedContent) {
1024
- showRelatedArticles = false;
1025
- }
1026
- //This was being done in ArticleQueue2 which wasnt effecting articles excluded from infinite scroll, moved inside article component
1027
- if (!sponsoredFlag && Ads.getVideoContextualAD) {
1028
- article.contextualVideoAD = Ads.getVideoContextualAD(getTargeting.getTargeting(props, 'in-context_video'));
1029
- }
1030
- if (!sponsoredFlag && Ads.getNativeContextualAD) {
1031
- article.contextualAD = Ads.getNativeContextualAD(getTargeting.getTargeting(props, 'native-ad'));
1032
- }
1033
-
1034
- var _useState = React.useState(null),
1035
- _useState2 = slicedToArray._slicedToArray(_useState, 2),
1036
- contextualADFlag = _useState2[0],
1037
- setContextualADFlag = _useState2[1];
1038
- // Setting new Flag 'visibleFlag' to know when the article is visible so that new contextual ad can be appended into DOM.
1039
-
1040
-
1041
- var _useState3 = React.useState(false),
1042
- _useState4 = slicedToArray._slicedToArray(_useState3, 2),
1043
- visibleFlag = _useState4[0],
1044
- setVisibleFlag = _useState4[1];
1045
-
1046
- var summary = getArticleSummary(props.article);
1047
-
1048
- var _useState5 = React.useState(1),
1049
- _useState6 = slicedToArray._slicedToArray(_useState5, 2),
1050
- auth = _useState6[0],
1051
- setAuth = _useState6[1];
1052
-
1053
- var _useState7 = React.useState(''),
1054
- _useState8 = slicedToArray._slicedToArray(_useState7, 2),
1055
- passwordKey = _useState8[0],
1056
- setPasswordKey = _useState8[1];
1057
-
1058
- var _useState9 = React.useState(body),
1059
- _useState10 = slicedToArray._slicedToArray(_useState9, 2),
1060
- articleBody = _useState10[0],
1061
- setArticleBody = _useState10[1];
1062
-
1063
- var _useState11 = React.useState(0),
1064
- _useState12 = slicedToArray._slicedToArray(_useState11, 2),
1065
- containerHeight = _useState12[0],
1066
- setContainerHeight = _useState12[1];
1067
-
1068
- var _useState13 = React.useState(true),
1069
- _useState14 = slicedToArray._slicedToArray(_useState13, 2);
1070
- _useState14[0];
1071
- var setPreviewAd = _useState14[1];
1072
-
1073
- var _useState15 = React.useState(props.index === 0),
1074
- _useState16 = slicedToArray._slicedToArray(_useState15, 2),
1075
- isFirstArticle = _useState16[0],
1076
- setIsFirstArticle = _useState16[1];
1077
-
1078
- React.useEffect(function () {
1079
- var path = window && window.location && window.location.search;
1080
- // Setting flag for Ad-preview URLs
1081
- setPreviewAd(path.split('&').some(function (param) {
1082
- return param.includes('creativeId');
1083
- }));
1084
- setContainerHeight(window.innerHeight);
1085
- }, []);
1086
-
1087
- var isCutomPage = function isCutomPage(article) {
1088
- var url = article.url.current;
1089
-
1090
- if (regionalPages || nationalPage) {
1091
- return regionalPages.includes(url) || nationalPage === url;
1092
- } else {
1093
- return false;
1094
- }
1095
- };
1096
- var renderAuthorBiography = function renderAuthorBiography(biography) {
1097
- if (biography) {
1098
- return React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
1099
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, false, contextualADFlag),
1100
- blocks: [biography]
1101
- }, client.config()));
1102
- }
1103
- };
1104
-
1105
- var getAbstract = function getAbstract() {
1106
- return article.abstract && article.abstract.map(function (block) {
1107
- if (block.children) return block.children.map(function (child) {
1108
- if (child._type === 'span') return child.text;
1109
- });
1110
- }).join(' ');
1111
- };
1112
-
1113
- var renderIsiContent = function renderIsiContent(article) {
1114
- var url = article.url.current;
1115
-
1116
- if (regionalPages && ISIContent && regionalPages.includes(url)) {
1117
- return React__default['default'].createElement(ISIContent, null);
1118
- } else if (nationalPage === url && ISIContent) {
1119
- return React__default['default'].createElement(ISIContent, { national: true });
1120
- }
1121
- return null;
1122
- };
1123
- var generateRIS = function generateRIS() {
1124
- var fileContent = 'TY - JOUR\n';
1125
- if (issue) {
1126
- if (article.title) {
1127
- fileContent += 'TI - ' + article.title + '\n'; //Title - TI
1128
- fileContent += 'T1 - ' + article.title + '\n'; //Title - T1
1129
- }
1130
- if (authorDetails && authorDetails.length) {
1131
- authorDetails.map(function (authorDetail, index) {
1132
- return fileContent += 'AU - ' + (authorDetail.firstName && authorDetail.lastName ? authorDetail.lastName + ', ' + authorDetail.firstName : '' + authorDetail.displayName) + '\n';
1133
- } //Author
1134
- );
1135
- }
1136
- if (issue.publication && issue.publication.name) {
1137
- fileContent += 'T2 - ' + issue.publication.name + '\n'; //Secondary Title - T2
1138
- fileContent += 'JF - ' + issue.publication.name + '\n'; //Journal Name - JF
1139
- }
1140
- if (issue.name) {
1141
- fileContent += 'T3 - ' + issue.name + '\n'; //Issue Name - T3
1142
- }
1143
- if (issue.abbreviatedJournal) {
1144
- fileContent += 'JO - ' + issue.abbreviatedJournal + '\n'; //Journal Name - JO
1145
- }
1146
- if (article.abstract) fileContent += 'AB - ' + getAbstract() + '\n'; //Abstract - AB
1147
- if (article.abstract) fileContent += 'N2 - ' + getAbstract() + '\n'; //Abstract - N2
1148
- if (issue.issueNumber) fileContent += 'IS - ' + issue.issueNumber + '\n'; //Issue Number - IS
1149
- fileContent += 'PB - MJH Life Sciences\n'; //Publisher - PB
1150
- if (issue.year) fileContent += 'PY - ' + issue.year + '\n'; //Published Year - PY
1151
- if (issue.volume) fileContent += 'VL - ' + issue.volume + '\n'; //Volume - VL
1152
- if (issue.url) fileContent += 'L1 - ' + issue.url + '\n'; //Link to PDF - L1
1153
- if (shareOptions && shareOptions.shareBaseUrl) {
1154
- fileContent += 'L2 - ' + (shareOptions.shareBaseUrl + url) + '\n'; //Link to Full-text - L2
1155
- fileContent += 'UR - ' + (shareOptions.shareBaseUrl + url) + '\n'; //Doc URL - UR
1156
- }
1157
- if (props.Website) fileContent += 'LK - https://' + props.Website.liveDomain + '\n'; //Website Link - LK
1158
- if (issue.isbn_issn) {
1159
- fileContent += 'SN - ' + issue.isbn_issn + '\n'; //ISSN/ISBN - TI
1160
- }
1161
- if (pageNumber) {
1162
- if (pageNumber.includes('-')) {
1163
- fileContent += 'SP - ' + pageNumber.split('-')[0] + '\n'; //Start Page - SP
1164
- fileContent += 'EP - ' + pageNumber.split('-')[1] + '\n'; //End Page - EP
1165
- } else {
1166
- fileContent += 'SP - ' + pageNumber + '\n';
1167
- }
1168
- }
1169
- if (article.published) fileContent += 'Y1 - ' + moment.moment(published).format('DD-MMMM-YYYY') + '\n'; //Primary Date - Y1
1170
- fileContent += 'Y2 - ' + moment.moment().format('DD-MMMM-YYYY') + '\n'; //Access Date - Y2
1171
- }
1172
- fileContent += 'ER -\n'; //End of Record
1173
- return fileContent;
1174
- };
1175
- var getAuthorList = function getAuthorList() {
1176
- var authorList = '';
1177
- if (authorDetails && authorDetails.length > 0) {
1178
- authorDetails.map(function (author) {
1179
- if (author.lastName && author.firstName) authorList += author.lastName + ',' + author.firstName + ';';else if (author.displayName) authorList += author.displayName + ';';
1180
- });
1181
- }
1182
- return authorList;
1183
- };
1184
- var downloadRIS = function downloadRIS() {
1185
- var fileContent = generateRIS();
1186
- var file = new File([fileContent], 'citation-' + url + '.ris', { type: 'application/x-research-info-systems;charset=utf-8' });
1187
- FileSaver__default['default'].saveAs(file, 'citation-' + url + '.ris');
1188
- };
1189
-
1190
- var RelevantTopics = function RelevantTopics() {
1191
- if (content_placement && content_placement.length > 0 || documentGroupMapping && documentGroupMapping.length > 0) {
1192
- var relatedLinks = [];
1193
- if (documentGroupMapping && documentGroupMapping.length > 0) {
1194
- documentGroupMapping.forEach(function (documentGroup) {
1195
- if (documentGroup.isShow === false || documentGroup.excludeRelatedContents) {
1196
- return null;
1197
- }
1198
- if (documentGroup.parent) {
1199
- relatedLinks = [].concat(toConsumableArray._toConsumableArray(relatedLinks), [{
1200
- label: documentGroup.name,
1201
- href: cpModificationRequired ? getDocumentGroupUrl(documentGroup) : documentGroup.parent.identifier && documentGroup.parent.identifier.current && !documentGroup.path.includes('/') ? '/' + documentGroup.parent.identifier.current + '/' + documentGroup.path : '/' + documentGroup.path
1202
- }]);
1203
- }
1204
- });
1205
- }
1206
- if (content_placement && content_placement.length > 0) {
1207
- content_placement.filter(function (item) {
1208
- return item.path !== 'news';
1209
- }).forEach(function (cp) {
1210
- if (cp.excludeRelatedContents) {
1211
- return null;
1212
- }
1213
- var cp_url = cpModificationRequired ? getTargeting.getContentPlacementUrl(cp) : cp.path;
1214
- var href = '/' + cp_url;
1215
- relatedLinks = [].concat(toConsumableArray._toConsumableArray(relatedLinks), [{ label: cp.name, href: href }]);
1216
- });
1217
- }
1218
- if (issueGroup && issueGroup.name && issueGroup.identifier && issueGroup.identifier.current && issueGroup.parent && issueGroup.parent.identifier && issueGroup.parent.identifier.current) {
1219
- var _props$Settings$issue = props.Settings.issueMapping,
1220
- issueMapping = _props$Settings$issue === undefined ? '/publications' : _props$Settings$issue;
1221
-
1222
- relatedLinks = [].concat(toConsumableArray._toConsumableArray(relatedLinks), [{ label: issueGroup.name, href: issueMapping + '/' + issueGroup.parent.identifier.current + '/' + issueGroup.identifier.current }]);
1223
- }
1224
- if (relatedLinks && relatedLinks.length > 0) {
1225
- return React__default['default'].createElement(
1226
- 'div',
1227
- null,
1228
- relatedLinks.map(function (relatedLink, index) {
1229
- if (relatedLink && relatedLink.href && relatedLink.label) {
1230
- return React__default['default'].createElement(
1231
- 'span',
1232
- { key: index, className: 'related-link' },
1233
- React__default['default'].createElement(
1234
- 'a',
1235
- { className: 'related-links', style: { color: 'blue' }, href: relatedLink.href },
1236
- relatedLink.label
1237
- ),
1238
- React__default['default'].createElement(
1239
- 'style',
1240
- { jsx: 'true' },
1241
- '\n .related-link:not(:first-child):before {\n content: \' | \';\n }\n '
1242
- )
1243
- );
1244
- }
1245
- })
1246
- );
1247
- }
1248
- return null;
1249
- }
1250
- return null;
1251
- };
1252
-
1253
- var RelatedContent = React__default['default'].memo(function () {
1254
- return React__default['default'].createElement(
1255
- 'div',
1256
- null,
1257
- useSegmentRecommendedArticles ? React__default['default'].createElement(Recommended, {
1258
- client: client,
1259
- article: article,
1260
- index: props.index,
1261
- Settings: props.Settings,
1262
- showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage,
1263
- cpModificationRequired: cpModificationRequired
1264
- }) : React__default['default'].createElement(
1265
- 'section',
1266
- { id: 'related-content-section', className: 'my-1' },
1267
- (article.relatedArticle || RelevantTopics()) && React__default['default'].createElement(
1268
- 'p',
1269
- { className: 'mb-0' },
1270
- React__default['default'].createElement(
1271
- 'b',
1272
- null,
1273
- 'Related Content:'
1274
- )
1275
- ),
1276
- React__default['default'].createElement(RelevantTopics, null),
1277
- React__default['default'].createElement(
1278
- 'div',
1279
- { className: 'pt-2' },
1280
- React__default['default'].createElement(RelatedArticle, {
1281
- articles: article.relatedArticle,
1282
- client: client,
1283
- fallbackImage: props.Settings.logo,
1284
- showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage
1285
- })
1286
- )
1287
- )
1288
- );
1289
- });
1290
-
1291
- var form = function form() {
1292
- return React__default['default'].createElement(
1293
- React__default['default'].Fragment,
1294
- null,
1295
- React__default['default'].createElement(
1296
- Head__default['default'],
1297
- null,
1298
- React__default['default'].createElement('meta', { name: 'googlebot', content: 'noindex' })
1299
- ),
1300
- React__default['default'].createElement(
1301
- 'div',
1302
- { className: 'mt-5', style: { display: 'flex', justifyContent: 'center', alignItems: 'center' } },
1303
- React__default['default'].createElement(
1304
- Form__default['default'],
1305
- {
1306
- inline: true,
1307
- onSubmit: function onSubmit(e) {
1308
- e.preventDefault();
1309
- } },
1310
- React__default['default'].createElement(FormControl__default['default'], { type: 'text', className: 'mr-sm-2', value: passwordKey, onChange: function onChange(e) {
1311
- return setPasswordKey(e.target.value);
1312
- }, placeholder: 'Password' }),
1313
- React__default['default'].createElement(
1314
- Button__default['default'],
1315
- {
1316
- variant: 'primary',
1317
- onClick: function onClick() {
1318
- if (passwordKey === props.article.password) {
1319
- setAuth(2);
1320
- } else {
1321
- alert('Incorrect Password');
1322
- }
1323
- } },
1324
- 'Submit'
1325
- )
1326
- )
1327
- )
1328
- );
1329
- };
1330
-
1331
- var renderBlockContent = function renderBlockContent(payload, meta, authorImgHeight) {
1332
- var _payload = payload,
1333
- body = _payload.body;
1334
-
1335
- var indexes = findIndex(body);
1336
- var seriesInfo = checkIfMediaSeriesHasVideo(article);
1337
- var isMediaSeries = false;
1338
- if (article.documentGroup && article.documentGroup.isSeries) {
1339
- isMediaSeries = true;
1340
- } else if (!article.documentGroup && article.documentGroupMapping && checkDocGroupMappingForSeries(article.documentGroupMapping)) {
1341
- isMediaSeries = true;
1342
- }
1343
-
1344
- if (indexes.length >= 2 && body.length > 3 && payload.contextualAD && payload.contextualVideoAD) {
1345
- payload = _extends._extends({}, payload, {
1346
- contextualAD: _extends._extends({}, payload.contextualAD, {
1347
- slotId: (payload.contextualAD.slotId || 'contextual_ad') + '-' + payload._id
1348
- }),
1349
- contextualVideoAD: _extends._extends({}, payload.contextualVideoAD, {
1350
- slotId: (payload.contextualVideoAD.slotId || 'in-context_video') + '-' + payload._id
1351
- })
1352
- });
1353
- var selectedIndex = !(indexes.length % 2) ? indexes.length / 2 + 1 : Math.round(indexes.length / 2);
1354
- if (seriesInfo.hasVideo) {
1355
- selectedIndex = seriesInfo.videoIndex;
1356
- }
1357
-
1358
- var checkIsVideoAdFound = function checkIsVideoAdFound(isFound) {
1359
- if (!isFound) {
1360
- var parent = document.getElementById('contextual-video-ad-' + payload._id);
1361
- parent.style.height = '0%';
1362
- parent.style.width = '0%';
1363
- parent.style.display = 'none';
1364
- setContextualADFlag(false);
1365
- } else {
1366
- setContextualADFlag(true);
1367
- }
1368
- };
1369
- return React__default['default'].createElement(
1370
- React__default['default'].Fragment,
1371
- null,
1372
- React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
1373
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, isMediaSeries, contextualADFlag, null, article.Ads, targeting, article, meta, authorPrefix, authorImgHeight, audioAutoplay),
1374
- blocks: [].concat(toConsumableArray._toConsumableArray(articleBody.slice(0, selectedIndex))),
1375
- imageOptions: { w: 320, h: 240, fit: 'max' }
1376
- }, client.config())),
1377
- React__default['default'].createElement('span', { className: 'clearfix' }),
1378
- isMediaSeries && sliderData && seriesInfo.hasVideo && React__default['default'].createElement(SeriesSlider.SeriesSlider, { dataset: sliderData, client: client, nowPlaying: article.title, displayEpisodeNumber: logicforDisplayingEpisodeNumber }),
1379
- React__default['default'].createElement(
1380
- 'div',
1381
- { id: 'contextual-native-ad-' + payload._id, className: 'contextual-native-ad' },
1382
- React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualAD, { refreshFlag: refreshFlag }))
1383
- ),
1384
- React__default['default'].createElement(
1385
- 'style',
1386
- { jsx: 'true' },
1387
- '\n .contextual-native-ad {\n margin-bottom: 1rem;\n }\n '
1388
- ),
1389
- React__default['default'].createElement('span', { className: 'clearfix' }),
1390
- React__default['default'].createElement(
1391
- 'div',
1392
- { id: 'contextual-video-ad-' + payload._id, className: 'contextual-video-ad' },
1393
- React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualVideoAD, { refreshFlag: refreshFlag, checkIsAdFound: checkIsVideoAdFound }))
1394
- ),
1395
- React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
1396
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, isMediaSeries, null, null, article.Ads, targeting, article, meta, authorPrefix, authorImgHeight, audioAutoplay),
1397
- blocks: [].concat(toConsumableArray._toConsumableArray(articleBody.slice(selectedIndex))),
1398
- imageOptions: { w: 320, h: 240, fit: 'max' }
1399
- }, client.config()))
1400
- );
1401
- } else if (indexes.length >= 2 && body.length >= 3 && payload.contextualAD && !payload.contextualVideoAD) {
1402
- payload = _extends._extends({}, payload, {
1403
- contextualAD: _extends._extends({}, payload.contextualAD, {
1404
- slotId: (payload.contextualAD.slotId || 'contextual_ad') + '-' + payload._id,
1405
- className: 'ADFluid',
1406
- // Fetching new contextual targeting based on the current active article.
1407
- targeting: getTargeting.getTargeting(props, 'native-ad'),
1408
- // Adding new ad size for large contextual ad for desktop screen width >= 1400
1409
- sizes: lgContextAd ? [[728, 90], 'fluid', [300, 100]] : ['fluid', [300, 100]],
1410
- sizeMapping: lgContextAd ? [{
1411
- viewport: [1400, 0],
1412
- sizes: [[728, 90], 'fluid', [300, 100]]
1413
- }, { viewport: [0, 0], sizes: ['fluid', [300, 100]] }] : [{ viewport: [0, 0], sizes: ['fluid', [300, 100]] }]
1414
- })
1415
- });
1416
- var _selectedIndex = !(indexes.length % 2) ? indexes.length / 2 + 1 : Math.round(indexes.length / 2);
1417
- if (seriesInfo.hasVideo) {
1418
- _selectedIndex = seriesInfo.videoIndex;
1419
- }
1420
- return React__default['default'].createElement(
1421
- React__default['default'].Fragment,
1422
- null,
1423
- React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
1424
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, isMediaSeries, contextualADFlag, null, article.Ads, targeting, article, meta, authorPrefix, authorImgHeight, audioAutoplay),
1425
- blocks: [].concat(toConsumableArray._toConsumableArray(articleBody.slice(0, _selectedIndex))),
1426
- imageOptions: { w: 320, h: 240, fit: 'max' }
1427
- }, client.config())),
1428
- contextualADFlag && React__default['default'].createElement('span', { className: 'clearfix' }),
1429
- isMediaSeries && sliderData && seriesInfo.hasVideo && React__default['default'].createElement(SeriesSlider.SeriesSlider, { dataset: sliderData, client: client, nowPlaying: article.title, displayEpisodeNumber: logicforDisplayingEpisodeNumber }),
1430
- (visibleFlag || queueData && queueData.length === 1 || !props.infiniteScroll) && React__default['default'].createElement(
1431
- React__default['default'].Fragment,
1432
- null,
1433
- React__default['default'].createElement(
1434
- 'div',
1435
- { id: 'contextual-native-ad-' + payload._id, className: 'contextual-native-ad' },
1436
- React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualAD, { refreshFlag: refreshFlag }))
1437
- ),
1438
- React__default['default'].createElement(
1439
- 'style',
1440
- { jsx: 'true' },
1441
- '\n .contextual-native-ad {\n margin-bottom: 1rem;\n }\n '
1442
- )
1443
- ),
1444
- contextualADFlag && React__default['default'].createElement('span', { className: 'clearfix' }),
1445
- React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
1446
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, isMediaSeries, null, null, article.Ads, targeting, article, meta, authorPrefix, authorImgHeight, audioAutoplay),
1447
- blocks: [].concat(toConsumableArray._toConsumableArray(articleBody.slice(_selectedIndex))),
1448
- imageOptions: { w: 320, h: 240, fit: 'max' }
1449
- }, client.config()))
1450
- );
1451
- } else if (indexes.length >= 2 && body.length > 3 && payload.contextualVideoAD && !payload.contextualAD) {
1452
- payload = _extends._extends({}, payload, {
1453
- contextualVideoAD: _extends._extends({}, payload.contextualVideoAD, {
1454
- slotId: (payload.contextualVideoAD.slotId || 'in-context_video') + '-' + payload._id
1455
- })
1456
- });
1457
- var _selectedIndex2 = !(indexes.length % 2) ? indexes.length / 2 + 1 : Math.round(indexes.length / 2);
1458
- if (seriesInfo.hasVideo) {
1459
- _selectedIndex2 = seriesInfo.videoIndex;
1460
- }
1461
- var checkIsAdFound = function checkIsAdFound(isFound) {
1462
- if (!isFound) {
1463
- var parent = document.getElementById('contextual-video-ad-' + payload._id);
1464
- parent.style.height = '0%';
1465
- parent.style.width = '0%';
1466
- parent.style.display = 'none';
1467
- setContextualADFlag(false);
1468
- } else {
1469
- if (body && body[1] && body[1]._type === 'figure') {
1470
- setContextualADFlag(true);
1471
- }
1472
- }
1473
- };
1474
-
1475
- return React__default['default'].createElement(
1476
- React__default['default'].Fragment,
1477
- null,
1478
- React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
1479
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, isMediaSeries, contextualADFlag, null, article.Ads, targeting, article, meta, authorPrefix, authorImgHeight, audioAutoplay),
1480
- blocks: [].concat(toConsumableArray._toConsumableArray(articleBody.slice(0, _selectedIndex2))),
1481
- imageOptions: { w: 320, h: 240, fit: 'max' }
1482
- }, client.config())),
1483
- React__default['default'].createElement('span', { className: 'clearfix' }),
1484
- isMediaSeries && sliderData && seriesInfo.hasVideo && React__default['default'].createElement(SeriesSlider.SeriesSlider, { dataset: sliderData, client: client, nowPlaying: article.title, displayEpisodeNumber: logicforDisplayingEpisodeNumber }),
1485
- React__default['default'].createElement(
1486
- 'div',
1487
- { id: 'contextual-video-ad-' + payload._id, className: 'contextual-video-ad' },
1488
- React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualVideoAD, { refreshFlag: refreshFlag, checkIsAdFound: checkIsAdFound }))
1489
- ),
1490
- React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
1491
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, isMediaSeries, null, null, article.Ads, targeting, article, meta, authorPrefix, authorImgHeight, audioAutoplay),
1492
- blocks: [].concat(toConsumableArray._toConsumableArray(articleBody.slice(_selectedIndex2))),
1493
- imageOptions: { w: 320, h: 240, fit: 'max' }
1494
- }, client.config()))
1495
- );
1496
- } else {
1497
- var _selectedIndex3 = !(indexes.length % 2) ? indexes.length / 2 + 1 : Math.round(indexes.length / 2);
1498
- if (seriesInfo.hasVideo) {
1499
- _selectedIndex3 = seriesInfo.videoIndex;
1500
- }
1501
-
1502
- return React__default['default'].createElement(
1503
- 'div',
1504
- null,
1505
- React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
1506
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, isMediaSeries, false, null, article.Ads, targeting, article, meta, authorPrefix, authorImgHeight, audioAutoplay),
1507
- blocks: article.documentGroup && article.documentGroup.isSeries ? [].concat(toConsumableArray._toConsumableArray(articleBody.slice(0, _selectedIndex3))) : articleBody,
1508
- imageOptions: { w: 320, h: 240, fit: 'max' }
1509
- }, client.config())),
1510
- isMediaSeries && sliderData && seriesInfo.hasVideo && React__default['default'].createElement(SeriesSlider.SeriesSlider, { dataset: sliderData, client: client, nowPlaying: article.title, displayEpisodeNumber: logicforDisplayingEpisodeNumber }),
1511
- article.documentGroup && article.documentGroup.isSeries && React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
1512
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, isMediaSeries, null, null, article.Ads, targeting, article, meta, authorPrefix, authorImgHeight, audioAutoplay),
1513
- blocks: [].concat(toConsumableArray._toConsumableArray(articleBody.slice(_selectedIndex3))),
1514
- imageOptions: { w: 320, h: 240, fit: 'max' }
1515
- }, client.config()))
1516
- );
1517
- }
1518
- };
1519
-
1520
- var checkIfVideoSeries = function checkIfVideoSeries(article) {
1521
- if (!article || !article.body) {
1522
- return false;
1523
- }
1524
-
1525
- for (var i = 0; i < article.body.length; i++) {
1526
- var block = article.body[i];
1527
- if (block._type === 'youtubeGallery') {
1528
- return true;
1529
- }
1530
- }
1531
-
1532
- return false;
1533
- };
1534
- var checkIfFormAssembly = function checkIfFormAssembly(article) {
1535
- if (!article || !article.body) {
1536
- return false;
1537
- }
1538
-
1539
- for (var i = 0; i < article.body.length; i++) {
1540
- var block = article.body[i];
1541
- if (block._type === 'formassembly') {
1542
- return true;
1543
- }
1544
- }
1545
- return false;
1546
- };
1547
- var checkIfMediaSeriesHasVideo = function checkIfMediaSeriesHasVideo(article) {
1548
- var seriesInfo = { hasVideo: false, videoIndex: 0 };
1549
- if (!article || !article.body) {
1550
- return false;
1551
- }
1552
-
1553
- for (var i = 0; i < article.body.length; i++) {
1554
- var block = article.body[i];
1555
- if (block._type == 'video' || block._type == 'youtube' || block._type == 'audio') {
1556
- seriesInfo.hasVideo = true;
1557
- seriesInfo.videoIndex = i + 1;
1558
- }
1559
- }
1560
-
1561
- return seriesInfo;
1562
- };
1563
-
1564
- var detail = function detail() {
1565
- var shareVia = shareOptions.shareVia,
1566
- shareSubject = shareOptions.shareSubject,
1567
- twitterSiteName = shareOptions.twitterSiteName,
1568
- shareImageDefault = shareOptions.shareImageDefault,
1569
- shareBaseUrl = shareOptions.shareBaseUrl;
1570
- shareOptions.shareSiteTitle;
1571
-
1572
- var shareUrl = shareBaseUrl + props.article.url.current;
1573
- var shareTitle = article.title;
1574
- var shareSummary = article.summary;
1575
- var shareImage = thumbnail && thumbnail.asset ? urlFor({ client: props.client, source: thumbnail.asset }) : shareImageDefault;
1576
- var siteName = props.Website && props.Website.title ? props.Website.title : '';
1577
- var shareKeywords = getKeywords(props.article).join(',');
1578
-
1579
- var meta = {
1580
- shareTitle: shareTitle,
1581
- shareSiteName: props.cache.siteSettingCache.name,
1582
- shareSummary: shareSummary,
1583
- shareUrl: shareUrl,
1584
- shareImage: shareImage,
1585
- shareVia: props.Settings.title,
1586
- shareKeywords: shareKeywords
1587
- };
1588
- if (!props.infiniteScroll) {
1589
- onChangeArticle = function onChangeArticle() {
1590
- return null;
1591
- };
1592
- }
1593
- var fetchCurrentEpisode = function fetchCurrentEpisode(sliderData, article) {
1594
- if (!sliderData) return null;
1595
- var episode = null;
1596
- sliderData.forEach(function (seriesArticle, index) {
1597
- if (seriesArticle.title === article.title) {
1598
- episode = index + 1;
1599
- }
1600
- });
1601
- return episode;
1602
- };
1603
- // pixels from bottom of window to change trigger visibility change
1604
- var triggerOffset = 20;
1605
- var isVideoSeries = checkIfVideoSeries(article);
1606
- var episodeNumber = fetchCurrentEpisode(sliderData, props.article);
1607
- var isMediaSeries = false;
1608
- var mediaSeriesName = '';
1609
- var seriesInfo = checkIfMediaSeriesHasVideo(article);
1610
- var isFormAssembly = checkIfFormAssembly(article);
1611
-
1612
- if (article.documentGroup && article.documentGroup.isSeries) {
1613
- isMediaSeries = true;
1614
- mediaSeriesName = article.documentGroup.name;
1615
- }
1616
- if (!article.documentGroup && article.documentGroupMapping && checkDocGroupMappingForSeries(article.documentGroupMapping)) {
1617
- isMediaSeries = true;
1618
- mediaSeriesName = checkDocGroupMappingForSeries(article.documentGroupMapping).name;
1619
- }
1620
-
1621
- return React__default['default'].createElement(
1622
- React__default['default'].Fragment,
1623
- null,
1624
- React__default['default'].createElement(
1625
- visibilitySensor.VisibilitySensor,
1626
- {
1627
- partialVisibility: true,
1628
- offset: { bottom: triggerOffset, top: containerHeight && containerHeight },
1629
- onChange: function onChange(isVisible) {
1630
- if (isVisible && !isFirstArticle) {
1631
- var pageviewProperties = _extends._extends({}, targeting, {
1632
- category: article && article.category ? article.category.name : ''
1633
- });
1634
- onChangeArticle(url, meta, pageviewProperties);
1635
- setVisibleFlag(function () {
1636
- return true;
1637
- });
1638
- }
1639
- if (isFirstArticle) {
1640
- setIsFirstArticle(false);
1641
- }
1642
- } },
1643
- React__default['default'].createElement(
1644
- 'div',
1645
- { id: 'article__block', style: { position: 'relative' }, ref: ref },
1646
- React__default['default'].createElement(PixelTracking.PixelTrackingArticle, { article: article, infiniteScroll: props.infiniteScroll }),
1647
- React__default['default'].createElement(
1648
- 'div',
1649
- { className: 'video-detail', style: { marginBottom: isCutomPage(props.article) || showIsi && Array.isArray(isi) && isi.length > 0 ? '15rem' : 0 } },
1650
- issue && React__default['default'].createElement(
1651
- Head__default['default'],
1652
- null,
1653
- article.title && React__default['default'].createElement('meta', { name: 'citation_title', content: article.title }),
1654
- published && React__default['default'].createElement('meta', { name: 'citation_date', content: moment.moment(published).format('LL') }),
1655
- issue.year && React__default['default'].createElement('meta', { name: 'citation_year', content: issue.year }),
1656
- issue.isbn_issn && React__default['default'].createElement('meta', { name: 'citation_isbn', content: issue.isbn_issn }),
1657
- article.abstract && React__default['default'].createElement('meta', { name: 'citation_abstract', content: getAbstract() }),
1658
- React__default['default'].createElement('meta', { name: 'citation_author', content: getAuthorList() }),
1659
- issue.pdf && React__default['default'].createElement('meta', { name: 'citation_pdf_url', content: urlForFile.urlForFile({ asset: issue.pdf }) })
1660
- ),
1661
- isVideoSeries && renderBlockContent(article, meta, authorImgHeight),
1662
- !isVideoSeries && React__default['default'].createElement(
1663
- 'div',
1664
- null,
1665
- isMediaSeries && React__default['default'].createElement(
1666
- 'p',
1667
- { style: { fontSize: '14px' } },
1668
- disableEpisodeNumber ? '' + mediaSeriesName : mediaSeriesName + ' - Episode ' + episodeNumber
1669
- ),
1670
- React__default['default'].createElement(
1671
- 'h1',
1672
- { className: 'page-title', style: { fontSize: '1.9rem' } },
1673
- title
1674
- )
1675
- ),
1676
- React__default['default'].createElement(
1677
- 'div',
1678
- { className: 'mb-3 doc-group-container', style: { display: 'flex', justifyContent: 'space-between', alignItems: 'flex-end' } },
1679
- React__default['default'].createElement(
1680
- 'style',
1681
- { jsx: 'true' },
1682
- '\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 '
1683
- ),
1684
- React__default['default'].createElement(
1685
- 'div',
1686
- { className: 'left-wrap' },
1687
- !isVideoSeries && !isFormAssembly && showPublished && React__default['default'].createElement(
1688
- 'div',
1689
- null,
1690
- React__default['default'].createElement(
1691
- 'time',
1692
- {
1693
- className: 'meta-date',
1694
- dateTime: moment.moment(published).utc().format(moment.moment.HTML5_FMT.DATETIME_LOCAL_MS) },
1695
- moment.moment(published).format('LL')
1696
- )
1697
- )
1698
- /* Show Published date */
1699
- ,
1700
- React__default['default'].createElement(
1701
- 'div',
1702
- { className: 'mb-3' },
1703
- !isVideoSeries && authorDetails && authorDetails.map(function (authorDetail, index) {
1704
- return React__default['default'].createElement(
1705
- 'span',
1706
- { key: index },
1707
- getSerializers.renderAuthor(authorDetail.displayName, authorDetail.url, index, authorDetails.length, authorPrefix, authorDetail.biography && renderAuthorBiography(authorDetail.biography[0]), authorDetail.profileImage && urlFor({ client: props.client, source: authorDetail.profileImage, imageHeight: authorImgHeight }), showAuthorDetails)
1708
- );
1709
- }),
1710
- React__default['default'].createElement(
1711
- 'div',
1712
- null,
1713
- source && React__default['default'].createElement(
1714
- 'p',
1715
- {
1716
- style: {
1717
- display: 'inline-block',
1718
- padding: '0 .25rem',
1719
- color: 'var(--franchise-primary, #484848)',
1720
- borderRadius: '2px',
1721
- fontWeight: 'bold',
1722
- border: '2px solid var(--franchise-primary, #484848)'
1723
- },
1724
- className: 'source-label' },
1725
- source
1726
- )
1727
- ),
1728
- issue && React__default['default'].createElement(
1729
- 'div',
1730
- { className: 'volume-issue' },
1731
- issue.publication && issue.publication.name && React__default['default'].createElement(
1732
- 'span',
1733
- { className: 'mb-0' },
1734
- React__default['default'].createElement(
1735
- 'b',
1736
- null,
1737
- issue.publication.name
1738
- ),
1739
- ',',
1740
- ' '
1741
- ),
1742
- issue.name && React__default['default'].createElement(
1743
- 'span',
1744
- { className: 'mb-0' },
1745
- issue.name,
1746
- ', '
1747
- ),
1748
- issue.volume && React__default['default'].createElement(
1749
- 'span',
1750
- null,
1751
- 'Volume ' + issue.volume,
1752
- ','
1753
- ),
1754
- issue.issueNumber && React__default['default'].createElement(
1755
- 'span',
1756
- null,
1757
- ' Issue ' + issue.issueNumber
1758
- )
1759
- ),
1760
- pageNumber && React__default['default'].createElement(
1761
- 'div',
1762
- { className: 'article-pageNumber' },
1763
- 'Pages: ' + pageNumber
1764
- )
1765
- ),
1766
- React__default['default'].createElement(
1767
- 'div',
1768
- { className: 'social-ris-container' },
1769
- !isVideoSeries && showSocialShare && React__default['default'].createElement(
1770
- 'p',
1771
- null,
1772
- React__default['default'].createElement(SocialShare, {
1773
- shareUrl: shareUrl,
1774
- shareTitle: shareTitle,
1775
- shareVia: shareVia,
1776
- shareSummary: shareSummary,
1777
- shareSubject: shareSubject,
1778
- shareImage: shareImage,
1779
- size: 32,
1780
- siteName: siteName,
1781
- twitterSiteName: twitterSiteName,
1782
- disableMeta: true,
1783
- hidePinterest: hidePinterestShare,
1784
- hideFacebook: hideFBShare
1785
- })
1786
- ),
1787
- 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(
1788
- Button__default['default'],
1789
- { className: 'ris-download-button', onClick: function onClick() {
1790
- return downloadRIS();
1791
- } },
1792
- 'Download RIS'
1793
- )
1794
- )
1795
- ),
1796
- React__default['default'].createElement(
1797
- 'div',
1798
- null,
1799
- React__default['default'].createElement(DocumentGroup, { article: props.article, client: props.client })
1800
- )
1801
- ),
1802
- !isVideoSeries && summary && display_summary && React__default['default'].createElement(
1803
- 'p',
1804
- null,
1805
- React__default['default'].createElement(
1806
- 'em',
1807
- null,
1808
- summary
1809
- )
1810
- ),
1811
- React__default['default'].createElement(
1812
- 'div',
1813
- { className: 'ad-box', style: { textAlign: 'center' } },
1814
- main.main_43 && !sponsoredFlag && props.article.Ads && props.article.Ads.length > 0 && props.article.Ads.map(function (ad, index) {
1815
- if (index === 0) {
1816
- return React__default['default'].createElement(
1817
- 'div',
1818
- {
1819
- key: index,
1820
- id: 'addid-' + index,
1821
- style: {
1822
- display: 'flex',
1823
- flex: '1 0 auto',
1824
- justifyContent: 'center',
1825
- alignItems: 'center',
1826
- textAlign: 'center'
1827
- } },
1828
- ad.component
1829
- );
1830
- }
1831
- })
1832
- ),
1833
- React__default['default'].createElement(
1834
- 'div',
1835
- { className: 'block-content mt-3' },
1836
- !isVideoSeries && renderBlockContent(article, meta),
1837
- React__default['default'].createElement('div', { className: 'clearfix' }),
1838
- React__default['default'].createElement(
1839
- 'noscript',
1840
- null,
1841
- React__default['default'].createElement(
1842
- 'div',
1843
- { style: { display: 'flex', justifyContent: 'center' }, className: 'series-links' },
1844
- props.article.seriesDetail && props.article.seriesDetail.prevUrl && React__default['default'].createElement(
1845
- 'a',
1846
- { className: 'mx-3', href: props.article.seriesDetail.prevUrl },
1847
- 'Previous ',
1848
- props.article.seriesDetail.type
1849
- ),
1850
- props.article.seriesDetail && props.article.seriesDetail.nextUrl && React__default['default'].createElement(
1851
- 'a',
1852
- { className: 'mx-3', href: props.article.seriesDetail.nextUrl },
1853
- 'Next ',
1854
- props.article.seriesDetail.type
1855
- )
1856
- )
1857
- ),
1858
- React__default['default'].createElement(
1859
- 'div',
1860
- { className: 'downloads-container' },
1861
- issue && issue.pdf && React__default['default'].createElement(
1862
- 'a',
1863
- { rel: 'noopener', href: urlForFile.urlForFile({ asset: issue.pdf }), target: '_blank', title: 'Download issue' },
1864
- React__default['default'].createElement('img', { style: { margin: '1rem', maxHeight: '40px', maxWidth: '40px' }, src: '/download.png', alt: 'download issue' }),
1865
- 'Download Issue : ',
1866
- issue.name
1867
- )
1868
- )
1869
- ),
1870
- React__default['default'].createElement('div', { className: 'clearfix', style: { minHeight: '1px' } }),
1871
- article.documentGroup && article.documentGroup.isSeries && sliderData && !seriesInfo.hasVideo && React__default['default'].createElement(
1872
- 'div',
1873
- null,
1874
- false ,
1875
- React__default['default'].createElement(SeriesSlider.SeriesSlider, { dataset: sliderData, client: client, nowPlaying: article.title, displayEpisodeNumber: logicforDisplayingEpisodeNumber })
1876
- ),
1877
- showRelatedArticles && !showIsi && React__default['default'].createElement(RelatedContent, null),
1878
- disqusConfig && showDisqus && React__default['default'].createElement(
1879
- 'div',
1880
- { id: 'disqusContainer' },
1881
- React__default['default'].createElement(disqusReact.DiscussionEmbed, {
1882
- shortname: disqusConfig.shortname,
1883
- config: {
1884
- url: disqusConfig.url,
1885
- identifier: disqusConfig.identifier,
1886
- title: disqusConfig.title
1887
- }
1888
- })
1889
- )
1890
- ),
1891
- renderIsiContent(props.article)
1892
- )
1893
- ),
1894
- showIsi && Array.isArray(isi) && isi.length > 0 && React__default['default'].createElement(
1895
- ISI,
1896
- null,
1897
- React__default['default'].createElement(BlockContent.BlockContent, {
1898
- serializers: getSerializers.getSerializers(client, pageview, videoAccountIDs, onVote, true, drupalLeadSettings, currentPage, false, false, null, article.Ads, targeting),
1899
- blocks: isi
1900
- })
1901
- ),
1902
- main.main_43 && !sponsoredFlag && props.article.Ads && props.article.Ads.length > 0 && props.article.Ads.map(function (ad, index) {
1903
- if (index > 0) {
1904
- return React__default['default'].createElement(
1905
- 'div',
1906
- { key: index, id: 'addid-' + index },
1907
- ad.component
1908
- );
1909
- }
1910
- }),
1911
- React__default['default'].createElement(
1912
- 'noscript',
1913
- null,
1914
- props.infiniteScroll && props.article.relatedArticle && props.article.relatedArticle[0] && props.article.relatedArticle[0].url && props.article.relatedArticle[0].url.current && React__default['default'].createElement(
1915
- 'div',
1916
- { style: { textAlign: 'center' } },
1917
- React__default['default'].createElement(
1918
- 'a',
1919
- { href: '/view/' + props.article.relatedArticle[0].url.current },
1920
- 'Related Article ',
1921
- '>>>'
1922
- )
1923
- )
1924
- ),
1925
- props.infiniteScroll && React__default['default'].createElement('hr', { className: 'article-seperater mb-5 mt-3' }),
1926
- React__default['default'].createElement(Schema, { article: props.article, Website: props.Website, client: props.client })
1927
- );
1928
- };
1929
-
1930
- if (passwordLock) {
1931
- if (auth === 2) {
1932
- return detail();
1933
- } else {
1934
- return form();
1935
- }
1936
- } else {
1937
- return detail();
1938
- }
1939
- }), function (prevProps, nextProps) {
1940
- if (prevProps.article._id === nextProps.article._id) return true;
1941
- return false;
1942
- });
1943
-
1944
- var _this$1 = undefined;
1945
-
1946
- var ArticleQueue = function ArticleQueue(props) {
1947
- var router = Router.useRouter();
1948
-
1949
- var _props$prevUrl = props.prevUrl,
1950
- prevUrl = _props$prevUrl === undefined ? '/' : _props$prevUrl,
1951
- Ads = props.Ads,
1952
- _props$maxListLength = props.maxListLength,
1953
- maxListLength = _props$maxListLength === undefined ? 10 : _props$maxListLength;
1954
- props.sponsoredTaxonomies;
1955
- var _props$cpModification = props.cpModificationRequired,
1956
- cpModificationRequired = _props$cpModification === undefined ? false : _props$cpModification,
1957
- _props$authorPrefix = props.authorPrefix,
1958
- authorPrefix = _props$authorPrefix === undefined ? 'authors' : _props$authorPrefix,
1959
- showRelatedArticles = props.showRelatedArticles,
1960
- canonicalTag = props.canonicalTag,
1961
- _props$disablePrevUrl = props.disablePrevUrlCheckContentPlacement,
1962
- disablePrevUrlCheckContentPlacement = _props$disablePrevUrl === undefined ? false : _props$disablePrevUrl;
1963
-
1964
- var _useState = React.useState(0),
1965
- _useState2 = slicedToArray._slicedToArray(_useState, 2),
1966
- containerHeight = _useState2[0],
1967
- setContainerHeight = _useState2[1];
1968
-
1969
- React.useEffect(function () {
1970
- var checkFullScreen = function checkFullScreen() {
1971
- if (window.innerWidth == screen.width && window.innerHeight == screen.height) {
1972
- return true;
1973
- } else {
1974
- return false;
1975
- }
1976
- };
1977
- setContainerHeight(function () {
1978
- return window.innerHeight;
1979
- });
1980
- var handleResize = function handleResize() {
1981
- return !checkFullScreen() && setContainerHeight(function () {
1982
- return window.innerHeight;
1983
- });
1984
- };
1985
- window.addEventListener('resize', handleResize);
1986
- return function () {
1987
- return window.removeEventListener('resize', handleResize);
1988
- };
1989
- }, []);
1990
-
1991
- var firstArticle = function firstArticle() {
1992
- var article = _extends._Object$assign({}, props.article);
1993
- var targeting = getTargeting.getTargeting(props);
1994
- article.Ads = Ads.getRightItems(targeting);
1995
- return article;
1996
- };
1997
-
1998
- var _useState3 = React.useState([firstArticle()]),
1999
- _useState4 = slicedToArray._slicedToArray(_useState3, 2),
2000
- queueData = _useState4[0],
2001
- setQueueData = _useState4[1];
2002
-
2003
- var _useState5 = React.useState(queueData[0]._id),
2004
- _useState6 = slicedToArray._slicedToArray(_useState5, 2),
2005
- active = _useState6[0],
2006
- setActive = _useState6[1];
2007
-
2008
- var refreshAD = function refreshAD(path) {
2009
- var activeArticle = queueData.find(function (item) {
2010
- return item.url.current === path;
2011
- });
2012
- var targeting = getTargeting.getTargeting({ article: activeArticle, cpModificationRequired: cpModificationRequired, position: props.position, prevUrl: prevUrl, disablePrevUrlCheckContentPlacement: disablePrevUrlCheckContentPlacement });
2013
- if (!main.main_43) {
2014
- index.lib_3.getGoogletag().then(function (googletag) {
2015
- if (window.googletag && googletag.pubadsReady) {
2016
- var slots = googletag.pubads().getSlots();
2017
- slots.forEach(function (slot) {
2018
- var pos = slot.getTargeting('pos');
2019
- slot.clearTargeting();
2020
- keys._Object$keys(targeting).forEach(function (key) {
2021
- slot.setTargeting(key, targeting[key]);
2022
- });
2023
- slot.setTargeting('pos', pos);
2024
- });
2025
- index.lib_3.refresh();
2026
- }
2027
- });
2028
- }
2029
- //Refresh leaderboard ad on mobile
2030
- if (main.main_43) {
2031
- var leaderboardSlotId = '';
2032
- index.lib_3.getGoogletag().then(function (googletag) {
2033
- if (window.googletag && googletag.pubadsReady) {
2034
- var slots = googletag.pubads().getSlots();
2035
- slots.forEach(function (slot) {
2036
- var pos = slot.getTargeting('pos');
2037
- if (pos == 'top-mobile') {
2038
- //gets the slotId of the leaderboard ad to refresh
2039
- leaderboardSlotId = slot.getSlotId().getDomId();
2040
- slot.clearTargeting();
2041
- keys._Object$keys(targeting).forEach(function (key) {
2042
- slot.setTargeting(key, targeting[key]);
2043
- });
2044
- slot.setTargeting('pos', pos);
2045
- }
2046
- });
2047
- index.lib_3.refresh(leaderboardSlotId);
2048
- }
2049
- });
2050
- }
2051
- };
2052
-
2053
- var hasVerticalScroll = function hasVerticalScroll() {
2054
- if (window.innerHeight) {
2055
- return document.body.offsetHeight > window.innerHeight;
2056
- } else {
2057
- return document.documentElement.scrollHeight > document.documentElement.offsetHeight || document.body.scrollHeight > document.body.offsetHeight;
2058
- }
2059
- };
2060
-
2061
- React.useEffect(function () {
2062
- // Fetching related article after component mounted if vertical scroll not found
2063
- setTimeout(function () {
2064
- if (!hasVerticalScroll()) {
2065
- loadmore();
2066
- }
2067
- }, 1000);
2068
- }, [queueData.length]);
2069
-
2070
- var loadmore = function () {
2071
- var _ref = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee() {
2072
- var index, article, startingIndex, endingIndex, targeting;
2073
- return asyncToGenerator.regenerator.wrap(function _callee$(_context) {
2074
- while (1) {
2075
- switch (_context.prev = _context.next) {
2076
- case 0:
2077
- if (!(queueData && queueData.length < maxListLength)) {
2078
- _context.next = 27;
2079
- break;
2080
- }
2081
-
2082
- index = queueData.length - 1;
2083
- article = null;
2084
- _context.prev = 3;
2085
- _context.next = 6;
2086
- return getRelatedArticle(null, props.client, props.article, prevUrl, index);
2087
-
2088
- case 6:
2089
- article = _context.sent;
2090
- _context.next = 12;
2091
- break;
2092
-
2093
- case 9:
2094
- _context.prev = 9;
2095
- _context.t0 = _context['catch'](3);
2096
-
2097
- console.error(_context.t0);
2098
-
2099
- case 12:
2100
- if (!(article && article._id)) {
2101
- _context.next = 27;
2102
- break;
2103
- }
2104
-
2105
- //query next 4 related article without repeating previous 4 related articles
2106
- startingIndex = queueData.length + 1;
2107
- endingIndex = startingIndex + 2;
2108
- _context.prev = 15;
2109
- _context.next = 18;
2110
- return getRelatedArticle(null, props.client, props.article, prevUrl, startingIndex + '..' + endingIndex);
2111
-
2112
- case 18:
2113
- article.relatedArticle = _context.sent;
2114
- _context.next = 24;
2115
- break;
2116
-
2117
- case 21:
2118
- _context.prev = 21;
2119
- _context.t1 = _context['catch'](15);
2120
-
2121
- console.error(_context.t1);
2122
-
2123
- case 24:
2124
- targeting = getTargeting.getTargeting({ article: article, cpModificationRequired: cpModificationRequired, prevUrl: prevUrl, disablePrevUrlCheckContentPlacement: disablePrevUrlCheckContentPlacement });
2125
-
2126
- article.Ads = Ads.getRightItems(targeting);
2127
- setQueueData([].concat(toConsumableArray._toConsumableArray(queueData), [article]));
2128
-
2129
- case 27:
2130
- case 'end':
2131
- return _context.stop();
2132
- }
2133
- }
2134
- }, _callee, _this$1, [[3, 9], [15, 21]]);
2135
- }));
2136
-
2137
- return function loadmore() {
2138
- return _ref.apply(this, arguments);
2139
- };
2140
- }();
2141
-
2142
- var currentPath = router && router.asPath;
2143
- var seoLinks = props.cache.seoManager && props.cache.seoManager.filter(function (eachDocument) {
2144
- return eachDocument.urlSeo == currentPath;
2145
- });
2146
-
2147
- var metaDescriptionSanity = seoLinks && seoLinks.length == 1 && seoLinks[0].metaDescription;
2148
- var metaTitleSanity = seoLinks && seoLinks.length == 1 && seoLinks[0].metaTitle;
2149
- // let urlSeo = seoLinks && seoLinks.length ==1 && seoLinks[0].urlSeo
2150
-
2151
- var changeMetaFromSanity = function changeMetaFromSanity(metaDescription, metaTitle, oldMeta) {
2152
- document.title = metaTitle;
2153
- //this was throwing an error if there was no description, doing a check for the description meta
2154
- if (document.querySelector('meta[name="description"]')) document.querySelector('meta[name="description"]').setAttribute('content', metaDescription);
2155
- document.querySelector('meta[name="keywords"]').setAttribute('content', oldMeta.shareKeywords);
2156
- document.querySelector('meta[property="og:url"]').setAttribute('content', oldMeta.shareUrl);
2157
- document.querySelector('meta[property="og:title"]').setAttribute('content', metaTitle);
2158
- document.querySelector('meta[property="og:site_name"]').setAttribute('content', oldMeta.shareVia);
2159
- document.querySelector('meta[property="og:description"]').setAttribute('content', metaDescription);
2160
- document.querySelector('meta[name="twitter:title"]').setAttribute('content', metaTitle);
2161
- document.querySelector('meta[name="twitter:image"]').setAttribute('content', oldMeta.shareImage);
2162
- document.querySelector('meta[name="twitter:site"]').setAttribute('content', oldMeta.shareVia);
2163
- //this was throwing an error if there was no description, doing a check for the description meta
2164
- if (document.querySelector('meta[name="twitter:description"]')) document.querySelector('meta[name="twitter:description"]').setAttribute('content', metaDescription);
2165
- if (canonicalTag) {
2166
- document.querySelector('link[rel="canonical"]').setAttribute('href', oldMeta.shareUrl);
2167
- }
2168
- };
2169
-
2170
- var changeMeta = function changeMeta(meta) {
2171
- document.title = meta.shareTitle;
2172
- //this was throwing an error if there was no description, doing a check for the description meta
2173
- if (document.querySelector('meta[name="description"]')) document.querySelector('meta[name="description"]').setAttribute('content', meta.shareSummary);
2174
- document.querySelector('meta[name="keywords"]').setAttribute('content', meta.shareKeywords);
2175
- document.querySelector('meta[property="og:url"]').setAttribute('content', meta.shareUrl);
2176
- document.querySelector('meta[property="og:title"]').setAttribute('content', meta.shareTitle);
2177
- document.querySelector('meta[property="og:site_name"]').setAttribute('content', meta.shareVia);
2178
- document.querySelector('meta[property="og:description"]').setAttribute('content', meta.shareSummary);
2179
- document.querySelector('meta[name="twitter:title"]').setAttribute('content', meta.shareTitle);
2180
- document.querySelector('meta[name="twitter:image"]').setAttribute('content', meta.shareImage);
2181
- document.querySelector('meta[name="twitter:site"]').setAttribute('content', meta.shareVia);
2182
- //this was throwing an error if there was no description, doing a check for the description meta
2183
- if (document.querySelector('meta[name="twitter:description"]')) document.querySelector('meta[name="twitter:description"]').setAttribute('content', meta.shareSummary);
2184
- if (canonicalTag) {
2185
- document.querySelector('link[rel="canonical"]').setAttribute('href', meta.shareUrl);
2186
- }
2187
- };
2188
-
2189
- var onChangeArticle = function onChangeArticle(path, meta, pageviewProperties) {
2190
- var newPath = '/view/' + path;
2191
- var activeArticle = queueData.find(function (item) {
2192
- return item.url.current === path;
2193
- });
2194
- setActive(function () {
2195
- return activeArticle._id;
2196
- });
2197
- // Change URL and do other changes
2198
- window.history.pushState({ page: path }, meta.shareTitle, newPath);
2199
-
2200
- if (metaDescriptionSanity && metaTitleSanity && currentPath == newPath) {
2201
- changeMetaFromSanity(metaDescriptionSanity, metaTitleSanity, meta);
2202
- } else {
2203
- changeMeta(meta);
2204
- }
2205
- if (props.setCustomDimensions) {
2206
- props.setCustomDimensions(activeArticle, '200', prevUrl, '');
2207
- }
2208
- if (props.pageview) props.pageview(newPath, null, pageviewProperties);
2209
- if (props.gtagSetCustomDimensions) props.gtagSetCustomDimensions(activeArticle, '200', prevUrl, '', true);
2210
- refreshAD(path);
2211
- };
2212
-
2213
- return React__default['default'].createElement(
2214
- index_es.InfiniteScroll,
2215
- { dataLength: queueData.length, next: loadmore, scrollThreshold: '40%', hasMore: true, style: { overflow: 'hidden' } },
2216
- queueData.map(function (article, index) {
2217
- return React__default['default'].createElement(
2218
- React__default['default'].Fragment,
2219
- { key: index },
2220
- React__default['default'].createElement(Article, _extends._extends({}, props, {
2221
- containerHeight: containerHeight,
2222
- onChangeArticle: onChangeArticle,
2223
- authorPrfix: authorPrefix,
2224
- article: article,
2225
- cpModificationRequired: cpModificationRequired,
2226
- active: active === article._id
2227
- // Passing queueData to check for single article
2228
- , queueData: queueData,
2229
- showRelatedArticles: showRelatedArticles,
2230
- index: index
2231
- }))
2232
- );
2233
- })
2234
- );
2235
- };
2236
-
2237
- var _this = undefined;
2238
-
2239
- var View = function View(props) {
2240
- var router = Router.useRouter();
2241
- var shareOptions = props.shareOptions,
2242
- article = props.article,
2243
- _props$article = props.article,
2244
- hideComments = _props$article.hideComments,
2245
- content_placement = _props$article.content_placement,
2246
- _props$sponsoredFlag = props.sponsoredFlag,
2247
- sponsoredFlag = _props$sponsoredFlag === undefined ? false : _props$sponsoredFlag;
2248
- props.sponsoredTaxonomies;
2249
- var Ads = props.Ads,
2250
- setCustomDimensions = props.setCustomDimensions,
2251
- gtagSetCustomDimensions = props.gtagSetCustomDimensions,
2252
- statusCode = props.statusCode,
2253
- prevUrl = props.prevUrl,
2254
- pageview = props.pageview,
2255
- _props$showRelatedArt = props.showRelatedArticles,
2256
- showRelatedArticles = _props$showRelatedArt === undefined ? false : _props$showRelatedArt,
2257
- _props$canonicalTag = props.canonicalTag,
2258
- canonicalTag = _props$canonicalTag === undefined ? true : _props$canonicalTag,
2259
- _props$infiniteScroll = props.infiniteScrollFlag,
2260
- infiniteScrollFlag = _props$infiniteScroll === undefined ? true : _props$infiniteScroll;
2261
- var _props$article2 = props.article,
2262
- _props$article2$passw = _props$article2.passwordLock,
2263
- passwordLock = _props$article2$passw === undefined ? false : _props$article2$passw;
2264
- _props$article2.description;
2265
- var title = _props$article2.title,
2266
- seriesShareOptions = _props$article2.seriesShareOptions;
2267
-
2268
- var _useState = React.useState(0),
2269
- _useState2 = slicedToArray._slicedToArray(_useState, 2),
2270
- currentPage = _useState2[0],
2271
- setCurrentPage = _useState2[1];
2272
- // Logging GA pageview for the initial article with custom dimensions
2273
-
2274
-
2275
- React.useEffect(function () {
2276
- if (pageview && setCustomDimensions) {
2277
- var timer = void 0;
2278
- var pageviewProperties = _extends._extends({}, getTargeting.getTargeting(props), {
2279
- category: article && article.category ? article.category.name : ''
2280
- });
2281
- var waitAndExicute = function waitAndExicute() {
2282
- if (typeof window.GA_INITIALIZED !== 'undefined') {
2283
- setCustomDimensions(article, statusCode, prevUrl, '');
2284
- pageview(router.asPath, null, pageviewProperties);
2285
- } else timer = setTimeout(waitAndExicute, 1000);
2286
- };
2287
- waitAndExicute();
2288
- return function () {
2289
- clearTimeout(timer);
2290
- };
2291
- } else if (gtagSetCustomDimensions) {
2292
- var _timer = void 0;
2293
- var _waitAndExicute = function _waitAndExicute() {
2294
- if (typeof window.GA_INITIALIZED !== 'undefined') {
2295
- gtagSetCustomDimensions(article, statusCode, prevUrl, '', false);
2296
- } else _timer = setTimeout(_waitAndExicute, 1000);
2297
- };
2298
- _waitAndExicute();
2299
- return function () {
2300
- clearTimeout(_timer);
2301
- };
2302
- }
2303
- }, []);
2304
-
2305
- var isVideoSeries = false;
2306
- // check for certain serializers that need to disable infinite scroll
2307
- var checkBodyForDisableInfiniteScroll = function checkBodyForDisableInfiniteScroll(article) {
2308
- if (!article || !article.body) {
2309
- return false;
2310
- }
2311
- for (var i = 0; i < article.body.length; i++) {
2312
- if (article.body[i]._type === 'articleSeries' || article.body[i]._type === 'slideshows' || article.body[i]._type === 'quiz') {
2313
- return true;
2314
- }
2315
- var row = article.body[i];
2316
- if (typeof row.videos !== 'undefined') {
2317
- isVideoSeries = true;
2318
- return true;
2319
- }
2320
- }
2321
- return false;
2322
- };
2323
-
2324
- var isMediaSeries = false;
2325
-
2326
- if (article.documentGroup && article.documentGroup.isSeries) {
2327
- isMediaSeries = true;
2328
- }
2329
- if (!article.documentGroup && article.documentGroupMapping && checkDocGroupMappingForSeries(article.documentGroupMapping)) {
2330
- isMediaSeries = true;
2331
- }
2332
-
2333
- var disableInfiniteScroll = checkBodyForDisableInfiniteScroll(props.article);
2334
- var commentsEnabledInTaxonomy = Array.isArray(content_placement) && content_placement.some(function (t) {
2335
- return t.showComments === true;
2336
- });
2337
- var showDisqus = commentsEnabledInTaxonomy || hideComments === false;
2338
- var needInfiniteScroll = ['Articles', 'Videos', 'Podcasts'].includes(article.category.name) && article.taxonomyMapping && article.passwordLock !== true && !disableInfiniteScroll && !article.ExcludeFromInfiniteScroll && !sponsoredFlag && infiniteScrollFlag && !article.showIsi && !isMediaSeries && !showDisqus;
2339
-
2340
- if (['Articles', 'Videos', 'Podcasts'].includes(article.category.name)) {
2341
- title = null;
2342
- }
2343
-
2344
- if (!needInfiniteScroll && !title) {
2345
- title = props.article ? props.article.title : '';
2346
- }
2347
- // add mobile ads to articles not using infinite scroll
2348
- if (!needInfiniteScroll) {
2349
- var targeting = getTargeting.getTargeting(props);
2350
- article.Ads = Ads.getRightItems(targeting);
2351
- if (!sponsoredFlag && Ads.getVideoContextualAD) {
2352
- article.contextualVideoAD = Ads.getVideoContextualAD(getTargeting.getTargeting(props, 'in-context_video'));
2353
- }
2354
- if (!sponsoredFlag && Ads.getNativeContextualAD) {
2355
- article.contextualAD = Ads.getNativeContextualAD(getTargeting.getTargeting(props, 'native-ad'));
2356
- }
2357
- }
2358
- React.useEffect(function () {
2359
- router.asPath && router.asPath.length > 0 && router.asPath.includes('?') && router.asPath.split('?')[1].split('&').forEach(function (item) {
2360
- if (item.includes('page=')) {
2361
- setCurrentPage(item.split('=')[1]);
2362
- } else {
2363
- setCurrentPage(0);
2364
- }
2365
- });
2366
- if (!router.asPath.includes('page=') && currentPage !== 0) {
2367
- setCurrentPage(0);
2368
- }
2369
- }, [router]);
2370
-
2371
- var meta_description = seriesShareOptions && seriesShareOptions.seriesSummary ? '' + seriesShareOptions.seriesSummary + (currentPage > 0 ? ' | Page ' + currentPage : '') : article.seo && article.seo.meta_description ? '' + article.seo.meta_description + (currentPage > 0 ? ' | Page ' + currentPage : '') : shareOptions.shareSummary ? '' + shareOptions.shareSummary + (currentPage > 0 ? ' | Page ' + currentPage : '') : '' + (currentPage > 0 ? 'Page ' + currentPage : '');
2372
-
2373
- if (isVideoSeries) {
2374
- meta_description = seriesShareOptions && seriesShareOptions.seriesSummary ? '' + seriesShareOptions.seriesSummary + (currentPage > 0 ? ' | Page ' + currentPage : '') : '';
2375
- }
2376
-
2377
- var currentPath = router && router.asPath;
2378
- var seoLinks = props.cache.seoManager && props.cache.seoManager.filter(function (eachDocument) {
2379
- return eachDocument.urlSeo == currentPath;
2380
- });
2381
-
2382
- var metaDescriptionSanity = seoLinks && seoLinks.length == 1 && seoLinks[0].metaDescription;
2383
- var metaTitleSanity = seoLinks && seoLinks.length == 1 && seoLinks[0].metaTitle;
2384
- return React__default['default'].createElement(
2385
- React__default['default'].Fragment,
2386
- null,
2387
- React__default['default'].createElement(
2388
- Head__default['default'],
2389
- null,
2390
- React__default['default'].createElement(
2391
- 'title',
2392
- { key: 'title' },
2393
- metaTitleSanity ? '' + metaTitleSanity + (currentPage > 0 ? ' | Page ' + currentPage : '') : seriesShareOptions && seriesShareOptions.seriesTitle ? '' + seriesShareOptions.seriesTitle + (currentPage > 0 ? ' | Page ' + currentPage : '') : article && article.seo && article.seo.seo_title ? '' + article.seo.seo_title + (currentPage > 0 ? ' | Page ' + currentPage : '') : '' + article.title + (currentPage > 0 ? ' | Page ' + currentPage : '')
2394
- ),
2395
- metaDescriptionSanity ? React__default['default'].createElement('meta', { name: 'description', key: 'description', content: metaDescriptionSanity }) : meta_description && React__default['default'].createElement('meta', { name: 'description', key: 'description', content: meta_description }),
2396
- React__default['default'].createElement('meta', { name: 'keywords', content: getKeywords(article).join(','), key: 'keywords' }),
2397
- passwordLock && React__default['default'].createElement('meta', { name: 'robots', content: 'noindex, nofollow' }),
2398
- React__default['default'].createElement('meta', {
2399
- property: 'og:url',
2400
- content: seriesShareOptions && seriesShareOptions.seriesUrl ? shareOptions.shareUrl + seriesShareOptions.seriesUrl : shareOptions.shareUrl,
2401
- key: 'og:url'
2402
- }),
2403
- React__default['default'].createElement('meta', {
2404
- property: 'og:title',
2405
- content: metaTitleSanity ? '' + metaTitleSanity + (currentPage > 0 ? ' | Page ' + currentPage : '') : seriesShareOptions && seriesShareOptions.seriesTitle ? '' + seriesShareOptions.seriesTitle + (currentPage > 0 ? ' | Page ' + currentPage : '') : article.seo && article.seo.seo_title ? '' + article.seo.seo_title + (currentPage > 0 ? ' | Page ' + currentPage : '') : '' + shareOptions.shareTitle + (currentPage > 0 ? ' | Page ' + currentPage : ''),
2406
- key: 'og:title'
2407
- }),
2408
- React__default['default'].createElement('meta', {
2409
- property: 'og:image',
2410
- content: seriesShareOptions && seriesShareOptions.seriesThumbnail ? seriesShareOptions.seriesThumbnail : shareOptions.shareImage,
2411
- key: 'og:image'
2412
- }),
2413
- React__default['default'].createElement('meta', { property: 'og:site_name', content: props.Settings.title, key: 'og:site_name' }),
2414
- metaDescriptionSanity ? React__default['default'].createElement('meta', { property: 'og:description', key: 'og:description', content: metaDescriptionSanity }) : meta_description && React__default['default'].createElement('meta', { property: 'og:description', key: 'og:description', content: meta_description }),
2415
- React__default['default'].createElement('meta', { name: 'twitter:card', content: 'summary', key: 'twitter:card' }),
2416
- React__default['default'].createElement('meta', {
2417
- name: 'twitter:title',
2418
- content: metaTitleSanity ? '' + metaTitleSanity + (currentPage > 0 ? ' | Page ' + currentPage : '') : seriesShareOptions && seriesShareOptions.seriesTitle ? '' + seriesShareOptions.seriesTitle + (currentPage > 0 ? ' | Page ' + currentPage : '') : article.seo && article.seo.seo_title ? '' + article.seo.seo_title + (currentPage > 0 ? ' | Page ' + currentPage : '') : '' + shareOptions.shareTitle + (currentPage > 0 ? ' | Page ' + currentPage : ''),
2419
- key: 'twitter:title'
2420
- }),
2421
- React__default['default'].createElement('meta', {
2422
- name: 'twitter:image',
2423
- content: seriesShareOptions && seriesShareOptions.seriesThumbnail ? seriesShareOptions.seriesThumbnail : shareOptions.shareImage,
2424
- key: 'twitter:image'
2425
- }),
2426
- React__default['default'].createElement('meta', { name: 'twitter:site', content: '@' + props.Settings.title, key: 'twitter:site' }),
2427
- metaDescriptionSanity ? React__default['default'].createElement('meta', { name: 'twitter:description', key: 'twitter:description', content: metaDescriptionSanity }) : meta_description && React__default['default'].createElement('meta', { name: 'twitter:description', key: 'twitter:description', content: meta_description }),
2428
- canonicalTag && React__default['default'].createElement('link', {
2429
- rel: 'canonical',
2430
- href: seriesShareOptions && seriesShareOptions.seriesUrl ? shareOptions.shareUrl + seriesShareOptions.seriesUrl : shareOptions.shareUrl,
2431
- key: 'canonical'
2432
- }),
2433
- React__default['default'].createElement(
2434
- 'noscript',
2435
- null,
2436
- props.article.seriesDetail && props.article.seriesDetail.prevUrl && React__default['default'].createElement('link', { rel: 'prev', href: props.article.seriesDetail.prevUrl }),
2437
- props.article.seriesDetail && props.article.seriesDetail.nextUrl && React__default['default'].createElement('link', { rel: 'next', href: props.article.seriesDetail.nextUrl })
2438
- )
2439
- ),
2440
- !needInfiniteScroll ? React__default['default'].createElement(Article, _extends._extends({ infiniteScroll: false, showRelatedArticles: showRelatedArticles, showDisqus: showDisqus }, props)) : React__default['default'].createElement(ArticleQueue, _extends._extends({
2441
- infiniteScroll: true,
2442
- showRelatedArticles: showRelatedArticles,
2443
- canonicalTag: canonicalTag,
2444
- checkSponsered: true,
2445
- Ads: props.WAds,
2446
- onVote: function onVote() {},
2447
- sponsoredTaxonomies: []
2448
- }, props))
2449
- );
2450
- };
2451
-
2452
- // This should be called in /view/[url] getInitialProps to fetch the article data and related articles. This will also set the sponsoredFlag to true if any taxonomies have disabled ads.
2453
- View.returnGetInitialProps = function () {
2454
- var _ref = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee(url, prevUrl, seriesVid, client, sao) {
2455
- var context = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
2456
-
2457
- var article, relatedArticleQuery, sliderData, statusCode, sliderArticles, _sliderArticles, _context$query$series, seriesArticle, sponsoredFlag;
2458
-
2459
- return asyncToGenerator.regenerator.wrap(function _callee$(_context) {
2460
- while (1) {
2461
- switch (_context.prev = _context.next) {
2462
- case 0:
2463
- _context.next = 2;
2464
- return client.fetch(getQuery('article'), { url: url });
2465
-
2466
- case 2:
2467
- article = _context.sent;
2468
- relatedArticleQuery = getQuery('related');
2469
-
2470
- article.seriesDetail = getSeriesDetail(article, seriesVid);
2471
- sliderData = [];
2472
- statusCode = 200;
2473
-
2474
- if (!article || !article._id || !article.body) {
2475
- statusCode = 404;
2476
- }
2477
-
2478
- if (!(article.documentGroup && article.documentGroup.isSeries)) {
2479
- _context.next = 15;
2480
- break;
2481
- }
2482
-
2483
- _context.next = 11;
2484
- return client.fetch('*[!(_id in path("drafts.**")) \n && _type == "article"\n && defined(title)\n && references(\'' + article.documentGroup._id + '\')\n && is_visible == true\n && defined(published)\n && dateTime(published) <= dateTime(now())\n ] | order(published asc) {\n title,\n thumbnail,\n url,\n published\n }');
2485
-
2486
- case 11:
2487
- sliderArticles = _context.sent;
2488
-
2489
- sliderData = sliderArticles;
2490
- _context.next = 20;
2491
- break;
2492
-
2493
- case 15:
2494
- if (!(article.documentGroupMapping && article.documentGroupMapping[0] && article.documentGroupMapping[0].isSeries)) {
2495
- _context.next = 20;
2496
- break;
2497
- }
2498
-
2499
- _context.next = 18;
2500
- return client.fetch('*[!(_id in path("drafts.**")) \n && _type == "article"\n && defined(title)\n && references(\'' + article.documentGroupMapping[0]._id + '\')\n && is_visible == true\n && defined(published)\n && dateTime(published) <= dateTime(now())\n ] | order(published asc) {\n title,\n thumbnail,\n url,\n published\n }');
2501
-
2502
- case 18:
2503
- _sliderArticles = _context.sent;
2504
-
2505
- sliderData = _sliderArticles;
2506
-
2507
- case 20:
2508
- _context$query$series = context.query.seriesArticle, seriesArticle = _context$query$series === undefined ? false : _context$query$series;
2509
-
2510
- if ((seriesArticle || seriesVid) && article.body) {
2511
- article.body.map(function (block) {
2512
- if (block._type === 'articleSeries' && block.articles && block.articles.length > 0) {
2513
- block.articles.map(function (subArticle) {
2514
- if (subArticle.param.current === seriesArticle) {
2515
- var seriesShareOptions = {
2516
- seriesUrl: '?seriesArticle=' + seriesArticle,
2517
- seriesTitle: subArticle.title,
2518
- seriesSummary: subArticle.summary,
2519
- seriesThumbnail: subArticle.thumbnail && subArticle.thumbnail.asset ? urlFor({ client: client, source: subArticle.thumbnail.asset }) : null
2520
- };
2521
- article.seriesShareOptions = seriesShareOptions;
2522
- }
2523
- });
2524
- }
2525
- if (block._type === 'youtubeGallery' && block.videos && block.videos.length > 0) {
2526
- block.videos.map(function (video, index) {
2527
- if (index + 1 === Number(seriesVid)) {
2528
- var seriesShareOptions = {
2529
- seriesUrl: '?seriesVid=' + seriesVid,
2530
- seriesTitle: video.title,
2531
- seriesSummary: video.intro,
2532
- seriesThumbnail: video.thumbnail && video.thumbnail.asset ? urlFor({ client: client, source: video.thumbnail.asset }) : null
2533
- };
2534
- article.seriesShareOptions = seriesShareOptions;
2535
- }
2536
- });
2537
- }
2538
- });
2539
- }
2540
- sponsoredFlag = false;
2541
- // check for disableAds flag on each taxonomoy
2542
-
2543
- if (article && article.content_placement) {
2544
- article.content_placement.forEach(function (x) {
2545
- if (x.disableAds) {
2546
- sponsoredFlag = true;
2547
- }
2548
- });
2549
- }
2550
- // check for disableAds flag on content category
2551
- if (article.category && article.category.disableAds) {
2552
- sponsoredFlag = true;
2553
- }
2554
-
2555
- if (!article.disableRelatedContent) {
2556
- _context.next = 30;
2557
- break;
2558
- }
2559
-
2560
- article.relatedArticle = null;
2561
- _context.next = 34;
2562
- break;
2563
-
2564
- case 30:
2565
- if (!article) {
2566
- _context.next = 34;
2567
- break;
2568
- }
2569
-
2570
- _context.next = 33;
2571
- return getRelatedArticle(context, client, article, prevUrl, '0..2');
2572
-
2573
- case 33:
2574
- article.relatedArticle = _context.sent;
2575
-
2576
- case 34:
2577
- return _context.abrupt('return', {
2578
- url: url,
2579
- sao: sao,
2580
- statusCode: statusCode,
2581
- prevUrl: prevUrl,
2582
- relatedArticleQuery: relatedArticleQuery,
2583
- article: article,
2584
- sliderData: sliderData,
2585
- sponsoredFlag: sponsoredFlag
2586
- });
2587
-
2588
- case 35:
2589
- case 'end':
2590
- return _context.stop();
2591
- }
2592
- }
2593
- }, _callee, _this);
2594
- }));
2595
-
2596
- return function (_x, _x2, _x3, _x4, _x5) {
2597
- return _ref.apply(this, arguments);
2598
- };
2599
- }();
2600
-
2601
- module.exports = View;