@mjhls/mjh-framework 1.0.1005-next12 → 1.0.1005-next12-0002
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.
- package/dist/cjs/AD-e1bb7536.js +1 -0
- package/dist/cjs/AD.js +1 -32
- package/dist/cjs/AD300x250-0bcfcd78.js +1 -0
- package/dist/cjs/AD300x250.js +1 -95
- package/dist/cjs/AD300x250x600-01659df6.js +1 -0
- package/dist/cjs/AD300x250x600.js +1 -112
- package/dist/cjs/AD728x90-c92f784d.js +1 -0
- package/dist/cjs/AD728x90.js +1 -109
- package/dist/cjs/ADFloatingFooter-f0650a0e.js +1 -0
- package/dist/cjs/ADFloatingFooter.js +1 -143
- package/dist/cjs/ADFooter-b3d98c5f.js +1 -0
- package/dist/cjs/ADFooter.js +1 -53
- package/dist/cjs/ADGutter-8451a0e7.js +1 -0
- package/dist/cjs/ADGutter.js +1 -115
- package/dist/cjs/ADInfeed-7019b746.js +1 -0
- package/dist/cjs/ADSkyscraper-2db48edc.js +1 -0
- package/dist/cjs/ADSkyscraper.js +1 -117
- package/dist/cjs/ADSponsoredResources-126ab84c.js +1 -0
- package/dist/cjs/ADSponsoredResources.js +1 -114
- package/dist/cjs/ADWebcast-26543865.js +1 -0
- package/dist/cjs/ADWebcast.js +1 -119
- package/dist/cjs/ADWelcome-6261c769.js +1 -0
- package/dist/cjs/ADWelcome.js +1 -166
- package/dist/cjs/ADlgInfeed-42059b30.js +1 -0
- package/dist/cjs/AccordionPanel-b018a969.js +1 -0
- package/dist/cjs/AccordionPanel.js +1 -94
- package/dist/cjs/AdSlot-8a0b4211.js +1 -0
- package/dist/cjs/AdSlot.js +1 -251
- package/dist/cjs/AdSlotsProvider-e06c4b39.js +1 -0
- package/dist/cjs/AdSlotsProvider.js +1 -183
- package/dist/cjs/AlgoliaSearch-05bab51c.js +1 -0
- package/dist/cjs/AlgoliaSearch.js +1 -195
- package/dist/cjs/AlphabeticList-94ed00ad.js +1 -0
- package/dist/cjs/AlphabeticList.js +1 -135
- package/dist/cjs/ArticleCarousel-6599cb34.js +1 -0
- package/dist/cjs/ArticleCarousel.js +1 -46
- package/dist/cjs/ArticleProgramLandingPage-2cc43252.js +1 -0
- package/dist/cjs/ArticleProgramLandingPage.js +1 -188
- package/dist/cjs/ArticleSeriesLandingPage-4af0758a.js +1 -0
- package/dist/cjs/ArticleSeriesLandingPage.js +1 -162
- package/dist/cjs/ArticleSeriesListing-476cb622.js +1 -0
- package/dist/cjs/ArticleSeriesListing.js +1 -315
- package/dist/cjs/Auth.js +1 -3514
- package/dist/cjs/AuthWrapper.js +1 -143
- package/dist/cjs/AuthorComponent-dd3ac7f5.js +1 -0
- package/dist/cjs/Beam.js +1 -350
- package/dist/cjs/Breadcrumbs-10474e7d.js +1 -0
- package/dist/cjs/Breadcrumbs.js +1 -107
- package/dist/cjs/CMEDeck-c7276c4c.js +1 -0
- package/dist/cjs/CMEDeck.js +1 -443
- package/dist/cjs/Column1-9a0e0262.js +1 -0
- package/dist/cjs/Column1.js +1 -39
- package/dist/cjs/Column2-47fa24ac.js +1 -0
- package/dist/cjs/Column2.js +1 -74
- package/dist/cjs/Column3-7407a3a2.js +1 -0
- package/dist/cjs/Column3.js +1 -143
- package/dist/cjs/ConferenceArticleCard-a48a5eb4.js +1 -0
- package/dist/cjs/ConferenceArticleCard.js +1 -93
- package/dist/cjs/ConferenceBanner-9fb497af.js +1 -0
- package/dist/cjs/ContentCard-0543793a.js +1 -0
- package/dist/cjs/ContentCardPaginated.js +1 -417
- package/dist/cjs/DeckContent.js +1 -507
- package/dist/cjs/DeckQueue.js +1 -403
- package/dist/cjs/DeckQueuePaginated.js +1 -348
- package/dist/cjs/Dfp-eb398ac3.js +1 -0
- package/dist/cjs/DropdownButton-3f21ccbf.js +6 -0
- package/dist/cjs/Dvm-4aab0fca.js +1 -0
- package/dist/cjs/EventsDeck-7614cec4.js +1 -0
- package/dist/cjs/EventsDeck.js +1 -884
- package/dist/cjs/ExternalResources-c1d4e253.js +1 -0
- package/dist/cjs/ExternalResources.js +1 -222
- package/dist/cjs/Feature-4254dfe3.js +1 -0
- package/dist/cjs/Feature.js +1 -129
- package/dist/cjs/ForbesHero-82c18210.js +1 -0
- package/dist/cjs/ForbesHero.js +1 -137
- package/dist/cjs/GridContent-6c8dd8e5.js +1 -0
- package/dist/cjs/GridContent.js +1 -828
- package/dist/cjs/GridContentPaginated.js +1 -704
- package/dist/cjs/GridHero-c6784d3f.js +1 -0
- package/dist/cjs/GridHero.js +1 -147
- package/dist/cjs/GroupDeck-6920bcf7.js +1 -0
- package/dist/cjs/GroupDeck.js +1 -314
- package/dist/cjs/HamMagazine.js +1 -602
- package/dist/cjs/HamburgerNav-02a13006.js +1 -0
- package/dist/cjs/Header-268a2cda.js +1 -0
- package/dist/cjs/Header.js +1 -39
- package/dist/cjs/HealthCareProfessionalModal.js +1 -78
- package/dist/cjs/Hero-79a1f7a3.js +1 -0
- package/dist/cjs/Hero.js +1 -48
- package/dist/cjs/HighlightenVideo-20edba55.js +1 -0
- package/dist/cjs/HighlightenVideo.js +1 -69
- package/dist/cjs/HorizontalArticleListing-4a44f354.js +1 -0
- package/dist/cjs/HorizontalArticleListing.js +1 -169
- package/dist/cjs/HorizontalHero-c5a3cb7a.js +1 -0
- package/dist/cjs/HorizontalHero.js +1 -111
- package/dist/cjs/ImageSlider-d1359f16.js +1 -0
- package/dist/cjs/IssueContentDeck-48a04696.js +1 -0
- package/dist/cjs/IssueContentDeck.js +1 -241
- package/dist/cjs/IssueDeck-41ebd17b.js +1 -0
- package/dist/cjs/IssueDeck.js +1 -268
- package/dist/cjs/IssueLanding-06765ae0.js +1 -0
- package/dist/cjs/IssueLanding.js +1 -176
- package/dist/cjs/KMTracker-4e1de793.js +1 -0
- package/dist/cjs/KMTracker.js +1 -27
- package/dist/cjs/LeftNav-c7283941.js +1 -0
- package/dist/cjs/LeftNav.js +1 -154
- package/dist/cjs/Magazine-0d15b137.js +1 -0
- package/dist/cjs/MasterDeck-0e168ac1.js +1 -0
- package/dist/cjs/MasterDeck.js +1 -555
- package/dist/cjs/MasterDeckPaginated.js +1 -469
- package/dist/cjs/MediaSeriesCard-07b6f758.js +1 -0
- package/dist/cjs/MediaSeriesLanding.js +1 -508
- package/dist/cjs/MediaSeriesLandingPaginated.js +1 -534
- package/dist/cjs/Native-ee78edeb.js +1 -0
- package/dist/cjs/NavDvm.js +1 -276
- package/dist/cjs/NavFooter-f905aca3.js +1 -0
- package/dist/cjs/NavMagazine.js +1 -613
- package/dist/cjs/NavNative.js +1 -880
- package/dist/cjs/Normal-ad14a1b1.js +1 -0
- package/dist/cjs/OncliveHero-5c7454fe.js +1 -0
- package/dist/cjs/OncliveHero.js +1 -79
- package/dist/cjs/OncliveLargeHero-46e0a793.js +1 -0
- package/dist/cjs/OncliveLargeHero.js +1 -241
- package/dist/cjs/PageFilter-bdffe62b.js +1 -0
- package/dist/cjs/PageFilter.js +1 -72
- package/dist/cjs/Pagination-825e4903.js +1 -0
- package/dist/cjs/PartnerDetailListing-848c514f.js +1 -0
- package/dist/cjs/PartnerDetailListing.js +1 -344
- package/dist/cjs/PartnerDetailListingPaginated.js +1 -353
- package/dist/cjs/PdfDownload-c99142ff.js +1 -0
- package/dist/cjs/PdfDownload.js +1 -28
- package/dist/cjs/PixelTracking.js +1 -165
- package/dist/cjs/PodcastsLanding.js +1 -236
- package/dist/cjs/PopUpModal-c1cbf9b6.js +1 -0
- package/dist/cjs/PopUpModal.js +1 -58
- package/dist/cjs/PtceDeck.js +1 -149
- package/dist/cjs/PubSection-08e834ca.js +1 -0
- package/dist/cjs/PubSection.js +1 -120
- package/dist/cjs/PubToc-6e2a3f50.js +1 -0
- package/dist/cjs/PubToc.js +1 -87
- package/dist/cjs/PublicationDeck-e242bd17.js +1 -0
- package/dist/cjs/PublicationDeck.js +1 -183
- package/dist/cjs/PublicationFeature-0e2014fb.js +1 -0
- package/dist/cjs/PublicationLanding-d54d80d4.js +1 -0
- package/dist/cjs/PublicationLanding.js +1 -853
- package/dist/cjs/Queue-8e0e436f.js +1 -0
- package/dist/cjs/QueueDeckExpanded-e420bdec.js +1 -0
- package/dist/cjs/QueueDeckExpanded.js +1 -1540
- package/dist/cjs/QueueDeckExpandedPaginated.js +1 -1388
- package/dist/cjs/RecentNews.js +1 -91
- package/dist/cjs/RelatedContent-4ac0ceca.js +1 -0
- package/dist/cjs/RelatedContent.js +1 -114
- package/dist/cjs/RelatedTopicsDropdown-4736b927.js +1 -0
- package/dist/cjs/RelatedTopicsDropdown.js +1 -90
- package/dist/cjs/RolesDeck-83cbb45e.js +1 -0
- package/dist/cjs/RolesDeck.js +1 -94
- package/dist/cjs/Schema-8c138aa8.js +1 -0
- package/dist/cjs/Schema.js +1 -103
- package/dist/cjs/Search.js +1 -66
- package/dist/cjs/Segment.js +1 -452
- package/dist/cjs/SeriesListingDeck.js +1 -248
- package/dist/cjs/SeriesSlider-720871f8.js +1 -0
- package/dist/cjs/SetCookie.js +1 -10
- package/dist/cjs/SideFooter-17e666a3.js +1 -0
- package/dist/cjs/SideFooter.js +1 -150
- package/dist/cjs/SocialIcons-425827d3.js +1 -0
- package/dist/cjs/SocialIcons.js +1 -103
- package/dist/cjs/SocialNavFooter-8f053a08.js +1 -0
- package/dist/cjs/SocialSearchComponent-dea3dbc8.js +1 -0
- package/dist/cjs/SocialShare-3d7c8abe.js +1 -0
- package/dist/cjs/SocialShare.js +1 -74
- package/dist/cjs/TaxonomyCard-e881cb43.js +1 -0
- package/dist/cjs/TaxonomyCard.js +1 -257
- package/dist/cjs/TaxonomyDescription-9a13ded6.js +1 -0
- package/dist/cjs/TaxonomyDescription.js +1 -209
- package/dist/cjs/TemplateNormal.js +1 -203
- package/dist/cjs/ThumbnailCard-101f04b8.js +1 -0
- package/dist/cjs/ThumbnailCard.js +1 -59
- package/dist/cjs/Ustream-b7692d0a.js +1 -0
- package/dist/cjs/Ustream.js +1 -156
- package/dist/cjs/VerticalHero-a61b1a2e.js +1 -0
- package/dist/cjs/VerticalHero.js +1 -74
- package/dist/cjs/VideoProgramLandingPage-5508836c.js +1 -0
- package/dist/cjs/VideoProgramLandingPage.js +1 -264
- package/dist/cjs/VideoSeriesCard.js +1 -88
- package/dist/cjs/VideoSeriesFilter-9650cf01.js +1 -0
- package/dist/cjs/VideoSeriesFilter.js +1 -128
- package/dist/cjs/VideoSeriesLandingPage-d1fae653.js +1 -0
- package/dist/cjs/VideoSeriesLandingPage.js +1 -178
- package/dist/cjs/VideoSeriesListing-91f5aa6d.js +1 -0
- package/dist/cjs/VideoSeriesListing.js +1 -422
- package/dist/cjs/View.js +1 -2680
- package/dist/cjs/YahooHero-2df6a408.js +1 -0
- package/dist/cjs/YahooHero.js +1 -126
- package/dist/cjs/YoutubeGroup-d8a93da0.js +1 -0
- package/dist/cjs/YoutubeGroup.js +1 -371
- package/dist/cjs/_commonjsHelpers-0a7b82d9.js +1 -0
- package/dist/cjs/beam-aaf6fbe9.js +1 -0
- package/dist/cjs/checkSisterSite-d2d62375.js +1 -0
- package/dist/cjs/defineProperty-ba7cd53d.js +1 -0
- package/dist/cjs/entities-8feddf1d.js +1 -0
- package/dist/cjs/extends-5ede7877.js +1 -0
- package/dist/cjs/faundadb.js +1 -406
- package/dist/cjs/getContentCategory-ee6d9fdf.js +1 -0
- package/dist/cjs/getKeywords-5341ea76.js +1 -0
- package/dist/cjs/getKeywords.js +1 -46
- package/dist/cjs/getPrototypeOf-99b1cfd8.js +1 -0
- package/dist/cjs/getPtceActivities.js +1 -89
- package/dist/cjs/getQuery-154617ad.js +1 -0
- package/dist/cjs/getQuery.js +1 -28
- package/dist/cjs/getRelatedArticle-dbed93dc.js +1 -0
- package/dist/cjs/getRelatedArticle.js +1 -478
- package/dist/cjs/getRootDocGroup.js +1 -62
- package/dist/cjs/getSerializers.js +1 -68
- package/dist/cjs/getSeriesDetail-e2980903.js +1 -0
- package/dist/cjs/getSeriesDetail.js +1 -40
- package/dist/cjs/getTargeting-a1ecaa0b.js +1 -0
- package/dist/cjs/getTargeting.js +1 -13
- package/dist/cjs/index-14c8083b.js +1 -0
- package/dist/cjs/index-3291d44c.js +1 -0
- package/dist/cjs/index-5cca2099.js +1 -0
- package/dist/cjs/index-66647f61.js +1 -0
- package/dist/cjs/index.js +1 -643
- package/dist/cjs/searchForm-bb5e3dbf.js +1 -0
- package/dist/cjs/segment-lib-7a16e514.js +1 -0
- package/dist/cjs/setCookie-e72f573d.js +1 -0
- package/dist/cjs/slicedToArray-c9e22c6a.js +1 -0
- package/dist/cjs/style-inject.es-dcee06b6.js +1 -30
- package/dist/cjs/timeDifferenceCalc.js +1 -39
- package/dist/cjs/toConsumableArray-7afb7984.js +1 -0
- package/dist/cjs/typeof-a861d137.js +1 -0
- package/dist/cjs/unsupportedIterableToArray-294d47a8.js +1 -0
- package/dist/cjs/urlFor-86a2f4db.js +1 -0
- package/dist/cjs/urlFor.js +1 -65
- package/dist/cjs/urlForFile-52afb8e9.js +1 -0
- package/dist/cjs/ustream-api-05a918f3.js +1 -0
- package/dist/esm/AD-8a57f623.js +1 -0
- package/dist/esm/AD.js +1 -26
- package/dist/esm/AD300x250-10ccde99.js +1 -0
- package/dist/esm/AD300x250.js +1 -89
- package/dist/esm/AD300x250x600-10e29b3d.js +1 -0
- package/dist/esm/AD300x250x600.js +1 -106
- package/dist/esm/AD728x90-2b0e930d.js +1 -0
- package/dist/esm/AD728x90.js +1 -103
- package/dist/esm/ADFloatingFooter-f23caacf.js +1 -0
- package/dist/esm/ADFloatingFooter.js +1 -137
- package/dist/esm/ADFooter-4c20b5fc.js +1 -0
- package/dist/esm/ADFooter.js +1 -47
- package/dist/esm/ADGutter-59cf52e3.js +1 -0
- package/dist/esm/ADGutter.js +1 -109
- package/dist/esm/ADInfeed-8ce85d87.js +1 -0
- package/dist/esm/ADSkyscraper-bfd33e46.js +1 -0
- package/dist/esm/ADSkyscraper.js +1 -111
- package/dist/esm/ADSponsoredResources-0410407c.js +1 -0
- package/dist/esm/ADSponsoredResources.js +1 -108
- package/dist/esm/ADWebcast-6f27e384.js +1 -0
- package/dist/esm/ADWebcast.js +1 -113
- package/dist/esm/ADWelcome-421d5621.js +1 -0
- package/dist/esm/ADWelcome.js +1 -160
- package/dist/esm/ADlgInfeed-19d0f057.js +1 -0
- package/dist/esm/AccordionPanel-123022f0.js +1 -0
- package/dist/esm/AccordionPanel.js +1 -87
- package/dist/esm/AdSlot-16696371.js +1 -0
- package/dist/esm/AdSlot.js +1 -244
- package/dist/esm/AdSlotsProvider-5ead284e.js +1 -0
- package/dist/esm/AdSlotsProvider.js +1 -176
- package/dist/esm/AlgoliaSearch-1343b721.js +1 -0
- package/dist/esm/AlgoliaSearch.js +1 -188
- package/dist/esm/AlphabeticList-f1ca5612.js +1 -0
- package/dist/esm/AlphabeticList.js +1 -129
- package/dist/esm/ArticleCarousel-ba29666c.js +1 -0
- package/dist/esm/ArticleCarousel.js +1 -40
- package/dist/esm/ArticleProgramLandingPage-d996da8f.js +1 -0
- package/dist/esm/ArticleProgramLandingPage.js +1 -182
- package/dist/esm/ArticleSeriesLandingPage-67cda955.js +1 -0
- package/dist/esm/ArticleSeriesLandingPage.js +1 -156
- package/dist/esm/ArticleSeriesListing-22e8f5a6.js +1 -0
- package/dist/esm/ArticleSeriesListing.js +1 -308
- package/dist/esm/Auth.js +1 -3494
- package/dist/esm/AuthWrapper.js +1 -136
- package/dist/esm/AuthorComponent-f3e14fdd.js +1 -0
- package/dist/esm/Beam.js +1 -348
- package/dist/esm/Breadcrumbs-8838701e.js +1 -0
- package/dist/esm/Breadcrumbs.js +1 -100
- package/dist/esm/CMEDeck-182d8eb7.js +1 -0
- package/dist/esm/CMEDeck.js +1 -437
- package/dist/esm/Column1-3304e0a7.js +1 -0
- package/dist/esm/Column1.js +1 -29
- package/dist/esm/Column2-2d42433b.js +1 -0
- package/dist/esm/Column2.js +1 -64
- package/dist/esm/Column3-94c8661b.js +1 -0
- package/dist/esm/Column3.js +1 -133
- package/dist/esm/ConferenceArticleCard-c10c5b7f.js +1 -0
- package/dist/esm/ConferenceArticleCard.js +1 -87
- package/dist/esm/ConferenceBanner-8a6f3ed9.js +1 -0
- package/dist/esm/ContentCard-01c2e43a.js +1 -0
- package/dist/esm/ContentCardPaginated.js +1 -406
- package/dist/esm/DeckContent.js +1 -497
- package/dist/esm/DeckQueue.js +1 -393
- package/dist/esm/DeckQueuePaginated.js +1 -337
- package/dist/esm/Dfp-c3c626b1.js +1 -0
- package/dist/esm/DropdownButton-c4621022.js +6 -0
- package/dist/esm/Dvm-138f924d.js +1 -0
- package/dist/esm/EventsDeck-e5aad41d.js +1 -0
- package/dist/esm/EventsDeck.js +1 -871
- package/dist/esm/ExternalResources-e9656681.js +1 -0
- package/dist/esm/ExternalResources.js +1 -215
- package/dist/esm/Feature-69a30cea.js +1 -0
- package/dist/esm/Feature.js +1 -122
- package/dist/esm/ForbesHero-0b0a5436.js +1 -0
- package/dist/esm/ForbesHero.js +1 -131
- package/dist/esm/GridContent-d8df59ae.js +1 -0
- package/dist/esm/GridContent.js +1 -818
- package/dist/esm/GridContentPaginated.js +1 -693
- package/dist/esm/GridHero-0d17636c.js +1 -0
- package/dist/esm/GridHero.js +1 -141
- package/dist/esm/GroupDeck-4c581822.js +1 -0
- package/dist/esm/GroupDeck.js +1 -308
- package/dist/esm/HamMagazine.js +1 -590
- package/dist/esm/HamburgerNav-5fcf79ae.js +1 -0
- package/dist/esm/Header-b0624adc.js +1 -0
- package/dist/esm/Header.js +1 -30
- package/dist/esm/HealthCareProfessionalModal.js +1 -70
- package/dist/esm/Hero-1b663f28.js +1 -0
- package/dist/esm/Hero.js +1 -42
- package/dist/esm/HighlightenVideo-5c3fd0fd.js +1 -0
- package/dist/esm/HighlightenVideo.js +1 -63
- package/dist/esm/HorizontalArticleListing-cccace2e.js +1 -0
- package/dist/esm/HorizontalArticleListing.js +1 -163
- package/dist/esm/HorizontalHero-8633a55c.js +1 -0
- package/dist/esm/HorizontalHero.js +1 -105
- package/dist/esm/ImageSlider-c354db50.js +1 -0
- package/dist/esm/IssueContentDeck-915409a7.js +1 -0
- package/dist/esm/IssueContentDeck.js +1 -231
- package/dist/esm/IssueDeck-61a4a550.js +1 -0
- package/dist/esm/IssueDeck.js +1 -258
- package/dist/esm/IssueLanding-a59c91ee.js +1 -0
- package/dist/esm/IssueLanding.js +1 -170
- package/dist/esm/KMTracker-d9e1c288.js +1 -0
- package/dist/esm/KMTracker.js +1 -25
- package/dist/esm/LeftNav-a3852fbe.js +1 -0
- package/dist/esm/LeftNav.js +1 -145
- package/dist/esm/Magazine-7d6e5dcd.js +1 -0
- package/dist/esm/MasterDeck-41c7cd70.js +1 -0
- package/dist/esm/MasterDeck.js +1 -548
- package/dist/esm/MasterDeckPaginated.js +1 -461
- package/dist/esm/MediaSeriesCard-cf72ce87.js +1 -0
- package/dist/esm/MediaSeriesLanding.js +1 -501
- package/dist/esm/MediaSeriesLandingPaginated.js +1 -527
- package/dist/esm/Native-bf89940a.js +1 -0
- package/dist/esm/NavDvm.js +1 -264
- package/dist/esm/NavFooter-83d89acd.js +1 -0
- package/dist/esm/NavMagazine.js +1 -601
- package/dist/esm/NavNative.js +1 -865
- package/dist/esm/Normal-06895213.js +1 -0
- package/dist/esm/OncliveHero-19794e52.js +1 -0
- package/dist/esm/OncliveHero.js +1 -73
- package/dist/esm/OncliveLargeHero-01d4c10f.js +1 -0
- package/dist/esm/OncliveLargeHero.js +1 -235
- package/dist/esm/PageFilter-81144bcb.js +1 -0
- package/dist/esm/PageFilter.js +1 -66
- package/dist/esm/Pagination-44c3ff7c.js +1 -0
- package/dist/esm/PartnerDetailListing-429d60e1.js +1 -0
- package/dist/esm/PartnerDetailListing.js +1 -338
- package/dist/esm/PartnerDetailListingPaginated.js +1 -347
- package/dist/esm/PdfDownload-eff648d3.js +1 -0
- package/dist/esm/PdfDownload.js +1 -22
- package/dist/esm/PixelTracking.js +1 -156
- package/dist/esm/PodcastsLanding.js +1 -229
- package/dist/esm/PopUpModal-a2735a23.js +1 -0
- package/dist/esm/PopUpModal.js +1 -51
- package/dist/esm/PtceDeck.js +1 -143
- package/dist/esm/PubSection-3d940b53.js +1 -0
- package/dist/esm/PubSection.js +1 -114
- package/dist/esm/PubToc-52a85696.js +1 -0
- package/dist/esm/PubToc.js +1 -81
- package/dist/esm/PublicationDeck-538d397e.js +1 -0
- package/dist/esm/PublicationDeck.js +1 -173
- package/dist/esm/PublicationFeature-6deea07c.js +1 -0
- package/dist/esm/PublicationLanding-48ebce9b.js +1 -0
- package/dist/esm/PublicationLanding.js +1 -843
- package/dist/esm/Queue-847df47f.js +1 -0
- package/dist/esm/QueueDeckExpanded-fdc60f72.js +1 -0
- package/dist/esm/QueueDeckExpanded.js +1 -1534
- package/dist/esm/QueueDeckExpandedPaginated.js +1 -1382
- package/dist/esm/RecentNews.js +1 -85
- package/dist/esm/RelatedContent-f3eaad29.js +1 -0
- package/dist/esm/RelatedContent.js +1 -108
- package/dist/esm/RelatedTopicsDropdown-0cf5829a.js +1 -0
- package/dist/esm/RelatedTopicsDropdown.js +1 -82
- package/dist/esm/RolesDeck-6146633e.js +1 -0
- package/dist/esm/RolesDeck.js +1 -84
- package/dist/esm/Schema-c7f42de0.js +1 -0
- package/dist/esm/Schema.js +1 -97
- package/dist/esm/Search.js +1 -57
- package/dist/esm/Segment.js +1 -450
- package/dist/esm/SeriesListingDeck.js +1 -242
- package/dist/esm/SeriesSlider-a00cd257.js +1 -0
- package/dist/esm/SetCookie.js +1 -8
- package/dist/esm/SideFooter-7cd5abc0.js +1 -0
- package/dist/esm/SideFooter.js +1 -144
- package/dist/esm/SocialIcons-c7861c13.js +1 -0
- package/dist/esm/SocialIcons.js +1 -97
- package/dist/esm/SocialNavFooter-66c6cf3c.js +1 -0
- package/dist/esm/SocialSearchComponent-e74e11f8.js +1 -0
- package/dist/esm/SocialShare-9cc43665.js +1 -0
- package/dist/esm/SocialShare.js +1 -67
- package/dist/esm/TaxonomyCard-507f5c95.js +1 -0
- package/dist/esm/TaxonomyCard.js +1 -247
- package/dist/esm/TaxonomyDescription-ee6ae52e.js +1 -0
- package/dist/esm/TaxonomyDescription.js +1 -202
- package/dist/esm/TemplateNormal.js +1 -196
- package/dist/esm/ThumbnailCard-b7a3af71.js +1 -0
- package/dist/esm/ThumbnailCard.js +1 -52
- package/dist/esm/Ustream-29dc2277.js +1 -0
- package/dist/esm/Ustream.js +1 -150
- package/dist/esm/VerticalHero-ffc93a70.js +1 -0
- package/dist/esm/VerticalHero.js +1 -68
- package/dist/esm/VideoProgramLandingPage-179db5b2.js +1 -0
- package/dist/esm/VideoProgramLandingPage.js +1 -255
- package/dist/esm/VideoSeriesCard.js +1 -82
- package/dist/esm/VideoSeriesFilter-b6bd4c07.js +1 -0
- package/dist/esm/VideoSeriesFilter.js +1 -122
- package/dist/esm/VideoSeriesLandingPage-180a2469.js +1 -0
- package/dist/esm/VideoSeriesLandingPage.js +1 -172
- package/dist/esm/VideoSeriesListing-62650a53.js +1 -0
- package/dist/esm/VideoSeriesListing.js +1 -415
- package/dist/esm/View.js +1 -2669
- package/dist/esm/YahooHero-ddfeb2a5.js +1 -0
- package/dist/esm/YahooHero.js +1 -120
- package/dist/esm/YoutubeGroup-1dd6f1ba.js +1 -0
- package/dist/esm/YoutubeGroup.js +1 -365
- package/dist/esm/_commonjsHelpers-57e89916.js +1 -0
- package/dist/esm/beam-50a5c4d8.js +1 -0
- package/dist/esm/checkSisterSite-20e2bf62.js +1 -0
- package/dist/esm/defineProperty-18999f8e.js +1 -0
- package/dist/esm/entities-8b138943.js +1 -0
- package/dist/esm/extends-e61fd370.js +1 -0
- package/dist/esm/faundadb.js +1 -396
- package/dist/esm/getContentCategory-f99fdf90.js +1 -0
- package/dist/esm/getKeywords-2512775a.js +1 -0
- package/dist/esm/getKeywords.js +1 -44
- package/dist/esm/getPrototypeOf-a8361cb6.js +1 -0
- package/dist/esm/getPtceActivities.js +1 -87
- package/dist/esm/getQuery-bfc0390c.js +1 -0
- package/dist/esm/getQuery.js +1 -26
- package/dist/esm/getRelatedArticle-66a08458.js +1 -0
- package/dist/esm/getRelatedArticle.js +1 -476
- package/dist/esm/getRootDocGroup.js +1 -60
- package/dist/esm/getSerializers.js +1 -62
- package/dist/esm/getSeriesDetail-aef9680c.js +1 -0
- package/dist/esm/getSeriesDetail.js +1 -38
- package/dist/esm/getTargeting-eeb7bb6a.js +1 -0
- package/dist/esm/getTargeting.js +1 -7
- package/dist/esm/index-00bbf2b1.js +1 -0
- package/dist/esm/index-24498aa0.js +1 -0
- package/dist/esm/index-541d17f5.js +1 -0
- package/dist/esm/index-a96a4f73.js +1 -0
- package/dist/esm/index.js +1 -536
- package/dist/esm/searchForm-8218e558.js +1 -0
- package/dist/esm/segment-lib-3a19dbdd.js +1 -0
- package/dist/esm/setCookie-0f2ab6df.js +1 -0
- package/dist/esm/slicedToArray-f57adb2c.js +1 -0
- package/dist/esm/style-inject.es-1f59c1d0.js +1 -28
- package/dist/esm/timeDifferenceCalc.js +1 -37
- package/dist/esm/toConsumableArray-2f86a0c1.js +1 -0
- package/dist/esm/typeof-92b42de1.js +1 -0
- package/dist/esm/unsupportedIterableToArray-b359dd50.js +1 -0
- package/dist/esm/urlFor-649884fa.js +1 -0
- package/dist/esm/urlFor.js +1 -63
- package/dist/esm/urlForFile-3b87fb01.js +1 -0
- package/dist/esm/ustream-api-7998d140.js +1 -0
- package/package.json +23 -22
- package/dist/cjs/ADInfeed-08a6ef56.js +0 -66
- package/dist/cjs/ADlgInfeed-f46139b2.js +0 -60
- package/dist/cjs/AuthorComponent-17e1c62b.js +0 -96
- package/dist/cjs/BlockContent-8b494587.js +0 -916
- package/dist/cjs/ConferenceBanner-6c9e718a.js +0 -24
- package/dist/cjs/Dfp-bcaa7e3f.js +0 -103
- package/dist/cjs/ImageSlider-10cd194f.js +0 -1383
- package/dist/cjs/MediaSeriesCard-a6e3f32e.js +0 -81
- package/dist/cjs/NavFooter-4799de4b.js +0 -71
- package/dist/cjs/Pagination-7624a3bd.js +0 -90
- package/dist/cjs/PublicationFeature-6f89fb97.js +0 -130
- package/dist/cjs/SeriesSlider-08699353.js +0 -332
- package/dist/cjs/SocialSearchComponent-59192efd.js +0 -213
- package/dist/cjs/Tooltip-7be5df78.js +0 -9229
- package/dist/cjs/_commonjsHelpers-06173234.js +0 -25
- package/dist/cjs/_is-array-aa52fa1e.js +0 -74
- package/dist/cjs/_iter-detect-05795553.js +0 -52
- package/dist/cjs/_library-dd23b178.js +0 -5
- package/dist/cjs/_object-pie-68c5bcbc.js +0 -16
- package/dist/cjs/_object-sap-171b9ea5.js +0 -16
- package/dist/cjs/_object-to-array-9bac8737.js +0 -25
- package/dist/cjs/asyncToGenerator-df19209d.js +0 -1395
- package/dist/cjs/brightcove-react-player-loader.es-5c98aec7.js +0 -2232
- package/dist/cjs/checkSisterSite-b29833b2.js +0 -19
- package/dist/cjs/core.get-iterator-method-f3c44602.js +0 -584
- package/dist/cjs/debounce-529c8d06.js +0 -216
- package/dist/cjs/define-property-21887c62.js +0 -20
- package/dist/cjs/entities-310b46ee.js +0 -506
- package/dist/cjs/eq-bb2843ed.js +0 -79
- package/dist/cjs/extends-7df78678.js +0 -86
- package/dist/cjs/get-adbb11e3.js +0 -920
- package/dist/cjs/getContentCategory-f38a4c00.js +0 -11
- package/dist/cjs/getTargeting-5eabd6e2.js +0 -164
- package/dist/cjs/iconBase-68959171.js +0 -84
- package/dist/cjs/index-187c967e.js +0 -54
- package/dist/cjs/index-44481153.js +0 -1664
- package/dist/cjs/index-99edf08a.js +0 -1572
- package/dist/cjs/index-9d365128.js +0 -613
- package/dist/cjs/index-b278e08f.js +0 -10526
- package/dist/cjs/index-b5eb3ff8.js +0 -551
- package/dist/cjs/index-bd6c9f56.js +0 -211
- package/dist/cjs/index.es-f3e47207.js +0 -445
- package/dist/cjs/index.esm-44f3e2d0.js +0 -13
- package/dist/cjs/index.esm-48e0f0d8.js +0 -19
- package/dist/cjs/index.esm-f4cf6943.js +0 -97
- package/dist/cjs/index.esm-f93506ac.js +0 -25
- package/dist/cjs/inherits-420ee86f.js +0 -185
- package/dist/cjs/isSymbol-04666465.js +0 -209
- package/dist/cjs/js.cookie-a511c430.js +0 -160
- package/dist/cjs/keys-d207942e.js +0 -25
- package/dist/cjs/lodash-7fd85bcf.js +0 -17147
- package/dist/cjs/main-7b5e57b0.js +0 -898
- package/dist/cjs/md5-e1ca5797.js +0 -323
- package/dist/cjs/moment-ca3bd9fb.js +0 -5669
- package/dist/cjs/react-social-icons-07939b41.js +0 -616
- package/dist/cjs/slicedToArray-f6d4eaa8.js +0 -95
- package/dist/cjs/smoothscroll-5054361f.js +0 -438
- package/dist/cjs/stringify-bbc68047.js +0 -17
- package/dist/cjs/toConsumableArray-c9b8a0d0.js +0 -74
- package/dist/cjs/toNumber-36d1e7e5.js +0 -69
- package/dist/cjs/typeof-ec08d471.js +0 -382
- package/dist/cjs/urlForFile-ad96158c.js +0 -24
- package/dist/cjs/ustream-api-9ebe112f.js +0 -106
- package/dist/cjs/util-f2c1b65b.js +0 -576
- package/dist/cjs/visibility-sensor-eb2c5b69.js +0 -597
- package/dist/cjs/web.dom.iterable-e34bf324.js +0 -50
- package/dist/esm/ADInfeed-36973a76.js +0 -59
- package/dist/esm/ADlgInfeed-f6e898d5.js +0 -54
- package/dist/esm/AuthorComponent-b0a47123.js +0 -90
- package/dist/esm/BlockContent-d05b5b23.js +0 -909
- package/dist/esm/ConferenceBanner-9162d0ca.js +0 -18
- package/dist/esm/Dfp-e151d2de.js +0 -96
- package/dist/esm/ImageSlider-5ae6287a.js +0 -1375
- package/dist/esm/MediaSeriesCard-66045ffb.js +0 -75
- package/dist/esm/NavFooter-da30eae3.js +0 -65
- package/dist/esm/Pagination-1e09918f.js +0 -82
- package/dist/esm/PublicationFeature-0379cc20.js +0 -121
- package/dist/esm/SeriesSlider-b364d074.js +0 -326
- package/dist/esm/SocialSearchComponent-09b55779.js +0 -204
- package/dist/esm/Tooltip-af3e4ee9.js +0 -9220
- package/dist/esm/_commonjsHelpers-0c4b6f40.js +0 -19
- package/dist/esm/_is-array-31d40a83.js +0 -71
- package/dist/esm/_iter-detect-72edfd60.js +0 -48
- package/dist/esm/_library-528f1934.js +0 -3
- package/dist/esm/_object-pie-33c40e79.js +0 -13
- package/dist/esm/_object-sap-4201ccf6.js +0 -14
- package/dist/esm/_object-to-array-fa0feeff.js +0 -23
- package/dist/esm/asyncToGenerator-9c835201.js +0 -1387
- package/dist/esm/brightcove-react-player-loader.es-4abff0b1.js +0 -2226
- package/dist/esm/checkSisterSite-baa4fb6b.js +0 -17
- package/dist/esm/core.get-iterator-method-8c71f470.js +0 -547
- package/dist/esm/debounce-9207d8ee.js +0 -214
- package/dist/esm/define-property-a8a00786.js +0 -18
- package/dist/esm/entities-7cc3bf45.js +0 -503
- package/dist/esm/eq-b470f743.js +0 -76
- package/dist/esm/extends-7fbbe94e.js +0 -83
- package/dist/esm/get-1e515072.js +0 -918
- package/dist/esm/getContentCategory-15dcc413.js +0 -9
- package/dist/esm/getTargeting-eed01f73.js +0 -161
- package/dist/esm/iconBase-602d52fe.js +0 -81
- package/dist/esm/index-1819118a.js +0 -1655
- package/dist/esm/index-3a7c5bbe.js +0 -10504
- package/dist/esm/index-51a80699.js +0 -548
- package/dist/esm/index-6c12bdd5.js +0 -605
- package/dist/esm/index-c7e2ac95.js +0 -52
- package/dist/esm/index-db3bb315.js +0 -207
- package/dist/esm/index-fa2ffe86.js +0 -1570
- package/dist/esm/index.es-c6222053.js +0 -439
- package/dist/esm/index.esm-55f22b35.js +0 -14
- package/dist/esm/index.esm-9d701385.js +0 -90
- package/dist/esm/index.esm-c6715e80.js +0 -10
- package/dist/esm/index.esm-d1125763.js +0 -18
- package/dist/esm/inherits-d26c739e.js +0 -179
- package/dist/esm/isSymbol-1981418f.js +0 -203
- package/dist/esm/js.cookie-6874175c.js +0 -158
- package/dist/esm/keys-5e9bd229.js +0 -23
- package/dist/esm/lodash-ec8c6b48.js +0 -17145
- package/dist/esm/main-43ca42fe.js +0 -886
- package/dist/esm/md5-4e42248e.js +0 -321
- package/dist/esm/moment-b6f49411.js +0 -5667
- package/dist/esm/react-social-icons-3822f1ce.js +0 -609
- package/dist/esm/slicedToArray-99bcfd93.js +0 -92
- package/dist/esm/smoothscroll-0cd4c7a6.js +0 -436
- package/dist/esm/stringify-0c65d837.js +0 -15
- package/dist/esm/toConsumableArray-47a5394a.js +0 -71
- package/dist/esm/toNumber-2f7a84cd.js +0 -67
- package/dist/esm/typeof-d92ed6e0.js +0 -378
- package/dist/esm/urlForFile-0fc42ed8.js +0 -22
- package/dist/esm/ustream-api-cbba615a.js +0 -104
- package/dist/esm/util-7700fc59.js +0 -574
- package/dist/esm/visibility-sensor-f40c2564.js +0 -590
- package/dist/esm/web.dom.iterable-406140e0.js +0 -48
|
@@ -1,2232 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _commonjsHelpers = require('./_commonjsHelpers-06173234.js');
|
|
4
|
-
var React = require('react');
|
|
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, "&")
|
|
285
|
-
.replace(/</g, "<")
|
|
286
|
-
.replace(/>/g, ">")
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
function escapeAttributeValue(str) {
|
|
290
|
-
return escapeText(str).replace(/"/g, """)
|
|
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;
|