@mjhls/mjh-framework 1.0.1005-next12-0003 → 1.0.1005-sap-context-test

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 (613) hide show
  1. package/dist/cjs/AD.js +32 -1
  2. package/dist/cjs/AD300x250.js +96 -1
  3. package/dist/cjs/AD300x250x600.js +113 -1
  4. package/dist/cjs/AD728x90.js +110 -1
  5. package/dist/cjs/ADFloatingFooter.js +144 -1
  6. package/dist/cjs/ADFooter.js +53 -1
  7. package/dist/cjs/ADGutter.js +116 -1
  8. package/dist/cjs/ADInfeed-0394f391.js +66 -0
  9. package/dist/cjs/ADSkyscraper.js +118 -1
  10. package/dist/cjs/ADSponsoredResources.js +115 -1
  11. package/dist/cjs/ADWebcast.js +120 -1
  12. package/dist/cjs/ADWelcome.js +167 -1
  13. package/dist/cjs/ADlgInfeed-759969d6.js +60 -0
  14. package/dist/cjs/AccordionPanel.js +94 -1
  15. package/dist/cjs/AdSlot.js +252 -1
  16. package/dist/cjs/AdSlotsProvider.js +184 -1
  17. package/dist/cjs/AlgoliaSearch.js +14466 -1
  18. package/dist/cjs/AlphabeticList.js +135 -1
  19. package/dist/cjs/ArticleCarousel.js +46 -1
  20. package/dist/cjs/ArticleProgramLandingPage.js +188 -1
  21. package/dist/cjs/ArticleSeriesLandingPage.js +163 -1
  22. package/dist/cjs/ArticleSeriesListing.js +316 -1
  23. package/dist/cjs/Auth.js +3653 -1
  24. package/dist/cjs/AuthWrapper.js +1902 -1
  25. package/dist/cjs/AuthorComponent-7d00f6d5.js +96 -0
  26. package/dist/cjs/Beam.js +350 -1
  27. package/dist/cjs/BlockContent-96b44364.js +916 -0
  28. package/dist/cjs/Breadcrumbs.js +107 -1
  29. package/dist/cjs/CMEDeck.js +448 -1
  30. package/dist/cjs/Column1.js +39 -1
  31. package/dist/cjs/Column2.js +74 -1
  32. package/dist/cjs/Column3.js +144 -1
  33. package/dist/cjs/ConferenceArticleCard.js +93 -1
  34. package/dist/cjs/ConferenceBanner-213003ce.js +24 -0
  35. package/dist/cjs/ContentCardPaginated.js +417 -1
  36. package/dist/cjs/DeckContent.js +508 -1
  37. package/dist/cjs/DeckQueue.js +404 -1
  38. package/dist/cjs/DeckQueuePaginated.js +348 -1
  39. package/dist/cjs/Dfp-c313a700.js +104 -0
  40. package/dist/cjs/EventsDeck.js +884 -1
  41. package/dist/cjs/ExternalResources.js +222 -1
  42. package/dist/cjs/Feature.js +129 -1
  43. package/dist/cjs/ForbesHero.js +137 -1
  44. package/dist/cjs/GridContent.js +829 -1
  45. package/dist/cjs/GridContentPaginated.js +704 -1
  46. package/dist/cjs/GridHero.js +147 -1
  47. package/dist/cjs/GroupDeck.js +314 -1
  48. package/dist/cjs/HamMagazine.js +602 -1
  49. package/dist/cjs/Header.js +39 -1
  50. package/dist/cjs/HealthCareProfessionalModal.js +78 -1
  51. package/dist/cjs/Hero.js +48 -1
  52. package/dist/cjs/HighlightenVideo.js +69 -1
  53. package/dist/cjs/HorizontalArticleListing.js +169 -1
  54. package/dist/cjs/HorizontalHero.js +111 -1
  55. package/dist/cjs/ImageSlider-17fdaf3b.js +2813 -0
  56. package/dist/cjs/IssueContentDeck.js +241 -1
  57. package/dist/cjs/IssueDeck.js +268 -1
  58. package/dist/cjs/IssueLanding.js +176 -1
  59. package/dist/cjs/KMTracker.js +27 -1
  60. package/dist/cjs/LeftNav.js +155 -1
  61. package/dist/cjs/MasterDeck.js +556 -1
  62. package/dist/cjs/MasterDeckPaginated.js +469 -1
  63. package/dist/cjs/MediaSeriesCard-eacea66a.js +81 -0
  64. package/dist/cjs/MediaSeriesLanding.js +509 -1
  65. package/dist/cjs/MediaSeriesLandingPaginated.js +534 -1
  66. package/dist/cjs/NavDvm.js +276 -1
  67. package/dist/cjs/NavFooter-880e9d87.js +71 -0
  68. package/dist/cjs/NavMagazine.js +613 -1
  69. package/dist/cjs/NavNative.js +880 -1
  70. package/dist/cjs/OncliveHero.js +79 -1
  71. package/dist/cjs/OncliveLargeHero.js +241 -1
  72. package/dist/cjs/PageFilter.js +72 -1
  73. package/dist/cjs/Pagination-842c556f.js +97 -0
  74. package/dist/cjs/PartnerDetailListing.js +345 -1
  75. package/dist/cjs/PartnerDetailListingPaginated.js +353 -1
  76. package/dist/cjs/PdfDownload.js +28 -1
  77. package/dist/cjs/PixelTracking.js +165 -1
  78. package/dist/cjs/PodcastsLanding.js +236 -1
  79. package/dist/cjs/PopUpModal.js +58 -1
  80. package/dist/cjs/PtceDeck.js +149 -1
  81. package/dist/cjs/PubSection.js +121 -1
  82. package/dist/cjs/PubToc.js +87 -1
  83. package/dist/cjs/PublicationDeck.js +183 -1
  84. package/dist/cjs/PublicationFeature-a989a2b3.js +130 -0
  85. package/dist/cjs/PublicationLanding.js +857 -1
  86. package/dist/cjs/QueueDeckExpanded.js +1541 -1
  87. package/dist/cjs/QueueDeckExpandedPaginated.js +1388 -1
  88. package/dist/cjs/RecentNews.js +91 -1
  89. package/dist/cjs/RelatedContent.js +114 -1
  90. package/dist/cjs/RelatedTopicsDropdown.js +90 -1
  91. package/dist/cjs/RolesDeck.js +94 -1
  92. package/dist/cjs/Schema.js +103 -1
  93. package/dist/cjs/Search.js +66 -1
  94. package/dist/cjs/Segment.js +452 -1
  95. package/dist/cjs/SeriesListingDeck.js +249 -1
  96. package/dist/cjs/SeriesSlider-3d57985d.js +332 -0
  97. package/dist/cjs/SetCookie.js +10 -1
  98. package/dist/cjs/SideFooter.js +150 -1
  99. package/dist/cjs/SocialIcons.js +103 -1
  100. package/dist/cjs/SocialSearchComponent-62bceb87.js +213 -0
  101. package/dist/cjs/SocialShare.js +74 -1
  102. package/dist/cjs/TaxonomyCard.js +257 -1
  103. package/dist/cjs/TaxonomyDescription.js +209 -1
  104. package/dist/cjs/TemplateNormal.js +204 -1
  105. package/dist/cjs/ThumbnailCard.js +59 -1
  106. package/dist/cjs/Tooltip-4cb8849a.js +9454 -0
  107. package/dist/cjs/Ustream.js +156 -1
  108. package/dist/cjs/VerticalHero.js +74 -1
  109. package/dist/cjs/VideoProgramLandingPage.js +264 -1
  110. package/dist/cjs/VideoSeriesCard.js +88 -1
  111. package/dist/cjs/VideoSeriesFilter.js +128 -1
  112. package/dist/cjs/VideoSeriesLandingPage.js +179 -1
  113. package/dist/cjs/VideoSeriesListing.js +423 -1
  114. package/dist/cjs/View.js +2699 -1
  115. package/dist/cjs/YahooHero.js +126 -1
  116. package/dist/cjs/YoutubeGroup.js +371 -1
  117. package/dist/cjs/_commonjsHelpers-06173234.js +25 -0
  118. package/dist/cjs/_is-array-54228b29.js +74 -0
  119. package/dist/cjs/_iter-detect-b1df62f0.js +52 -0
  120. package/dist/cjs/_library-dd23b178.js +5 -0
  121. package/dist/cjs/_object-pie-083f2dd6.js +16 -0
  122. package/dist/cjs/_object-sap-d1978572.js +16 -0
  123. package/dist/cjs/_object-to-array-ce86cae7.js +25 -0
  124. package/dist/cjs/asyncToGenerator-77821af0.js +1395 -0
  125. package/dist/cjs/brightcove-react-player-loader.es-4c7825a1.js +2232 -0
  126. package/dist/cjs/checkSisterSite-b29833b2.js +19 -0
  127. package/dist/cjs/core.get-iterator-method-5643aa10.js +584 -0
  128. package/dist/cjs/debounce-d4a2369b.js +216 -0
  129. package/dist/cjs/define-property-e8404b64.js +20 -0
  130. package/dist/cjs/defineProperty-e0fb52c5.js +73 -0
  131. package/dist/cjs/entities-df1aed86.js +510 -0
  132. package/dist/cjs/eq-5fc26c07.js +79 -0
  133. package/dist/cjs/events-1b438fe7.js +469 -0
  134. package/dist/cjs/extends-7c86182f.js +87 -0
  135. package/dist/cjs/faundadb.js +406 -1
  136. package/dist/cjs/get-5839e5b5.js +920 -0
  137. package/dist/cjs/getContentCategory-f38a4c00.js +11 -0
  138. package/dist/cjs/getKeywords.js +46 -1
  139. package/dist/cjs/getPtceActivities.js +89 -1
  140. package/dist/cjs/getQuery.js +28 -1
  141. package/dist/cjs/getRelatedArticle.js +542 -1
  142. package/dist/cjs/getRootDocGroup.js +62 -1
  143. package/dist/cjs/getSerializers.js +68 -1
  144. package/dist/cjs/getSeriesDetail.js +40 -1
  145. package/dist/cjs/getTargeting-ba942d9a.js +164 -0
  146. package/dist/cjs/getTargeting.js +13 -1
  147. package/dist/cjs/iconBase-be4097c0.js +104 -0
  148. package/dist/cjs/index-187c967e.js +54 -0
  149. package/dist/cjs/index-19fbbcea.js +10788 -0
  150. package/dist/cjs/index-50be6759.js +105 -0
  151. package/dist/cjs/index-65621b6c.js +613 -0
  152. package/dist/cjs/index-bd6c9f56.js +211 -0
  153. package/dist/cjs/index-d2a6ef75.js +1218 -0
  154. package/dist/cjs/index-d48b231c.js +556 -0
  155. package/dist/cjs/index-f86bb269.js +1571 -0
  156. package/dist/cjs/index.es-1ab8dda7.js +445 -0
  157. package/dist/cjs/index.esm-c1e16606.js +13 -0
  158. package/dist/cjs/index.esm-d51c9ac6.js +25 -0
  159. package/dist/cjs/index.esm-d81454e7.js +19 -0
  160. package/dist/cjs/index.esm-f59ef5b4.js +97 -0
  161. package/dist/cjs/index.js +644 -1
  162. package/dist/cjs/inherits-de66ea16.js +188 -0
  163. package/dist/cjs/isSymbol-03abbdf0.js +209 -0
  164. package/dist/cjs/js.cookie-a511c430.js +160 -0
  165. package/dist/cjs/keys-e982b3fa.js +25 -0
  166. package/dist/cjs/lodash-f0783643.js +17195 -0
  167. package/dist/cjs/main-3643d499.js +973 -0
  168. package/dist/cjs/md5-e1ca5797.js +323 -0
  169. package/dist/cjs/moment-aca40de1.js +5669 -0
  170. package/dist/cjs/react-social-icons-2c5c389a.js +616 -0
  171. package/dist/cjs/slicedToArray-067dd3bc.js +95 -0
  172. package/dist/cjs/smoothscroll-99df7f93.js +438 -0
  173. package/dist/cjs/stringify-f7a37a8d.js +17 -0
  174. package/dist/cjs/style-inject.es-dcee06b6.js +30 -1
  175. package/dist/cjs/timeDifferenceCalc.js +39 -1
  176. package/dist/cjs/toConsumableArray-d7797c2b.js +74 -0
  177. package/dist/cjs/toNumber-5e1fac58.js +104 -0
  178. package/dist/cjs/typeof-1358762e.js +33 -0
  179. package/dist/cjs/typeof-567e31ff.js +382 -0
  180. package/dist/cjs/urlFor.js +65 -1
  181. package/dist/cjs/urlForFile-29d3815a.js +24 -0
  182. package/dist/cjs/ustream-api-3819e4aa.js +106 -0
  183. package/dist/cjs/util-93a37fd0.js +587 -0
  184. package/dist/cjs/visibility-sensor-56020df6.js +597 -0
  185. package/dist/cjs/web.dom.iterable-d98303e0.js +50 -0
  186. package/dist/esm/AD.js +26 -1
  187. package/dist/esm/AD300x250.js +90 -1
  188. package/dist/esm/AD300x250x600.js +107 -1
  189. package/dist/esm/AD728x90.js +104 -1
  190. package/dist/esm/ADFloatingFooter.js +138 -1
  191. package/dist/esm/ADFooter.js +47 -1
  192. package/dist/esm/ADGutter.js +110 -1
  193. package/dist/esm/ADInfeed-5765a73a.js +59 -0
  194. package/dist/esm/ADSkyscraper.js +112 -1
  195. package/dist/esm/ADSponsoredResources.js +109 -1
  196. package/dist/esm/ADWebcast.js +114 -1
  197. package/dist/esm/ADWelcome.js +161 -1
  198. package/dist/esm/ADlgInfeed-5e36f317.js +54 -0
  199. package/dist/esm/AccordionPanel.js +87 -1
  200. package/dist/esm/AdSlot.js +245 -1
  201. package/dist/esm/AdSlotsProvider.js +177 -1
  202. package/dist/esm/AlgoliaSearch.js +14459 -1
  203. package/dist/esm/AlphabeticList.js +129 -1
  204. package/dist/esm/ArticleCarousel.js +40 -1
  205. package/dist/esm/ArticleProgramLandingPage.js +182 -1
  206. package/dist/esm/ArticleSeriesLandingPage.js +157 -1
  207. package/dist/esm/ArticleSeriesListing.js +309 -1
  208. package/dist/esm/Auth.js +3632 -1
  209. package/dist/esm/AuthWrapper.js +1896 -1
  210. package/dist/esm/AuthorComponent-11adff02.js +90 -0
  211. package/dist/esm/Beam.js +348 -1
  212. package/dist/esm/BlockContent-1e73bd2c.js +909 -0
  213. package/dist/esm/Breadcrumbs.js +100 -1
  214. package/dist/esm/CMEDeck.js +442 -1
  215. package/dist/esm/Column1.js +28 -1
  216. package/dist/esm/Column2.js +63 -1
  217. package/dist/esm/Column3.js +133 -1
  218. package/dist/esm/ConferenceArticleCard.js +87 -1
  219. package/dist/esm/ConferenceBanner-8792ebd2.js +18 -0
  220. package/dist/esm/ContentCardPaginated.js +406 -1
  221. package/dist/esm/DeckContent.js +498 -1
  222. package/dist/esm/DeckQueue.js +394 -1
  223. package/dist/esm/DeckQueuePaginated.js +337 -1
  224. package/dist/esm/Dfp-102f0beb.js +97 -0
  225. package/dist/esm/EventsDeck.js +871 -1
  226. package/dist/esm/ExternalResources.js +215 -1
  227. package/dist/esm/Feature.js +122 -1
  228. package/dist/esm/ForbesHero.js +131 -1
  229. package/dist/esm/GridContent.js +819 -1
  230. package/dist/esm/GridContentPaginated.js +693 -1
  231. package/dist/esm/GridHero.js +141 -1
  232. package/dist/esm/GroupDeck.js +308 -1
  233. package/dist/esm/HamMagazine.js +589 -1
  234. package/dist/esm/Header.js +29 -1
  235. package/dist/esm/HealthCareProfessionalModal.js +70 -1
  236. package/dist/esm/Hero.js +42 -1
  237. package/dist/esm/HighlightenVideo.js +63 -1
  238. package/dist/esm/HorizontalArticleListing.js +163 -1
  239. package/dist/esm/HorizontalHero.js +105 -1
  240. package/dist/esm/ImageSlider-f84174cb.js +2804 -0
  241. package/dist/esm/IssueContentDeck.js +231 -1
  242. package/dist/esm/IssueDeck.js +258 -1
  243. package/dist/esm/IssueLanding.js +170 -1
  244. package/dist/esm/KMTracker.js +25 -1
  245. package/dist/esm/LeftNav.js +145 -1
  246. package/dist/esm/MasterDeck.js +549 -1
  247. package/dist/esm/MasterDeckPaginated.js +461 -1
  248. package/dist/esm/MediaSeriesCard-f56c8274.js +75 -0
  249. package/dist/esm/MediaSeriesLanding.js +502 -1
  250. package/dist/esm/MediaSeriesLandingPaginated.js +527 -1
  251. package/dist/esm/NavDvm.js +263 -1
  252. package/dist/esm/NavFooter-3272e9cd.js +65 -0
  253. package/dist/esm/NavMagazine.js +600 -1
  254. package/dist/esm/NavNative.js +864 -1
  255. package/dist/esm/OncliveHero.js +73 -1
  256. package/dist/esm/OncliveLargeHero.js +235 -1
  257. package/dist/esm/PageFilter.js +66 -1
  258. package/dist/esm/Pagination-dc30727b.js +90 -0
  259. package/dist/esm/PartnerDetailListing.js +339 -1
  260. package/dist/esm/PartnerDetailListingPaginated.js +347 -1
  261. package/dist/esm/PdfDownload.js +22 -1
  262. package/dist/esm/PixelTracking.js +156 -1
  263. package/dist/esm/PodcastsLanding.js +229 -1
  264. package/dist/esm/PopUpModal.js +51 -1
  265. package/dist/esm/PtceDeck.js +143 -1
  266. package/dist/esm/PubSection.js +115 -1
  267. package/dist/esm/PubToc.js +81 -1
  268. package/dist/esm/PublicationDeck.js +173 -1
  269. package/dist/esm/PublicationFeature-d88e76b9.js +121 -0
  270. package/dist/esm/PublicationLanding.js +847 -1
  271. package/dist/esm/QueueDeckExpanded.js +1535 -1
  272. package/dist/esm/QueueDeckExpandedPaginated.js +1382 -1
  273. package/dist/esm/RecentNews.js +85 -1
  274. package/dist/esm/RelatedContent.js +108 -1
  275. package/dist/esm/RelatedTopicsDropdown.js +82 -1
  276. package/dist/esm/RolesDeck.js +84 -1
  277. package/dist/esm/Schema.js +97 -1
  278. package/dist/esm/Search.js +57 -1
  279. package/dist/esm/Segment.js +450 -1
  280. package/dist/esm/SeriesListingDeck.js +243 -1
  281. package/dist/esm/SeriesSlider-f771e20d.js +326 -0
  282. package/dist/esm/SetCookie.js +8 -1
  283. package/dist/esm/SideFooter.js +144 -1
  284. package/dist/esm/SocialIcons.js +97 -1
  285. package/dist/esm/SocialSearchComponent-165b4ae7.js +204 -0
  286. package/dist/esm/SocialShare.js +67 -1
  287. package/dist/esm/TaxonomyCard.js +247 -1
  288. package/dist/esm/TaxonomyDescription.js +202 -1
  289. package/dist/esm/TemplateNormal.js +197 -1
  290. package/dist/esm/ThumbnailCard.js +52 -1
  291. package/dist/esm/Tooltip-95655b44.js +9445 -0
  292. package/dist/esm/Ustream.js +150 -1
  293. package/dist/esm/VerticalHero.js +68 -1
  294. package/dist/esm/VideoProgramLandingPage.js +255 -1
  295. package/dist/esm/VideoSeriesCard.js +82 -1
  296. package/dist/esm/VideoSeriesFilter.js +122 -1
  297. package/dist/esm/VideoSeriesLandingPage.js +173 -1
  298. package/dist/esm/VideoSeriesListing.js +416 -1
  299. package/dist/esm/View.js +2689 -1
  300. package/dist/esm/YahooHero.js +120 -1
  301. package/dist/esm/YoutubeGroup.js +365 -1
  302. package/dist/esm/_commonjsHelpers-0c4b6f40.js +19 -0
  303. package/dist/esm/_is-array-8d21b9e3.js +71 -0
  304. package/dist/esm/_iter-detect-98db3b07.js +48 -0
  305. package/dist/esm/_library-528f1934.js +3 -0
  306. package/dist/esm/_object-pie-133f504a.js +13 -0
  307. package/dist/esm/_object-sap-7cee6f84.js +14 -0
  308. package/dist/esm/_object-to-array-2300e51b.js +23 -0
  309. package/dist/esm/asyncToGenerator-958ef5fc.js +1387 -0
  310. package/dist/esm/brightcove-react-player-loader.es-57a70a56.js +2226 -0
  311. package/dist/esm/checkSisterSite-baa4fb6b.js +17 -0
  312. package/dist/esm/core.get-iterator-method-ea258bb1.js +547 -0
  313. package/dist/esm/debounce-533d9748.js +214 -0
  314. package/dist/esm/define-property-5f1bda73.js +18 -0
  315. package/dist/esm/defineProperty-23a8f8cd.js +68 -0
  316. package/dist/esm/entities-6d9154b4.js +507 -0
  317. package/dist/esm/eq-bdcbf886.js +76 -0
  318. package/dist/esm/events-6c3a7a63.js +467 -0
  319. package/dist/esm/extends-6d8e3924.js +83 -0
  320. package/dist/esm/faundadb.js +396 -1
  321. package/dist/esm/get-3c308da4.js +918 -0
  322. package/dist/esm/getContentCategory-15dcc413.js +9 -0
  323. package/dist/esm/getKeywords.js +44 -1
  324. package/dist/esm/getPtceActivities.js +87 -1
  325. package/dist/esm/getQuery.js +26 -1
  326. package/dist/esm/getRelatedArticle.js +540 -1
  327. package/dist/esm/getRootDocGroup.js +60 -1
  328. package/dist/esm/getSerializers.js +62 -1
  329. package/dist/esm/getSeriesDetail.js +38 -1
  330. package/dist/esm/getTargeting-9bd28724.js +161 -0
  331. package/dist/esm/getTargeting.js +7 -1
  332. package/dist/esm/iconBase-ccc56b97.js +81 -0
  333. package/dist/esm/index-3f5c03b2.js +553 -0
  334. package/dist/esm/index-5d8b0a9d.js +10767 -0
  335. package/dist/esm/index-755f2cc2.js +605 -0
  336. package/dist/esm/index-79cfd25c.js +1569 -0
  337. package/dist/esm/index-98ca9cec.js +100 -0
  338. package/dist/esm/index-c7e2ac95.js +52 -0
  339. package/dist/esm/index-db3bb315.js +207 -0
  340. package/dist/esm/index-f0fc23eb.js +1209 -0
  341. package/dist/esm/index.es-a6137319.js +439 -0
  342. package/dist/esm/index.esm-07c37a92.js +90 -0
  343. package/dist/esm/index.esm-1bd8a0a8.js +18 -0
  344. package/dist/esm/index.esm-9b042655.js +10 -0
  345. package/dist/esm/index.esm-eb1e8e80.js +14 -0
  346. package/dist/esm/index.js +537 -1
  347. package/dist/esm/inherits-a6ba2ec4.js +179 -0
  348. package/dist/esm/isSymbol-a7e9aafe.js +203 -0
  349. package/dist/esm/js.cookie-6874175c.js +158 -0
  350. package/dist/esm/keys-31dcdb31.js +23 -0
  351. package/dist/esm/lodash-f97fd99a.js +17193 -0
  352. package/dist/esm/main-1894c974.js +961 -0
  353. package/dist/esm/md5-4e42248e.js +321 -0
  354. package/dist/esm/moment-bc12cb97.js +5667 -0
  355. package/dist/esm/react-social-icons-9be47857.js +609 -0
  356. package/dist/esm/slicedToArray-6ebcbfea.js +92 -0
  357. package/dist/esm/smoothscroll-fa4e3f8c.js +436 -0
  358. package/dist/esm/stringify-2b084bee.js +15 -0
  359. package/dist/esm/style-inject.es-1f59c1d0.js +28 -1
  360. package/dist/esm/timeDifferenceCalc.js +37 -1
  361. package/dist/esm/toConsumableArray-f7074d7c.js +71 -0
  362. package/dist/esm/toNumber-5aeba6e7.js +102 -0
  363. package/dist/esm/typeof-2f07d0e8.js +30 -0
  364. package/dist/esm/typeof-e9fc0c5d.js +378 -0
  365. package/dist/esm/urlFor.js +63 -1
  366. package/dist/esm/urlForFile-b69adffc.js +22 -0
  367. package/dist/esm/ustream-api-d3714624.js +104 -0
  368. package/dist/esm/util-8ed16d48.js +585 -0
  369. package/dist/esm/visibility-sensor-72fd8f8b.js +590 -0
  370. package/dist/esm/web.dom.iterable-ab4dea5c.js +48 -0
  371. package/package.json +23 -24
  372. package/dist/cjs/AD-898996a0.js +0 -1
  373. package/dist/cjs/AD300x250-266996c8.js +0 -1
  374. package/dist/cjs/AD300x250x600-f5ccbeef.js +0 -1
  375. package/dist/cjs/AD728x90-cfaa3590.js +0 -1
  376. package/dist/cjs/ADFloatingFooter-6a82d5a0.js +0 -1
  377. package/dist/cjs/ADFooter-86087810.js +0 -1
  378. package/dist/cjs/ADGutter-c2fafa7d.js +0 -1
  379. package/dist/cjs/ADInfeed-f496a8f6.js +0 -1
  380. package/dist/cjs/ADSkyscraper-dcea8c02.js +0 -1
  381. package/dist/cjs/ADSponsoredResources-b3c41d02.js +0 -1
  382. package/dist/cjs/ADWebcast-cd4cb6eb.js +0 -1
  383. package/dist/cjs/ADWelcome-62c95f83.js +0 -1
  384. package/dist/cjs/ADlgInfeed-01f5ef1b.js +0 -1
  385. package/dist/cjs/AccordionPanel-9a3ea5e9.js +0 -1
  386. package/dist/cjs/AdSlot-d541f28d.js +0 -1
  387. package/dist/cjs/AdSlotsProvider-2e4f7f6f.js +0 -1
  388. package/dist/cjs/AlgoliaSearch-8eab2349.js +0 -1
  389. package/dist/cjs/AlphabeticList-a86a341f.js +0 -1
  390. package/dist/cjs/ArticleCarousel-75b7d666.js +0 -1
  391. package/dist/cjs/ArticleProgramLandingPage-c22f8d23.js +0 -1
  392. package/dist/cjs/ArticleSeriesLandingPage-5225aa96.js +0 -1
  393. package/dist/cjs/ArticleSeriesListing-be79214a.js +0 -1
  394. package/dist/cjs/AuthorComponent-91032070.js +0 -1
  395. package/dist/cjs/Breadcrumbs-ad264db7.js +0 -1
  396. package/dist/cjs/CMEDeck-c58e524e.js +0 -1
  397. package/dist/cjs/Column1-9a0e0262.js +0 -1
  398. package/dist/cjs/Column2-739faed9.js +0 -1
  399. package/dist/cjs/Column3-fa7c056f.js +0 -1
  400. package/dist/cjs/ConferenceArticleCard-4f472e4b.js +0 -1
  401. package/dist/cjs/ConferenceBanner-9fb497af.js +0 -1
  402. package/dist/cjs/ContentCard-94a11e61.js +0 -1
  403. package/dist/cjs/Dfp-6d5370e2.js +0 -1
  404. package/dist/cjs/DropdownButton-469c179c.js +0 -6
  405. package/dist/cjs/Dvm-d7766f28.js +0 -1
  406. package/dist/cjs/EventsDeck-6f4dae1e.js +0 -1
  407. package/dist/cjs/ExternalResources-e965dd3d.js +0 -1
  408. package/dist/cjs/Feature-3cf45f11.js +0 -1
  409. package/dist/cjs/ForbesHero-741e751e.js +0 -1
  410. package/dist/cjs/GridContent-ffe6735d.js +0 -1
  411. package/dist/cjs/GridHero-80338231.js +0 -1
  412. package/dist/cjs/GroupDeck-f3b67f3d.js +0 -1
  413. package/dist/cjs/HamburgerNav-ef1d1832.js +0 -1
  414. package/dist/cjs/Header-268a2cda.js +0 -1
  415. package/dist/cjs/Hero-43574b9d.js +0 -1
  416. package/dist/cjs/HighlightenVideo-20edba55.js +0 -1
  417. package/dist/cjs/HorizontalArticleListing-906f5b20.js +0 -1
  418. package/dist/cjs/HorizontalHero-7911527d.js +0 -1
  419. package/dist/cjs/ImageSlider-1b09bc59.js +0 -1
  420. package/dist/cjs/IssueContentDeck-f79e2c82.js +0 -1
  421. package/dist/cjs/IssueDeck-e41a10eb.js +0 -1
  422. package/dist/cjs/IssueLanding-89e0e42f.js +0 -1
  423. package/dist/cjs/KMTracker-4e1de793.js +0 -1
  424. package/dist/cjs/LeftNav-1f40f0cc.js +0 -1
  425. package/dist/cjs/Magazine-93dc6beb.js +0 -1
  426. package/dist/cjs/MasterDeck-65dd366b.js +0 -1
  427. package/dist/cjs/MediaSeriesCard-8ae50064.js +0 -1
  428. package/dist/cjs/Native-d1a75938.js +0 -1
  429. package/dist/cjs/NavFooter-f905aca3.js +0 -1
  430. package/dist/cjs/Normal-1e9c0fa8.js +0 -1
  431. package/dist/cjs/OncliveHero-3fb41e1f.js +0 -1
  432. package/dist/cjs/OncliveLargeHero-c538ea20.js +0 -1
  433. package/dist/cjs/PageFilter-4bb08c20.js +0 -1
  434. package/dist/cjs/Pagination-825e4903.js +0 -1
  435. package/dist/cjs/PartnerDetailListing-f849c242.js +0 -1
  436. package/dist/cjs/PdfDownload-c99142ff.js +0 -1
  437. package/dist/cjs/PopUpModal-7cc1667b.js +0 -1
  438. package/dist/cjs/PubSection-e962964d.js +0 -1
  439. package/dist/cjs/PubToc-e2ff1533.js +0 -1
  440. package/dist/cjs/PublicationDeck-fd0d582f.js +0 -1
  441. package/dist/cjs/PublicationFeature-00d7d119.js +0 -1
  442. package/dist/cjs/PublicationLanding-a8b90432.js +0 -1
  443. package/dist/cjs/Queue-6872841c.js +0 -1
  444. package/dist/cjs/QueueDeckExpanded-b5dd6cda.js +0 -1
  445. package/dist/cjs/RelatedContent-fa1fdaf1.js +0 -1
  446. package/dist/cjs/RelatedTopicsDropdown-4736b927.js +0 -1
  447. package/dist/cjs/RolesDeck-83cbb45e.js +0 -1
  448. package/dist/cjs/Schema-5c66c5cd.js +0 -1
  449. package/dist/cjs/SeriesSlider-72fde209.js +0 -1
  450. package/dist/cjs/SideFooter-2b3625c9.js +0 -1
  451. package/dist/cjs/SocialIcons-425827d3.js +0 -1
  452. package/dist/cjs/SocialNavFooter-8f053a08.js +0 -1
  453. package/dist/cjs/SocialSearchComponent-3dc5405e.js +0 -1
  454. package/dist/cjs/SocialShare-3d7c8abe.js +0 -1
  455. package/dist/cjs/TaxonomyCard-ca56a7b2.js +0 -1
  456. package/dist/cjs/TaxonomyDescription-becc5cc5.js +0 -1
  457. package/dist/cjs/ThumbnailCard-25c9e37b.js +0 -1
  458. package/dist/cjs/Ustream-e85bed96.js +0 -1
  459. package/dist/cjs/VerticalHero-ef71262f.js +0 -1
  460. package/dist/cjs/VideoProgramLandingPage-bcef4cda.js +0 -1
  461. package/dist/cjs/VideoSeriesFilter-c45505be.js +0 -1
  462. package/dist/cjs/VideoSeriesLandingPage-7e199b48.js +0 -1
  463. package/dist/cjs/VideoSeriesListing-0d8ffc18.js +0 -1
  464. package/dist/cjs/YahooHero-5cce225b.js +0 -1
  465. package/dist/cjs/YoutubeGroup-d36b3e49.js +0 -1
  466. package/dist/cjs/_commonjsHelpers-0a7b82d9.js +0 -1
  467. package/dist/cjs/beam-6940aa8c.js +0 -1
  468. package/dist/cjs/checkSisterSite-d2d62375.js +0 -1
  469. package/dist/cjs/defineProperty-3cad0327.js +0 -1
  470. package/dist/cjs/entities-6106638a.js +0 -1
  471. package/dist/cjs/extends-f8003900.js +0 -1
  472. package/dist/cjs/getContentCategory-ee6d9fdf.js +0 -1
  473. package/dist/cjs/getKeywords-5341ea76.js +0 -1
  474. package/dist/cjs/getPrototypeOf-e5dabebb.js +0 -1
  475. package/dist/cjs/getQuery-154617ad.js +0 -1
  476. package/dist/cjs/getRelatedArticle-1008e957.js +0 -1
  477. package/dist/cjs/getSeriesDetail-e2980903.js +0 -1
  478. package/dist/cjs/getTargeting-3b9a1da0.js +0 -1
  479. package/dist/cjs/index-4c0b6033.js +0 -1
  480. package/dist/cjs/index-6e1fba48.js +0 -1
  481. package/dist/cjs/index-83bcf60c.js +0 -1
  482. package/dist/cjs/index-efb74633.js +0 -1
  483. package/dist/cjs/searchForm-2a06a0a6.js +0 -1
  484. package/dist/cjs/segment-lib-1c52764b.js +0 -1
  485. package/dist/cjs/setCookie-e72f573d.js +0 -1
  486. package/dist/cjs/slicedToArray-e6d9072a.js +0 -1
  487. package/dist/cjs/toConsumableArray-bf649f24.js +0 -1
  488. package/dist/cjs/typeof-5f2c4427.js +0 -1
  489. package/dist/cjs/unsupportedIterableToArray-a6f9513d.js +0 -1
  490. package/dist/cjs/urlFor-ca017581.js +0 -1
  491. package/dist/cjs/urlForFile-266cd07c.js +0 -1
  492. package/dist/cjs/ustream-api-05a918f3.js +0 -1
  493. package/dist/esm/AD-52252475.js +0 -1
  494. package/dist/esm/AD300x250-6ba14878.js +0 -1
  495. package/dist/esm/AD300x250x600-371610a9.js +0 -1
  496. package/dist/esm/AD728x90-22304c6a.js +0 -1
  497. package/dist/esm/ADFloatingFooter-57571461.js +0 -1
  498. package/dist/esm/ADFooter-def97764.js +0 -1
  499. package/dist/esm/ADGutter-05ea5a24.js +0 -1
  500. package/dist/esm/ADInfeed-20197eba.js +0 -1
  501. package/dist/esm/ADSkyscraper-d992d7aa.js +0 -1
  502. package/dist/esm/ADSponsoredResources-169c4989.js +0 -1
  503. package/dist/esm/ADWebcast-aa6c2a84.js +0 -1
  504. package/dist/esm/ADWelcome-be877a73.js +0 -1
  505. package/dist/esm/ADlgInfeed-180f8b7e.js +0 -1
  506. package/dist/esm/AccordionPanel-4c89ec1e.js +0 -1
  507. package/dist/esm/AdSlot-7c2daad3.js +0 -1
  508. package/dist/esm/AdSlotsProvider-565c5169.js +0 -1
  509. package/dist/esm/AlgoliaSearch-a4af9d6e.js +0 -1
  510. package/dist/esm/AlphabeticList-fcf0c93c.js +0 -1
  511. package/dist/esm/ArticleCarousel-62e593d2.js +0 -1
  512. package/dist/esm/ArticleProgramLandingPage-0618efa4.js +0 -1
  513. package/dist/esm/ArticleSeriesLandingPage-764a8206.js +0 -1
  514. package/dist/esm/ArticleSeriesListing-017388bd.js +0 -1
  515. package/dist/esm/AuthorComponent-4bb0a577.js +0 -1
  516. package/dist/esm/Breadcrumbs-11913dcf.js +0 -1
  517. package/dist/esm/CMEDeck-d11e05c6.js +0 -1
  518. package/dist/esm/Column1-3304e0a7.js +0 -1
  519. package/dist/esm/Column2-216e1b74.js +0 -1
  520. package/dist/esm/Column3-0799b8d1.js +0 -1
  521. package/dist/esm/ConferenceArticleCard-c8ebc4c5.js +0 -1
  522. package/dist/esm/ConferenceBanner-8a6f3ed9.js +0 -1
  523. package/dist/esm/ContentCard-b326f8e0.js +0 -1
  524. package/dist/esm/Dfp-5935bfb4.js +0 -1
  525. package/dist/esm/DropdownButton-07c4dfae.js +0 -6
  526. package/dist/esm/Dvm-f67220c0.js +0 -1
  527. package/dist/esm/EventsDeck-f0ffda78.js +0 -1
  528. package/dist/esm/ExternalResources-075e250c.js +0 -1
  529. package/dist/esm/Feature-0c2c0b2d.js +0 -1
  530. package/dist/esm/ForbesHero-ec644354.js +0 -1
  531. package/dist/esm/GridContent-99a1bfc4.js +0 -1
  532. package/dist/esm/GridHero-fd6a363f.js +0 -1
  533. package/dist/esm/GroupDeck-c173accb.js +0 -1
  534. package/dist/esm/HamburgerNav-134f2aa6.js +0 -1
  535. package/dist/esm/Header-b0624adc.js +0 -1
  536. package/dist/esm/Hero-37edbb29.js +0 -1
  537. package/dist/esm/HighlightenVideo-5c3fd0fd.js +0 -1
  538. package/dist/esm/HorizontalArticleListing-820bb4f7.js +0 -1
  539. package/dist/esm/HorizontalHero-7576d927.js +0 -1
  540. package/dist/esm/ImageSlider-a0786266.js +0 -1
  541. package/dist/esm/IssueContentDeck-9d771cc2.js +0 -1
  542. package/dist/esm/IssueDeck-787f939c.js +0 -1
  543. package/dist/esm/IssueLanding-0e46e28d.js +0 -1
  544. package/dist/esm/KMTracker-d9e1c288.js +0 -1
  545. package/dist/esm/LeftNav-b4fa0d0b.js +0 -1
  546. package/dist/esm/Magazine-fb80c07a.js +0 -1
  547. package/dist/esm/MasterDeck-5efbeb73.js +0 -1
  548. package/dist/esm/MediaSeriesCard-18ee909f.js +0 -1
  549. package/dist/esm/Native-41cedb31.js +0 -1
  550. package/dist/esm/NavFooter-83d89acd.js +0 -1
  551. package/dist/esm/Normal-28f50540.js +0 -1
  552. package/dist/esm/OncliveHero-525c9d19.js +0 -1
  553. package/dist/esm/OncliveLargeHero-219b4577.js +0 -1
  554. package/dist/esm/PageFilter-7f97f8ed.js +0 -1
  555. package/dist/esm/Pagination-44c3ff7c.js +0 -1
  556. package/dist/esm/PartnerDetailListing-7ec391ac.js +0 -1
  557. package/dist/esm/PdfDownload-eff648d3.js +0 -1
  558. package/dist/esm/PopUpModal-bf7b6151.js +0 -1
  559. package/dist/esm/PubSection-37b37129.js +0 -1
  560. package/dist/esm/PubToc-af66289b.js +0 -1
  561. package/dist/esm/PublicationDeck-cbef1029.js +0 -1
  562. package/dist/esm/PublicationFeature-13838b92.js +0 -1
  563. package/dist/esm/PublicationLanding-3d724d91.js +0 -1
  564. package/dist/esm/Queue-bb3f3625.js +0 -1
  565. package/dist/esm/QueueDeckExpanded-6af47534.js +0 -1
  566. package/dist/esm/RelatedContent-85ad1d8e.js +0 -1
  567. package/dist/esm/RelatedTopicsDropdown-0cf5829a.js +0 -1
  568. package/dist/esm/RolesDeck-6146633e.js +0 -1
  569. package/dist/esm/Schema-e0d1fc48.js +0 -1
  570. package/dist/esm/SeriesSlider-21d0daf6.js +0 -1
  571. package/dist/esm/SideFooter-2f08df74.js +0 -1
  572. package/dist/esm/SocialIcons-c7861c13.js +0 -1
  573. package/dist/esm/SocialNavFooter-66c6cf3c.js +0 -1
  574. package/dist/esm/SocialSearchComponent-a4fa0609.js +0 -1
  575. package/dist/esm/SocialShare-9cc43665.js +0 -1
  576. package/dist/esm/TaxonomyCard-f7ac379f.js +0 -1
  577. package/dist/esm/TaxonomyDescription-32abd442.js +0 -1
  578. package/dist/esm/ThumbnailCard-8377176b.js +0 -1
  579. package/dist/esm/Ustream-2e9965ac.js +0 -1
  580. package/dist/esm/VerticalHero-5719a7c4.js +0 -1
  581. package/dist/esm/VideoProgramLandingPage-9b20c066.js +0 -1
  582. package/dist/esm/VideoSeriesFilter-2ce9ff0e.js +0 -1
  583. package/dist/esm/VideoSeriesLandingPage-1f6b5f71.js +0 -1
  584. package/dist/esm/VideoSeriesListing-72688d44.js +0 -1
  585. package/dist/esm/YahooHero-96f912cb.js +0 -1
  586. package/dist/esm/YoutubeGroup-fdd46eeb.js +0 -1
  587. package/dist/esm/_commonjsHelpers-57e89916.js +0 -1
  588. package/dist/esm/beam-cf274172.js +0 -1
  589. package/dist/esm/checkSisterSite-20e2bf62.js +0 -1
  590. package/dist/esm/defineProperty-9f9de5d0.js +0 -1
  591. package/dist/esm/entities-c5c3079c.js +0 -1
  592. package/dist/esm/extends-464f0b6e.js +0 -1
  593. package/dist/esm/getContentCategory-f99fdf90.js +0 -1
  594. package/dist/esm/getKeywords-2512775a.js +0 -1
  595. package/dist/esm/getPrototypeOf-5b57bbdd.js +0 -1
  596. package/dist/esm/getQuery-bfc0390c.js +0 -1
  597. package/dist/esm/getRelatedArticle-418087a7.js +0 -1
  598. package/dist/esm/getSeriesDetail-aef9680c.js +0 -1
  599. package/dist/esm/getTargeting-6bf24d0e.js +0 -1
  600. package/dist/esm/index-58183fed.js +0 -1
  601. package/dist/esm/index-663f3f10.js +0 -1
  602. package/dist/esm/index-bfecdbef.js +0 -1
  603. package/dist/esm/index-fcd6d5f7.js +0 -1
  604. package/dist/esm/searchForm-3f3f5af6.js +0 -1
  605. package/dist/esm/segment-lib-563b26a6.js +0 -1
  606. package/dist/esm/setCookie-0f2ab6df.js +0 -1
  607. package/dist/esm/slicedToArray-c92cae3a.js +0 -1
  608. package/dist/esm/toConsumableArray-25e5c43c.js +0 -1
  609. package/dist/esm/typeof-a0b2b621.js +0 -1
  610. package/dist/esm/unsupportedIterableToArray-dc74e326.js +0 -1
  611. package/dist/esm/urlFor-b366f69d.js +0 -1
  612. package/dist/esm/urlForFile-272819a6.js +0 -1
  613. package/dist/esm/ustream-api-7998d140.js +0 -1
@@ -0,0 +1,2232 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var _commonjsHelpers = require('./_commonjsHelpers-06173234.js');
5
+
6
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
+
8
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
9
+
10
+ var slice = Array.prototype.slice;
11
+
12
+ var domWalk = iterativelyWalk;
13
+
14
+ function iterativelyWalk(nodes, cb) {
15
+ if (!('length' in nodes)) {
16
+ nodes = [nodes];
17
+ }
18
+
19
+ nodes = slice.call(nodes);
20
+
21
+ while(nodes.length) {
22
+ var node = nodes.shift(),
23
+ ret = cb(node);
24
+
25
+ if (ret) {
26
+ return ret
27
+ }
28
+
29
+ if (node.childNodes && node.childNodes.length) {
30
+ nodes = slice.call(node.childNodes).concat(nodes);
31
+ }
32
+ }
33
+ }
34
+
35
+ var domComment = Comment;
36
+
37
+ function Comment(data, owner) {
38
+ if (!(this instanceof Comment)) {
39
+ return new Comment(data, owner)
40
+ }
41
+
42
+ this.data = data;
43
+ this.nodeValue = data;
44
+ this.length = data.length;
45
+ this.ownerDocument = owner || null;
46
+ }
47
+
48
+ Comment.prototype.nodeType = 8;
49
+ Comment.prototype.nodeName = "#comment";
50
+
51
+ Comment.prototype.toString = function _Comment_toString() {
52
+ return "[object Comment]"
53
+ };
54
+
55
+ var domText = DOMText;
56
+
57
+ function DOMText(value, owner) {
58
+ if (!(this instanceof DOMText)) {
59
+ return new DOMText(value)
60
+ }
61
+
62
+ this.data = value || "";
63
+ this.length = this.data.length;
64
+ this.ownerDocument = owner || null;
65
+ }
66
+
67
+ DOMText.prototype.type = "DOMTextNode";
68
+ DOMText.prototype.nodeType = 3;
69
+ DOMText.prototype.nodeName = "#text";
70
+
71
+ DOMText.prototype.toString = function _Text_toString() {
72
+ return this.data
73
+ };
74
+
75
+ DOMText.prototype.replaceData = function replaceData(index, length, value) {
76
+ var current = this.data;
77
+ var left = current.substring(0, index);
78
+ var right = current.substring(index + length, current.length);
79
+ this.data = left + value + right;
80
+ this.length = this.data.length;
81
+ };
82
+
83
+ var dispatchEvent_1 = dispatchEvent;
84
+
85
+ function dispatchEvent(ev) {
86
+ var elem = this;
87
+ var type = ev.type;
88
+
89
+ if (!ev.target) {
90
+ ev.target = elem;
91
+ }
92
+
93
+ if (!elem.listeners) {
94
+ elem.listeners = {};
95
+ }
96
+
97
+ var listeners = elem.listeners[type];
98
+
99
+ if (listeners) {
100
+ return listeners.forEach(function (listener) {
101
+ ev.currentTarget = elem;
102
+ if (typeof listener === 'function') {
103
+ listener(ev);
104
+ } else {
105
+ listener.handleEvent(ev);
106
+ }
107
+ })
108
+ }
109
+
110
+ if (elem.parentNode) {
111
+ elem.parentNode.dispatchEvent(ev);
112
+ }
113
+ }
114
+
115
+ var addEventListener_1 = addEventListener;
116
+
117
+ function addEventListener(type, listener) {
118
+ var elem = this;
119
+
120
+ if (!elem.listeners) {
121
+ elem.listeners = {};
122
+ }
123
+
124
+ if (!elem.listeners[type]) {
125
+ elem.listeners[type] = [];
126
+ }
127
+
128
+ if (elem.listeners[type].indexOf(listener) === -1) {
129
+ elem.listeners[type].push(listener);
130
+ }
131
+ }
132
+
133
+ var removeEventListener_1 = removeEventListener;
134
+
135
+ function removeEventListener(type, listener) {
136
+ var elem = this;
137
+
138
+ if (!elem.listeners) {
139
+ return
140
+ }
141
+
142
+ if (!elem.listeners[type]) {
143
+ return
144
+ }
145
+
146
+ var list = elem.listeners[type];
147
+ var index = list.indexOf(listener);
148
+ if (index !== -1) {
149
+ list.splice(index, 1);
150
+ }
151
+ }
152
+
153
+ var serialize = serializeNode;
154
+
155
+ var voidElements = ["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"];
156
+
157
+ function serializeNode(node) {
158
+ switch (node.nodeType) {
159
+ case 3:
160
+ return escapeText(node.data)
161
+ case 8:
162
+ return "<!--" + node.data + "-->"
163
+ default:
164
+ return serializeElement(node)
165
+ }
166
+ }
167
+
168
+ function serializeElement(elem) {
169
+ var strings = [];
170
+
171
+ var tagname = elem.tagName;
172
+
173
+ if (elem.namespaceURI === "http://www.w3.org/1999/xhtml") {
174
+ tagname = tagname.toLowerCase();
175
+ }
176
+
177
+ strings.push("<" + tagname + properties(elem) + datasetify(elem));
178
+
179
+ if (voidElements.indexOf(tagname) > -1) {
180
+ strings.push(" />");
181
+ } else {
182
+ strings.push(">");
183
+
184
+ if (elem.childNodes.length) {
185
+ strings.push.apply(strings, elem.childNodes.map(serializeNode));
186
+ } else if (elem.textContent || elem.innerText) {
187
+ strings.push(escapeText(elem.textContent || elem.innerText));
188
+ } else if (elem.innerHTML) {
189
+ strings.push(elem.innerHTML);
190
+ }
191
+
192
+ strings.push("</" + tagname + ">");
193
+ }
194
+
195
+ return strings.join("")
196
+ }
197
+
198
+ function isProperty(elem, key) {
199
+ var type = typeof elem[key];
200
+
201
+ if (key === "style" && Object.keys(elem.style).length > 0) {
202
+ return true
203
+ }
204
+
205
+ return elem.hasOwnProperty(key) &&
206
+ (type === "string" || type === "boolean" || type === "number") &&
207
+ key !== "nodeName" && key !== "className" && key !== "tagName" &&
208
+ key !== "textContent" && key !== "innerText" && key !== "namespaceURI" && key !== "innerHTML"
209
+ }
210
+
211
+ function stylify(styles) {
212
+ if (typeof styles === 'string') return styles
213
+ var attr = "";
214
+ Object.keys(styles).forEach(function (key) {
215
+ var value = styles[key];
216
+ key = key.replace(/[A-Z]/g, function(c) {
217
+ return "-" + c.toLowerCase();
218
+ });
219
+ attr += key + ":" + value + ";";
220
+ });
221
+ return attr
222
+ }
223
+
224
+ function datasetify(elem) {
225
+ var ds = elem.dataset;
226
+ var props = [];
227
+
228
+ for (var key in ds) {
229
+ props.push({ name: "data-" + key, value: ds[key] });
230
+ }
231
+
232
+ return props.length ? stringify(props) : ""
233
+ }
234
+
235
+ function stringify(list) {
236
+ var attributes = [];
237
+ list.forEach(function (tuple) {
238
+ var name = tuple.name;
239
+ var value = tuple.value;
240
+
241
+ if (name === "style") {
242
+ value = stylify(value);
243
+ }
244
+
245
+ attributes.push(name + "=" + "\"" + escapeAttributeValue(value) + "\"");
246
+ });
247
+
248
+ return attributes.length ? " " + attributes.join(" ") : ""
249
+ }
250
+
251
+ function properties(elem) {
252
+ var props = [];
253
+ for (var key in elem) {
254
+ if (isProperty(elem, key)) {
255
+ props.push({ name: key, value: elem[key] });
256
+ }
257
+ }
258
+
259
+ for (var ns in elem._attributes) {
260
+ for (var attribute in elem._attributes[ns]) {
261
+ var prop = elem._attributes[ns][attribute];
262
+ var name = (prop.prefix ? prop.prefix + ":" : "") + attribute;
263
+ props.push({ name: name, value: prop.value });
264
+ }
265
+ }
266
+
267
+ if (elem.className) {
268
+ props.push({ name: "class", value: elem.className });
269
+ }
270
+
271
+ return props.length ? stringify(props) : ""
272
+ }
273
+
274
+ function escapeText(s) {
275
+ var str = '';
276
+
277
+ if (typeof(s) === 'string') {
278
+ str = s;
279
+ } else if (s) {
280
+ str = s.toString();
281
+ }
282
+
283
+ return str
284
+ .replace(/&/g, "&amp;")
285
+ .replace(/</g, "&lt;")
286
+ .replace(/>/g, "&gt;")
287
+ }
288
+
289
+ function escapeAttributeValue(str) {
290
+ return escapeText(str).replace(/"/g, "&quot;")
291
+ }
292
+
293
+ var htmlns = "http://www.w3.org/1999/xhtml";
294
+
295
+ var domElement = DOMElement;
296
+
297
+ function DOMElement(tagName, owner, namespace) {
298
+ if (!(this instanceof DOMElement)) {
299
+ return new DOMElement(tagName)
300
+ }
301
+
302
+ var ns = namespace === undefined ? htmlns : (namespace || null);
303
+
304
+ this.tagName = ns === htmlns ? String(tagName).toUpperCase() : tagName;
305
+ this.nodeName = this.tagName;
306
+ this.className = "";
307
+ this.dataset = {};
308
+ this.childNodes = [];
309
+ this.parentNode = null;
310
+ this.style = {};
311
+ this.ownerDocument = owner || null;
312
+ this.namespaceURI = ns;
313
+ this._attributes = {};
314
+
315
+ if (this.tagName === 'INPUT') {
316
+ this.type = 'text';
317
+ }
318
+ }
319
+
320
+ DOMElement.prototype.type = "DOMElement";
321
+ DOMElement.prototype.nodeType = 1;
322
+
323
+ DOMElement.prototype.appendChild = function _Element_appendChild(child) {
324
+ if (child.parentNode) {
325
+ child.parentNode.removeChild(child);
326
+ }
327
+
328
+ this.childNodes.push(child);
329
+ child.parentNode = this;
330
+
331
+ return child
332
+ };
333
+
334
+ DOMElement.prototype.replaceChild =
335
+ function _Element_replaceChild(elem, needle) {
336
+ // TODO: Throw NotFoundError if needle.parentNode !== this
337
+
338
+ if (elem.parentNode) {
339
+ elem.parentNode.removeChild(elem);
340
+ }
341
+
342
+ var index = this.childNodes.indexOf(needle);
343
+
344
+ needle.parentNode = null;
345
+ this.childNodes[index] = elem;
346
+ elem.parentNode = this;
347
+
348
+ return needle
349
+ };
350
+
351
+ DOMElement.prototype.removeChild = function _Element_removeChild(elem) {
352
+ // TODO: Throw NotFoundError if elem.parentNode !== this
353
+
354
+ var index = this.childNodes.indexOf(elem);
355
+ this.childNodes.splice(index, 1);
356
+
357
+ elem.parentNode = null;
358
+ return elem
359
+ };
360
+
361
+ DOMElement.prototype.insertBefore =
362
+ function _Element_insertBefore(elem, needle) {
363
+ // TODO: Throw NotFoundError if referenceElement is a dom node
364
+ // and parentNode !== this
365
+
366
+ if (elem.parentNode) {
367
+ elem.parentNode.removeChild(elem);
368
+ }
369
+
370
+ var index = needle === null || needle === undefined ?
371
+ -1 :
372
+ this.childNodes.indexOf(needle);
373
+
374
+ if (index > -1) {
375
+ this.childNodes.splice(index, 0, elem);
376
+ } else {
377
+ this.childNodes.push(elem);
378
+ }
379
+
380
+ elem.parentNode = this;
381
+ return elem
382
+ };
383
+
384
+ DOMElement.prototype.setAttributeNS =
385
+ function _Element_setAttributeNS(namespace, name, value) {
386
+ var prefix = null;
387
+ var localName = name;
388
+ var colonPosition = name.indexOf(":");
389
+ if (colonPosition > -1) {
390
+ prefix = name.substr(0, colonPosition);
391
+ localName = name.substr(colonPosition + 1);
392
+ }
393
+ if (this.tagName === 'INPUT' && name === 'type') {
394
+ this.type = value;
395
+ }
396
+ else {
397
+ var attributes = this._attributes[namespace] || (this._attributes[namespace] = {});
398
+ attributes[localName] = {value: value, prefix: prefix};
399
+ }
400
+ };
401
+
402
+ DOMElement.prototype.getAttributeNS =
403
+ function _Element_getAttributeNS(namespace, name) {
404
+ var attributes = this._attributes[namespace];
405
+ var value = attributes && attributes[name] && attributes[name].value;
406
+ if (this.tagName === 'INPUT' && name === 'type') {
407
+ return this.type;
408
+ }
409
+ if (typeof value !== "string") {
410
+ return null
411
+ }
412
+ return value
413
+ };
414
+
415
+ DOMElement.prototype.removeAttributeNS =
416
+ function _Element_removeAttributeNS(namespace, name) {
417
+ var attributes = this._attributes[namespace];
418
+ if (attributes) {
419
+ delete attributes[name];
420
+ }
421
+ };
422
+
423
+ DOMElement.prototype.hasAttributeNS =
424
+ function _Element_hasAttributeNS(namespace, name) {
425
+ var attributes = this._attributes[namespace];
426
+ return !!attributes && name in attributes;
427
+ };
428
+
429
+ DOMElement.prototype.setAttribute = function _Element_setAttribute(name, value) {
430
+ return this.setAttributeNS(null, name, value)
431
+ };
432
+
433
+ DOMElement.prototype.getAttribute = function _Element_getAttribute(name) {
434
+ return this.getAttributeNS(null, name)
435
+ };
436
+
437
+ DOMElement.prototype.removeAttribute = function _Element_removeAttribute(name) {
438
+ return this.removeAttributeNS(null, name)
439
+ };
440
+
441
+ DOMElement.prototype.hasAttribute = function _Element_hasAttribute(name) {
442
+ return this.hasAttributeNS(null, name)
443
+ };
444
+
445
+ DOMElement.prototype.removeEventListener = removeEventListener_1;
446
+ DOMElement.prototype.addEventListener = addEventListener_1;
447
+ DOMElement.prototype.dispatchEvent = dispatchEvent_1;
448
+
449
+ // Un-implemented
450
+ DOMElement.prototype.focus = function _Element_focus() {
451
+ return void 0
452
+ };
453
+
454
+ DOMElement.prototype.toString = function _Element_toString() {
455
+ return serialize(this)
456
+ };
457
+
458
+ DOMElement.prototype.getElementsByClassName = function _Element_getElementsByClassName(classNames) {
459
+ var classes = classNames.split(" ");
460
+ var elems = [];
461
+
462
+ domWalk(this, function (node) {
463
+ if (node.nodeType === 1) {
464
+ var nodeClassName = node.className || "";
465
+ var nodeClasses = nodeClassName.split(" ");
466
+
467
+ if (classes.every(function (item) {
468
+ return nodeClasses.indexOf(item) !== -1
469
+ })) {
470
+ elems.push(node);
471
+ }
472
+ }
473
+ });
474
+
475
+ return elems
476
+ };
477
+
478
+ DOMElement.prototype.getElementsByTagName = function _Element_getElementsByTagName(tagName) {
479
+ tagName = tagName.toLowerCase();
480
+ var elems = [];
481
+
482
+ domWalk(this.childNodes, function (node) {
483
+ if (node.nodeType === 1 && (tagName === '*' || node.tagName.toLowerCase() === tagName)) {
484
+ elems.push(node);
485
+ }
486
+ });
487
+
488
+ return elems
489
+ };
490
+
491
+ DOMElement.prototype.contains = function _Element_contains(element) {
492
+ return domWalk(this, function (node) {
493
+ return element === node
494
+ }) || false
495
+ };
496
+
497
+ var domFragment = DocumentFragment;
498
+
499
+ function DocumentFragment(owner) {
500
+ if (!(this instanceof DocumentFragment)) {
501
+ return new DocumentFragment()
502
+ }
503
+
504
+ this.childNodes = [];
505
+ this.parentNode = null;
506
+ this.ownerDocument = owner || null;
507
+ }
508
+
509
+ DocumentFragment.prototype.type = "DocumentFragment";
510
+ DocumentFragment.prototype.nodeType = 11;
511
+ DocumentFragment.prototype.nodeName = "#document-fragment";
512
+
513
+ DocumentFragment.prototype.appendChild = domElement.prototype.appendChild;
514
+ DocumentFragment.prototype.replaceChild = domElement.prototype.replaceChild;
515
+ DocumentFragment.prototype.removeChild = domElement.prototype.removeChild;
516
+
517
+ DocumentFragment.prototype.toString =
518
+ function _DocumentFragment_toString() {
519
+ return this.childNodes.map(function (node) {
520
+ return String(node)
521
+ }).join("")
522
+ };
523
+
524
+ var event = Event;
525
+
526
+ function Event(family) {}
527
+
528
+ Event.prototype.initEvent = function _Event_initEvent(type, bubbles, cancelable) {
529
+ this.type = type;
530
+ this.bubbles = bubbles;
531
+ this.cancelable = cancelable;
532
+ };
533
+
534
+ Event.prototype.preventDefault = function _Event_preventDefault() {
535
+
536
+ };
537
+
538
+ var document$1 = Document;
539
+
540
+ function Document() {
541
+ if (!(this instanceof Document)) {
542
+ return new Document();
543
+ }
544
+
545
+ this.head = this.createElement("head");
546
+ this.body = this.createElement("body");
547
+ this.documentElement = this.createElement("html");
548
+ this.documentElement.appendChild(this.head);
549
+ this.documentElement.appendChild(this.body);
550
+ this.childNodes = [this.documentElement];
551
+ this.nodeType = 9;
552
+ }
553
+
554
+ var proto = Document.prototype;
555
+ proto.createTextNode = function createTextNode(value) {
556
+ return new domText(value, this)
557
+ };
558
+
559
+ proto.createElementNS = function createElementNS(namespace, tagName) {
560
+ var ns = namespace === null ? null : String(namespace);
561
+ return new domElement(tagName, this, ns)
562
+ };
563
+
564
+ proto.createElement = function createElement(tagName) {
565
+ return new domElement(tagName, this)
566
+ };
567
+
568
+ proto.createDocumentFragment = function createDocumentFragment() {
569
+ return new domFragment(this)
570
+ };
571
+
572
+ proto.createEvent = function createEvent(family) {
573
+ return new event(family)
574
+ };
575
+
576
+ proto.createComment = function createComment(data) {
577
+ return new domComment(data, this)
578
+ };
579
+
580
+ proto.getElementById = function getElementById(id) {
581
+ id = String(id);
582
+
583
+ var result = domWalk(this.childNodes, function (node) {
584
+ if (String(node.id) === id) {
585
+ return node
586
+ }
587
+ });
588
+
589
+ return result || null
590
+ };
591
+
592
+ proto.getElementsByClassName = domElement.prototype.getElementsByClassName;
593
+ proto.getElementsByTagName = domElement.prototype.getElementsByTagName;
594
+ proto.contains = domElement.prototype.contains;
595
+
596
+ proto.removeEventListener = removeEventListener_1;
597
+ proto.addEventListener = addEventListener_1;
598
+ proto.dispatchEvent = dispatchEvent_1;
599
+
600
+ var minDocument = new document$1();
601
+
602
+ var topLevel = typeof _commonjsHelpers.commonjsGlobal !== 'undefined' ? _commonjsHelpers.commonjsGlobal :
603
+ typeof window !== 'undefined' ? window : {};
604
+
605
+
606
+ var doccy;
607
+
608
+ if (typeof document !== 'undefined') {
609
+ doccy = document;
610
+ } else {
611
+ doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];
612
+
613
+ if (!doccy) {
614
+ doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDocument;
615
+ }
616
+ }
617
+
618
+ var document_1 = doccy;
619
+
620
+ var win;
621
+
622
+ if (typeof window !== "undefined") {
623
+ win = window;
624
+ } else if (typeof _commonjsHelpers.commonjsGlobal !== "undefined") {
625
+ win = _commonjsHelpers.commonjsGlobal;
626
+ } else if (typeof self !== "undefined"){
627
+ win = self;
628
+ } else {
629
+ win = {};
630
+ }
631
+
632
+ var window_1 = win;
633
+
634
+ /*! @name @brightcove/react-player-loader @version 1.4.1 @license Apache-2.0 */
635
+
636
+ function _extends() {
637
+ _extends = Object.assign || function (target) {
638
+ for (var i = 1; i < arguments.length; i++) {
639
+ var source = arguments[i];
640
+
641
+ for (var key in source) {
642
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
643
+ target[key] = source[key];
644
+ }
645
+ }
646
+ }
647
+
648
+ return target;
649
+ };
650
+
651
+ return _extends.apply(this, arguments);
652
+ }
653
+
654
+ function _inheritsLoose(subClass, superClass) {
655
+ subClass.prototype = Object.create(superClass.prototype);
656
+ subClass.prototype.constructor = subClass;
657
+ subClass.__proto__ = superClass;
658
+ }
659
+
660
+ function _assertThisInitialized(self) {
661
+ if (self === void 0) {
662
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
663
+ }
664
+
665
+ return self;
666
+ }
667
+
668
+ /*! @name @brightcove/player-loader @version 1.8.0 @license Apache-2.0 */
669
+
670
+ function _extends$1() {
671
+ _extends$1 = Object.assign || function (target) {
672
+ for (var i = 1; i < arguments.length; i++) {
673
+ var source = arguments[i];
674
+
675
+ for (var key in source) {
676
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
677
+ target[key] = source[key];
678
+ }
679
+ }
680
+ }
681
+
682
+ return target;
683
+ };
684
+
685
+ return _extends$1.apply(this, arguments);
686
+ }
687
+
688
+ var version = "1.8.0";
689
+
690
+ /*! @name @brightcove/player-url @version 1.2.0 @license Apache-2.0 */
691
+ var version$1 = "1.2.0";
692
+
693
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
694
+ return typeof obj;
695
+ } : function (obj) {
696
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
697
+ };
698
+
699
+ // The parameters that may include JSON.
700
+ var JSON_ALLOWED_PARAMS = ['catalogSearch', 'catalogSequence'];
701
+
702
+ // The parameters that may be set as query string parameters for iframes.
703
+ var IFRAME_ALLOWED_QUERY_PARAMS = ['adConfigId', 'applicationId', 'catalogSearch', 'catalogSequence', 'playlistId', 'playlistVideoId', 'videoId'];
704
+
705
+ /**
706
+ * Gets the value of a parameter and encodes it as a string.
707
+ *
708
+ * For certain keys, JSON is allowed and will be encoded.
709
+ *
710
+ * @private
711
+ * @param {Object} params
712
+ * A parameters object. See README for details.
713
+ *
714
+ * @param {string} key
715
+ * The key in the params object.
716
+ *
717
+ * @return {string|undefined}
718
+ * The encoded value - or `undefined` if none.
719
+ */
720
+ var getQueryParamValue = function getQueryParamValue(params, key) {
721
+
722
+ if (!params || params[key] === undefined) {
723
+ return;
724
+ }
725
+
726
+ // If it's not a string, such as with a catalog search or sequence, we
727
+ // try to encode it as JSON.
728
+ if (typeof params[key] !== 'string' && JSON_ALLOWED_PARAMS.indexOf(key) !== -1) {
729
+ try {
730
+ return encodeURIComponent(JSON.stringify(params[key]));
731
+ } catch (x) {
732
+
733
+ // If it's not a string and we can't encode as JSON, it's ignored entirely.
734
+ return;
735
+ }
736
+ }
737
+
738
+ return encodeURIComponent(String(params[key]).trim()) || undefined;
739
+ };
740
+
741
+ /**
742
+ * In some cases, we need to add query string parameters to an iframe URL.
743
+ *
744
+ * @private
745
+ * @param {Object} params
746
+ * An object of query parameters.
747
+ *
748
+ * @return {string}
749
+ * A query string starting with `?`. If no valid parameters are given,
750
+ * returns an empty string.
751
+ */
752
+ var getQueryString = function getQueryString(params) {
753
+ return Object.keys(params).filter(function (k) {
754
+ return IFRAME_ALLOWED_QUERY_PARAMS.indexOf(k) !== -1;
755
+ }).reduce(function (qs, k) {
756
+ var value = getQueryParamValue(params, k);
757
+
758
+ if (value !== undefined) {
759
+ qs += qs ? '&' : '?';
760
+ qs += encodeURIComponent(k) + '=' + value;
761
+ }
762
+
763
+ return qs;
764
+ }, '');
765
+ };
766
+
767
+ /**
768
+ * Generate a URL to a Brightcove Player.
769
+ *
770
+ * @param {Object} params
771
+ * A set of parameters describing the player URL to create.
772
+ *
773
+ * @param {string} params.accountId
774
+ * A Brightcove account ID.
775
+ *
776
+ * @param {string} [params.playerId="default"]
777
+ * A Brightcove player ID.
778
+ *
779
+ * @param {string} [params.embedId="default"]
780
+ * A Brightcove player embed ID.
781
+ *
782
+ * @param {boolean} [params.iframe=false]
783
+ * Whether to return a URL for an HTML document to be embedded in
784
+ * an iframe.
785
+ *
786
+ * @param {boolean} [params.minified=true]
787
+ * When the `iframe` argument is `false`, this can be used to control
788
+ * whether the minified or unminified JavaScript URL is returned.
789
+ *
790
+ * @param {string} [params.base="https://players.brightcove.net"]
791
+ * A base CDN protocol and hostname. Mainly used for testing.
792
+ *
793
+ * @return {string}
794
+ * A URL to a Brightcove Player.
795
+ */
796
+ var brightcovePlayerUrl = function brightcovePlayerUrl(_ref) {
797
+ var accountId = _ref.accountId,
798
+ _ref$base = _ref.base,
799
+ base = _ref$base === undefined ? 'https://players.brightcove.net' : _ref$base,
800
+ _ref$playerId = _ref.playerId,
801
+ playerId = _ref$playerId === undefined ? 'default' : _ref$playerId,
802
+ _ref$embedId = _ref.embedId,
803
+ embedId = _ref$embedId === undefined ? 'default' : _ref$embedId,
804
+ _ref$iframe = _ref.iframe,
805
+ iframe = _ref$iframe === undefined ? false : _ref$iframe,
806
+ _ref$minified = _ref.minified,
807
+ minified = _ref$minified === undefined ? true : _ref$minified,
808
+ _ref$queryParams = _ref.queryParams,
809
+ queryParams = _ref$queryParams === undefined ? null : _ref$queryParams;
810
+
811
+ var ext = '';
812
+
813
+ if (iframe) {
814
+ ext += 'html';
815
+ } else {
816
+ if (minified) {
817
+ ext += 'min.';
818
+ }
819
+ ext += 'js';
820
+ }
821
+
822
+ if (base.charAt(base.length - 1) === '/') {
823
+ base = base.substring(0, base.length - 1);
824
+ }
825
+
826
+ var qs = '';
827
+
828
+ if (iframe && queryParams && (typeof queryParams === 'undefined' ? 'undefined' : _typeof(queryParams)) === 'object') {
829
+ qs = getQueryString(queryParams);
830
+ }
831
+
832
+ accountId = encodeURIComponent(accountId);
833
+ playerId = encodeURIComponent(playerId);
834
+ embedId = encodeURIComponent(embedId);
835
+
836
+ return base + '/' + accountId + '/' + playerId + '_' + embedId + '/index.' + ext + qs;
837
+ };
838
+
839
+ /**
840
+ * The version of this module.
841
+ *
842
+ * @type {string}
843
+ */
844
+ brightcovePlayerUrl.VERSION = version$1;
845
+
846
+ var DEFAULTS = {
847
+ embedId: 'default',
848
+ embedType: 'in-page',
849
+ playerId: 'default',
850
+ Promise: window_1.Promise,
851
+ refNodeInsert: 'append'
852
+ };
853
+ var DEFAULT_ASPECT_RATIO = '16:9';
854
+ var DEFAULT_IFRAME_HORIZONTAL_PLAYLIST = false;
855
+ var DEFAULT_MAX_WIDTH = '100%';
856
+ var EMBED_TAG_NAME_VIDEO = 'video';
857
+ var EMBED_TAG_NAME_VIDEOJS = 'video-js';
858
+ var EMBED_TYPE_IN_PAGE = 'in-page';
859
+ var EMBED_TYPE_IFRAME = 'iframe';
860
+ var REF_NODE_INSERT_APPEND = 'append';
861
+ var REF_NODE_INSERT_PREPEND = 'prepend';
862
+ var REF_NODE_INSERT_BEFORE = 'before';
863
+ var REF_NODE_INSERT_AFTER = 'after';
864
+ var REF_NODE_INSERT_REPLACE = 'replace';
865
+ var JSON_ALLOWED_ATTRS = ['catalogSearch', 'catalogSequence'];
866
+
867
+ var BASE_URL = 'https://players.brightcove.net/';
868
+ /**
869
+ * Gets the URL to a player on CDN.
870
+ *
871
+ * @private
872
+ * @param {Object} params
873
+ * A parameters object. See README for details.
874
+ *
875
+ * @return {string}
876
+ * A URL.
877
+ */
878
+
879
+ var getUrl = function getUrl(params) {
880
+ if (params.playerUrl) {
881
+ return params.playerUrl;
882
+ }
883
+
884
+ var accountId = params.accountId,
885
+ playerId = params.playerId,
886
+ embedId = params.embedId,
887
+ embedOptions = params.embedOptions;
888
+ var iframe = params.embedType === EMBED_TYPE_IFRAME;
889
+ return brightcovePlayerUrl({
890
+ accountId: accountId,
891
+ playerId: playerId,
892
+ embedId: embedId,
893
+ iframe: iframe,
894
+ base: BASE_URL,
895
+ // The unminified embed option is the exact reverse of the minified option
896
+ // here.
897
+ minified: embedOptions ? !embedOptions.unminified : true,
898
+ // Pass the entire params object as query params. This is safe because
899
+ // @brightcove/player-url only accepts a whitelist of parameters. Anything
900
+ // else will be ignored.
901
+ queryParams: params
902
+ });
903
+ };
904
+ /**
905
+ * Function used to get the base URL - primarily for testing.
906
+ *
907
+ * @private
908
+ * @return {string}
909
+ * The current base URL.
910
+ */
911
+
912
+
913
+ var getBaseUrl = function getBaseUrl() {
914
+ return BASE_URL;
915
+ };
916
+ /**
917
+ * Function used to set the base URL - primarily for testing.
918
+ *
919
+ * @private
920
+ * @param {string} baseUrl
921
+ * A new base URL (instead of Brightcove CDN).
922
+ */
923
+
924
+
925
+ var setBaseUrl = function setBaseUrl(baseUrl) {
926
+ BASE_URL = baseUrl;
927
+ };
928
+
929
+ var urls = {
930
+ getUrl: getUrl,
931
+ getBaseUrl: getBaseUrl,
932
+ setBaseUrl: setBaseUrl
933
+ };
934
+
935
+ /**
936
+ * Is this value an element?
937
+ *
938
+ * @param {Element} el
939
+ * A maybe element.
940
+ *
941
+ * @return {boolean}
942
+ * Whether or not the value is a element.
943
+ */
944
+
945
+ var isEl = function isEl(el) {
946
+ return Boolean(el && el.nodeType === 1);
947
+ };
948
+ /**
949
+ * Is this value an element with a parent node?
950
+ *
951
+ * @param {Element} el
952
+ * A maybe element.
953
+ *
954
+ * @return {boolean}
955
+ * Whether or not the value is a element with a parent node.
956
+ */
957
+
958
+
959
+ var isElInDom = function isElInDom(el) {
960
+ return Boolean(isEl(el) && el.parentNode);
961
+ };
962
+ /**
963
+ * Creates an iframe embed code.
964
+ *
965
+ * @private
966
+ * @param {Object} params
967
+ * A parameters object. See README for details.
968
+ *
969
+ * @return {Element}
970
+ * The DOM element that will ultimately be passed to the `bc()` function.
971
+ */
972
+
973
+
974
+ var createIframeEmbed = function createIframeEmbed(params) {
975
+ var el = document_1.createElement('iframe');
976
+ el.setAttribute('allow', 'autoplay;encrypted-media;fullscreen');
977
+ el.setAttribute('allowfullscreen', 'allowfullscreen');
978
+ el.src = urls.getUrl(params);
979
+ return el;
980
+ };
981
+ /**
982
+ * Creates an in-page embed code.
983
+ *
984
+ * @private
985
+ * @param {Object} params
986
+ * A parameters object. See README for details.
987
+ *
988
+ * @return {Element}
989
+ * The DOM element that will ultimately be passed to the `bc()` function.
990
+ */
991
+
992
+
993
+ var createInPageEmbed = function createInPageEmbed(params) {
994
+ var embedOptions = params.embedOptions; // We DO NOT include the data-account, data-player, or data-embed attributes
995
+ // here because we will be manually initializing the player.
996
+
997
+ var paramsToAttrs = {
998
+ adConfigId: 'data-ad-config-id',
999
+ applicationId: 'data-application-id',
1000
+ catalogSearch: 'data-catalog-search',
1001
+ catalogSequence: 'data-catalog-sequence',
1002
+ deliveryConfigId: 'data-delivery-config-id',
1003
+ playlistId: 'data-playlist-id',
1004
+ playlistVideoId: 'data-playlist-video-id',
1005
+ poster: 'poster',
1006
+ videoId: 'data-video-id'
1007
+ };
1008
+ var tagName = embedOptions && embedOptions.tagName || EMBED_TAG_NAME_VIDEOJS;
1009
+ var el = document_1.createElement(tagName);
1010
+ Object.keys(paramsToAttrs).filter(function (key) {
1011
+ return params[key];
1012
+ }).forEach(function (key) {
1013
+ var value; // If it's not a string, such as with a catalog search or sequence, we
1014
+ // try to encode it as JSON.
1015
+
1016
+ if (typeof params[key] !== 'string' && JSON_ALLOWED_ATTRS.indexOf(key) !== -1) {
1017
+ try {
1018
+ value = JSON.stringify(params[key]); // If it fails, don't set anything.
1019
+ } catch (x) {
1020
+ return;
1021
+ }
1022
+ } else {
1023
+ value = String(params[key]).trim();
1024
+ }
1025
+
1026
+ el.setAttribute(paramsToAttrs[key], value);
1027
+ });
1028
+ el.setAttribute('controls', 'controls');
1029
+ el.classList.add('video-js');
1030
+ return el;
1031
+ };
1032
+ /**
1033
+ * Wraps an element in responsive intrinsic ratio elements.
1034
+ *
1035
+ * @private
1036
+ * @param {string} embedType
1037
+ * The type of the embed.
1038
+ *
1039
+ * @param {Object} embedOptions
1040
+ * Embed options from the params.
1041
+ *
1042
+ * @param {Element} el
1043
+ * The DOM element.
1044
+ *
1045
+ * @return {Element}
1046
+ * A new element (if needed).
1047
+ */
1048
+
1049
+
1050
+ var wrapResponsive = function wrapResponsive(embedType, embedOptions, el) {
1051
+ if (!embedOptions.responsive) {
1052
+ return el;
1053
+ }
1054
+
1055
+ el.style.position = 'absolute';
1056
+ el.style.top = '0px';
1057
+ el.style.right = '0px';
1058
+ el.style.bottom = '0px';
1059
+ el.style.left = '0px';
1060
+ el.style.width = '100%';
1061
+ el.style.height = '100%';
1062
+
1063
+ var responsive = _extends$1({
1064
+ aspectRatio: DEFAULT_ASPECT_RATIO,
1065
+ iframeHorizontalPlaylist: DEFAULT_IFRAME_HORIZONTAL_PLAYLIST,
1066
+ maxWidth: DEFAULT_MAX_WIDTH
1067
+ }, embedOptions.responsive); // This value is validate at a higher level, so we can trust that it's in the
1068
+ // correct format.
1069
+
1070
+
1071
+ var aspectRatio = responsive.aspectRatio.split(':').map(Number);
1072
+ var inner = document_1.createElement('div');
1073
+ var paddingTop = aspectRatio[1] / aspectRatio[0] * 100; // For iframes with a horizontal playlist, the playlist takes up 20% of the
1074
+ // vertical space (if shown); so, adjust the vertical size of the embed to
1075
+ // avoid black bars.
1076
+
1077
+ if (embedType === EMBED_TYPE_IFRAME && responsive.iframeHorizontalPlaylist) {
1078
+ paddingTop *= 1.25;
1079
+ }
1080
+
1081
+ inner.style.paddingTop = paddingTop + '%';
1082
+ inner.appendChild(el);
1083
+ var outer = document_1.createElement('div');
1084
+ outer.style.position = 'relative';
1085
+ outer.style.display = 'block';
1086
+ outer.style.maxWidth = responsive.maxWidth;
1087
+ outer.appendChild(inner);
1088
+ return outer;
1089
+ };
1090
+ /**
1091
+ * Wraps an element in a Picture-in-Picture plugin container.
1092
+ *
1093
+ * @private
1094
+ * @param {Object} embedOptions
1095
+ * Embed options from the params.
1096
+ *
1097
+ * @param {Element} el
1098
+ * The DOM element.
1099
+ *
1100
+ * @return {Element}
1101
+ * A new element (if needed).
1102
+ */
1103
+
1104
+
1105
+ var wrapPip = function wrapPip(embedOptions, el) {
1106
+ if (!embedOptions.pip) {
1107
+ return el;
1108
+ }
1109
+
1110
+ var pip = document_1.createElement('div');
1111
+ pip.classList.add('vjs-pip-container');
1112
+ pip.appendChild(el);
1113
+ return pip;
1114
+ };
1115
+ /**
1116
+ * Wraps a bare embed element with necessary parent elements, depending on
1117
+ * embed options given in params.
1118
+ *
1119
+ * @private
1120
+ * @param {string} embedType
1121
+ * The type of the embed.
1122
+ *
1123
+ * @param {Object} embedOptions
1124
+ * Embed options from the params.
1125
+ *
1126
+ * @param {Element} embed
1127
+ * The embed DOM element.
1128
+ *
1129
+ * @return {Element}
1130
+ * A new element (if needed) or the embed itself.
1131
+ */
1132
+
1133
+
1134
+ var wrapEmbed = function wrapEmbed(embedType, embedOptions, embed) {
1135
+ if (!embedOptions) {
1136
+ return embed;
1137
+ }
1138
+
1139
+ return wrapPip(embedOptions, wrapResponsive(embedType, embedOptions, embed));
1140
+ };
1141
+ /**
1142
+ * Inserts a previously-created embed element into the page based on params.
1143
+ *
1144
+ * @private
1145
+ * @param {Object} params
1146
+ * A parameters object. See README for details.
1147
+ *
1148
+ * @param {Element} embed
1149
+ * The embed DOM element.
1150
+ *
1151
+ * @return {Element}
1152
+ * The embed DOM element.
1153
+ */
1154
+
1155
+
1156
+ var insertEmbed = function insertEmbed(params, embed) {
1157
+ var refNode = params.refNode,
1158
+ refNodeInsert = params.refNodeInsert;
1159
+ var refNodeParent = refNode.parentNode; // Wrap the embed, if needed, in container elements to support various
1160
+ // plugins.
1161
+
1162
+ var wrapped = wrapEmbed(params.embedType, params.embedOptions, embed); // Decide where to insert the wrapped embed.
1163
+
1164
+ if (refNodeInsert === REF_NODE_INSERT_BEFORE) {
1165
+ refNodeParent.insertBefore(wrapped, refNode);
1166
+ } else if (refNodeInsert === REF_NODE_INSERT_AFTER) {
1167
+ refNodeParent.insertBefore(wrapped, refNode.nextElementSibling || null);
1168
+ } else if (refNodeInsert === REF_NODE_INSERT_REPLACE) {
1169
+ refNodeParent.replaceChild(wrapped, refNode);
1170
+ } else if (refNodeInsert === REF_NODE_INSERT_PREPEND) {
1171
+ refNode.insertBefore(wrapped, refNode.firstChild || null); // Append is the default.
1172
+ } else {
1173
+ refNode.appendChild(wrapped);
1174
+ } // If the playlist embed option is provided, we need to add a playlist element
1175
+ // immediately after the embed. This has to happen after the embed is inserted
1176
+ // into the DOM (above).
1177
+
1178
+
1179
+ if (params.embedOptions && params.embedOptions.playlist) {
1180
+ var playlistTagName = params.embedOptions.playlist.legacy ? 'ul' : 'div';
1181
+ var playlist = document_1.createElement(playlistTagName);
1182
+ playlist.classList.add('vjs-playlist');
1183
+ embed.parentNode.insertBefore(playlist, embed.nextElementSibling || null);
1184
+ } // Clean up internal reference to the refNode to avoid potential memory
1185
+ // leaks in case the params get persisted somewhere. We won't need it beyond
1186
+ // this point.
1187
+
1188
+
1189
+ params.refNode = null; // Return the original embed element that can be passed to `bc()`.
1190
+
1191
+ return embed;
1192
+ };
1193
+ /**
1194
+ * Handles `onEmbedCreated` callback invocation.
1195
+ *
1196
+ * @private
1197
+ * @param {Object} params
1198
+ * A parameters object. See README for details.
1199
+ *
1200
+ * @param {Element} embed
1201
+ * The embed DOM element.
1202
+ *
1203
+ * @return {Element}
1204
+ * A possibly-new DOM element.
1205
+ */
1206
+
1207
+
1208
+ var onEmbedCreated = function onEmbedCreated(params, embed) {
1209
+ if (typeof params.onEmbedCreated !== 'function') {
1210
+ return embed;
1211
+ }
1212
+
1213
+ var result = params.onEmbedCreated(embed);
1214
+
1215
+ if (isEl(result)) {
1216
+ return result;
1217
+ }
1218
+
1219
+ return embed;
1220
+ };
1221
+ /**
1222
+ * Creates an embed code of the appropriate type, runs any customizations
1223
+ * necessary, and inserts it into the DOM.
1224
+ *
1225
+ * @param {Object} params
1226
+ * A parameters object. See README for details.
1227
+ *
1228
+ * @return {Element}
1229
+ * The DOM element that will ultimately be passed to the `bc()`
1230
+ * function. Even when customized or wrapped, the return value will be
1231
+ * the target element.
1232
+ */
1233
+
1234
+
1235
+ var createEmbed = function createEmbed(params) {
1236
+ var embed = params.embedType === EMBED_TYPE_IFRAME ? createIframeEmbed(params) : createInPageEmbed(params);
1237
+ return insertEmbed(params, onEmbedCreated(params, embed));
1238
+ };
1239
+
1240
+ //
1241
+ // The keys follow the format "accountId_playerId_embedId" where accountId is
1242
+ // optional and defaults to "*". This happens when we detect pre-existing
1243
+ // player globals.
1244
+
1245
+ var actualCache = new window_1.Map();
1246
+ /**
1247
+ * Get the cache key given some properties.
1248
+ *
1249
+ * @private
1250
+ * @param {Object} props
1251
+ * Properties describing the player record to cache.
1252
+ *
1253
+ * @param {string} props.playerId
1254
+ * A player ID.
1255
+ *
1256
+ * @param {string} props.embedId
1257
+ * An embed ID.
1258
+ *
1259
+ * @param {string} [props.accountId="*"]
1260
+ * An optional account ID. This is optional because when we search for
1261
+ * pre-existing players to avoid downloads, we will not necessarily
1262
+ * know the account ID.
1263
+ *
1264
+ * @return {string}
1265
+ * A key to be used in the script cache.
1266
+ */
1267
+
1268
+ var key = function key(_ref) {
1269
+ var accountId = _ref.accountId,
1270
+ playerId = _ref.playerId,
1271
+ embedId = _ref.embedId;
1272
+ return (accountId || '*') + "_" + playerId + "_" + embedId;
1273
+ };
1274
+ /**
1275
+ * Add an entry to the script cache.
1276
+ *
1277
+ * @private
1278
+ * @param {Object} props
1279
+ * Properties describing the player record to cache.
1280
+ *
1281
+ * @param {string} props.playerId
1282
+ * A player ID.
1283
+ *
1284
+ * @param {string} props.embedId
1285
+ * An embed ID.
1286
+ *
1287
+ * @param {string} [props.accountId="*"]
1288
+ * An optional account ID. This is optional because when we search for
1289
+ * pre-existing players to avoid downloads, we will not necessarily
1290
+ * know the account ID. If not given, we assume that no script was
1291
+ * downloaded for this player.
1292
+ */
1293
+
1294
+
1295
+ var store = function store(props) {
1296
+ actualCache.set(key(props), props.accountId ? urls.getUrl(props) : '');
1297
+ };
1298
+ /**
1299
+ * Checks if the script cache has an entry.
1300
+ *
1301
+ * @private
1302
+ * @param {Object} props
1303
+ * Properties describing the player record to cache.
1304
+ *
1305
+ * @param {string} props.playerId
1306
+ * A player ID.
1307
+ *
1308
+ * @param {string} props.embedId
1309
+ * An embed ID.
1310
+ *
1311
+ * @param {string} [props.accountId="*"]
1312
+ * An optional account ID. This is optional because when we search for
1313
+ * pre-existing players to avoid downloads, we will not necessarily
1314
+ * know the account ID.
1315
+ *
1316
+ * @return {boolean}
1317
+ * Will be `true` if there is a matching cache entry.
1318
+ */
1319
+
1320
+
1321
+ var has = function has(props) {
1322
+ return actualCache.has(key(props));
1323
+ };
1324
+ /**
1325
+ * Gets a cache entry.
1326
+ *
1327
+ * @private
1328
+ * @param {Object} props
1329
+ * Properties describing the player record to cache.
1330
+ *
1331
+ * @param {string} props.playerId
1332
+ * A player ID.
1333
+ *
1334
+ * @param {string} props.embedId
1335
+ * An embed ID.
1336
+ *
1337
+ * @param {string} [props.accountId="*"]
1338
+ * An optional account ID. This is optional because when we search for
1339
+ * pre-existing players to avoid downloads, we will not necessarily
1340
+ * know the account ID.
1341
+ *
1342
+ * @return {string}
1343
+ * A cache entry - a URL or empty string.
1344
+ *
1345
+ */
1346
+
1347
+
1348
+ var get = function get(props) {
1349
+ return actualCache.get(key(props));
1350
+ };
1351
+ /**
1352
+ * Clears the cache.
1353
+ */
1354
+
1355
+
1356
+ var clear = function clear() {
1357
+ actualCache.clear();
1358
+ };
1359
+ /**
1360
+ * Iterates over the cache.
1361
+ *
1362
+ * @param {Function} fn
1363
+ * A callback function that will be called with a value and a key
1364
+ * for each item in the cache.
1365
+ */
1366
+
1367
+
1368
+ var forEach = function forEach(fn) {
1369
+ actualCache.forEach(fn);
1370
+ };
1371
+
1372
+ var playerScriptCache = {
1373
+ clear: clear,
1374
+ forEach: forEach,
1375
+ get: get,
1376
+ has: has,
1377
+ key: key,
1378
+ store: store
1379
+ };
1380
+
1381
+ var REGEX_PLAYER_EMBED = /^([A-Za-z0-9]+)_([A-Za-z0-9]+)$/;
1382
+ /**
1383
+ * Gets an array of current per-player/per-embed `bc` globals that are
1384
+ * attached to the `bc` global (e.g. `bc.abc123xyz_default`).
1385
+ *
1386
+ * If `bc` is not defined, returns an empty array.
1387
+ *
1388
+ * @private
1389
+ * @return {string[]}
1390
+ * An array of keys.
1391
+ */
1392
+
1393
+ var getBcGlobalKeys = function getBcGlobalKeys() {
1394
+ return window_1.bc ? Object.keys(window_1.bc).filter(function (k) {
1395
+ return REGEX_PLAYER_EMBED.test(k);
1396
+ }) : [];
1397
+ };
1398
+ /**
1399
+ * Gets known global object keys that Brightcove Players may create.
1400
+ *
1401
+ * @private
1402
+ * @return {string[]}
1403
+ * An array of global variables that were added during testing.
1404
+ */
1405
+
1406
+
1407
+ var getGlobalKeys = function getGlobalKeys() {
1408
+ return Object.keys(window_1).filter(function (k) {
1409
+ return /^videojs/i.test(k) || /^(bc)$/.test(k);
1410
+ });
1411
+ };
1412
+ /**
1413
+ * Dispose all players from a copy of Video.js.
1414
+ *
1415
+ * @param {Function} videojs
1416
+ * A copy of Video.js.
1417
+ */
1418
+
1419
+
1420
+ var disposeAll = function disposeAll(videojs) {
1421
+ if (!videojs) {
1422
+ return;
1423
+ }
1424
+
1425
+ Object.keys(videojs.players).forEach(function (k) {
1426
+ var p = videojs.players[k];
1427
+
1428
+ if (p) {
1429
+ p.dispose();
1430
+ }
1431
+ });
1432
+ };
1433
+ /**
1434
+ * Resets environment state.
1435
+ *
1436
+ * This will dispose ALL Video.js players on the page and remove ALL `bc` and
1437
+ * `videojs` globals it finds.
1438
+ */
1439
+
1440
+
1441
+ var reset = function reset() {
1442
+ // Remove all script elements from the DOM.
1443
+ playerScriptCache.forEach(function (value, key) {
1444
+ // If no script URL is associated, skip it.
1445
+ if (!value) {
1446
+ return;
1447
+ } // Find all script elements and remove them.
1448
+
1449
+
1450
+ Array.prototype.slice.call(document_1.querySelectorAll("script[src=\"" + value + "\"]")).forEach(function (el) {
1451
+ return el.parentNode.removeChild(el);
1452
+ });
1453
+ }); // Clear the internal cache that have been downloaded.
1454
+
1455
+ playerScriptCache.clear(); // Dispose any remaining players from the `videojs` global.
1456
+
1457
+ disposeAll(window_1.videojs); // There may be other `videojs` instances lurking in the bowels of the
1458
+ // `bc` global. This should eliminate any of those.
1459
+
1460
+ getBcGlobalKeys().forEach(function (k) {
1461
+ return disposeAll(window_1.bc[k].videojs);
1462
+ }); // Delete any global object keys that were created.
1463
+
1464
+ getGlobalKeys().forEach(function (k) {
1465
+ delete window_1[k];
1466
+ });
1467
+ };
1468
+ /**
1469
+ * At runtime, populate the cache with pre-detected players. This allows
1470
+ * people who have bundled their player or included a script tag before this
1471
+ * runs to not have to re-download players.
1472
+ */
1473
+
1474
+
1475
+ var detectPlayers = function detectPlayers() {
1476
+ getBcGlobalKeys().forEach(function (k) {
1477
+ var matches = k.match(REGEX_PLAYER_EMBED);
1478
+ var props = {
1479
+ playerId: matches[1],
1480
+ embedId: matches[2]
1481
+ };
1482
+
1483
+ if (!playerScriptCache.has(props)) {
1484
+ playerScriptCache.store(props);
1485
+ }
1486
+ });
1487
+ };
1488
+
1489
+ var env = {
1490
+ detectPlayers: detectPlayers,
1491
+ reset: reset
1492
+ };
1493
+
1494
+ env.detectPlayers();
1495
+ /**
1496
+ * Is this value a function?
1497
+ *
1498
+ * @private
1499
+ * @param {Function} fn
1500
+ * A maybe function.
1501
+ *
1502
+ * @return {boolean}
1503
+ * Whether or not the value is a function.
1504
+ */
1505
+
1506
+ var isFn = function isFn(fn) {
1507
+ return typeof fn === 'function';
1508
+ };
1509
+ /**
1510
+ * Checks whether an embedType parameter is valid.
1511
+ *
1512
+ * @private
1513
+ * @param {string} embedType
1514
+ * The value to test.
1515
+ *
1516
+ * @return {boolean}
1517
+ * Whether the value is valid.
1518
+ */
1519
+
1520
+
1521
+ var isValidEmbedType = function isValidEmbedType(embedType) {
1522
+ return embedType === EMBED_TYPE_IN_PAGE || embedType === EMBED_TYPE_IFRAME;
1523
+ };
1524
+ /**
1525
+ * Checks whether an embedOptions.tagName parameter is valid.
1526
+ *
1527
+ * @private
1528
+ * @param {string} tagName
1529
+ * The value to test.
1530
+ *
1531
+ * @return {boolean}
1532
+ * Whether the value is valid.
1533
+ */
1534
+
1535
+
1536
+ var isValidTagName = function isValidTagName(tagName) {
1537
+ return tagName === EMBED_TAG_NAME_VIDEOJS || tagName === EMBED_TAG_NAME_VIDEO;
1538
+ };
1539
+ /**
1540
+ * Checks whether a refNodeInsert parameter is valid.
1541
+ *
1542
+ * @private
1543
+ * @param {string} refNodeInsert
1544
+ * The value to test.
1545
+ *
1546
+ * @return {boolean}
1547
+ * Whether the value is valid.
1548
+ */
1549
+
1550
+
1551
+ var isValidRootInsert = function isValidRootInsert(refNodeInsert) {
1552
+ return refNodeInsert === REF_NODE_INSERT_APPEND || refNodeInsert === REF_NODE_INSERT_PREPEND || refNodeInsert === REF_NODE_INSERT_BEFORE || refNodeInsert === REF_NODE_INSERT_AFTER || refNodeInsert === REF_NODE_INSERT_REPLACE;
1553
+ };
1554
+ /**
1555
+ * Checks parameters and throws an error on validation problems.
1556
+ *
1557
+ * @private
1558
+ * @param {Object} params
1559
+ * A parameters object. See README for details.
1560
+ *
1561
+ * @throws {Error} If accountId is missing.
1562
+ * @throws {Error} If refNode is missing or invalid.
1563
+ * @throws {Error} If embedType is missing or invalid.
1564
+ * @throws {Error} If attempting to use an iframe embed with options.
1565
+ * @throws {Error} If attempting to use embedOptions.responsiveIframe with a
1566
+ * non-iframe embed.
1567
+ * @throws {Error} If refNodeInsert is missing or invalid.
1568
+ */
1569
+
1570
+
1571
+ var checkParams = function checkParams(params) {
1572
+ var accountId = params.accountId,
1573
+ embedOptions = params.embedOptions,
1574
+ embedType = params.embedType,
1575
+ options = params.options,
1576
+ refNode = params.refNode,
1577
+ refNodeInsert = params.refNodeInsert;
1578
+
1579
+ if (!accountId) {
1580
+ throw new Error('accountId is required');
1581
+ } else if (!isElInDom(refNode)) {
1582
+ throw new Error('refNode must resolve to a node attached to the DOM');
1583
+ } else if (!isValidEmbedType(embedType)) {
1584
+ throw new Error('embedType is missing or invalid');
1585
+ } else if (embedType === EMBED_TYPE_IFRAME && options) {
1586
+ throw new Error('cannot use options with an iframe embed');
1587
+ } else if (embedOptions && embedOptions.tagName !== undefined && !isValidTagName(embedOptions.tagName)) {
1588
+ throw new Error("embedOptions.tagName is invalid (value: \"" + embedOptions.tagName + "\")");
1589
+ } else if (embedOptions && embedOptions.responsive && embedOptions.responsive.aspectRatio && !/^\d+\:\d+$/.test(embedOptions.responsive.aspectRatio)) {
1590
+ throw new Error("embedOptions.responsive.aspectRatio must be in the \"n:n\" format (value: \"" + embedOptions.responsive.aspectRatio + "\")");
1591
+ } else if (!isValidRootInsert(refNodeInsert)) {
1592
+ throw new Error('refNodeInsert is missing or invalid');
1593
+ }
1594
+ };
1595
+ /**
1596
+ * Normalizes a `refNode` param to an element - or `null`.
1597
+ *
1598
+ * @private
1599
+ * @param {Element|string} refNode
1600
+ * The value of a `refNode` param.
1601
+ *
1602
+ * @return {Element|null}
1603
+ * A DOM element or `null` if the `refNode` was given as a string and
1604
+ * did not match an element.
1605
+ */
1606
+
1607
+
1608
+ var resolveRefNode = function resolveRefNode(refNode) {
1609
+ if (isElInDom(refNode)) {
1610
+ return refNode;
1611
+ }
1612
+
1613
+ if (typeof refNode === 'string') {
1614
+ return document_1.querySelector(refNode);
1615
+ }
1616
+
1617
+ return null;
1618
+ };
1619
+ /**
1620
+ * Initializes a player and returns it.
1621
+ *
1622
+ * @private
1623
+ * @param {Object} params
1624
+ * A parameters object. See README for details.
1625
+ *
1626
+ * @param {Element} embed
1627
+ * An element that will be passed to the `bc()` function.
1628
+ *
1629
+ * @param {Function} resolve
1630
+ * A function to call if a player is successfully initialized.
1631
+ *
1632
+ * @param {Function} reject
1633
+ * A function to call if a player fails to be initialized.
1634
+ *
1635
+ * @return {Object}
1636
+ * A success object whose `ref` is a player.
1637
+ */
1638
+
1639
+
1640
+ var initPlayer = function initPlayer(params, embed, resolve, reject) {
1641
+ var embedId = params.embedId,
1642
+ playerId = params.playerId;
1643
+ var bc = window_1.bc[playerId + "_" + embedId] || window_1.bc;
1644
+
1645
+ if (!bc) {
1646
+ return reject(new Error("missing bc function for " + playerId));
1647
+ }
1648
+
1649
+ playerScriptCache.store(params);
1650
+ var player;
1651
+
1652
+ try {
1653
+ player = bc(embed, params.options); // Add a PLAYER_LOADER property to bcinfo to indicate this player was
1654
+ // loaded via that mechanism.
1655
+
1656
+ if (player.bcinfo) {
1657
+ player.bcinfo.PLAYER_LOADER = true;
1658
+ }
1659
+ } catch (x) {
1660
+ var message = 'Could not initialize the Brightcove Player.'; // Update the rejection message based on known conditions that can cause it.
1661
+
1662
+ if (params.embedOptions.tagName === EMBED_TAG_NAME_VIDEOJS) {
1663
+ message += ' You are attempting to embed using a "video-js" element.' + ' Please ensure that your Player is v6.11.0 or newer in order to' + ' support this embed type. Alternatively, pass `"video"` for' + ' `embedOptions.tagName`.';
1664
+ }
1665
+
1666
+ return reject(new Error(message));
1667
+ }
1668
+
1669
+ resolve({
1670
+ type: EMBED_TYPE_IN_PAGE,
1671
+ ref: player
1672
+ });
1673
+ };
1674
+ /**
1675
+ * Loads a player from CDN and embeds it.
1676
+ *
1677
+ * @private
1678
+ * @param {Object} params
1679
+ * A parameters object. See README for details.
1680
+ *
1681
+ * @param {Function} resolve
1682
+ * A function to call if a player is successfully initialized.
1683
+ *
1684
+ * @param {Function} reject
1685
+ * A function to call if a player fails to be initialized.
1686
+ */
1687
+
1688
+
1689
+ var loadPlayer = function loadPlayer(params, resolve, reject) {
1690
+ params.refNode = resolveRefNode(params.refNode);
1691
+ checkParams(params);
1692
+ var refNode = params.refNode,
1693
+ refNodeInsert = params.refNodeInsert; // Store a reference to the refNode parent. When we use the replace method,
1694
+ // we'll need it as the location to store the script element.
1695
+
1696
+ var refNodeParent = refNode.parentNode;
1697
+ var embed = createEmbed(params); // If this is an iframe, all we need to do is create the embed code and
1698
+ // inject it. Because there is no reliable way to hook into an iframe from
1699
+ // the parent page, we simply resolve immediately upon creating the embed.
1700
+
1701
+ if (params.embedType === EMBED_TYPE_IFRAME) {
1702
+ resolve({
1703
+ type: EMBED_TYPE_IFRAME,
1704
+ ref: embed
1705
+ });
1706
+ return;
1707
+ } // If we've already downloaded this script or detected a matching global, we
1708
+ // should have the proper `bc` global and can bypass the script creation
1709
+ // process.
1710
+
1711
+
1712
+ if (playerScriptCache.has(params)) {
1713
+ return initPlayer(params, embed, resolve, reject);
1714
+ }
1715
+
1716
+ var script = document_1.createElement('script');
1717
+
1718
+ script.onload = function () {
1719
+ return initPlayer(params, embed, resolve, reject);
1720
+ };
1721
+
1722
+ script.onerror = function () {
1723
+ reject(new Error('player script could not be downloaded'));
1724
+ };
1725
+
1726
+ script.async = true;
1727
+ script.charset = 'utf-8';
1728
+ script.src = urls.getUrl(params);
1729
+
1730
+ if (refNodeInsert === REF_NODE_INSERT_REPLACE) {
1731
+ refNodeParent.appendChild(script);
1732
+ } else {
1733
+ refNode.appendChild(script);
1734
+ }
1735
+ };
1736
+ /**
1737
+ * A function for asynchronously loading a Brightcove Player into a web page.
1738
+ *
1739
+ * @param {Object} parameters
1740
+ * A parameters object. See README for details.
1741
+ *
1742
+ * @return {Promise|undefined}
1743
+ * A Promise, if possible.
1744
+ */
1745
+
1746
+
1747
+ var brightcovePlayerLoader = function brightcovePlayerLoader(parameters) {
1748
+ var params = _extends$1({}, DEFAULTS, parameters);
1749
+
1750
+ var Promise = params.Promise,
1751
+ onSuccess = params.onSuccess,
1752
+ onFailure = params.onFailure; // When Promise is not available or any success/failure callback is given,
1753
+ // do not attempt to use Promises.
1754
+
1755
+ if (!isFn(Promise) || isFn(onSuccess) || isFn(onFailure)) {
1756
+ return loadPlayer(params, isFn(onSuccess) ? onSuccess : function () {}, isFn(onFailure) ? onFailure : function (err) {
1757
+ throw err;
1758
+ });
1759
+ } // Promises are supported, use 'em.
1760
+
1761
+
1762
+ return new Promise(function (resolve, reject) {
1763
+ return loadPlayer(params, resolve, reject);
1764
+ });
1765
+ };
1766
+ /**
1767
+ * Expose a non-writable, non-configurable property on the
1768
+ * `brightcovePlayerLoader` function.
1769
+ *
1770
+ * @private
1771
+ * @param {string} key
1772
+ * The property key.
1773
+ *
1774
+ * @param {string|Function} value
1775
+ * The value.
1776
+ */
1777
+
1778
+
1779
+ var expose = function expose(key, value) {
1780
+ Object.defineProperty(brightcovePlayerLoader, key, {
1781
+ configurable: false,
1782
+ enumerable: true,
1783
+ value: value,
1784
+ writable: false
1785
+ });
1786
+ };
1787
+ /**
1788
+ * Get the base URL for players. By default, this will be the Brightcove CDN.
1789
+ *
1790
+ * @return {string}
1791
+ * The current base URL.
1792
+ */
1793
+
1794
+
1795
+ expose('getBaseUrl', function () {
1796
+ return urls.getBaseUrl();
1797
+ });
1798
+ /**
1799
+ * Set the base URL for players. By default, this will be the Brightcove CDN,
1800
+ * but can be overridden with this function.
1801
+ *
1802
+ * @param {string} baseUrl
1803
+ * A new base URL (instead of Brightcove CDN).
1804
+ */
1805
+
1806
+ expose('setBaseUrl', function (baseUrl) {
1807
+ urls.setBaseUrl(baseUrl);
1808
+ });
1809
+ /**
1810
+ * Get the URL for a player.
1811
+ */
1812
+
1813
+ expose('getUrl', function (options) {
1814
+ return urls.getUrl(options);
1815
+ });
1816
+ /**
1817
+ * Completely resets global state.
1818
+ *
1819
+ * This will dispose ALL Video.js players on the page and remove ALL `bc` and
1820
+ * `videojs` globals it finds.
1821
+ */
1822
+
1823
+ expose('reset', function () {
1824
+ return env.reset();
1825
+ }); // Define some read-only constants on the exported function.
1826
+
1827
+ [['EMBED_TAG_NAME_VIDEO', EMBED_TAG_NAME_VIDEO], ['EMBED_TAG_NAME_VIDEOJS', EMBED_TAG_NAME_VIDEOJS], ['EMBED_TYPE_IN_PAGE', EMBED_TYPE_IN_PAGE], ['EMBED_TYPE_IFRAME', EMBED_TYPE_IFRAME], ['REF_NODE_INSERT_APPEND', REF_NODE_INSERT_APPEND], ['REF_NODE_INSERT_PREPEND', REF_NODE_INSERT_PREPEND], ['REF_NODE_INSERT_BEFORE', REF_NODE_INSERT_BEFORE], ['REF_NODE_INSERT_AFTER', REF_NODE_INSERT_AFTER], ['REF_NODE_INSERT_REPLACE', REF_NODE_INSERT_REPLACE], ['VERSION', version]].forEach(function (arr) {
1828
+ expose(arr[0], arr[1]);
1829
+ });
1830
+
1831
+ /**
1832
+ * These prop changes can be handled by an internal player state change rather
1833
+ * than a full dispose/recreate.
1834
+ *
1835
+ * @private
1836
+ * @type {Object}
1837
+ */
1838
+
1839
+ var UPDATEABLE_PROPS = ['catalogSearch', 'catalogSequence', 'playlistId', 'playlistVideoId', 'videoId'];
1840
+
1841
+ var logError = function logError(err) {
1842
+ /* eslint-disable no-console */
1843
+ if (err && console && console.error) {
1844
+ console.error(err);
1845
+ }
1846
+ /* eslint-enable no-console */
1847
+
1848
+ };
1849
+ /**
1850
+ * The official React component for the Brightcove Player!
1851
+ *
1852
+ * This uses `@brightcove/player-loader` to load a player into a React
1853
+ * component based on the given props.
1854
+ */
1855
+
1856
+
1857
+ var ReactPlayerLoader =
1858
+ /*#__PURE__*/
1859
+ function (_React$Component) {
1860
+ _inheritsLoose(ReactPlayerLoader, _React$Component);
1861
+
1862
+ /**
1863
+ * Create a new Brightcove player.
1864
+ *
1865
+ * @param {Object} props
1866
+ * Most options will be passed along to player-loader, except for
1867
+ * options that are listed. See README.md for more detail.
1868
+ *
1869
+ * @param {string} [props.baseUrl]
1870
+ * The base URL to use when requesting a player
1871
+ *
1872
+ * @param {Object} [props.attrs]
1873
+ * Used to set attributes on the component element that contains the
1874
+ * embedded Brightcove Player.
1875
+ *
1876
+ * @param {boolean} [props.manualReloadFromPropChanges]
1877
+ * Used to specify if reloading the player after prop changes will be handled manually.
1878
+ *
1879
+ */
1880
+ function ReactPlayerLoader(props) {
1881
+ var _this;
1882
+
1883
+ _this = _React$Component.call(this, props) || this;
1884
+ _this.refNode = null;
1885
+
1886
+ _this.setRefNode = function (ref) {
1887
+ _this.refNode = ref;
1888
+ };
1889
+
1890
+ _this.loadPlayer = _this.loadPlayer.bind(_assertThisInitialized(_this));
1891
+ return _this;
1892
+ }
1893
+ /**
1894
+ * Loads a new player based on the current props.
1895
+ */
1896
+
1897
+
1898
+ var _proto = ReactPlayerLoader.prototype;
1899
+
1900
+ _proto.loadPlayer = function loadPlayer() {
1901
+ var _this2 = this;
1902
+
1903
+ // If there is any player currently loaded, dispose it before fetching a
1904
+ // new one.
1905
+ this.disposePlayer(); // We need to provide our own callbacks below, so we cache these
1906
+ // user-provided callbacks for use later.
1907
+
1908
+ var userSuccess = this.props.onSuccess;
1909
+ var userFailure = this.props.onFailure;
1910
+
1911
+ var options = _extends({}, this.props, {
1912
+ refNode: this.refNode,
1913
+ refNodeInsert: 'append',
1914
+ onSuccess: function onSuccess(_ref) {
1915
+ var ref = _ref.ref,
1916
+ type = _ref.type;
1917
+
1918
+ // If the component is not mounted when the callback fires, dispose
1919
+ // the player and bail out.
1920
+ if (!_this2.isMounted_) {
1921
+ _this2.disposePlayer(ref);
1922
+
1923
+ return;
1924
+ } // Store a player reference on the component.
1925
+
1926
+
1927
+ _this2.player = ref; // Null out the player reference when the player is disposed from
1928
+ // outside the component.
1929
+
1930
+ if (type === 'in-page') {
1931
+ ref.one('dispose', function () {
1932
+ _this2.player = null;
1933
+ });
1934
+ } // Add a REACT_PLAYER_LOADER property to bcinfo to indicate this player
1935
+ // was loaded via that mechanism.
1936
+
1937
+
1938
+ if (ref.bcinfo) {
1939
+ ref.bcinfo.REACT_PLAYER_LOADER = true;
1940
+ } // Call a user-provided onSuccess callback.
1941
+
1942
+
1943
+ if (typeof userSuccess === 'function') {
1944
+ userSuccess({
1945
+ ref: ref,
1946
+ type: type
1947
+ });
1948
+ }
1949
+ },
1950
+ onFailure: function onFailure(error) {
1951
+ // Ignore errors when not mounted.
1952
+ if (!_this2.isMounted_) {
1953
+ return;
1954
+ } // Call a user-provided onFailure callback.
1955
+
1956
+
1957
+ if (typeof userFailure === 'function') {
1958
+ userFailure(error);
1959
+ return;
1960
+ } // Fall back to throwing an error;
1961
+
1962
+
1963
+ throw new Error(error);
1964
+ }
1965
+ }); // Delete props that are not meant to be passed to player-loader.
1966
+
1967
+
1968
+ delete options.attrs;
1969
+ delete options.baseUrl;
1970
+ delete options.manualReloadFromPropChanges; // If a base URL is provided, it should only apply to this player load.
1971
+ // This means we need to back up the original base URL and restore it
1972
+ // _after_ we call player loader.
1973
+
1974
+ var originalBaseUrl = brightcovePlayerLoader.getBaseUrl();
1975
+
1976
+ if (this.props.baseUrl) {
1977
+ brightcovePlayerLoader.setBaseUrl(this.props.baseUrl);
1978
+ }
1979
+
1980
+ brightcovePlayerLoader(options);
1981
+ brightcovePlayerLoader.setBaseUrl(originalBaseUrl);
1982
+ }
1983
+ /**
1984
+ * Disposes the current player, if there is one.
1985
+ */
1986
+ ;
1987
+
1988
+ _proto.disposePlayer = function disposePlayer() {
1989
+ // Nothing to dispose.
1990
+ if (!this.player) {
1991
+ return;
1992
+ } // Dispose an in-page player.
1993
+
1994
+
1995
+ if (this.player.dispose) {
1996
+ this.player.dispose(); // Dispose an iframe player.
1997
+ } else if (this.player.parentNode) {
1998
+ this.player.parentNode.removeChild(this.player);
1999
+ } // Null out the player reference.
2000
+
2001
+
2002
+ this.player = null;
2003
+ }
2004
+ /**
2005
+ * Find the index of the `playlistVideoId` prop within the player's playlist.
2006
+ *
2007
+ * @param {Object[]} playlist
2008
+ * An array of playlist item objects.
2009
+ *
2010
+ * @return {number}
2011
+ * The index of the `playlistVideoId` or `-1` if the player has been
2012
+ * disposed, is not using the playlist plugin, or if not found.
2013
+ */
2014
+ ;
2015
+
2016
+ _proto.findPlaylistVideoIdIndex_ = function findPlaylistVideoIdIndex_(playlist) {
2017
+ var playlistVideoId = this.props.playlistVideoId;
2018
+
2019
+ if (Array.isArray(playlist) && playlistVideoId) {
2020
+ for (var i = 0; i < playlist.length; i++) {
2021
+ var _playlist$i = playlist[i],
2022
+ id = _playlist$i.id,
2023
+ referenceId = _playlist$i.referenceId;
2024
+
2025
+ if (id === playlistVideoId || "ref:" + referenceId === playlistVideoId) {
2026
+ return i;
2027
+ }
2028
+ }
2029
+ }
2030
+
2031
+ return -1;
2032
+ }
2033
+ /**
2034
+ * Create a Playback API callback function for the component's player.
2035
+ *
2036
+ * @private
2037
+ * @param {string} requestType
2038
+ * The Playback API request type (e.g. "video" or "playlist").
2039
+ *
2040
+ * @param {Object} changes
2041
+ * An object. The keys of this object are the props that changed.
2042
+ *
2043
+ * @return {Function}
2044
+ * A callback for the Playback API request.
2045
+ */
2046
+ ;
2047
+
2048
+ _proto.createPlaybackAPICallback_ = function createPlaybackAPICallback_(requestType, changes) {
2049
+ var _this3 = this;
2050
+
2051
+ return function (err, data) {
2052
+ if (err) {
2053
+ logError(err);
2054
+ return;
2055
+ } // If the playlistVideoId changed and this is a playlist request, we
2056
+ // need to search through the playlist items to find the correct
2057
+ // starting index.
2058
+
2059
+
2060
+ if (requestType === 'playlist' && changes.playlistVideoId) {
2061
+ var i = _this3.findPlaylistVideoIdIndex_(data);
2062
+
2063
+ if (i > -1) {
2064
+ data.startingIndex = i;
2065
+ }
2066
+ }
2067
+
2068
+ _this3.player.catalog.load(data);
2069
+ };
2070
+ }
2071
+ /**
2072
+ * Update the player based on changes to certain props that do not require
2073
+ * a full player dispose/recreate.
2074
+ *
2075
+ * @param {Object} changes
2076
+ * An object. The keys of this object are the props that changed.
2077
+ */
2078
+ ;
2079
+
2080
+ _proto.updatePlayer = function updatePlayer(changes) {
2081
+ // No player exists, player is disposed, or not using the catalog
2082
+ if (!this.player || !this.player.el()) {
2083
+ return;
2084
+ } // If the player is using the catalog plugin, we _may_ populate this
2085
+ // variable with an object.
2086
+
2087
+
2088
+ var catalogParams;
2089
+
2090
+ if (this.player.usingPlugin('catalog')) {
2091
+ // There is a new catalog sequence request. This takes precedence over
2092
+ // other catalog updates because it is a different call.
2093
+ if (changes.catalogSequence && this.props.catalogSequence) {
2094
+ var callback = this.createPlaybackAPICallback_('sequence', changes);
2095
+ this.player.catalog.getLazySequence(this.props.catalogSequence, callback, this.props.adConfigId);
2096
+ return;
2097
+ }
2098
+
2099
+ if (changes.videoId && this.props.videoId) {
2100
+ catalogParams = {
2101
+ type: 'video',
2102
+ id: this.props.videoId
2103
+ };
2104
+ } else if (changes.playlistId && this.props.playlistId) {
2105
+ catalogParams = {
2106
+ type: 'playlist',
2107
+ id: this.props.playlistId
2108
+ };
2109
+ } else if (changes.catalogSearch && this.props.catalogSearch) {
2110
+ catalogParams = {
2111
+ type: 'search',
2112
+ q: this.props.catalogSearch
2113
+ };
2114
+ }
2115
+ } // If `catalogParams` is `undefined` here, that means the player either
2116
+ // does not have the catalog plugin or no valid catalog request can be made.
2117
+
2118
+
2119
+ if (catalogParams) {
2120
+ if (this.props.adConfigId) {
2121
+ catalogParams.adConfigId = this.props.adConfigId;
2122
+ }
2123
+
2124
+ if (this.props.deliveryConfigId) {
2125
+ catalogParams.deliveryConfigId = this.props.deliveryConfigId;
2126
+ } // We use the callback style here to make tests simpler in IE11 (no need
2127
+ // for a Promise polyfill).
2128
+
2129
+
2130
+ var _callback = this.createPlaybackAPICallback_(catalogParams.type, changes);
2131
+
2132
+ this.player.catalog.get(catalogParams, _callback); // If no catalog request is being made, we may still need to update the
2133
+ // playlist selected video.
2134
+ } else if (changes.playlistVideoId && this.props.playlistVideoId && this.player.usingPlugin('playlist')) {
2135
+ var i = this.findPlaylistVideoIdIndex_(this.player.playlist());
2136
+
2137
+ if (i > -1) {
2138
+ this.player.playlist.currentItem(i);
2139
+ }
2140
+ }
2141
+ }
2142
+ /**
2143
+ * Called just after the component has mounted.
2144
+ */
2145
+ ;
2146
+
2147
+ _proto.componentDidMount = function componentDidMount() {
2148
+ this.isMounted_ = true;
2149
+ this.loadPlayer();
2150
+ }
2151
+ /**
2152
+ * Called when the component props are updated.
2153
+ *
2154
+ * Some prop changes may trigger special behavior (see `propChangeHandlers`),
2155
+ * but if ANY prop is changed that is NOT handled, the player will be
2156
+ * disposed/recreated entirely.
2157
+ *
2158
+ * @param {Object} prevProps
2159
+ * The previous props state before change.
2160
+ */
2161
+ ;
2162
+
2163
+ _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
2164
+ var _this4 = this;
2165
+
2166
+ // Calculate the prop changes.
2167
+ var changes = Object.keys(prevProps).reduce(function (acc, key) {
2168
+ var previous = prevProps[key];
2169
+ var current = _this4.props[key]; // Do not compare functions
2170
+
2171
+ if (typeof current === 'function') {
2172
+ return acc;
2173
+ }
2174
+
2175
+ if (typeof current === 'object' && current !== null) {
2176
+ if (JSON.stringify(current) !== JSON.stringify(previous)) {
2177
+ acc[key] = true;
2178
+ }
2179
+
2180
+ return acc;
2181
+ }
2182
+
2183
+ if (current !== previous) {
2184
+ acc[key] = true;
2185
+ }
2186
+
2187
+ return acc;
2188
+ }, {});
2189
+
2190
+ if (!this.props.manualReloadFromPropChanges) {
2191
+ // Dispose and recreate the player if any changed keys cannot be handled.
2192
+ if (Object.keys(changes).some(function (k) {
2193
+ return UPDATEABLE_PROPS.indexOf(k) === -1;
2194
+ })) {
2195
+ this.loadPlayer();
2196
+ return;
2197
+ }
2198
+ }
2199
+
2200
+ this.updatePlayer(changes);
2201
+ }
2202
+ /**
2203
+ * Called just before a component unmounts. Disposes the player.
2204
+ */
2205
+ ;
2206
+
2207
+ _proto.componentWillUnmount = function componentWillUnmount() {
2208
+ this.isMounted_ = false;
2209
+ this.disposePlayer();
2210
+ }
2211
+ /**
2212
+ * Renders the component.
2213
+ *
2214
+ * @return {ReactElement}
2215
+ * The react element to render.
2216
+ */
2217
+ ;
2218
+
2219
+ _proto.render = function render() {
2220
+ var props = _extends({
2221
+ className: 'brightcove-react-player-loader'
2222
+ }, this.props.attrs, {
2223
+ ref: this.setRefNode
2224
+ });
2225
+
2226
+ return React__default["default"].createElement('div', props);
2227
+ };
2228
+
2229
+ return ReactPlayerLoader;
2230
+ }(React__default["default"].Component);
2231
+
2232
+ exports.ReactPlayerLoader = ReactPlayerLoader;