@mjhls/mjh-framework 1.0.444 → 1.0.446

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 (238) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AD.js +32 -0
  3. package/dist/cjs/AD300x250.js +60 -0
  4. package/dist/cjs/AD300x250x600.js +60 -0
  5. package/dist/cjs/AD728x90.js +134 -0
  6. package/dist/cjs/ADFloatingFooter.js +139 -0
  7. package/dist/cjs/ADFooter.js +45 -0
  8. package/dist/cjs/ADGutter.js +88 -0
  9. package/dist/cjs/{ADInfeed-ae1f348d.js → ADInfeed-7609d929.js} +2 -2
  10. package/dist/cjs/ADSponsoredResources.js +106 -0
  11. package/dist/cjs/ADWelcome.js +150 -0
  12. package/dist/cjs/{ADlgInfeed-f4c4a1bf.js → ADlgInfeed-700551ef.js} +2 -2
  13. package/dist/cjs/AccordionPanel.js +95 -0
  14. package/dist/cjs/AdSlot.js +166 -0
  15. package/dist/cjs/AdSlotsProvider.js +31 -0
  16. package/dist/cjs/AlphabeticList.js +137 -0
  17. package/dist/cjs/ArticleQueue.js +863 -0
  18. package/dist/cjs/Auth.js +3950 -0
  19. package/dist/cjs/{AuthorComponent-b44bb44e.js → AuthorComponent-5bb8f868.js} +1 -1
  20. package/dist/cjs/Beam.js +347 -0
  21. package/dist/cjs/{TaxonomyCard-fa09aac1.js → BlockContent-80608595.js} +0 -236
  22. package/dist/cjs/Breadcrumbs.js +108 -0
  23. package/dist/cjs/CMEDeck.js +454 -0
  24. package/dist/cjs/Column1.js +39 -0
  25. package/dist/cjs/Column2.js +67 -0
  26. package/dist/cjs/Column3.js +141 -0
  27. package/dist/cjs/ConferenceArticleCard.js +91 -0
  28. package/dist/cjs/ConferenceBanner-6c9e718a.js +24 -0
  29. package/dist/cjs/DeckContent.js +24 -13
  30. package/dist/cjs/DeckQueue.js +17 -10
  31. package/dist/cjs/{Dfp-d7639f4c.js → Dfp-19f10ad4.js} +8 -5
  32. package/dist/cjs/EventsDeck.js +1999 -0
  33. package/dist/cjs/Feature.js +120 -0
  34. package/dist/cjs/{Figure-cc919c38.js → Figure-ce37247b.js} +3 -2
  35. package/dist/cjs/ForbesHero.js +140 -0
  36. package/dist/cjs/GridContent.js +721 -33
  37. package/dist/cjs/GridHero.js +145 -0
  38. package/dist/cjs/GroupDeck.js +5 -3
  39. package/dist/cjs/HamMagazine.js +477 -0
  40. package/dist/cjs/Header.js +37 -0
  41. package/dist/cjs/Hero.js +56 -0
  42. package/dist/cjs/HighlightenVideo.js +69 -0
  43. package/dist/cjs/HorizontalHero.js +109 -0
  44. package/dist/cjs/InscreenSensor-04a70c60.js +864 -0
  45. package/dist/cjs/IssueContentDeck.js +4 -3
  46. package/dist/cjs/IssueDeck.js +6 -4
  47. package/dist/cjs/IssueLanding.js +115 -0
  48. package/dist/cjs/KMTracker.js +27 -0
  49. package/dist/cjs/LeftNav.js +99 -0
  50. package/dist/cjs/MasterDeck.js +15 -8
  51. package/dist/cjs/NavDvm.js +223 -0
  52. package/dist/cjs/NavFooter-3dcd99a8.js +66 -0
  53. package/dist/cjs/NavMagazine.js +436 -0
  54. package/dist/cjs/NavNative.js +278 -0
  55. package/dist/cjs/NavNormal.js +109 -0
  56. package/dist/cjs/OncliveHero.js +78 -0
  57. package/dist/cjs/OncliveLargeHero.js +243 -0
  58. package/dist/cjs/PageFilter.js +73 -0
  59. package/dist/cjs/PdfDownload.js +28 -0
  60. package/dist/cjs/PopUpModal.js +59 -0
  61. package/dist/cjs/PublicationLanding.js +556 -0
  62. package/dist/cjs/QueueDeckExpanded.js +29 -28
  63. package/dist/cjs/RelatedContent.js +107 -0
  64. package/dist/cjs/RelatedTopicsDropdown.js +90 -0
  65. package/dist/cjs/Search.js +67 -0
  66. package/dist/cjs/Segment.js +225 -0
  67. package/dist/cjs/SetCookie.js +10 -0
  68. package/dist/cjs/SideFooter.js +103 -0
  69. package/dist/cjs/SocialNavFooter-d9ab4d17.js +83 -0
  70. package/dist/cjs/SocialShare.js +72 -0
  71. package/dist/cjs/TaxonomyCard.js +241 -11
  72. package/dist/cjs/TemplateNormal.js +175 -13
  73. package/dist/cjs/Ustream.js +107 -6
  74. package/dist/cjs/VerticalHero.js +75 -0
  75. package/dist/cjs/VideoSeriesFilter.js +133 -0
  76. package/dist/cjs/VideoSeriesListing.js +13 -7
  77. package/dist/cjs/View.js +1156 -0
  78. package/dist/cjs/YahooHero.js +129 -0
  79. package/dist/cjs/YoutubeGroup.js +5 -3
  80. package/dist/cjs/_arrayMap-3b4a0f75.js +91 -0
  81. package/dist/cjs/_is-array-754e012d.js +74 -0
  82. package/dist/cjs/{_iter-detect-234453c3.js → _iter-detect-4d0352f8.js} +4 -4
  83. package/dist/cjs/_object-sap-5e74ba08.js +16 -0
  84. package/dist/cjs/_set-species-4458e975.js +56 -0
  85. package/dist/cjs/{AdSlot-257d8d4e.js → asyncToGenerator-db08763c.js} +1 -710
  86. package/dist/cjs/brightcove-react-player-loader.es-4ba0d3d5.js +2231 -0
  87. package/dist/cjs/{web.dom.iterable-5c889cf1.js → core.get-iterator-method-41e87ec1.js} +0 -46
  88. package/dist/cjs/debounce-32e57002.js +280 -0
  89. package/dist/cjs/{toConsumableArray-25d0e2a3.js → from-ea347372.js} +4 -29
  90. package/dist/cjs/{get-7a75c563.js → get-5dfcdc33.js} +14 -100
  91. package/dist/cjs/getKeywords.js +31 -0
  92. package/dist/cjs/getQuery.js +20 -0
  93. package/dist/cjs/getSerializers.js +8032 -0
  94. package/dist/cjs/getSeriesDetail.js +38 -0
  95. package/dist/cjs/getTargeting-3ced038f.js +108 -0
  96. package/dist/cjs/getTargeting.js +15 -0
  97. package/dist/cjs/iconBase-637d3f1e.js +83 -0
  98. package/dist/cjs/{debounce-420ff8a8.js → index-b2448ff6.js} +0 -483
  99. package/dist/cjs/index.esm-25423c2f.js +16 -0
  100. package/dist/cjs/index.esm-c0d8b44b.js +21 -0
  101. package/dist/cjs/index.esm-fcdbd2c6.js +31 -0
  102. package/dist/cjs/index.js +190 -23083
  103. package/dist/cjs/{inherits-b4036c94.js → inherits-4a2f1cc3.js} +6 -17
  104. package/dist/cjs/isSymbol-488934a7.js +211 -0
  105. package/dist/cjs/js.cookie-a511c430.js +160 -0
  106. package/dist/cjs/keys-a586b7a0.js +25 -0
  107. package/dist/cjs/{promise-0a493c7a.js → promise-074978a7.js} +15 -62
  108. package/dist/cjs/{slicedToArray-419d467a.js → slicedToArray-8063ee51.js} +5 -4
  109. package/dist/cjs/stringify-7c5aff47.js +17 -0
  110. package/dist/cjs/toConsumableArray-ca04303b.js +31 -0
  111. package/dist/cjs/{typeof-0d86b91c.js → typeof-583cdc4b.js} +20 -87
  112. package/dist/cjs/urlFor.js +10 -0
  113. package/dist/cjs/util-f2c1b65b.js +576 -0
  114. package/dist/cjs/web.dom.iterable-43c3e277.js +51 -0
  115. package/dist/esm/AD.js +26 -0
  116. package/dist/esm/AD300x250.js +54 -0
  117. package/dist/esm/AD300x250x600.js +54 -0
  118. package/dist/esm/AD728x90.js +128 -0
  119. package/dist/esm/ADFloatingFooter.js +133 -0
  120. package/dist/esm/ADFooter.js +39 -0
  121. package/dist/esm/ADGutter.js +82 -0
  122. package/dist/esm/{ADInfeed-dff74bbe.js → ADInfeed-1c17dc0e.js} +1 -1
  123. package/dist/esm/ADSponsoredResources.js +100 -0
  124. package/dist/esm/ADWelcome.js +144 -0
  125. package/dist/esm/{ADlgInfeed-7b29db85.js → ADlgInfeed-94d7f5dd.js} +1 -1
  126. package/dist/esm/AccordionPanel.js +88 -0
  127. package/dist/esm/AdSlot.js +159 -0
  128. package/dist/esm/AdSlotsProvider.js +25 -0
  129. package/dist/esm/AlphabeticList.js +131 -0
  130. package/dist/esm/ArticleQueue.js +855 -0
  131. package/dist/esm/Auth.js +3930 -0
  132. package/dist/esm/{AuthorComponent-4f5f15ed.js → AuthorComponent-f67cb027.js} +1 -1
  133. package/dist/esm/Beam.js +345 -0
  134. package/dist/esm/{TaxonomyCard-b22a742f.js → BlockContent-4af2feb9.js} +2 -233
  135. package/dist/esm/Breadcrumbs.js +101 -0
  136. package/dist/esm/CMEDeck.js +448 -0
  137. package/dist/esm/Column1.js +29 -0
  138. package/dist/esm/Column2.js +57 -0
  139. package/dist/esm/Column3.js +131 -0
  140. package/dist/esm/ConferenceArticleCard.js +85 -0
  141. package/dist/esm/ConferenceBanner-9162d0ca.js +18 -0
  142. package/dist/esm/DeckContent.js +24 -13
  143. package/dist/esm/DeckQueue.js +17 -10
  144. package/dist/esm/{Dfp-994cd0ab.js → Dfp-7addbfb1.js} +7 -4
  145. package/dist/esm/EventsDeck.js +1987 -0
  146. package/dist/esm/Feature.js +113 -0
  147. package/dist/esm/{Figure-1c55ebf0.js → Figure-408929f3.js} +4 -3
  148. package/dist/esm/ForbesHero.js +134 -0
  149. package/dist/esm/GridContent.js +714 -30
  150. package/dist/esm/GridHero.js +139 -0
  151. package/dist/esm/GroupDeck.js +6 -4
  152. package/dist/esm/HamMagazine.js +465 -0
  153. package/dist/esm/Header.js +28 -0
  154. package/dist/esm/Hero.js +50 -0
  155. package/dist/esm/HighlightenVideo.js +63 -0
  156. package/dist/esm/HorizontalHero.js +103 -0
  157. package/dist/esm/InscreenSensor-b7f931bf.js +857 -0
  158. package/dist/esm/IssueContentDeck.js +5 -4
  159. package/dist/esm/IssueDeck.js +8 -6
  160. package/dist/esm/IssueLanding.js +109 -0
  161. package/dist/esm/KMTracker.js +25 -0
  162. package/dist/esm/LeftNav.js +90 -0
  163. package/dist/esm/MasterDeck.js +17 -10
  164. package/dist/esm/NavDvm.js +211 -0
  165. package/dist/esm/NavFooter-c29526b7.js +60 -0
  166. package/dist/esm/NavMagazine.js +424 -0
  167. package/dist/esm/NavNative.js +266 -0
  168. package/dist/esm/NavNormal.js +97 -0
  169. package/dist/esm/OncliveHero.js +72 -0
  170. package/dist/esm/OncliveLargeHero.js +237 -0
  171. package/dist/esm/PageFilter.js +67 -0
  172. package/dist/esm/PdfDownload.js +22 -0
  173. package/dist/esm/PopUpModal.js +52 -0
  174. package/dist/esm/PublicationLanding.js +546 -0
  175. package/dist/esm/QueueDeckExpanded.js +31 -30
  176. package/dist/esm/RelatedContent.js +101 -0
  177. package/dist/esm/RelatedTopicsDropdown.js +82 -0
  178. package/dist/esm/Search.js +58 -0
  179. package/dist/esm/Segment.js +223 -0
  180. package/dist/esm/SetCookie.js +8 -0
  181. package/dist/esm/SideFooter.js +97 -0
  182. package/dist/esm/SocialNavFooter-1a531144.js +77 -0
  183. package/dist/esm/SocialShare.js +65 -0
  184. package/dist/esm/TaxonomyCard.js +237 -11
  185. package/dist/esm/TemplateNormal.js +175 -14
  186. package/dist/esm/Ustream.js +107 -6
  187. package/dist/esm/VerticalHero.js +69 -0
  188. package/dist/esm/VideoSeriesFilter.js +127 -0
  189. package/dist/esm/VideoSeriesListing.js +14 -8
  190. package/dist/esm/View.js +1145 -0
  191. package/dist/esm/YahooHero.js +123 -0
  192. package/dist/esm/YoutubeGroup.js +6 -4
  193. package/dist/esm/_arrayMap-a8dd2b2c.js +87 -0
  194. package/dist/esm/_is-array-dd5523d6.js +71 -0
  195. package/dist/esm/{_iter-detect-7c281f0a.js → _iter-detect-6e099a34.js} +2 -2
  196. package/dist/esm/_object-sap-56bb8073.js +14 -0
  197. package/dist/esm/_set-species-6f64f1c1.js +51 -0
  198. package/dist/esm/{_to-object-1b1f7766.js → _to-object-16fd8b46.js} +1 -1
  199. package/dist/esm/{AdSlot-362a1c30.js → asyncToGenerator-204b5a5c.js} +3 -703
  200. package/dist/esm/brightcove-react-player-loader.es-e1c6b0f2.js +2225 -0
  201. package/dist/esm/{web.dom.iterable-e6bf2bf6.js → core.get-iterator-method-f5c0d66a.js} +2 -47
  202. package/dist/esm/debounce-8cd9e09c.js +277 -0
  203. package/dist/esm/{extends-92072fff.js → extends-6e00b262.js} +1 -1
  204. package/dist/esm/{toConsumableArray-c5e2fde8.js → from-2c0a5f49.js} +4 -29
  205. package/dist/esm/{get-bc6cf9fb.js → get-ae817b75.js} +3 -86
  206. package/dist/esm/getKeywords.js +29 -0
  207. package/dist/esm/getQuery.js +18 -0
  208. package/dist/esm/getSerializers.js +8021 -0
  209. package/dist/esm/getSeriesDetail.js +36 -0
  210. package/dist/esm/getTargeting-8f4bd5db.js +105 -0
  211. package/dist/esm/getTargeting.js +9 -0
  212. package/dist/esm/iconBase-6ee2f2fb.js +81 -0
  213. package/dist/esm/{debounce-42a7f724.js → index-fb49124c.js} +2 -476
  214. package/dist/esm/index.esm-9d6faf80.js +17 -0
  215. package/dist/esm/index.esm-a7ad65ba.js +13 -0
  216. package/dist/esm/{index.esm-536609db.js → index.esm-b97cf389.js} +2 -80
  217. package/dist/esm/index.js +137 -23014
  218. package/dist/esm/{inherits-bbec2f34.js → inherits-2758cc14.js} +5 -15
  219. package/dist/esm/isSymbol-c1b9be80.js +203 -0
  220. package/dist/esm/js.cookie-6874175c.js +158 -0
  221. package/dist/esm/keys-04cdec91.js +23 -0
  222. package/dist/esm/{main-cf4930f0.js → main-8c8784b8.js} +1 -1
  223. package/dist/esm/{promise-2592a80a.js → promise-53143c9a.js} +6 -49
  224. package/dist/esm/{slicedToArray-04e02710.js → slicedToArray-f1e40361.js} +3 -2
  225. package/dist/esm/stringify-e30bc114.js +15 -0
  226. package/dist/esm/toConsumableArray-8712d678.js +29 -0
  227. package/dist/esm/{typeof-09bf9211.js → typeof-7e72fee0.js} +5 -70
  228. package/dist/esm/urlFor.js +8 -0
  229. package/dist/esm/util-7700fc59.js +574 -0
  230. package/dist/esm/web.dom.iterable-46c95e52.js +49 -0
  231. package/package.json +1 -1
  232. package/dist/cjs/GridContent-0df16724.js +0 -735
  233. package/dist/cjs/Normal-430e8e61.js +0 -2315
  234. package/dist/cjs/Ustream-46288bdf.js +0 -119
  235. package/dist/cjs/index.esm-340d3792.js +0 -110
  236. package/dist/esm/GridContent-2173a84c.js +0 -724
  237. package/dist/esm/Normal-6efd92da.js +0 -2282
  238. package/dist/esm/Ustream-c4f281a3.js +0 -112
@@ -0,0 +1,863 @@
1
+ 'use strict';
2
+
3
+ require('./_commonjsHelpers-06173234.js');
4
+ require('./_to-object-329a650b.js');
5
+ require('./core.get-iterator-method-41e87ec1.js');
6
+ require('./_library-dd23b178.js');
7
+ require('./_iter-detect-4d0352f8.js');
8
+ require('./from-ea347372.js');
9
+ var toConsumableArray = require('./toConsumableArray-ca04303b.js');
10
+ require('./_object-pie-68c5bcbc.js');
11
+ var _extends = require('./extends-60837c34.js');
12
+ require('./_object-sap-5e74ba08.js');
13
+ require('./inherits-4a2f1cc3.js');
14
+ require('./web.dom.iterable-43c3e277.js');
15
+ require('./typeof-583cdc4b.js');
16
+ require('./_is-array-754e012d.js');
17
+ var React = require('react');
18
+ var index$1 = require('./index-b2448ff6.js');
19
+ require('prop-types');
20
+ var moment = require('./moment-66a6a284.js');
21
+ require('next/router');
22
+ require('./isSymbol-488934a7.js');
23
+ require('./debounce-32e57002.js');
24
+ var index_es = require('./index.es-44c8e726.js');
25
+ require('react-dom');
26
+ var index = require('./index-be0c82be.js');
27
+ require('./index-8a3fb0bc.js');
28
+ var main = require('./main-d76cde9c.js');
29
+ require('./entities-310b46ee.js');
30
+ var slicedToArray = require('./slicedToArray-8063ee51.js');
31
+ var stringify = require('./stringify-7c5aff47.js');
32
+ require('./asyncToGenerator-db08763c.js');
33
+ require('./_set-species-4458e975.js');
34
+ require('./promise-074978a7.js');
35
+ require('./Beam.js');
36
+ require('./Segment.js');
37
+ var AdSlot = require('./AdSlot.js');
38
+ require('./_arrayMap-3b4a0f75.js');
39
+ var BlockContent = require('./BlockContent-80608595.js');
40
+ require('./smoothscroll-95231a70.js');
41
+ require('./GroupDeck.js');
42
+ require('react-bootstrap');
43
+ require('react-bootstrap/Button');
44
+ var Head = require('next/head');
45
+ require('react-share');
46
+ var SocialShare = require('./SocialShare.js');
47
+ var keys = require('./keys-a586b7a0.js');
48
+ var Dropdown = require('react-bootstrap/Dropdown');
49
+ require('./brightcove-react-player-loader.es-4ba0d3d5.js');
50
+ var InscreenSensor = require('./InscreenSensor-04a70c60.js');
51
+ var getSerializers = require('./getSerializers.js');
52
+ require('./util-f2c1b65b.js');
53
+ require('react-bootstrap/Pagination');
54
+ require('next/dynamic');
55
+
56
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
57
+
58
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
59
+ var Head__default = /*#__PURE__*/_interopDefaultLegacy(Head);
60
+ var Dropdown__default = /*#__PURE__*/_interopDefaultLegacy(Dropdown);
61
+
62
+ var renderAuthor = function renderAuthor(authorName, authorURL, index, length) {
63
+ var defaultUrl = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'authors';
64
+
65
+ if (authorName && authorURL) {
66
+ return React__default['default'].createElement(
67
+ 'span',
68
+ null,
69
+ React__default['default'].createElement(
70
+ 'a',
71
+ { href: '/' + defaultUrl + '/' + authorURL.current, key: index },
72
+ authorName
73
+ ),
74
+ length !== index + 1 && ', '
75
+ );
76
+ } else if (authorName) {
77
+ return React__default['default'].createElement(
78
+ 'span',
79
+ { key: index },
80
+ authorName,
81
+ length !== index + 1 && ', '
82
+ );
83
+ }
84
+ };
85
+
86
+ var get_content_placement_url = function get_content_placement_url(cp) {
87
+ var cp_url = '';
88
+ if (cp.ancestor && typeof cp.ancestor === 'string') {
89
+ cp_url += (cp_url === '' ? '' : '/') + cp.ancestor;
90
+ }
91
+
92
+ if (!cp.ancestor && cp.parent && typeof cp.parent === 'string') {
93
+ cp_url += (cp_url === '' ? '' : '/') + cp.parent;
94
+ }
95
+
96
+ cp_url += (cp_url === '' ? '' : '/') + cp.path;
97
+ return cp_url;
98
+ };
99
+
100
+ var getArticleSummary = function getArticleSummary(article) {
101
+ if (article.summary && article.summary.length > 0) {
102
+ return article.summary;
103
+ } else {
104
+ var _article$body = article.body,
105
+ body = _article$body === undefined ? [] : _article$body;
106
+
107
+ var desc = '';
108
+ body.some(function (children) {
109
+ children.children && children.children.some(function (item) {
110
+ if (item.text && String(item.text).trim().length > 0 && desc === '') {
111
+ desc = String(item.text);
112
+ return true;
113
+ }
114
+ });
115
+ if (desc !== '') {
116
+ return true;
117
+ }
118
+ });
119
+ return desc;
120
+ }
121
+ };
122
+
123
+ var Article = function Article(props) {
124
+ var client = props.client,
125
+ pageview = props.pageview,
126
+ videoAccountIDs = props.videoAccountIDs,
127
+ drupalLeadSettings = props.drupalLeadSettings,
128
+ currentPage = props.currentPage,
129
+ _props$article = props.article,
130
+ articleId = _props$article._id,
131
+ title = _props$article.title,
132
+ passwordLock = _props$article.passwordLock,
133
+ authorDetails = _props$article.authorDetails,
134
+ pageNumber = _props$article.pageNumber,
135
+ published = _props$article.published,
136
+ articleBody = _props$article.body,
137
+ thumbnail = _props$article.thumbnail,
138
+ content_placement = _props$article.content_placement,
139
+ _props$article$url = _props$article.url;
140
+ _props$article$url = _props$article$url === undefined ? {
141
+ current: ''
142
+ } : _props$article$url;
143
+ var url = _props$article$url.current,
144
+ issue = _props$article.issue,
145
+ source = _props$article.source,
146
+ regionalPages = props.regionalPages,
147
+ nationalPage = props.nationalPage,
148
+ ISIContent = props.ISIContent,
149
+ changeUrl = props.changeUrl,
150
+ shareOptions = props.shareOptions,
151
+ cpModificationRequired = props.cpModificationRequired,
152
+ authorPrefix = props.authorPrefix,
153
+ _props$lgContextAd = props.lgContextAd,
154
+ lgContextAd = _props$lgContextAd === undefined ? false : _props$lgContextAd,
155
+ queueData = props.queueData;
156
+
157
+ var _useState = React.useState(null),
158
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
159
+ contextualADFlag = _useState2[0],
160
+ setContextualADFlag = _useState2[1];
161
+
162
+ var summary = getArticleSummary(props.article);
163
+
164
+ var urlFor = function urlFor(source) {
165
+ return index.imageUrlBuilder(client).image(source);
166
+ };
167
+
168
+ var isCutomPage = function isCutomPage(article) {
169
+ var url = article.url.current;
170
+
171
+ if (regionalPages || nationalPage) {
172
+ return regionalPages.includes(url) || nationalPage === url;
173
+ } else {
174
+ return false;
175
+ }
176
+ };
177
+
178
+ var renderIsiContent = function renderIsiContent(article) {
179
+ var url = article.url.current;
180
+
181
+ if (regionalPages && regionalPages.includes(url)) {
182
+ return React__default['default'].createElement(ISIContent, null);
183
+ } else if (nationalPage === url) {
184
+ return React__default['default'].createElement(ISIContent, { national: true });
185
+ }
186
+ return null;
187
+ };
188
+
189
+ var renderRelevantTopicsDropdown = function renderRelevantTopicsDropdown() {
190
+ if (content_placement && content_placement.length > 0) {
191
+ return React__default['default'].createElement(
192
+ Dropdown__default['default'],
193
+ { style: { marginBottom: '1rem' } },
194
+ React__default['default'].createElement(
195
+ Dropdown__default['default'].Toggle,
196
+ { variant: 'primary', id: 'partner-dropdown' },
197
+ 'Relevant Topics'
198
+ ),
199
+ React__default['default'].createElement(
200
+ Dropdown__default['default'].Menu,
201
+ null,
202
+ content_placement.length > 0 ? content_placement.map(function (cp, index) {
203
+ var cp_url = cpModificationRequired ? get_content_placement_url(cp) : cp.path;
204
+ var href = '/' + cp_url;
205
+ return React__default['default'].createElement(
206
+ Dropdown__default['default'].Item,
207
+ { key: index, href: href },
208
+ cp.name
209
+ );
210
+ }) : null
211
+ )
212
+ );
213
+ }
214
+ return null;
215
+ };
216
+
217
+ var renderBlockContent = function renderBlockContent(payload) {
218
+ var _payload = payload,
219
+ body = _payload.body;
220
+
221
+ var findIndex = function findIndex(arr) {
222
+ var indexes = [];
223
+ var _iteratorNormalCompletion = true;
224
+ var _didIteratorError = false;
225
+ var _iteratorError = undefined;
226
+
227
+ try {
228
+ for (var _iterator = slicedToArray._getIterator(arr), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
229
+ var ele = _step.value;
230
+
231
+ if (ele['_type'] === 'block' && ele.children.some(function (child) {
232
+ return child.text.trim().length > 0;
233
+ }) && ele['listItem'] !== 'bullet' && ele['style'] === 'normal' || ele['_type'] === 'figure') {
234
+ indexes.push(arr.indexOf(ele));
235
+ }
236
+ }
237
+ } catch (err) {
238
+ _didIteratorError = true;
239
+ _iteratorError = err;
240
+ } finally {
241
+ try {
242
+ if (!_iteratorNormalCompletion && _iterator.return) {
243
+ _iterator.return();
244
+ }
245
+ } finally {
246
+ if (_didIteratorError) {
247
+ throw _iteratorError;
248
+ }
249
+ }
250
+ }
251
+
252
+ return indexes;
253
+ };
254
+ var indexes = findIndex(body);
255
+ if (indexes.length >= 2 && body.length > 3 && payload.contextualAD && payload.contextualVideoAD) {
256
+ payload = _extends._extends({}, payload, {
257
+ contextualAD: _extends._extends({}, payload.contextualAD, {
258
+ slotId: (payload.contextualAD.slotId || 'contextual_ad') + '-' + payload._id
259
+ }),
260
+ contextualVideoAD: _extends._extends({}, payload.contextualVideoAD, {
261
+ slotId: (payload.contextualVideoAD.slotId || 'in-context_video') + '-' + payload._id
262
+ })
263
+ });
264
+ var selectedIndex = indexes[1] + 1;
265
+
266
+ var checkIsAdFound = function checkIsAdFound(isFound) {
267
+ if (!isFound) {
268
+ var parent = document.getElementById('contextual-native-ad-' + payload._id);
269
+ parent.style.height = '0%';
270
+ parent.style.width = '0%';
271
+ parent.style.display = 'none';
272
+ setContextualADFlag(false);
273
+ } else {
274
+ setContextualADFlag(true);
275
+ }
276
+ };
277
+
278
+ var checkIsVideoAdFound = function checkIsVideoAdFound(isFound) {
279
+ if (!isFound) {
280
+ var parent = document.getElementById('contextual-video-ad-' + payload._id);
281
+ parent.style.height = '0%';
282
+ parent.style.width = '0%';
283
+ parent.style.display = 'none';
284
+ setContextualADFlag(false);
285
+ } else {
286
+ setContextualADFlag(true);
287
+ }
288
+ };
289
+
290
+ return React__default['default'].createElement(
291
+ React__default['default'].Fragment,
292
+ null,
293
+ React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
294
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings, currentPage, false, contextualADFlag, articleId),
295
+ blocks: [].concat(toConsumableArray._toConsumableArray(body.slice(0, selectedIndex))),
296
+ imageOptions: { w: 320, h: 240, fit: 'max' }
297
+ }, client.config())),
298
+ React__default['default'].createElement('span', { className: 'clearfix' }),
299
+ React__default['default'].createElement(
300
+ 'div',
301
+ { id: 'contextual-native-ad-' + payload._id, className: 'contextual-native-ad' },
302
+ React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualAD, { refreshFlag: false, checkIsAdFound: checkIsAdFound }))
303
+ ),
304
+ React__default['default'].createElement('span', { className: 'clearfix' }),
305
+ React__default['default'].createElement(
306
+ 'div',
307
+ { id: 'contextual-video-ad-' + payload._id, className: 'contextual-video-ad' },
308
+ React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualVideoAD, { refreshFlag: false, checkIsAdFound: checkIsVideoAdFound }))
309
+ ),
310
+ React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
311
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings, currentPage, false, undefined, articleId),
312
+ blocks: [].concat(toConsumableArray._toConsumableArray(body.slice(selectedIndex))),
313
+ imageOptions: { w: 320, h: 240, fit: 'max' }
314
+ }, client.config()))
315
+ );
316
+ } else if (indexes.length >= 2 && body.length > 3 && payload.contextualAD && !payload.contextualVideoAD) {
317
+ payload = _extends._extends({}, payload, {
318
+ contextualAD: _extends._extends({}, payload.contextualAD, {
319
+ slotId: (payload.contextualAD.slotId || 'contextual_ad') + '-' + payload._id,
320
+ className: 'ADFluid',
321
+ // Adding new ad size for large contextual ad for desktop screen width >= 1400
322
+ sizes: lgContextAd ? [[728, 90], 'fluid', [300, 100]] : ['fluid', [300, 100]],
323
+ sizeMapping: lgContextAd ? [{
324
+ viewport: [1400, 0],
325
+ sizes: [[728, 90], 'fluid', [300, 100]]
326
+ }, { viewport: [0, 0], sizes: ['fluid', [300, 100]] }] : ['fluid', [300, 100]]
327
+ })
328
+ });
329
+ var _selectedIndex = indexes[1] + 1;
330
+ var _checkIsAdFound = function _checkIsAdFound(isFound, adData) {
331
+ if (!isFound) {
332
+ var parent = document.getElementById('contextual-native-ad-' + payload._id);
333
+ parent.style.height = '0%';
334
+ parent.style.width = '0%';
335
+ parent.style.display = 'none';
336
+ setContextualADFlag(false);
337
+ } else {
338
+ var _parent = document.getElementById('contextual-native-ad-' + payload._id);
339
+ if (adData && adData.event && adData.event.size && _parent) {
340
+ // Adding fix for fluid contextual ad to avoid from collapsing when size is [0,0]
341
+ var fluidSizes = [[0, 0]];
342
+ var checkAdSize = function checkAdSize(size) {
343
+ return stringify._JSON$stringify(size) === stringify._JSON$stringify(adData.event.size);
344
+ };
345
+ if (!fluidSizes.some(checkAdSize)) {
346
+ _parent.style.width = adData.event.size[0] + 'px';
347
+ _parent.style.height = adData.event.size[1] + 'px';
348
+ }
349
+ _parent.style.margin = 'auto';
350
+ }
351
+ if (body[0]._type === 'figure' || body[1]._type === 'figure' || body[2]._type === 'figure' || body[3]._type === 'figure') {
352
+ setContextualADFlag(true);
353
+ }
354
+ }
355
+ };
356
+
357
+ return React__default['default'].createElement(
358
+ React__default['default'].Fragment,
359
+ null,
360
+ React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
361
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings, currentPage, false, undefined, articleId),
362
+ blocks: [].concat(toConsumableArray._toConsumableArray(body.slice(0, _selectedIndex))),
363
+ imageOptions: { w: 320, h: 240, fit: 'max' }
364
+ }, client.config())),
365
+ contextualADFlag && React__default['default'].createElement('span', { className: 'clearfix' }),
366
+ React__default['default'].createElement(
367
+ 'div',
368
+ { id: 'contextual-native-ad-' + payload._id, className: 'contextual-native-ad' },
369
+ React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualAD, { refreshFlag: false, checkIsAdFound: _checkIsAdFound }))
370
+ ),
371
+ contextualADFlag && React__default['default'].createElement('span', { className: 'clearfix' }),
372
+ React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
373
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings, currentPage, false, undefined, articleId),
374
+ blocks: [].concat(toConsumableArray._toConsumableArray(body.slice(_selectedIndex))),
375
+ imageOptions: { w: 320, h: 240, fit: 'max' }
376
+ }, client.config()))
377
+ );
378
+ } else if (indexes.length >= 2 && body.length > 3 && payload.contextualVideoAD && !payload.contextualAD) {
379
+ payload = _extends._extends({}, payload, {
380
+ contextualVideoAD: _extends._extends({}, payload.contextualVideoAD, {
381
+ slotId: (payload.contextualVideoAD.slotId || 'in-context_video') + '-' + payload._id
382
+ })
383
+ });
384
+ var _selectedIndex2 = indexes[1] + 1;
385
+
386
+ var _checkIsAdFound2 = function _checkIsAdFound2(isFound) {
387
+ if (!isFound) {
388
+ var parent = document.getElementById('contextual-video-ad-' + payload._id);
389
+ parent.style.height = '0%';
390
+ parent.style.width = '0%';
391
+ parent.style.display = 'none';
392
+ setContextualADFlag(false);
393
+ } else {
394
+ if (body && body[1] && body[1]._type === 'figure') {
395
+ setContextualADFlag(true);
396
+ }
397
+ }
398
+ };
399
+
400
+ return React__default['default'].createElement(
401
+ React__default['default'].Fragment,
402
+ null,
403
+ React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
404
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings, currentPage, false, contextualADFlag, articleId),
405
+ blocks: [].concat(toConsumableArray._toConsumableArray(body.slice(0, _selectedIndex2))),
406
+ imageOptions: { w: 320, h: 240, fit: 'max' }
407
+ }, client.config())),
408
+ React__default['default'].createElement('span', { className: 'clearfix' }),
409
+ React__default['default'].createElement(
410
+ 'div',
411
+ { id: 'contextual-video-ad-' + payload._id, className: 'contextual-video-ad' },
412
+ React__default['default'].createElement(AdSlot, _extends._extends({}, payload.contextualVideoAD, { refreshFlag: false, checkIsAdFound: _checkIsAdFound2 }))
413
+ ),
414
+ React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
415
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings, currentPage, false, undefined, articleId),
416
+ blocks: [].concat(toConsumableArray._toConsumableArray(body.slice(_selectedIndex2))),
417
+ imageOptions: { w: 320, h: 240, fit: 'max' }
418
+ }, client.config()))
419
+ );
420
+ } else {
421
+ return React__default['default'].createElement(BlockContent.BlockContent, _extends._extends({
422
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings, currentPage, false, undefined, articleId),
423
+ blocks: articleBody,
424
+ imageOptions: { w: 320, h: 240, fit: 'max' }
425
+ }, client.config()));
426
+ }
427
+ };
428
+
429
+ var shareVia = shareOptions.shareVia,
430
+ shareSubject = shareOptions.shareSubject,
431
+ twitterSiteName = shareOptions.twitterSiteName,
432
+ shareImageDefault = shareOptions.shareImageDefault,
433
+ shareBaseUrl = shareOptions.shareBaseUrl,
434
+ shareSiteTitle = shareOptions.shareSiteTitle;
435
+
436
+ var shareUrl = shareBaseUrl + props.article.url.current;
437
+ var shareTitle = title;
438
+ var shareSummary = summary;
439
+ var shareImage = thumbnail && thumbnail.asset ? urlFor(thumbnail.asset).url() : shareImageDefault;
440
+ var siteName = props.website.title;
441
+
442
+ var meta = {
443
+ shareTitle: shareTitle,
444
+ shareSiteName: props.cache.siteSettingCache.name,
445
+ shareSummary: shareSummary,
446
+ shareUrl: shareUrl,
447
+ shareImage: shareImage,
448
+ shareVia: props.Settings.title
449
+ };
450
+ return React__default['default'].createElement(
451
+ React__default['default'].Fragment,
452
+ null,
453
+ React__default['default'].createElement(
454
+ InscreenSensor.InscreenSensor,
455
+ {
456
+ offSetTop: 120,
457
+ className: 'inscreen-wrapper',
458
+ id: 'article-' + title,
459
+ onChange: function onChange(visible) {
460
+ if (visible === 'top' || visible === 'bottom' || visible === 'small-top') {
461
+ changeUrl(url, visible, meta);
462
+ }
463
+ } },
464
+ React__default['default'].createElement(
465
+ 'div',
466
+ null,
467
+ queueData && queueData.length === 1 && React__default['default'].createElement(
468
+ Head__default['default'],
469
+ null,
470
+ React__default['default'].createElement(
471
+ 'title',
472
+ { key: 'title' },
473
+ '' + shareTitle
474
+ ),
475
+ React__default['default'].createElement('meta', { name: 'description', key: 'description', content: shareSummary }),
476
+ passwordLock && React__default['default'].createElement('meta', { name: 'robots', content: 'noindex, nofollow' }),
477
+ React__default['default'].createElement('meta', { property: 'og:url', content: shareUrl, key: 'og:url' }),
478
+ React__default['default'].createElement('meta', { property: 'og:title', content: shareTitle, key: 'og:title' }),
479
+ React__default['default'].createElement('meta', { property: 'og:image', content: shareImage, key: 'og:image' }),
480
+ React__default['default'].createElement('meta', { property: 'og:site_name', content: props.Settings.title, key: 'og:site_name' }),
481
+ React__default['default'].createElement('meta', { property: 'og:description', content: shareSummary, key: 'og:description' }),
482
+ React__default['default'].createElement('meta', { name: 'twitter:card', content: 'summary', key: 'twitter:card' }),
483
+ React__default['default'].createElement('meta', { name: 'twitter:title', content: shareTitle, key: 'twitter:title' }),
484
+ React__default['default'].createElement('meta', { name: 'twitter:image', content: shareImage, key: 'twitter:image' }),
485
+ React__default['default'].createElement('meta', { name: 'twitter:site', content: '@' + props.Settings.title, key: 'twitter:site' }),
486
+ React__default['default'].createElement('meta', { name: 'twitter:description', content: shareSummary, key: 'twitter:description' })
487
+ ),
488
+ React__default['default'].createElement(
489
+ 'h1',
490
+ { className: 'page-title' },
491
+ title
492
+ ),
493
+ React__default['default'].createElement(
494
+ 'div',
495
+ { className: 'video-detail', style: { marginBottom: isCutomPage(props.article) ? '150px' : 0 } },
496
+ React__default['default'].createElement(
497
+ 'div',
498
+ null,
499
+ moment.moment(published).format('LL')
500
+ ),
501
+ React__default['default'].createElement(
502
+ 'div',
503
+ { className: 'mb-3' },
504
+ authorDetails && authorDetails.map(function (authorDetail, index) {
505
+ return React__default['default'].createElement(
506
+ 'span',
507
+ { key: index },
508
+ renderAuthor(authorDetail.displayName, authorDetail.url, index, authorDetails.length, authorPrefix)
509
+ );
510
+ }),
511
+ props.article.source && React__default['default'].createElement(
512
+ 'div',
513
+ { className: 'sanityDisplayLabel' },
514
+ props.article.source
515
+ ),
516
+ issue && React__default['default'].createElement(
517
+ 'div',
518
+ null,
519
+ React__default['default'].createElement(
520
+ 'div',
521
+ { className: 'volume-issue' },
522
+ React__default['default'].createElement(
523
+ 'p',
524
+ null,
525
+ issue.volume && React__default['default'].createElement(
526
+ 'span',
527
+ null,
528
+ 'Volume ' + issue.volume,
529
+ ','
530
+ ),
531
+ issue.issueNumber && React__default['default'].createElement(
532
+ 'span',
533
+ null,
534
+ ' Issue ' + issue.issueNumber
535
+ )
536
+ )
537
+ )
538
+ ),
539
+ pageNumber && React__default['default'].createElement(
540
+ 'div',
541
+ { className: 'article-pageNumber' },
542
+ 'Page Number: ' + pageNumber
543
+ )
544
+ ),
545
+ React__default['default'].createElement(
546
+ 'p',
547
+ null,
548
+ React__default['default'].createElement(SocialShare, {
549
+ shareUrl: shareUrl,
550
+ shareTitle: shareTitle,
551
+ shareVia: shareVia,
552
+ shareSummary: shareSummary,
553
+ shareSubject: shareSubject,
554
+ shareImage: shareImage,
555
+ size: 32,
556
+ siteName: siteName,
557
+ twitterSiteName: twitterSiteName,
558
+ disableMeta: true
559
+ })
560
+ ),
561
+ renderRelevantTopicsDropdown(),
562
+ React__default['default'].createElement(
563
+ 'p',
564
+ null,
565
+ React__default['default'].createElement(
566
+ 'em',
567
+ null,
568
+ summary
569
+ ),
570
+ React__default['default'].createElement('br', null),
571
+ React__default['default'].createElement('br', null)
572
+ ),
573
+ main.main_36 && props.article.Ads.map(function (ad, index) {
574
+ if (index === 0) {
575
+ return React__default['default'].createElement(
576
+ 'div',
577
+ { key: index, id: 'addid-' + index, style: { display: 'flex', flex: '1 0 auto', marginTop: '-1rem', marginBottom: '1rem' } },
578
+ ad.component
579
+ );
580
+ }
581
+ }),
582
+ React__default['default'].createElement(
583
+ 'div',
584
+ { className: 'block-content' },
585
+ renderBlockContent(props.article),
586
+ issue && issue.url && React__default['default'].createElement(
587
+ 'a',
588
+ { href: issue.url, target: '_blank', title: 'Download issue' },
589
+ React__default['default'].createElement('img', { style: { margin: '1rem', maxHeight: '40px', maxWidth: '40px' }, src: '/download.png', alt: 'download issue' }),
590
+ 'Download Issue : ',
591
+ issue.name
592
+ )
593
+ )
594
+ ),
595
+ renderIsiContent(props.article)
596
+ )
597
+ ),
598
+ main.main_36 && props.article.Ads.map(function (ad, index) {
599
+ if (index > 0) {
600
+ return React__default['default'].createElement(
601
+ 'div',
602
+ { key: index, id: 'addid-' + index, style: { display: 'flex', flex: '1 0 auto' } },
603
+ ad.component
604
+ );
605
+ }
606
+ }),
607
+ React__default['default'].createElement('div', { className: 'clearfix', style: { minHeight: '1px' } }),
608
+ React__default['default'].createElement('hr', { className: 'article-seperater' }),
609
+ React__default['default'].createElement(
610
+ 'style',
611
+ { jsx: 'true' },
612
+ '\n .sanityDisplayLabel {\n margin: 0.5rem 0;\n border: 1px solid black;\n width: fit-content;\n padding: 5px;\n }\n '
613
+ )
614
+ );
615
+ };
616
+
617
+ var ArticleQueue = function ArticleQueue(props) {
618
+ var _props$prevUrl = props.prevUrl,
619
+ prevUrl = _props$prevUrl === undefined ? '/' : _props$prevUrl,
620
+ Ads = props.Ads,
621
+ _props$maxListLength = props.maxListLength,
622
+ maxListLength = _props$maxListLength === undefined ? 10 : _props$maxListLength,
623
+ _props$sponsoredTaxon = props.sponsoredTaxonomies,
624
+ sponsoredTaxonomies = _props$sponsoredTaxon === undefined ? [] : _props$sponsoredTaxon,
625
+ _props$cpModification = props.cpModificationRequired,
626
+ cpModificationRequired = _props$cpModification === undefined ? false : _props$cpModification,
627
+ _props$authorPrefix = props.authorPrefix,
628
+ authorPrefix = _props$authorPrefix === undefined ? 'authors' : _props$authorPrefix;
629
+
630
+
631
+ var getTargeting = function getTargeting(article, position) {
632
+ var _article$internalTag = article.internalTag,
633
+ internalTag = _article$internalTag === undefined ? [] : _article$internalTag,
634
+ _article$userDefinedT = article.userDefinedTag,
635
+ userDefinedTag = _article$userDefinedT === undefined ? [] : _article$userDefinedT,
636
+ _article$SponsorshipT = article.SponsorshipTag,
637
+ SponsorshipTag = _article$SponsorshipT === undefined ? [] : _article$SponsorshipT,
638
+ _article$seoTag = article.seoTag,
639
+ seoTag = _article$seoTag === undefined ? [] : _article$seoTag,
640
+ _article$url = article.url;
641
+ _article$url = _article$url === undefined ? {
642
+ current: ''
643
+ } : _article$url;
644
+ var url = _article$url.current,
645
+ _article$documentGrou = article.documentGroup;
646
+ _article$documentGrou = _article$documentGrou === undefined ? {
647
+ path: ''
648
+ } : _article$documentGrou;
649
+ var document_group = _article$documentGrou.path,
650
+ content_placement = article.content_placement;
651
+
652
+ var context = url;
653
+ var localHistory = props.historyCookie ? JSON.parse(props.historyCookie) : [];
654
+ if (!context && localHistory) {
655
+ context = localHistory[localHistory.length - 1];
656
+ }
657
+ context = context && context.split('?')[0];
658
+ context = context && context.split('&')[0];
659
+ var content_placement_urls = [];
660
+ if (content_placement && prevUrl && prevUrl.length) {
661
+ content_placement.forEach(function (item) {
662
+ var path = item.path;
663
+ if (cpModificationRequired) {
664
+ path = get_content_placement_url(item);
665
+ }
666
+
667
+ if (InscreenSensor.includes_1(prevUrl, path)) {
668
+ content_placement_urls.push(path);
669
+ }
670
+ });
671
+ }
672
+
673
+ if (content_placement) {
674
+ if (content_placement_urls.length === 0) {
675
+ content_placement_urls = content_placement.map(function (item) {
676
+ return cpModificationRequired ? get_content_placement_url(item) : item.path;
677
+ });
678
+ }
679
+ } else {
680
+ content_placement_urls = ['/'];
681
+ }
682
+ var articleKeywords = [].concat(toConsumableArray._toConsumableArray(internalTag), toConsumableArray._toConsumableArray(userDefinedTag), toConsumableArray._toConsumableArray(SponsorshipTag), toConsumableArray._toConsumableArray(seoTag));
683
+ var targeting = {
684
+ tags: articleKeywords,
685
+ document_group: [document_group],
686
+ document_url: [url],
687
+ content_placement: content_placement_urls
688
+ };
689
+
690
+ if (article.issue && article.issue.path) {
691
+ targeting.issue_url = [article.issue.path];
692
+ if (article.issue.publication && article.issue.publication.path) {
693
+ targeting.publication_url = [article.issue.publication.path];
694
+ }
695
+ }
696
+
697
+ if (props.cache.hyperTargeting) {
698
+ targeting = _extends._extends({}, targeting, { campaign_id: props.cache.hyperTargeting });
699
+ }
700
+
701
+ if (position && position.length) {
702
+ targeting['pos'] = position;
703
+ }
704
+ return targeting;
705
+ };
706
+
707
+ var firstArticle = function firstArticle() {
708
+ var article = _extends._Object$assign({}, props.article);
709
+ var targeting = getTargeting(props.article);
710
+ article.Ads = Ads.getRightItems(targeting);
711
+ return article;
712
+ };
713
+
714
+ var _useState3 = React.useState([firstArticle()]),
715
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
716
+ queueData = _useState4[0],
717
+ setQueueData = _useState4[1];
718
+
719
+ var refreshAD = function refreshAD(path) {
720
+ if (!main.main_36) {
721
+ var activeArticle = queueData.find(function (item) {
722
+ return item.url.current === path;
723
+ });
724
+ var targeting = getTargeting(activeArticle);
725
+ index$1.lib_3.getGoogletag().then(function (googletag) {
726
+ if (window.googletag && googletag.pubadsReady) {
727
+ var slots = googletag.pubads().getSlots();
728
+ slots.forEach(function (slot) {
729
+ var pos = slot.getTargeting('pos');
730
+ slot.clearTargeting();
731
+ keys._Object$keys(targeting).forEach(function (key) {
732
+ slot.setTargeting(key, targeting[key]);
733
+ });
734
+ slot.setTargeting('pos', pos);
735
+ });
736
+ index$1.lib_3.refresh();
737
+ }
738
+ });
739
+ }
740
+ };
741
+
742
+ var checkSponseredArticle = function checkSponseredArticle(article) {
743
+ var _article$taxonomyMapp = article.taxonomyMapping,
744
+ taxonomyMapping = _article$taxonomyMapp === undefined ? [] : _article$taxonomyMapp;
745
+
746
+ if (props.checkSponsered) {
747
+ return taxonomyMapping.some(function (item) {
748
+ return InscreenSensor.includes_1(sponsoredTaxonomies, item._ref);
749
+ });
750
+ } else {
751
+ return false;
752
+ }
753
+ };
754
+
755
+ var preVscroll = 0;
756
+ var isScrollDown = true;
757
+
758
+ var scrollDirectionDetect = function scrollDirectionDetect(e) {
759
+ var window = e.currentTarget;
760
+
761
+ if (preVscroll > window.scrollY) {
762
+ isScrollDown = false;
763
+ } else if (preVscroll < window.scrollY) {
764
+ isScrollDown = true;
765
+ }
766
+ preVscroll = window.scrollY;
767
+ };
768
+
769
+ React.useEffect(function () {
770
+ window.addEventListener('scroll', scrollDirectionDetect);
771
+ return function () {
772
+ return window.removeEventListener('scroll', scrollDirectionDetect);
773
+ };
774
+ });
775
+
776
+ var loadmore = function loadmore() {
777
+ var query = props.relatedArticleQuery;
778
+ var params = props.params;
779
+ if (queueData && queueData.length < maxListLength) {
780
+ params.index = queueData.length - 1;
781
+ props.client.fetch(query, params).then(function (article) {
782
+ if (article && article._id) {
783
+ var targeting = getTargeting(article);
784
+ article.Ads = Ads.getRightItems(targeting);
785
+ setQueueData([].concat(toConsumableArray._toConsumableArray(queueData), [article]));
786
+ }
787
+ });
788
+ }
789
+ };
790
+
791
+ var changeMeta = function changeMeta(meta) {
792
+ document.title = meta.shareTitle;
793
+ document.querySelector('meta[name="description"]').setAttribute('content', meta.shareSummary);
794
+ document.querySelector('meta[property="og:url"]').setAttribute('content', meta.shareUrl);
795
+ document.querySelector('meta[property="og:title"]').setAttribute('content', meta.shareTitle);
796
+ document.querySelector('meta[property="og:site_name"]').setAttribute('content', meta.shareVia);
797
+ document.querySelector('meta[property="og:description"]').setAttribute('content', meta.shareSummary);
798
+ document.querySelector('meta[name="twitter:title"]').setAttribute('content', meta.shareTitle);
799
+ document.querySelector('meta[name="twitter:image"]').setAttribute('content', meta.shareImage);
800
+ document.querySelector('meta[name="twitter:site"]').setAttribute('content', meta.shareVia);
801
+ document.querySelector('meta[name="twitter:description"]').setAttribute('content', meta.shareSummary);
802
+ };
803
+
804
+ var changeUrl = function changeUrl(path, visibility, meta) {
805
+ var currentPath = window && window.location && window.location.pathname ? window.location.pathname.replace('/view/', '') : '';
806
+ var newPath = '/view/' + path;
807
+ if (currentPath !== path) {
808
+ if (isScrollDown) {
809
+ if (visibility === 'top') {
810
+ // router.push('/view/[url]', newPath, { shallow: true })
811
+ window.history.pushState({ page: path }, meta.shareTitle, newPath);
812
+ changeMeta(meta);
813
+ if (props.pageview) {
814
+ props.pageview(newPath);
815
+ }
816
+ refreshAD(path);
817
+ }
818
+ } else {
819
+ if (visibility === 'bottom') {
820
+ // router.push('/view/[url]', newPath, { shallow: true })
821
+ window.history.pushState({ page: path }, meta.shareTitle, newPath);
822
+ changeMeta(meta);
823
+ if (props.pageview) {
824
+ props.pageview(newPath);
825
+ }
826
+ refreshAD(path);
827
+ }
828
+ }
829
+ if (visibility === 'small-top') {
830
+ window.history.pushState({ page: path }, meta.shareTitle, newPath);
831
+ changeMeta(meta);
832
+ if (props.pageview) {
833
+ props.pageview(newPath);
834
+ }
835
+ refreshAD(path);
836
+ }
837
+ }
838
+ };
839
+
840
+ return React__default['default'].createElement(
841
+ index_es.InfiniteScroll,
842
+ { dataLength: queueData.length, next: loadmore, scrollThreshold: '60%', hasMore: true, style: { overflow: 'hidden' } },
843
+ queueData.map(function (article, index) {
844
+ if (!checkSponseredArticle(article) && Ads.getVideoContextualAD) {
845
+ article.contextualVideoAD = Ads.getVideoContextualAD(getTargeting(article, 'in-context_video'));
846
+ }
847
+ if (!checkSponseredArticle(article) && Ads.getNativeContextualAD) {
848
+ article.contextualAD = Ads.getNativeContextualAD(getTargeting(article, 'native-ad'));
849
+ }
850
+ return React__default['default'].createElement(Article, _extends._extends({
851
+ key: index
852
+ }, props, {
853
+ changeUrl: changeUrl,
854
+ authorPrfix: authorPrefix,
855
+ article: article,
856
+ cpModificationRequired: cpModificationRequired,
857
+ queueData: queueData
858
+ }));
859
+ })
860
+ );
861
+ };
862
+
863
+ module.exports = ArticleQueue;