{"version":3,"file":"index.js","mappings":"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AW,CAAC,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IA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","sources":["webpack://lib/webpack/universalModuleDefinition","webpack://lib/./api/globalVintomNamespace/GlobalVintomNamespace.ts","webpack://lib/./api/model/error/VintomError.ts","webpack://lib/./api/player/Player.ts","webpack://lib/./api/player/PlayerAPIImpl.tsx","webpack://lib/./components/icons/fullscreen/FullscreenDisableIconComponent.tsx","webpack://lib/./components/icons/fullscreen/FullscreenEnableIconComponent.tsx","webpack://lib/./components/icons/loader/LoaderIconComponent.tsx","webpack://lib/./components/icons/playback/PauseIconComponent.tsx","webpack://lib/./components/icons/playback/PlayIconComponent.tsx","webpack://lib/./components/icons/playback/ReplayIconComponent.tsx","webpack://lib/./components/icons/socialShare/FacebookIconComponent.tsx","webpack://lib/./components/icons/socialShare/SocialShareIconComponent.tsx","webpack://lib/./components/icons/socialShare/TwitterIconComponent.tsx","webpack://lib/./components/icons/subtitles/SubtitlesIconComponent.tsx","webpack://lib/./components/icons/subtitles/SubtitlesSelectedIconComponent.tsx","webpack://lib/./components/icons/volume/VolumeLoudIconComponent.tsx","webpack://lib/./components/icons/volume/VolumeMutedIconComponent.tsx","webpack://lib/./components/icons/volume/VolumeQuietIconComponent.tsx","webpack://lib/./components/layer/AnimationLayerComponent.tsx","webpack://lib/./components/layer/CTALayerComponent.tsx","webpack://lib/./components/layer/ControlsLayerComponent.tsx","webpack://lib/./components/layer/MusicLayerComponent.tsx","webpack://lib/./components/layer/PosterLayerComponent.tsx","webpack://lib/./components/layer/VideoLayerComponent.tsx","webpack://lib/./components/layer/controls/common/LoadingPageComponent.tsx","webpack://lib/./components/layer/controls/common/MenuButtonComponent.tsx","webpack://lib/./components/layer/controls/common/MessageComponent.tsx","webpack://lib/./components/layer/controls/common/PartComponent.tsx","webpack://lib/./components/layer/controls/common/SliderComponent.tsx","webpack://lib/./components/layer/controls/common/SocialShareComponent.tsx","webpack://lib/./components/layer/controls/common/SubtitleSelectorComponent.tsx","webpack://lib/./components/layer/controls/common/SubtitlesDisplayComponent.tsx","webpack://lib/./components/layer/controls/common/ToggleComponent.tsx","webpack://lib/./components/layer/controls/common/TooltipComponent.tsx","webpack://lib/./components/layer/controls/desktop/DesktopControlsLayerComponent.tsx","webpack://lib/./components/layer/controls/desktop/DesktopFullscreenControl.tsx","webpack://lib/./components/layer/controls/desktop/DesktopMenuComponent.tsx","webpack://lib/./components/layer/controls/desktop/DesktopOverlayComponent.tsx","webpack://lib/./components/layer/controls/desktop/DesktopSeekbarComponent.tsx","webpack://lib/./components/layer/controls/desktop/ExpandableMenuButtonComponent.tsx","webpack://lib/./components/layer/controls/desktop/MenuButtonWithTooltipComponent.tsx","webpack://lib/./components/layer/controls/desktop/PlaybackControlComponent.tsx","webpack://lib/./components/layer/controls/desktop/QualityLevelsComponent.tsx","webpack://lib/./components/layer/controls/desktop/ScenarioTimeComponent.tsx","webpack://lib/./components/layer/controls/desktop/VolumeControlComponent.tsx","webpack://lib/./components/layer/controls/mobile/MobileControlsLayerComponent.tsx","webpack://lib/./components/layer/controls/mobile/MobileMenuComponent.tsx","webpack://lib/./components/layer/controls/mobile/MobileOverlayComponent.tsx","webpack://lib/./components/layer/controls/mobile/MobileSeekbarComponent.tsx","webpack://lib/./components/player/PlayerContainerComponent.tsx","webpack://lib/./components/player/UnsupportedBrowserVersionComponent.tsx","webpack://lib/./config/config.ts","webpack://lib/./cta/ctaResource/CTAResource.ts","webpack://lib/./cta/prepackagedCTAs/clickableAreaConditional/clickableAreaConditionalCTA.ts","webpack://lib/./cta/prepackagedCTAs/clickableArea/clickableAreaCTA.ts","webpack://lib/./cta/prepackagedCTAs/clickableButton/clickableButtonCTA.ts","webpack://lib/./cta/prepackagedCTAs/prepackagedCTAs.ts","webpack://lib/./i18n/i18n.ts","webpack://lib/./i18n/i18nEn.ts","webpack://lib/./i18n/i18nEs.ts","webpack://lib/./i18n/i18nPl.ts","webpack://lib/./manager/NotSupportedBrowserPlayerManagerImpl.ts","webpack://lib/./manager/PlayerManagerImpl.ts","webpack://lib/./manager/configurationBuilder/ConfigurationBuilder.ts","webpack://lib/./manager/di/applicationContext.ts","webpack://lib/./manager/di/types.ts","webpack://lib/./manager/errorReporter/ErrorReporter.ts","webpack://lib/./manager/iframeNotifier/IframeNotifier.ts","webpack://lib/./manager/loader/playerLoader/PlayerLoader.ts","webpack://lib/./manager/loader/resourceLoader/ResourceLoader.ts","webpack://lib/./manager/loader/scenarioLoader/CachedCTAResource.ts","webpack://lib/./manager/loader/scenarioLoader/ResourcesCache.ts","webpack://lib/./manager/loader/scenarioLoader/ScenarioLoader.ts","webpack://lib/./manager/personalizer/AnimationPersonalizer.ts","webpack://lib/./manager/personalizer/Personalizer.ts","webpack://lib/./manager/playerAnalytics/AnalyticEvent.ts","webpack://lib/./manager/playerAnalytics/AnalyticsCollector.ts","webpack://lib/./manager/playerAnalytics/GoogleAnalyticsSender.ts","webpack://lib/./manager/playerAnalytics/VintomAnalyticsSender.ts","webpack://lib/./manager/preferencesStorage/PreferencesStorage.ts","webpack://lib/./manager/scenarioRunner/AnimationDrivenScenarioExecutor.ts","webpack://lib/./manager/scenarioRunner/CTAOnlyScenarioExecutor.ts","webpack://lib/./manager/scenarioRunner/ScenarioRunner.ts","webpack://lib/./manager/scenarioRunner/VideoDrivenScenarioExecutor.ts","webpack://lib/./manager/scenarioRunner/layerManager/CTALayerManager.ts","webpack://lib/./manager/scenarioRunner/layerManager/ControlsLayerManager.ts","webpack://lib/./manager/scenarioRunner/layerManager/DependentAnimationLayerManager.ts","webpack://lib/./manager/scenarioRunner/layerManager/IndependentAnimationLayerManager.ts","webpack://lib/./manager/scenarioRunner/layerManager/MusicLayerManager.ts","webpack://lib/./manager/scenarioRunner/layerManager/PlayerContainerManager.ts","webpack://lib/./manager/scenarioRunner/layerManager/PosterLayerManager.ts","webpack://lib/./manager/scenarioRunner/layerManager/VideoLayerManager.ts","webpack://lib/./manager/scenarioRunner/util/ScenarioTimeHelper.ts","webpack://lib/./manager/themeUpdater/ThemeUpdater.ts","webpack://lib/./model/playerConfiguration/AnalyticsEndpoint.ts","webpack://lib/./model/playerConfiguration/Animation.ts","webpack://lib/./model/playerConfiguration/CTA.ts","webpack://lib/./model/playerConfiguration/ConfigurationOverride.ts","webpack://lib/./model/playerConfiguration/FullPlayerConfiguration.ts","webpack://lib/./model/playerConfiguration/Part.ts","webpack://lib/./model/playerConfiguration/PlayerConfiguration.ts","webpack://lib/./model/playerConfiguration/PlayerControls.ts","webpack://lib/./model/playerConfiguration/ScenarioElement.ts","webpack://lib/./model/playerConfiguration/Skin.ts","webpack://lib/./model/playerConfiguration/Soundtrack.ts","webpack://lib/./model/playerConfiguration/Source.ts","webpack://lib/./model/playerConfiguration/Subtitle.ts","webpack://lib/./model/playerConfiguration/Video.ts","webpack://lib/./model/playerConfiguration/VisibilityRange.ts","webpack://lib/./model/scenarioGlobalState/ScenarioGlobalState.ts","webpack://lib/./model/scenarioPath/PastOrCurrentPart.ts","webpack://lib/./model/scenarioPath/ScenarioPath.ts","webpack://lib/./model/storedPreferences/StoredPreferences.ts","webpack://lib/./utils/AspectRatioHelper.ts","webpack://lib/./utils/BrowserFeatureDetector.ts","webpack://lib/./utils/CookieHelper.ts","webpack://lib/./utils/ListenerHelper.ts","webpack://lib/./utils/SocialShareHelper.ts","webpack://lib/./utils/StringHashCodeGenerator.ts","webpack://lib/./utils/SupportedBrowserHelper.ts","webpack://lib/./utils/TimeFormatter.ts","webpack://lib/./utils/WindowResizeHelper.ts","webpack://lib/./utils/isolatedEval.ts","webpack://lib/./utils/translations.ts","webpack://lib/../node_modules/can-autoplay/build/can-autoplay.es.js","webpack://lib/../node_modules/dompurify/dist/purify.js","webpack://lib/../node_modules/es6-shim/es6-shim.js","webpack://lib/../node_modules/fullscreen-api-polyfill/fullscreen-api-polyfill.min.js","webpack://lib/./cta/prepackagedCTAs/clickableAreaConditional/clickableAreaConditionalCTA.html","webpack://lib/./cta/prepackagedCTAs/clickableArea/clickableAreaCTA.html","webpack://lib/./cta/prepackagedCTAs/clickableButton/clickableButtonCTA.html","webpack://lib/../node_modules/inversify/lib/annotation/decorator_utils.js","webpack://lib/../node_modules/inversify/lib/annotation/inject.js","webpack://lib/../node_modules/inversify/lib/annotation/injectable.js","webpack://lib/../node_modules/inversify/lib/annotation/multi_inject.js","webpack://lib/../node_modules/inversify/lib/annotation/named.js","webpack://lib/../node_modules/inversify/lib/annotation/optional.js","webpack://lib/../node_modules/inversify/lib/annotation/post_construct.js","webpack://lib/../node_modules/inversify/lib/annotation/tagged.js","webpack://lib/../node_modules/inversify/lib/annotation/target_name.js","webpack://lib/../node_modules/inversify/lib/annotation/unmanaged.js","webpack://lib/../node_modules/inversify/lib/bindings/binding.js","webpack://lib/../node_modules/inversify/lib/bindings/binding_count.js","webpack://lib/../node_modules/inversify/lib/constants/error_msgs.js","webpack://lib/../node_modules/inversify/lib/constants/literal_types.js","webpack://lib/../node_modules/inversify/lib/constants/metadata_keys.js","webpack://lib/../node_modules/inversify/lib/container/container.js","webpack://lib/../node_modules/inversify/lib/container/container_module.js","webpack://lib/../node_modules/inversify/lib/container/container_snapshot.js","webpack://lib/../node_modules/inversify/lib/container/lookup.js","webpack://lib/../node_modules/inversify/lib/inversify.js","webpack://lib/../node_modules/inversify/lib/planning/context.js","webpack://lib/../node_modules/inversify/lib/planning/metadata.js","webpack://lib/../node_modules/inversify/lib/planning/metadata_reader.js","webpack://lib/../node_modules/inversify/lib/planning/plan.js","webpack://lib/../node_modules/inversify/lib/planning/planner.js","webpack://lib/../node_modules/inversify/lib/planning/queryable_string.js","webpack://lib/../node_modules/inversify/lib/planning/reflection_utils.js","webpack://lib/../node_modules/inversify/lib/planning/request.js","webpack://lib/../node_modules/inversify/lib/planning/target.js","webpack://lib/../node_modules/inversify/lib/resolution/instantiation.js","webpack://lib/../node_modules/inversify/lib/resolution/resolver.js","webpack://lib/../node_modules/inversify/lib/syntax/binding_in_syntax.js","webpack://lib/../node_modules/inversify/lib/syntax/binding_in_when_on_syntax.js","webpack://lib/../node_modules/inversify/lib/syntax/binding_on_syntax.js","webpack://lib/../node_modules/inversify/lib/syntax/binding_to_syntax.js","webpack://lib/../node_modules/inversify/lib/syntax/binding_when_on_syntax.js","webpack://lib/../node_modules/inversify/lib/syntax/binding_when_syntax.js","webpack://lib/../node_modules/inversify/lib/syntax/constraint_helpers.js","webpack://lib/../node_modules/inversify/lib/utils/binding_utils.js","webpack://lib/../node_modules/inversify/lib/utils/exceptions.js","webpack://lib/../node_modules/inversify/lib/utils/id.js","webpack://lib/../node_modules/inversify/lib/utils/serialization.js","webpack://lib/../node_modules/json-stable-stringify/index.js","webpack://lib/../node_modules/jsonify/index.js","webpack://lib/../node_modules/jsonify/lib/parse.js","webpack://lib/../node_modules/jsonify/lib/stringify.js","webpack://lib/../node_modules/loadjs/dist/loadjs.umd.js","webpack://lib/../node_modules/lodash.times/index.js","webpack://lib/../node_modules/lodash.zip/index.js","webpack://lib/../node_modules/lodash/_Hash.js","webpack://lib/../node_modules/lodash/_ListCache.js","webpack://lib/../node_modules/lodash/_Map.js","webpack://lib/../node_modules/lodash/_MapCache.js","webpack://lib/../node_modules/lodash/_Stack.js","webpack://lib/../node_modules/lodash/_Symbol.js","webpack://lib/../node_modules/lodash/_Uint8Array.js","webpack://lib/../node_modules/lodash/_apply.js","webpack://lib/../node_modules/lodash/_arrayLikeKeys.js","webpack://lib/../node_modules/lodash/_assignMergeValue.js","webpack://lib/../node_modules/lodash/_assignValue.js","webpack://lib/../node_modules/lodash/_assocIndexOf.js","webpack://lib/../node_modules/lodash/_baseAssignValue.js","webpack://lib/../node_modules/lodash/_baseCreate.js","webpack://lib/../node_modules/lodash/_baseFor.js","webpack://lib/../node_modules/lodash/_baseGetTag.js","webpack://lib/../node_modules/lodash/_baseIsArguments.js","webpack://lib/../node_modules/lodash/_baseIsNative.js","webpack://lib/../node_modules/lodash/_baseIsTypedArray.js","webpack://lib/../node_modules/lodash/_baseKeysIn.js","webpack://lib/../node_modules/lodash/_baseMerge.js","webpack://lib/../node_modules/lodash/_baseMergeDeep.js","webpack://lib/../node_modules/lodash/_baseRest.js","webpack://lib/../node_modules/lodash/_baseSetToString.js","webpack://lib/../node_modules/lodash/_baseTimes.js","webpack://lib/../node_modules/lodash/_baseUnary.js","webpack://lib/../node_modules/lodash/_cloneArrayBuffer.js","webpack://lib/../node_modules/lodash/_cloneBuffer.js","webpack://lib/../node_modules/lodash/_cloneTypedArray.js","webpack://lib/../node_modules/lodash/_copyArray.js","webpack://lib/../node_modules/lodash/_copyObject.js","webpack://lib/../node_modules/lodash/_coreJsData.js","webpack://lib/../node_modules/lodash/_createAssigner.js","webpack://lib/../node_modules/lodash/_createBaseFor.js","webpack://lib/../node_modules/lodash/_defineProperty.js","webpack://lib/../node_modules/lodash/_freeGlobal.js","webpack://lib/../node_modules/lodash/_getMapData.js","webpack://lib/../node_modules/lodash/_getNative.js","webpack://lib/../node_modules/lodash/_getPrototype.js","webpack://lib/../node_modules/lodash/_getRawTag.js","webpack://lib/../node_modules/lodash/_getValue.js","webpack://lib/../node_modules/lodash/_hashClear.js","webpack://lib/../node_modules/lodash/_hashDelete.js","webpack://lib/../node_modules/lodash/_hashGet.js","webpack://lib/../node_modules/lodash/_hashHas.js","webpack://lib/../node_modules/lodash/_hashSet.js","webpack://lib/../node_modules/lodash/_initCloneObject.js","webpack://lib/../node_modules/lodash/_isIndex.js","webpack://lib/../node_modules/lodash/_isIterateeCall.js","webpack://lib/../node_modules/lodash/_isKeyable.js","webpack://lib/../node_modules/lodash/_isMasked.js","webpack://lib/../node_modules/lodash/_isPrototype.js","webpack://lib/../node_modules/lodash/_listCacheClear.js","webpack://lib/../node_modules/lodash/_listCacheDelete.js","webpack://lib/../node_modules/lodash/_listCacheGet.js","webpack://lib/../node_modules/lodash/_listCacheHas.js","webpack://lib/../node_modules/lodash/_listCacheSet.js","webpack://lib/../node_modules/lodash/_mapCacheClear.js","webpack://lib/../node_modules/lodash/_mapCacheDelete.js","webpack://lib/../node_modules/lodash/_mapCacheGet.js","webpack://lib/../node_modules/lodash/_mapCacheHas.js","webpack://lib/../node_modules/lodash/_mapCacheSet.js","webpack://lib/../node_modules/lodash/_nativeCreate.js","webpack://lib/../node_modules/lodash/_nativeKeysIn.js","webpack://lib/../node_modules/lodash/_nodeUtil.js","webpack://lib/../node_modules/lodash/_objectToString.js","webpack://lib/../node_modules/lodash/_overArg.js","webpack://lib/../node_modules/lodash/_overRest.js","webpack://lib/../node_modules/lodash/_root.js","webpack://lib/../node_modules/lodash/_safeGet.js","webpack://lib/../node_modules/lodash/_setToString.js","webpack://lib/../node_modules/lodash/_shortOut.js","webpack://lib/../node_modules/lodash/_stackClear.js","webpack://lib/../node_modules/lodash/_stackDelete.js","webpack://lib/../node_modules/lodash/_stackGet.js","webpack://lib/../node_modules/lodash/_stackHas.js","webpack://lib/../node_modules/lodash/_stackSet.js","webpack://lib/../node_modules/lodash/_toSource.js","webpack://lib/../node_modules/lodash/constant.js","webpack://lib/../node_modules/lodash/eq.js","webpack://lib/../node_modules/lodash/identity.js","webpack://lib/../node_modules/lodash/isArguments.js","webpack://lib/../node_modules/lodash/isArray.js","webpack://lib/../node_modules/lodash/isArrayLike.js","webpack://lib/../node_modules/lodash/isArrayLikeObject.js","webpack://lib/../node_modules/lodash/isBuffer.js","webpack://lib/../node_modules/lodash/isFunction.js","webpack://lib/../node_modules/lodash/isLength.js","webpack://lib/../node_modules/lodash/isObject.js","webpack://lib/../node_modules/lodash/isObjectLike.js","webpack://lib/../node_modules/lodash/isPlainObject.js","webpack://lib/../node_modules/lodash/isTypedArray.js","webpack://lib/../node_modules/lodash/keysIn.js","webpack://lib/../node_modules/lodash/merge.js","webpack://lib/../node_modules/lodash/stubFalse.js","webpack://lib/../node_modules/lodash/toPlainObject.js","webpack://lib/../node_modules/object-assign/index.js","webpack://lib/../node_modules/react-dom/cjs/react-dom.production.min.js","webpack://lib/../node_modules/react-dom/index.js","webpack://lib/../node_modules/react/cjs/react.production.min.js","webpack://lib/../node_modules/react/index.js","webpack://lib/../node_modules/reflect-metadata/Reflect.js","webpack://lib/../node_modules/scheduler/cjs/scheduler.production.min.js","webpack://lib/../node_modules/scheduler/index.js","webpack://lib/../node_modules/sparkson/lib/core/DateClass.js","webpack://lib/../node_modules/sparkson/lib/core/JsonParseError.js","webpack://lib/../node_modules/sparkson/lib/core/parser.js","webpack://lib/../node_modules/sparkson/lib/decorators/ArrayField.js","webpack://lib/../node_modules/sparkson/lib/decorators/Field.js","webpack://lib/../node_modules/sparkson/lib/decorators/RawJsonField.js","webpack://lib/../node_modules/sparkson/lib/decorators/Registrable.js","webpack://lib/../node_modules/sparkson/lib/decorators/validation/After.js","webpack://lib/../node_modules/sparkson/lib/decorators/validation/Before.js","webpack://lib/../node_modules/sparkson/lib/decorators/validation/Max.js","webpack://lib/../node_modules/sparkson/lib/decorators/validation/MaxLength.js","webpack://lib/../node_modules/sparkson/lib/decorators/validation/Min.js","webpack://lib/../node_modules/sparkson/lib/decorators/validation/MinLength.js","webpack://lib/../node_modules/sparkson/lib/decorators/validation/Regexp.js","webpack://lib/../node_modules/sparkson/lib/decorators/validation/Rule.js","webpack://lib/../node_modules/sparkson/lib/decorators/validation/ValidationHelper.js","webpack://lib/../node_modules/sparkson/lib/sparkson.js","webpack://lib/../node_modules/sparkson/lib/utils/DateUtils.js","webpack://lib/../node_modules/ts-md5/dist/md5.js","webpack://lib/../node_modules/ua-parser-js/src/ua-parser.js","webpack://lib/../node_modules/vm-browserify/index.js","webpack://lib/../node_modules/whatwg-fetch/fetch.js","webpack://lib/webpack/bootstrap","webpack://lib/webpack/runtime/amd options","webpack://lib/webpack/runtime/define property getters","webpack://lib/webpack/runtime/global","webpack://lib/webpack/runtime/hasOwnProperty shorthand","webpack://lib/webpack/runtime/make namespace object","webpack://lib/webpack/runtime/node module decorator","webpack://lib/./index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"lib\"] = factory();\n\telse\n\t\troot[\"lib\"] = factory();\n})(self, function() {\nreturn ","import { Config } from \"../../config/config\";\r\nimport { CTAFunction } from \"../cta/ctaFunction/CTAFunction\";\r\nimport { Player } from \"../player/Player\";\r\n\r\ninterface GlobalVintomNamespace {\r\n cta: { [key: string]: CTAFunction };\r\n requestedResources: {[resourceLocation: string]: Promise};\r\n Player: typeof Player;\r\n}\r\n\r\n// export declare var vintom: GlobalVintomNamespace;\r\n\r\nconst initialVintom: GlobalVintomNamespace = {\r\n cta: {},\r\n requestedResources: {},\r\n Player\r\n};\r\n\r\nwindow[Config.vintomNamespace] = window[Config.vintomNamespace] || initialVintom;\r\nexport const vintom: GlobalVintomNamespace = window[Config.vintomNamespace];","import { BrowserFeatureDetector } from \"../../../utils/BrowserFeatureDetector\";\nimport { VintomErrorCode } from \"./VintomErrorCode\";\n\ninterface VintomErrorOptions {\n isLogAndSendToAnalytics?: boolean;\n isDisplayToUser?: boolean;\n}\n\ninterface VintomErrorAdditionalInfo {\n playerVersion?: string;\n userAgent?: string;\n browserMajorVersion?: number;\n browserName?: string;\n operatingSystem?: string;\n}\n\nexport class VintomError {\n options: VintomErrorOptions;\n errorAdditionalInfo: VintomErrorAdditionalInfo;\n stackTrace: any;\n\n private static DEFAULT_OPTIONS: VintomErrorOptions = {\n isLogAndSendToAnalytics: true,\n isDisplayToUser: true\n };\n\n constructor(public errorCode: VintomErrorCode, public message: string, options?: VintomErrorOptions) {\n this.options = {\n ...VintomError.DEFAULT_OPTIONS,\n ...(options || {})\n };\n\n this.errorAdditionalInfo = {};\n\n if (require(\"../../../../package.json\").version) {\n this.errorAdditionalInfo.playerVersion = require(\"../../../../package.json\").version;\n }\n\n if (navigator.userAgent) {\n this.errorAdditionalInfo.userAgent = navigator.userAgent;\n }\n\n if (BrowserFeatureDetector.getBrowserMajorVersion()) {\n this.errorAdditionalInfo.browserMajorVersion = BrowserFeatureDetector.getBrowserMajorVersion();\n }\n\n if (BrowserFeatureDetector.getBrowserName()) {\n this.errorAdditionalInfo.browserName = BrowserFeatureDetector.getBrowserName();\n }\n\n if (BrowserFeatureDetector.getOS()) {\n this.errorAdditionalInfo.operatingSystem = BrowserFeatureDetector.getOS();\n }\n\n if (Error().stack) {\n this.stackTrace = Error().stack;\n }\n }\n}\n","import { PlayerConfigurationAPI, PlayerConfigurationWithVideoCodeAPI, PlayerInitializationAPI } from \"./PlayerAPI\";\r\nimport { PlayerAPIImpl } from \"./PlayerAPIImpl\";\r\n\r\nclass PlayerInitializationAPIImpl implements PlayerInitializationAPI {\r\n\r\n initialize(elementId: string): PlayerConfigurationAPI;\r\n initialize(elementId: string, videoCode: string): PlayerConfigurationWithVideoCodeAPI;\r\n initialize(elementId: string, videoCode?: string): PlayerConfigurationAPI | PlayerConfigurationWithVideoCodeAPI {\r\n const palayerAPI = new PlayerAPIImpl(elementId, videoCode);\r\n if (videoCode) {\r\n return palayerAPI as PlayerConfigurationWithVideoCodeAPI;\r\n } else {\r\n return palayerAPI as PlayerConfigurationAPI;\r\n }\r\n }\r\n}\r\n\r\nexport { PlayerInitializationAPIImpl as Player };\r\n","import { PlayerManager } from \"@manager/PlayerManager\";\nimport React from \"react\";\nimport { render } from \"react-dom\";\nimport { PlayerContainerComponent } from \"../../components/player/PlayerContainerComponent\";\nimport { UnsupportedBrowserVersionComponent } from \"../../components/player/UnsupportedBrowserVersionComponent\";\nimport { createApplicationContext, createNotSupportedBrowserApplicationContext } from \"../../manager/di/applicationContext\";\nimport { TYPES } from \"../../manager/di/types\";\nimport { NotSupportedBrowserPlayerManagerImpl } from \"../../manager/NotSupportedBrowserPlayerManagerImpl\";\nimport { SupportedBrowserHelper } from \"../../utils/SupportedBrowserHelper\";\nimport { getI18n } from \"../../utils/translations\";\nimport { VintomError } from \"../model/error/VintomError\";\nimport { PlayerActionState } from \"../model/playerState/PlayerActionState\";\nimport { PlayerState } from \"../model/playerState/PlayerState\";\nimport { PlayerConfigurationAPI, PlayerDimensionsAPI, PlayerExecutionAPI, PlayerPersonalizationAPI, RunningPlayerAPI } from \"./PlayerAPI\";\n\nexport class PlayerAPIImpl implements\n PlayerConfigurationAPI, PlayerPersonalizationAPI, PlayerDimensionsAPI, PlayerExecutionAPI {\n\n private playerComponent: PlayerContainerComponent;\n private playerManager: PlayerManager;\n\n private configurationJSON: any;\n private configurationOverrideJSON: any;\n private personalizationJSON: any;\n\n private width: number;\n private height: number;\n\n constructor(private elementId: string, private videoCode: string) {}\n\n setup(json: any): PlayerPersonalizationAPI & PlayerDimensionsAPI & PlayerExecutionAPI {\n if (this.videoCode) {\n this.configurationOverrideJSON = json;\n } else {\n this.configurationJSON = json;\n }\n return this;\n }\n\n personalize(json: any): PlayerDimensionsAPI & PlayerExecutionAPI {\n this.personalizationJSON = json;\n return this;\n }\n\n dimensions(width: number, height: number): PlayerExecutionAPI {\n this.width = width;\n this.height = height;\n return this;\n }\n\n run(): RunningPlayerAPI {\n const i18n = getI18n();\n\n const playerEl = document.getElementById(this.elementId);\n\n if (!SupportedBrowserHelper.isBrowserSupported()) {\n const simplePlayerManagerImpl = createNotSupportedBrowserApplicationContext().get(TYPES.PlayerManager);\n simplePlayerManagerImpl.run(i18n, this.videoCode, this.configurationJSON, this.configurationOverrideJSON, this.personalizationJSON);\n (simplePlayerManagerImpl as NotSupportedBrowserPlayerManagerImpl).logNotSupportedBrowser();\n\n render(\n ,\n playerEl);\n return this;\n }\n\n render(\n this.playerComponent = element}\n i18n={i18n}\n width={this.width}\n height={this.height}\n />,\n playerEl\n );\n\n const applicationContext = createApplicationContext(\n this.playerComponent,\n this.playerComponent.animationLayer,\n this.playerComponent.controlsLayer,\n this.playerComponent.ctaLayer,\n this.playerComponent.posterLayer,\n this.playerComponent.videoLayer,\n this.playerComponent.musicLayer\n\n );\n\n this.playerManager = applicationContext.get(TYPES.PlayerManager);\n this.playerManager.run(i18n, this.videoCode, this.configurationJSON, this.configurationOverrideJSON, this.personalizationJSON);\n return this;\n }\n\n play(): void {\n this.playerManager && this.playerManager.play();\n }\n\n pause(): void {\n this.playerManager && this.playerManager.pause();\n }\n\n move(id: string): void {\n this.playerManager && this.playerManager.moveToScenarioElement(id);\n }\n\n replay(): void {\n this.playerManager && this.playerManager.replay();\n }\n\n action(ctaId: number, actionId: number, ...args: any[]): void {\n this.playerManager && this.playerManager.performAction(ctaId, actionId, args);\n }\n\n on(event: \"ready\", callback: () => void): void;\n on(event: \"error\", callback: (error: VintomError) => void): void;\n on(event: \"play\" | \"pause\" | \"finish\", callback: (payload: PlayerState) => void): void;\n on(event: \"action\", callback: (payload: PlayerActionState) => void): void;\n on(event: \"ready\" | \"error\" | \"play\" | \"pause\" | \"finish\" | \"action\", callback: (payload: any) => void): void {\n switch (event) {\n case \"ready\":\n this.vintomPlayerReady(callback as () => void);\n break;\n case \"error\":\n this.vintomPlayerError(callback as (error: VintomError) => void);\n break;\n case \"play\":\n this.vintomPlayerPlay(callback as (payload: PlayerState) => void);\n break;\n case \"pause\":\n this.vintomPlayerPause(callback as (payload: PlayerState) => void);\n break;\n case \"finish\":\n this.vintomPlayerFinish(callback as (payload: PlayerState) => void);\n break;\n case \"action\":\n this.vintomPlayerAction(callback as (payload: PlayerActionState) => void);\n break;\n default:\n break;\n }\n }\n\n vintomPlayerReady(callback: () => void): void {\n this.playerManager && this.playerManager.registerOnReady(callback);\n }\n\n vintomPlayerError(callback: (error: VintomError) => void): void {\n this.playerManager && this.playerManager.registerOnError(callback);\n }\n\n vintomPlayerPlay(callback: (payload: PlayerState) => void): void {\n this.playerManager && this.playerManager.registerOnPlay(callback);\n }\n\n vintomPlayerPause(callback: (payload: PlayerState) => void): void {\n this.playerManager && this.playerManager.registerOnPause(callback);\n }\n\n vintomPlayerFinish(callback: (payload: PlayerState) => void): void {\n this.playerManager && this.playerManager.registerOnFinish(callback);\n }\n\n vintomPlayerAction(callback: (payload: PlayerActionState) => void): void {\n this.playerManager && this.playerManager.registerOnAction(callback);\n }\n\n getState(): PlayerState {\n return this.playerManager && this.playerManager.getState();\n }\n\n remove(): void {\n this.playerManager && this.playerManager.prepareForRemove();\n document.getElementById(this.elementId).innerHTML = \"\";\n }\n}\n","import React from \"react\";\n\ninterface Props { }\n\nexport const FullscreenDisableIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const FullscreenEnableIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const LoaderIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n \n \n \n \n \n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props {\n className?: string;\n}\n\nexport const PauseIconComponent: React.SFC = ({ className }) => {\n return (\n // tslint:disable:max-line-length\n \n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props {\n className?: string;\n}\n\nexport const PlayIconComponent: React.SFC = ({ className }) => {\n return (\n // tslint:disable:max-line-length\n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const ReplayIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const FacebookIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const SocialShareIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const TwitterIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const SubtitlesIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const SubtitlesSelectedIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const VolumeLoudIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const VolumeMutedIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import React from \"react\";\n\ninterface Props { }\n\nexport const VolumeQuietIconComponent: React.SFC = () => {\n return (\n // tslint:disable:max-line-length\n \n \n \n \n // tslint:enable:max-line-length\n );\n};\n","import { AnimationLayer } from \"@manager/layer/AnimationLayer\";\nimport { AnimationLayerObserver } from \"@manager/layerObserver/AnimationLayerObserver\";\nimport React from \"react\";\nimport { ListenerHelper } from \"../../utils/ListenerHelper\";\nimport { WindowResizeHelper } from \"../../utils/WindowResizeHelper\";\n\nimport \"@styles/c-animationLayer.scss\";\n\n// todo static typing\ndeclare var lottie: any;\ntype LottieAnimation = any;\n\ninterface Props {\n className?: string;\n}\n\ninterface State {\n isAnimationStarted: boolean;\n}\n\nexport class AnimationLayerComponent extends React.Component implements AnimationLayer {\n\n private static DATA_SRC_ATTRIBUTE = \"data-src\";\n\n private observer: AnimationLayerObserver;\n\n private lottieContainer: HTMLElement;\n private animations: {[src: string]: LottieAnimation} = {};\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isAnimationStarted: false\n };\n }\n\n render() {\n return (\n this.lottieContainer = element}\n />\n );\n }\n\n componentDidMount() {\n ListenerHelper.addEventListener(\"window\", \"resize\", this.handleWindowResize);\n }\n\n componentWillUnmount() {\n ListenerHelper.removeEventListener(\"window\", \"resize\", this.handleWindowResize);\n }\n\n // start of AnimationLayer implementation\n clearAllAnimations(): void {\n for (const src of Object.keys(this.animations)) {\n this.removeAnimation(src);\n }\n }\n\n loadAnimation(src: string, animationJSON: any, animationBlur: string): void {\n const animationContainer = this.createAndAppendAnimationContainer(src, animationBlur);\n const animation = lottie.loadAnimation({\n container: animationContainer,\n renderer: \"svg\",\n loop: false,\n autoplay: false,\n animationData: animationJSON\n });\n\n this.animations[src] = animation;\n\n if (this.observer) {\n animation.onComplete = () => {\n this.observer.onEnded();\n };\n this.setState({\n isAnimationStarted: false\n });\n\n animation.onEnterFrame = () => {\n if (!this.state.isAnimationStarted) {\n this.setState({\n isAnimationStarted: true\n });\n this.observer.onStarted();\n }\n };\n }\n\n }\n\n removeAnimation(src: string): void {\n const animation = this.animations[src];\n delete this.animations[src];\n\n animation && animation.destroy();\n\n const animationContainer = this.lottieContainer.querySelector(`[${AnimationLayerComponent.DATA_SRC_ATTRIBUTE}=\"${src}\"]`);\n animationContainer && animationContainer.parentNode.removeChild(animationContainer);\n }\n\n getAnimationCurrentTime(src: string): number {\n const animation = this.animations[src];\n return animation && animation.currentFrame / animation.frameRate;\n }\n\n getAnimationDuration(src: string): number {\n const animation = this.animations[src];\n return animation && animation.totalFrames / animation.frameRate;\n }\n\n getIsAnimationPlaying(src: string): boolean {\n const animation = this.animations[src];\n return animation && !animation.isPaused;\n }\n\n playAnimation(src: string): void {\n const animation = this.animations[src];\n animation && animation.play();\n }\n\n pauseAnimation(src: string): void {\n const animation = this.animations[src];\n animation && animation.pause();\n }\n\n moveTo(animationSrc: string, timeMillis: number, play: boolean = false): void {\n const animationItem = this.animations[animationSrc];\n if (play) {\n animationItem.goToAndPlay(timeMillis, false);\n } else {\n animationItem.goToAndStop(timeMillis, false);\n }\n }\n\n registerObserver(observer: AnimationLayerObserver): void {\n this.observer = observer;\n }\n\n // end of AnimationLayer implementation\n\n private createAndAppendAnimationContainer(animationSrc: string, animationBlur: string): HTMLElement {\n const container = document.createElement(\"div\");\n container.setAttribute(AnimationLayerComponent.DATA_SRC_ATTRIBUTE, animationSrc);\n container.setAttribute(\"class\", \"c-animationLayer__animationContainer\");\n container.style.setProperty(\"--animation-blur\", animationBlur);\n\n const insideIframe = window.self !== window.top;\n if (insideIframe) {\n // without position: fixed animations in Safari on iphone in iframe are not scaled correctly\n container.style.position = \"fixed\";\n if (/Edge/.test(navigator.userAgent)) {\n // without position: absolute animations in Edge are not scaled correctly\n container.style.position = \"absolute\";\n }\n }\n\n this.lottieContainer.appendChild(container);\n return container;\n }\n\n private handleWindowResize = () => WindowResizeHelper.doOnResize(() => this.resizeAllAnimations());\n\n private resizeAllAnimations() {\n for (const src of Object.keys(this.animations)) {\n this.animations[src].resize();\n }\n }\n}\n","import { CTALayer } from \"@manager/layer/CTALayer\";\nimport { CachedCTAResource } from \"@manager/loader/scenarioLoader/CachedCTAResource\";\nimport React from \"react\";\nimport { CTAHandle } from \"../../api/cta/ctaFunction/CTAHandle\";\nimport { AspectRatioHelper } from \"../../utils/AspectRatioHelper\";\nimport { WindowResizeHelper } from \"../../utils/WindowResizeHelper\";\nimport DOMPurify from \"dompurify\";\n\nimport \"@styles/c-ctaLayer.scss\";\n\ninterface Props {\n className?: string;\n}\n\ninterface State {\n aspectRatio?: number;\n width: number;\n height: number;\n}\n\ninterface InitializedCTA {\n ctaElement: HTMLElement;\n handle: CTAHandle;\n}\n\nexport class CTALayerComponent extends React.Component implements CTALayer {\n\n private static DATA_HASH_CODE_ATTR = \"data-hash-code\";\n\n private layer: HTMLElement;\n private container: HTMLElement;\n\n private reusableCTAs: {[hashCode: number]: InitializedCTA} = {};\n private ctaHandles: {[id: number]: CTAHandle} = {};\n\n constructor(props: Props) {\n super(props);\n this.state = {\n width: 0,\n height: 0\n };\n }\n\n render() {\n return (\n this.layer = elmt}\n >\n this.container = elmt}\n style={{\n width: `${this.state.width}px`,\n height: `${this.state.height}px`\n }}\n />\n \n );\n }\n\n componentDidMount() {\n window.addEventListener(\"resize\", this.handleWindowResize);\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.handleWindowResize);\n }\n\n // start of CTALayer implementation\n setAspectRatio(aspectRatio: number) {\n this.setState({\n aspectRatio,\n ...AspectRatioHelper.calculateDimensions(aspectRatio, this.layer.clientWidth, this.layer.clientHeight)\n });\n }\n\n loadCTA(hashCode: number, isReusable: boolean, ctaId: number, ctaResource: CachedCTAResource, ctaCustomAttributes: any): void {\n const existingCTA = this.reusableCTAs[hashCode];\n if (existingCTA) {\n this.container.appendChild(existingCTA.ctaElement);\n this.ctaHandles[ctaId] = existingCTA.handle;\n } else {\n\n const ctaElement = this.createCTAElement(hashCode, ctaResource.ctaHtml);\n this.container.appendChild(ctaElement);\n \n const handle = ctaResource.ctaFunction(ctaId, ctaElement, ctaCustomAttributes);\n this.ctaHandles[ctaId] = handle;\n \n if (isReusable) {\n this.reusableCTAs[hashCode] = { ctaElement, handle };\n }\n }\n }\n\n removeCTA(ctaId: number, hashCode: number): void {\n delete this.ctaHandles[ctaId];\n\n const ctaBoard = this.container && this.container.querySelector(`[${CTALayerComponent.DATA_HASH_CODE_ATTR}=\"${hashCode}\"]`);\n ctaBoard && ctaBoard.parentNode.removeChild(ctaBoard);\n }\n\n performAction(ctaId: number, actionId: number, ...args: any[]): void {\n const handle = this.ctaHandles[ctaId];\n handle && handle.action(actionId, args);\n }\n // end of CTALayer implementation\n\n private createCTAElement(hashCode: number, ctaHTML: string): HTMLElement {\n const element = document.createElement(\"div\");\n element.setAttribute(CTALayerComponent.DATA_HASH_CODE_ATTR, `${hashCode}`);\n element.setAttribute(\"class\", \"c-ctaLayer__element\");\n element.innerHTML = DOMPurify.sanitize(ctaHTML);\n return element;\n }\n\n private recalculateDimensions() {\n if (this.layer && this.state.aspectRatio) {\n this.setState({\n ...AspectRatioHelper.calculateDimensions(this.state.aspectRatio, this.layer.clientWidth, this.layer.clientHeight)\n });\n }\n }\n\n private handleWindowResize = () => {\n WindowResizeHelper.doOnResize(() => this.recalculateDimensions());\n }\n\n}\n","import { ControlsLayer } from \"@manager/layer/ControlsLayer\";\nimport { ControlsLayerObserver } from \"@manager/layerObserver/ControlsLayerObserver\";\nimport React from \"react\";\nimport { VintomError } from \"src/api/model/error/VintomError\";\nimport { I18n } from \"../../i18n/i18n\";\nimport { PlayerControls } from \"../../model/playerConfiguration/PlayerControls\";\nimport { ScenarioElement } from \"../../model/playerConfiguration/ScenarioElement\";\nimport { Subtitle } from \"../../model/playerConfiguration/Subtitle\";\nimport { QualityLevel } from \"../../model/qualityLevel/QualityLevel\";\nimport { ScenarioPath } from \"../../model/scenarioPath/ScenarioPath\";\nimport { SubtitlesText } from \"../../model/subtitles/SubtitlesText\";\nimport { ScenarioElementPlaybackState } from \"../../uiModel/playback/ScenarioElementPlaybackState\";\nimport { SocialShareConfiguration } from \"../../uiModel/socialShare/SocialShareConfiguration\";\nimport { DesktopControlsLayerComponent } from \"./controls/desktop/DesktopControlsLayerComponent\";\nimport { MobileControlsLayerComponent } from \"./controls/mobile/MobileControlsLayerComponent\";\n\nimport \"@styles/c-controlsLayer.scss\";\n\ninterface Props {\n className?: string;\n i18n: I18n;\n isMobileDevice: boolean;\n isFullscreenSupported: boolean;\n isFullscreen: boolean;\n socialShareConfiguration: SocialShareConfiguration;\n}\n\ninterface State {\n configuration?: PlayerControls;\n isAdminMode: boolean;\n qualityLevels?: QualityLevel[];\n bandwidth?: number;\n isLoading: boolean;\n isPlaybackBlockingCTADisplayed: boolean;\n\n totalTime: number;\n ellapsedTime: number;\n bufferedTime: number;\n\n playbackState: ScenarioElementPlaybackState;\n scenarioPath: ScenarioPath;\n\n volume: number;\n isVolumeMuted: boolean;\n\n subtitleSources: Subtitle[];\n selectedSubtitlesSrc?: string;\n subtitlesText?: SubtitlesText;\n loadingPageVisible: boolean;\n message?: string | VintomError;\n disableIcon: boolean;\n}\n\nexport class ControlsLayerComponent extends React.Component implements ControlsLayer {\n\n private static DEFAULT_VOLUME_AFTER_UNMUTE = 0.5;\n\n private observer: ControlsLayerObserver;\n private deviceSpecificLayer: DesktopControlsLayerComponent | MobileControlsLayerComponent;\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n loadingPageVisible: false,\n isLoading: true,\n isAdminMode: false,\n isPlaybackBlockingCTADisplayed: false,\n\n playbackState: \"paused\",\n scenarioPath: undefined,\n\n totalTime: 0,\n ellapsedTime: 0,\n bufferedTime: 0,\n\n volume: 0,\n isVolumeMuted: false,\n\n subtitleSources: [],\n disableIcon: true\n };\n }\n\n render() {\n const {\n configuration,\n isAdminMode,\n bandwidth,\n qualityLevels,\n isLoading,\n isPlaybackBlockingCTADisplayed,\n\n totalTime,\n ellapsedTime,\n bufferedTime,\n\n playbackState,\n scenarioPath,\n\n volume,\n isVolumeMuted,\n\n subtitleSources,\n selectedSubtitlesSrc,\n subtitlesText,\n loadingPageVisible,\n message,\n disableIcon\n } = this.state;\n\n return (\n
\n {configuration &&\n\n (this.props.isMobileDevice ?\n this.deviceSpecificLayer = element}\n i18n={this.props.i18n}\n configuration={configuration}\n isLoading={isLoading}\n isCTADisplayed={isPlaybackBlockingCTADisplayed}\n socialShareConfiguration={this.props.socialShareConfiguration}\n playIconOnPoster={configuration.playIconOnPoster}\n disableIcon={disableIcon}\n\n playbackState={playbackState}\n onPlay={() => this.play()}\n onPause={() => this.pause()}\n onReplay={() => this.replay()}\n onSeekStart={() => this.startSeek()}\n onSeekEnd={() => this.endSeek()}\n\n scenarioPath={scenarioPath}\n totalTime={totalTime}\n ellapsedTime={ellapsedTime}\n bufferedTime={bufferedTime}\n onSeekTo={(time) => this.handleSeekTo(time)}\n onJumpToScenarioElement={(scElement, progress) => this.jumpToScenarioElement(scElement, progress)}\n\n isVolumeMuted={isVolumeMuted}\n onToggleMuted={() => this.onToggleMuted()}\n\n subtitles={subtitleSources}\n selectedSubtitlesSrc={selectedSubtitlesSrc}\n subtitlesText={subtitlesText}\n onSubtitleSourceSelected={(subtitle) => this.selectSubtitleSource(subtitle)}\n\n isFullscreenSupported={this.props.isFullscreenSupported}\n isFullscreen={this.props.isFullscreen}\n onToggleFullscreen={() => this.toggleFullscreen()}\n \n message={message}\n onSendError={(err) => this.observer.onSendError(err)}\n /> :\n this.deviceSpecificLayer = element}\n i18n={this.props.i18n}\n configuration={configuration}\n isAdminMode={isAdminMode}\n bandwidth={bandwidth}\n qualityLevels={qualityLevels}\n isLoading={isLoading}\n isCTADisplayed={isPlaybackBlockingCTADisplayed}\n socialShareConfiguration={this.props.socialShareConfiguration}\n playIconOnPoster={configuration.playIconOnPoster}\n disableIcon={disableIcon}\n\n playbackState={playbackState}\n onPlay={() => this.play()}\n onPause={() => this.pause()}\n onReplay={() => this.replay()}\n onSeekStart={() => this.startSeek()}\n onSeekEnd={() => this.endSeek()}\n\n scenarioPath={scenarioPath}\n totalTime={totalTime}\n ellapsedTime={ellapsedTime}\n bufferedTime={bufferedTime}\n onSeekTo={(time) => this.handleSeekTo(time)}\n onJumpToScenarioElement={(scElement, progress) => this.jumpToScenarioElement(scElement, progress)}\n\n isVolumeMuted={isVolumeMuted}\n volume={volume}\n onVolumeChange={(vol) => this.changeVolume(vol)}\n onToggleMuted={() => this.onToggleMuted()}\n onUnMute={() => this.unMute()}\n\n subtitles={subtitleSources}\n selectedSubtitlesSrc={selectedSubtitlesSrc}\n subtitlesText={subtitlesText}\n onSubtitleSourceSelected={(subtitle) => this.selectSubtitleSource(subtitle)}\n\n isFullscreenSupported={this.props.isFullscreenSupported}\n isFullscreen={this.props.isFullscreen}\n onToggleFullscreen={() => this.toggleFullscreen()}\n loadingPageVisible={loadingPageVisible}\n message={message}\n onSendError={(err) => this.observer.onSendError(err)}\n />)\n }\n
\n );\n }\n\n // start of ControlsLayer implementation\n setConfiguration(configuration: PlayerControls, isAdminMode: boolean) {\n this.setState({\n configuration,\n isAdminMode\n });\n }\n\n registerObserver(observer: ControlsLayerObserver): void {\n this.observer = observer;\n }\n\n resetScenarioElement(scenarioPath: ScenarioPath, subtitles?: Subtitle[]): void {\n this.setState({\n scenarioPath,\n bufferedTime: 0,\n ellapsedTime: 0,\n subtitleSources: subtitles,\n subtitlesText: undefined\n });\n }\n\n play() {\n this.setState({\n playbackState: \"playing\",\n disableIcon: false\n });\n this.observer.onPlay();\n }\n\n pause() {\n this.setState({\n playbackState: \"paused\"\n });\n this.observer.onPause();\n }\n\n showLoader(): void {\n this.setState({\n isLoading: true\n });\n }\n\n hideLoader(): void {\n this.setState({\n isLoading: false\n });\n }\n\n moveTo(time: number): void {\n this.setState({\n ellapsedTime: time\n });\n }\n\n updateBufferedTime(time: number): void {\n this.setState({\n bufferedTime: time\n });\n }\n\n setVolume(volume: number): void {\n this.setState({\n volume\n });\n }\n\n setIsMuted(isMuted: boolean): void {\n this.setState({\n isVolumeMuted: isMuted\n });\n }\n\n setSubtitleSources(subtitleSources: Subtitle[]) {\n this.setState({\n subtitleSources\n });\n }\n\n selectSubtitleSource(subtitle: Subtitle): void {\n this.setState({\n selectedSubtitlesSrc: subtitle && subtitle.source\n });\n this.observer.onSubtitleSourceSelected(subtitle);\n }\n\n setTotalScenarioTime(totalTime: number) {\n this.setState({\n totalTime\n });\n }\n\n displaySubtitles(subtitles: SubtitlesText) {\n this.setState({\n subtitlesText: subtitles\n });\n }\n\n scenarioEnded() {\n if ([\"seekingAfterPause\", \"seekingAfterPlay\"].indexOf(this.state.playbackState) > -1) {\n return;\n }\n if (this.state.scenarioPath.isLastPart) {\n this.setState({\n playbackState: \"scenarioFinished\"\n });\n } else {\n this.setState({\n playbackState: \"elementFinished\"\n });\n }\n }\n\n userInteractionEnded() {\n this.deviceSpecificLayer.handleUserInteractionEnded();\n }\n\n userInteractedWithPlayer() {\n this.deviceSpecificLayer.handleUserInteractedWithPlayer();\n }\n\n userClickedPlayer() {\n this.deviceSpecificLayer.handleUserClickedPlayer();\n }\n\n showPlayerInfoTooltip(x: number, y: number) {\n if (!this.props.isMobileDevice) {\n (this.deviceSpecificLayer as DesktopControlsLayerComponent).showPlayerInfoTooltip(x, y);\n }\n }\n\n showMessage(message: string | VintomError): void {\n this.setState({\n message\n });\n }\n\n showLoadingPage(loadingPageVisible: boolean): void {\n this.setState({\n loadingPageVisible\n });\n }\n\n setBandwidth(bandwidth: number): void {\n this.setState({\n bandwidth\n });\n }\n\n setQualityLevels(qualityLevels: QualityLevel[]): void {\n this.setState({\n qualityLevels\n });\n }\n\n setIsPlaybackBlockingCTADisplayed(isPlaybackBlockingCTADisplayed: boolean): void {\n this.setState({\n isPlaybackBlockingCTADisplayed\n });\n }\n // end of ControlsLayer implementation\n\n private startSeek() {\n this.observer.onSeekStart();\n if (this.state.playbackState === \"playing\") {\n this.setState({\n playbackState: \"seekingAfterPlay\"\n });\n } else {\n this.setState({\n playbackState: \"seekingAfterPause\"\n });\n }\n }\n\n private endSeek() {\n const { ellapsedTime, totalTime, scenarioPath } = this.state;\n if (ellapsedTime >= totalTime) {\n this.observer.onReloadFrame();\n if (scenarioPath.isLastPart) {\n this.setState({\n playbackState: \"scenarioFinished\"\n });\n } else {\n this.setState({\n playbackState: \"elementFinished\"\n });\n }\n } else if (this.state.playbackState === \"seekingAfterPlay\") {\n this.observer.onPlay();\n this.setState({\n playbackState: \"playing\"\n });\n } else {\n this.observer.onReloadFrame();\n this.setState({\n playbackState: \"paused\"\n });\n }\n }\n\n private handleSeekTo(time: number) {\n this.observer.onSeekTo(time);\n }\n\n private replay() {\n this.observer.onJumpToScenarioElement(this.state.scenarioPath.initialElement, 0);\n }\n\n private changeVolume(volume: number) {\n const isVolumeMuted = volume === 0;\n this.setState({\n volume,\n isVolumeMuted\n });\n this.observer.onVolumeChange(volume);\n this.observer.onMutedChange(isVolumeMuted);\n }\n\n private onToggleMuted() {\n this.updateMuted(!this.state.isVolumeMuted);\n }\n\n private unMute() {\n this.updateMuted(false);\n }\n\n private updateMuted(isVolumeMuted: boolean) {\n this.observer.onMutedChange(isVolumeMuted);\n this.setState({\n isVolumeMuted\n });\n\n if (!isVolumeMuted) {\n const volume = this.state.volume || ControlsLayerComponent.DEFAULT_VOLUME_AFTER_UNMUTE;\n this.observer.onVolumeChange(volume);\n this.setState({\n volume\n });\n }\n }\n\n private jumpToScenarioElement(scElement: ScenarioElement, progress: number): void {\n this.observer.onJumpToScenarioElement(scElement, progress);\n }\n\n private toggleFullscreen() {\n this.observer.onToggleFullscreen();\n }\n\n}\n","import { MusicLayer } from \"@manager/layer/MusicLayer\";\nimport React from \"react\";\n\n// tslint:disable:max-classes-per-file\n\n// music should be hosted from storage with new API (support for byte range functionality is needed - Accept-Ranges: bytes)\n\ninterface Props {\n className?: string;\n}\n\nexport class MusicLayerComponent extends React.Component implements MusicLayer {\n private static JUST_BEFORE_END = 0.01;\n private audioNode: HTMLAudioElement;\n private fadeOutHandler: any;\n private startTimeShift: number;\n private endTimeShift: number;\n\n constructor(props: Props) {\n super(props);\n \n }\n\n render() {\n return (\n
\n
\n );\n }\n\n changeSource(src: string): void {\n this.audioNode.src = src;\n this.audioNode.load();\n }\n\n setMusicTime(startTime: number, endTime: number): void {\n this.startTimeShift = startTime;\n this.endTimeShift = endTime;\n } \n\n fadeOut(): void {\n const initialVolume = this.audioNode.volume;\n this.fadeOutHandler = setInterval(\n () => {\n this.audioNode.volume -= this.audioNode.volume > 0.01 ? .01 : 0;\n if (this.audioNode.volume <= 0.01) {\n clearInterval(this.fadeOutHandler);\n this.audioNode.pause();\n // reset volume (needed e.g. on seek bar change)\n this.audioNode.volume = initialVolume;\n }\n },\n 20); \n }\n \n play(videoCurrentTime: number, videoDuration: number): void {\n clearInterval(this.fadeOutHandler);\n this.audioNode.play();\n this.audioNode.pause();\n if (videoCurrentTime > this.startTimeShift && videoCurrentTime < (videoDuration - this.endTimeShift) && this.audioNode.src !== \"\") {\n this.audioNode.pause();\n this.audioNode.play();\n }\n }\n pause(): void {\n if (this.audioNode.src !== \"\") {\n this.audioNode.pause();\n }\n }\n\n moveTo(time: number): void {\n if (this.audioNode.src !== \"\") {\n this.audioNode.load();\n this.audioNode.currentTime = time - this.startTimeShift - MusicLayerComponent.JUST_BEFORE_END;\n }\n }\n\n changeVolume(volume: number): void {\n this.audioNode.volume = volume;\n }\n\n changeMuted(isMuted: boolean): void {\n this.audioNode.muted = (isMuted);\n }\n\n initializeLayer(): void {\n }\n}\n\n// tslint:enable:max-classes-per-file\n","import { PosterLayer } from \"@manager/layer/PosterLayer\";\nimport React from \"react\";\nimport { AspectRatioHelper } from \"../../utils/AspectRatioHelper\";\nimport { WindowResizeHelper } from \"../../utils/WindowResizeHelper\";\n\nimport \"@styles/c-posterLayer.scss\";\n\ninterface Props {\n className?: string;\n}\n\ninterface State {\n aspectRatio?: number;\n width: number;\n height: number;\n posterUrl?: string;\n}\n\nexport class PosterLayerComponent extends React.Component implements PosterLayer {\n\n private container: HTMLElement;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n width: 0,\n height: 0\n };\n }\n\n render() {\n const { className } = this.props;\n return (\n this.container = element}\n >\n {this.state.posterUrl &&\n \n }\n \n );\n }\n\n componentDidMount() {\n window.addEventListener(\"resize\", this.handleWindowResize);\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.handleWindowResize);\n }\n\n // start of PosterLayer implementation\n setAspectRatio(aspectRatio: number) {\n this.setState({\n aspectRatio,\n ...AspectRatioHelper.calculateDimensions(aspectRatio, this.container.clientWidth, this.container.clientHeight)\n });\n }\n\n showPoster(url: string): void {\n this.setState({\n posterUrl: url\n });\n }\n\n hidePoster(): void {\n this.setState({\n posterUrl: undefined\n });\n }\n\n getIsShowingPoster(): boolean {\n return !!this.state.posterUrl;\n }\n // end of PosterLayer implementation\n\n private recalculateDimensions() {\n if (this.container && this.state.aspectRatio) {\n this.setState({\n ...AspectRatioHelper.calculateDimensions(this.state.aspectRatio, this.container.clientWidth, this.container.clientHeight)\n });\n }\n }\n\n private handleWindowResize = () => {\n WindowResizeHelper.doOnResize(() => this.recalculateDimensions());\n }\n\n}\n","import { VideoLayer } from \"@manager/layer/VideoLayer\";\nimport { VideoLayerObserver } from \"@manager/layerObserver/VideoLayerObserver\";\nimport React from \"react\";\nimport { VintomError } from \"../../api/model/error/VintomError\";\nimport { Source } from \"../../model/playerConfiguration/Source\";\nimport { Subtitle } from \"../../model/playerConfiguration/Subtitle\";\nimport { QualityLevel } from \"../../model/qualityLevel/QualityLevel\";\nimport { SubtitlesText } from \"../../model/subtitles/SubtitlesText\";\nimport { BrowserFeatureDetector } from \"../../utils/BrowserFeatureDetector\";\nimport { ListenerHelper } from \"../../utils/ListenerHelper\";\n\nimport \"@styles/c-videoLayer.scss\";\n\n// tslint:disable:max-classes-per-file\nlet initializeFadeout = true;\nlet initializeMusicPlay = true;\nlet turnOffFadeOut = false;\ndeclare var videojs: typeof import(\"video.js\").default;\ntype Player = import(\"video.js\").default.Player;\n\ntype PlayPauseRequest = \"play\" | \"pause\" | \"playPause\";\ntype PlayPauseRequestStatus = \"initial\" | \"inProgress\" | \"success\" | \"error\";\n\n/**\n * Calling pause while play is in progress results in error\n * Seeking while video is not playing to a location that is not buffered\n * does not reload current frame - we call play and pause to force reloading the frame.\n * There could be a better solution but I haven't found anything.\n */\nclass PlayPauseRequestQueue {\n\n private lastRequest: PlayPauseRequest;\n private lastStatus: PlayPauseRequestStatus = \"initial\";\n private last: Promise = Promise.resolve();\n\n constructor(\n private play: () => Promise,\n private pause: () => void,\n private onPlay: () => void,\n private onPause: () => void) { }\n\n get lastQueuedRequest() {\n return this.lastRequest;\n }\n\n push(request: PlayPauseRequest) {\n switch (this.lastStatus) {\n case \"initial\":\n case \"error\":\n case \"success\":\n this.doPush(request);\n break;\n case \"inProgress\":\n if (request === this.lastRequest && request === \"playPause\") {\n this.doPush(request);\n }\n if (request !== this.lastRequest && !(this.lastRequest === \"playPause\" && request === \"pause\")) {\n this.doPush(request);\n }\n break;\n default:\n throw new Error(`Unsupported PlayPauseRequestStatus '${this.lastStatus}'`);\n }\n }\n\n private doPush(request: PlayPauseRequest) {\n let action: () => Promise;\n switch (request) {\n case \"pause\":\n action = () => Promise.resolve().then(() => this.pause()).then(() => this.onPause());\n break;\n case \"play\":\n action = () => this.play().then(() => this.onPlay());\n break;\n case \"playPause\":\n action = () => this.play().then(() => this.pause());\n break;\n default:\n throw new Error(`Unsupported PlayPauseRequest '${request}'`);\n }\n\n this.lastStatus = \"inProgress\";\n this.lastRequest = request;\n this.last = this.last\n .then(action)\n .then(() => { this.lastStatus = \"success\"; }, () => { this.lastStatus = \"error\"; });\n }\n}\n\n/**\n * In theory we should be able to rely on 'waiting', 'playing' events to know when the player is waiting\n * In practice that doesn't work on mobile. 'waiting' event is fired correctly but 'playing' is fired way before\n * the video starts playing. That leads to situations where loader is not displayed but the video isn't playing either.\n */\nclass ProgressChecker {\n isProgressing: boolean = false;\n\n private static INTERVAL = 100;\n\n private lastSeekTime: number;\n private intervalHandle: number;\n\n constructor(private player: videojs.default.Player) {\n this.initialize();\n }\n\n cleanUp() {\n if (this.intervalHandle !== undefined) {\n clearInterval(this.intervalHandle);\n }\n }\n\n private initialize() {\n this.intervalHandle = window.setInterval(\n () => {\n const newSeekTime = this.player.currentTime();\n if (!this.player.seeking()) {\n this.isProgressing = newSeekTime !== this.lastSeekTime;\n }\n this.lastSeekTime = newSeekTime;\n },\n ProgressChecker.INTERVAL);\n }\n}\n\ninterface Props {\n isFullscreen: boolean;\n className?: string;\n}\ninterface State {\n isVideoStarted: boolean;\n}\n\nexport class VideoLayerComponent extends React.Component implements VideoLayer {\n\n private static SEEK_AFTER_LOAD_INTERVAL = 50;\n private static SEEK_AFTER_LOAD_CLOSE_ENOUGH = 0.1;\n private static DEFAULT_VTT_CUES_VERTICAL_POSITION = 100;\n private static JUST_BEFORE_END = 0.01;\n\n private static XMPEGURL_MIME_TYPE = \"application/x-mpegurl\";\n private static DASH_MIME_TYPE = \"application/dash+xml\";\n private static MPEG4_MIME_TYPE = \"video/mp4\";\n\n private static PREFERRED_MIME_TYPE_ORDER = [\n VideoLayerComponent.DASH_MIME_TYPE,\n VideoLayerComponent.XMPEGURL_MIME_TYPE,\n VideoLayerComponent.MPEG4_MIME_TYPE];\n\n private progressChecker: ProgressChecker;\n private player: Player;\n private hlsHandler: any;\n private videoNode: HTMLVideoElement;\n private textTracksBySource: { [source: string]: TextTrack } = {};\n private observer: VideoLayerObserver;\n private playPauseRequestQueue: PlayPauseRequestQueue;\n private currentFrameTime: number;\n private startTimeShift: number;\n private endTimeShift: number;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isVideoStarted: false\n };\n }\n\n render() {\n return (\n
\n
\n this.videoNode = node}\n className=\"video-js\"\n />\n
\n
\n );\n }\n\n componentDidMount() {\n ListenerHelper.addEventListener(\"window\", \"resize\", this.requestQualityChange);\n }\n\n componentWillUnmount() {\n ListenerHelper.removeEventListener(\"window\", \"resize\", this.requestQualityChange);\n if (this.progressChecker) {\n this.progressChecker.cleanUp;\n }\n }\n\n // start of VideoLayer implementation\n loadVideo(sources: Source[], subtitles: Subtitle[], progress: number): Promise {\n this.currentFrameTime = 0;\n this.playPauseRequestQueue = new PlayPauseRequestQueue(\n () => this.player.play(),\n () => this.player.pause(),\n () => this.observer.onPlay(),\n () => this.observer.onPause());\n\n this.player.show();\n const canPlay =\n new Promise((resolve) => {\n /**\n * Calling play on videojs straight after 'loadedmetadata' (without waiting for 'canplay') causes a race in videojs\n * and playback sometimes stalls on Chrome (VIN-225)\n * (This happens for DASH sources only)\n *\n * On Safari canplay is fired first after user interacts with the player\n */\n const readyEventName = (() => {\n if (\n BrowserFeatureDetector.isChrome &&\n !BrowserFeatureDetector.isMobileDevice &&\n !BrowserFeatureDetector.isAndroid\n ) {\n return \"canplay\";\n }\n return \"loadedmetadata\";\n })();\n\n this.player.one(readyEventName, () => {\n this.hlsHandler = (this.player.tech({ IWillNotUseThisInPlugins: true }) as any).vhs;\n this.seekAfterLoad(progress);\n resolve();\n });\n });\n\n this.player.src(this.prepareSources(sources));\n\n let loadedTracks: Promise[];\n canPlay.then(() =>\n loadedTracks = subtitles.map((subtitle) => {\n const track = this.player.addRemoteTextTrack({ src: subtitle.source }, false);\n return new Promise((resolve) => {\n track.addEventListener(\"load\", () => {\n this.textTracksBySource[subtitle.source] = track.track;\n track.track.addEventListener(\"cuechange\", () => this.handleTextTrack(track.track));\n resolve();\n });\n });\n })\n );\n\n const ready = canPlay.then(() => Promise.all(loadedTracks).then(() => {}));\n\n this.setState({\n isVideoStarted: false\n });\n\n return ready;\n }\n\n getCurrentSeekTime(): number {\n return this.player.currentTime();\n }\n\n getCurrentFrameTime(): number {\n if (!this.player.seeking()) {\n this.currentFrameTime = this.getCurrentSeekTime();\n }\n return this.currentFrameTime;\n }\n\n getTotalTime(): number {\n return this.player.duration();\n }\n\n getBufferedTime(): number {\n const bufferedRanges = this.getBufferedRanges();\n bufferedRanges.sort((r1, r2) => r1.start - r2.start);\n\n const currentTime = this.player.currentTime();\n const currentBufferedRange = bufferedRanges.find((range) => range.start <= currentTime && range.end >= currentTime);\n return currentBufferedRange && currentBufferedRange.end || 0;\n }\n\n getVolume(): number {\n return this.player.volume();\n }\n\n getIsPlaying(): boolean {\n return this.playPauseRequestQueue.lastQueuedRequest === \"play\" && !this.player.ended() && !this.player.seeking();\n }\n\n get isProgressing(): boolean {\n return this.progressChecker && this.progressChecker.isProgressing;\n }\n\n getIsWaiting(): boolean {\n return !this.isProgressing && !this.player.paused() && !this.player.ended();\n }\n\n getIsFullyLoaded(): boolean {\n return !!this.player.played().length;\n }\n\n play(): void {\n if (!this.player.ended()) {\n this.playPauseRequestQueue.push(\"play\");\n }\n }\n\n pause(): void {\n this.playPauseRequestQueue.push(\"pause\");\n }\n\n moveTo(time: number): void {\n if (time >= this.player.duration()) {\n // Don't let video end while scrubbing. It's done the same way in videojs. You cannot seek to the end.\n // It feels like playback becomes unstable in Safari after you do that.\n this.player.currentTime(time - VideoLayerComponent.JUST_BEFORE_END);\n return;\n }\n this.player.currentTime(time);\n }\n\n reloadFrame(): void {\n const bufferedRanges = this.getBufferedRanges();\n const currentTime = this.player.currentTime();\n\n const isNewFrameInRange = !!bufferedRanges.find((range) => range.start <= currentTime && range.end >= currentTime);\n if (isNewFrameInRange) {\n return;\n }\n\n if (this.player.ended()) {\n this.player.currentTime(this.player.currentTime() - VideoLayerComponent.JUST_BEFORE_END);\n this.playPauseRequestQueue.push(\"play\");\n } else {\n this.playPauseRequestQueue.push(\"playPause\");\n }\n }\n\n changeVolume(volume: number): void {\n this.player.volume(volume);\n }\n\n changeMuted(isMuted: boolean): void {\n this.player.muted(isMuted);\n if (isMuted) {\n this.player.volume(0);\n }\n }\n\n getBandwidth(): number {\n return this.hlsHandler && this.hlsHandler.bandwidth;\n }\n\n getQualityLevels(): QualityLevel[] {\n\n if (this.hlsHandler) {\n const currentRepresentationId = this.hlsHandler.selectPlaylist().uri;\n const representations = this.hlsHandler.representations();\n\n return representations\n .map((representation) => ({\n id: representation.id,\n width: representation.width,\n height: representation.height,\n bandwidth: representation.bandwidth,\n isCurrent: representation.id === currentRepresentationId\n }))\n .sort((r1, r2) => r1.bandwidth - r2.bandwidth);\n }\n }\n\n initializeLayer(): void {\n const playerOptions: any = {\n resizeManager: false,\n html5: {\n nativeTextTracks: false,\n nativeAudioTracks: false,\n nativeVideoTracks: false,\n vhs: {\n overrideNative: true,\n useBandwidthFromLocalStorage: true\n }\n }\n };\n\n this.player = videojs(this.videoNode, playerOptions);\n this.progressChecker = new ProgressChecker(this.player);\n }\n\n registerObserver(observer: VideoLayerObserver): void {\n\n if (this.player) {\n this.player.off(\"ended\");\n this.player.off(\"play\");\n this.player.off(\"error\");\n this.player.off(\"durationchange\");\n\n this.observer = observer;\n\n this.player.on(\"durationchange\", () => observer.onTotalTimeChange(this.player.duration()));\n this.player.on(\"ended\", () => observer.onEnded());\n this.player.on(\"timeupdate\", () => {\n if (this.player.currentTime() >= this.startTimeShift && initializeMusicPlay) {\n if (this.getIsPlaying()) {\n observer.initializeMusic();\n initializeMusicPlay = false;\n }\n }\n if (this.player.currentTime() < this.startTimeShift) {\n initializeMusicPlay = true;\n }\n if (this.player.remainingTime() < (2 + this.endTimeShift) && initializeFadeout === true) {\n turnOffFadeOut = (this.player.remainingTime() < this.endTimeShift);\n observer.onNearTheEnd(turnOffFadeOut);\n initializeFadeout = false;\n }\n });\n this.player.on(\"play\", () => {\n initializeFadeout = true;\n if (!this.state.isVideoStarted) {\n observer.onStarted();\n this.setState({\n isVideoStarted: true\n });\n }\n });\n this.player.on(\"error\", () => observer.onError(new VintomError(\"playbackFailure\", this.player.error().message)));\n }\n }\n \n setMusicTime(startTime: number, endTime: number): void {\n this.startTimeShift = startTime;\n this.endTimeShift = endTime;\n }\n\n captureSnapshot(): string {\n if (BrowserFeatureDetector.isSafari()) {\n // Capturing snapshots doesn't work correctly on Safari\n // in MPEG4 it's always the first frame that's captured, regardless of what's currently displayed\n // in HLS the data url is always invalid\n return;\n }\n\n if (this.props.isFullscreen &&\n ((BrowserFeatureDetector.isAndroid() && BrowserFeatureDetector.isChrome()) || !BrowserFeatureDetector.isFullscreenSupported())) {\n // Screenshots on Chrome on Android in fullscreen mode are always black\n // Screenshots in fullscreen imitation mode are always black \n return;\n }\n\n const canvas: HTMLCanvasElement = document.createElement(\"canvas\");\n canvas.width = this.videoNode.clientWidth;\n canvas.height = this.videoNode.clientHeight;\n\n try {\n canvas.getContext(\"2d\").drawImage(this.videoNode, 0, 0, canvas.width, canvas.height);\n } catch {\n // Firefox on Android throws 'NS_ERROR_NOT_AVAILABLE: Component is not available' when drawing image from video node to canvas.\n // There are a few similar issues in Mozilla's bug tracker, ie. https://bugzilla.mozilla.org/show_bug.cgi?id=1481406\n return;\n }\n\n try {\n return canvas.toDataURL();\n } catch {\n // This should never happen as all video responses have Access-Control-Allow-Origin: * header\n // and the video tag has crossorigin=\"anonymous\" attribute.\n //\n // There is a bug in Safari where it throws SecurityException even though it shouldn't.\n // Currently we do not take snapshots on Safari - they are broken both for MPEG4 and HLS - so this path\n // won't be run on Safari.\n //\n // This catch is left in case some other browser (IE maybe?) exhibits the same weird behaviour as Safari -\n // we silently fall back to not having end-of-scenario-element posters\n }\n }\n\n activateSubtitles(source: string) {\n Object.keys(this.textTracksBySource).forEach((trackSource) => this.textTracksBySource[trackSource].mode = \"disabled\");\n if (source) {\n this.textTracksBySource[source].mode = \"hidden\";\n this.handleTextTrack(this.textTracksBySource[source]);\n } else {\n this.observer.onSubtitlesChange(undefined);\n }\n }\n\n hide() {\n if (this.player) {\n this.player.hide();\n }\n }\n\n // end of VideoLayer implementation\n\n private seekAfterLoad(progress: number): void {\n if (progress === 0) {\n return;\n }\n // duration should be available after loadedmetadata event but it's not (Chrome on Android)\n const duration = this.player.duration();\n if (isNaN(duration)) {\n setTimeout(() => this.seekAfterLoad(progress), VideoLayerComponent.SEEK_AFTER_LOAD_INTERVAL);\n } else {\n const timeToSeekTo = progress * this.getTotalTime();\n this.trySeek(timeToSeekTo);\n }\n }\n\n /**\n *\n * Setting currentTime on mobile usually doesn't work (currentTime is still 0). It sometimes works after canplay event,\n * sometimes after canplaythrough and sometimes you have to wait even longer.\n * As a workaround we repeatedly try to set currentTime in an interval.\n *\n * Because of rounding this.player.currentTime() does not have to be exactly the same as the time we set.\n *\n * Looks ugly but videojs uses the same approach: https://github.com/brightcove/videojs-urlparams/blob/master/videojs.urlparams.js#L97-L105\n *\n */\n private trySeek(time: number): void {\n this.player.currentTime(time);\n setTimeout(\n () => {\n if (Math.abs(this.player.currentTime() - time) > VideoLayerComponent.SEEK_AFTER_LOAD_CLOSE_ENOUGH) {\n this.trySeek(time);\n }\n },\n VideoLayerComponent.SEEK_AFTER_LOAD_INTERVAL);\n }\n\n private getBufferedRanges() {\n const bufferedRangeObject = this.player.buffered();\n const bufferedRanges = Array.from(Array(bufferedRangeObject.length).keys())\n .map((index) => ({\n start: bufferedRangeObject.start(index),\n end: bufferedRangeObject.end(index)\n }));\n return bufferedRanges;\n }\n\n private prepareSources(sources: Source[]): Source[] {\n let preparedSources = BrowserFeatureDetector.isSafari() ?\n sources.filter((source) => source.type !== VideoLayerComponent.DASH_MIME_TYPE) :\n sources;\n if (!preparedSources.length) {\n this.observer.onError(new VintomError(\"playbackFailure\", \"Video has no sources (DASH sources cannot be played on Safari\"));\n }\n\n preparedSources = preparedSources.sort((s1, s2) =>\n VideoLayerComponent.PREFERRED_MIME_TYPE_ORDER.indexOf(s1.type) - VideoLayerComponent.PREFERRED_MIME_TYPE_ORDER.indexOf(s2.type));\n\n return preparedSources;\n }\n\n private handleTextTrack(textTrack: TextTrack) {\n const activeCues = textTrack.activeCues;\n const activeVTTCues: VTTCue[] = [];\n\n for (const idx of Array.from(Array(activeCues.length).keys())) {\n const activeCue = activeCues[idx] as any;\n // only VTTCue has line property\n if (activeCue.line !== undefined) {\n activeVTTCues.push(activeCue as VTTCue);\n }\n }\n // there should be at most one VTTCue at a given time\n const activeVTTCue = activeVTTCues.length && activeVTTCues[0];\n\n let subtitlesText: SubtitlesText;\n\n if (activeVTTCue) {\n subtitlesText = {\n text: activeVTTCue.text,\n verticalPosition: typeof (activeVTTCue.line) === \"number\" ?\n activeVTTCue.line as number : VideoLayerComponent.DEFAULT_VTT_CUES_VERTICAL_POSITION\n };\n }\n\n this.observer.onSubtitlesChange(subtitlesText);\n }\n\n private requestQualityChange = () => {\n this.hlsHandler && this.hlsHandler.masterPlaylistController_.smoothQualityChange_();\n }\n}\n\n// tslint:enable:max-classes-per-file\n","\nimport \"@styles/loadingPage.scss\";\nimport React from \"react\";\nimport { I18n } from \"../../../../i18n/i18n\";\n\ninterface Props {\n i18n: I18n;\n}\n\nexport class LoadingPageComponent extends React.Component {\n constructor(props: Props) {\n super(props);\n }\n\n render() {\n const { i18n } = this.props;\n\n return (\n
\n
\n
{i18n.loadingPageMainMsg}
\n
\n \"camera\n
\n

{i18n.loadingPageDetails}

\n
\n
);\n }\n}\n","import React from \"react\";\n\nimport \"@styles/c-menuButton.scss\";\n\ninterface Props {\n onClick: (event: React.MouseEvent) => void;\n icon: React.ReactNode;\n isDesktop?: boolean;\n isDisabled?: boolean;\n isActive?: boolean;\n className?: string;\n}\n\nexport const MenuButtonComponent: React.SFC = ({ onClick, icon, isDesktop, isActive, isDisabled, className }) => {\n\n return (\n {\n if (!isDisabled) {\n onClick(event);\n }\n }}\n >\n {icon}\n \n );\n};\n","import React from \"react\";\nimport { VintomError } from \"src/api/model/error/VintomError\";\nimport { I18n } from \"../../../../i18n/i18n\";\n\nimport \"@styles/c-message.scss\";\n\ninterface Props {\n i18n: I18n;\n message: string | VintomError;\n onSendError: (error?: VintomError) => void;\n}\n\ninterface State {\n isAfterErrorSent: boolean;\n}\n\nexport class MessageComponent extends React.Component {\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isAfterErrorSent: false\n };\n }\n\n render() {\n const { i18n, message } = this.props;\n\n let messageStr: string;\n let error: VintomError;\n if (this.state.isAfterErrorSent) {\n messageStr = i18n.thankYouForSendingReport;\n } else if (typeof (message) === \"string\") {\n messageStr = message;\n } else {\n error = message;\n }\n\n return (\n
\n
\n \n {!this.state.isAfterErrorSent && error &&\n this.handleSendError(error)}\n >\n {i18n.sendReport}\n \n }\n
\n
);\n }\n\n private handleSendError(error: VintomError) {\n this.props.onSendError(error);\n this.setState({\n isAfterErrorSent: true\n });\n }\n\n}\n","import React from \"react\";\nimport { ScenarioElement } from \"../../../../model/playerConfiguration/ScenarioElement\";\nimport { PastOrCurrentPart } from \"../../../../model/scenarioPath/PastOrCurrentPart\";\n\nimport \"@styles/c-part.scss\";\n\ninterface Props {\n part: PastOrCurrentPart;\n onPartClicked: (scenarioElement: ScenarioElement, progress: number) => void;\n onMouseMove?: (event: React.MouseEvent) => void;\n onMouseLeave?: () => void; \n}\n\ninterface State {}\n\nexport class PartComponent extends React.Component {\n\n private html: HTMLDivElement;\n\n render() {\n const {\n part,\n onMouseMove,\n onMouseLeave\n } = this.props;\n return (\n this.html = element}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n onClick={(event) => this.handlePartClicked(event)}\n >\n
\n
\n );\n }\n\n private handlePartClicked(event: React.MouseEvent) {\n const { part, onPartClicked } = this.props;\n\n if (part.scenarioElement) {\n const partBoundingRect = this.html.getBoundingClientRect();\n\n const progress = (event.clientX - partBoundingRect.left) / (partBoundingRect.right - partBoundingRect.left);\n onPartClicked(part.scenarioElement, progress);\n }\n }\n}\n","import React from \"react\";\nimport { ListenerHelper } from \"../../../../utils/ListenerHelper\";\n\nimport \"@styles/c-slider.scss\";\n\ninterface Props {\n value: number;\n isHandleAlwaysVisible?: boolean;\n onSliderInteraction: (value: number, isChanging: boolean) => void;\n onChangingSliderInteractionStarted?: () => void;\n onSliderInteractionEnded?: (wasChanging: boolean) => void;\n secondaryValue?: number;\n className?: string;\n style?: {[key: string]: string};\n}\n\ninterface State {\n isHovered: boolean;\n isDragging: boolean;\n}\n\nexport class SliderComponent extends React.Component {\n\n private static HANDLE_WIDTH = 12;\n\n private slider: HTMLDivElement;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isHovered: false,\n isDragging: false\n };\n }\n\n render() {\n const { value, secondaryValue, className, style, isHandleAlwaysVisible } = this.props;\n return (\n this.slider = element}\n className={`${className || \"\"} c-slider`}\n style={style}\n onMouseEnter={() => this.handleMouseEnter()}\n onMouseLeave={() => this.handleMouseLeave()}\n onMouseMove={(event) => this.handleMouseMove(event.nativeEvent)}\n onMouseDown={(event) => this.handleMouseDown(event.nativeEvent)}\n\n onTouchMove={(event) => this.handleTouchMove(event.nativeEvent)}\n onTouchStart={(event) => this.handleTouchStart(event.nativeEvent)}\n onTouchEnd={() => this.handleTouchEnd()}\n >\n
\n
\n {secondaryValue !== undefined &&\n \n }\n \n {(this.state.isHovered || this.state.isDragging || isHandleAlwaysVisible) &&\n \n }\n
\n\n
\n );\n }\n\n private handleMouseEnter() {\n this.setState({\n isHovered: true\n });\n }\n\n private handleMouseLeave() {\n this.setState({\n isHovered: false\n });\n if (!this.state.isDragging) {\n this.fireInteractionEndedEvent();\n }\n }\n\n private handleMouseMove(event: MouseEvent) {\n this.fireInteractedEvent(event.clientX, this.state.isDragging);\n }\n\n private handleMouseDown(event: MouseEvent) {\n ListenerHelper.addEventListener(\"document\", \"mousemove\", this.trackMouse);\n this.setState({\n isDragging: true\n });\n this.props.onChangingSliderInteractionStarted && this.props.onChangingSliderInteractionStarted();\n this.fireInteractedEvent(event.clientX, true);\n ListenerHelper.addEventListener(\"document\", \"mouseup\", this.stopMouseTracking);\n }\n\n private trackMouse = (event: MouseEvent) => {\n this.fireInteractedEvent(event.clientX, this.state.isDragging);\n }\n\n private stopMouseTracking = () => {\n this.fireInteractionEndedEvent();\n this.setState({\n isDragging: false\n });\n ListenerHelper.removeEventListener(\"document\", \"mouseup\", this.stopMouseTracking);\n ListenerHelper.removeEventListener(\"document\", \"mousemove\", this.trackMouse);\n }\n\n private handleTouchMove(event: TouchEvent) {\n this.fireInteractedEvent(event.touches[0].clientX, this.state.isDragging);\n }\n\n private handleTouchStart(event: TouchEvent) {\n this.setState({\n isDragging: true\n });\n this.props.onChangingSliderInteractionStarted && this.props.onChangingSliderInteractionStarted();\n this.fireInteractedEvent(event.touches[0].clientX, true);\n }\n\n private handleTouchEnd() {\n this.setState({\n isDragging: false\n });\n this.fireInteractionEndedEvent();\n }\n\n private fireInteractedEvent(clientX: number, isChangingValue: boolean) {\n const progress = this.calculateProgress(clientX);\n this.props.onSliderInteraction(progress, isChangingValue);\n }\n\n private fireInteractionEndedEvent() {\n if (this.props.onSliderInteractionEnded) {\n this.props.onSliderInteractionEnded(this.state.isDragging);\n }\n }\n\n private calculateProgress(clientX: number) {\n const relativeX = clientX - this.slider.getBoundingClientRect().left;\n let progress = relativeX / (this.slider.clientWidth);\n if (progress < 0) {\n progress = 0;\n }\n if (progress > 1) {\n progress = 1;\n }\n return progress;\n }\n\n private calculateHandleLeftMargin() {\n if (!this.slider) {\n return 0;\n }\n return `${this.slider.clientWidth * this.props.value - SliderComponent.HANDLE_WIDTH / 2}px`;\n }\n\n}\n","import React from \"react\";\nimport { I18n } from \"../../../../i18n/i18n\";\nimport { FacebookIconComponent } from \"../../../icons/socialShare/FacebookIconComponent\";\nimport { TwitterIconComponent } from \"../../../icons/socialShare/TwitterIconComponent\";\n\nimport \"@styles/c-socialShare.scss\";\n\ninterface Props {\n i18n: I18n;\n facebookShareUrl: string;\n twitterShareUrl: string;\n onShared?: () => void;\n}\n\nexport const SocialShareComponent: React.SFC = ({ i18n, facebookShareUrl, twitterShareUrl, onShared }) => {\n return (\n
\n
    \n
  • \n onShared && onShared()}\n >\n \n \n {i18n.facebook}\n \n \n
  • \n
  • \n onShared && onShared()}\n >\n \n \n {i18n.twitter}\n \n \n
  • \n
\n
\n\n );\n};\n","import React from \"react\";\nimport { I18n } from \"../../../../i18n/i18n\";\nimport { Subtitle } from \"../../../../model/playerConfiguration/Subtitle\";\nimport { SubtitlesSelectedIconComponent } from \"../../../icons/subtitles/SubtitlesSelectedIconComponent\";\nimport { ToggleComponent } from \"./ToggleComponent\";\n\nimport \"@styles/c-subtitleSelector.scss\";\n\ninterface Props {\n i18n: I18n;\n subtitles: Subtitle[];\n selectedSubtitlesSrc?: string;\n onSubtitleSourceSelected: (subtitle?: Subtitle) => void;\n \n}\n\ninterface State {}\n\nexport class SubtitleSelectorComponent extends React.Component {\n\n render() {\n const { i18n, subtitles, selectedSubtitlesSrc, onSubtitleSourceSelected } = this.props;\n\n return (\n event.nativeEvent.stopImmediatePropagation()}\n >\n \n {subtitles.length > 0 &&\n
    \n {subtitles.map((subtitle) => (\n
  • \n onSubtitleSourceSelected(subtitle)}>\n {subtitle.label}\n {subtitle.source === selectedSubtitlesSrc &&\n <>\n \n \n \n }\n \n
  • \n ))}\n
\n }\n \n );\n }\n\n toggleSubtitles() {\n const { selectedSubtitlesSrc, subtitles, onSubtitleSourceSelected } = this.props;\n if (selectedSubtitlesSrc) {\n onSubtitleSourceSelected(undefined);\n } else {\n onSubtitleSourceSelected(subtitles[0]);\n }\n }\n\n}\n","import React from \"react\";\n\nimport \"@styles/c-subtitlesDisplay.scss\";\n\ninterface Props {\n subtitlesText: string;\n className?: string;\n}\n\nexport class SubtitlesDisplayComponent extends React.Component {\n\n private static BASE_FONT_SIZE = 10;\n private static MIN_FONT_SIZE = 12;\n private static MAX_FONT_SIZE = 40;\n private static BASE_WIDTH = 500;\n\n private html: HTMLDivElement;\n\n render() {\n const { subtitlesText, className } = this.props;\n return (\n this.html = element}\n >\n \n \n );\n }\n\n private calculateFontSize(): number {\n if (!this.html) {\n return;\n }\n const calculatedSize = SubtitlesDisplayComponent.BASE_FONT_SIZE * this.html.clientWidth / SubtitlesDisplayComponent.BASE_WIDTH;\n return Math.max(SubtitlesDisplayComponent.MIN_FONT_SIZE, Math.min(SubtitlesDisplayComponent.MAX_FONT_SIZE, calculatedSize));\n }\n}\n","import React from \"react\";\n\nimport \"@styles/c-toggle.scss\";\n\ninterface Props {\n checked: boolean;\n onChange: () => void;\n}\n\ninterface State {}\n\nexport class ToggleComponent extends React.Component {\n\n render() {\n const { checked, onChange } = this.props;\n return (\n \n \n \n \n );\n }\n}\n","import React from \"react\";\nimport { TooltipStyle } from \"../../../../uiModel/tooltip/TooltipStyle\";\n\nimport \"@styles/c-tooltip.scss\";\n\ninterface Props {\n x: number;\n y: number;\n text: string;\n licenceAdditionalText?: string;\n textLicence?: string;\n linkLicence?: string;\n isDesktop?: boolean;\n style: TooltipStyle;\n}\n\ninterface State { }\n\ninterface TooltipLocation {\n x: number;\n y: number;\n}\n/**\n * In order to correctly position the tooltip we have to first render it and measure its dimensions\n * (the tooltip cannot extend beyond the margins).\n * The rendering proceeds as follows:\n * 1. Component receives props\n * 2. If props x, y coordinates are far away from previous props x, y coordinates tooltip is rendered with visibility 'hidden' -\n * in this step the tooltip is only rendered so that we can measure it\n * 3. If props x, y coordinates are close to previous props x, y coordinates tooltip is rendered with visibility 'visible' -\n * previously rendered tooltip is used to position currently rendered tooltip.\n *\n * 4. It would be best to render the tooltip with visibility 'hidden' every time the props change\n * and position the tooltip in the subsequent step.\n * Unfortunetely this doesn't look smooth in Safari (ie. the tooltip displaying current time above seekbar looks jagged)\n */\nexport class TooltipComponent extends React.Component {\n\n private static CLOSE_LOCATION_DISTANCE_THRESHOLD = 30;\n\n private tooltipLayer: HTMLElement;\n private tooltip: HTMLElement;\n private tooltipLocation: TooltipLocation;\n\n render() {\n const { x, y, text, licenceAdditionalText, textLicence, linkLicence, style, isDesktop } = this.props;\n\n if (!text) {\n return <>;\n }\n\n const newLocation = { x, y };\n const isLocationClose = this.areLocationsClose(this.tooltipLocation, newLocation);\n this.tooltipLocation = newLocation;\n\n const leftTopCoords = this.calculateLeftTopCoords();\n\n return (\n this.tooltipLayer = element}\n className=\"c-tooltip\"\n >\n
\n
\n
\n
\n this.tooltip = element}\n style={{\n visibility: isLocationClose ? \"visible\" : \"hidden\"\n }}\n >\n {text}\n
\n {licenceAdditionalText} {textLicence}\n
\n
\n
\n
\n
\n
\n );\n }\n\n private areLocationsClose(l1: TooltipLocation, l2: TooltipLocation) {\n if (!l1 || !l2) {\n return false;\n }\n return Math.abs(l1.x - l2.x) < TooltipComponent.CLOSE_LOCATION_DISTANCE_THRESHOLD &&\n Math.abs(l1.y - l2.y) < TooltipComponent.CLOSE_LOCATION_DISTANCE_THRESHOLD;\n }\n\n private calculateLeftTopCoords() {\n if (!this.tooltip) {\n return {\n x: 0,\n y: 0\n };\n }\n\n const { x, y } = this.props;\n const layerBoundingBox = this.tooltipLayer.getBoundingClientRect();\n const tooltipBoundingBox = this.tooltip.getBoundingClientRect();\n\n const shiftedX = x - layerBoundingBox.left - tooltipBoundingBox.width / 2;\n const shiftedY = y - layerBoundingBox.top - tooltipBoundingBox.height;\n\n return {\n x: shiftedX > 0 ? Math.round(shiftedX) : 0,\n y: shiftedY > 0 ? Math.round(shiftedY) : 0\n };\n }\n}\n","import React from \"react\";\n\nimport { VintomError } from \"src/api/model/error/VintomError\";\nimport { I18n } from \"../../../../i18n/i18n\";\nimport { PlayerControls } from \"../../../../model/playerConfiguration/PlayerControls\";\nimport { ScenarioElement } from \"../../../../model/playerConfiguration/ScenarioElement\";\nimport { Subtitle } from \"../../../../model/playerConfiguration/Subtitle\";\nimport { QualityLevel } from \"../../../../model/qualityLevel/QualityLevel\";\nimport { ScenarioPath } from \"../../../../model/scenarioPath/ScenarioPath\";\nimport { SubtitlesText } from \"../../../../model/subtitles/SubtitlesText\";\nimport { ScenarioElementPlaybackState } from \"../../../../uiModel/playback/ScenarioElementPlaybackState\";\nimport { SocialShareConfiguration } from \"../../../../uiModel/socialShare/SocialShareConfiguration\";\nimport { TooltipMetadata } from \"../../../../uiModel/tooltip/TooltipMetadata\";\nimport { TooltipStyle } from \"../../../../uiModel/tooltip/TooltipStyle\";\nimport { TooltipTarget } from \"../../../../uiModel/tooltip/TooltipTarget\";\nimport { SubtitlesDisplayComponent } from \"../common/SubtitlesDisplayComponent\";\nimport { TooltipComponent } from \"../common/TooltipComponent\";\nimport { DesktopMenuComponent } from \"./DesktopMenuComponent\";\nimport { DesktopOverlayComponent } from \"./DesktopOverlayComponent\";\nimport { QualityLevelsComponent } from \"./QualityLevelsComponent\";\n\nimport \"@styles/c-desktopControlsLayer.scss\";\n\ninterface Props {\n i18n: I18n;\n configuration: PlayerControls;\n isAdminMode: boolean;\n bandwidth: number;\n qualityLevels: QualityLevel[];\n isLoading: boolean;\n isCTADisplayed: boolean;\n socialShareConfiguration: SocialShareConfiguration;\n\n playbackState: ScenarioElementPlaybackState;\n onPlay: () => void;\n onPause: () => void;\n onReplay: () => void;\n onSeekStart: () => void;\n onSeekEnd: () => void;\n\n scenarioPath: ScenarioPath;\n totalTime: number;\n ellapsedTime: number;\n bufferedTime: number;\n onSeekTo: (time: number) => void;\n onJumpToScenarioElement: (scenarioElement: ScenarioElement, progress: number) => void;\n\n isVolumeMuted: boolean;\n volume: number;\n onVolumeChange: (volume: number) => void;\n onToggleMuted: () => void;\n onUnMute: () => void;\n\n subtitles: Subtitle[];\n selectedSubtitlesSrc?: string;\n subtitlesText?: SubtitlesText;\n onSubtitleSourceSelected: (subtitle?: Subtitle) => void;\n\n isFullscreenSupported: boolean;\n isFullscreen: boolean;\n onToggleFullscreen: () => void;\n\n loadingPageVisible: boolean;\n\n message?: string | VintomError;\n onSendError: (error: VintomError) => void;\n playIconOnPoster: boolean;\n disableIcon: boolean;\n}\n\ninterface State {\n isControlsShown: boolean;\n tooltipMetadata?: TooltipMetadata;\n}\n\nexport class DesktopControlsLayerComponent extends React.Component {\n\n private static SHOW_CONTROLS_TIMEOUT = 1500;\n private static SHOW_TOOLTIP_TIMEOUT = 1000;\n private static TOOLTIP_MODE_THRESHOLD = 2000;\n\n private lastNonImmediateTooltipTime?: number;\n private tooltipTimeoutHandle?: number;\n private hideControlsTimeoutHandle?: number;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isControlsShown: false \n };\n }\n\n render() {\n const {\n i18n,\n configuration,\n isAdminMode,\n bandwidth,\n qualityLevels,\n isLoading,\n isCTADisplayed,\n socialShareConfiguration,\n\n playbackState,\n onPlay,\n onPause,\n onReplay,\n onSeekStart,\n onSeekEnd,\n\n scenarioPath,\n totalTime,\n ellapsedTime,\n bufferedTime,\n onSeekTo,\n onJumpToScenarioElement,\n\n isVolumeMuted,\n volume,\n onVolumeChange,\n onToggleMuted,\n onUnMute,\n\n subtitles,\n selectedSubtitlesSrc,\n subtitlesText,\n onSubtitleSourceSelected,\n\n isFullscreenSupported,\n isFullscreen,\n onToggleFullscreen,\n\n loadingPageVisible,\n message,\n onSendError,\n disableIcon\n } = this.props;\n\n return (\n
\n
\n \n
\n \n {configuration.logo &&\n \n }\n
\n {isAdminMode &&\n \n }\n {subtitlesText &&\n
\n \n \n \n
\n }\n
\n
\n
\n {this.state.tooltipMetadata &&\n \n }\n
\n
\n {scenarioPath && configuration.controlbarEnabled &&\n \n this.handleMouseEnteredMenu()}\n onMouseLeave={() => this.handleMouseLeftMenu()}\n\n playbackState={playbackState}\n onPlay={onPlay}\n onPause={onPause}\n onReplay={onReplay}\n onSeekStart={onSeekStart}\n onSeekEnd={onSeekEnd}\n\n scenarioPath={scenarioPath}\n totalTime={totalTime}\n ellapsedTime={ellapsedTime}\n bufferedTime={bufferedTime}\n onSeekTo={onSeekTo}\n onJumpToScenarioElement={onJumpToScenarioElement}\n\n isVolumeMuted={isVolumeMuted}\n volume={volume}\n onVolumeChange={onVolumeChange}\n onToggleMuted={onToggleMuted}\n\n subtitles={subtitles}\n onSubtitleSourceSelected={onSubtitleSourceSelected}\n selectedSubtitlesSrc={selectedSubtitlesSrc}\n\n isFullscreenSupported={isFullscreenSupported}\n isFullscreen={isFullscreen}\n onToggleFullscreen={() => {\n this.hideTooltip();\n onToggleFullscreen();\n }}\n\n onCancelTooltip={() => this.hideTooltip()}\n onRequestTooltip={(event) => this.showTooltip(event)}\n />\n
\n }\n
\n
\n );\n }\n\n hidePlayerInfoTooltip() {\n if (this.state.tooltipMetadata && this.state.tooltipMetadata.target === \"playerInfo\") {\n this.hideTooltip();\n }\n }\n\n showPlayerInfoTooltip(x: number, y: number) {\n this.showTooltip({\n x,\n y,\n target: \"playerInfo\"\n });\n }\n\n handleUserInteractedWithPlayer() {\n this.hidePlayerInfoTooltip();\n this.clearTimerAndShowControls();\n this.setHideControlsTimer();\n }\n\n handleUserInteractionEnded() {\n this.hideControls();\n }\n\n handleUserClickedPlayer() {\n const { playbackState, onPlay, onPause, onReplay } = this.props;\n switch (playbackState) {\n case \"paused\":\n onPlay();\n break;\n case \"playing\":\n onPause();\n break;\n case \"scenarioFinished\":\n onReplay();\n break;\n default:\n // do nothing\n }\n }\n\n private get isControlsDisplayed() {\n return this.state.isControlsShown ||\n this.props.playbackState === \"seekingAfterPlay\" ||\n this.props.playbackState === \"seekingAfterPause\" ||\n !!this.props.message;\n }\n\n private calculateTooltipModel() {\n const { i18n, playbackState, isVolumeMuted, isFullscreen } = this.props;\n const { tooltipMetadata } = this.state;\n\n if (!tooltipMetadata) {\n return;\n }\n\n const coords = (({ x, y }) => ({ x, y }))(tooltipMetadata);\n switch (this.state.tooltipMetadata.target) {\n case \"playerInfo\":\n return {\n ...coords,\n text: i18n.poweredByVintom,\n licenceAdditionalText: i18n.licenceAdditionalText,\n textLicence: i18n.licenceLabel,\n linkLicence: i18n.linkLicence,\n style: \"accent\" as TooltipStyle\n };\n case \"seekbarPart\":\n return {\n ...coords,\n text: tooltipMetadata.text,\n style: \"accent\" as TooltipStyle\n };\n case \"seekbarSlider\":\n return {\n ...coords,\n text: tooltipMetadata.text,\n style: \"light\" as TooltipStyle\n };\n case \"playbackControl\":\n const playbackStateToTooltipText = {\n \"finished\": i18n.replay,\n \"paused\": i18n.play,\n \"playing\": i18n.pause\n };\n return {\n ...coords,\n text: playbackStateToTooltipText[playbackState],\n style: \"dark\" as TooltipStyle\n };\n case \"volumeControl\":\n return {\n ...coords,\n text: isVolumeMuted ? i18n.unmute : i18n.mute,\n style: \"dark\" as TooltipStyle\n };\n case \"shareControl\":\n return {\n ...coords,\n text: i18n.share,\n style: \"dark\" as TooltipStyle\n };\n case \"fullscreenControl\":\n return {\n ...coords,\n text: isFullscreen ? i18n.exitFullscreen : i18n.fullscreen,\n style: \"dark\" as TooltipStyle\n };\n case \"subtitlesControl\":\n return {\n ...coords,\n text: i18n.subtitles,\n style: \"dark\" as TooltipStyle\n };\n default:\n return;\n }\n }\n\n private showTooltip(tooltipMetadata: TooltipMetadata) {\n if (this.tooltipTimeoutHandle) {\n clearTimeout(this.tooltipTimeoutHandle);\n }\n\n const timeFromLastNonImmediateTarget = Date.now() - this.lastNonImmediateTooltipTime;\n\n if (this.isTooltipTargetImmediate(tooltipMetadata.target) ||\n timeFromLastNonImmediateTarget < DesktopControlsLayerComponent.TOOLTIP_MODE_THRESHOLD) {\n\n this.setState({\n tooltipMetadata\n });\n } else {\n this.tooltipTimeoutHandle =\n window.setTimeout(() => this.setState({ tooltipMetadata }), DesktopControlsLayerComponent.SHOW_TOOLTIP_TIMEOUT);\n }\n }\n\n private isTooltipTargetImmediate(target: TooltipTarget) {\n return [\"playerInfo\", \"seekbarPart\", \"seekbarSlider\"].indexOf(target) > -1;\n }\n\n private hideTooltip() {\n const { tooltipMetadata } = this.state;\n if (tooltipMetadata && !this.isTooltipTargetImmediate(tooltipMetadata.target)) {\n this.lastNonImmediateTooltipTime = Date.now();\n }\n if (this.tooltipTimeoutHandle) {\n clearTimeout(this.tooltipTimeoutHandle);\n }\n // tslint:disable:align\n setTimeout(() => {\n this.setState({\n tooltipMetadata: undefined\n });\n }, 3000);\n // tslint:enable:align\n }\n\n private handleMouseEnteredMenu() {\n this.clearTimerAndShowControls();\n }\n\n private handleMouseLeftMenu() {\n this.setHideControlsTimer();\n }\n\n private setHideControlsTimer() {\n this.hideControlsTimeoutHandle = window.setTimeout(() => this.hideControls(), DesktopControlsLayerComponent.SHOW_CONTROLS_TIMEOUT);\n }\n\n private clearTimerAndShowControls() {\n if (this.hideControlsTimeoutHandle !== undefined) {\n clearTimeout(this.hideControlsTimeoutHandle);\n }\n this.setState({\n isControlsShown: true\n });\n }\n\n private hideControls() {\n this.setState({\n isControlsShown: false\n });\n }\n\n}\n","import React from \"react\";\nimport { TooltipMetadata } from \"../../../../uiModel/tooltip/TooltipMetadata\";\nimport { FullscreenDisableIconComponent } from \"../../../icons/fullscreen/FullscreenDisableIconComponent\";\nimport { FullscreenEnableIconComponent } from \"../../../icons/fullscreen/FullscreenEnableIconComponent\";\nimport { MenuButtonWithTooltipComponent } from \"./MenuButtonWithTooltipComponent\";\n\ninterface Props {\n isFullscreen: boolean;\n onToggleFullscreen: () => void;\n onCancelTooltip: () => void;\n onRequestTooltip: (metadata: TooltipMetadata) => void;\n}\n\nexport const DesktopFullscreenControlComponent: React.SFC = ({ isFullscreen, onToggleFullscreen, onCancelTooltip, onRequestTooltip }) => {\n const fullscreenIcon = isFullscreen ? : ;\n return (\n \n );\n};\n","import React from \"react\";\nimport { I18n } from \"../../../../i18n/i18n\";\nimport { PlayerControls } from \"../../../../model/playerConfiguration/PlayerControls\";\nimport { ScenarioElement } from \"../../../../model/playerConfiguration/ScenarioElement\";\nimport { Subtitle } from \"../../../../model/playerConfiguration/Subtitle\";\nimport { ScenarioPath } from \"../../../../model/scenarioPath/ScenarioPath\";\nimport { ScenarioElementPlaybackState } from \"../../../../uiModel/playback/ScenarioElementPlaybackState\";\nimport { SocialShareConfiguration } from \"../../../../uiModel/socialShare/SocialShareConfiguration\";\nimport { TooltipMetadata } from \"../../../../uiModel/tooltip/TooltipMetadata\";\nimport { SocialShareIconComponent } from \"../../../icons/socialShare/SocialShareIconComponent\";\nimport { SubtitlesIconComponent } from \"../../../icons/subtitles/SubtitlesIconComponent\";\nimport { SocialShareComponent } from \"../common/SocialShareComponent\";\nimport { SubtitleSelectorComponent } from \"../common/SubtitleSelectorComponent\";\nimport { DesktopFullscreenControlComponent } from \"./DesktopFullscreenControl\";\nimport { DesktopSeekbarComponent } from \"./DesktopSeekbarComponent\";\nimport { ExpandableMenuButtonComponent } from \"./ExpandableMenuButtonComponent\";\nimport { MenuButtonWithTooltipComponent } from \"./MenuButtonWithTooltipComponent\";\nimport { PlaybackControlComponent } from \"./PlaybackControlComponent\";\nimport { ScenarioTimeComponent } from \"./ScenarioTimeComponent\";\nimport { VolumeControlComponent } from \"./VolumeControlComponent\";\n\nimport \"@styles/c-desktopMenu.scss\";\n\ninterface Props {\n i18n: I18n;\n configuration: PlayerControls;\n isDisabled: boolean;\n isDisplayed: boolean;\n socialShareConfiguration: SocialShareConfiguration;\n\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n\n playbackState: ScenarioElementPlaybackState;\n onPlay: () => void;\n onPause: () => void;\n onReplay: () => void;\n onSeekStart: () => void;\n onSeekEnd: () => void;\n\n scenarioPath: ScenarioPath;\n totalTime: number;\n ellapsedTime: number;\n bufferedTime: number;\n onSeekTo: (time: number) => void;\n onJumpToScenarioElement: (scenarioElement: ScenarioElement, progress: number) => void;\n\n isVolumeMuted: boolean;\n volume: number;\n onVolumeChange: (volume: number) => void;\n onToggleMuted: () => void;\n\n subtitles: Subtitle[];\n selectedSubtitlesSrc?: string;\n onSubtitleSourceSelected: (subtitle?: Subtitle) => void;\n\n isFullscreenSupported: boolean;\n isFullscreen: boolean;\n onToggleFullscreen: () => void;\n\n onCancelTooltip: () => void;\n onRequestTooltip: (event: TooltipMetadata) => void;\n\n}\n\nexport const DesktopMenuComponent: React.SFC = (props: Props) => {\n const {\n i18n,\n configuration,\n isDisabled,\n isDisplayed,\n socialShareConfiguration,\n\n onMouseEnter,\n onMouseLeave,\n\n playbackState,\n onPlay,\n onPause,\n onReplay,\n onSeekStart,\n onSeekEnd,\n\n scenarioPath,\n totalTime,\n ellapsedTime,\n bufferedTime,\n onSeekTo,\n onJumpToScenarioElement,\n\n isVolumeMuted,\n volume,\n onVolumeChange,\n onToggleMuted,\n\n subtitles,\n onSubtitleSourceSelected,\n selectedSubtitlesSrc,\n\n isFullscreenSupported,\n isFullscreen,\n onToggleFullscreen,\n\n onCancelTooltip,\n onRequestTooltip\n } = props;\n\n return (\n evt.stopPropagation()}\n >\n
\n
\n
\n
\n
\n {configuration.seekbarEnabled && scenarioPath &&\n
\n \n
\n }\n
\n {configuration.playPauseEnabled &&\n \n }\n \n {configuration.seekbarEnabled &&\n \n }\n
\n {configuration.socialButtonEnabled && socialShareConfiguration.canShare &&\n }\n menu={\n \n }\n tooltipTarget=\"shareControl\"\n onCancelTooltip={onCancelTooltip}\n onRequestTooltip={onRequestTooltip}\n />\n }\n {subtitles && !!subtitles.length &&\n (subtitles.length === 1 ?\n }\n onClick={() => selectedSubtitlesSrc ? onSubtitleSourceSelected(undefined) : onSubtitleSourceSelected(subtitles[0])}\n tooltipTarget=\"subtitlesControl\"\n onCancelTooltip={onCancelTooltip}\n onRequestTooltip={onRequestTooltip}\n /> :\n }\n menu={\n \n }\n tooltipTarget=\"subtitlesControl\"\n onCancelTooltip={onCancelTooltip}\n onRequestTooltip={onRequestTooltip}\n />)\n\n }\n {isFullscreenSupported && configuration.fullscreenEnabled &&\n \n }\n
\n {isDisabled &&
}\n
\n\n
\n );\n};\n","import React from \"react\";\nimport { VintomError } from \"src/api/model/error/VintomError\";\nimport { I18n } from \"../../../../i18n/i18n\";\nimport { ScenarioElementPlaybackState } from \"../../../../uiModel/playback/ScenarioElementPlaybackState\";\nimport { LoaderIconComponent } from \"../../../icons/loader/LoaderIconComponent\";\nimport { PlayIconComponent } from \"../../../icons/playback/PlayIconComponent\";\nimport { ReplayIconComponent } from \"../../../icons/playback/ReplayIconComponent\";\nimport { VolumeMutedIconComponent } from \"../../../icons/volume/VolumeMutedIconComponent\";\nimport { MessageComponent } from \"../common/MessageComponent\";\n\nimport { LoadingPageComponent } from \"../common/LoadingPageComponent\";\n\nimport \"@styles/c-desktopOverlay.scss\";\n\ninterface Props {\n // configuration: PlayerControls;\n i18n: I18n;\n isCTADisplayed: boolean;\n isPlayPauseEnabled: boolean;\n playbackState: ScenarioElementPlaybackState;\n isLoading: boolean;\n isVolumeMuted: boolean;\n onPlay: () => void;\n onReplay: () => void;\n onUnMute: () => void;\n loadingPageVisible: boolean;\n message?: string | VintomError;\n onSendError: (error: VintomError) => void;\n playIconOnPoster: boolean;\n disableIcon: boolean;\n}\n\nexport const DesktopOverlayComponent: React.SFC = (props) => {\n const {\n i18n,\n isCTADisplayed,\n isPlayPauseEnabled,\n playbackState,\n isLoading,\n isVolumeMuted,\n onPlay,\n onReplay,\n onUnMute,\n loadingPageVisible,\n message,\n onSendError,\n playIconOnPoster,\n disableIcon\n } = props;\n\n const isControlDisplayed = !!message ||\n isLoading ||\n isVolumeMuted ||\n isPlayPauseEnabled && [\"paused\", \"scenarioFinished\"].indexOf(playbackState) > -1 && !isCTADisplayed;\n\n if (!isControlDisplayed) {\n return <>;\n }\n\n if (loadingPageVisible) {\n return();\n }\n\n if (message) {\n return (\n \n );\n }\n\n let isDisabled: boolean;\n let icon: React.ReactNode;\n let onClickCallback: () => void;\n\n if (isLoading) {\n isDisabled = true;\n icon = ;\n onClickCallback = () => {};\n } else if (playIconOnPoster === true && disableIcon) {\n return <>;\n } else if (playbackState === \"paused\") {\n isDisabled = false;\n icon = ;\n onClickCallback = onPlay;\n } else if (playbackState === \"scenarioFinished\") {\n isDisabled = false;\n icon = ;\n onClickCallback = onReplay;\n } else {\n isDisabled = false;\n icon = ;\n onClickCallback = onUnMute;\n }\n\n return (\n {\n onClickCallback();\n }}\n >\n {icon}\n \n );\n};\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { I18n } from \"../../../../i18n/i18n\";\nimport { ScenarioElement } from \"../../../../model/playerConfiguration/ScenarioElement\";\nimport { ScenarioPath } from \"../../../../model/scenarioPath/ScenarioPath\";\nimport { TooltipMetadata } from \"../../../../uiModel/tooltip/TooltipMetadata\";\nimport { TimeFormatter } from \"../../../../utils/TimeFormatter\";\nimport { PartComponent } from \"../common/PartComponent\";\nimport { SliderComponent } from \"../common/SliderComponent\";\n\nimport \"@styles/c-desktopSeekbar.scss\";\n\ninterface Props {\n i18n: I18n;\n scenarioPath: ScenarioPath;\n totalTime: number;\n ellapsedTime: number;\n bufferedTime: number;\n onSeekTo: (time: number) => void;\n onJumpToScenarioElement: (scenarioElement: ScenarioElement, progress: number) => void;\n onHideTooltip: () => void;\n onShowTooltip: (event: TooltipMetadata) => void;\n onSeekStart: () => void;\n onSeekEnd: () => void;\n}\n\ninterface State { }\n\nexport class DesktopSeekbarComponent extends React.Component {\n\n private static TOOLTIP_DISTANCE = 6;\n\n private slider: SliderComponent;\n private sliderHtml: HTMLElement;\n\n render() {\n const {\n scenarioPath,\n totalTime,\n ellapsedTime,\n bufferedTime,\n onJumpToScenarioElement,\n onHideTooltip,\n onSeekStart,\n onSeekEnd\n } = this.props;\n\n const progress = ellapsedTime / totalTime;\n const bufferingProgress = bufferedTime / totalTime;\n return (\n
\n {scenarioPath.displayedPastParts.map((part, index) => (\n onJumpToScenarioElement(scenarioElement, jumpProgress)}\n onMouseMove={(event) => this.handlePartMouseMove(event, index)}\n onMouseLeave={() => onHideTooltip()}\n />\n ))}\n this.slider = element}\n value={progress}\n secondaryValue={bufferingProgress}\n onSliderInteraction={(value, isChanging) => this.handleSliderInteraction(value, isChanging)}\n onSliderInteractionEnded={(wasChanging) => {\n onHideTooltip();\n if (wasChanging) {\n onSeekEnd();\n }\n }}\n onChangingSliderInteractionStarted={onSeekStart}\n />\n\n {scenarioPath.displayedFutureParts.map((part) => (\n \n
\n
\n ))}\n
\n );\n }\n\n componentDidMount() {\n this.sliderHtml = ReactDOM.findDOMNode(this.slider) as HTMLElement;\n }\n\n private handlePartMouseMove(event: React.MouseEvent, partIndex: number) {\n const { i18n, onShowTooltip } = this.props;\n const partBoundingBox = (event.target as HTMLElement).getBoundingClientRect();\n onShowTooltip({\n x: event.clientX,\n y: partBoundingBox.top - DesktopSeekbarComponent.TOOLTIP_DISTANCE,\n target: \"seekbarPart\",\n text: `${i18n.part} ${partIndex + 1}`\n });\n }\n\n private handleSliderInteraction(value: number, isChanging: boolean) {\n const { onShowTooltip, totalTime } = this.props;\n if (isChanging) {\n this.props.onSeekTo(value * totalTime);\n }\n\n const sliderBoundingRect = this.sliderHtml.getBoundingClientRect();\n\n const sliderTooltipX = sliderBoundingRect.left + sliderBoundingRect.width * value;\n const sliderTooltipY = sliderBoundingRect.top - DesktopSeekbarComponent.TOOLTIP_DISTANCE;\n\n onShowTooltip({\n x: sliderTooltipX,\n y: sliderTooltipY,\n target: \"seekbarSlider\",\n text: TimeFormatter.format(value * totalTime)\n });\n\n }\n\n} \n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { TooltipMetadata } from \"../../../../uiModel/tooltip/TooltipMetadata\";\nimport { TooltipTarget } from \"../../../../uiModel/tooltip/TooltipTarget\";\nimport { ListenerHelper } from \"../../../../utils/ListenerHelper\";\nimport { MenuButtonWithTooltipComponent } from \"./MenuButtonWithTooltipComponent\";\n\nimport \"@styles/c-expandableMenuButton.scss\";\n\ninterface Props {\n icon: React.ReactNode;\n menu: React.ReactNode;\n isActive?: boolean;\n canExpand: boolean;\n className: string;\n\n tooltipTarget: TooltipTarget;\n onCancelTooltip: () => void;\n onRequestTooltip: (metadata: TooltipMetadata) => void;\n}\n\ninterface State {\n isExpanded: boolean;\n}\n\nexport class ExpandableMenuButtonComponent extends React.Component {\n\n private button: MenuButtonWithTooltipComponent;\n\n static getDerivedStateFromProps(props: Props) {\n if (!props.canExpand) {\n return {\n isExpanded: false\n };\n } else {\n return {};\n }\n }\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isExpanded: false\n };\n }\n\n render() {\n const { icon, menu, isActive, className, tooltipTarget, onCancelTooltip, onRequestTooltip } = this.props;\n return (\n \n this.button = element}\n isActive={isActive}\n onClick={() => this.toggleExpanded()}\n icon={icon}\n tooltipTarget={tooltipTarget}\n onCancelTooltip={onCancelTooltip}\n onRequestTooltip={onRequestTooltip}\n isTooltipDisabled={this.state.isExpanded}\n />\n {this.state.isExpanded &&\n
\n {menu}\n
\n }\n
\n );\n }\n\n componentDidMount() {\n ListenerHelper.addEventListener(\"document\", \"click\", this.collapseOnClickOutside);\n }\n\n componentWillUnmount() {\n ListenerHelper.removeEventListener(\"document\", \"click\", this.collapseOnClickOutside);\n }\n\n private collapseOnClickOutside = (event) => {\n const buttonNode = ReactDOM.findDOMNode(this.button);\n if (!buttonNode.contains(event.target)) {\n this.setState({ isExpanded: false });\n }\n }\n\n private toggleExpanded() {\n const isExpanded = !this.state.isExpanded;\n if (isExpanded) {\n this.props.onCancelTooltip();\n }\n this.setState({\n isExpanded\n });\n }\n}\n","import React from \"react\";\nimport { TooltipMetadata } from \"../../../../uiModel/tooltip/TooltipMetadata\";\nimport { TooltipTarget } from \"../../../../uiModel/tooltip/TooltipTarget\";\nimport { MenuButtonComponent } from \"../common/MenuButtonComponent\";\n\nimport \"@styles/c-menuButtonWithTooltip.scss\";\n\ninterface Props {\n onClick: (event: React.MouseEvent) => void;\n icon: React.ReactNode;\n isDisabled?: boolean;\n isActive?: boolean;\n className?: string;\n\n isTooltipDisabled?: boolean;\n tooltipTarget: TooltipTarget;\n onRequestTooltip: (metadata: TooltipMetadata) => void;\n onCancelTooltip: () => void;\n}\n\nexport class MenuButtonWithTooltipComponent extends React.Component {\n\n render() {\n const {\n onClick,\n icon,\n isActive,\n isDisabled,\n className,\n onCancelTooltip\n } = this.props;\n\n return (\n this.handleMouseEnter(event)}\n onMouseLeave={onCancelTooltip}\n >\n \n
\n\n );\n }\n\n private handleMouseEnter(event: React.MouseEvent) {\n if (!this.props.isTooltipDisabled) {\n const boundingBox = (event.target as HTMLElement).getBoundingClientRect();\n this.props.onRequestTooltip({\n x: boundingBox.left + boundingBox.width / 2,\n y: boundingBox.top,\n target: this.props.tooltipTarget\n });\n }\n }\n}\n","import React from \"react\";\nimport { ScenarioElementPlaybackState } from \"../../../../uiModel/playback/ScenarioElementPlaybackState\";\nimport { TooltipMetadata } from \"../../../../uiModel/tooltip/TooltipMetadata\";\nimport { PauseIconComponent } from \"../../../icons/playback/PauseIconComponent\";\nimport { PlayIconComponent } from \"../../../icons/playback/PlayIconComponent\";\nimport { ReplayIconComponent } from \"../../../icons/playback/ReplayIconComponent\";\nimport { MenuButtonComponent } from \"../common/MenuButtonComponent\";\nimport { MenuButtonWithTooltipComponent } from \"./MenuButtonWithTooltipComponent\";\n\ninterface Props {\n playbackState: ScenarioElementPlaybackState;\n onPlay: () => void;\n onPause: () => void;\n onReplay: () => void;\n onCancelTooltip: () => void;\n onRequestTooltip: (metadata: TooltipMetadata) => void;\n className?: string;\n}\n\nexport const PlaybackControlComponent: React.SFC = ({\n playbackState,\n onPlay,\n onPause,\n onReplay,\n onCancelTooltip,\n onRequestTooltip,\n className }) => {\n\n if (playbackState === \"elementFinished\") {\n return (\n }\n onClick={() => {}}\n className={className}\n tooltipTarget=\"playbackControl\"\n onCancelTooltip={onCancelTooltip}\n onRequestTooltip={onRequestTooltip}\n />);\n }\n\n let icon: React.ReactNode;\n let onClick: () => void;\n\n switch (playbackState) {\n case \"scenarioFinished\":\n icon = ;\n onClick = onReplay;\n break;\n case \"paused\":\n case \"seekingAfterPause\":\n icon = ;\n onClick = onPlay;\n break;\n case \"playing\":\n case \"seekingAfterPlay\":\n icon = ;\n onClick = onPause;\n break;\n default:\n throw new Error(`Unrecognized playbackState '${playbackState}'`);\n\n }\n return (\n \n );\n};\n","import React from \"react\";\nimport { I18n } from \"../../../../i18n/i18n\";\nimport { QualityLevel } from \"../../../../model/qualityLevel/QualityLevel\";\n\nimport \"@styles/c-qualityLevels.scss\";\n\ninterface Props {\n className: string;\n i18n: I18n;\n bandwidth: number;\n qualityLevels: QualityLevel[];\n}\n\nexport const QualityLevelsComponent: React.SFC = ({ className, i18n, bandwidth, qualityLevels }) => {\n if (qualityLevels === undefined || bandwidth === undefined) {\n return <>;\n }\n const formatBandwidth = (b: number) => (b / Math.pow(10, 6)).toFixed(3);\n return (\n
\n
\n {i18n.bandwidth} {formatBandwidth(bandwidth)} {i18n.mbps}\n
\n {qualityLevels.map((quality) => (\n \n {formatBandwidth(quality.bandwidth)} {i18n.mbps}\n
\n ))}\n
\n );\n};\n","import React from \"react\";\nimport { TimeFormatter } from \"../../../../utils/TimeFormatter\";\n\nimport \"@styles/c-scenarioTime.scss\";\n\ninterface Props {\n ellapsedTime: number;\n totalTime: number;\n isMultiElementScenario?: boolean;\n className?: string;\n}\n\nexport const ScenarioTimeComponent: React.SFC = ({ ellapsedTime, totalTime, isMultiElementScenario, className }) => {\n const isReady = isMultiElementScenario !== undefined;\n\n if (!isReady) {\n return
;\n }\n return (\n
\n
\n {TimeFormatter.format(ellapsedTime)}\n
\n {!isMultiElementScenario &&\n
\n {TimeFormatter.format(totalTime)}\n
\n }\n
\n );\n};\n","import React from \"react\";\nimport { TooltipMetadata } from \"../../../../uiModel/tooltip/TooltipMetadata\";\nimport { VolumeLoudIconComponent } from \"../../../icons/volume/VolumeLoudIconComponent\";\nimport { VolumeMutedIconComponent } from \"../../../icons/volume/VolumeMutedIconComponent\";\nimport { VolumeQuietIconComponent } from \"../../../icons/volume/VolumeQuietIconComponent\";\nimport { SliderComponent } from \"../common/SliderComponent\";\nimport { MenuButtonWithTooltipComponent } from \"./MenuButtonWithTooltipComponent\";\n\nimport \"@styles/c-volumeControl.scss\";\n\ninterface Props {\n isVolumeMuted: boolean;\n volume: number;\n onVolumeChange: (volume: number) => void;\n onToggleMuted: () => void;\n onCancelTooltip: () => void;\n onRequestTooltip: (metadata: TooltipMetadata) => void;\n className?: string;\n}\n\ninterface State {\n isHovered: boolean;\n isChangingVolume: boolean;\n}\n\nexport class VolumeControlComponent extends React.Component {\n\n private static LOUD_VOLUME_THRESHOLD = 0.5;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isHovered: false,\n isChangingVolume: false\n };\n }\n\n render() {\n const { isVolumeMuted, volume, onToggleMuted, onCancelTooltip, onRequestTooltip, className } = this.props;\n const displayedVolume = isVolumeMuted ? 0 : volume;\n\n return (\n this.toggleHovered(true)}\n onMouseLeave={() => this.toggleHovered(false)}\n >\n
\n \n
\n
\n {(this.state.isHovered || this.state.isChangingVolume) &&\n
\n this.handleSliderInteraction(value, isChanging)}\n onSliderInteractionEnded={() => this.handleSliderInteractionEnd()}\n />\n
\n }\n
\n );\n }\n\n private renderVolumeIconSvg(isVolumeMuted: boolean, volume: number) {\n if (isVolumeMuted) {\n return ;\n } else if (volume < VolumeControlComponent.LOUD_VOLUME_THRESHOLD) {\n return ;\n }\n return ;\n }\n\n private toggleHovered(isHovered: boolean): void {\n this.setState({\n isHovered\n });\n }\n\n private handleSliderInteraction(value: number, isChanging: boolean): void {\n if (isChanging) {\n if (!this.state.isChangingVolume) {\n this.setState({\n isChangingVolume: true\n });\n }\n this.props.onVolumeChange(value);\n }\n }\n\n private handleSliderInteractionEnd() {\n this.setState({\n isChangingVolume: false\n });\n }\n\n}\n","import React from \"react\";\nimport { VintomError } from \"src/api/model/error/VintomError\";\nimport { Subtitle } from \"../../../..//model/playerConfiguration/Subtitle\";\nimport { I18n } from \"../../../../i18n/i18n\";\nimport { PlayerControls } from \"../../../../model/playerConfiguration/PlayerControls\";\nimport { ScenarioElement } from \"../../../../model/playerConfiguration/ScenarioElement\";\nimport { ScenarioPath } from \"../../../../model/scenarioPath/ScenarioPath\";\nimport { SubtitlesText } from \"../../../../model/subtitles/SubtitlesText\";\nimport { MobileOverlayState } from \"../../../../uiModel/mobileOverlay/MobileOverlayState\";\nimport { ScenarioElementPlaybackState } from \"../../../../uiModel/playback/ScenarioElementPlaybackState\";\nimport { SocialShareConfiguration } from \"../../../../uiModel/socialShare/SocialShareConfiguration\";\nimport { VolumeMutedIconComponent } from \"../../../icons/volume/VolumeMutedIconComponent\";\nimport { MenuButtonComponent } from \"../common/MenuButtonComponent\";\nimport { SubtitlesDisplayComponent } from \"../common/SubtitlesDisplayComponent\";\nimport { MobileMenuComponent } from \"./MobileMenuComponent\";\nimport { MobileOverlayComponent } from \"./MobileOverlayComponent\";\nimport { MobileSeekbarComponent } from \"./MobileSeekbarComponent\";\n\nimport \"@styles/c-mobileControlsLayer.scss\";\n\ninterface Props {\n i18n: I18n;\n configuration: PlayerControls;\n isLoading: boolean;\n isCTADisplayed: boolean;\n socialShareConfiguration: SocialShareConfiguration;\n\n playbackState: ScenarioElementPlaybackState;\n onPlay: () => void;\n onPause: () => void;\n onReplay: () => void;\n onSeekStart: () => void;\n onSeekEnd: () => void;\n\n scenarioPath: ScenarioPath;\n totalTime: number;\n ellapsedTime: number;\n bufferedTime: number;\n onSeekTo: (time: number) => void;\n onJumpToScenarioElement: (scenarioElement: ScenarioElement, progress: number) => void;\n\n isVolumeMuted: boolean;\n onToggleMuted: () => void;\n\n subtitles: Subtitle[];\n selectedSubtitlesSrc?: string;\n subtitlesText?: SubtitlesText;\n onSubtitleSourceSelected: (subtitle?: Subtitle) => void;\n\n isFullscreenSupported: boolean;\n isFullscreen: boolean;\n onToggleFullscreen: () => void;\n\n message?: string | VintomError;\n onSendError: (error: VintomError) => void;\n playIconOnPoster: boolean;\n disableIcon: boolean;\n}\n\ninterface State {\n isSeeking: boolean;\n isControlsShownAfterPlayerClicked: boolean;\n isSubtitlesSelectorShown: boolean;\n isSocialShareShown: boolean;\n}\n\nexport class MobileControlsLayerComponent extends React.Component {\n\n private static SHOW_CONTROLS_TIMEOUT = 2000;\n\n private hideControlsTimeoutHandle?: number;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isSeeking: false,\n isControlsShownAfterPlayerClicked: true,\n isSubtitlesSelectorShown: false,\n isSocialShareShown: false\n };\n }\n\n render() {\n const {\n i18n,\n configuration,\n socialShareConfiguration,\n\n scenarioPath,\n totalTime,\n ellapsedTime,\n bufferedTime,\n onSeekTo,\n onJumpToScenarioElement,\n\n isVolumeMuted,\n onToggleMuted,\n\n subtitles,\n selectedSubtitlesSrc,\n subtitlesText,\n\n isFullscreenSupported,\n isFullscreen,\n onToggleFullscreen,\n\n message,\n onSendError,\n disableIcon\n } = this.props;\n\n const overlayState = this.calculateOverlayState();\n\n return (\n
\n
\n {this.isOverlayDisplayed &&\n this.subtitleSourceSelected(subtitle)}\n socialShareConfiguration={socialShareConfiguration}\n onShared={() => this.handleShared()}\n message={message}\n onSendError={onSendError}\n playIconOnPoster={configuration.playIconOnPoster}\n disableIcon={disableIcon}\n />\n }\n
\n \n
\n {configuration.logo &&\n \n }\n
\n
\n
\n this.handleSocialShareClicked()}\n\n isFullscreenSupported={isFullscreenSupported}\n isFullscreen={isFullscreen}\n onToggleFullscreen={onToggleFullscreen}\n\n isVolumeMuted={isVolumeMuted}\n onToggleMuted={onToggleMuted}\n\n hasSubtitles={subtitles && !!subtitles.length}\n selectedSubtitlesSrc={selectedSubtitlesSrc}\n onSubtitlesSelectorClicked={() => this.handleSubtitlesSelectorClicked()}\n\n isDisabled={!!message}\n />\n
\n {isVolumeMuted &&\n }\n isDisabled={!!message}\n />\n }\n
\n {subtitlesText &&\n
\n \n
\n \n
\n \n
\n }\n {scenarioPath &&\n \n
\n this.handleSeekStart()}\n onSliderInteractionEnded={() => this.handleSeekEnd()}\n isDisabled={!!message}\n />\n
\n
\n }\n
\n );\n }\n\n handleUserInteractedWithPlayer() { }\n\n handleUserInteractionEnded() { }\n\n handleUserClickedPlayer() {\n this.setState({\n isSubtitlesSelectorShown: false,\n isSocialShareShown: false\n });\n const { playbackState, onPlay, onReplay, onPause } = this.props;\n\n switch (playbackState) {\n case \"paused\":\n this.hideControls();\n onPlay();\n break;\n case \"scenarioFinished\":\n this.hideControls();\n onReplay();\n break;\n case \"elementFinished\":\n this.resetTimerAndShowControls();\n break;\n case \"playing\":\n if (this.state.isControlsShownAfterPlayerClicked) {\n if (this.hideControlsTimeoutHandle !== undefined) {\n clearTimeout(this.hideControlsTimeoutHandle);\n }\n onPause();\n } else {\n this.resetTimerAndShowControls();\n }\n break;\n default:\n // do nothing;\n }\n }\n\n private handleSeekStart() {\n this.setState({\n isSeeking: true,\n isSubtitlesSelectorShown: false,\n isSocialShareShown: false\n });\n this.props.onSeekStart();\n }\n\n private handleSeekEnd() {\n this.setState({\n isSeeking: false\n });\n this.props.onSeekEnd();\n }\n\n private calculateOverlayState(): MobileOverlayState {\n const { isLoading, isVolumeMuted, playbackState, message, isCTADisplayed } = this.props;\n\n if (this.state.isSocialShareShown) {\n return \"socialSelector\";\n }\n if (this.state.isSubtitlesSelectorShown) {\n return \"subtitlesSelector\";\n }\n if (message) {\n return \"message\";\n }\n if (isLoading) {\n return \"loading\";\n }\n if (isVolumeMuted) {\n return \"unmute\";\n }\n if (playbackState === \"paused\") {\n return \"pause\";\n }\n if (playbackState === \"scenarioFinished\" && !isCTADisplayed) {\n return \"replay\";\n }\n if (playbackState === \"playing\") {\n return \"play\";\n }\n }\n\n private get isOverlayDisplayed() {\n return this.props.isLoading || this.isControlsDisplayed;\n }\n\n private get isControlsDisplayed() {\n return this.state.isControlsShownAfterPlayerClicked ||\n this.state.isSeeking ||\n this.state.isSubtitlesSelectorShown ||\n this.state.isSocialShareShown ||\n !!this.props.message ||\n this.props.playbackState === \"scenarioFinished\" && !this.props.isCTADisplayed;\n }\n\n private handleSocialShareClicked() {\n this.setState({\n isSubtitlesSelectorShown: false,\n isSocialShareShown: !this.state.isSocialShareShown\n });\n }\n\n private handleSubtitlesSelectorClicked() {\n const { subtitles, selectedSubtitlesSrc, onSubtitleSourceSelected } = this.props;\n this.setState({\n isSocialShareShown: false\n });\n if (subtitles.length === 1) {\n if (selectedSubtitlesSrc) {\n onSubtitleSourceSelected(undefined);\n } else {\n onSubtitleSourceSelected(subtitles[0]);\n }\n } else {\n this.setState({\n isSubtitlesSelectorShown: !this.state.isSubtitlesSelectorShown\n });\n }\n }\n\n private subtitleSourceSelected(subtitle: Subtitle) {\n this.props.onSubtitleSourceSelected(subtitle);\n this.setState({\n isSubtitlesSelectorShown: false\n });\n }\n\n private handleShared() {\n this.setState({\n isSocialShareShown: false\n });\n }\n\n private resetTimerAndShowControls() {\n if (this.hideControlsTimeoutHandle !== undefined) {\n clearTimeout(this.hideControlsTimeoutHandle);\n }\n this.hideControlsTimeoutHandle = window.setTimeout(() => this.hideControls(), MobileControlsLayerComponent.SHOW_CONTROLS_TIMEOUT);\n this.setState({\n isControlsShownAfterPlayerClicked: true\n });\n }\n\n private hideControls() {\n this.setState({\n isControlsShownAfterPlayerClicked: false\n });\n }\n}\n","import React from \"react\";\nimport { FullscreenDisableIconComponent } from \"../../..//icons/fullscreen/FullscreenDisableIconComponent\";\nimport { FullscreenEnableIconComponent } from \"../../..//icons/fullscreen/FullscreenEnableIconComponent\";\nimport { SocialShareIconComponent } from \"../../../icons/socialShare/SocialShareIconComponent\";\nimport { SubtitlesIconComponent } from \"../../../icons/subtitles/SubtitlesIconComponent\";\nimport { VolumeLoudIconComponent } from \"../../../icons/volume/VolumeLoudIconComponent\";\nimport { MenuButtonComponent } from \"../common/MenuButtonComponent\";\n\nimport \"@styles/c-mobileMenu.scss\";\n\ninterface Props {\n isSocialShareDisplayed: boolean;\n onSocialShareClicked: () => void;\n\n isFullscreenSupported: boolean;\n isFullscreen: boolean;\n onToggleFullscreen: () => void;\n\n isVolumeMuted: boolean;\n onToggleMuted: () => void;\n\n hasSubtitles: boolean;\n selectedSubtitlesSrc?: string;\n onSubtitlesSelectorClicked: () => void;\n\n isDisabled?: boolean;\n}\n\nexport const MobileMenuComponent: React.SFC = (props) => {\n const {\n isSocialShareDisplayed,\n onSocialShareClicked,\n\n isFullscreenSupported,\n isFullscreen,\n onToggleFullscreen,\n \n isVolumeMuted,\n onToggleMuted,\n\n hasSubtitles,\n selectedSubtitlesSrc,\n onSubtitlesSelectorClicked,\n\n isDisabled\n\n } = props;\n\n return (\n
\n {isSocialShareDisplayed &&\n {} : onSocialShareClicked}\n icon={}\n isActive={!!selectedSubtitlesSrc}\n />\n }\n {hasSubtitles &&\n {} : onSubtitlesSelectorClicked}\n icon={}\n isActive={!!selectedSubtitlesSrc}\n />\n }\n\n {(isFullscreenSupported || (!isFullscreenSupported && window.self === window.top)) &&\n {} : onToggleFullscreen}\n icon={isFullscreen ? : }\n /> \n }\n\n {!isVolumeMuted &&\n {} : onToggleMuted}\n icon={}\n />\n }\n
\n );\n};\n","import React from \"react\";\nimport { VintomError } from \"src/api/model/error/VintomError\";\nimport { I18n } from \"../../../../i18n/i18n\";\nimport { Subtitle } from \"../../../../model/playerConfiguration/Subtitle\";\nimport { MobileOverlayState } from \"../../../../uiModel/mobileOverlay/MobileOverlayState\";\nimport { SocialShareConfiguration } from \"../../../../uiModel/socialShare/SocialShareConfiguration\";\nimport { LoaderIconComponent } from \"../../../icons/loader/LoaderIconComponent\";\nimport { PauseIconComponent } from \"../../../icons/playback/PauseIconComponent\";\nimport { PlayIconComponent } from \"../../../icons/playback/PlayIconComponent\";\nimport { ReplayIconComponent } from \"../../../icons/playback/ReplayIconComponent\";\nimport { VolumeMutedIconComponent } from \"../../../icons/volume/VolumeMutedIconComponent\";\nimport { MessageComponent } from \"../common/MessageComponent\";\nimport { SocialShareComponent } from \"../common/SocialShareComponent\";\nimport { SubtitleSelectorComponent } from \"../common/SubtitleSelectorComponent\";\n\nimport \"@styles/c-mobileOverlay.scss\";\n\ninterface Props {\n i18n: I18n;\n controlState?: MobileOverlayState;\n onUnmute: () => void;\n subtitles: Subtitle[];\n selectedSubtitlesSrc?: string;\n onSubtitleSourceSelected: (subtitle?: Subtitle) => void;\n socialShareConfiguration: SocialShareConfiguration;\n onShared: () => void;\n message: string | VintomError;\n onSendError: (error: VintomError) => void;\n playIconOnPoster: boolean;\n disableIcon: boolean;\n}\n\nexport const MobileOverlayComponent: React.SFC = (props) => {\n const {\n i18n,\n controlState,\n onUnmute,\n subtitles,\n selectedSubtitlesSrc,\n onSubtitleSourceSelected,\n socialShareConfiguration,\n onShared,\n message,\n onSendError,\n playIconOnPoster,\n disableIcon\n } = props;\n\n if (!controlState) {\n return <>;\n }\n\n let control: React.ReactNode;\n switch (controlState) {\n case \"message\":\n control = ;\n break;\n case \"loading\":\n control =
\n \n
;\n break;\n case \"socialSelector\":\n if (socialShareConfiguration.canShare) {\n control = \n \n
;\n } else {\n control = <>;\n }\n break;\n case \"subtitlesSelector\":\n control = \n \n ;\n break;\n case \"unmute\":\n control = \n \n ;\n break;\n case \"pause\":\n if (playIconOnPoster === true && disableIcon) {\n return <>;\n } else {\n control =
\n \n
;\n }\n break;\n case \"play\":\n control =
\n \n
;\n break;\n\n case \"replay\":\n control =
\n \n
;\n break;\n default:\n control = <>;\n break;\n }\n\n return (\n
\n {control}\n
\n );\n};\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { ScenarioElement } from \"../../../../model/playerConfiguration/ScenarioElement\";\nimport { ScenarioPath } from \"../../../../model/scenarioPath/ScenarioPath\";\nimport { TimeFormatter } from \"../../../../utils/TimeFormatter\";\nimport { PartComponent } from \"../common/PartComponent\";\nimport { SliderComponent } from \"../common/SliderComponent\";\nimport { TooltipComponent } from \"../common/TooltipComponent\";\n\nimport \"@styles/c-mobileSeekbar.scss\";\n\ninterface Props {\n isDisabled?: boolean;\n isHidden: boolean;\n scenarioPath: ScenarioPath;\n totalTime: number;\n ellapsedTime: number;\n bufferedTime: number;\n onSeekTo: (time: number) => void;\n onJumpToScenarioElement: (scenarioElement: ScenarioElement, progress: number) => void;\n onSliderInteractionStarted: () => void;\n onSliderInteractionEnded: () => void;\n}\n\ninterface State { }\n\nexport class MobileSeekbarComponent extends React.Component {\n\n private slider: SliderComponent;\n private sliderHtml: HTMLElement;\n\n render() {\n const {\n isDisabled,\n isHidden,\n scenarioPath,\n totalTime,\n ellapsedTime,\n bufferedTime,\n onSeekTo,\n onJumpToScenarioElement,\n onSliderInteractionStarted,\n onSliderInteractionEnded\n } = this.props;\n\n const progress = ellapsedTime / totalTime;\n const bufferingProgress = bufferedTime / totalTime;\n\n return (\n \n {isDisabled &&
}\n
\n \n
\n
\n {scenarioPath.displayedPastParts.map((part) => (\n onJumpToScenarioElement(scenarioElement, jumpProgress)}\n />\n ))}\n this.slider = element}\n className=\"c-mobileSeekbar__slider\"\n style={{\n flexBasis: `${scenarioPath.currentPart.size}%`\n }}\n value={progress}\n isHandleAlwaysVisible={true}\n secondaryValue={bufferingProgress}\n onSliderInteraction={(value, isChanging) => isChanging && onSeekTo(value * totalTime)}\n onChangingSliderInteractionStarted={onSliderInteractionStarted}\n onSliderInteractionEnded={onSliderInteractionEnded}\n />\n {scenarioPath.displayedFutureParts.map((part) => (\n \n ))}\n
\n
\n );\n }\n\n componentDidMount() {\n this.sliderHtml = ReactDOM.findDOMNode(this.slider) as HTMLElement;\n }\n\n private calculateTooltipX() {\n if (!this.slider) {\n return 0;\n }\n\n const { ellapsedTime, totalTime } = this.props;\n const progress = ellapsedTime / totalTime;\n\n const sliderBoundingRect = this.sliderHtml.getBoundingClientRect();\n\n return sliderBoundingRect.left + sliderBoundingRect.width * progress;\n }\n\n}\n","import { AnimationLayer } from \"@manager/layer/AnimationLayer\";\nimport { ControlsLayer } from \"@manager/layer/ControlsLayer\";\nimport { CTALayer } from \"@manager/layer/CTALayer\";\nimport { MusicLayer } from \"@manager/layer/MusicLayer\";\nimport { PlayerContainer } from \"@manager/layer/PlayerContainer\";\nimport { PosterLayer } from \"@manager/layer/PosterLayer\";\nimport { VideoLayer } from \"@manager/layer/VideoLayer\";\nimport { PlayerContainerObserver } from \"@manager/layerObserver/PlayerContainerObserver\";\nimport React from \"react\";\nimport { I18n } from \"../../i18n/i18n\";\nimport { PlayerControls } from \"../../model/playerConfiguration/PlayerControls\";\nimport { SocialShareConfiguration } from \"../../uiModel/socialShare/SocialShareConfiguration\";\nimport { BrowserFeatureDetector } from \"../../utils/BrowserFeatureDetector\";\nimport { ListenerHelper } from \"../../utils/ListenerHelper\";\nimport { SocialShareHelper } from \"../../utils/SocialShareHelper\";\nimport { AnimationLayerComponent } from \"../layer/AnimationLayerComponent\";\nimport { ControlsLayerComponent } from \"../layer/ControlsLayerComponent\";\nimport { CTALayerComponent } from \"../layer/CTALayerComponent\";\nimport { MusicLayerComponent } from \"../layer/MusicLayerComponent\";\nimport { PosterLayerComponent } from \"../layer/PosterLayerComponent\";\nimport { VideoLayerComponent } from \"../layer/VideoLayerComponent\";\n\nimport \"@styles/c-fullscreenImitation.scss\";\nimport \"@styles/c-playerContainer.scss\";\n\ninterface Props {\n i18n: I18n;\n width?: number;\n height?: number;\n}\n\ninterface State {\n isMobileDevice: boolean;\n isFullscreenSupported: boolean;\n isFullscreen: boolean;\n isLargePlayer: boolean;\n socialShareConfiguration: SocialShareConfiguration;\n playIconOnPoster: boolean;\n}\n\nexport class PlayerContainerComponent extends React.Component implements PlayerContainer {\n\n animationLayer: AnimationLayer;\n controlsLayer: ControlsLayer;\n ctaLayer: CTALayer;\n posterLayer: PosterLayer;\n videoLayer: VideoLayer;\n musicLayer: MusicLayer;\n\n private static DESKTOP_LARGE_PLAYER_THRESHOLD = 1200 * 800;\n // iPhone Xr width * height\n private static MOBILE_LARGE_PLAYER_THRESHOLD = 414 * 896;\n\n private observer: PlayerContainerObserver;\n\n private html: HTMLDivElement;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isMobileDevice: BrowserFeatureDetector.isMobileDevice(),\n isFullscreenSupported: BrowserFeatureDetector.isFullscreenSupported(),\n isFullscreen: false,\n isLargePlayer: false,\n socialShareConfiguration: SocialShareHelper.getShareConfiguration(),\n playIconOnPoster: true\n };\n }\n\n render() {\n const { i18n, width, height } = this.props;\n const { isMobileDevice, isFullscreenSupported, isFullscreen, socialShareConfiguration, playIconOnPoster } = this.state;\n return (\n \n this.html = element}\n onMouseMove={() => this.isReady && this.observer.onPlayerInteraction()}\n onTouchMove={() => this.isReady && this.observer.onPlayerInteraction()}\n onMouseLeave={() => this.isReady && this.observer.onPlayerInteractionEnd()}\n >\n this.isReady && this.observer.onPlayerClick()}\n onContextMenu={(event) => {\n this.isReady && this.observer.onPlayerContextMenu(event.clientX, event.clientY);\n event.preventDefault();\n }}\n />\n this.videoLayer = element}\n className=\"c-playerContainer__layer\"\n isFullscreen={this.state.isFullscreen}\n />\n this.musicLayer = element}\n className=\"c-playerContainer__layer\"\n />\n this.posterLayer = element}\n className={`c-playerContainer__layer ${isFullscreen && !isFullscreenSupported ? \"fullposter\" : \"\"}`}\n />\n this.animationLayer = element}\n className=\"c-playerContainer__layer\"\n />\n this.ctaLayer = element}\n className=\"c-playerContainer__layer c-playerContainer__ctaLayer\"\n />\n this.controlsLayer = element}\n className=\"c-playerContainer__layer c-playerContainer__controlsLayer\"\n isMobileDevice={isMobileDevice}\n isFullscreenSupported={isFullscreenSupported}\n isFullscreen={isFullscreen}\n socialShareConfiguration={socialShareConfiguration}\n i18n={i18n}\n />\n \n \n );\n }\n\n componentDidMount() {\n ListenerHelper.addEventListener(\"document\", \"fullscreenchange\", this.updateFullscreen);\n ListenerHelper.addEventListener(\"window\", \"resize\", this.updateIsLargePlayer);\n this.updateIsLargePlayer();\n }\n\n componentWillUnmount() {\n ListenerHelper.removeEventListener(\"document\", \"fullscreenchange\", this.updateFullscreen);\n ListenerHelper.removeEventListener(\"window\", \"resize\", this.updateIsLargePlayer);\n }\n\n // start of PlayerContainer implementation\n setConfiguration(configuration: PlayerControls) {\n if (!configuration.playIconOnPoster) {\n this.setState({\n playIconOnPoster: false\n });\n }\n }\n\n registerObserver(observer: PlayerContainerObserver) {\n this.observer = observer;\n }\n\n toggleFullscreen() {\n if (this.state.isFullscreen) {\n if (this.state.isFullscreenSupported) {\n document.exitFullscreen();\n } else {\n this.setState({\n isFullscreen: false,\n });\n }\n } else {\n if (this.state.isFullscreenSupported) {\n this.html.requestFullscreen()\n .catch((e) => {\n console.error(\"If player is embedded in an iframe please make sure the iframe has allowfullscreen attribute\", e);\n });\n } else {\n this.setState({\n isFullscreen: true,\n });\n }\n }\n }\n\n // end of PlayerContainer implementation\n\n private updateFullscreen = () => {\n const doc = document as any;\n const isFullscreen = !!(doc.fullscreenElement || doc.webkitFullscreenElement || doc.mozFullScreenElement);\n this.setState({\n isFullscreen\n });\n }\n\n private updateIsLargePlayer = () => {\n if (!this.html || this.state.isMobileDevice === undefined) {\n return false;\n }\n const layerArea = this.html.clientHeight * this.html.clientWidth;\n const isLargePlayer = layerArea > (this.state.isMobileDevice ?\n PlayerContainerComponent.MOBILE_LARGE_PLAYER_THRESHOLD : PlayerContainerComponent.DESKTOP_LARGE_PLAYER_THRESHOLD); \n this.setState({\n isLargePlayer\n });\n }\n\n private get isReady() {\n return !!this.observer;\n }\n\n}\n","import React from \"react\";\nimport { I18n } from \"../../i18n/i18n\";\n\nimport \"@styles/c-unsupportedBrowserVersion.scss\";\n\ninterface Props { \n i18n: I18n;\n width?: number;\n height?: number;\n}\n\nexport const UnsupportedBrowserVersionComponent: React.SFC = ({ i18n, width, height }) => {\n return (\n
\n \n {i18n.unsupportedBrowser}\n
\n \n );\n};\n","declare var COMPILE_TIME_DEFAULT_JS_ASSETS_LOCATION: string;\ndeclare var COMPILE_TIME_DEFAULT_VIDEOJS_LOCATION: string;\ndeclare var COMPILE_TIME_DEFAULT_LOTTIE_JS_LOCATION: string;\ndeclare var COMPILE_TIME_DEFAULT_PLAYER_SERVER_LOCATION: string;\ndeclare var COMPILE_TIME_DEFAULT_CTA_STORAGE_LOCATION: string;\n\n// tslint:disable:member-ordering\nexport class Config {\n static defaultJSAssetsLocation = COMPILE_TIME_DEFAULT_JS_ASSETS_LOCATION;\n\n static defaultVideoJSLocation = COMPILE_TIME_DEFAULT_VIDEOJS_LOCATION;\n static defaultLottieJSLocation = COMPILE_TIME_DEFAULT_LOTTIE_JS_LOCATION;\n static defaultPlayerServerUrl = COMPILE_TIME_DEFAULT_PLAYER_SERVER_LOCATION;\n static defaultCTAStorageUrl = COMPILE_TIME_DEFAULT_CTA_STORAGE_LOCATION;\n\n static vintomNamespace = \"vintom\";\n\n static placeholderStartMarker = \"[\";\n static placeholderEndMarker = \"]\";\n\n static placeholder = (name: string): string => `${Config.placeholderStartMarker}${name}${Config.placeholderEndMarker}`;\n\n static ctaStorageUrlPlaceholder = `${Config.placeholder(\"ctaStorageUrl\")}`;\n static ctaTypePlaceholder = `${Config.placeholder(\"type\")}`;\n static jsCTAStorageUrlPattern = `${Config.ctaStorageUrlPlaceholder}cta/${Config.ctaTypePlaceholder}/cta.js`;\n static htmlCTAStorageUrlPattern = `${Config.ctaStorageUrlPlaceholder}cta/${Config.ctaTypePlaceholder}/cta.html`;\n static cssCTAStorageUrlPattern = `${Config.ctaStorageUrlPlaceholder}cta/${Config.ctaTypePlaceholder}/cta.css`;\n \n static videoConfigurationUrl = (playerServerUrl: string, videoCode: string) => \n `${playerServerUrl ? playerServerUrl : Config.defaultPlayerServerUrl}videoConfiguration/v2/${videoCode}`\n\n static videoLogUrl = (videoCode: string) => `${Config.defaultPlayerServerUrl}video/logError/${videoCode}`;\n\n static gaEndpoint = `https://www.googletagmanager.com/gtag/js?l=vintomGADataLayer`;\n\n}\n// tslint:enable:member-ordering\n","import { CTAFunction } from \"../../api/cta/ctaFunction/CTAFunction\";\r\n\r\nexport class CTAResource {\r\n constructor(public ctaFunction: CTAFunction, public html: string) {}\r\n}","import { CTAFunction } from \"../../../api/cta/ctaFunction/CTAFunction\";\nimport { PlayerCTAAPI } from \"../../../api/cta/PlayerCTAAPI\";\nimport { ClickableAreaConditionalCTAConfiguration } from \"./ClickableAreaConditionalCTAConfiguration\";\n\nconst ACTION_ID = 0;\n\nexport const clickableAreaConditionalCTAFunction: CTAFunction =\n (api: PlayerCTAAPI, ctaId: number, ctaBoard: HTMLElement, config: ClickableAreaConditionalCTAConfiguration) => {\n\n const clickableArea = document.createElement(\"div\");\n\n if (config.conditionalParam && config.conditionalValue &&\n config.conditionalParam === config.conditionalValue) {\n clickableArea.setAttribute(\"class\", \"clickableAreaItem\");\n clickableArea.style.top = `${parseInt(config.top, 0)}%`;\n clickableArea.style.bottom = `${parseInt(config.bottom, 0)}%`;\n clickableArea.style.left = `${parseInt(config.left, 0)}%`;\n clickableArea.style.right = `${parseInt(config.right, 0)}%`;\n clickableArea.style.position = \"absolute\";\n clickableArea.style.pointerEvents = \"all\";\n clickableArea.style.cursor = \"pointer\";\n }\n\n clickableArea.onclick = () => {\n if (config.scenarioElementId) {\n api.jumpToScenarioElement(config.scenarioElementId);\n } else {\n window.open(config.url, (config.target ? config.target : \"_blank\"));\n }\n api.onCTAAction(ctaId, ACTION_ID);\n };\n\n const container = ctaBoard.querySelector(\"[data-role='container']\");\n container.appendChild(clickableArea);\n \n return {\n action: () => {}\n };\n\n };\n","import { CTAFunction } from \"../../../api/cta/ctaFunction/CTAFunction\";\nimport { PlayerCTAAPI } from \"../../../api/cta/PlayerCTAAPI\";\nimport { ClickableAreaCTAConfiguration } from \"./ClickableAreaCTAConfiguration\";\n\nconst ACTION_ID = 0;\n\nexport const clickableAreaCTAFunction: CTAFunction =\n (api: PlayerCTAAPI, ctaId: number, ctaBoard: HTMLElement, config: ClickableAreaCTAConfiguration) => {\n\n const clickableArea = document.createElement(\"div\");\n\n clickableArea.setAttribute(\"class\", \"clickableAreaItem\");\n clickableArea.style.top = `${parseInt(config.top, 0)}%`;\n clickableArea.style.bottom = `${parseInt(config.bottom, 0)}%`;\n clickableArea.style.left = `${parseInt(config.left, 0)}%`;\n clickableArea.style.right = `${parseInt(config.right, 0)}%`;\n clickableArea.style.position = \"absolute\";\n clickableArea.style.pointerEvents = \"all\";\n clickableArea.style.cursor = \"pointer\";\n\n clickableArea.onclick = () => {\n if (config.scenarioElementId) {\n api.jumpToScenarioElement(config.scenarioElementId);\n } else {\n window.open(config.url, config.target);\n }\n api.onCTAAction(ctaId, ACTION_ID);\n };\n\n const container = ctaBoard.querySelector(\"[data-role='container']\");\n container.appendChild(clickableArea);\n \n return {\n action: () => {}\n };\n };\n","import { CTAFunction } from \"../../../api/cta/ctaFunction/CTAFunction\";\nimport { PlayerCTAAPI } from \"../../../api/cta/PlayerCTAAPI\";\nimport { ClickableButtonCTAConfiguration } from \"./ClickableButtonCTAConfiguration\";\nimport DOMPurify from \"dompurify\";\n\nconst ACTION_ID = 0;\n\nexport const clickableButtonCTAFunction: CTAFunction =\n (api: PlayerCTAAPI, ctaId: number, ctaBoard: HTMLElement, config: ClickableButtonCTAConfiguration) => {\n\n const clickableButton = document.createElement(\"div\");\n\n clickableButton.setAttribute(\"class\", \"clickableAreaItemButtons\");\n clickableButton.style.top = `${parseInt(config.top, 0)}%`;\n clickableButton.style.bottom = `${parseInt(config.bottom, 0)}%`;\n clickableButton.style.left = `${parseInt(config.left, 0)}%`;\n clickableButton.style.right = `${parseInt(config.right, 0)}%`;\n \n if (config.rounded === true) {\n clickableButton.classList.add(\"roundedBorders\");\n }\n\n if (config.outline === true) {\n clickableButton.classList.add(\"ctaButtonBorders\");\n }\n\n if (config.bgrcolor) {\n clickableButton.style.backgroundColor = config.bgrcolor;\n }\n\n if (config.color) {\n clickableButton.style.color = config.color;\n }\n\n if (config.buttontext) {\n const p = document.createElement(\"p\");\n p.innerHTML = DOMPurify.sanitize(config.buttontext);\n clickableButton.appendChild(p);\n clickableButton.style.fontSize = `${config.textsize}px`;\n }\n\n clickableButton.onclick = () => {\n if (config.scenarioElementId) {\n api.jumpToScenarioElement(config.scenarioElementId);\n } else {\n window.open(config.url, \"_blank\");\n }\n api.onCTAAction(ctaId, ACTION_ID);\n };\n\n const container = ctaBoard.querySelector(\"[data-role='container']\");\n container.appendChild(clickableButton);\n\n return {\n action: () => {}\n };\n };\n","import { CTAResource } from \"../ctaResource/CTAResource\";\nimport { clickableAreaCTAFunction } from \"./clickableArea/clickableAreaCTA\";\nimport { clickableAreaConditionalCTAFunction } from \"./clickableAreaConditional/clickableAreaConditionalCTA\";\nimport { clickableButtonCTAFunction } from \"./clickableButton/clickableButtonCTA\";\n\n// @ts-ignore\nimport clickableAreaHTML from \"./clickableArea/clickableAreaCTA.html\";\n// @ts-ignore\nimport clickableAreaConditionalHTML from \"./clickableAreaConditional/clickableAreaConditionalCTA.html\";\n// @ts-ignore\nimport clickableButtonHTML from \"./clickableButton/clickableButtonCTA.html\";\n\nconst createPrepackagedCTAs = () => {\n const map = new Map();\n map.set(\"clickableareaconditional_new\", new CTAResource(clickableAreaConditionalCTAFunction, clickableAreaConditionalHTML));\n map.set(\"clickableAreaConditional\", new CTAResource(clickableAreaConditionalCTAFunction, clickableAreaConditionalHTML));\n map.set(\"clickableArea\", new CTAResource(clickableAreaCTAFunction, clickableAreaHTML));\n map.set(\"clickableButton\", new CTAResource(clickableButtonCTAFunction, clickableButtonHTML));\n return map;\n};\n\nexport const prepackagedCTAs = createPrepackagedCTAs();\n","import { i18nEn } from \"./i18nEn\";\r\nimport { i18nEs } from \"./i18nEs\";\r\nimport { i18nPl } from \"./i18nPl\";\r\n\r\nexport interface I18n {\r\n unsupportedBrowser: string;\r\n videoDeleted: string;\r\n videoInPreparation: string;\r\n\r\n sendReport: string;\r\n thankYouForSendingReport: string;\r\n configurationParsingFailure: string;\r\n resourceLoadingFailure: string;\r\n playbackFailure: string;\r\n runtimeError: string;\r\n\r\n subtitles: string;\r\n part: string;\r\n play: string;\r\n pause: string;\r\n replay: string;\r\n mute: string;\r\n unmute: string;\r\n fullscreen: string;\r\n share: string;\r\n exitFullscreen: string;\r\n poweredByVintom: string;\r\n licenceAdditionalText: string;\r\n licenceLabel: string;\r\n linkLicence: string;\r\n\r\n bandwidth: string;\r\n mbps: string;\r\n\r\n facebook: string;\r\n twitter: string;\r\n\r\n loadingPageMainMsg: string;\r\n loadingPageDetails: string;\r\n videoInPreparationLoadingPage: string;\r\n}\r\n\r\nexport const i18n = {\r\n \"en\": i18nEn,\r\n \"pl\": i18nPl,\r\n \"es\": i18nEs\r\n};\r\n","import { I18n } from \"./i18n\";\r\n\r\nexport const i18nEn: I18n = {\r\n unsupportedBrowser: \"Sorry, unsupported browser. Please upgrade or try a different browser\",\r\n videoDeleted: \"Sorry, this video is no longer available\",\r\n videoInPreparation: \"This video will be available in a moment
Wait a moment and try to reload the page!\",\r\n\r\n sendReport: \"Send the report\",\r\n thankYouForSendingReport: \"Thank you for sending your error report\",\r\n configurationParsingFailure: \"Parsing player configuration failed\",\r\n resourceLoadingFailure: \"There was an error while loading scenario elements\",\r\n playbackFailure: \"An error has occured\",\r\n runtimeError: \"An error has occured\",\r\n\r\n subtitles: \"Subtitles\",\r\n part: \"Part\",\r\n play: \"Play\",\r\n pause: \"Pause\",\r\n replay: \"Replay\",\r\n mute: \"Mute\",\r\n unmute: \"Unmute\",\r\n share: \"Share\",\r\n fullscreen: \"Full screen\",\r\n exitFullscreen: \"Exit full screen\",\r\n poweredByVintom: \"Powered by Vintom\",\r\n licenceAdditionalText: \"Read\",\r\n licenceLabel: \"player licence\",\r\n linkLicence: \"https://player2.vintom.com/player/Vintom_player_terms_of_use.pdf\",\r\n\r\n bandwidth: \"Bandwidth\",\r\n mbps: \"Mbps\",\r\n\r\n facebook: \"Facebook\",\r\n twitter: \"Twitter\",\r\n\r\n loadingPageMainMsg: \"Please wait\",\r\n loadingPageDetails: \"Your browser will reload automatically when the video is ready.\",\r\n videoInPreparationLoadingPage: \"This video will be available in a moment
Please wait and try to reload the page\"\r\n};\r\n","import { I18n } from \"./i18n\";\r\n\r\nexport const i18nEs: I18n = {\r\n unsupportedBrowser: \"Tu versión de navegador no está soportada. Actualiza tu navegador a la versión más reciente o prueba otro.\",\r\n videoDeleted: \"Lo sentimos, este video ya no está disponible.\",\r\n videoInPreparation: \"El video estará disponible en breve.
¡Carga la página de nuevo en unos instantes!\",\r\n\r\n sendReport: \"Enviar el informe\",\r\n thankYouForSendingReport: \"Gracias por tu solicitud.\",\r\n configurationParsingFailure: \"La configuracón del reproductor incorrecta.\",\r\n resourceLoadingFailure: \"Se produjo un error en la carga de los elementos del vídeo\",\r\n playbackFailure: \"Se produjo un error\",\r\n runtimeError: \"Se produjo un error\",\r\n\r\n subtitles: \"Subtítulos\",\r\n part: \"Parte\",\r\n play: \"Reproducir\",\r\n pause: \"Pausa\",\r\n replay: \"Ver de nuevo\",\r\n mute: \"Silenciar\",\r\n unmute: \"Activar sonido\",\r\n share: \"Compartir\",\r\n fullscreen: \"Pantalla completa\",\r\n exitFullscreen: \"Salir de modo de pantalla completa\",\r\n poweredByVintom: \"Powered by Vintom\",\r\n licenceAdditionalText: \"Read\",\r\n licenceLabel: \"player licence\",\r\n linkLicence: \"https://player2.vintom.com/player/Vintom_player_terms_of_use.pdf\",\r\n\r\n bandwidth: \"Ancho de banda\",\r\n mbps: \"Mbps\",\r\n\r\n facebook: \"Facebook\",\r\n twitter: \"Twitter\",\r\n\r\n loadingPageMainMsg: \"Espera un momento, por favor.\",\r\n loadingPageDetails: \"Su navegador se recargará automáticamente cuando la película esté lista.\",\r\n videoInPreparationLoadingPage: \"La película aún no está lista.
Intenta volver a cargar la página más tarde\"\r\n};\r\n","import { I18n } from \"./i18n\";\n\nexport const i18nPl: I18n = {\n unsupportedBrowser: \"Twoja przeglądarka nie jest obsługiwana. Uaktualnij do nowszej wersji lub spróbuj na innej\",\n videoDeleted: \"Przepraszamy, ten film nie jest już dostępny.\",\n videoInPreparation: \"Film już za chwilę będzie dostępny
Przeładuj stronę za jakiś czas!\",\n\n sendReport: \"Wyślij raport\",\n thankYouForSendingReport: \"Dziękujemy za wysłanie zgłoszenia\",\n configurationParsingFailure: \"Konfiguracja odtwarzacza jest nieprawidłowa\",\n resourceLoadingFailure: \"Wystąpił błąd w czasie ładowania elementów scenariusza\",\n playbackFailure: \"Wystąpił błąd\",\n runtimeError: \"Wystąpił błąd\",\n\n subtitles: \"Napisy\",\n part: \"Część\",\n play: \"Włącz\",\n pause: \"Zatrzymaj\",\n replay: \"Odtwórz ponownie\",\n mute: \"Wycisz\",\n unmute: \"Włącz głos\",\n share: \"Udostępnij\",\n fullscreen: \"Pełny ekran\",\n exitFullscreen: \"Wróć do małego ekranu\",\n poweredByVintom: \"Powered by Vintom\",\n licenceAdditionalText: \"Read\",\n licenceLabel: \"player licence\",\n linkLicence: \"https://player2.vintom.com/player/Vintom_player_terms_of_use.pdf\",\n\n bandwidth: \"Pasmo\",\n mbps: \"Mbps\",\n\n facebook: \"Facebook\",\n twitter: \"Twitter\",\n\n loadingPageMainMsg: \"Film w trakcie tworzenia...\",\n loadingPageDetails: \"Twój film jest właśnie przygotowywany. Gdy proces się zakończy, strona odświeży się automatycznie.\",\n videoInPreparationLoadingPage: \"Film nie jest jeszcze gotowy. Spróbuj przeładować stronę za jakiś czas\",\n};\n","import { inject, injectable } from \"inversify\";\nimport { PlayerState } from \"../api/model/playerState/PlayerState\";\nimport { I18n } from \"../i18n/i18n\";\nimport { FullPlayerConfiguration } from \"../model/playerConfiguration/FullPlayerConfiguration\";\nimport { IframeNotifierPlayerActionState } from \"../model/playerState/IframeNotifierPlayerActionState\";\nimport { IframeNotifierPlayerState } from \"../model/playerState/IframeNotifierPlayerState\";\nimport { IframeNotifierVintomError } from \"../model/playerState/IframeNotifierVintomError\";\nimport { ConfigurationBuilder } from \"./configurationBuilder/ConfigurationBuilder\";\nimport { TYPES } from \"./di/types\";\nimport { AnalyticsCollector } from \"./playerAnalytics/AnalyticsCollector\";\nimport { PlayerManager } from \"./PlayerManager\";\n\n@injectable()\nexport class NotSupportedBrowserPlayerManagerImpl implements PlayerManager {\n\n private i18n: I18n;\n\n private playerConfig: FullPlayerConfiguration;\n\n private videoCode: string;\n private configurationJSON;\n private configurationOverrideJSON;\n private personalizationJSON;\n\n private configurationLoaded: boolean;\n private queueLogNotSupportedBrowser: boolean;\n\n constructor(\n @inject(TYPES.analyticsCollector.AnalyticsCollector) private analyticsCollector: AnalyticsCollector,\n @inject(TYPES.configurationBuilder.ConfigurationBuilder) private configurationBuilder: ConfigurationBuilder) {\n }\n\n run(i18n: I18n, videoCode: string, configurationJSON: any, configurationOverrideJSON: any, personalizationJSON: any) {\n this.videoCode = videoCode;\n this.configurationJSON = configurationJSON;\n this.configurationOverrideJSON = configurationOverrideJSON;\n this.personalizationJSON = personalizationJSON;\n this.i18n = i18n;\n\n this.configurationBuilder.build(videoCode, configurationJSON, configurationOverrideJSON, personalizationJSON)\n .then((configuration) => this.playerConfig = configuration)\n .then(() => this.analyticsCollector.initialize(\n this.playerConfig.code,\n this.playerConfig.videoDate,\n this.playerConfig.analyticsEndpoints,\n this.playerConfig.campaign,\n this.playerConfig.groupId))\n .then(() => {\n this.configurationLoaded = true;\n if (this.queueLogNotSupportedBrowser) {\n this.logNotSupportedBrowser();\n this.queueLogNotSupportedBrowser = false;\n }\n });\n }\n\n logNotSupportedBrowser(): void {\n if (this.configurationLoaded) {\n this.analyticsCollector.logNotSupportedBrowser();\n } else {\n this.queueLogNotSupportedBrowser = true;\n }\n }\n\n play(): void {\n }\n\n pause(): void {\n }\n\n replay(): void {\n }\n \n performAction(ctaId: number, actionId: number, ...args: any[]): void {\n }\n\n moveToScenarioElement(id: string): void {\n }\n\n prepareForRemove(): void {\n }\n\n registerOnReady(callback: () => void): void {\n }\n\n registerOnError(callback: (error: IframeNotifierVintomError) => void): void {\n }\n\n registerOnPlay(callback: (payload: IframeNotifierPlayerState) => void): void {\n }\n\n registerOnPause(callback: (payload: IframeNotifierPlayerState) => void): void {\n }\n\n registerOnFinish(callback: (payload: IframeNotifierPlayerState) => void): void {\n }\n\n registerOnAction(callback: (payload: IframeNotifierPlayerActionState) => void): void {\n }\n\n getState(): PlayerState {\n return undefined;\n }\n}\n","import canAutoPlay from \"can-autoplay\";\nimport { inject, injectable } from \"inversify\";\nimport { PlayerCTAAPI, ScencarioElementOptions } from \"../api/cta/PlayerCTAAPI\";\nimport { VintomError } from \"../api/model/error/VintomError\";\nimport { PlayerState } from \"../api/model/playerState/PlayerState\";\nimport { I18n } from \"../i18n/i18n\";\nimport { CTA } from \"../model/playerConfiguration/CTA\";\nimport { FullPlayerConfiguration } from \"../model/playerConfiguration/FullPlayerConfiguration\";\nimport { ScenarioElement } from \"../model/playerConfiguration/ScenarioElement\";\nimport { IframeNotifierPlayerActionState } from \"../model/playerState/IframeNotifierPlayerActionState\";\nimport { IframeNotifierPlayerReady } from \"../model/playerState/IframeNotifierPlayerReady\";\nimport { IframeNotifierPlayerState } from \"../model/playerState/IframeNotifierPlayerState\";\nimport { IframeNotifierVintomError } from \"../model/playerState/IframeNotifierVintomError\";\nimport { ScenarioElementPlayOptions } from \"../model/scenarioElementPlayOptions/ScenarioElementPlayOptions\";\nimport { ScenarioGlobalState } from \"../model/scenarioGlobalState/ScenarioGlobalState\";\nimport { ScenarioPath } from \"../model/scenarioPath/ScenarioPath\";\nimport { ListenerHelper } from \"../utils/ListenerHelper\";\nimport { ConfigurationBuilder } from \"./configurationBuilder/ConfigurationBuilder\";\nimport { TYPES } from \"./di/types\";\nimport { ErrorReporter } from \"./errorReporter/ErrorReporter\";\nimport { IframeNotifier } from \"./iframeNotifier/IframeNotifier\";\nimport { PlayerLoader } from \"./loader/playerLoader/PlayerLoader\";\nimport { ScenarioLoader } from \"./loader/scenarioLoader/ScenarioLoader\";\nimport { AnalyticsCollector } from \"./playerAnalytics/AnalyticsCollector\";\nimport { PlayerManager, PlayerScenarioRunnerAPI } from \"./PlayerManager\";\nimport { PreferencesStorage } from \"./preferencesStorage/PreferencesStorage\";\nimport { ControlsLayerManager } from \"./scenarioRunner/layerManager/ControlsLayerManager\";\nimport { MusicLayerManager } from \"./scenarioRunner/layerManager/MusicLayerManager\";\nimport { PlayerContainerManager } from \"./scenarioRunner/layerManager/PlayerContainerManager\";\nimport { PosterLayerManager } from \"./scenarioRunner/layerManager/PosterLayerManager\";\nimport { VideoLayerManager } from \"./scenarioRunner/layerManager/VideoLayerManager\";\nimport { ScenarioRunner } from \"./scenarioRunner/ScenarioRunner\";\nimport { ThemeUpdater } from \"./themeUpdater/ThemeUpdater\";\n\n@injectable()\nexport class PlayerManagerImpl implements PlayerManager, PlayerCTAAPI, PlayerScenarioRunnerAPI {\n\n private static DEFAULT_SCENARIO_ELEMENT_PLAY_OPTIONS: ScenarioElementPlayOptions = {\n isAutoplay: false,\n progress: 0\n };\n\n private static ANALYTICS_FASTER_RATE = 10;\n private static ANALYTICS_SLOWER_RATE = 20;\n private static ANALYTICS_SLOWER_RATE_THRESHOLD = 120;\n\n private static ANALYTICS_PROGRESS_25_THRESHOLD = 0.25;\n private static ANALYTICS_PROGRESS_50_THRESHOLD = 0.50;\n private static ANALYTICS_PROGRESS_75_THRESHOLD = 0.75;\n private static ANALYTICS_PROGRESS_100_THRESHOLD = 1;\n\n private i18n: I18n;\n\n private isPlayerStarted: boolean;\n private analyticsIntervalHandle: number;\n private playerConfig: FullPlayerConfiguration;\n private scenarioElementProgress: number;\n\n private onReadyCallbacks: ((payload: IframeNotifierPlayerReady) => void)[] = [];\n private onErrorCallbacks: ((error: IframeNotifierVintomError) => void)[] = [];\n private onPlayCallbacks: ((payload: IframeNotifierPlayerState) => void)[] = [];\n private onPauseCallbacks: ((payload: IframeNotifierPlayerState) => void)[] = [];\n private onFinishCallbacks: ((payload: IframeNotifierPlayerState) => void)[] = [];\n private onActionCallbacks: ((payload: IframeNotifierPlayerActionState) => void)[] = [];\n\n private videoCode: string;\n private configurationJSON;\n private configurationOverrideJSON;\n private personalizationJSON;\n\n constructor(\n @inject(TYPES.analyticsCollector.AnalyticsCollector) private analyticsCollector: AnalyticsCollector,\n @inject(TYPES.configurationBuilder.ConfigurationBuilder) private configurationBuilder: ConfigurationBuilder,\n @inject(TYPES.iframeNotifier.IframeNotifier) private iframeNotifier: IframeNotifier,\n @inject(TYPES.preferencesStorage.PreferencesStorage) private preferencesStorage: PreferencesStorage,\n @inject(TYPES.themeUpdater.ThemeUpdater) private themeUpdater: ThemeUpdater,\n @inject(TYPES.errorReporter.ErrorReporter) private errorReporter: ErrorReporter,\n @inject(TYPES.loader.playerLoader.PlayerLoader) private playerLoader: PlayerLoader,\n @inject(TYPES.loader.scenarioLoader.ScenarioLoader) private scenarioLoader: ScenarioLoader,\n @inject(TYPES.scenarioRunner.ScenarioRunner) private scenarioRunner: ScenarioRunner,\n @inject(TYPES.scenarioRunner.layerManager.ControlsLayerManager) private controlsLayerManager: ControlsLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.PlayerContainerManager) private playerContainerManager: PlayerContainerManager,\n @inject(TYPES.scenarioRunner.layerManager.PosterLayerManager) private posterLayerManager: PosterLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.VideoLayerManager) private videoLayerManager: VideoLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.MusicLayerManager) private musicLayerManager: MusicLayerManager) {\n\n this.scenarioRunner.setPlayerAPIDelegate(this);\n this.scenarioLoader.setPlayerCTAAPIDelegate(this);\n this.registerIframeNotifier();\n }\n\n run(i18n: I18n, videoCode: string, configurationJSON: any, configurationOverrideJSON: any, personalizationJSON: any) {\n this.videoCode = videoCode;\n this.configurationJSON = configurationJSON;\n this.configurationOverrideJSON = configurationOverrideJSON;\n this.personalizationJSON = personalizationJSON;\n this.i18n = i18n;\n\n ListenerHelper.addEventListener(\"window\", \"beforeunload\", () => this.onPlayerRemove());\n\n this.controlsLayerManager.showLoader();\n this.configurationBuilder.build(videoCode, configurationJSON, configurationOverrideJSON, personalizationJSON)\n .then((configuration) => this.playerConfig = configuration)\n .then(() => this.errorReporter.initialize(this.playerConfig.code))\n .then(() => this.analyticsCollector.initialize(\n this.playerConfig.code,\n this.playerConfig.videoDate,\n this.playerConfig.analyticsEndpoints,\n this.playerConfig.campaign,\n this.playerConfig.groupId))\n .then(() => this.themeUpdater.setTheme(this.playerConfig.skin))\n .then(() => this.start())\n .catch((error) => this.onError(error));\n }\n\n play(): void {\n this.scenarioRunner.play();\n }\n\n pause(): void {\n this.scenarioRunner.pause();\n }\n\n performAction(ctaId: number, actionId: number, ...args: any[]): void {\n this.scenarioRunner.performAction(ctaId, actionId, args);\n }\n\n moveToScenarioElement(id: string): void {\n const scenarioElement = this.playerConfig.findScenarioElement(id);\n if (scenarioElement) {\n this.loadScenarioElement(scenarioElement);\n }\n }\n\n prepareForRemove(): void {\n ListenerHelper.removeAllEventListeners();\n this.scenarioLoader.prepareForRemove();\n this.onPlayerRemove();\n this.clearAnalyticsInterval();\n }\n\n registerOnReady(callback: () => void): void {\n this.onReadyCallbacks.push(callback);\n }\n\n registerOnError(callback: (error: IframeNotifierVintomError) => void): void {\n this.onErrorCallbacks.push(callback);\n }\n\n registerOnPlay(callback: (payload: IframeNotifierPlayerState) => void): void {\n this.onPlayCallbacks.push(callback);\n }\n\n registerOnPause(callback: (payload: IframeNotifierPlayerState) => void): void {\n this.onPauseCallbacks.push(callback);\n }\n\n registerOnFinish(callback: (payload: IframeNotifierPlayerState) => void): void {\n this.onFinishCallbacks.push(callback);\n }\n\n registerOnAction(callback: (payload: IframeNotifierPlayerActionState) => void): void {\n this.onActionCallbacks.push(callback);\n }\n\n onReady(): void {\n this.analyticsCollector.logPlayerInit(this.getCurrentElementId());\n const readyState: IframeNotifierPlayerReady = {\n code: this.playerConfig.code,\n type: \"vintomPlayerReady\"\n };\n this.onReadyCallbacks.forEach((cb) => cb(readyState));\n }\n\n onError(error: VintomError): void {\n const isConfigurationParsed = !!this.playerConfig;\n if (!isConfigurationParsed) {\n console.error(error);\n return;\n }\n if (this.playerConfig.adminMode) {\n console.trace();\n console.error(error);\n }\n if (error.options.isLogAndSendToAnalytics) {\n const iframeError = error as IframeNotifierVintomError;\n iframeError.code = this.playerConfig.code;\n iframeError.type = \"vintomPlayerError\";\n this.onErrorCallbacks.forEach((cb) => {\n cb(iframeError);\n });\n this.analyticsCollector.logPlayerError(this.getCurrentElementId(), error);\n }\n if (error.options.isDisplayToUser) {\n this.controlsLayerManager.showMessage(error);\n }\n }\n\n onPlay(): void {\n const playbackData = this.scenarioRunner.getPlaybackData();\n if (!this.isPlayerStarted) {\n this.analyticsCollector.logPlayerStart(this.getCurrentElementId());\n this.isPlayerStarted = true;\n }\n\n this.analyticsCollector.logScenarioElementPlaying(\n this.getCurrentElementId(),\n playbackData.videoType,\n playbackData.volume,\n playbackData.duration,\n playbackData.time);\n\n const state = this.getState() as IframeNotifierPlayerState;\n state.code = this.playerConfig.code;\n state.type = \"vintomPlayerPlay\";\n this.onPlayCallbacks.forEach((cb) => cb(state));\n }\n\n onPause(): void {\n const playbackData = this.scenarioRunner.getPlaybackData();\n this.analyticsCollector.logScenarioElementPlaying(\n this.getCurrentElementId(),\n playbackData.videoType,\n playbackData.volume,\n playbackData.duration,\n playbackData.time,\n \"PAUSED\");\n\n const state = this.getState() as IframeNotifierPlayerState;\n state.code = this.playerConfig.code;\n state.type = \"vintomPlayerPause\";\n this.onPauseCallbacks.forEach((cb) => cb(state));\n }\n\n onSeek(): void {\n const playbackData = this.scenarioRunner.getPlaybackData();\n this.analyticsCollector.logScenarioElementPlaying(\n this.getCurrentElementId(),\n playbackData.videoType,\n playbackData.volume,\n playbackData.duration,\n playbackData.time,\n \"SEEKED\");\n }\n\n onProgress(progress: number): void {\n\n if (this.scenarioElementProgress < PlayerManagerImpl.ANALYTICS_PROGRESS_25_THRESHOLD &&\n progress >= PlayerManagerImpl.ANALYTICS_PROGRESS_25_THRESHOLD) {\n this.analyticsCollector.logScenarioElementProgress(this.getCurrentElementId(), 25);\n }\n if (this.scenarioElementProgress < PlayerManagerImpl.ANALYTICS_PROGRESS_50_THRESHOLD &&\n progress >= PlayerManagerImpl.ANALYTICS_PROGRESS_50_THRESHOLD) {\n this.analyticsCollector.logScenarioElementProgress(this.getCurrentElementId(), 50);\n }\n if (this.scenarioElementProgress < PlayerManagerImpl.ANALYTICS_PROGRESS_75_THRESHOLD &&\n progress >= PlayerManagerImpl.ANALYTICS_PROGRESS_75_THRESHOLD) {\n this.analyticsCollector.logScenarioElementProgress(this.getCurrentElementId(), 75);\n }\n if (this.scenarioElementProgress < PlayerManagerImpl.ANALYTICS_PROGRESS_100_THRESHOLD &&\n progress >= PlayerManagerImpl.ANALYTICS_PROGRESS_100_THRESHOLD) {\n this.analyticsCollector.logScenarioElementProgress(this.getCurrentElementId(), 100);\n }\n\n this.scenarioElementProgress = progress;\n }\n\n onScenarioElementStart(): void {\n const playbackData = this.scenarioRunner.getPlaybackData();\n this.analyticsCollector.logScenarioElementStart(\n this.getCurrentElementId(),\n playbackData.videoType,\n playbackData.volume,\n playbackData.duration,\n );\n\n this.startCollectingAnalyticsAtInterval();\n }\n\n onScenarioElementEnd(): void {\n const playbackData = this.scenarioRunner.getPlaybackData();\n this.analyticsCollector.logScenarioElementPlaying(\n this.getCurrentElementId(),\n playbackData.videoType,\n playbackData.volume,\n playbackData.duration,\n playbackData.time,\n \"FINISHED\");\n\n this.clearAnalyticsInterval();\n\n if (this.getScenarioPath().isLastPart) {\n const state = this.getState() as IframeNotifierPlayerState;\n state.code = this.playerConfig.code;\n state.type = \"vintomPlayerFinish\";\n this.onFinishCallbacks.forEach((cb) => cb(state));\n } else {\n this.loadNextScenarioElement();\n }\n }\n\n onCTAShow(cta: CTA): void {\n if (!this.isTechnicalCTA(cta)) {\n this.analyticsCollector.logCTAShow(this.getCurrentElementId(), cta.id);\n }\n }\n\n isTechnicalCTA(cta: CTA): boolean {\n return cta.triggerType === \"RANGE\" && cta.visibilityRange && cta.visibilityRange.startTime === 0;\n }\n\n onCTAAction(ctaId: number, actionId: number, actionAdditionalData: object): void {\n const state = this.getState();\n const actionState: IframeNotifierPlayerActionState = {\n ...state,\n ctaId,\n actionId,\n actionAdditionalData,\n code: this.playerConfig.code,\n type: \"vintomPlayerAction\"\n };\n this.analyticsCollector.logCTAAction(this.getCurrentElementId(), ctaId, actionId, actionAdditionalData);\n this.onActionCallbacks.forEach((cb) => cb(actionState));\n }\n\n onPlayerRemove(): void {\n const playbackData = this.scenarioRunner.getPlaybackData();\n if (playbackData) {\n this.analyticsCollector.logScenarioElementPlaying(\n this.getCurrentElementId(),\n playbackData.videoType,\n playbackData.volume,\n playbackData.duration,\n playbackData.time,\n \"CLOSED\");\n } else {\n // player may be removed before it's initialized\n this.analyticsCollector.logScenarioElementPlaying(\n this.getCurrentElementId(),\n undefined,\n undefined,\n undefined,\n undefined,\n \"CLOSED\");\n }\n\n }\n\n getState(): PlayerState {\n const playbackData = this.scenarioRunner.getPlaybackData();\n\n const state: PlayerState = {\n playing: playbackData.isPlaying,\n time: playbackData.time\n };\n\n if (!playbackData) {\n return undefined;\n }\n\n if (this.playerConfig.scenarioElements.length > 1) {\n state.scenarioElementId = this.getCurrentElementId();\n }\n\n if (this.getScenarioPath().hasMultipleParts) {\n state.part = this.getScenarioPath().currentPartNumber;\n }\n\n return state;\n }\n\n loadNextScenarioElement() {\n const nextId = this.getScenarioPath().currentElement.nextScenarioElementId;\n if (nextId !== undefined) {\n const nextElement = this.playerConfig.findScenarioElement(nextId);\n if (nextElement) {\n this.loadScenarioElement(nextElement, { isAutoplay: true });\n }\n }\n }\n\n loadScenarioElement(scenarioElement: ScenarioElement, options: ScenarioElementPlayOptions = {}) {\n options = {\n ...PlayerManagerImpl.DEFAULT_SCENARIO_ELEMENT_PLAY_OPTIONS,\n ...options\n };\n if (scenarioElement.music) {\n this.musicLayerManager.changeSource(scenarioElement.music.musicUrl);\n this.musicLayerManager.setMusicTime(scenarioElement.music.musicStartTime, scenarioElement.music.musicEndTime);\n this.videoLayerManager.setMusicTime(scenarioElement.music.musicStartTime, scenarioElement.music.musicEndTime);\n }\n this.controlsLayerManager.showLoader();\n\n const scenarioResources = this.scenarioLoader\n .loadResources(this.playerConfig, scenarioElement);\n scenarioResources.catch((e) => this.onError(e));\n const scenarioGlobalState = this.scenarioRunner.getScenarioGlobalState() ||\n this.getInitialScenarioGlobalState();\n\n return this.scenarioRunner.run(scenarioGlobalState, scenarioElement, scenarioResources, options);\n }\n\n jumpToScenarioElement(\n scenarioElementId: string,\n options?: ScencarioElementOptions,\n ) {\n const progress = options && options.progress || 0;\n const start = options && options.start !== undefined ? options.start : true;\n\n const scenarioElement = this.playerConfig.findScenarioElement(\n scenarioElementId\n );\n if (scenarioElement) {\n this.scenarioRunner.jumpToScenarioElement(\n scenarioElement,\n progress,\n start\n );\n } else {\n this.onError(new VintomError(\"runtimeError\", `Attempted to load non existing scenario element (id: ${scenarioElementId})`));\n }\n }\n\n replay() {\n this.loadScenarioElement(this.getScenarioPath().initialElement, { isAutoplay: true });\n }\n\n logUserError(error: VintomError): void {\n this.errorReporter.sendErrorLog(error);\n }\n\n private registerIframeNotifier() {\n this.onReadyCallbacks.push(this.iframeNotifier.notify);\n this.onErrorCallbacks.push(this.iframeNotifier.notify);\n this.onPlayCallbacks.push(this.iframeNotifier.notify);\n this.onPauseCallbacks.push(this.iframeNotifier.notify);\n this.onFinishCallbacks.push(this.iframeNotifier.notify);\n this.onActionCallbacks.push(this.iframeNotifier.notify);\n }\n\n private getInitialScenarioGlobalState(): ScenarioGlobalState {\n const storedPreferences = this.preferencesStorage.getPreferences();\n return ScenarioGlobalState.ininitialState(\n this.playerConfig.scenarioElements,\n this.playerConfig.parts,\n this.playerConfig.aspectRatio,\n this.playerConfig.mutedStart,\n this.playerConfig.autoRefreshBeforeReady,\n this.playerConfig.subtitlesActiveOnStart,\n storedPreferences);\n }\n\n private getScenarioPath(): ScenarioPath {\n const scenarioGlobalState = this.scenarioRunner.getScenarioGlobalState();\n return scenarioGlobalState && scenarioGlobalState.scenarioPath;\n }\n\n private getCurrentElementId(): string {\n const scenarioPath = this.getScenarioPath();\n return scenarioPath && scenarioPath.currentElementId;\n }\n\n private callback(loadingPageVisible: boolean, counter: number, timeToReload: number) {\n if (counter > 0) {\n this.configurationBuilder.build(this.videoCode, this.configurationJSON, this.configurationOverrideJSON, this.personalizationJSON)\n .then((conf) => {\n this.playerConfig = conf;\n this.checkStatus(loadingPageVisible, counter + 1, timeToReload + 3000);\n });\n } else {\n this.checkStatus(loadingPageVisible, counter + 1, timeToReload + 3000);\n }\n }\n\n private checkStatus(loadingPageVisible: boolean, counter: number, timeToReload: number) {\n switch (this.playerConfig.status) {\n case \"DELETED\":\n this.playerLoader.loadResources(this.playerConfig).then(() => {\n this.controlsLayerManager.showMessage(this.i18n.videoDeleted);\n });\n return;\n case \"PREPARING\":\n if (loadingPageVisible === true && counter < 7) {\n this.playerLoader.loadResources(this.playerConfig).then(() => {\n this.controlsLayerManager.showLoadingPage(true);\n });\n if (!this.videoCode) {\n console.error(\"Video code must be set on initialize for autoRefreshBeforeReady function\");\n } else {\n setTimeout(() => this.callback(loadingPageVisible, counter, timeToReload), timeToReload);\n }\n } else if (loadingPageVisible === true && counter >= 7) {\n this.controlsLayerManager.showLoadingPage(false);\n this.playerLoader.loadResources(this.playerConfig).then(() => {\n this.controlsLayerManager.showMessage(this.i18n.videoInPreparationLoadingPage);\n });\n } else if (loadingPageVisible === false) {\n this.controlsLayerManager.showLoadingPage(false);\n this.playerLoader.loadResources(this.playerConfig).then(() => {\n this.controlsLayerManager.showMessage(this.i18n.videoInPreparation);\n });\n }\n return;\n case \"READY\":\n this.controlsLayerManager.showLoadingPage(false);\n this.controlsLayerManager.showLoader();\n const initialScEl = this.playerConfig.scenarioElements.find((scEl) => scEl.initial);\n this.posterLayerManager.showInitialPoster(initialScEl.poster, this.playerConfig.aspectRatio);\n if (initialScEl.music) {\n this.musicLayerManager.changeSource(initialScEl.music.musicUrl);\n this.musicLayerManager.setMusicTime(initialScEl.music.musicStartTime, initialScEl.music.musicEndTime);\n this.videoLayerManager.setMusicTime(initialScEl.music.musicStartTime, initialScEl.music.musicEndTime);\n\n }\n this.loadAndInitializeLayers()\n .then(() => {\n if (this.playerConfig.autoplay || initialScEl.isCTAOnlyElement && !initialScEl.isCTAOnlyPlaybackStoppingElement) {\n return this.checkAutoplaySupported();\n }\n return false;\n })\n .then((isAutoplay) => this.loadScenarioElement(initialScEl, { isAutoplay }))\n .then(() => this.controlsLayerManager.hideLoader())\n .then(() => this.onReady());\n return;\n default:\n throw new VintomError(\"runtimeError\", `Unsupported film status '${status}'`);\n }}\n\n private start(): void {\n const loadingPageVisible = this.playerConfig.autoRefreshBeforeReady;\n this.controlsLayerManager.setConfiguration(this.playerConfig.playerControls, this.playerConfig.adminMode);\n this.playerContainerManager.setConfiguration(this.playerConfig.playerControls);\n this.checkStatus(loadingPageVisible, 0, 0);\n }\n\n private loadAndInitializeLayers(): Promise {\n return this.playerLoader.loadResources(this.playerConfig)\n .then(() => {\n if (this.playerConfig.hasScenarioElementWithVideo) {\n this.videoLayerManager.initializeLayer();\n }\n this.musicLayerManager.initializeLayer();\n });\n }\n\n private clearAnalyticsInterval() {\n if (this.analyticsIntervalHandle !== undefined) {\n clearInterval(this.analyticsIntervalHandle);\n }\n }\n\n private startCollectingAnalyticsAtInterval() {\n this.clearAnalyticsInterval();\n\n const duration = this.scenarioRunner.getPlaybackData().duration;\n const interval = duration < PlayerManagerImpl.ANALYTICS_SLOWER_RATE_THRESHOLD ?\n PlayerManagerImpl.ANALYTICS_FASTER_RATE : PlayerManagerImpl.ANALYTICS_SLOWER_RATE;\n\n this.analyticsIntervalHandle = window.setInterval(\n () => {\n const playbackData = this.scenarioRunner.getPlaybackData();\n if (playbackData.isPlaying) {\n this.analyticsCollector.logScenarioElementPlaying(\n this.getCurrentElementId(),\n playbackData.videoType,\n playbackData.volume,\n playbackData.duration,\n playbackData.time);\n }\n },\n interval * 1000);\n }\n\n private checkAutoplaySupported(): Promise {\n return canAutoPlay.video()\n .then(({ result }) => result)\n .catch(() => false);\n }\n}\n","import { injectable } from \"inversify\";\nimport { parse } from \"sparkson\";\nimport { VintomError } from \"../../api/model/error/VintomError\";\nimport { Config } from \"../../config/config\";\nimport { ConfigurationOverride } from \"../../model/playerConfiguration/ConfigurationOverride\";\nimport { FullPlayerConfiguration } from \"../../model/playerConfiguration/FullPlayerConfiguration\";\nimport { PlayerConfiguration } from \"../../model/playerConfiguration/PlayerConfiguration\";\n\nexport interface ConfigurationBuilder {\n build(videoCode: string, configurationJSON: any, configurationOverrideJSON: any, personalizationJSON: any): Promise;\n}\n\n@injectable()\nexport class ConfigurationBuilderImpl implements ConfigurationBuilder {\n\n build(videoCode: string, configurationJSON: any, configurationOverrideJSON: any, personalizationJSON: any): Promise {\n if (videoCode) {\n const playerServerUrl = Config.videoConfigurationUrl(\n (configurationOverrideJSON ? configurationOverrideJSON.playerServerUrl : null),\n videoCode);\n return this.fetchConfig(playerServerUrl)\n .then((fetchedConfigurationJSON) => this.parseAndMerge(fetchedConfigurationJSON, configurationOverrideJSON, personalizationJSON));\n } else {\n return this.parseAndMerge(configurationJSON, configurationOverrideJSON, personalizationJSON);\n }\n }\n\n private parseAndMerge(configurationJSON: any, configurationOverrideJSON: any, personalizationJSON: any): Promise {\n try {\n const conf = parse(PlayerConfiguration, configurationJSON);\n let confOverride: ConfigurationOverride;\n if (configurationOverrideJSON) {\n confOverride = parse(ConfigurationOverride, configurationOverrideJSON);\n }\n return Promise.resolve(new FullPlayerConfiguration(\n conf.code,\n conf.scenarioElements,\n confOverride && confOverride.analyticsEndpoints || conf.analyticsEndpoints,\n conf.aspectRatio,\n conf.parts,\n conf.videoDate,\n confOverride && confOverride.playerControls || conf.playerControls,\n conf.status,\n confOverride && confOverride.playerServerUrl || Config.defaultPlayerServerUrl,\n confOverride && confOverride.ctaStorageUrl || Config.defaultCTAStorageUrl,\n this.calculateVideoJSUrl(confOverride && confOverride.jsAssetsUrl || conf.jsAssetsUrl || Config.defaultJSAssetsLocation),\n this.calculateLottieUrl(confOverride && confOverride.jsAssetsUrl || conf.jsAssetsUrl || Config.defaultJSAssetsLocation),\n confOverride && confOverride.adminMode || conf.adminMode,\n confOverride && confOverride.autoplay || conf.autoplay,\n confOverride && confOverride.mutedStart || conf.mutedStart,\n confOverride && confOverride.autoRefreshBeforeReady || conf.autoRefreshBeforeReady,\n confOverride && confOverride.subtitlesActiveOnStart || conf.subtitlesActiveOnStart,\n personalizationJSON,\n conf.campaign,\n confOverride && confOverride.skin || conf.skin,\n conf.groupId\n ));\n } catch (e) {\n return Promise.reject(new VintomError(\"configurationParsingFailure\", \"Failed to parse configuration\", e));\n }\n }\n\n private fetchConfig(url: string): Promise {\n return fetch(url)\n .then((response) => response.json())\n .catch(() => Promise.reject(new VintomError(\"resourceLoadingFailure\", `Failed to load configuration from '${url}'`)));\n }\n\n private calculateVideoJSUrl(jsAssetsUrl: string): string {\n return `${jsAssetsUrl}${Config.defaultVideoJSLocation}`;\n }\n\n private calculateLottieUrl(jsAssetsUrl: string): string {\n return `${jsAssetsUrl}${Config.defaultLottieJSLocation}`;\n }\n}\n","import { Container } from \"inversify\";\nimport { ConfigurationBuilder, ConfigurationBuilderImpl } from \"../configurationBuilder/ConfigurationBuilder\";\nimport { ErrorReporter, ErrorReporterImpl } from \"../errorReporter/ErrorReporter\";\nimport { IframeNotifier, IframeNotifierImpl } from \"../iframeNotifier/IframeNotifier\";\nimport { AnimationLayer } from \"../layer/AnimationLayer\";\nimport { ControlsLayer } from \"../layer/ControlsLayer\";\nimport { CTALayer } from \"../layer/CTALayer\";\nimport { MusicLayer } from \"../layer/MusicLayer\";\nimport { PlayerContainer } from \"../layer/PlayerContainer\";\nimport { PosterLayer } from \"../layer/PosterLayer\";\nimport { VideoLayer } from \"../layer/VideoLayer\";\nimport { PlayerLoader, PlayerLoaderImpl } from \"../loader/playerLoader/PlayerLoader\";\nimport { ResourceLoader, ResourceLoaderImpl } from \"../loader/resourceLoader/ResourceLoader\";\nimport { ScenarioLoader, ScenarioLoaderImpl } from \"../loader/scenarioLoader/ScenarioLoader\";\nimport { NotSupportedBrowserPlayerManagerImpl } from \"../NotSupportedBrowserPlayerManagerImpl\";\nimport { AnimationPersonalizer, AnimationPersonalizerImpl } from \"../personalizer/AnimationPersonalizer\";\nimport { Personalizer, PersonalizerImpl } from \"../personalizer/Personalizer\";\nimport { AnalyticsCollector, AnalyticsCollectorImpl } from \"../playerAnalytics/AnalyticsCollector\";\nimport { GoogleAnalyticsSender, GoogleAnalyticsSenderImpl } from \"../playerAnalytics/GoogleAnalyticsSender\";\nimport { VintomAnalyticsSender, VintomAnalyticsSenderImpl } from \"../playerAnalytics/VintomAnalyticsSender\";\nimport { PlayerManager } from \"../PlayerManager\";\nimport { PlayerManagerImpl } from \"../PlayerManagerImpl\";\nimport { PreferencesStorage, PreferencesStorageImpl } from \"../preferencesStorage/PreferencesStorage\";\nimport { AnimationDrivenScenarioExecutorImpl } from \"../scenarioRunner/AnimationDrivenScenarioExecutor\";\nimport { CTAOnlyScenarioExecutorImpl } from \"../scenarioRunner/CTAOnlyScenarioExecutor\";\nimport { ControlsLayerManager, ControlsLayerManagerImpl } from \"../scenarioRunner/layerManager/ControlsLayerManager\";\nimport { CTALayerManager, CTALayerManagerImpl } from \"../scenarioRunner/layerManager/CTALayerManager\";\nimport { DependentAnimationLayerManager, DependentAnimationLayerManagerImpl } from \"../scenarioRunner/layerManager/DependentAnimationLayerManager\";\nimport { IndependentAnimationLayerManager, IndependentAnimationLayerManagerImpl } from \"../scenarioRunner/layerManager/IndependentAnimationLayerManager\";\nimport { MusicLayerManager, MusicLayerManagerImpl } from \"../scenarioRunner/layerManager/MusicLayerManager\";\nimport { PlayerContainerManager, PlayerContainerManagerImpl } from \"../scenarioRunner/layerManager/PlayerContainerManager\";\nimport { PosterLayerManager, PosterLayerManagerImpl } from \"../scenarioRunner/layerManager/PosterLayerManager\";\nimport { VideoLayerManager, VideoLayerManagerImpl } from \"../scenarioRunner/layerManager/VideoLayerManager\";\nimport { ScenarioExecutor } from \"../scenarioRunner/ScenarioExecutor\";\nimport { ScenarioRunner, ScenarioRunnerImpl } from \"../scenarioRunner/ScenarioRunner\";\nimport { VideoDrivenScenarioExecutorImpl } from \"../scenarioRunner/VideoDrivenScenarioExecutor\";\nimport { ThemeUpdater, ThemeUpdaterImpl } from \"../themeUpdater/ThemeUpdater\";\nimport { TYPES } from \"./types\";\n\nexport const createApplicationContext = (\n playerContainer: PlayerContainer,\n animationLayer: AnimationLayer,\n controlsLayer: ControlsLayer,\n ctaLayer: CTALayer,\n posterLayer: PosterLayer,\n videoLayer: VideoLayer,\n musicLayer: MusicLayer\n): Container => {\n const container = new Container();\n\n container.bind(TYPES.layer.PlayerContainer).toConstantValue(playerContainer);\n container.bind(TYPES.layer.AnimationLayer).toConstantValue(animationLayer);\n container.bind(TYPES.layer.ControlsLayer).toConstantValue(controlsLayer);\n container.bind(TYPES.layer.CTALayer).toConstantValue(ctaLayer);\n container.bind(TYPES.layer.PosterLayer).toConstantValue(posterLayer);\n container.bind(TYPES.layer.VideoLayer).toConstantValue(videoLayer);\n container.bind(TYPES.layer.MusicLayer).toConstantValue(musicLayer);\n\n container.bind(TYPES.analyticsCollector.AnalyticsCollector).to(AnalyticsCollectorImpl).inSingletonScope();\n container.bind(TYPES.analyticsCollector.GoogleAnalyticsSender).to(GoogleAnalyticsSenderImpl).inSingletonScope();\n container.bind(TYPES.analyticsCollector.VintomAnalyticsSender).to(VintomAnalyticsSenderImpl).inSingletonScope();\n\n container.bind(TYPES.preferencesStorage.PreferencesStorage).to(PreferencesStorageImpl).inSingletonScope();\n container.bind(TYPES.errorReporter.ErrorReporter).to(ErrorReporterImpl).inSingletonScope();\n container.bind(TYPES.iframeNotifier.IframeNotifier).to(IframeNotifierImpl).inSingletonScope();\n container.bind(TYPES.animationPersonalizer.AnimationPersonalizer).to(AnimationPersonalizerImpl).inSingletonScope();\n container.bind(TYPES.personalizer.Personalizer).to(PersonalizerImpl).inSingletonScope();\n container.bind(TYPES.configurationBuilder.ConfigurationBuilder).to(ConfigurationBuilderImpl).inSingletonScope();\n container.bind(TYPES.themeUpdater.ThemeUpdater).to(ThemeUpdaterImpl).inSingletonScope();\n\n container.bind(TYPES.loader.playerLoader.PlayerLoader).to(PlayerLoaderImpl).inSingletonScope();\n container.bind(TYPES.loader.resourceLoader.ResourceLoader).to(ResourceLoaderImpl).inSingletonScope();\n container.bind(TYPES.loader.scenarioLoader.ScenarioLoader).to(ScenarioLoaderImpl).inSingletonScope();\n\n container.bind(TYPES.scenarioRunner.layerManager.PlayerContainerManager)\n .to(PlayerContainerManagerImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.layerManager.ControlsLayerManager).to(ControlsLayerManagerImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.layerManager.CTALayerManager).to(CTALayerManagerImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.layerManager.DependentAnimationLayerManager)\n .to(DependentAnimationLayerManagerImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.layerManager.IndependentAnimationLayerManager)\n .to(IndependentAnimationLayerManagerImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.layerManager.PosterLayerManager).to(PosterLayerManagerImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.layerManager.VideoLayerManager).to(VideoLayerManagerImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.layerManager.MusicLayerManager).to(MusicLayerManagerImpl).inSingletonScope();\n\n container.bind(TYPES.scenarioRunner.AnimationDrivenScenarioExecutor)\n .to(AnimationDrivenScenarioExecutorImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.VideoDrivenScenarioExecutor).to(VideoDrivenScenarioExecutorImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.CTAOnlyScenarioExecutor).to(CTAOnlyScenarioExecutorImpl).inSingletonScope();\n container.bind(TYPES.scenarioRunner.ScenarioRunner).to(ScenarioRunnerImpl).inSingletonScope();\n\n container.bind(TYPES.PlayerManager).to(PlayerManagerImpl).inSingletonScope();\n\n return container;\n};\n\nexport const createNotSupportedBrowserApplicationContext = (): Container => {\n const container = new Container();\n\n container.bind(TYPES.analyticsCollector.AnalyticsCollector).to(AnalyticsCollectorImpl).inSingletonScope();\n container.bind(TYPES.analyticsCollector.GoogleAnalyticsSender).to(GoogleAnalyticsSenderImpl).inSingletonScope();\n container.bind(TYPES.analyticsCollector.VintomAnalyticsSender).to(VintomAnalyticsSenderImpl).inSingletonScope();\n\n container.bind(TYPES.configurationBuilder.ConfigurationBuilder).to(ConfigurationBuilderImpl).inSingletonScope();\n container.bind(TYPES.loader.resourceLoader.ResourceLoader).to(ResourceLoaderImpl).inSingletonScope();\n\n container.bind(TYPES.PlayerManager).to(NotSupportedBrowserPlayerManagerImpl).inSingletonScope();\n\n return container;\n};\n","export const TYPES = {\n analyticsCollector: {\n AnalyticsCollector: \"AnalyticsCollector\",\n GoogleAnalyticsSender: \"GoogleAnalyticsSender\",\n VintomAnalyticsSender: \"VintomAnalyticsSender\"\n },\n animationPersonalizer: {\n AnimationPersonalizer: \"AnimationPersonalizer\"\n },\n configurationBuilder: {\n ConfigurationBuilder: \"ConfigurationBuilder\"\n },\n iframeNotifier: {\n IframeNotifier: \"IframeNotifier\"\n },\n layer: {\n PlayerContainer: \"PlayerContainer\",\n AnimationLayer: \"AnimationLayer\",\n ControlsLayer: \"ControlsLayer\",\n CTALayer: \"CTALayer\",\n PosterLayer: \"PosterLayer\",\n VideoLayer: \"VideoLayer\",\n MusicLayer: \"MusicLayer\"\n },\n loader: {\n playerLoader: {\n PlayerLoader: \"PlayerLoader\"\n },\n resourceLoader: {\n ResourceLoader: \"ResourceLoader\"\n },\n scenarioLoader: {\n ScenarioLoader: \"ScenarioLoader\"\n }\n },\n personalizer: {\n Personalizer: \"Personalizer\"\n },\n preferencesStorage: {\n PreferencesStorage: \"PreferencesStorage\"\n },\n errorReporter: {\n ErrorReporter: \"ErrorReporter\"\n },\n scenarioRunner: {\n layerManager: {\n PlayerContainerManager: \"PlayerContainerManager\",\n ControlsLayerManager: \"ControlsLayerManager\",\n CTALayerManager: \"CTALayerManager\",\n DependentAnimationLayerManager: \"DependentAnimationLayerManager\",\n IndependentAnimationLayerManager: \"IndependentAnimationLayerManager\",\n PosterLayerManager: \"PosterLayerManager\",\n VideoLayerManager: \"VideoLayerManager\",\n MusicLayerManager: \"MusicLayerManager\"\n },\n AnimationDrivenScenarioExecutor: \"AnimationDrivenScenarioExecutor\",\n CTAOnlyScenarioExecutor: \"CTAOnlyScenarioExecutor\",\n ScenarioRunner: \"ScenarioRunner\",\n VideoDrivenScenarioExecutor: \"VideoDrivenScenarioExecutor\"\n },\n themeUpdater: {\n ThemeUpdater: \"ThemeUpadater\"\n },\n PlayerManager: \"PlayerManager\"\n};\n","import { injectable } from \"inversify\";\r\nimport { VintomError } from \"src/api/model/error/VintomError\";\r\nimport { Config } from \"../../config/config\";\r\n\r\nexport interface ErrorReporter {\r\n initialize(videoCode: string): void;\r\n sendErrorLog(error: VintomError): void;\r\n}\r\n\r\n@injectable()\r\nexport class ErrorReporterImpl implements ErrorReporter {\r\n private videoCode: string;\r\n\r\n initialize(videoCode: string): void {\r\n this.videoCode = videoCode;\r\n }\r\n\r\n sendErrorLog(error: VintomError): void {\r\n const videoLogUrl = Config.videoLogUrl(this.videoCode);\r\n fetch(videoLogUrl, {\r\n method: \"POST\",\r\n body: JSON.stringify(this.errorToPayload(error))\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n private errorToPayload(error: VintomError): any {\r\n return \"errorCode: \" + error.errorCode + \", \" +\r\n \"message: \" + error.message + \", \" +\r\n \"userAgent: \" + error.errorAdditionalInfo.userAgent + \", \" +\r\n \"playerVersion: \" + error.errorAdditionalInfo.playerVersion + \", \" +\r\n \"operatingSystem: \" + error.errorAdditionalInfo.operatingSystem + \", \" +\r\n \"browserName: \" + error.errorAdditionalInfo.browserName + \", \" +\r\n \"browserMajorVersion: \" + error.errorAdditionalInfo.browserMajorVersion + \", \" +\r\n \"stackTrace: \" + error.stackTrace;\r\n }\r\n}\r\n","import { injectable } from \"inversify\";\r\n\r\nexport interface IframeNotifier {\r\n notify(payload?: any): void;\r\n}\r\n\r\n@injectable()\r\nexport class IframeNotifierImpl implements IframeNotifier {\r\n notify(payload?: any): void {\r\n const insideIframe = window.self !== window.parent;\r\n if (insideIframe) {\r\n window.parent.postMessage(payload, \"*\");\r\n }\r\n }\r\n}","import { inject, injectable } from \"inversify\";\nimport { VintomError } from \"../../../api/model/error/VintomError\";\nimport { FullPlayerConfiguration } from \"../../../model/playerConfiguration/FullPlayerConfiguration\";\nimport { TYPES } from \"../../di/types\";\nimport { ResourceLoader } from \"../resourceLoader/ResourceLoader\";\n\nexport interface PlayerLoader {\n loadResources(playerConfig: FullPlayerConfiguration): Promise;\n}\n\n@injectable()\nexport class PlayerLoaderImpl implements PlayerLoader {\n\n constructor(@inject(TYPES.loader.resourceLoader.ResourceLoader) private resourceLoader: ResourceLoader) {}\n\n loadResources(playerConfig: FullPlayerConfiguration): Promise {\n return Promise.all([\n this.loadVideoJS(playerConfig),\n this.loadVideoLottie(playerConfig)\n ])\n .then(() => Promise.resolve());\n }\n\n private loadVideoJS(playerConfig: FullPlayerConfiguration): Promise {\n if (\n !playerConfig.hasScenarioElementWithVideo ||\n playerConfig.status !== \"READY\"\n ) {\n return Promise.resolve();\n }\n // @ts-ignore\n window.VIDEOJS_NO_DYNAMIC_STYLE = true;\n return this.resourceLoader.loadResources([{ location: playerConfig.videoJSUrl, type: \"JS\" }])\n .catch(() => Promise.reject(new VintomError(\"resourceLoadingFailure\", \"Failed to load videojs\")));\n }\n\n private loadVideoLottie(playerConfig: FullPlayerConfiguration): Promise {\n if (\n !playerConfig.hasScenarioElementWithAnimation ||\n playerConfig.status !== \"READY\"\n ) {\n return Promise.resolve();\n }\n return this.resourceLoader.loadResources([{ location: playerConfig.lottieUrl, type: \"JS\" }])\n .catch(() => Promise.reject(new VintomError(\"resourceLoadingFailure\", \"Failed to load lottie-web\")));\n }\n}\n","import { injectable } from \"inversify\";\nimport loadjs from \"loadjs\";\nimport { vintom } from \"../../../api/globalVintomNamespace/GlobalVintomNamespace\";\nimport { Resource } from \"./Resource\";\n\nexport interface ResourceLoader {\n loadResources(resources: Resource[], mayNotExist?: boolean): Promise;\n}\n\n@injectable()\nexport class ResourceLoaderImpl implements ResourceLoader {\n\n loadResources(resources: Resource[], mayNotExist: boolean): Promise {\n const resourcesToLoad = resources.filter((resource) => !vintom.requestedResources[resource.location]);\n const resourcesRequestedEarlier = resources.filter((resource) => vintom.requestedResources[resource.location]);\n const resourcesRequestedEarlierProgress = resourcesRequestedEarlier.map((resource) => vintom.requestedResources[resource.location]);\n\n const cssLocationsToLoad = resourcesToLoad\n .filter((resource) => resource.type === \"CSS\")\n .map((resource) => resource.location);\n\n const jsLocationsToLoad = resourcesToLoad\n .filter((resource) => resource.type === \"JS\")\n .map((resource) => resource.location);\n\n return Promise.all([\n ... resourcesRequestedEarlierProgress,\n this.loadCssResources(cssLocationsToLoad, mayNotExist),\n this.loadJsResources(jsLocationsToLoad, mayNotExist)])\n .then(() => Promise.resolve());\n }\n\n private loadJsResources(locations: string[], mayNotExist: boolean): Promise {\n if (!locations.length) {\n return Promise.resolve();\n }\n\n return Promise.all(locations.map((location) => this.loadJSResource(location, mayNotExist)))\n .then(() => Promise.resolve());\n }\n\n private loadJSResource(location: string, mayNotExist: boolean): Promise {\n const loadJsRequest = new Promise((resolve, reject) => {\n loadjs([location], location, {\n error: (mayNotExist ? resolve : reject),\n success: resolve\n });\n })\n .then(() => Promise.resolve());\n\n vintom.requestedResources[location] = loadJsRequest;\n return loadJsRequest;\n }\n\n private loadCssResources(locations: string[], mayNotExist: boolean): Promise {\n return Promise.all(locations.map((location) => this.loadCssResource(location, mayNotExist)))\n .then(() => Promise.resolve());\n }\n\n private loadCssResource(location: string, mayNotExist: boolean): Promise {\n const link = document.createElement(\"link\");\n link.setAttribute(\"rel\", \"stylesheet\");\n link.setAttribute(\"type\", \"text/css\");\n link.setAttribute(\"href\", location);\n const loadCssRequest = new Promise((resolve, reject) => {\n document.head.appendChild(link);\n link.onload = () => resolve();\n link.onerror = () => (mayNotExist ? resolve() : reject());\n })\n .then(() => Promise.resolve());\n\n vintom.requestedResources[location] = loadCssRequest;\n return loadCssRequest;\n }\n}\n","import { AppliedCTAFunction } from \"../../appliedCTAFunction/AppliedCTAFunction\";\r\n\r\nexport class CachedCTAResource {\r\n constructor(public ctaFunction: AppliedCTAFunction, public ctaHtml: string) {}\r\n}","import { CachedCTAResource } from \"./CachedCTAResource\";\r\n\r\nexport class ResourcesCache {\r\n readonly animationsBySrc = new Map();\r\n readonly ctasByType = new Map();\r\n readonly posterObjectUrlsByUrl = new Map();\r\n}","import { AnimationPersonalizer } from \"@manager/personalizer/AnimationPersonalizer\";\nimport { inject, injectable } from \"inversify\";\nimport { PlayerCTAAPI } from \"../../../api/cta/PlayerCTAAPI\";\nimport { vintom } from \"../../../api/globalVintomNamespace/GlobalVintomNamespace\";\nimport { VintomError } from \"../../../api/model/error/VintomError\";\nimport { Config } from \"../../../config/config\";\nimport { prepackagedCTAs } from \"../../../cta/prepackagedCTAs/prepackagedCTAs\";\nimport { Animation } from \"../../../model/playerConfiguration/Animation\";\nimport { FullPlayerConfiguration } from \"../../../model/playerConfiguration/FullPlayerConfiguration\";\nimport { ScenarioElement } from \"../../../model/playerConfiguration/ScenarioElement\";\nimport { AppliedCTAFunction } from \"../../appliedCTAFunction/AppliedCTAFunction\";\nimport { TYPES } from \"../../di/types\";\nimport { Personalizer } from \"../../personalizer/Personalizer\";\nimport { ResourceLoader } from \"../resourceLoader/ResourceLoader\";\nimport { CachedCTAResource } from \"./CachedCTAResource\";\nimport { ResourcesCache } from \"./ResourcesCache\";\nimport { isolatedEval } from \"../../../utils/isolatedEval\";\n\nexport interface ScenarioLoader {\n loadResources(configuration: FullPlayerConfiguration, scenarioEl: ScenarioElement): Promise;\n prepareForRemove(): void;\n setPlayerCTAAPIDelegate(ctaPlayerAPI: PlayerCTAAPI): void;\n}\n\n@injectable()\nexport class ScenarioLoaderImpl implements ScenarioLoader {\n\n private readonly cache = new ResourcesCache();\n private ctaPlayerAPI: PlayerCTAAPI;\n\n constructor(\n @inject(TYPES.animationPersonalizer.AnimationPersonalizer) private animationPersonalizer: AnimationPersonalizer,\n @inject(TYPES.personalizer.Personalizer) private personalizer: Personalizer,\n @inject(TYPES.loader.resourceLoader.ResourceLoader) private resourceLoader: ResourceLoader) { }\n\n setPlayerCTAAPIDelegate(ctaPlayerAPI: PlayerCTAAPI): void {\n this.ctaPlayerAPI = ctaPlayerAPI;\n }\n\n loadResources(configuration: FullPlayerConfiguration, scenarioEl: ScenarioElement): Promise {\n this.loadPrepackagedCTAResources();\n return Promise.all([\n this.loadAndPersonalizeAnimationResources(scenarioEl, configuration.personalizationJSON),\n this.loadAndPersonalizeCTAResources(scenarioEl, configuration.personalizationJSON, configuration.ctaStorageUrl),\n this.loadPosterResources(scenarioEl)\n ])\n .then(() => Promise.resolve(this.cache));\n }\n\n prepareForRemove(): void {\n for (const objectUrl of Array.from(this.cache.posterObjectUrlsByUrl.values())) {\n URL.revokeObjectURL(objectUrl);\n }\n }\n\n private loadPrepackagedCTAResources() {\n const prepackagedCTATypes = Array.from(prepackagedCTAs.keys());\n prepackagedCTATypes.forEach((type) => {\n const ctaResource = prepackagedCTAs.get(type);\n const appliedCTAFunction: AppliedCTAFunction = (ctaId: number, ctaBoard: HTMLElement, ctaCustomAttributes: any) =>\n ctaResource.ctaFunction(this.ctaPlayerAPI, ctaId, ctaBoard, ctaCustomAttributes);\n this.cache.ctasByType.set(type, new CachedCTAResource(appliedCTAFunction, ctaResource.html));\n });\n }\n\n private loadAndPersonalizeAnimationResources(scenarioEl: ScenarioElement, personalizationJSON: any) {\n return Promise.all(scenarioEl.animations.map((animation) => this.loadAndPersonalizeAnimationResource(animation, personalizationJSON)))\n .then(() => Promise.resolve());\n }\n\n private loadAndPersonalizeAnimationResource(animation: Animation, personalizationJSON: any): Promise {\n\n return fetch(animation.src)\n .then((response) => response.json())\n .catch(() => Promise.reject(new VintomError(\"resourceLoadingFailure\", `Failed to load animation ${animation.src}`)))\n .then((json) => {\n if (animation.customAttributes) {\n const customAttributes = { ...animation.customAttributes };\n const values = Object.keys(customAttributes).map((key) => {\n return JSON.parse(customAttributes[key]);\n });\n const promises = values\n .reduce((acc, val) => [...acc, ...val], [])\n .filter((valItem) => valItem.type === \"image\" && valItem.src)\n // tslint:disable-next-line:no-eval\n .map((valItem) => fetch(isolatedEval(valItem.src))\n .then((response) => response.blob()));\n return Promise.all(promises).then(() => json);\n }\n })\n .then((json) => {\n const personalized = this.animationPersonalizer.personalizeAnim(json, animation.customAttributes, personalizationJSON);\n this.cache.animationsBySrc.set(animation.src, personalized);\n });\n }\n\n private loadPosterResources(scenarioEl: ScenarioElement): Promise {\n const posters = scenarioEl.ctas.map((cta) => cta.poster).filter((poster) => !!poster);\n if (scenarioEl.poster) {\n posters.push(scenarioEl.poster);\n }\n\n return Promise.all(posters.map((poster) => this.loadImgResource(poster)))\n .then(() => Promise.resolve());\n }\n\n private loadImgResource(url: string): Promise {\n if (this.cache.posterObjectUrlsByUrl.get(url)) {\n return Promise.resolve();\n }\n return fetch(url)\n .then((response) => response.blob())\n .then((blob) => {\n const objectUrl = URL.createObjectURL(blob);\n this.cache.posterObjectUrlsByUrl.set(url, objectUrl);\n })\n .catch(() => console.log(\"Poster not loaded\"));\n }\n\n private loadAndPersonalizeCTAResources(scenarioEl: ScenarioElement, personalizationJSON: any, ctaStorageUrl: string) {\n const types = scenarioEl.ctas.map((cta) => cta.type);\n\n scenarioEl.ctas.forEach((cta) => {\n if (cta.customAttributes) {\n cta.customAttributes = this.personalizer.personalize(cta.customAttributes, personalizationJSON);\n }\n });\n\n return Promise.all(\n types.map((type) => {\n\n const htmlUrl = Config.htmlCTAStorageUrlPattern\n .replace(Config.ctaStorageUrlPlaceholder, ctaStorageUrl)\n .replace(Config.ctaTypePlaceholder, type);\n const jsUrl = Config.jsCTAStorageUrlPattern\n .replace(Config.ctaStorageUrlPlaceholder, ctaStorageUrl)\n .replace(Config.ctaTypePlaceholder, type);\n const cssUrl = Config.cssCTAStorageUrlPattern\n .replace(Config.ctaStorageUrlPlaceholder, ctaStorageUrl)\n .replace(Config.ctaTypePlaceholder, type);\n\n return this.loadCTAResource(type, htmlUrl, jsUrl, cssUrl);\n }))\n .then(() => Promise.resolve());\n }\n\n private loadCTAResource(type: string, htmlSrc: string, jsSrc: string, cssSrc: string): Promise {\n if (this.cache.ctasByType.get(type)) {\n return Promise.resolve();\n }\n\n const loadedHtml = fetch(htmlSrc)\n .then((response) => response.text());\n\n const jsLoadedSuccessfully = this.resourceLoader.loadResources([{ location: jsSrc, type: \"JS\" }]);\n const cssLoadedSuccessfully = this.resourceLoader.loadResources([{ location: cssSrc, type: \"CSS\" }], true);\n\n return Promise.all([loadedHtml, jsLoadedSuccessfully, cssLoadedSuccessfully])\n .catch(() => Promise.reject(new VintomError(\"resourceLoadingFailure\", `Failed to load cta for type ${type}`)))\n .then(([html]) => {\n const ctaFunction = vintom.cta[type];\n // if (!ctaFunction) {\n // return Promise.reject(new VintomError(\"resourceLoadingFailure\", `Missing CTA function in cta.js file.\n // Please make sure to add cta function to vintom.cta dictionary (vintom.cta.${type} = function(....) { .... }))`));\n // }\n const appliedCTAFuntion: AppliedCTAFunction = (ctaId: number, ctaBoard: HTMLElement, ctaCustomAttributes: any) =>\n ctaFunction(this.ctaPlayerAPI, ctaId, ctaBoard, ctaCustomAttributes);\n\n this.cache.ctasByType.set(type, new CachedCTAResource(appliedCTAFuntion, html));\n });\n }\n\n}\n","import { injectable } from \"inversify\";\nimport merge from \"lodash/merge\";\nimport { PersonalizerImpl } from \"./Personalizer\";\nimport { isolatedEval } from \"../../utils/isolatedEval\";\n\nexport interface AnimationPersonalizer {\n personalizeAnim(animationJSON: any, customAttributes: any, personalizationJSON: any): any;\n}\n\n@injectable()\nexport class AnimationPersonalizerImpl extends PersonalizerImpl implements AnimationPersonalizer {\n\n personalizeAnim(animationJSON: any, customAttributes: { [attr: string]: string }, personalizationJSON: any): any {\n\n if (customAttributes) {\n this.updateAnimJSON(animationJSON, this.personalize(customAttributes, personalizationJSON));\n return animationJSON;\n }\n\n return animationJSON;\n }\n\n private updateAnimJSON(animationItem: any, customAttributes: { [key: string]: string }) {\n\n const values = Object.keys(customAttributes).map((key) => JSON.parse(this.escapeBreakingChars(customAttributes[key])));\n\n let globalExpr = \"\";\n\n for (const value of values) {\n for (const valItem of value) {\n switch (valItem.type) {\n case \"letiant\":\n break;\n case \"global\":\n if (valItem.init) {\n // tslint:disable-next-line:no-eval\n globalExpr += valItem.init + \";\";\n }\n break;\n default:\n // appease linter\n break;\n }\n }\n }\n\n for (const value of values) {\n for (const valItem of value) {\n const layers = this.findLayersByName(animationItem, valItem.name);\n // tslint:disable:prefer-for-of\n for (let i = 0; i < layers.length; i++) {\n if (valItem.position) {\n if (valItem.keyFrameNo === undefined) {\n // tslint:disable-next-line:no-eval\n layers[i].ks.p.k = this.evalMethodSelector(globalExpr + valItem.position);\n } else {\n // tslint:disable-next-line:no-eval\n let evaluatedValue = this.evalMethodSelector(globalExpr + valItem.position);\n evaluatedValue = evaluatedValue.length === 2 ? [...evaluatedValue, 0] : evaluatedValue;\n layers[i].ks.p.k[valItem.keyFrameNo].s = evaluatedValue;\n }\n }\n if (valItem.scale) {\n // tslint:disable-next-line:no-eval\n let evaluatedValue = this.evalMethodSelector(globalExpr + valItem.scale);\n evaluatedValue = typeof evaluatedValue === \"number\" ? [evaluatedValue, evaluatedValue] : evaluatedValue;\n if (valItem.keyFrameNo === undefined) {\n layers[i].ks.s.k = evaluatedValue;\n } else {\n layers[i].ks.s.k[valItem.keyFrameNo].s = evaluatedValue;\n }\n }\n if (valItem.anchor) {\n // tslint:disable-next-line:no-eval\n if (valItem.keyFrameNo === undefined) {\n // tslint:disable-next-line:no-eval\n layers[i].ks.a.k = this.evalMethodSelector(globalExpr + valItem.anchor);\n } else {\n // tslint:disable-next-line:no-eval\n let evaluatedValue = this.evalMethodSelector(globalExpr + valItem.anchor);\n evaluatedValue = evaluatedValue.length === 2 ? [...evaluatedValue, 0] : evaluatedValue;\n layers[i].ks.a.k[valItem.keyFrameNo].s = evaluatedValue;\n }\n }\n if (valItem.opacity) {\n // tslint:disable-next-line:no-eval\n if (valItem.keyFrameNo === undefined) {\n // tslint:disable-next-line:no-eval\n layers[i].ks.o.k = this.evalMethodSelector(globalExpr + valItem.opacity);\n } else {\n // tslint:disable-next-line:no-eval\n let evaluatedValue = this.evalMethodSelector(globalExpr + valItem.opacity);\n evaluatedValue = evaluatedValue instanceof Array ? evaluatedValue : [evaluatedValue];\n layers[i].ks.o.k[valItem.keyFrameNo].s = evaluatedValue;\n }\n\n }\n if (valItem.rotation) {\n // tslint:disable-next-line:no-eval\n if (valItem.keyFrameNo === undefined) {\n // tslint:disable-next-line:no-eval\n layers[i].ks.r.k = this.evalMethodSelector(globalExpr + valItem.rotation);\n } else {\n // tslint:disable-next-line:no-eval\n let evaluatedValue = this.evalMethodSelector(globalExpr + valItem.rotation);\n evaluatedValue = evaluatedValue instanceof Array ? evaluatedValue : [evaluatedValue];\n layers[i].ks.r.k[valItem.keyFrameNo].s = evaluatedValue;\n }\n }\n }\n\n switch (valItem.type) {\n case \"text\":\n this.updateText(animationItem, valItem, globalExpr);\n break;\n case \"shape\":\n this.updateShape(animationItem, valItem, globalExpr);\n break;\n case \"image\":\n // tslint:disable-next-line:no-eval\n this.updateImage(animationItem, valItem, globalExpr);\n break;\n default:\n // appease linter\n break;\n }\n }\n }\n }\n\n private escapeBreakingChars(parse: string): string {\n return parse.replace(/([^\\\\])\\t/g, \"$1\\\\t\");\n }\n\n private updateText(animationItem: any, value: any, globalExpr: string) {\n const layers = this.findLayersByName(animationItem, value.name);\n // tslint:disable:prefer-for-of\n for (let i = 0; i < layers.length; i++) {\n if (value.val) {\n // tslint:disable-next-line:no-eval\n layers[i].t.d.k[0].s.t = this.evalMethodSelector(globalExpr + value.val);\n }\n if (value.color) {\n layers[i].t.d.k[0].s.fc[0] = parseInt(\"0x\" + value.color.slice(0, 2), 16) / 256;\n layers[i].t.d.k[0].s.fc[1] = parseInt(\"0x\" + value.color.slice(2, 4), 16) / 256;\n layers[i].t.d.k[0].s.fc[2] = parseInt(\"0x\" + value.color.slice(4, 6), 16) / 256;\n }\n if (value.fontSize) {\n // tslint:disable-next-line:no-eval\n layers[i].t.d.k[0].s.s = this.evalMethodSelector(globalExpr + value.fontSize);\n }\n if (value.font) {\n // tslint:disable-next-line:no-eval\n layers[i].t.d.k[0].s.f = this.evalMethodSelector(globalExpr + value.font);\n }\n if (value.init) {\n // tslint:disable-next-line:no-eval\n merge(layers[i], this.evalMethodSelector(globalExpr + value.init));\n }\n }\n // tslint:enable:prefer-for-of\n }\n\n private updateShape(animationItem: any, value: any, globalExpr: string) {\n const layers = this.findLayersByName(animationItem, value.name);\n for (const layer of layers) {\n if (value.init) {\n // tslint:disable-next-line:no-eval\n merge(layer, this.evalMethodSelector(globalExpr + value.init));\n }\n }\n }\n\n private updateImage(animationItem: any, value: any, globalExpr: string) {\n const layers = this.findLayersByName(animationItem, value.name);\n for (const layer of layers) {\n if (value.src) {\n // tslint:disable-next-line:no-eval\n const src = this.evalMethodSelector(globalExpr + value.src);\n const asset = this.findAssetByRefId(animationItem, layer.refId);\n const pathLength = src.lastIndexOf(\"/\");\n asset.u = src.substr(0, pathLength) + \"/\";\n asset.p = src.substr(pathLength + 1, src.length);\n }\n }\n }\n\n private findLayersByName(animationItem: any, name: string): any[] {\n const layers = [];\n const elements = animationItem.layers;\n for (const element of elements) {\n if (element.nm === name) {\n layers.push(element);\n }\n }\n return layers;\n }\n\n private findAssetByRefId(animationItem: any, refId: string) {\n let asset = null;\n const elements = animationItem.assets;\n for (const element of elements) {\n if (element.id === refId) {\n asset = element;\n break;\n }\n }\n return asset;\n }\n\n private evalMethodSelector(expr: string) {\n // tslint:disable-next-line:no-constant-condition\n if (true) {\n // tslint:disable-next-line:no-eval\n return eval(expr);\n } else {\n return isolatedEval(expr);\n }\n }\n}\n","import { injectable } from \"inversify\";\nimport { Config } from \"../../config/config\";\n\nexport interface Personalizer {\n personalize(customAttributes: any, personalizationJSON: any): any;\n}\n\n@injectable()\nexport class PersonalizerImpl implements Personalizer {\n\n personalize(customAttributes: { [attr: string]: string }, personalizationJSON: any): any {\n\n if (customAttributes) {\n customAttributes = { ...customAttributes };\n if (personalizationJSON) {\n Object.keys(personalizationJSON).forEach((personalizationAttr) => {\n\n const personalizationAttrValue = personalizationJSON[personalizationAttr];\n const personalizationPlaceholder = new RegExp(this.escapeRegExp(Config.placeholder(personalizationAttr)), \"g\");\n\n Object.keys(customAttributes).forEach((attr) => {\n customAttributes[attr] = customAttributes[attr].replace(personalizationPlaceholder, personalizationAttrValue);\n });\n });\n }\n }\n\n return customAttributes;\n }\n\n private escapeRegExp(str: string) {\n return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n }\n}\n","import { VintomErrorCode } from \"src/api/model/error/VintomErrorCode\";\n\n// tslint:disable:max-classes-per-file\nexport type ScenarioElementEndReason = \"SEEKED\" | \"PAUSED\" | \"FINISHED\" | \"CLOSED\";\nexport type ScenarioElementProgress = 25 | 50 | 75 | 100;\n\nexport abstract class BaseAnalyticsEvent {\n\n type: T;\n timestamp = Date.now();\n constructor(\n public projectCode: string,\n public groupId: number,\n public scenarioElementId: string,\n public videoCode: string,\n public userIdentifier: string,\n public videoDate: number) { }\n}\n\nexport class PlayerInitEvent extends BaseAnalyticsEvent<\"PLAYER_INIT\"> {\n type: \"PLAYER_INIT\" = \"PLAYER_INIT\";\n}\n\nexport class PlayerStartEvent extends BaseAnalyticsEvent<\"PLAYER_START\"> {\n type: \"PLAYER_START\" = \"PLAYER_START\";\n}\n\nexport class PlayerErrorEvent extends BaseAnalyticsEvent<\"PLAYER_ERROR\"> {\n type: \"PLAYER_ERROR\" = \"PLAYER_ERROR\";\n constructor(\n projectCode: string,\n groupId: number,\n scenarioElementId: string,\n videoCode: string,\n userIdentifier: string,\n videoDate: number,\n public errorCode: VintomErrorCode,\n public errorMessage: string) {\n\n super(projectCode, groupId, scenarioElementId, videoCode, userIdentifier, videoDate);\n }\n}\n\nexport class ScenarioElementStartEvent extends BaseAnalyticsEvent<\"SCENARIO_ELEMENT_START\"> {\n\n type: \"SCENARIO_ELEMENT_START\" = \"SCENARIO_ELEMENT_START\";\n currentTime = 0;\n\n constructor(\n projectCode: string,\n groupId: number,\n scenarioElementId: string,\n videoCode: string,\n userIdentifier: string,\n videoDate: number,\n public videoType: string,\n public volume: number,\n public duration: number) {\n\n super(projectCode, groupId, scenarioElementId, videoCode, userIdentifier, videoDate);\n }\n\n}\n\nexport class ScenarioElementPlayingEvent extends BaseAnalyticsEvent<\"SCENARIO_ELEMENT_PLAYING\"> {\n type: \"SCENARIO_ELEMENT_PLAYING\" = \"SCENARIO_ELEMENT_PLAYING\";\n constructor(\n projectCode: string,\n groupId: number,\n scenarioElementId: string,\n videoCode: string,\n userIdentifier: string,\n videoDate: number,\n public videoType: string,\n public volume: number,\n public duration: number,\n public currentTime: number,\n public startTime: number,\n public endReason?: ScenarioElementEndReason) {\n\n super(projectCode, groupId, scenarioElementId, videoCode, userIdentifier, videoDate);\n }\n\n}\n\nexport class ScenarioElementProgressEvent extends BaseAnalyticsEvent<\"SCENARIO_ELEMENT_PROGRESS\"> {\n type: \"SCENARIO_ELEMENT_PROGRESS\" = \"SCENARIO_ELEMENT_PROGRESS\";\n constructor(\n projectCode: string,\n groupId: number,\n scenarioElementId: string,\n videoCode: string,\n userIdentifier: string,\n videoDate: number,\n public progress: ScenarioElementProgress) {\n\n super(projectCode, groupId, scenarioElementId, videoCode, userIdentifier, videoDate);\n }\n}\n\nexport class CTAShowEvent extends BaseAnalyticsEvent<\"CTA_SHOW\"> {\n type: \"CTA_SHOW\" = \"CTA_SHOW\";\n constructor(\n projectCode: string,\n groupId: number,\n scenarioElementId: string,\n videoCode: string,\n userIdentifier: string,\n videoDate: number,\n public ctaId: number) {\n\n super(projectCode, groupId, scenarioElementId, videoCode, userIdentifier, videoDate);\n }\n\n}\n\nexport class CTAActionEvent extends BaseAnalyticsEvent<\"CTA_ACTION\"> {\n type: \"CTA_ACTION\" = \"CTA_ACTION\";\n constructor(\n projectCode: string,\n groupId: number,\n scenarioElementId: string,\n videoCode: string,\n userIdentifier: string,\n videoDate: number,\n public ctaId: number, \n public actionId: number,\n public actionAdditionalData: object) {\n\n super(projectCode, groupId, scenarioElementId, videoCode, userIdentifier, videoDate);\n }\n \n}\n\nexport class NotSupportedBrowserEvent extends BaseAnalyticsEvent<\"NOT_SUPPORTED_BROWSER\"> {\n type: \"NOT_SUPPORTED_BROWSER\" = \"NOT_SUPPORTED_BROWSER\";\n constructor(\n projectCode: string,\n groupId: number,\n scenarioElementId: string,\n videoCode: string,\n userIdentifier: string,\n videoDate: number) {\n\n super(projectCode, groupId, scenarioElementId, videoCode, userIdentifier, videoDate);\n }\n\n}\n\nexport type AnalyticsEvent =\n PlayerInitEvent |\n PlayerStartEvent |\n PlayerErrorEvent |\n ScenarioElementStartEvent |\n ScenarioElementPlayingEvent |\n ScenarioElementProgressEvent |\n CTAShowEvent |\n CTAActionEvent |\n NotSupportedBrowserEvent;\n\n// tslint:enable:max-classes-per-file\n","import { inject, injectable } from \"inversify\";\nimport { Md5 } from \"ts-md5/dist/md5\";\nimport { VintomError } from \"../../api/model/error/VintomError\";\nimport { AnalyticsEndpoint } from \"../../model/playerConfiguration/AnalyticsEndpoint\";\nimport { CookieHelper } from \"../../utils/CookieHelper\";\nimport { TYPES } from \"../di/types\";\nimport {\n AnalyticsEvent,\n CTAActionEvent,\n CTAShowEvent,\n NotSupportedBrowserEvent,\n PlayerErrorEvent,\n PlayerInitEvent,\n PlayerStartEvent,\n ScenarioElementEndReason,\n ScenarioElementPlayingEvent,\n ScenarioElementProgress,\n ScenarioElementProgressEvent,\n ScenarioElementStartEvent\n} from \"./AnalyticEvent\";\nimport { AnalyticsSender } from \"./AnalyticsSender\";\nimport { GoogleAnalyticsSender, GoogleAnalyticsSenderImpl } from \"./GoogleAnalyticsSender\";\nimport { VintomAnalyticsSender } from \"./VintomAnalyticsSender\";\n\nexport interface AnalyticsCollector {\n initialize(videoCode: string, videoDate: number, endpoints: AnalyticsEndpoint[], campaign: string, groupId: number): void;\n logPlayerInit(scenarioElementId: string): void;\n logPlayerStart(scenarioElementId: string): void;\n logPlayerError(scenarioElementId: string, error: VintomError): void;\n logScenarioElementStart(scenarioElementId: string, videoType: string, volume: number, duration: number): void;\n logScenarioElementPlaying(\n scenarioElementId: string,\n videoType: string,\n volume: number,\n duration: number,\n currentTime: number,\n endReason?: ScenarioElementEndReason): void;\n logScenarioElementProgress(scenarioElementId: string, progress: ScenarioElementProgress): void;\n logCTAShow(scenarioElementId: string, ctaId: number): void;\n logCTAAction(scenarioElementId: string, ctaId: number, actionId: number, actionAdditionalData: object): void;\n logNotSupportedBrowser(): void;\n}\n\n@injectable()\nexport class AnalyticsCollectorImpl implements AnalyticsCollector {\n\n private static USER_IDENTIFIER_COOKIE_NAME = \"vintomUserIdentifier\";\n\n private projectCode: string;\n private groupId: number;\n private videoCode: string;\n private videoDate: number;\n private userIdentifier: string;\n private lastPlayEventTime: number;\n private configuredSenders: AnalyticsSender[] = [];\n private googleAnalyticsEndpointExists: boolean = false;\n private googleAnalyticsEventQueue: AnalyticsEvent[] = [];\n\n constructor(\n @inject(TYPES.analyticsCollector.GoogleAnalyticsSender) private googleAnalyticsSender: GoogleAnalyticsSender,\n @inject(TYPES.analyticsCollector.VintomAnalyticsSender) private vintomAnalyticsSender: VintomAnalyticsSender) {}\n\n initialize(videoCode: string, videoDate: number, endpoints: AnalyticsEndpoint[], campaign: string, groupId: number) {\n this.projectCode = campaign;\n this.groupId = groupId;\n this.videoCode = videoCode;\n this.videoDate = videoDate;\n this.userIdentifier = this.readUserIdentifierFromCookie();\n if (!this.userIdentifier) {\n this.userIdentifier = this.createUserIdentifier();\n this.saveUserIdentifierToCookie(this.userIdentifier);\n }\n\n const gaTrackers = endpoints.filter((endpoint) => endpoint.provider === \"GA\").map((endpoint) => endpoint.gaServiceTracker);\n if (gaTrackers.length) {\n this.googleAnalyticsEndpointExists = true;\n this.googleAnalyticsSender.initialize(gaTrackers, campaign)\n .then(() => this.configuredSenders.push(this.googleAnalyticsSender))\n .then(() => this.processGoogleAnalyticsEventQueue());\n }\n\n const vintomEndpoints = endpoints.filter((endpoint) => endpoint.provider === \"vintom\").map((endpoint) => endpoint.vintomServer);\n if (vintomEndpoints.length) {\n this.vintomAnalyticsSender.initialize(vintomEndpoints);\n this.configuredSenders.push(this.vintomAnalyticsSender);\n }\n\n }\n\n logPlayerInit(scenarioElementId: string) {\n this.sendEvent(new PlayerInitEvent(\n this.projectCode,\n this.groupId,\n scenarioElementId,\n this.videoCode,\n this.userIdentifier,\n this.videoDate\n ));\n }\n\n logPlayerStart(scenarioElementId: string) {\n this.sendEvent(new PlayerStartEvent(\n this.projectCode,\n this.groupId,\n scenarioElementId,\n this.videoCode,\n this.userIdentifier,\n this.videoDate\n ));\n }\n\n logPlayerError(scenarioElementId: string, error: VintomError) {\n this.sendEvent(new PlayerErrorEvent(\n this.projectCode,\n this.groupId,\n scenarioElementId,\n this.videoCode,\n this.userIdentifier,\n this.videoDate,\n error.errorCode,\n error.message\n ));\n }\n\n logScenarioElementStart(scenarioElementId: string, videoType: string, volume: number, duration: number) {\n this.sendEvent(new ScenarioElementStartEvent(\n this.projectCode,\n this.groupId,\n scenarioElementId,\n this.videoCode,\n this.userIdentifier,\n this.videoDate,\n videoType,\n volume,\n duration\n ));\n\n this.lastPlayEventTime = 0;\n }\n\n logScenarioElementPlaying(\n scenarioElementId: string,\n videoType: string,\n volume: number,\n duration: number,\n currentTime: number,\n endReason?: ScenarioElementEndReason) {\n\n this.sendEvent(new ScenarioElementPlayingEvent(\n this.projectCode,\n this.groupId,\n scenarioElementId,\n this.videoCode,\n this.userIdentifier,\n this.videoDate,\n videoType,\n volume,\n duration,\n currentTime,\n this.lastPlayEventTime,\n endReason\n ));\n\n this.lastPlayEventTime = currentTime;\n }\n\n logScenarioElementProgress(scenarioElementId: string, progress: ScenarioElementProgress) {\n this.sendEvent(new ScenarioElementProgressEvent(\n this.projectCode,\n this.groupId,\n scenarioElementId,\n this.videoCode,\n this.userIdentifier,\n this.videoDate,\n progress\n ));\n }\n\n logCTAShow(scenarioElementId: string, ctaId: number) {\n this.sendEvent(new CTAShowEvent(\n this.projectCode,\n this.groupId,\n scenarioElementId,\n this.videoCode,\n this.userIdentifier,\n this.videoDate,\n ctaId\n ));\n }\n\n logCTAAction(scenarioElementId: string, ctaId: number, actionId: number, actionAdditionalData: object) {\n this.sendEvent(new CTAActionEvent(\n this.projectCode,\n this.groupId,\n scenarioElementId,\n this.videoCode,\n this.userIdentifier,\n this.videoDate,\n ctaId,\n actionId,\n actionAdditionalData\n ));\n }\n\n logNotSupportedBrowser() {\n this.sendEvent(new NotSupportedBrowserEvent(\n this.projectCode,\n this.groupId,\n null,\n this.videoCode,\n this.userIdentifier,\n this.videoDate\n ));\n }\n\n private sendEvent(event: AnalyticsEvent) {\n for (const sender of this.configuredSenders) {\n sender.sendEvent(event);\n }\n if (!this.googleAnalyticsSenderInitialized()) {\n this.googleAnalyticsEventQueue.push(event);\n }\n }\n\n private googleAnalyticsSenderInitialized(): boolean {\n if (!this.googleAnalyticsEndpointExists) {\n return true;\n } else {\n for (const sender of this.configuredSenders) {\n if (sender instanceof GoogleAnalyticsSenderImpl) {\n return true;\n }\n }\n }\n return false;\n }\n\n private processGoogleAnalyticsEventQueue(): void {\n for (const event of this.googleAnalyticsEventQueue) {\n this.googleAnalyticsSender.sendEvent(event);\n }\n this.googleAnalyticsEventQueue = [];\n }\n\n private createUserIdentifier(): string {\n const randomValues = crypto.getRandomValues(new Uint32Array(1));\n\n return Md5.hashStr(randomValues[0] + \"\") as string;\n }\n\n private saveUserIdentifierToCookie(identifier: string) {\n CookieHelper.setCookie(AnalyticsCollectorImpl.USER_IDENTIFIER_COOKIE_NAME, identifier);\n }\n\n private readUserIdentifierFromCookie() {\n return CookieHelper.readCookie(AnalyticsCollectorImpl.USER_IDENTIFIER_COOKIE_NAME);\n }\n\n}\n","import { inject, injectable } from \"inversify\";\nimport { Config } from \"../../config/config\";\nimport { TYPES } from \"../di/types\";\nimport { ResourceLoader } from \"../loader/resourceLoader/ResourceLoader\";\nimport { AnalyticsEvent } from \"./AnalyticEvent\";\nimport { AnalyticsSender } from \"./AnalyticsSender\";\n\ndeclare global {\n interface Window {\n vintomGADataLayer: any[];\n vintomGtag: (...args: any) => void;\n }\n}\nlet eventCategory: string;\n\nexport interface GoogleAnalyticsSender extends AnalyticsSender {\n initialize(gaServiceTrackers: string[], campaign: string): Promise;\n}\n\n@injectable()\nexport class GoogleAnalyticsSenderImpl implements GoogleAnalyticsSender {\n\n constructor(@inject(TYPES.loader.resourceLoader.ResourceLoader) private resourceLoader: ResourceLoader) { }\n\n initialize(gaServiceTrackers: string[], campaign: string): Promise {\n return this.resourceLoader.loadResources([{ location: Config.gaEndpoint, type: \"JS\" }])\n .then(() => {\n window.vintomGADataLayer = window.vintomGADataLayer || [];\n\n // tslint:disable:only-arrow-functions\n window.vintomGtag = function() {\n window.vintomGADataLayer.push(arguments);\n };\n // tslint:enable:only-arrow-functions\n if (campaign !== \"MBBANKFULL2\") {\n window.vintomGtag(\"js\", new Date());\n }\n\n for (const gaServiceTracker of gaServiceTrackers) {\n window.vintomGtag(\"config\", gaServiceTracker, {\n campaign: {\n source: campaign\n },\n anonymize_ip: true\n });\n eventCategory = campaign;\n }\n });\n }\n\n sendEvent(event: AnalyticsEvent): void {\n const eventAction =\n event.type === \"SCENARIO_ELEMENT_PROGRESS\"\n ? `${event.type}_${event.progress}`\n : event.type;\n\n const eventLabel = this.serializeEventToAction(event);\n\n if (eventAction !== undefined) {\n if ((eventCategory === \"MBBANKFULL2\" && eventAction === \"PLAYER_INIT\") ||\n (eventCategory === \"MBBANKFULL2\" && eventAction === \"SCENARIO_ELEMENT_PLAYING\")) {\n return;\n }\n if (eventCategory === \"MBBANKFULL2\") {\n window.vintomGtag(\"js\", new Date());\n }\n window.vintomGtag(\"event\", eventAction, {\n event_category: eventCategory,\n event_label: eventLabel\n });\n }\n }\n\n private serializeEventToAction(event: AnalyticsEvent): string {\n const base = `scenario element id: ${event.scenarioElementId}`;\n\n switch (event.type) {\n case \"PLAYER_INIT\":\n return base;\n case \"PLAYER_START\":\n return base;\n case \"PLAYER_ERROR\":\n return `${base}, message: ${event.errorMessage}`;\n case \"SCENARIO_ELEMENT_START\":\n return base;\n case \"SCENARIO_ELEMENT_PROGRESS\":\n return base;\n case \"CTA_SHOW\":\n return `${base}, cta id: ${event.ctaId}`;\n case \"CTA_ACTION\":\n return `${base}, cta id: ${event.ctaId}, action id: ${event.actionId}`;\n case \"NOT_SUPPORTED_BROWSER\":\n return base;\n default:\n // all other events are ignored by GoogleAnalyticsSender\n return undefined;\n }\n }\n}\n","import { injectable } from \"inversify\";\nimport { AnalyticsEvent, BaseAnalyticsEvent } from \"./AnalyticEvent\";\nimport { AnalyticsSender } from \"./AnalyticsSender\";\n\nexport interface VintomAnalyticsSender extends AnalyticsSender {\n initialize(vintomEndpoints: string[]): void;\n}\n\n@injectable()\nexport class VintomAnalyticsSenderImpl implements VintomAnalyticsSender {\n\n private endpoints: string[] = [];\n\n initialize(vintomEndpoints: string[]): void {\n this.endpoints = vintomEndpoints;\n }\n\n sendEvent(event: AnalyticsEvent): void {\n const eventJSON = this.serializeEventToJSON(event);\n if (eventJSON) {\n for (const endpoint of this.endpoints) {\n fetch(endpoint, {\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json; charset=UTF-8\"\n },\n body: JSON.stringify(eventJSON)\n });\n }\n }\n }\n\n private serializeEventToJSON(event: AnalyticsEvent): any {\n const base = this.serializeBaseAnalyticsEvent(event);\n\n switch (event.type) {\n case \"PLAYER_INIT\":\n return base;\n case \"PLAYER_START\":\n return base;\n case \"PLAYER_ERROR\":\n return {\n ...base,\n ei: event.errorCode,\n em: event.errorMessage\n };\n case \"SCENARIO_ELEMENT_START\":\n return {\n ...base,\n st: event.videoType,\n t: event.currentTime,\n vo: event.volume * 100,\n d: event.duration * 1000\n };\n case \"SCENARIO_ELEMENT_PLAYING\":\n return {\n ...base,\n st: event.videoType,\n t: event.currentTime * 1000,\n vo: event.volume * 100,\n d: event.duration * 1000,\n ts: event.startTime * 1000,\n er: event.endReason\n };\n case \"CTA_SHOW\":\n return {\n ...base,\n ct: event.ctaId\n };\n case \"CTA_ACTION\":\n return {\n ...base,\n ct: event.ctaId,\n ac: event.actionId,\n ds: event.actionAdditionalData\n };\n case \"NOT_SUPPORTED_BROWSER\":\n return base;\n default:\n // all other events are ignored by VintomAnalyticsSender\n return undefined;\n }\n }\n\n private serializeBaseAnalyticsEvent(event: BaseAnalyticsEvent): any {\n return {\n type: event.type,\n dttm: event.timestamp,\n se: event.scenarioElementId,\n c: event.videoCode,\n vui: event.userIdentifier,\n vd: event.videoDate,\n pc: event.projectCode,\n gr: event.groupId\n };\n }\n}\n","\r\nimport { injectable } from \"inversify\";\r\nimport { StoredPreferences } from \"../../model/storedPreferences/StoredPreferences\";\r\nimport { CookieHelper } from \"../../utils/CookieHelper\";\r\n\r\nexport interface PreferencesStorage {\r\n getPreferences(): StoredPreferences;\r\n saveVolumePreference(volume: number): void;\r\n saveSubtitlesPreference(isDisplayed: boolean, language: string): void;\r\n}\r\n\r\n@injectable()\r\nexport class PreferencesStorageImpl implements PreferencesStorage {\r\n\r\n private static VOLUME_COOKIE_NAME = \"vintomVolume\";\r\n private static SUBTITLES_DISPLAYED_COOKIE_NAME = \"vintomSubtitlesDisplayed\";\r\n private static LANGUAGE_COOKIE_NAME = \"vintomLanguage\";\r\n\r\n getPreferences(): StoredPreferences {\r\n\r\n let volume;\r\n try {\r\n const volumeStr = CookieHelper.readCookie(PreferencesStorageImpl.VOLUME_COOKIE_NAME);\r\n volume = volumeStr && Number(volumeStr);\r\n\r\n if (isNaN(volume) || !volume) {\r\n volume = undefined;\r\n } else if (volume !== undefined) {\r\n volume = Math.max(0, Math.min(1, parseFloat(volume)));\r\n }\r\n } catch {\r\n // ignore\r\n }\r\n\r\n let isSubtitlesDisplayed: boolean;\r\n try {\r\n const isSubtitlesDisplayedStr = CookieHelper.readCookie(PreferencesStorageImpl.SUBTITLES_DISPLAYED_COOKIE_NAME);\r\n isSubtitlesDisplayed = isSubtitlesDisplayedStr && isSubtitlesDisplayedStr.toLowerCase() === \"true\";\r\n } catch {\r\n // ignore\r\n }\r\n\r\n const language = CookieHelper.readCookie(PreferencesStorageImpl.LANGUAGE_COOKIE_NAME);\r\n return new StoredPreferences(volume, isSubtitlesDisplayed, language);\r\n }\r\n\r\n saveVolumePreference(volume: number): void {\r\n CookieHelper.setCookie(PreferencesStorageImpl.VOLUME_COOKIE_NAME, volume && volume.toString());\r\n }\r\n\r\n saveSubtitlesPreference(isDisplayed: boolean, language: string): void {\r\n CookieHelper.setCookie(PreferencesStorageImpl.SUBTITLES_DISPLAYED_COOKIE_NAME, `${isDisplayed}`);\r\n CookieHelper.setCookie(PreferencesStorageImpl.LANGUAGE_COOKIE_NAME, language);\r\n }\r\n}\r\n","import { PlayerScenarioRunnerAPI } from \"@manager/PlayerManager\";\nimport { inject, injectable } from \"inversify\";\nimport ReactDOM from \"react-dom\";\nimport { VintomError } from \"../../api/model/error/VintomError\";\nimport { ScenarioElement } from \"../../model/playerConfiguration/ScenarioElement\";\nimport { Subtitle } from \"../../model/playerConfiguration/Subtitle\";\nimport { PlaybackData } from \"../../model/playerState/PlaybackData\";\nimport { ScenarioElementPlayOptions } from \"../../model/scenarioElementPlayOptions/ScenarioElementPlayOptions\";\nimport { ScenarioGlobalState } from \"../../model/scenarioGlobalState/ScenarioGlobalState\";\nimport { TYPES } from \"../di/types\";\nimport { ResourcesCache } from \"../loader/scenarioLoader/ResourcesCache\";\nimport { PreferencesStorage } from \"../preferencesStorage/PreferencesStorage\";\nimport { ControlsLayerManager } from \"./layerManager/ControlsLayerManager\";\nimport { CTALayerManager } from \"./layerManager/CTALayerManager\";\nimport { IndependentAnimationLayerManager } from \"./layerManager/IndependentAnimationLayerManager\";\nimport { PlayerContainerManager } from \"./layerManager/PlayerContainerManager\";\nimport { PosterLayerManager } from \"./layerManager/PosterLayerManager\";\nimport { VideoLayerManager } from \"./layerManager/VideoLayerManager\";\nimport { ScenarioExecutor } from \"./ScenarioExecutor\";\n\n@injectable()\nexport class AnimationDrivenScenarioExecutorImpl implements ScenarioExecutor {\n\n private playerAPI: PlayerScenarioRunnerAPI;\n private animationFrameHandle: number;\n private scenarioGlobalState: ScenarioGlobalState;\n\n constructor(\n @inject(TYPES.scenarioRunner.layerManager.PlayerContainerManager) private playerContainerManager: PlayerContainerManager,\n @inject(TYPES.scenarioRunner.layerManager.IndependentAnimationLayerManager) private animationLayerManager: IndependentAnimationLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.CTALayerManager) private ctaLayerManager: CTALayerManager,\n @inject(TYPES.scenarioRunner.layerManager.ControlsLayerManager) private controlsLayerManager: ControlsLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.PosterLayerManager) private posterLayerManager: PosterLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.VideoLayerManager) private videoLayerManager: VideoLayerManager,\n @inject(TYPES.preferencesStorage.PreferencesStorage) private preferencesStorage: PreferencesStorage) {}\n\n setPlayerAPIDelegate(playerAPI: PlayerScenarioRunnerAPI) {\n this.playerAPI = playerAPI;\n }\n\n cancel(): void {\n if (this.animationFrameHandle !== undefined) {\n cancelAnimationFrame(this.animationFrameHandle);\n }\n }\n\n intializeAndRun(\n scenarioGlobalState: ScenarioGlobalState,\n scenarioResources: Promise,\n options: ScenarioElementPlayOptions): Promise {\n\n this.scenarioGlobalState = scenarioGlobalState;\n return this.initializeScenarioElement(scenarioGlobalState, scenarioResources, options.progress)\n .then(() => {\n this.runSyncLoop();\n if (options.isAutoplay) {\n this.controlsLayerManager.play();\n } else {\n this.controlsLayerManager.pause();\n }\n });\n }\n\n getPlaybackData(): PlaybackData {\n const isPlaying = this.animationLayerManager.getIsPlaying();\n const time = this.animationLayerManager.getCurrentTime();\n const duration = this.animationLayerManager.getTotalTime();\n return { isPlaying, time, duration };\n }\n\n getScenarioGlobalState(): ScenarioGlobalState {\n return this.scenarioGlobalState;\n }\n\n play(): void {\n this.controlsLayerManager.play();\n }\n\n pause(): void {\n this.controlsLayerManager.pause();\n }\n\n performAction(ctaId: number, actionId: number, ...args: any[]): void {\n this.ctaLayerManager.performAction(ctaId, actionId, args);\n }\n\n jumpToScenarioElement(scenarioElement: ScenarioElement, progress: number): void {\n this.animationLayerManager.pause();\n cancelAnimationFrame(this.animationFrameHandle);\n this.playerAPI.loadScenarioElement(scenarioElement, { isAutoplay: true, progress });\n }\n\n private initializeScenarioElement(scenarioGlobalState: ScenarioGlobalState, scenarioResources: Promise, progress: number):\n Promise {\n\n this.resetObservers();\n\n this.videoLayerManager.hide();\n const scenarioPath = scenarioGlobalState.scenarioPath;\n this.posterLayerManager.newScenarioElement(scenarioGlobalState);\n this.controlsLayerManager.newScenarioElement(scenarioPath);\n this.ctaLayerManager.newScenarioElement(scenarioGlobalState);\n this.animationLayerManager.newScenarioElement(scenarioPath);\n\n return scenarioResources.then((resourcesCache) => {\n this.posterLayerManager.resourcesLoaded(resourcesCache);\n\n this.animationLayerManager.resourcesLoaded(resourcesCache);\n this.animationLayerManager.loadAnimation();\n const totalTime = this.animationLayerManager.getTotalTime();\n\n this.ctaLayerManager.resourcesLoaded(resourcesCache, totalTime);\n\n if (progress) {\n const currentTime = totalTime * progress;\n ////////\n this.animationLayerManager.moveTo(currentTime);\n this.controlsLayerManager.moveTo(currentTime);\n }\n this.controlsLayerManager.setTotalTime(totalTime);\n this.controlsLayerManager.hideLoader();\n });\n }\n\n private resetObservers() {\n this.videoLayerManager.registerObserver(undefined);\n\n this.playerContainerManager.registerObserver({\n onPlayerInteractionEnd: () => this.controlsLayerManager.userInteractionEnded(),\n onPlayerInteraction: () => this.controlsLayerManager.userInteractedWithPlayer(),\n onPlayerClick: () => this.controlsLayerManager.userClickedPlayer(),\n onPlayerContextMenu: (x: number, y: number) => this.controlsLayerManager.showPlayerInfoTooltip(x, y)\n });\n\n this.animationLayerManager.registerObserver({\n onStarted: () => this.playerAPI.onScenarioElementStart(),\n onEnded: () => {\n this.playerAPI.onScenarioElementEnd();\n this.controlsLayerManager.scenarioElementEnded();\n }\n });\n\n this.controlsLayerManager.registerObserver({\n onPause: () => {\n this.animationLayerManager.pause();\n this.playerAPI.onPause();\n },\n onSeekStart: () => {\n this.animationLayerManager.pause();\n this.playerAPI.onSeek();\n },\n onPlay: () => {\n this.animationLayerManager.play();\n this.playerAPI.onPlay();\n },\n onReloadFrame: () => { },\n ////\n onSeekTo: (time) => this.animationLayerManager.moveTo(time),\n onVolumeChange: (volume: number) => {\n this.preferencesStorage.saveVolumePreference(volume);\n this.scenarioGlobalState = this.scenarioGlobalState.withVolume(volume);\n },\n onMutedChange: (isMuted: boolean) => {\n this.scenarioGlobalState = this.scenarioGlobalState.withMuted(isMuted);\n },\n onSubtitleSourceSelected: (subtitle: Subtitle) => { /*cannot happen */ },\n onJumpToScenarioElement: (scElement: ScenarioElement, progress: number) => this.jumpToScenarioElement(scElement, progress),\n onToggleFullscreen: () => this.playerContainerManager.toggleFullscreen(),\n onSendError: (error: VintomError) => this.playerAPI.logUserError(error)\n });\n\n this.ctaLayerManager.registerObserver({\n onCTAShow: (cta) => this.playerAPI.onCTAShow(cta)\n });\n }\n\n private runSyncLoop() {\n\n this.animationFrameHandle = requestAnimationFrame(() => {\n try {\n const currentTime = this.animationLayerManager.getCurrentTime();\n const totalTime = this.animationLayerManager.getTotalTime();\n const isPlaying = this.animationLayerManager.getIsPlaying();\n\n ReactDOM.unstable_batchedUpdates(() => {\n this.ctaLayerManager.moveTo(currentTime);\n this.controlsLayerManager.moveTo(currentTime);\n\n this.playerAPI.onProgress(currentTime / totalTime);\n\n if (isPlaying) {\n this.posterLayerManager.hidePoster();\n }\n });\n\n this.runSyncLoop();\n } catch (e) {\n this.playerAPI.onError(new VintomError(\"runtimeError\", e.stack.toString()));\n }\n\n });\n }\n\n}\n","import { PlayerScenarioRunnerAPI } from \"@manager/PlayerManager\";\nimport { inject, injectable } from \"inversify\";\nimport { VintomError } from \"../../api/model/error/VintomError\";\nimport { ScenarioElement } from \"../../model/playerConfiguration/ScenarioElement\";\nimport { Subtitle } from \"../../model/playerConfiguration/Subtitle\";\nimport { PlaybackData } from \"../../model/playerState/PlaybackData\";\nimport { ScenarioElementPlayOptions } from \"../../model/scenarioElementPlayOptions/ScenarioElementPlayOptions\";\nimport { ScenarioGlobalState } from \"../../model/scenarioGlobalState/ScenarioGlobalState\";\nimport { TYPES } from \"../di/types\";\nimport { ResourcesCache } from \"../loader/scenarioLoader/ResourcesCache\";\nimport { PreferencesStorage } from \"../preferencesStorage/PreferencesStorage\";\nimport { ControlsLayerManager } from \"./layerManager/ControlsLayerManager\";\nimport { CTALayerManager } from \"./layerManager/CTALayerManager\";\nimport { MusicLayerManager } from \"./layerManager/MusicLayerManager\";\nimport { PlayerContainerManager } from \"./layerManager/PlayerContainerManager\";\nimport { PosterLayerManager } from \"./layerManager/PosterLayerManager\";\nimport { VideoLayerManager } from \"./layerManager/VideoLayerManager\";\nimport { ScenarioExecutor } from \"./ScenarioExecutor\";\n\n@injectable()\nexport class CTAOnlyScenarioExecutorImpl implements ScenarioExecutor {\n\n private playerAPI: PlayerScenarioRunnerAPI;\n private scenarioGlobalState: ScenarioGlobalState;\n\n constructor(\n @inject(TYPES.scenarioRunner.layerManager.PlayerContainerManager) private playerContainerManager: PlayerContainerManager,\n @inject(TYPES.scenarioRunner.layerManager.CTALayerManager) private ctaLayerManager: CTALayerManager,\n @inject(TYPES.scenarioRunner.layerManager.ControlsLayerManager) private controlsLayerManager: ControlsLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.PosterLayerManager) private posterLayerManager: PosterLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.VideoLayerManager) private videoLayerManager: VideoLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.MusicLayerManager) private musicLayerManager: MusicLayerManager,\n @inject(TYPES.preferencesStorage.PreferencesStorage) private preferencesStorage: PreferencesStorage) {}\n\n setPlayerAPIDelegate(playerAPI: PlayerScenarioRunnerAPI) {\n this.playerAPI = playerAPI;\n }\n\n cancel(): void { }\n\n intializeAndRun(\n scenarioGlobalState: ScenarioGlobalState,\n scenarioResources: Promise,\n options: ScenarioElementPlayOptions): Promise {\n\n this.scenarioGlobalState = scenarioGlobalState;\n return this.initializeScenarioElement(scenarioGlobalState, scenarioResources)\n .then(() => {\n const scenarioElement = this.scenarioGlobalState.scenarioPath.currentElement;\n if (options.isAutoplay && !scenarioElement.isCTAOnlyPlaybackStoppingElement) {\n this.controlsLayerManager.play();\n }\n });\n }\n\n getPlaybackData(): PlaybackData {\n const isPlaying = true;\n const time = 0;\n const duration = 0;\n return { isPlaying, time, duration };\n }\n\n getScenarioGlobalState(): ScenarioGlobalState {\n return this.scenarioGlobalState;\n }\n\n play(): void {}\n\n pause(): void {}\n\n performAction(ctaId: number, actionId: number, ...args: any[]): void {\n this.ctaLayerManager.performAction(ctaId, actionId, args);\n }\n\n jumpToScenarioElement(\n scenarioElement: ScenarioElement,\n progress: number,\n isAutoplay: boolean\n ): void {\n this.playerAPI.loadScenarioElement(scenarioElement, {\n isAutoplay,\n progress\n });\n }\n\n private initializeScenarioElement(scenarioGlobalState: ScenarioGlobalState, scenarioResources: Promise): Promise {\n\n this.resetObservers();\n\n this.videoLayerManager.hide();\n this.ctaLayerManager.newScenarioElement(scenarioGlobalState);\n\n const scenarioPath = scenarioGlobalState.scenarioPath;\n this.posterLayerManager.newScenarioElement(scenarioGlobalState);\n this.controlsLayerManager.newScenarioElement(scenarioPath);\n this.ctaLayerManager.newScenarioElement(scenarioGlobalState);\n\n return scenarioResources.then((resourcesCache) => {\n this.ctaLayerManager.resourcesLoaded(resourcesCache, undefined);\n this.ctaLayerManager.displayAllCTAsForCTAOnlyElemnt();\n this.controlsLayerManager.hideLoader();\n });\n }\n\n private resetObservers() {\n\n this.videoLayerManager.registerObserver(undefined);\n\n this.playerContainerManager.registerObserver({\n onPlayerInteractionEnd: () => this.controlsLayerManager.userInteractionEnded(),\n onPlayerInteraction: () => this.controlsLayerManager.userInteractedWithPlayer(),\n onPlayerClick: () => this.controlsLayerManager.userClickedPlayer(),\n onPlayerContextMenu: (x: number, y: number) => this.controlsLayerManager.showPlayerInfoTooltip(x, y)\n });\n\n this.controlsLayerManager.registerObserver({\n onPause: () => { },\n onSeekStart: () => { },\n onPlay: () => {\n const scenarioElement = this.scenarioGlobalState.scenarioPath.currentElement;\n if (!scenarioElement.isCTAOnlyPlaybackStoppingElement) {\n this.playerAPI.loadNextScenarioElement();\n }\n },\n onReloadFrame: () => { },\n onSeekTo: (time) => { },\n onVolumeChange: (volume: number) => {\n this.preferencesStorage.saveVolumePreference(volume);\n this.scenarioGlobalState = this.scenarioGlobalState.withVolume(volume);\n },\n onMutedChange: (isMuted: boolean) => {\n this.scenarioGlobalState = this.scenarioGlobalState.withMuted(isMuted);\n },\n onSubtitleSourceSelected: (subtitle: Subtitle) => { },\n onJumpToScenarioElement: (\n scElement: ScenarioElement,\n progress: number,\n isAutoplay?: boolean\n ) => this.jumpToScenarioElement(scElement, progress, isAutoplay),\n onToggleFullscreen: () => this.playerContainerManager.toggleFullscreen(),\n onSendError: (error: VintomError) => this.playerAPI.logUserError(error)\n });\n\n this.ctaLayerManager.registerObserver({\n onCTAShow: (cta) => this.playerAPI.onCTAShow(cta)\n });\n }\n\n}","import { PlayerScenarioRunnerAPI } from \"@manager/PlayerManager\";\r\nimport { inject, injectable } from \"inversify\";\r\nimport { ScenarioElement } from \"../../model/playerConfiguration/ScenarioElement\";\r\nimport { PlaybackData } from \"../../model/playerState/PlaybackData\";\r\nimport { ScenarioElementPlayOptions } from \"../../model/scenarioElementPlayOptions/ScenarioElementPlayOptions\";\r\nimport { ScenarioGlobalState } from \"../../model/scenarioGlobalState/ScenarioGlobalState\";\r\nimport { TYPES } from \"../di/types\";\r\nimport { ResourcesCache } from \"../loader/scenarioLoader/ResourcesCache\";\r\nimport { ScenarioExecutor } from \"./ScenarioExecutor\";\r\n\r\nexport interface ScenarioRunner {\r\n setPlayerAPIDelegate(playerAPI: PlayerScenarioRunnerAPI): void;\r\n run(\r\n scenarioGlobalState: ScenarioGlobalState,\r\n scenarioElement: ScenarioElement,\r\n scenarioResources: Promise,\r\n options: ScenarioElementPlayOptions): void;\r\n getPlaybackData(): PlaybackData;\r\n getScenarioGlobalState(): ScenarioGlobalState;\r\n play(): void;\r\n pause(): void;\r\n performAction(ctaId: number, actionId: number, ...args: any[]): void;\r\n jumpToScenarioElement(\r\n scenarioElement: ScenarioElement,\r\n progress: number,\r\n isAutoplay?: boolean\r\n ): void;\r\n}\r\n\r\n@injectable()\r\nexport class ScenarioRunnerImpl implements ScenarioRunner {\r\n\r\n private currentActiveExecutor: ScenarioExecutor;\r\n private allExecutors: ScenarioExecutor[];\r\n\r\n constructor(\r\n @inject(TYPES.scenarioRunner.CTAOnlyScenarioExecutor) private ctaOnlyScenarioExecutor: ScenarioExecutor,\r\n @inject(TYPES.scenarioRunner.VideoDrivenScenarioExecutor) private videoDrivenScenarioExecutor: ScenarioExecutor,\r\n @inject(TYPES.scenarioRunner.AnimationDrivenScenarioExecutor) private animationDrivenScenarioExecutor: ScenarioExecutor\r\n ) {\r\n this.allExecutors = [ctaOnlyScenarioExecutor, videoDrivenScenarioExecutor, animationDrivenScenarioExecutor];\r\n }\r\n\r\n setPlayerAPIDelegate(playerAPI: PlayerScenarioRunnerAPI) {\r\n for (const executor of this.allExecutors) {\r\n executor.setPlayerAPIDelegate(playerAPI);\r\n }\r\n }\r\n\r\n run(\r\n scenarioGlobalState: ScenarioGlobalState,\r\n scenarioElement: ScenarioElement,\r\n scenarioResources: Promise,\r\n options: ScenarioElementPlayOptions): Promise {\r\n\r\n scenarioGlobalState = scenarioGlobalState.withNowPlaying(scenarioElement);\r\n\r\n for (const executor of this.allExecutors) {\r\n executor.cancel();\r\n }\r\n\r\n if (scenarioElement.video) {\r\n this.currentActiveExecutor = this.videoDrivenScenarioExecutor;\r\n } else if (scenarioElement.animations.length) {\r\n this.currentActiveExecutor = this.animationDrivenScenarioExecutor;\r\n } else {\r\n this.currentActiveExecutor = this.ctaOnlyScenarioExecutor;\r\n }\r\n\r\n return this.currentActiveExecutor.intializeAndRun(scenarioGlobalState, scenarioResources, options);\r\n }\r\n\r\n getPlaybackData(): PlaybackData {\r\n return this.currentActiveExecutor && this.currentActiveExecutor.getPlaybackData();\r\n }\r\n\r\n getScenarioGlobalState(): ScenarioGlobalState {\r\n return this.currentActiveExecutor && this.currentActiveExecutor.getScenarioGlobalState();\r\n }\r\n\r\n play(): void {\r\n this.currentActiveExecutor && this.currentActiveExecutor.play();\r\n }\r\n\r\n pause(): void {\r\n this.currentActiveExecutor && this.currentActiveExecutor.pause();\r\n }\r\n\r\n performAction(ctaId: number, actionId: number, ...args: any[]): void {\r\n this.currentActiveExecutor && this.currentActiveExecutor.performAction(ctaId, actionId, args);\r\n }\r\n\r\n jumpToScenarioElement(scenarioElement: ScenarioElement, progress: number, isAutoplay?: boolean): void {\r\n this.currentActiveExecutor && this.currentActiveExecutor.jumpToScenarioElement(scenarioElement, progress, isAutoplay);\r\n }\r\n\r\n}\r\n","import { PlayerScenarioRunnerAPI } from \"@manager/PlayerManager\";\nimport { inject, injectable } from \"inversify\";\nimport ReactDOM from \"react-dom\";\nimport { VintomError } from \"../../api/model/error/VintomError\";\nimport { ScenarioElement } from \"../../model/playerConfiguration/ScenarioElement\";\nimport { Subtitle } from \"../../model/playerConfiguration/Subtitle\";\nimport { PlaybackData } from \"../../model/playerState/PlaybackData\";\nimport { ScenarioElementPlayOptions } from \"../../model/scenarioElementPlayOptions/ScenarioElementPlayOptions\";\nimport { ScenarioGlobalState } from \"../../model/scenarioGlobalState/ScenarioGlobalState\";\nimport { SubtitlesText } from \"../../model/subtitles/SubtitlesText\";\nimport { TYPES } from \"../di/types\";\nimport { ResourcesCache } from \"../loader/scenarioLoader/ResourcesCache\";\nimport { PreferencesStorage } from \"../preferencesStorage/PreferencesStorage\";\nimport { ControlsLayerManager } from \"./layerManager/ControlsLayerManager\";\nimport { CTALayerManager } from \"./layerManager/CTALayerManager\";\nimport { DependentAnimationLayerManager } from \"./layerManager/DependentAnimationLayerManager\";\nimport { MusicLayerManager } from \"./layerManager/MusicLayerManager\";\nimport { PlayerContainerManager } from \"./layerManager/PlayerContainerManager\";\nimport { PosterLayerManager } from \"./layerManager/PosterLayerManager\";\nimport { VideoLayerManager } from \"./layerManager/VideoLayerManager\";\nimport { ScenarioExecutor } from \"./ScenarioExecutor\";\n\n@injectable()\nexport class VideoDrivenScenarioExecutorImpl implements ScenarioExecutor {\n\n private playerAPI: PlayerScenarioRunnerAPI;\n private animationFrameHandle: number;\n private scenarioGlobalState: ScenarioGlobalState;\n\n constructor(\n @inject(TYPES.scenarioRunner.layerManager.PlayerContainerManager) private playerContainerManager: PlayerContainerManager,\n @inject(TYPES.scenarioRunner.layerManager.VideoLayerManager) private videoLayerManager: VideoLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.DependentAnimationLayerManager) private animationLayerManager: DependentAnimationLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.CTALayerManager) private ctaLayerManager: CTALayerManager,\n @inject(TYPES.scenarioRunner.layerManager.ControlsLayerManager) private controlsLayerManager: ControlsLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.PosterLayerManager) private posterLayerManager: PosterLayerManager,\n @inject(TYPES.scenarioRunner.layerManager.MusicLayerManager) private musicLayerManager: MusicLayerManager,\n @inject(TYPES.preferencesStorage.PreferencesStorage) private preferencesStorage: PreferencesStorage) {}\n\n setPlayerAPIDelegate(playerAPI: PlayerScenarioRunnerAPI) {\n this.playerAPI = playerAPI;\n }\n\n cancel(): void {\n if (this.animationFrameHandle !== undefined) {\n cancelAnimationFrame(this.animationFrameHandle);\n }\n }\n\n intializeAndRun(\n scenarioGlobalState: ScenarioGlobalState,\n scenarioResources: Promise,\n options: ScenarioElementPlayOptions): Promise {\n\n this.scenarioGlobalState = scenarioGlobalState;\n return this.initializeScenarioElement(scenarioGlobalState, scenarioResources, options.progress)\n .then(() => {\n this.runSyncLoop();\n if (options.isAutoplay) {\n this.controlsLayerManager.play();\n } else {\n this.controlsLayerManager.pause();\n }\n });\n }\n\n getPlaybackData(): PlaybackData {\n const isPlaying = this.videoLayerManager.getIsPlaying();\n const time = this.videoLayerManager.getCurrentSeekTime();\n const duration = this.videoLayerManager.getTotalTime();\n const volume = this.videoLayerManager.getVolume();\n\n return { isPlaying, time, duration, volume };\n }\n\n getScenarioGlobalState(): ScenarioGlobalState {\n return this.scenarioGlobalState;\n }\n\n play(): void {\n this.controlsLayerManager.play();\n }\n\n pause(): void {\n this.controlsLayerManager.pause();\n }\n\n performAction(ctaId: number, actionId: number, ...args: any[]): void {\n this.ctaLayerManager.performAction(ctaId, actionId, args);\n }\n\n jumpToScenarioElement(scenarioElement: ScenarioElement, progress: number): void {\n this.videoLayerManager.pause();\n const volume = this.videoLayerManager.getVolume();\n this.musicLayerManager.changeVolume(volume);\n cancelAnimationFrame(this.animationFrameHandle);\n this.posterLayerManager.showPosterOrSnapshot(scenarioElement);\n setTimeout(() => this.playerAPI.loadScenarioElement(scenarioElement, { isAutoplay: true, progress }), 50);\n }\n\n private initializeScenarioElement(scenarioGlobalState: ScenarioGlobalState, scenarioResources: Promise, progress: number):\n Promise {\n\n this.resetObservers();\n\n const scenarioPath = scenarioGlobalState.scenarioPath;\n this.posterLayerManager.newScenarioElement(scenarioGlobalState);\n this.videoLayerManager.newScenarioElement(scenarioPath);\n this.controlsLayerManager.newScenarioElement(scenarioPath);\n this.controlsLayerManager.showLoader();\n this.ctaLayerManager.newScenarioElement(scenarioGlobalState);\n this.animationLayerManager.newScenarioElement(scenarioPath);\n\n return scenarioResources.then((resourcesCache) => {\n\n this.posterLayerManager.resourcesLoaded(resourcesCache);\n if (!this.posterLayerManager.getIsShowingPoster() && progress === 0) {\n this.posterLayerManager.showCachedPoster(scenarioPath.currentElement.poster);\n }\n\n const videoDuration = this.videoLayerManager.loadVideoAndGetDuration(progress);\n\n return videoDuration.then((duration) => {\n\n this.animationLayerManager.resourcesLoaded(resourcesCache, duration);\n\n this.ctaLayerManager.resourcesLoaded(resourcesCache, duration);\n\n this.videoLayerManager.changeVolume(scenarioGlobalState.volume);\n this.videoLayerManager.changeMuted(scenarioGlobalState.isMuted);\n if (scenarioGlobalState.scenarioPath.currentElement.hasSubtitles) {\n this.videoLayerManager.activateSubtitles(this.scenarioGlobalState.selectedSubtitles &&\n this.scenarioGlobalState.selectedSubtitles.source);\n }\n\n this.controlsLayerManager.setTotalTime(duration);\n this.controlsLayerManager.changeVolume(scenarioGlobalState.volume);\n this.controlsLayerManager.changeIsMuted(scenarioGlobalState.isMuted);\n if (scenarioGlobalState.scenarioPath.currentElement.hasSubtitles) {\n this.controlsLayerManager.selectSubtitleSource(this.scenarioGlobalState.selectedSubtitles);\n }\n\n });\n });\n }\n\n private resetObservers() {\n this.playerContainerManager.registerObserver({\n onPlayerInteractionEnd: () => this.controlsLayerManager.userInteractionEnded(),\n onPlayerInteraction: () => this.controlsLayerManager.userInteractedWithPlayer(),\n onPlayerClick: () => this.controlsLayerManager.userClickedPlayer(),\n onPlayerContextMenu: (x: number, y: number) => this.controlsLayerManager.showPlayerInfoTooltip(x, y)\n });\n\n this.videoLayerManager.registerObserver({\n initializeMusic: () => {\n this.musicLayerManager.play(this.getPlaybackData().time, this.getPlaybackData().duration); \n },\n onNearTheEnd: (turnOffFadeOut: boolean) => {\n if (turnOffFadeOut) {\n this.musicLayerManager.pause();\n }\n this.musicLayerManager.fadeOut();\n },\n onEnded: () => {\n this.controlsLayerManager.scenarioElementEnded();\n this.posterLayerManager.scenarioElementEnded();\n this.playerAPI.onScenarioElementEnd();\n },\n onError: (error) => this.playerAPI.onError(error),\n onStarted: () => this.playerAPI.onScenarioElementStart(),\n onSubtitlesChange: (subtitles: SubtitlesText) => this.controlsLayerManager.displaySubtitles(subtitles),\n onTotalTimeChange: (totalTime) => {\n this.animationLayerManager.setTotalTime(totalTime);\n this.ctaLayerManager.setTotalTime(totalTime);\n this.controlsLayerManager.setTotalTime(totalTime);\n },\n onPlay: () => this.playerAPI.onPlay(),\n onPause: () => this.playerAPI.onPause()\n });\n\n this.controlsLayerManager.registerObserver({\n onPause: () => { \n this.videoLayerManager.pause(); \n this.musicLayerManager.pause();\n },\n onSeekStart: () => {\n this.videoLayerManager.pause();\n this.musicLayerManager.pause();\n this.playerAPI.onSeek();\n },\n onPlay: () => { \n this.videoLayerManager.play(); \n const volume = this.videoLayerManager.getVolume();\n this.musicLayerManager.changeVolume(volume); \n this.musicLayerManager.play(this.getPlaybackData().time, this.getPlaybackData().duration);\n }, \n onReloadFrame: () => this.videoLayerManager.reloadFrame(),\n onSeekTo: (time) => {\n this.videoLayerManager.moveTo(time);\n this.musicLayerManager.moveTo(time);\n },\n onVolumeChange: (volume: number) => {\n this.preferencesStorage.saveVolumePreference(volume);\n this.scenarioGlobalState = this.scenarioGlobalState.withVolume(volume);\n this.videoLayerManager.changeVolume(volume);\n this.musicLayerManager.changeVolume(volume);\n },\n onMutedChange: (isMuted: boolean) => {\n this.scenarioGlobalState = this.scenarioGlobalState.withMuted(isMuted);\n this.videoLayerManager.changeMuted(isMuted);\n this.musicLayerManager.changeMuted(isMuted);\n },\n onSubtitleSourceSelected: (subtitle: Subtitle) => {\n this.preferencesStorage.saveSubtitlesPreference(!!subtitle, subtitle && subtitle.label);\n this.scenarioGlobalState = this.scenarioGlobalState.withSelectedSubtitles(subtitle);\n this.videoLayerManager.activateSubtitles(this.scenarioGlobalState.selectedSubtitles &&\n this.scenarioGlobalState.selectedSubtitles.source);\n },\n onJumpToScenarioElement: (scElement: ScenarioElement, progress: number) => this.jumpToScenarioElement(scElement, progress),\n onToggleFullscreen: () => this.playerContainerManager.toggleFullscreen(),\n onSendError: (error: VintomError) => this.playerAPI.logUserError(error)\n });\n\n this.ctaLayerManager.registerObserver({\n onCTAShow: (cta) => this.playerAPI.onCTAShow(cta)\n });\n }\n\n private runSyncLoop() {\n this.animationFrameHandle = requestAnimationFrame(() => {\n try {\n const currentSeekTime = this.videoLayerManager.getCurrentSeekTime();\n const currentFrameTime = this.videoLayerManager.getCurrentFrameTime();\n const bufferedTime = this.videoLayerManager.getBufferedTime();\n const totalTime = this.videoLayerManager.getTotalTime();\n const bandwidth = this.videoLayerManager.getBandwidth();\n const qualityLevels = this.videoLayerManager.getQualityLevels();\n const isFullyLoaded = this.videoLayerManager.getIsFullyLoaded();\n const isPlaying = this.videoLayerManager.getIsPlaying();\n const isWaiting = this.videoLayerManager.getIsWaiting();\n\n ReactDOM.unstable_batchedUpdates(() => {\n\n this.ctaLayerManager.moveTo(currentFrameTime);\n\n this.controlsLayerManager.moveTo(currentSeekTime);\n this.controlsLayerManager.updateBufferedTime(bufferedTime);\n this.controlsLayerManager.updateQualityLevels(qualityLevels);\n this.controlsLayerManager.updateBandwidth(bandwidth);\n\n this.playerAPI.onProgress(currentFrameTime / totalTime);\n\n if (isFullyLoaded) {\n this.animationLayerManager.moveTo(currentFrameTime);\n }\n\n if (isFullyLoaded && this.videoLayerManager.getIsPlaying()) {\n this.posterLayerManager.hidePoster();\n }\n\n if (isWaiting) {\n this.controlsLayerManager.showLoader();\n } else {\n this.controlsLayerManager.hideLoader();\n }\n });\n\n this.runSyncLoop();\n } catch (e) {\n this.playerAPI.onError(new VintomError(\"runtimeError\", e.stack.toString()));\n }\n\n });\n }\n\n}\n","import { ControlsLayer } from \"@manager/layer/ControlsLayer\";\nimport { PosterLayer } from \"@manager/layer/PosterLayer\";\nimport { CTALayerObserver } from \"@manager/layerObserver/CTALayerObserver\";\nimport { ResourcesCache } from \"@manager/loader/scenarioLoader/ResourcesCache\";\nimport { inject, injectable } from \"inversify\";\nimport { CTA } from \"../../../model/playerConfiguration/CTA\";\nimport { ScenarioGlobalState } from \"../../../model/scenarioGlobalState/ScenarioGlobalState\";\nimport { ScenarioPath } from \"../../../model/scenarioPath/ScenarioPath\";\nimport { TYPES } from \"../../di/types\";\nimport { CTALayer } from \"../../layer/CTALayer\";\nimport { CachedCTAResource } from \"../../loader/scenarioLoader/CachedCTAResource\";\nimport { ScenarioTimeHelper } from \"../util/ScenarioTimeHelper\";\n\nexport interface CTALayerManager {\n newScenarioElement(scenarioGlobalState: ScenarioGlobalState): void;\n resourcesLoaded(resourcesCache: ResourcesCache, totalTime: number): void;\n setTotalTime(totalTime: number): void;\n moveTo(time: number): void;\n performAction(ctaId: number, actionId: number, ...args: any[]): void;\n registerObserver(observer: CTALayerObserver): void;\n displayAllCTAsForCTAOnlyElemnt(): void;\n}\n\n@injectable()\nexport class CTALayerManagerImpl implements CTALayerManager { \n private observer: CTALayerObserver;\n private reusableCTAs: number[];\n private currentCTAs: CTA[] = [];\n private scenarioPath: ScenarioPath;\n private ctasByType: Map;\n private totalTime: number;\n\n constructor(\n @inject(TYPES.layer.CTALayer) private layer: CTALayer,\n @inject(TYPES.layer.PosterLayer) private posterLayer: PosterLayer,\n @inject(TYPES.layer.ControlsLayer) private controlsLayer: ControlsLayer) { }\n\n newScenarioElement(scenarioGlobalState: ScenarioGlobalState): void {\n this.scenarioPath = scenarioGlobalState.scenarioPath;\n this.layer.setAspectRatio(scenarioGlobalState.aspectRatio);\n }\n\n resourcesLoaded(resourcesCache: ResourcesCache, totalTime: number): void {\n this.ctasByType = resourcesCache.ctasByType;\n this.totalTime = totalTime;\n\n this.intializeReusableCTAs();\n this.removeCTAs(this.currentCTAs);\n }\n\n setTotalTime(totalTime: number): void {\n this.totalTime = totalTime;\n }\n\n registerObserver(observer: CTALayerObserver): void {\n this.observer = observer;\n }\n\n moveTo(time: number): void {\n const ctas = this.findCTAsAtTime(time);\n this.displayCTAs(ctas);\n this.controlsLayer.setIsPlaybackBlockingCTADisplayed(ctas.length > 0);\n }\n\n performAction(ctaId: number, actionId: number, ...args: any[]): void {\n this.layer.performAction(ctaId, actionId, args);\n }\n\n displayAllCTAsForCTAOnlyElemnt(): void {\n const ctas = this.scenarioPath.currentElement.ctas;\n const playbackStoppingCTAs = ctas.filter((cta) => cta.stopsPlayback);\n this.displayCTAs(ctas);\n\n this.controlsLayer.setIsPlaybackBlockingCTADisplayed(playbackStoppingCTAs.length > 0);\n }\n\n private intializeReusableCTAs() {\n if (!this.reusableCTAs) {\n\n const hashToCTACount = new Map();\n for (const scElem of this.scenarioPath.allElements) {\n for (const cta of scElem.ctas) {\n const countForHash = hashToCTACount.get(cta.hashCode) || 0;\n hashToCTACount.set(cta.hashCode, countForHash + 1);\n }\n }\n\n const duplicatedCTAHashes = Array.from(hashToCTACount.entries())\n .filter((entry) => entry[1] > 1)\n .map((entry) => entry[0]);\n\n this.reusableCTAs = duplicatedCTAHashes;\n }\n }\n\n private displayCTAs(ctas: CTA[]): void {\n\n const ctaHashesToDisplay = ctas.map((cta) => cta.hashCode);\n\n const ctasToRemove = this.currentCTAs.filter((cta) => ctaHashesToDisplay.indexOf(cta.hashCode) < 0);\n const ctasToLoad = ctas.filter((cta) => !this.currentCTAs.find((currCTA) => currCTA.id === cta.id));\n\n this.removeCTAs(ctasToRemove);\n this.loadCTAs(ctasToLoad);\n\n }\n\n private removeCTAs(ctasToRemove: CTA[]): void {\n for (const ctaToRemove of ctasToRemove) {\n this.currentCTAs = this.currentCTAs.filter((cta) => !ctasToRemove.find((toRemove) => toRemove.id === cta.id));\n this.layer.removeCTA(ctaToRemove.id, ctaToRemove.hashCode);\n }\n\n const ctaWithPoster = ctasToRemove.find((cta) => !!cta.poster);\n if (ctaWithPoster) {\n this.posterLayer.hidePoster();\n }\n\n }\n\n private loadCTAs(ctas: CTA[]): void {\n for (const cta of ctas) {\n const cachedCTAResource = this.ctasByType.get(cta.type);\n if (cachedCTAResource) {\n this.currentCTAs.push(cta);\n const isCTAReusable = this.reusableCTAs.indexOf(cta.hashCode) > -1;\n this.layer.loadCTA(cta.hashCode, isCTAReusable, cta.id, cachedCTAResource, cta.customAttributes);\n\n this.observer.onCTAShow(cta);\n }\n }\n\n const ctaWithPoster = ctas.find((cta) => !!cta.poster);\n const posterToShow = ctaWithPoster && ctaWithPoster.poster;\n if (posterToShow) {\n this.posterLayer.showPoster(posterToShow);\n }\n }\n\n private findCTAsAtTime(time: number): CTA[] {\n \n const ctasAtTime = this.scenarioPath.currentElement.ctas\n .filter((cta) => cta.triggerType === \"RANGE\")\n .filter((cta) => ScenarioTimeHelper.getTimeFromVideoStart(this.totalTime, cta.visibilityRange.startTime) <= time &&\n (cta.visibilityRange.endTime === \"END\" ||\n ScenarioTimeHelper.getTimeFromVideoStart(this.totalTime, cta.visibilityRange.endTime) >= time));\n \n if (time >= this.totalTime) {\n const ctasAtEnd = this.scenarioPath.currentElement.ctas\n .filter((cta) => cta.triggerType === \"END\");\n return ctasAtTime.concat(ctasAtEnd);\n }\n return ctasAtTime;\n }\n}","import { inject, injectable } from \"inversify\";\r\nimport { VintomError } from \"../../../api/model/error/VintomError\";\r\nimport { PlayerControls } from \"../../../model/playerConfiguration/PlayerControls\";\r\nimport { Subtitle } from \"../../../model/playerConfiguration/Subtitle\";\r\nimport { QualityLevel } from \"../../../model/qualityLevel/QualityLevel\";\r\nimport { ScenarioPath } from \"../../../model/scenarioPath/ScenarioPath\";\r\nimport { SubtitlesText } from \"../../../model/subtitles/SubtitlesText\";\r\nimport { TYPES } from \"../../di/types\";\r\nimport { ControlsLayer } from \"../../layer/ControlsLayer\";\r\nimport { ControlsLayerObserver } from \"../../layerObserver/ControlsLayerObserver\";\r\n\r\nexport interface ControlsLayerManager {\r\n newScenarioElement(scenarioPath: ScenarioPath): void;\r\n setTotalTime(totalTime: number): void;\r\n setConfiguration(configuration: PlayerControls, isAdminMode: boolean): void;\r\n play(): void;\r\n pause(): void;\r\n moveTo(time: number): void;\r\n updateBufferedTime(time: number): void;\r\n showLoader(): void;\r\n hideLoader(): void;\r\n changeVolume(volume: number): void;\r\n changeIsMuted(isMuted: boolean): void;\r\n selectSubtitleSource(subtitle: Subtitle): void;\r\n displaySubtitles(subtitles: SubtitlesText): void;\r\n scenarioElementEnded(): void;\r\n userInteractionEnded(): void;\r\n userInteractedWithPlayer(): void;\r\n userClickedPlayer(): void;\r\n registerObserver(observer: ControlsLayerObserver): void;\r\n showPlayerInfoTooltip(x: number, y: number): void;\r\n showMessage(message: string | VintomError): void;\r\n showLoadingPage(loadingPageVisible: boolean): void;\r\n updateBandwidth(bandwidth: number): void;\r\n updateQualityLevels(qualityLevels: QualityLevel[]): void;\r\n}\r\n\r\n@injectable()\r\nexport class ControlsLayerManagerImpl implements ControlsLayerManager {\r\n\r\n constructor(@inject(TYPES.layer.ControlsLayer) private layer: ControlsLayer) {}\r\n\r\n newScenarioElement(scenarioPath: ScenarioPath): void {\r\n const scenarioElement = scenarioPath.currentElement;\r\n if (scenarioElement.video && scenarioElement.video.subtitles) {\r\n this.layer.resetScenarioElement(scenarioPath, scenarioElement.video.subtitles);\r\n } else {\r\n this.layer.resetScenarioElement(scenarioPath);\r\n }\r\n }\r\n\r\n setTotalTime(totalTime: number): void {\r\n this.layer.setTotalScenarioTime(totalTime);\r\n }\r\n\r\n setConfiguration(configuration: PlayerControls, isAdminMode: boolean) {\r\n this.layer.setConfiguration(configuration, isAdminMode);\r\n }\r\n\r\n play() {\r\n this.layer.play();\r\n }\r\n\r\n pause() {\r\n this.layer.pause();\r\n }\r\n\r\n moveTo(time: number): void {\r\n this.layer.moveTo(time);\r\n }\r\n\r\n updateBufferedTime(time: number): void {\r\n this.layer.updateBufferedTime(time);\r\n }\r\n\r\n showLoader(): void {\r\n this.layer.showLoader();\r\n }\r\n\r\n hideLoader(): void {\r\n this.layer.hideLoader();\r\n }\r\n\r\n registerObserver(observer: ControlsLayerObserver): void {\r\n this.layer.registerObserver(observer);\r\n }\r\n\r\n changeVolume(volume: number) {\r\n this.layer.setVolume(volume);\r\n }\r\n\r\n changeIsMuted(isMuted: boolean): void {\r\n this.layer.setIsMuted(isMuted);\r\n }\r\n\r\n selectSubtitleSource(subtitle: Subtitle): void {\r\n this.layer.selectSubtitleSource(subtitle);\r\n }\r\n\r\n displaySubtitles(subtitles: SubtitlesText): void {\r\n this.layer.displaySubtitles(subtitles);\r\n }\r\n\r\n scenarioElementEnded() {\r\n this.layer.scenarioEnded();\r\n }\r\n\r\n userInteractionEnded() {\r\n this.layer.userInteractionEnded();\r\n }\r\n\r\n userInteractedWithPlayer() {\r\n this.layer.userInteractedWithPlayer();\r\n }\r\n\r\n userClickedPlayer() {\r\n this.layer.userClickedPlayer();\r\n }\r\n\r\n showPlayerInfoTooltip(x: number, y: number) {\r\n this.layer.showPlayerInfoTooltip(x, y);\r\n }\r\n\r\n showMessage(message: string | VintomError): void {\r\n this.layer.showMessage(message);\r\n }\r\n\r\n showLoadingPage(loadingPageVisible: boolean): void {\r\n this.layer.showLoadingPage(loadingPageVisible);\r\n }\r\n\r\n updateBandwidth(bandwidth: number): void {\r\n this.layer.setBandwidth(bandwidth);\r\n }\r\n\r\n updateQualityLevels(qualityLevels: QualityLevel[]): void {\r\n this.layer.setQualityLevels(qualityLevels);\r\n }\r\n\r\n}\r\n","import { ResourcesCache } from \"@manager/loader/scenarioLoader/ResourcesCache\";\nimport { inject, injectable } from \"inversify\";\nimport { Animation } from \"../../../model/playerConfiguration/Animation\";\nimport { ScenarioElement } from \"../../../model/playerConfiguration/ScenarioElement\";\nimport { ScenarioPath } from \"../../../model/scenarioPath/ScenarioPath\";\nimport { TYPES } from \"../../di/types\";\nimport { AnimationLayer } from \"../../layer/AnimationLayer\";\nimport { ScenarioTimeHelper } from \"../util/ScenarioTimeHelper\";\n\nexport interface DependentAnimationLayerManager {\n newScenarioElement(scenarioPath: ScenarioPath): void;\n resourcesLoaded(resourcesCache: ResourcesCache, totalTime: number): void;\n setTotalTime(totalTime: number): void;\n moveTo(time: number): void;\n}\n\n@injectable()\nexport class DependentAnimationLayerManagerImpl implements DependentAnimationLayerManager {\n\n private scenarioElement: ScenarioElement;\n private animationsBySrc: Map;\n private totalTime: number;\n\n private currentAnimationSources: string[] = [];\n\n constructor(@inject(TYPES.layer.AnimationLayer) private layer: AnimationLayer) {}\n\n newScenarioElement(scenarioPath: ScenarioPath): void {\n this.scenarioElement = scenarioPath.currentElement;\n this.layer.registerObserver(undefined);\n }\n\n resourcesLoaded(resourcesCache: ResourcesCache, totalTime: number): void {\n this.animationsBySrc = resourcesCache.animationsBySrc;\n this.totalTime = totalTime;\n if (this.findAnimationsAtTime(0).filter((animation) => animation.displayAbovePoster === true).length > 0) {\n this.moveTo(1);\n }\n }\n\n setTotalTime(totalTime: number): void {\n this.totalTime = totalTime;\n }\n\n moveTo(time: number): void {\n\n const timeMillis = time * 1000;\n const animations = this.findAnimationsAtTime(timeMillis);\n const animationsToLoad = animations.filter((animation) => this.currentAnimationSources.indexOf(animation.src) === -1);\n\n const animationSources = animations.map((animation) => animation.src);\n const animationToRemoveSources = this.currentAnimationSources.filter((src) => animationSources.indexOf(src) === -1);\n\n for (const animation of animationsToLoad) {\n this.layer.loadAnimation(animation.src, this.animationsBySrc.get(animation.src), animation.animationBlur);\n }\n for (const src of animationToRemoveSources) {\n this.layer.removeAnimation(src);\n }\n\n const animationToLoadSources = animationsToLoad.map((animation) => animation.src);\n this.currentAnimationSources = this.currentAnimationSources.concat(animationToLoadSources);\n this.currentAnimationSources = this.currentAnimationSources.filter((src) => animationToRemoveSources.indexOf(src) === -1);\n\n const currentAnimations = animations.filter((animation) => this.currentAnimationSources.indexOf(animation.src) > -1);\n for (const animation of currentAnimations) {\n this.layer.moveTo(animation.src, this.getAnimationRelativeTime(timeMillis, animation));\n }\n }\n\n private findAnimationsAtTime(timeMillis: number): Animation[] {\n return this.scenarioElement.animations\n .filter((animation) => ScenarioTimeHelper.getTimeFromVideoStart(this.totalTime, animation.startTimeMillis) <= timeMillis &&\n (animation.endTimeMillis === undefined ||\n ScenarioTimeHelper.getTimeFromVideoStart(this.totalTime, animation.endTimeMillis) >= timeMillis));\n }\n\n private getAnimationRelativeTime(time: number, animation: Animation) {\n return time - animation.startTimeMillis;\n }\n}\n","import { ResourcesCache } from \"@manager/loader/scenarioLoader/ResourcesCache\";\r\nimport { inject, injectable } from \"inversify\";\r\nimport { ScenarioPath } from \"../../../model/scenarioPath/ScenarioPath\";\r\nimport { TYPES } from \"../../di/types\";\r\nimport { AnimationLayer } from \"../../layer/AnimationLayer\";\r\nimport { AnimationLayerObserver } from \"../../layerObserver/AnimationLayerObserver\";\r\n\r\nexport interface IndependentAnimationLayerManager {\r\n newScenarioElement(scenarioPath: ScenarioPath): void;\r\n resourcesLoaded(resourcesCache: ResourcesCache): void;\r\n getCurrentTime(): number;\r\n getTotalTime(): number;\r\n loadAnimation(): void;\r\n getIsPlaying(): boolean;\r\n play(): void;\r\n pause(): void;\r\n moveTo(time: number): void;\r\n registerObserver(observer: AnimationLayerObserver): void;\r\n}\r\n\r\n@injectable()\r\nexport class IndependentAnimationLayerManagerImpl implements IndependentAnimationLayerManager {\r\n\r\n private isPlaying: boolean = false;\r\n private animationJSON: any;\r\n private animationSrc: string;\r\n\r\n constructor(@inject(TYPES.layer.AnimationLayer) private layer: AnimationLayer) {}\r\n\r\n newScenarioElement(scenarioPath: ScenarioPath): void {\r\n this.animationSrc = scenarioPath.currentElement.animations[0].src;\r\n }\r\n\r\n resourcesLoaded(resourcesCache: ResourcesCache): void {\r\n this.animationJSON = resourcesCache.animationsBySrc.get(this.animationSrc);\r\n this.layer.clearAllAnimations();\r\n }\r\n\r\n getCurrentTime(): number {\r\n return this.layer.getAnimationCurrentTime(this.animationSrc);\r\n }\r\n\r\n getTotalTime(): number {\r\n return this.layer.getAnimationDuration(this.animationSrc);\r\n }\r\n\r\n loadAnimation(): void {\r\n this.layer.loadAnimation(this.animationSrc, this.animationJSON);\r\n }\r\n\r\n getIsPlaying(): boolean {\r\n return this.layer.getIsAnimationPlaying(this.animationSrc);\r\n }\r\n\r\n play(): void {\r\n this.isPlaying = true;\r\n this.layer.playAnimation(this.animationSrc);\r\n }\r\n\r\n pause(): void {\r\n this.isPlaying = false;\r\n this.layer.pauseAnimation(this.animationSrc);\r\n }\r\n\r\n moveTo(time: number): void {\r\n const timeMillis = time * 1000;\r\n this.layer.moveTo(this.animationSrc, timeMillis, this.isPlaying);\r\n }\r\n\r\n registerObserver(observer: AnimationLayerObserver): void {\r\n this.layer.registerObserver(observer);\r\n }\r\n}","import { inject, injectable } from \"inversify\";\r\nimport { ScenarioElement } from \"../../../model/playerConfiguration/ScenarioElement\";\r\nimport { ScenarioPath } from \"../../../model/scenarioPath/ScenarioPath\";\r\nimport { TYPES } from \"../../di/types\";\r\nimport { MusicLayer } from \"../../layer/MusicLayer\";\r\nexport interface MusicLayerManager {\r\n play(videoCurrentTime: number, videoDuration: number): void;\r\n fadeOut(): void;\r\n changeSource(src: string): void;\r\n pause(): void;\r\n moveTo(time: number): void;\r\n changeVolume(volume: number): void;\r\n changeMuted(isMuted: boolean): void;\r\n initializeLayer(): void;\r\n setMusicTime(startTime: number, endTime: number): void;\r\n}\r\n@injectable()\r\nexport class MusicLayerManagerImpl implements MusicLayerManager {\r\n private scenarioElement: ScenarioElement;\r\n constructor(@inject(TYPES.layer.MusicLayer) private layer: MusicLayer) {}\r\n\r\n play(videoCurrentTime: number, videoDuration: number): void {\r\n this.layer.play(videoCurrentTime, videoDuration);\r\n }\r\n\r\n pause(): void {\r\n this.layer.pause();\r\n }\r\n\r\n fadeOut(): void {\r\n this.layer.fadeOut();\r\n }\r\n\r\n changeSource(src: string): void {\r\n this.layer.changeSource(src);\r\n }\r\n\r\n moveTo(time: number): void {\r\n this.layer.moveTo(time);\r\n }\r\n \r\n changeVolume(volume: number): void {\r\n this.layer.changeVolume(volume);\r\n }\r\n\r\n changeMuted(isMuted: boolean): void {\r\n this.layer.changeMuted(isMuted);\r\n }\r\n\r\n initializeLayer(): void {\r\n this.layer.initializeLayer();\r\n }\r\n\r\n setMusicTime(startTime: number, endTime: number): void {\r\n this.layer.setMusicTime(startTime, endTime);\r\n }\r\n}","import { inject, injectable } from \"inversify\";\r\nimport { PlayerControls } from \"../../../model/playerConfiguration/PlayerControls\";\r\nimport { TYPES } from \"../../di/types\";\r\nimport { PlayerContainer } from \"../../layer/PlayerContainer\";\r\nimport { PlayerContainerObserver } from \"../../layerObserver/PlayerContainerObserver\";\r\n\r\nexport interface PlayerContainerManager {\r\n registerObserver(observer: PlayerContainerObserver): void;\r\n toggleFullscreen(): void;\r\n setConfiguration(configuration: PlayerControls): void;\r\n}\r\n\r\n@injectable()\r\nexport class PlayerContainerManagerImpl implements PlayerContainerManager {\r\n\r\n constructor(@inject(TYPES.layer.PlayerContainer) private container: PlayerContainer) {}\r\n\r\n registerObserver(observer: PlayerContainerObserver) {\r\n this.container.registerObserver(observer);\r\n }\r\n\r\n toggleFullscreen() {\r\n this.container.toggleFullscreen();\r\n }\r\n\r\n setConfiguration(configuration: PlayerControls) {\r\n this.container.setConfiguration(configuration);\r\n }\r\n}","import { inject, injectable } from \"inversify\";\nimport { ScenarioElement } from \"../../../model/playerConfiguration/ScenarioElement\";\nimport { ScenarioGlobalState } from \"../../../model/scenarioGlobalState/ScenarioGlobalState\";\nimport { TYPES } from \"../../di/types\";\nimport { PosterLayer } from \"../../layer/PosterLayer\";\nimport { VideoLayer } from \"../../layer/VideoLayer\";\nimport { ResourcesCache } from \"../../loader/scenarioLoader/ResourcesCache\";\n\nexport interface PosterLayerManager {\n newScenarioElement(scenarioGlobalState: ScenarioGlobalState): void;\n resourcesLoaded(resourcesCache: ResourcesCache): void;\n scenarioElementEnded(): void;\n setCurrentVideoSnapshotAsPoster(): void;\n showPosterOrSnapshot(scenarioElement: ScenarioElement): void;\n hidePoster(): void;\n showInitialPoster(posterUrl: string, aspectRatio: number): void;\n showCachedPoster(posterUrl: string): void;\n getIsShowingPoster(): boolean;\n}\n\n@injectable()\nexport class PosterLayerManagerImpl implements PosterLayerManager {\n\n private scenarioElement: ScenarioElement;\n private resourcesCache: ResourcesCache;\n\n constructor(\n @inject(TYPES.layer.PosterLayer) private posterLayer: PosterLayer,\n @inject(TYPES.layer.VideoLayer) private videoLayer: VideoLayer) {}\n\n newScenarioElement(scenarioGlobalState: ScenarioGlobalState): void {\n this.scenarioElement = scenarioGlobalState.scenarioPath.currentElement;\n }\n\n resourcesLoaded(resourcesCache: ResourcesCache): void {\n this.resourcesCache = resourcesCache;\n if (this.scenarioElement.isCTAOnlyElement && this.scenarioElement.poster) {\n this.showCachedPoster(this.scenarioElement.poster);\n }\n }\n\n scenarioElementEnded(): void {\n if (this.scenarioElement.video) {\n const triggerTypeEndCTA = this.scenarioElement.ctas.find((cta) => cta.triggerType === \"END\");\n if (!triggerTypeEndCTA || !triggerTypeEndCTA.poster) {\n this.setCurrentVideoSnapshotAsPoster();\n }\n }\n }\n\n showPosterOrSnapshot(scenarioElement: ScenarioElement) {\n if (scenarioElement.poster) {\n this.doShowPoster(scenarioElement.poster);\n } else {\n this.setCurrentVideoSnapshotAsPoster();\n }\n }\n\n setCurrentVideoSnapshotAsPoster(): void {\n if (this.scenarioElement.video) {\n const videoSnapshot = this.videoLayer.captureSnapshot();\n if (videoSnapshot) {\n this.doShowPoster(videoSnapshot);\n }\n }\n }\n\n hidePoster(): void {\n this.posterLayer.hidePoster();\n }\n\n showInitialPoster(posterUrl: string, aspectRatio: number) {\n this.posterLayer.setAspectRatio(aspectRatio);\n // this poster isn't cached\n this.doShowPoster(posterUrl);\n }\n\n showCachedPoster(posterUrl: string) {\n const posterObjectUrl = this.resourcesCache.posterObjectUrlsByUrl.get(posterUrl);\n this.doShowPoster(posterObjectUrl);\n }\n\n getIsShowingPoster(): boolean {\n return this.posterLayer.getIsShowingPoster();\n }\n\n private doShowPoster(posterUrl: string): void {\n this.posterLayer.showPoster(posterUrl);\n }\n\n}","import { inject, injectable } from \"inversify\";\r\nimport { ScenarioElement } from \"../../../model/playerConfiguration/ScenarioElement\";\r\nimport { QualityLevel } from \"../../../model/qualityLevel/QualityLevel\";\r\nimport { ScenarioPath } from \"../../../model/scenarioPath/ScenarioPath\";\r\nimport { TYPES } from \"../../di/types\";\r\nimport { VideoLayer } from \"../../layer/VideoLayer\";\r\nimport { VideoLayerObserver } from \"../../layerObserver/VideoLayerObserver\";\r\n\r\nexport interface VideoLayerManager {\r\n newScenarioElement(scenarioPath: ScenarioPath): void;\r\n loadVideoAndGetDuration(progress: number): Promise;\r\n getCurrentSeekTime(): number;\r\n getCurrentFrameTime(): number;\r\n getBufferedTime(): number;\r\n getTotalTime(): number;\r\n getVolume(): number;\r\n getIsPlaying(): boolean;\r\n getIsFullyLoaded(): boolean;\r\n getIsWaiting(): boolean;\r\n play(): void;\r\n pause(): void;\r\n moveTo(time: number): void;\r\n reloadFrame(): void;\r\n changeVolume(volume: number): void;\r\n changeMuted(isMuted: boolean): void;\r\n getBandwidth(): number;\r\n getQualityLevels(): QualityLevel[];\r\n activateSubtitles(source: string): void;\r\n registerObserver(observer: VideoLayerObserver): void;\r\n initializeLayer(): void;\r\n hide(): void;\r\n setMusicTime(startTime: number, endTime: number): void;\r\n}\r\n\r\n@injectable()\r\nexport class VideoLayerManagerImpl implements VideoLayerManager {\r\n\r\n private scenarioElement: ScenarioElement;\r\n\r\n constructor(@inject(TYPES.layer.VideoLayer) private layer: VideoLayer) {}\r\n\r\n newScenarioElement(scenarioPath: ScenarioPath): void {\r\n this.scenarioElement = scenarioPath.currentElement;\r\n }\r\n\r\n loadVideoAndGetDuration(progress: number): Promise {\r\n return this.layer.loadVideo(this.scenarioElement.video.sources, this.scenarioElement.video.subtitles, progress)\r\n .then(() => this.layer.getTotalTime());\r\n }\r\n\r\n getCurrentSeekTime(): number {\r\n return this.layer.getCurrentSeekTime();\r\n }\r\n\r\n getCurrentFrameTime(): number {\r\n return this.layer.getCurrentFrameTime();\r\n }\r\n\r\n getBufferedTime(): number {\r\n return this.layer.getBufferedTime();\r\n }\r\n\r\n getTotalTime(): number {\r\n return this.layer.getTotalTime();\r\n }\r\n\r\n getVolume(): number {\r\n return this.layer.getVolume();\r\n }\r\n\r\n getIsPlaying(): boolean {\r\n return this.layer.getIsPlaying();\r\n }\r\n\r\n getIsFullyLoaded(): boolean {\r\n return this.layer.getIsFullyLoaded();\r\n }\r\n\r\n getIsWaiting(): boolean {\r\n return this.layer.getIsWaiting();\r\n }\r\n\r\n play(): void {\r\n this.layer.play();\r\n }\r\n\r\n pause(): void {\r\n this.layer.pause();\r\n }\r\n\r\n moveTo(time: number): void {\r\n this.layer.moveTo(time);\r\n }\r\n\r\n reloadFrame(): void {\r\n this.layer.reloadFrame();\r\n }\r\n\r\n changeVolume(volume: number): void {\r\n this.layer.changeVolume(volume);\r\n }\r\n\r\n changeMuted(isMuted: boolean): void {\r\n this.layer.changeMuted(isMuted);\r\n }\r\n\r\n getBandwidth(): number {\r\n return this.layer.getBandwidth();\r\n }\r\n\r\n getQualityLevels(): QualityLevel[] {\r\n return this.layer.getQualityLevels();\r\n }\r\n\r\n activateSubtitles(source: string): void {\r\n this.layer.activateSubtitles(source);\r\n }\r\n\r\n registerObserver(observer: VideoLayerObserver): void {\r\n this.layer.registerObserver(observer);\r\n }\r\n\r\n initializeLayer(): void {\r\n this.layer.initializeLayer();\r\n }\r\n\r\n hide(): void {\r\n this.layer.hide();\r\n }\r\n\r\n setMusicTime(startTime: number, endTime: number): void {\r\n this.layer.setMusicTime(startTime, endTime);\r\n }\r\n\r\n}","const getTimeFromVideoStart = (totalTime: number, time: number) => {\r\n return time < 0 ? totalTime + time : time;\r\n};\r\n\r\nexport const ScenarioTimeHelper = {\r\n getTimeFromVideoStart\r\n};\r\n","import { injectable } from \"inversify\";\nimport { Skin } from \"../../model/playerConfiguration/Skin\";\n\nexport interface ThemeUpdater {\n setTheme(skin: Skin): void;\n}\n\n@injectable()\nexport class ThemeUpdaterImpl implements ThemeUpdater {\n\n setTheme(skin?: Skin): void {\n if (!skin || skin.color === undefined) {\n return;\n }\n\n document.querySelector(\"body\").style.setProperty(\"--theme-color\", skin.color);\n }\n}","import { Field, JsonParseError, JsonParseErrorCode, Regexp } from \"sparkson\";\r\n\r\nexport class AnalyticsEndpoint {\r\n constructor(\r\n @Field(\"pr\") @Regexp(/^(GA|vintom)$/) public provider: \"GA\" | \"vintom\",\r\n @Field(\"st\", true) public gaServiceTracker?: string,\r\n @Field(\"vs\", true) public vintomServer?: string\r\n ) {\r\n this.validate();\r\n }\r\n\r\n private validate() {\r\n if (this.provider === \"GA\" && !this.gaServiceTracker) {\r\n throw new JsonParseError(\"Google Analytics endpoint has to have gaServiceTracker defined\", JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n if (this.provider === \"vintom\" && !this.vintomServer) {\r\n throw new JsonParseError(\"Vintom Analytics endpoint has to have vintomServer defined\", JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n }\r\n}","import { Field, RawJsonField } from \"sparkson\";\n\nexport class Animation {\n constructor(\n @Field(\"s\") public src: string,\n @Field(\"st\", true) public startTimeMillis: number = 0,\n @Field(\"et\", true) public endTimeMillis?: number,\n @Field(\"t\", true) public type: \"L\" = \"L\",\n @Field(\"da\", true) public displayAbovePoster: boolean = true,\n @Field(\"blr\", true) public animationBlur: string = \"0.6px\",\n @RawJsonField(\"c\", true) public customAttributes?: any,\n ) {}\n\n}","import stableStringify from \"json-stable-stringify\";\nimport { Field, JsonParseError, JsonParseErrorCode, RawJsonField, Regexp } from \"sparkson\";\nimport { StringHashCodeGenerator } from \"../../utils/StringHashCodeGenerator\";\nimport { VisibilityRange } from \"./VisibilityRange\";\n\nexport class CTA {\n hashCode: number;\n\n constructor(\n @Field(\"id\") public id: number,\n @Field(\"t\") public type: string,\n @Field(\"tt\") @Regexp(/^(RANGE|END)$/) public triggerType: \"RANGE\" | \"END\",\n @Field(\"p\", true) public poster?: string,\n @RawJsonField(\"c\", true) public customAttributes?: any,\n @Field(\"re\", true) public remarketingData?: string,\n @Field(\"vr\", true) public visibilityRange?: VisibilityRange,\n @Field(\"sp\", true) public stopsPlayback: boolean = true\n ) {\n this.validate();\n this.hashCode = StringHashCodeGenerator.hashCode(stableStringify(this.customAttributes || {}) + this.type);\n }\n\n private validate() {\n if (this.triggerType === \"RANGE\" && !this.visibilityRange) {\n throw new JsonParseError(\"visibilityRange has to be specified for \\\"RANGE\\\" triggerType\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n if (this.poster && this.triggerType !== \"END\") {\n throw new JsonParseError(\"Posters can be defined only for CTAs with triggerType 'END'\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n if (this.type === \"clickableArea\" || this.type === \"clickableButton\") {\n this.validateClickableAreaCustomAttributes();\n }\n }\n\n private validateClickableAreaCustomAttributes() {\n if (this.type === \"clickableButton\") {\n [\"color\", \"bgrcolor\", \"buttontext\", \"textsize\"].forEach((attr) => this.validateClickableButtonStringAttributes(attr));\n [\"rounded\", \"outline\"].forEach((attr) => this.validateClickableButtonBooleanAttributes(attr));\n }\n\n if (!this.customAttributes) {\n throw new JsonParseError(`Missing attributes for clickable area cta`, JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n [\"top\", \"bottom\", \"left\", \"right\"].forEach((dimensionName) => this.validateClickableAreaDimension(dimensionName));\n\n const scenarioElementId = this.customAttributes.scenarioElementId;\n if (scenarioElementId !== undefined) {\n if (typeof scenarioElementId !== \"string\") {\n throw new JsonParseError(`Clickable area cta 'scenarioElementId' attribute must be a string`, JsonParseErrorCode.VALIDATION_FAILED);\n }\n }\n\n const url = this.customAttributes.url;\n if (url) {\n if (typeof url !== \"string\") {\n throw new JsonParseError(`Clickable area cta 'url' attribute must be a url`, JsonParseErrorCode.VALIDATION_FAILED);\n }\n }\n\n const scenarioElementIdPresent = scenarioElementId !== undefined;\n const urlPresent = url !== undefined;\n if (scenarioElementIdPresent === urlPresent) {\n throw new JsonParseError(`Clickable area must have either 'scenarioElementId' or 'url' attribute `, JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n }\n\n private validateClickableAreaDimension(dimensionName: string) {\n const value = this.customAttributes[dimensionName];\n if (value === undefined) {\n throw new JsonParseError(`Clickable area cta must have '${dimensionName}' attribute`, JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n if (typeof value !== \"string\") {\n throw new JsonParseError(`Clickable area cta '${dimensionName}' attribute must be a string`, JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n if (parseInt(value, 10) < 0 || parseInt(value, 10) > 100) {\n throw new JsonParseError(`Clickable area cta '${dimensionName}' attribute must be from interval [0, 100]`,\n JsonParseErrorCode.VALIDATION_FAILED);\n }\n }\n private validateClickableButtonStringAttributes(attr: string) {\n const value = this.customAttributes[attr];\n if (value === undefined) {\n throw new JsonParseError(`Clickable button cta must have '${attr}' attribute`, JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n if (typeof value !== \"string\") {\n throw new JsonParseError(`Clickable cta '${attr}' attribute must be a string`, JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n }\n private validateClickableButtonBooleanAttributes(attr: string) {\n const value = this.customAttributes[attr];\n if (value === undefined) {\n throw new JsonParseError(`Clickable button cta must have '${attr}' attribute`, JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n if (typeof value !== \"boolean\") {\n throw new JsonParseError(`Clickable area cta '${attr}' attribute must be a boolean`, JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n }\n\n}\n","import { ArrayField, Field } from \"sparkson\";\nimport { AnalyticsEndpoint } from \"./AnalyticsEndpoint\";\nimport { PlayerControls } from \"./PlayerControls\";\nimport { Skin } from \"./Skin\";\n\nexport class ConfigurationOverride {\n constructor(\n @Field(\"adminMode\", true) public adminMode?: boolean,\n @Field(\"autoplay\", true) public autoplay?: boolean,\n @Field(\"mutedStart\", true) public mutedStart?: boolean,\n @Field(\"autoRefreshBeforeReady\", true) public autoRefreshBeforeReady?: boolean,\n @Field(\"subtitlesActiveOnStart\", true) public subtitlesActiveOnStart?: boolean,\n @ArrayField(\"analyticsEndpoints\", AnalyticsEndpoint, true) public analyticsEndpoints?: AnalyticsEndpoint[],\n @Field(\"playerControls\", true) public playerControls?: PlayerControls,\n @Field(\"skin\", true) public skin?: Skin,\n @Field(\"playerServerUrl\", true) public playerServerUrl?: string,\n @Field(\"ctaStorageUrl\", true) public ctaStorageUrl?: string,\n @Field(\"jsAssetsUrl\", true) public jsAssetsUrl?: string,\n @Field(\"playIconOnPoster\", true) public playIconOnPoster?: boolean\n ) {}\n}\n","import { AnalyticsEndpoint } from \"./AnalyticsEndpoint\";\nimport { Part } from \"./Part\";\nimport { PlayerControls } from \"./PlayerControls\";\nimport { ScenarioElement } from \"./ScenarioElement\";\nimport { Skin } from \"./Skin\";\n\nexport class FullPlayerConfiguration {\n constructor(\n public code: string,\n public scenarioElements: ScenarioElement[],\n public analyticsEndpoints: AnalyticsEndpoint[],\n public aspectRatio: number,\n public parts: Part[],\n public videoDate: number,\n public playerControls: PlayerControls,\n public status: \"READY\" | \"PREPARING\" | \"DELETED\",\n public playerServerUrl: string,\n public ctaStorageUrl: string,\n public videoJSUrl: string,\n public lottieUrl: string,\n public adminMode: boolean,\n public autoplay: boolean,\n public mutedStart: boolean,\n public autoRefreshBeforeReady: boolean,\n public subtitlesActiveOnStart: boolean,\n public personalizationJSON?: any,\n public campaign?: string,\n public skin?: Skin,\n public groupId?: number\n ) {}\n\n get hasScenarioElementWithVideo(): boolean {\n return this.scenarioElements.reduce((acc, scEl) => acc || !!scEl.video, false);\n }\n\n get hasScenarioElementWithAnimation(): boolean {\n return this.scenarioElements\n .reduce((acc, scEl) => acc || !!scEl.animations && scEl.animations.length > 0, false);\n }\n\n findScenarioElement(id: string) {\n return this.scenarioElements.find((el) => el.id === id);\n }\n}\n","import { Field } from \"sparkson\";\r\n\r\nexport class Part {\r\n constructor(\r\n @Field(\"id\") public id: number,\r\n @Field(\"s\") public size: number\r\n ) {}\r\n}\r\n","import { ArrayField, Field, JsonParseError, JsonParseErrorCode, Regexp } from \"sparkson\";\nimport { AnalyticsEndpoint } from \"./AnalyticsEndpoint\";\nimport { Part } from \"./Part\";\nimport { PlayerControls } from \"./PlayerControls\";\nimport { ScenarioElement } from \"./ScenarioElement\";\nimport { Skin } from \"./Skin\";\n\nexport class PlayerConfiguration {\n\n aspectRatio: number;\n\n constructor(\n @Field(\"c\") public code: string,\n @ArrayField(\"se\", ScenarioElement) public scenarioElements: ScenarioElement[],\n @ArrayField(\"ae\", AnalyticsEndpoint) public analyticsEndpoints: AnalyticsEndpoint[],\n @Field(\"ar\") aspectRatioStr: string,\n @ArrayField(\"pa\", Part, true) public parts: Part[] = [],\n @Field(\"d\", true) public videoDate: number,\n @Field(\"pc\", true) public playerControls: PlayerControls = new PlayerControls(),\n @Field(\"cm\") public campaign?: string,\n @Field(\"gr\", true) public groupId?: number,\n @Field(\"sk\", true) public skin?: Skin,\n @Field(\"am\", true) public adminMode: boolean = false,\n @Field(\"ap\", true) public autoplay: boolean = false,\n @Field(\"ms\", true) public mutedStart: boolean = false,\n @Field(\"arbr\", true) public autoRefreshBeforeReady: boolean = false,\n @Field(\"sa\", true) public subtitlesActiveOnStart: boolean = true,\n @Field(\"st\", true) @Regexp(/^(READY|PREPARING|DELETED)$/) public status: \"READY\" | \"PREPARING\" | \"DELETED\" = \"READY\",\n @Field(\"ju\", true) public jsAssetsUrl?: string,\n @Field(\"piop\", true) public playIconOnPoster: boolean = true,\n\n ) {\n this.parseAspectRatio(aspectRatioStr);\n this.validate();\n }\n\n private parseAspectRatio(aspectRatioStr: string) {\n const aspectRatioParts = aspectRatioStr.split(\"/\");\n if (aspectRatioParts.length === 2) {\n this.aspectRatio = Number(aspectRatioParts[0]) / Number(aspectRatioParts[1]);\n if (isNaN(this.aspectRatio)) {\n throw new JsonParseError(\"Aspect ratio must be in the format 'width/height' (ie. '16/9')\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n } else {\n throw new JsonParseError(\"Aspect ratio must be in the format 'width/height' (ie. '16/9')\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n }\n\n private validate() {\n\n const initialScenarioElements = this.scenarioElements.filter((scenarioElement) => scenarioElement.initial);\n if (initialScenarioElements.length !== 1) {\n throw new JsonParseError(\"Configuration should have exactly one initial scenario element\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n const allScenarioElementIds = this.scenarioElements.map((scenarioElement) => scenarioElement.id);\n const uniqueScenarioElementIds = new Set();\n allScenarioElementIds.forEach((id) => uniqueScenarioElementIds.add(id));\n if (uniqueScenarioElementIds.size < allScenarioElementIds.length) {\n throw new JsonParseError(\"Configuration contains scenario elements with duplicated ids\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n if (this.scenarioElements.length > 1 && !this.parts.length) {\n throw new JsonParseError(\"Configuration with multiple scenario elements must have non empty parts array\",\n JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n if (this.scenarioElements.length > 1) {\n if (!this.parts.length) {\n throw new JsonParseError(\"Scenario with multiple elements must have 'parts' array\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n for (const el of this.scenarioElements) {\n if (el.partId === undefined) {\n throw new JsonParseError(\"Each element in scenario with multiple elements must have 'partId'\",\n JsonParseErrorCode.VALIDATION_FAILED);\n }\n if (!this.parts.find((part) => part.id === el.partId)) {\n throw new JsonParseError(`Part id '${el.partId}' for element with id '${el.id}' is not present in 'parts' array`,\n JsonParseErrorCode.VALIDATION_FAILED);\n }\n }\n }\n\n const totalPartsSize = this.parts.reduce((acc, part) => acc + part.size, 0);\n if (this.parts.length && totalPartsSize !== 100) {\n throw new JsonParseError(\"Total size of parts must be 100\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n if (this.parts.length) {\n const ctaOnlyScenarioElements = this.scenarioElements.filter((el) => !el.video && !el.animations.length);\n for (const el of ctaOnlyScenarioElements) {\n if (this.parts.find((part) => part.id === el.partId).size !== 0) {\n throw new JsonParseError(\"Part size for elements without video and animations must be 0\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n }\n }\n\n const allCTAIds = this.scenarioElements.reduce((acc, el) => acc.concat(el.ctas.map((cta) => cta.id)), []);\n const uniqueCTAIds = new Set();\n allCTAIds.forEach((id) => uniqueCTAIds.add(id));\n if (uniqueCTAIds.size < allCTAIds.length) {\n throw new JsonParseError(\"Configuration contains CTAs with duplicated ids\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n const hasVintomAnalyticsEndpoint = !!this.analyticsEndpoints.find((endpoint) => endpoint.provider === \"vintom\");\n if (hasVintomAnalyticsEndpoint && !this.videoDate) {\n throw new JsonParseError(\"Configuration with 'vintom' analytics endpoint must have 'videoDate'\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n }\n}\n","import { Field } from \"sparkson\";\r\n\r\nexport class PlayerControls {\r\n constructor(\r\n @Field(\"l\", true) public logo?: string,\r\n @Field(\"lv\", true) public logoVisiblePermanently: boolean = false,\r\n @Field(\"se\", true) public seekbarEnabled: boolean = true,\r\n @Field(\"ce\", true) public controlbarEnabled: boolean = true,\r\n @Field(\"pe\", true) public playPauseEnabled: boolean = true,\r\n @Field(\"fe\", true) public fullscreenEnabled: boolean = true,\r\n @Field(\"soe\", true) public socialButtonEnabled: boolean = true,\r\n @Field(\"piop\", true) public playIconOnPoster: boolean = false,\r\n ) {}\r\n}\r\n","import { ArrayField, Field, JsonParseError, JsonParseErrorCode } from \"sparkson\";\nimport { Animation } from \"./Animation\";\nimport { CTA } from \"./CTA\";\nimport { Soundtrack } from \"./Soundtrack\";\nimport { Video } from \"./Video\";\n\nexport class ScenarioElement {\n constructor(\n @Field(\"id\") public id: string,\n @Field(\"p\", true) public poster?: string,\n @ArrayField(\"c\", CTA, true) public ctas: CTA[] = [],\n @Field(\"pa\", true) public partId: number = 1,\n @Field(\"mu\", true) public music?: Soundtrack,\n @Field(\"i\", true) public initial: boolean = false,\n @Field(\"v\", true) public video?: Video,\n @Field(\"ns\", true) public nextScenarioElementId?: string,\n @ArrayField(\"an\", Animation, true) public animations: Animation[] = []\n ) {\n this.validate();\n }\n\n get hasSubtitles(): boolean {\n return this.video && this.video.subtitles.length > 0;\n }\n\n get isCTAOnlyElement(): boolean {\n return !this.video && !this.animations.length && !!this.ctas.length;\n }\n\n get isCTAOnlyPlaybackStoppingElement(): boolean {\n return !this.video && !this.animations.length && !!this.ctas.find((cta) => cta.stopsPlayback);\n }\n\n private validate() {\n if (!this.video) {\n if (this.animations.length > 1) {\n throw new JsonParseError(\"Scenario elements without video must contain at most one animation\",\n JsonParseErrorCode.VALIDATION_FAILED);\n }\n }\n\n if (this.isCTAOnlyElement) {\n if (!this.ctas.length) {\n throw new JsonParseError(\"Scenario elements without video and animation must have at least one CTA\",\n JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n const hasCTAWithPoster = this.ctas.find((cta) => !!cta.poster);\n if (hasCTAWithPoster) {\n throw new JsonParseError(\"CTAs in scenario elements without video and animations must not have posters\",\n JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n const hasCTAsWithRangeTriggerType = this.ctas.find((cta) => cta.triggerType === \"RANGE\");\n if (hasCTAsWithRangeTriggerType) {\n throw new JsonParseError(\"CTAs in scenario elements without video and animations can only have 'END' trigger type\",\n JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n const hasCTAsStoppingPlayback = this.ctas.find((cta) => cta.stopsPlayback);\n if (!hasCTAsStoppingPlayback && !this.nextScenarioElementId) {\n throw new JsonParseError(\"Scenario elements without video and animation and no stopping playback CTAs must have 'nextScenarioElementId'\",\n JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n }\n\n const numberOfCTAPosters = this.ctas.filter((cta) => cta.poster).length;\n if (numberOfCTAPosters > 1) {\n throw new JsonParseError(\"Scenario element must have at most one CTA with poster\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n }\n}\n","import { Field, JsonParseError, JsonParseErrorCode } from \"sparkson\";\r\n\r\nexport class Skin {\r\n constructor(@Field(\"c\", true) public color?: string) {\r\n if (color && !/^#[0-9a-f]{6}$/i.test(color)) {\r\n throw new JsonParseError(\"Color has to match CSS hex format\" , JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n }\r\n}","import { Field, JsonParseError, JsonParseErrorCode } from \"sparkson\";\r\n\r\nexport class Soundtrack {\r\n musicStartTime?: number;\r\n musicEndTime?: number;\r\n\r\n constructor(\r\n @Field(\"u\", true) public musicUrl: string,\r\n @Field(\"s\", true) public musicStart: string = \"0\",\r\n @Field(\"e\", true) public musicEnd: string = \"0\"\r\n ) {\r\n this.changeMillisecondsToSeconds();\r\n this.validate();\r\n }\r\n\r\n private changeMillisecondsToSeconds() { \r\n this.musicStartTime = Number(this.musicStart) / 1000;\r\n this.musicEndTime = Number(this.musicEnd) / 1000;\r\n }\r\n\r\n private validate() {\r\n\r\n if (!this.musicUrl || this.musicUrl === \"\") {\r\n throw new JsonParseError(\"musicUrl must be defined)\", JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n\r\n if (isNaN(this.musicStartTime)) {\r\n throw new JsonParseError(\"musicStartTime must be a string that can be parsed as number\", JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n\r\n if (isNaN(this.musicEndTime)) {\r\n throw new JsonParseError(\"musicEndTime must be a string that can be parsed as number\", JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n\r\n if (this.musicStartTime < 0) {\r\n throw new JsonParseError(\"musicStartTime must be greater than or equal to 0\", JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n\r\n if (this.musicEndTime < 0) {\r\n throw new JsonParseError(\"musicStartTime must be greater than or equal to 0\", JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n }\r\n\r\n}\r\n","import { Field } from \"sparkson\";\r\n\r\nexport class Source {\r\n constructor(\r\n @Field(\"s\") public src: string,\r\n @Field(\"t\") public type: string\r\n ) {}\r\n}\r\n","import { Field } from \"sparkson\";\r\n\r\nexport class Subtitle {\r\n constructor(\r\n @Field(\"s\") public source: string,\r\n @Field(\"l\", true) public label?: string\r\n ) {}\r\n}","import { ArrayField, JsonParseError, JsonParseErrorCode } from \"sparkson\";\r\nimport { Source } from \"./Source\";\r\nimport { Subtitle } from \"./Subtitle\";\r\n\r\nexport class Video {\r\n constructor(\r\n @ArrayField(\"so\", Source) public sources: Source[],\r\n @ArrayField(\"su\", Subtitle, true) public subtitles: Subtitle[] = []\r\n ) {\r\n if (!sources.length) {\r\n throw new JsonParseError(\"Video must have at least one source\", JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n }\r\n}\r\n","import { timingSafeEqual } from \"crypto\";\r\nimport { Field, JsonParseError, JsonParseErrorCode } from \"sparkson\";\r\n\r\nexport class VisibilityRange {\r\n startTime: number;\r\n endTime: number | \"END\";\r\n\r\n constructor(\r\n @Field(\"s\") startOffset: string,\r\n @Field(\"e\") endOffset: string) {\r\n\r\n this.startTime = Number(startOffset) / 1000;\r\n\r\n if (isNaN(this.startTime)) {\r\n throw new JsonParseError(\"startOffset must be a string that can be parsed as number\", JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n\r\n if (endOffset === \"END\") {\r\n this.endTime = \"END\";\r\n } else {\r\n this.endTime = Number(endOffset) / 1000;\r\n if (isNaN(this.endTime)) {\r\n throw new JsonParseError(\"endOffset must be either string 'END' or a string that can be parsed as number\",\r\n JsonParseErrorCode.VALIDATION_FAILED);\r\n }\r\n }\r\n }\r\n}\r\n","import { Part } from \"../playerConfiguration/Part\";\nimport { ScenarioElement } from \"../playerConfiguration/ScenarioElement\";\nimport { Subtitle } from \"../playerConfiguration/Subtitle\";\nimport { ScenarioPath } from \"../scenarioPath/ScenarioPath\";\nimport { StoredPreferences } from \"../storedPreferences/StoredPreferences\";\n\nexport class ScenarioGlobalState {\n\n private static FULL_VOLUME = 1;\n\n private _scenarioPath: ScenarioPath;\n private _volume: number;\n private _isMuted: boolean;\n private _autoRefreshBeforeReady: boolean;\n private _selectedSubtitles: Subtitle;\n private _aspecRatio: number;\n // private _useDefaultSubtitles: boolean;\n // private _storedPreferences: StoredPreferences;\n // private _isSubtitlesResetByUser: boolean;\n\n private _preferredSubtitleLabel: string;\n private _isSubtitlesShownWhenAvailable: boolean;\n\n private constructor() { }\n\n static ininitialState(\n scenarioElements: ScenarioElement[],\n scenarioParts: Part[],\n aspectRatio: number,\n isMuted: boolean,\n autoRefreshBeforeReady: boolean,\n useDefaultSubtitles: boolean,\n storedPreferences: StoredPreferences): ScenarioGlobalState {\n\n const state = new ScenarioGlobalState();\n state._scenarioPath = ScenarioPath.initialize(scenarioElements, scenarioParts);\n state._volume = storedPreferences.volume !== undefined ? storedPreferences.volume : ScenarioGlobalState.FULL_VOLUME;\n state._isMuted = !state._volume || isMuted;\n state._autoRefreshBeforeReady = autoRefreshBeforeReady;\n state._selectedSubtitles = undefined;\n state._aspecRatio = aspectRatio;\n state._preferredSubtitleLabel = storedPreferences.subtitlesLanguage;\n state._isSubtitlesShownWhenAvailable = storedPreferences.isSubtitlesDisplayed !== undefined ?\n storedPreferences.isSubtitlesDisplayed : useDefaultSubtitles;\n\n return state;\n }\n\n get scenarioPath(): ScenarioPath {\n return this._scenarioPath;\n }\n\n get volume(): number {\n return this._volume;\n }\n\n get isMuted(): boolean {\n return this._isMuted;\n }\n\n get autoRefreshBeforeReady(): boolean {\n return this._autoRefreshBeforeReady;\n }\n\n get selectedSubtitles(): Subtitle {\n return this._selectedSubtitles;\n }\n\n get aspectRatio(): number {\n return this._aspecRatio;\n }\n\n withNowPlaying(scenarioElement: ScenarioElement): ScenarioGlobalState {\n const copy = this.copy();\n copy._scenarioPath = copy._scenarioPath.nowPlaying(scenarioElement);\n\n if (copy._isSubtitlesShownWhenAvailable) {\n copy._selectedSubtitles = copy._preferredSubtitleLabel ?\n copy.findSubtitlesMatchingLabel(scenarioElement, copy._preferredSubtitleLabel) : copy.findDefaultSubtitles(scenarioElement);\n }\n\n return copy;\n }\n\n withVolume(volume: number): ScenarioGlobalState {\n const copy = this.copy();\n copy._volume = volume;\n copy._isMuted = volume === 0;\n return copy;\n }\n\n withMuted(isMuted: boolean): ScenarioGlobalState {\n const copy = this.copy();\n copy._isMuted = isMuted;\n return copy;\n }\n\n withSelectedSubtitles(subtitles: Subtitle): ScenarioGlobalState {\n const copy = this.copy();\n copy._selectedSubtitles = subtitles;\n copy._isSubtitlesShownWhenAvailable = !!subtitles;\n copy._preferredSubtitleLabel = subtitles && subtitles.label;\n return copy;\n }\n\n private findSubtitlesMatchingLabel(scenarioElement: ScenarioElement, label: string): Subtitle {\n if (scenarioElement.hasSubtitles) {\n return scenarioElement.video.subtitles.find((subtitles) => subtitles.label === label);\n }\n }\n\n private findDefaultSubtitles(scenarioElement: ScenarioElement): Subtitle {\n return scenarioElement.hasSubtitles && scenarioElement.video.subtitles[0];\n }\n\n private copy(): ScenarioGlobalState {\n const copy = new ScenarioGlobalState();\n copy._scenarioPath = this._scenarioPath;\n copy._volume = this._volume;\n copy._isMuted = this._isMuted;\n copy._autoRefreshBeforeReady = this._autoRefreshBeforeReady;\n copy._selectedSubtitles = this._selectedSubtitles;\n copy._aspecRatio = this._aspecRatio;\n copy._isSubtitlesShownWhenAvailable = this._isSubtitlesShownWhenAvailable;\n copy._preferredSubtitleLabel = this._preferredSubtitleLabel;\n\n return copy;\n }\n}","import { Part } from \"../playerConfiguration/Part\";\r\nimport { ScenarioElement } from \"../playerConfiguration/ScenarioElement\";\r\n\r\nexport class PastOrCurrentPart extends Part {\r\n constructor(id: number, size: number, public scenarioElement: ScenarioElement) {\r\n super(id, size);\r\n }\r\n}","import { ScenarioElement } from \"../playerConfiguration/ScenarioElement\";\nimport { Part } from \"../playerConfiguration/Part\";\nimport { PastOrCurrentPart } from \"./PastOrCurrentPart\";\n\nexport class ScenarioPath {\n\n private static FULL_LENGTH = 100;\n\n private _currentPart: PastOrCurrentPart;\n private _allElements: ScenarioElement[];\n\n private _pastParts: PastOrCurrentPart[];\n private _futureParts: Part[];\n private _allParts: Part[];\n\n private constructor() {}\n\n static initialize(elements: ScenarioElement[], parts: Part[]): ScenarioPath {\n const scenarioPath = new ScenarioPath();\n scenarioPath._allElements = elements;\n scenarioPath._allParts = [...parts];\n scenarioPath._futureParts = [...parts];\n scenarioPath._pastParts = [];\n return scenarioPath;\n }\n\n get hasMultipleParts(): boolean {\n return this._allParts.length > 1;\n }\n\n get currentPartNumber(): number {\n return this._pastParts.length + 1;\n }\n\n get isLastPart(): boolean {\n return this._futureParts.length === 0;\n }\n\n get currentElementId(): string {\n return this._currentPart && this._currentPart.scenarioElement.id;\n }\n\n get currentElement(): ScenarioElement {\n return this._currentPart && this._currentPart.scenarioElement;\n }\n\n get allElements(): ScenarioElement[] {\n return this._allElements;\n }\n\n get displayedPastParts(): PastOrCurrentPart[] {\n return this._pastParts.filter((part) => part.size);\n }\n\n get displayedFutureParts(): Part[] {\n return this._futureParts.filter((part) => part.size);\n }\n\n get initialElement(): ScenarioElement {\n return this._allElements.find((el) => el.initial);\n }\n\n get currentPart(): PastOrCurrentPart {\n return this._currentPart;\n }\n\n nowPlaying(scenarioElement: ScenarioElement) {\n if (this._currentPart && this._currentPart.scenarioElement.id === scenarioElement.id) {\n return this;\n }\n\n const copy = this.copy();\n\n if (!copy._allParts.length) {\n copy._currentPart = new PastOrCurrentPart(undefined, ScenarioPath.FULL_LENGTH, scenarioElement);\n return copy;\n }\n\n const newPartIndex = copy._allParts.findIndex((part) => part.id === scenarioElement.partId);\n const currentPartIndex = copy._currentPart && copy._allParts.findIndex((part) => part.id === copy._currentPart.id);\n\n if (copy._currentPart) {\n copy._pastParts[currentPartIndex] = copy._currentPart;\n }\n\n copy._futureParts = [...copy._allParts].slice(newPartIndex + 1);\n copy._pastParts = copy._pastParts.slice(0, newPartIndex);\n\n for (let idx = 0; idx < newPartIndex; idx++) {\n // need to add empty past parts if we skip some parts while jumping to scenario element\n if (!copy._pastParts[idx]) {\n const part = copy._allParts[idx];\n copy._pastParts[idx] = new PastOrCurrentPart(part.id, part.size, undefined);\n }\n }\n\n const newPart = copy._allParts[newPartIndex];\n copy._currentPart = new PastOrCurrentPart(newPart.id, newPart.size, scenarioElement);\n\n return copy;\n }\n\n private copy() {\n const copy = new ScenarioPath();\n copy._currentPart = this._currentPart;\n copy._allElements = this._allElements;\n\n copy._allParts = this._allParts;\n copy._pastParts = this._pastParts;\n copy._futureParts = this._futureParts;\n\n return copy;\n }\n\n}","export class StoredPreferences {\r\n constructor(public volume: number, public isSubtitlesDisplayed: boolean, public subtitlesLanguage: string) {}\r\n}","const calculateDimensions = (aspectRatio: number, containerWidth: number, containerHeight: number) => {\r\n const containerAspectRatio = containerWidth / containerHeight;\r\n\r\n return aspectRatio < containerAspectRatio ?\r\n {\r\n width: aspectRatio * containerHeight,\r\n height: containerHeight\r\n } :\r\n {\r\n width: containerWidth,\r\n height: containerWidth / aspectRatio\r\n };\r\n};\r\n\r\nexport const AspectRatioHelper = {\r\n calculateDimensions\r\n};\r\n","import { UAParser } from \"ua-parser-js\";\r\n\r\nconst parser = new UAParser(navigator.userAgent);\r\n\r\nconst isAndroid = () => /Android/i.test(navigator.userAgent);\r\nconst isMobileDevice = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\nconst isFullscreenSupported = () => parser.getOS().name.toLowerCase() !== \"ios\";\r\nconst getBrowserName = () => parser.getBrowser().name.toLowerCase();\r\nconst isSafari = () => getBrowserName() === \"safari\" || getBrowserName() === \"ios\";\r\nconst isIE = () => getBrowserName() === \"ie\";\r\nconst isChrome = () => getBrowserName() === \"chrome\" || getBrowserName() === \"crios\";\r\nconst isDashSupported = () => !isSafari();\r\nconst getBrowserMajorVersion = () => Number(parser.getBrowser().version.split(\".\")[0]);\r\nconst getOS = () => parser.getOS().version;\r\n\r\nexport const BrowserFeatureDetector = {\r\n getBrowserName,\r\n getBrowserMajorVersion,\r\n getOS,\r\n isMobileDevice,\r\n isFullscreenSupported,\r\n isIE,\r\n isChrome,\r\n isSafari,\r\n isAndroid,\r\n isDashSupported\r\n};\r\n","const setCookie = (name: string, value: string) => {\r\n document.cookie = value !== undefined ? `${name}=${value}; Path=/` : `${name}=`;\r\n};\r\n\r\nconst readCookie = (name: string) => {\r\n const cookie: string = document.cookie\r\n .split(\";\")\r\n .map((cookieStr) => cookieStr.trim())\r\n .find((cookieStr) => cookieStr.startsWith(name));\r\n\r\n return cookie && cookie.replace(`${name}=`, \"\");\r\n};\r\n\r\nexport const CookieHelper = {\r\n setCookie,\r\n readCookie\r\n};\r\n","type TargetName = \"document\" | \"window\";\n\nconst documentListeners: { [event: string]: ((event?: Event) => void)[] } = {};\nconst windowListeners: { [event: string]: ((event?: Event) => void)[] } = {};\n\nconst getListenersAndTargetForName = (targetName: TargetName) => {\n switch (targetName) {\n case \"document\":\n return {\n listeners: documentListeners,\n target: document\n };\n case \"window\":\n return {\n listeners: windowListeners,\n target: window\n };\n default:\n throw new Error(`Unknown target name '${targetName}'`);\n }\n};\nconst addEventHandler = (targetName: TargetName, event: string, handler: (event?: Event) => void): void => {\n const { listeners, target } = getListenersAndTargetForName(targetName);\n\n const handlers = listeners[event] || [];\n handlers.push(handler);\n listeners[event] = handlers;\n\n target.addEventListener(event, handler);\n};\n\nconst removeEventHandler = (targetName: TargetName, event: string, handler: (event?: Event) => void): void => {\n const { listeners, target } = getListenersAndTargetForName(targetName);\n\n let handlers = listeners[event] || [];\n const handlerIndex = handlers.findIndex((listener) => listener === handler);\n if (handlerIndex > -1) {\n handlers = handlers.splice(handlerIndex, 1);\n listeners[event] = handlers;\n }\n target.removeEventListener(event, handler);\n};\n\nconst removeAllEventHandlers = (): void => {\n\n Object.keys(documentListeners)\n .forEach((event) => documentListeners[event].forEach((listener) => document.removeEventListener(event, listener)));\n\n Object.keys(windowListeners)\n .forEach((event) => windowListeners[event].forEach((listener) => window.removeEventListener(event, listener)));\n};\n\nexport const ListenerHelper = {\n addEventListener: addEventHandler,\n removeEventListener: removeEventHandler,\n removeAllEventListeners: removeAllEventHandlers\n};\n","import { SocialShareConfiguration } from \"../uiModel/socialShare/SocialShareConfiguration\";\n\nconst facebookShareUrl = (pageUrl: string) => `https://www.facebook.com/sharer/sharer.php?u=${pageUrl}`;\nconst twitterShareUrl = (pageUrl: string) => `https://twitter.com/intent/tweet?text=${pageUrl}`;\n\nconst getPageUrl = () => {\n try {\n return window.top.location.href;\n } catch {\n // different domain - we cannot access window url\n return undefined;\n }\n};\n\nconst getShareConfiguration: () => SocialShareConfiguration = () => {\n const pageUrl = getPageUrl();\n if (pageUrl) {\n return {\n canShare: true,\n facebookUrl: facebookShareUrl(pageUrl),\n twitterUrl: twitterShareUrl(pageUrl)\n };\n } else {\n return {\n canShare: false\n };\n }\n};\n\nexport const SocialShareHelper = {\n getShareConfiguration\n};","const hashCode = (str: string): number => {\r\n let hash = 0;\r\n if (str.length === 0) {\r\n return hash;\r\n }\r\n\r\n for (let i = 0; i < str.length; i++) {\r\n const char = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + char;\r\n hash = hash & hash; // Convert to 32bit integer\r\n }\r\n return hash;\r\n};\r\n\r\nexport const StringHashCodeGenerator = {\r\n hashCode\r\n};\r\n","import { BrowserFeatureDetector } from \"./BrowserFeatureDetector\";\n\ninterface BrowserSpec {\n name: string;\n minVersion: number;\n device?: string;\n os?: string;\n}\n\nconst supportedBrowsers: BrowserSpec[] = [\n { name: \"chrome\", minVersion: 50 },\n { name: \"chromium\", minVersion: 50 },\n { name: \"edge\", minVersion: 13 },\n { name: \"firefox\", minVersion: 50 },\n { name: \"firefox\", minVersion: 60, os: \"XP\" },\n { name: \"ie\", minVersion: 11 },\n { name: \"ios\", minVersion: 9 },\n { name: \"ios\", minVersion: 10, device: \"iPhone\" },\n { name: \"webkit\", minVersion: 601, device: \"iPhone\" },\n { name: \"opera\", minVersion: 30 },\n { name: \"safari\", minVersion: 9 },\n { name: \"mobile safari\", minVersion: 9 },\n { name: \"samsung\", minVersion: 7 },\n { name: \"samsung browser\", minVersion: 5 },\n { name: \"android browser\", minVersion: 4 },\n { name: \"chrome webview\", minVersion: 4 },\n { name: \"gsa\", minVersion: 60 },\n { name: \"facebook\", minVersion: 150 },\n { name: \"ucbrowser\", minVersion: 12 },\n { name: \"vivaldi\", minVersion: 2 },\n { name: \"miui browser\", minVersion: 10 }];\n\nconst isIOS9Supported = () => {\n if (BrowserFeatureDetector.getBrowserName() === \"mobile safari\" &&\n BrowserFeatureDetector.getBrowserMajorVersion() === 9) {\n const version = Number(BrowserFeatureDetector.getOS().split(\".\")[0] +\n (BrowserFeatureDetector.getOS().split(\".\")[1] ? \".\" + BrowserFeatureDetector.getOS().split(\".\")[1] : \"\"));\n return version >= 9.1;\n } else {\n return true;\n }\n};\n\nconst isBrowserSupported = () => {\n if (!isIOS9Supported()) {\n return false;\n }\n const specsForBrowser = supportedBrowsers.filter((spec) => spec.name === BrowserFeatureDetector.getBrowserName());\n if (specsForBrowser.length) {\n const deviceSpecificSpec = specsForBrowser.find((spec) => spec.device && new RegExp(spec.device, \"i\").test(window.navigator.userAgent));\n const osSpecificSpec = specsForBrowser.find((spec) => spec.os && spec.os === BrowserFeatureDetector.getOS());\n if (osSpecificSpec) {\n return osSpecificSpec.minVersion <= BrowserFeatureDetector.getBrowserMajorVersion();\n } else {\n if (deviceSpecificSpec) {\n return deviceSpecificSpec.minVersion <= BrowserFeatureDetector.getBrowserMajorVersion();\n } else {\n const noDeviceSpec = specsForBrowser.find((spec) => !spec.device);\n if (noDeviceSpec) {\n return noDeviceSpec.minVersion <= BrowserFeatureDetector.getBrowserMajorVersion();\n } else {\n return false;\n }\n }\n }\n } else {\n return false;\n }\n};\n\nexport const SupportedBrowserHelper = {\n isBrowserSupported\n};\n","const SECONDS_IN_MINUTE = 60;\r\nconst SECONDS_IN_HOUR = SECONDS_IN_MINUTE * 60;\r\n\r\nconst format = (time: number): string => {\r\n const hours = Math.floor(time / SECONDS_IN_HOUR);\r\n const minutes = Math.floor((time - hours * SECONDS_IN_HOUR) / SECONDS_IN_MINUTE);\r\n const seconds = Math.floor(time - hours * SECONDS_IN_HOUR - minutes * SECONDS_IN_MINUTE);\r\n\r\n const formattedSeconds = seconds < 10 ? `0${seconds}` : `${seconds}`;\r\n const formattedMinutes = minutes < 10 ? `0${minutes}` : `${minutes}`;\r\n\r\n if (hours) {\r\n return `${hours}:${formattedMinutes}:${formattedSeconds}`;\r\n }\r\n if (minutes) {\r\n return `${minutes}:${formattedSeconds}`;\r\n }\r\n return `0:${formattedSeconds}`;\r\n};\r\n\r\nexport const TimeFormatter = {\r\n format\r\n};\r\n","import { BrowserFeatureDetector } from \"./BrowserFeatureDetector\";\r\n\r\nconst SAFARI_RESIZE_DELAY = 150;\r\n\r\nconst doOnResize = (action: () => void): void => {\r\n if (BrowserFeatureDetector.isSafari()) {\r\n // resize event on Safari is delivered before document layout - when resizing animations\r\n // lottie will get old container dimensions. As a hacky workaround we trigger lottie resize with a small delay\r\n // https://openradar.appspot.com/radar?id=5040881597939712\r\n setTimeout(action, SAFARI_RESIZE_DELAY);\r\n } else {\r\n action();\r\n }\r\n};\r\n\r\nexport const WindowResizeHelper = {\r\n doOnResize\r\n};","import vm from \"vm\";\n\n// The following objects will be accessible inside isolatedEval\nconst whitelistedObjects = {\n Math, console,\n Number, String, Boolean,\n isNaN, XMLHttpRequest, Date, JSON, parseInt\n};\n\nconst createSandboxCode = (code: string, context) => {\n const contextKeys = Object.keys(context);\n const escapedContextKeys = JSON.stringify(contextKeys).replace(/'/g, \"\\\\'\");\n\n const objectsToShadow = [\"window\", \"document\", \"location\", \"history\", \"localStorage\", \"sessionStorage\"];\n const removeWindowObjects = [\"document\", \"localStorage\", \"sessionStorage\", \"history\"];\n\n return `\n (function(window) {\n const removeData = obj => {\n Object.getOwnPropertyNames(Object.getPrototypeOf(obj))\n .filter(key => key !== 'location')\n .forEach(key => delete obj[key]); \n \n Object.setPrototypeOf(obj, null);\n }\n \n ${removeWindowObjects.map(value => \"removeData(window.\" + value + \");\").join(\"\\n\")}\n \n const allowedKeysSet = new Set(JSON.parse('${escapedContextKeys}'));\n \n Object.getOwnPropertyNames(window)\n .filter(key => !allowedKeysSet.has(key)) \n .filter(key => key !== 'location')\n .forEach(key => delete window[key]); \n })(this);\n\n ${objectsToShadow.map(value => \"const \" + value + \" = {};\").join(\"\\n\")}\n \n ${code}\n `;\n};\n\nconst doIsolatedEval = (code: string, context = {}) =>\n vm.runInNewContext(createSandboxCode(code, context), context);\n\nexport const isolatedEval = (code: string, context = {}) =>\n doIsolatedEval(code, {\n eval: doIsolatedEval,\n ...whitelistedObjects,\n ...context,\n });\n","import { i18n, I18n } from \"../i18n/i18n\";\r\n\r\nconst getPreferredLocaleI18n = (locale: string): I18n => i18n[locale];\r\n\r\nconst getBrowserLocaleI18n = (): I18n => {\r\n const language = window.navigator.language;\r\n if (language) {\r\n const locale = language.split(\"-\")[0];\r\n return i18n[locale];\r\n }\r\n};\r\n\r\nconst getFallbackLocaleI18n = (): I18n => i18n.en;\r\n\r\nexport const getI18n = (preferredLocale?: string): I18n => {\r\n return getPreferredLocaleI18n(preferredLocale) ||\r\n getBrowserLocaleI18n() ||\r\n getFallbackLocaleI18n();\r\n};","/* global Blob */\n// This file is generated. Do not edit this file directly.\n// Command: 'npm run generate' should be used to update the content.\n\n/**\n * @type {Blob}\n */\nvar AUDIO = new Blob([new Uint8Array([255, 227, 24, 196, 0, 0, 0, 3, 72, 1, 64, 0, 0, 4, 132, 16, 31, 227, 192, 225, 76, 255, 67, 12, 255, 221, 27, 255, 228, 97, 73, 63, 255, 195, 131, 69, 192, 232, 223, 255, 255, 207, 102, 239, 255, 255, 255, 101, 158, 206, 70, 20, 59, 255, 254, 95, 70, 149, 66, 4, 16, 128, 0, 2, 2, 32, 240, 138, 255, 36, 106, 183, 255, 227, 24, 196, 59, 11, 34, 62, 80, 49, 135, 40, 0, 253, 29, 191, 209, 200, 141, 71, 7, 255, 252, 152, 74, 15, 130, 33, 185, 6, 63, 255, 252, 195, 70, 203, 86, 53, 15, 255, 255, 247, 103, 76, 121, 64, 32, 47, 255, 34, 227, 194, 209, 138, 76, 65, 77, 69, 51, 46, 57, 55, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 255, 227, 24, 196, 73, 13, 153, 210, 100, 81, 135, 56, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170])], { type: 'audio/mpeg' });\n\n/**\n * @type {Blob}\n */\nvar VIDEO = new Blob([new Uint8Array([0, 0, 0, 28, 102, 116, 121, 112, 105, 115, 111, 109, 0, 0, 2, 0, 105, 115, 111, 109, 105, 115, 111, 50, 109, 112, 52, 49, 0, 0, 0, 8, 102, 114, 101, 101, 0, 0, 2, 239, 109, 100, 97, 116, 33, 16, 5, 32, 164, 27, 255, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 33, 16, 5, 32, 164, 27, 255, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 167, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 2, 194, 109, 111, 111, 118, 0, 0, 0, 108, 109, 118, 104, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 232, 0, 0, 0, 47, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 236, 116, 114, 97, 107, 0, 0, 0, 92, 116, 107, 104, 100, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 101, 100, 116, 115, 0, 0, 0, 28, 101, 108, 115, 116, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 47, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 100, 109, 100, 105, 97, 0, 0, 0, 32, 109, 100, 104, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 68, 0, 0, 8, 0, 85, 196, 0, 0, 0, 0, 0, 45, 104, 100, 108, 114, 0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110, 100, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 1, 15, 109, 105, 110, 102, 0, 0, 0, 16, 115, 109, 104, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 100, 105, 110, 102, 0, 0, 0, 28, 100, 114, 101, 102, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114, 108, 32, 0, 0, 0, 1, 0, 0, 0, 211, 115, 116, 98, 108, 0, 0, 0, 103, 115, 116, 115, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 87, 109, 112, 52, 97, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 16, 0, 0, 0, 0, 172, 68, 0, 0, 0, 0, 0, 51, 101, 115, 100, 115, 0, 0, 0, 0, 3, 128, 128, 128, 34, 0, 2, 0, 4, 128, 128, 128, 20, 64, 21, 0, 0, 0, 0, 1, 244, 0, 0, 1, 243, 249, 5, 128, 128, 128, 2, 18, 16, 6, 128, 128, 128, 1, 2, 0, 0, 0, 24, 115, 116, 116, 115, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 28, 115, 116, 115, 99, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 28, 115, 116, 115, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 115, 0, 0, 1, 116, 0, 0, 0, 20, 115, 116, 99, 111, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 44, 0, 0, 0, 98, 117, 100, 116, 97, 0, 0, 0, 90, 109, 101, 116, 97, 0, 0, 0, 0, 0, 0, 0, 33, 104, 100, 108, 114, 0, 0, 0, 0, 0, 0, 0, 0, 109, 100, 105, 114, 97, 112, 112, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 105, 108, 115, 116, 0, 0, 0, 37, 169, 116, 111, 111, 0, 0, 0, 29, 100, 97, 116, 97, 0, 0, 0, 1, 0, 0, 0, 0, 76, 97, 118, 102, 53, 54, 46, 52, 48, 46, 49, 48, 49])], { type: 'video/mp4' });\n\n/* global URL */\nfunction setupDefaultValues(options) {\n return Object.assign({\n muted: false,\n timeout: 250,\n inline: false\n }, options);\n}\n\nfunction startPlayback(_ref, elementCallback) {\n var muted = _ref.muted,\n timeout = _ref.timeout,\n inline = _ref.inline;\n\n var _elementCallback = elementCallback(),\n element = _elementCallback.element,\n source = _elementCallback.source;\n\n var playResult = void 0;\n var timeoutId = void 0;\n var sendOutput = void 0;\n\n element.muted = muted;\n if (muted === true) {\n element.setAttribute('muted', 'muted');\n }\n // indicates that the video is to be played \"inline\",\n // that is within the element's playback area.\n if (inline === true) {\n element.setAttribute('playsinline', 'playsinline');\n }\n\n element.src = source;\n\n return new Promise(function (resolve) {\n playResult = element.play();\n timeoutId = setTimeout(function () {\n sendOutput(false, new Error('Timeout ' + timeout + ' ms has been reached'));\n }, timeout);\n sendOutput = function sendOutput(result) {\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n clearTimeout(timeoutId);\n resolve({ result: result, error: error });\n };\n\n if (playResult !== undefined) {\n playResult.then(function () {\n return sendOutput(true);\n }).catch(function (playError) {\n return sendOutput(false, playError);\n });\n } else {\n sendOutput(true);\n }\n });\n}\n\n//\n// API\n//\n\nfunction video(options) {\n options = setupDefaultValues(options);\n return startPlayback(options, function () {\n return {\n element: document.createElement('video'),\n source: URL.createObjectURL(VIDEO)\n };\n });\n}\n\nfunction audio(options) {\n options = setupDefaultValues(options);\n return startPlayback(options, function () {\n return {\n element: document.createElement('audio'),\n source: URL.createObjectURL(AUDIO)\n };\n });\n}\n\nvar index = { audio: audio, video: video };\n\nexport default index;\n","/*! @license DOMPurify 2.3.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.6/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.DOMPurify = factory());\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n\n var regExpTest = unapply(RegExp.prototype.test);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\n var text = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n var DOCTYPE_NAME = seal(/^html$/i);\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.3.6';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Parsing of strict XHTML documents */\n var PARSER_MEDIA_TYPE = void 0;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc = void 0;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n return x;\n } : stringToLowerCase;\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/