@mjhls/mjh-framework 1.0.98 → 1.0.99-0.next-12

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 +168 -172
  2. package/dist/cjs/AD.js +32 -0
  3. package/dist/cjs/AD300x250.js +95 -0
  4. package/dist/cjs/AD300x250x600.js +112 -0
  5. package/dist/cjs/AD728x90.js +109 -0
  6. package/dist/cjs/ADFloatingFooter.js +143 -0
  7. package/dist/cjs/ADFooter.js +53 -0
  8. package/dist/cjs/ADGutter.js +115 -0
  9. package/dist/cjs/ADInfeed-cf54cb8a.js +66 -0
  10. package/dist/cjs/ADSkyscraper.js +117 -0
  11. package/dist/cjs/ADSponsoredResources.js +114 -0
  12. package/dist/cjs/ADWebcast.js +119 -0
  13. package/dist/cjs/ADWelcome.js +166 -0
  14. package/dist/cjs/ADlgInfeed-d06624d8.js +60 -0
  15. package/dist/cjs/AccordionPanel.js +94 -0
  16. package/dist/cjs/AdSlot.js +251 -0
  17. package/dist/cjs/AdSlotsProvider.js +183 -0
  18. package/dist/cjs/AlgoliaSearch.js +195 -0
  19. package/dist/cjs/AlphabeticList.js +135 -0
  20. package/dist/cjs/ArticleCarousel.js +46 -0
  21. package/dist/cjs/ArticleProgramLandingPage.js +184 -0
  22. package/dist/cjs/ArticleSeriesLandingPage.js +162 -0
  23. package/dist/cjs/ArticleSeriesListing.js +315 -0
  24. package/dist/cjs/AuthWrapper.js +720 -0
  25. package/dist/cjs/AuthorComponent-39b37d84.js +96 -0
  26. package/dist/cjs/Beam.js +350 -0
  27. package/dist/cjs/BlockContent-36e54d77.js +916 -0
  28. package/dist/cjs/Breadcrumbs.js +107 -0
  29. package/dist/cjs/CMEDeck.js +443 -0
  30. package/dist/cjs/Column1.js +39 -0
  31. package/dist/cjs/Column2.js +75 -0
  32. package/dist/cjs/Column3.js +144 -0
  33. package/dist/cjs/ConferenceArticleCard.js +93 -0
  34. package/dist/cjs/ConferenceBanner-6c9e718a.js +24 -0
  35. package/dist/cjs/ContentCardPaginated.js +417 -0
  36. package/dist/cjs/DeckContent.js +507 -0
  37. package/dist/cjs/DeckQueue.js +403 -0
  38. package/dist/cjs/DeckQueuePaginated.js +348 -0
  39. package/dist/cjs/Dfp-94f8ccdf.js +103 -0
  40. package/dist/cjs/EventsDeck.js +857 -0
  41. package/dist/cjs/ExternalResources.js +217 -0
  42. package/dist/cjs/Feature.js +129 -0
  43. package/dist/cjs/ForbesHero.js +137 -0
  44. package/dist/cjs/GridContent.js +828 -0
  45. package/dist/cjs/GridContentPaginated.js +704 -0
  46. package/dist/cjs/GridHero.js +147 -0
  47. package/dist/cjs/GroupDeck.js +314 -0
  48. package/dist/cjs/HamMagazine.js +602 -0
  49. package/dist/cjs/Header.js +39 -0
  50. package/dist/cjs/HealthCareProfessionalModal.js +78 -0
  51. package/dist/cjs/Hero.js +48 -0
  52. package/dist/cjs/HighlightenVideo.js +69 -0
  53. package/dist/cjs/HorizontalArticleListing.js +165 -0
  54. package/dist/cjs/HorizontalHero.js +111 -0
  55. package/dist/cjs/ImageSlider-a7fb6218.js +182 -0
  56. package/dist/cjs/IssueContentDeck.js +241 -0
  57. package/dist/cjs/IssueDeck.js +268 -0
  58. package/dist/cjs/IssueLanding.js +172 -0
  59. package/dist/cjs/KMTracker.js +27 -0
  60. package/dist/cjs/LeftNav.js +145 -0
  61. package/dist/cjs/MasterDeck.js +555 -0
  62. package/dist/cjs/MasterDeckPaginated.js +469 -0
  63. package/dist/cjs/MediaSeriesCard-36eab8b7.js +9502 -0
  64. package/dist/cjs/MediaSeriesLanding.js +503 -0
  65. package/dist/cjs/MediaSeriesLandingPaginated.js +529 -0
  66. package/dist/cjs/NavDvm.js +245 -0
  67. package/dist/cjs/NavFooter-3dcd99a8.js +66 -0
  68. package/dist/cjs/NavMagazine.js +595 -0
  69. package/dist/cjs/NavNative.js +861 -0
  70. package/dist/cjs/OncliveHero.js +79 -0
  71. package/dist/cjs/OncliveLargeHero.js +241 -0
  72. package/dist/cjs/PageFilter.js +72 -0
  73. package/dist/cjs/Pagination-1e0d5f1d.js +90 -0
  74. package/dist/cjs/PartnerDetailListing.js +326 -0
  75. package/dist/cjs/PartnerDetailListingPaginated.js +318 -0
  76. package/dist/cjs/PdfDownload.js +28 -0
  77. package/dist/cjs/PixelTracking.js +165 -0
  78. package/dist/cjs/PopUpModal.js +58 -0
  79. package/dist/cjs/PtceDeck.js +149 -0
  80. package/dist/cjs/PubSection.js +120 -0
  81. package/dist/cjs/PubToc.js +87 -0
  82. package/dist/cjs/PublicationDeck.js +183 -0
  83. package/dist/cjs/PublicationFeature-be5f3503.js +130 -0
  84. package/dist/cjs/PublicationLanding.js +853 -0
  85. package/dist/cjs/QueueDeckExpanded.js +1540 -0
  86. package/dist/cjs/QueueDeckExpandedPaginated.js +1388 -0
  87. package/dist/cjs/RecentNews.js +91 -0
  88. package/dist/cjs/RelatedContent.js +114 -0
  89. package/dist/cjs/RelatedTopicsDropdown.js +90 -0
  90. package/dist/cjs/RolesDeck.js +94 -0
  91. package/dist/cjs/Schema.js +101 -0
  92. package/dist/cjs/Search.js +66 -0
  93. package/dist/cjs/Segment.js +403 -0
  94. package/dist/cjs/SeriesListingDeck.js +248 -0
  95. package/dist/cjs/SeriesSlider-b94f1dd5.js +332 -0
  96. package/dist/cjs/SetCookie.js +10 -0
  97. package/dist/cjs/SideFooter.js +151 -0
  98. package/dist/cjs/SocialIcons.js +103 -0
  99. package/dist/cjs/SocialSearchComponent-b7faaedc.js +213 -0
  100. package/dist/cjs/SocialShare.js +74 -0
  101. package/dist/cjs/TaxonomyCard.js +253 -0
  102. package/dist/cjs/TaxonomyDescription.js +205 -0
  103. package/dist/cjs/TemplateNormal.js +204 -0
  104. package/dist/cjs/ThumbnailCard.js +59 -0
  105. package/dist/cjs/Ustream.js +156 -0
  106. package/dist/cjs/VerticalHero.js +74 -0
  107. package/dist/cjs/VideoProgramLandingPage.js +260 -0
  108. package/dist/cjs/VideoSeriesCard.js +88 -0
  109. package/dist/cjs/VideoSeriesFilter.js +128 -0
  110. package/dist/cjs/VideoSeriesLandingPage.js +178 -0
  111. package/dist/cjs/VideoSeriesListing.js +422 -0
  112. package/dist/cjs/View.js +2601 -0
  113. package/dist/cjs/YahooHero.js +126 -0
  114. package/dist/cjs/YoutubeGroup.js +371 -0
  115. package/dist/cjs/_commonjsHelpers-06173234.js +25 -0
  116. package/dist/cjs/_is-array-54228b29.js +74 -0
  117. package/dist/cjs/_iter-detect-b1df62f0.js +52 -0
  118. package/dist/cjs/_library-dd23b178.js +5 -0
  119. package/dist/cjs/_object-pie-083f2dd6.js +16 -0
  120. package/dist/cjs/_object-sap-d1978572.js +16 -0
  121. package/dist/cjs/_object-to-array-ce86cae7.js +25 -0
  122. package/dist/cjs/asyncToGenerator-77821af0.js +1395 -0
  123. package/dist/cjs/brightcove-react-player-loader.es-a195642e.js +2232 -0
  124. package/dist/cjs/core.get-iterator-method-5643aa10.js +584 -0
  125. package/dist/cjs/debounce-d4a2369b.js +216 -0
  126. package/dist/cjs/define-property-e8404b64.js +20 -0
  127. package/dist/cjs/defineProperty-9673846a.js +34 -0
  128. package/dist/cjs/entities-3f9d0f2f.js +506 -0
  129. package/dist/cjs/eq-5fc26c07.js +79 -0
  130. package/dist/cjs/extends-7c86182f.js +87 -0
  131. package/dist/cjs/faundadb.js +644 -0
  132. package/dist/cjs/get-5839e5b5.js +920 -0
  133. package/dist/cjs/getContentCategory-f38a4c00.js +11 -0
  134. package/dist/cjs/getKeywords.js +46 -0
  135. package/dist/cjs/getPtceActivities.js +89 -0
  136. package/dist/cjs/getQuery.js +28 -0
  137. package/dist/cjs/getRelatedArticle.js +747 -0
  138. package/dist/cjs/getRootDocGroup.js +62 -0
  139. package/dist/cjs/getSerializers.js +64 -0
  140. package/dist/cjs/getSeriesDetail.js +40 -0
  141. package/dist/cjs/getTargeting-4439c99d.js +164 -0
  142. package/dist/cjs/getTargeting.js +13 -0
  143. package/dist/cjs/iconBase-be4097c0.js +106 -0
  144. package/dist/cjs/index-0e4427c8.js +1683 -0
  145. package/dist/cjs/index-187c967e.js +54 -0
  146. package/dist/cjs/index-7361fa72.js +11305 -0
  147. package/dist/cjs/index-eadd5035.js +613 -0
  148. package/dist/cjs/index-efca863c.js +556 -0
  149. package/dist/cjs/index-f86bb269.js +1571 -0
  150. package/dist/cjs/index.es-f3e47207.js +445 -0
  151. package/dist/cjs/index.esm-2bb721c8.js +96 -0
  152. package/dist/cjs/index.esm-c1e16606.js +13 -0
  153. package/dist/cjs/index.esm-d51c9ac6.js +25 -0
  154. package/dist/cjs/index.esm-d81454e7.js +19 -0
  155. package/dist/cjs/index.js +635 -0
  156. package/dist/cjs/inherits-de66ea16.js +188 -0
  157. package/dist/cjs/isSymbol-03abbdf0.js +209 -0
  158. package/dist/cjs/js.cookie-a511c430.js +160 -0
  159. package/dist/cjs/keys-e982b3fa.js +25 -0
  160. package/dist/cjs/lodash-f0783643.js +17195 -0
  161. package/dist/cjs/main-f1c77adb.js +973 -0
  162. package/dist/cjs/moment-aca40de1.js +5669 -0
  163. package/dist/cjs/react-social-icons-af932527.js +616 -0
  164. package/dist/cjs/slicedToArray-067dd3bc.js +95 -0
  165. package/dist/cjs/smoothscroll-99df7f93.js +438 -0
  166. package/dist/cjs/stringify-f7a37a8d.js +17 -0
  167. package/dist/cjs/style-inject.es-dcee06b6.js +30 -0
  168. package/dist/cjs/timeDifferenceCalc.js +39 -0
  169. package/dist/cjs/toConsumableArray-d7797c2b.js +74 -0
  170. package/dist/cjs/toNumber-5e1fac58.js +104 -0
  171. package/dist/cjs/typeof-567e31ff.js +382 -0
  172. package/dist/cjs/urlFor.js +65 -0
  173. package/dist/cjs/urlForFile-29d3815a.js +24 -0
  174. package/dist/cjs/ustream-api-3819e4aa.js +106 -0
  175. package/dist/cjs/visibility-sensor-eb2c5b69.js +597 -0
  176. package/dist/cjs/web.dom.iterable-d98303e0.js +50 -0
  177. package/dist/esm/AD.js +26 -0
  178. package/dist/esm/AD300x250.js +89 -0
  179. package/dist/esm/AD300x250x600.js +106 -0
  180. package/dist/esm/AD728x90.js +103 -0
  181. package/dist/esm/ADFloatingFooter.js +137 -0
  182. package/dist/esm/ADFooter.js +47 -0
  183. package/dist/esm/ADGutter.js +109 -0
  184. package/dist/esm/ADInfeed-f684cac9.js +59 -0
  185. package/dist/esm/ADSkyscraper.js +111 -0
  186. package/dist/esm/ADSponsoredResources.js +108 -0
  187. package/dist/esm/ADWebcast.js +113 -0
  188. package/dist/esm/ADWelcome.js +160 -0
  189. package/dist/esm/ADlgInfeed-8c438cee.js +54 -0
  190. package/dist/esm/AccordionPanel.js +87 -0
  191. package/dist/esm/AdSlot.js +244 -0
  192. package/dist/esm/AdSlotsProvider.js +176 -0
  193. package/dist/esm/AlgoliaSearch.js +188 -0
  194. package/dist/esm/AlphabeticList.js +129 -0
  195. package/dist/esm/ArticleCarousel.js +40 -0
  196. package/dist/esm/ArticleProgramLandingPage.js +178 -0
  197. package/dist/esm/ArticleSeriesLandingPage.js +156 -0
  198. package/dist/esm/ArticleSeriesListing.js +308 -0
  199. package/dist/esm/AuthWrapper.js +714 -0
  200. package/dist/esm/AuthorComponent-defe68b6.js +90 -0
  201. package/dist/esm/Beam.js +348 -0
  202. package/dist/esm/BlockContent-c99c9a8d.js +909 -0
  203. package/dist/esm/Breadcrumbs.js +100 -0
  204. package/dist/esm/CMEDeck.js +437 -0
  205. package/dist/esm/Column1.js +29 -0
  206. package/dist/esm/Column2.js +65 -0
  207. package/dist/esm/Column3.js +134 -0
  208. package/dist/esm/ConferenceArticleCard.js +87 -0
  209. package/dist/esm/ConferenceBanner-8792ebd2.js +18 -0
  210. package/dist/esm/ContentCardPaginated.js +406 -0
  211. package/dist/esm/DeckContent.js +497 -0
  212. package/dist/esm/DeckQueue.js +393 -0
  213. package/dist/esm/DeckQueuePaginated.js +337 -0
  214. package/dist/esm/Dfp-4b99f79d.js +96 -0
  215. package/dist/esm/EventsDeck.js +844 -0
  216. package/dist/esm/ExternalResources.js +210 -0
  217. package/dist/esm/Feature.js +122 -0
  218. package/dist/esm/ForbesHero.js +131 -0
  219. package/dist/esm/GridContent.js +818 -0
  220. package/dist/esm/GridContentPaginated.js +693 -0
  221. package/dist/esm/GridHero.js +141 -0
  222. package/dist/esm/GroupDeck.js +308 -0
  223. package/dist/esm/HamMagazine.js +590 -0
  224. package/dist/esm/Header.js +30 -0
  225. package/dist/esm/HealthCareProfessionalModal.js +70 -0
  226. package/dist/esm/Hero.js +42 -0
  227. package/dist/esm/HighlightenVideo.js +63 -0
  228. package/dist/esm/HorizontalArticleListing.js +159 -0
  229. package/dist/esm/HorizontalHero.js +105 -0
  230. package/dist/esm/ImageSlider-eab2fe41.js +176 -0
  231. package/dist/esm/IssueContentDeck.js +231 -0
  232. package/dist/esm/IssueDeck.js +258 -0
  233. package/dist/esm/IssueLanding.js +166 -0
  234. package/dist/esm/KMTracker.js +25 -0
  235. package/dist/esm/LeftNav.js +136 -0
  236. package/dist/esm/MasterDeck.js +548 -0
  237. package/dist/esm/MasterDeckPaginated.js +461 -0
  238. package/dist/esm/MediaSeriesCard-99048e65.js +9492 -0
  239. package/dist/esm/MediaSeriesLanding.js +496 -0
  240. package/dist/esm/MediaSeriesLandingPaginated.js +522 -0
  241. package/dist/esm/NavDvm.js +233 -0
  242. package/dist/esm/NavFooter-e27bd93b.js +60 -0
  243. package/dist/esm/NavMagazine.js +583 -0
  244. package/dist/esm/NavNative.js +846 -0
  245. package/dist/esm/OncliveHero.js +73 -0
  246. package/dist/esm/OncliveLargeHero.js +235 -0
  247. package/dist/esm/PageFilter.js +66 -0
  248. package/dist/esm/Pagination-cd21f8c2.js +82 -0
  249. package/dist/esm/PartnerDetailListing.js +320 -0
  250. package/dist/esm/PartnerDetailListingPaginated.js +312 -0
  251. package/dist/esm/PdfDownload.js +22 -0
  252. package/dist/esm/PixelTracking.js +156 -0
  253. package/dist/esm/PopUpModal.js +51 -0
  254. package/dist/esm/PtceDeck.js +143 -0
  255. package/dist/esm/PubSection.js +114 -0
  256. package/dist/esm/PubToc.js +81 -0
  257. package/dist/esm/PublicationDeck.js +173 -0
  258. package/dist/esm/PublicationFeature-03500094.js +121 -0
  259. package/dist/esm/PublicationLanding.js +843 -0
  260. package/dist/esm/QueueDeckExpanded.js +1534 -0
  261. package/dist/esm/QueueDeckExpandedPaginated.js +1382 -0
  262. package/dist/esm/RecentNews.js +85 -0
  263. package/dist/esm/RelatedContent.js +108 -0
  264. package/dist/esm/RelatedTopicsDropdown.js +82 -0
  265. package/dist/esm/RolesDeck.js +84 -0
  266. package/dist/esm/Schema.js +95 -0
  267. package/dist/esm/Search.js +57 -0
  268. package/dist/esm/Segment.js +401 -0
  269. package/dist/esm/SeriesListingDeck.js +242 -0
  270. package/dist/esm/SeriesSlider-609f9d94.js +326 -0
  271. package/dist/esm/SetCookie.js +8 -0
  272. package/dist/esm/SideFooter.js +145 -0
  273. package/dist/esm/SocialIcons.js +97 -0
  274. package/dist/esm/SocialSearchComponent-1d8a9f59.js +204 -0
  275. package/dist/esm/SocialShare.js +67 -0
  276. package/dist/esm/TaxonomyCard.js +243 -0
  277. package/dist/esm/TaxonomyDescription.js +198 -0
  278. package/dist/esm/TemplateNormal.js +197 -0
  279. package/dist/esm/ThumbnailCard.js +52 -0
  280. package/dist/esm/Ustream.js +150 -0
  281. package/dist/esm/VerticalHero.js +68 -0
  282. package/dist/esm/VideoProgramLandingPage.js +251 -0
  283. package/dist/esm/VideoSeriesCard.js +82 -0
  284. package/dist/esm/VideoSeriesFilter.js +122 -0
  285. package/dist/esm/VideoSeriesLandingPage.js +172 -0
  286. package/dist/esm/VideoSeriesListing.js +415 -0
  287. package/dist/esm/View.js +2590 -0
  288. package/dist/esm/YahooHero.js +120 -0
  289. package/dist/esm/YoutubeGroup.js +365 -0
  290. package/dist/esm/_commonjsHelpers-0c4b6f40.js +19 -0
  291. package/dist/esm/_is-array-893ab020.js +71 -0
  292. package/dist/esm/_iter-detect-f089461c.js +48 -0
  293. package/dist/esm/_library-528f1934.js +3 -0
  294. package/dist/esm/_object-pie-133f504a.js +13 -0
  295. package/dist/esm/_object-sap-169d6272.js +14 -0
  296. package/dist/esm/_object-to-array-50a6b9a3.js +23 -0
  297. package/dist/esm/asyncToGenerator-9716ae8d.js +1387 -0
  298. package/dist/esm/brightcove-react-player-loader.es-57a70a56.js +2226 -0
  299. package/dist/esm/core.get-iterator-method-e903ff31.js +547 -0
  300. package/dist/esm/debounce-533d9748.js +214 -0
  301. package/dist/esm/define-property-99e66838.js +18 -0
  302. package/dist/esm/defineProperty-8fa0bc8d.js +32 -0
  303. package/dist/esm/entities-932b50cf.js +503 -0
  304. package/dist/esm/eq-bdcbf886.js +76 -0
  305. package/dist/esm/extends-dc6a71fd.js +83 -0
  306. package/dist/esm/faundadb.js +636 -0
  307. package/dist/esm/get-3c308da4.js +918 -0
  308. package/dist/esm/getContentCategory-15dcc413.js +9 -0
  309. package/dist/esm/getKeywords.js +44 -0
  310. package/dist/esm/getPtceActivities.js +87 -0
  311. package/dist/esm/getQuery.js +26 -0
  312. package/dist/esm/getRelatedArticle.js +745 -0
  313. package/dist/esm/getRootDocGroup.js +60 -0
  314. package/dist/esm/getSerializers.js +58 -0
  315. package/dist/esm/getSeriesDetail.js +38 -0
  316. package/dist/esm/getTargeting-db566006.js +161 -0
  317. package/dist/esm/getTargeting.js +7 -0
  318. package/dist/esm/iconBase-ccc56b97.js +81 -0
  319. package/dist/esm/index-0dbff1d1.js +553 -0
  320. package/dist/esm/index-5cc7b406.js +1674 -0
  321. package/dist/esm/index-755f2cc2.js +605 -0
  322. package/dist/esm/index-79cfd25c.js +1569 -0
  323. package/dist/esm/index-c60f3bb6.js +11284 -0
  324. package/dist/esm/index-c7e2ac95.js +52 -0
  325. package/dist/esm/index.es-a6137319.js +439 -0
  326. package/dist/esm/index.esm-1bd8a0a8.js +18 -0
  327. package/dist/esm/index.esm-37268dca.js +89 -0
  328. package/dist/esm/index.esm-9b042655.js +10 -0
  329. package/dist/esm/index.esm-eb1e8e80.js +14 -0
  330. package/dist/esm/index.js +529 -0
  331. package/dist/esm/inherits-8a801a18.js +179 -0
  332. package/dist/esm/isSymbol-a7e9aafe.js +203 -0
  333. package/dist/esm/js.cookie-6874175c.js +158 -0
  334. package/dist/esm/keys-425c8ab0.js +23 -0
  335. package/dist/esm/lodash-f97fd99a.js +17193 -0
  336. package/dist/esm/main-1894c974.js +961 -0
  337. package/dist/esm/moment-bc12cb97.js +5667 -0
  338. package/dist/esm/react-social-icons-9be47857.js +609 -0
  339. package/dist/esm/slicedToArray-ca2c8b8d.js +92 -0
  340. package/dist/esm/smoothscroll-fa4e3f8c.js +436 -0
  341. package/dist/esm/stringify-c21932b3.js +15 -0
  342. package/dist/esm/style-inject.es-1f59c1d0.js +28 -0
  343. package/dist/esm/timeDifferenceCalc.js +37 -0
  344. package/dist/esm/toConsumableArray-7b1c0e23.js +71 -0
  345. package/dist/esm/toNumber-5aeba6e7.js +102 -0
  346. package/dist/esm/typeof-83d9eb10.js +378 -0
  347. package/dist/esm/urlFor.js +63 -0
  348. package/dist/esm/urlForFile-413f5ddb.js +22 -0
  349. package/dist/esm/ustream-api-41166338.js +104 -0
  350. package/dist/esm/visibility-sensor-72fd8f8b.js +590 -0
  351. package/dist/esm/web.dom.iterable-fdf034f5.js +48 -0
  352. package/package.json +115 -83
  353. package/dist/index.es.js +0 -12784
  354. package/dist/index.es.js.map +0 -1
  355. package/dist/index.js +0 -12819
  356. package/dist/index.js.map +0 -1
@@ -0,0 +1,2601 @@
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;