{"version":3,"file":"index.js","mappings":"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AAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,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,IAAK,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,GAAI,IAAK,GAAI,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,MAAO,CAAEv1C,KAAM,cAGl3J,SAASy1C,EAAmBl8C,GAC1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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/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/PlayerContainerManager.ts","webpack://lib/./manager/scenarioRunner/layerManager/PosterLayerManager.ts","webpack://lib/./manager/scenarioRunner/layerManager/VideoLayerManager.ts","webpack://lib/./manager/scenarioRunner/musicManager/MusicManager.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-ga4/dist/format.js","webpack://lib/../node_modules/react-ga4/dist/ga4.js","webpack://lib/../node_modules/react-ga4/dist/gtag.js","webpack://lib/../node_modules/react-ga4/dist/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\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 { 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\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\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 if (BrowserFeatureDetector.isFirefox()) {\n this.increaseVideoTimePrecision(this.videoNode);\n }\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\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 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 this.player.on(\"play\", () => {\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 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 getReadyState(): number {\n return this.player.readyState();\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 // Makes .currentTime return more accurate times. Useful in firefox, where it increases animation FPS\n private increaseVideoTimePrecision(videoElement: HTMLVideoElement) {\n const currentTimeProperty = Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, \"currentTime\");\n\n let lastCurrentTime = null;\n let lastMarkedTime = null;\n let lastTotalTime = null;\n\n let needsRecalculation = false;\n let wasPlayingBefore = false;\n\n Object.defineProperty(videoElement, \"currentTime\", {\n get() {\n const currentTime = currentTimeProperty.get.call(videoElement) as number;\n\n const hasPlaybackData = videoElement.readyState > 2;\n const hasSeekedBackwards = currentTime < lastCurrentTime;\n\n const isPlaying = !(videoElement.paused || videoElement.ended) && hasPlaybackData;\n\n if (isPlaying || (needsRecalculation || hasSeekedBackwards)) {\n\n if (lastCurrentTime !== currentTime || !wasPlayingBefore) {\n lastCurrentTime = currentTime;\n lastMarkedTime = performance.now();\n }\n\n const totalTime = currentTime + (performance.now() - lastMarkedTime) / 1000;\n\n // Sometimes when resuming a video, totalTime can be smaller than lastTotalTime\n // This will result in a jarring animation, so we ignore it\n if (totalTime - lastTotalTime > 0 || hasSeekedBackwards) {\n lastTotalTime = totalTime;\n }\n\n needsRecalculation = false;\n }\n\n wasPlayingBefore = isPlaying;\n\n return lastTotalTime;\n },\n\n set(currentTime: number) {\n currentTimeProperty.set.call(this, currentTime);\n\n needsRecalculation = true;\n }\n });\n\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={(wasChanging) => this.handleSeekEnd(wasChanging)}\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(wasChanging: boolean) {\n this.setState({\n isSeeking: false\n });\n\n if (wasChanging) {\n this.props.onSeekEnd();\n }\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: (wasChanging: boolean) => 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 { 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 { 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\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.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}\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 { 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\";\nimport { BrowserFeatureDetector } from \"../utils/BrowserFeatureDetector\";\nimport { MusicManager } from \"@manager/scenarioRunner/musicManager/MusicManager\";\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.musicManager.MusicManager) private musicManager: MusicManager) {\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 if (BrowserFeatureDetector.isMobileDevice()) {\n this.installAutoPause();\n }\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.musicManager.load(scenarioElement.music);\n }\n this.controlsLayerManager.showLoader();\n\n const scenarioResources = this.scenarioLoader.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.musicManager.changeSource(initialScEl.music.musicUrl);\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 });\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 private installAutoPause(): void {\n let shouldResume = false;\n\n const onBlur = () => {\n shouldResume = this.videoLayerManager.getIsPlaying();\n\n this.pause();\n };\n\n const onFocus = () => {\n if (shouldResume) {\n this.play();\n }\n };\n\n ListenerHelper.addEventListener(\"document\", \"visibilitychange\", () => {\n if (document.visibilityState === \"hidden\") {\n onBlur();\n } else {\n onFocus();\n }\n });\n }\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 { 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 { 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\";\nimport { BaseMusicManager, MusicManager } from \"../scenarioRunner/musicManager/MusicManager\";\n\nexport const createApplicationContext = (\n playerContainer: PlayerContainer,\n animationLayer: AnimationLayer,\n controlsLayer: ControlsLayer,\n ctaLayer: CTALayer,\n posterLayer: PosterLayer,\n videoLayer: VideoLayer,\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\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 container.bind(TYPES.scenarioRunner.musicManager.MusicManager)\n .to(BaseMusicManager).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 musicManager: {\n MusicManager: \"MusicManager\"\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 this.configuredSenders.push(this.googleAnalyticsSender);\n 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 { TYPES } from \"../di/types\";\nimport { ResourceLoader } from \"../loader/resourceLoader/ResourceLoader\";\nimport { AnalyticsEvent } from \"./AnalyticEvent\";\nimport { AnalyticsSender } from \"./AnalyticsSender\";\nimport ReactGA from \"react-ga4\";\n\ndeclare global {\n interface Window {\n vintomGADataLayer: any[];\n vintomGtag: (...args: any) => void;\n }\n}\nlet projectCode: string;\n\nexport interface GoogleAnalyticsSender extends AnalyticsSender {\n initialize(gaServiceTrackers: string[], campaign: string): void;\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): void {\n projectCode = campaign;\n\n ReactGA.initialize(\n gaServiceTrackers.map((gaServiceTracker) => ({\n trackingId: gaServiceTracker,\n debug_mode: true,\n gtagOptions: {\n campaign_name: projectCode\n }\n })));\n }\n\n sendEvent(event: AnalyticsEvent): void {\n const eventAction =\n event.type === \"SCENARIO_ELEMENT_PROGRESS\"\n ? `PROGRESS_${event.progress}`\n : event.type;\n\n const eventLabel = this.serializeEventToAction(event);\n\n if (eventAction !== undefined && event.type !== \"SCENARIO_ELEMENT_PLAYING\" && event.type !== \"SCENARIO_ELEMENT_START\") {\n ReactGA.event({\n category: projectCode,\n action: projectCode + \": \" + eventAction,\n 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 { PlayerContainerManager } from \"./layerManager/PlayerContainerManager\";\nimport { PosterLayerManager } from \"./layerManager/PosterLayerManager\";\nimport { VideoLayerManager } from \"./layerManager/VideoLayerManager\";\nimport { ScenarioExecutor } from \"./ScenarioExecutor\";\nimport { MusicManager } from \"@manager/scenarioRunner/musicManager/MusicManager\";\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.musicManager.MusicManager) private musicLayerManager: MusicManager,\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 { PlayerContainerManager } from \"./layerManager/PlayerContainerManager\";\nimport { PosterLayerManager } from \"./layerManager/PosterLayerManager\";\nimport { VideoLayerManager } from \"./layerManager/VideoLayerManager\";\nimport { ScenarioExecutor } from \"./ScenarioExecutor\";\nimport { MusicManager } from \"@manager/scenarioRunner/musicManager/MusicManager\";\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.musicManager.MusicManager) private musicManager: MusicManager,\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 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 onPlayerContextMenu: (x: number, y: number) => this.controlsLayerManager.showPlayerInfoTooltip(x, y),\n onPlayerInteractionEnd: () => this.controlsLayerManager.userInteractionEnded(),\n onPlayerInteraction: () => this.controlsLayerManager.userInteractedWithPlayer(),\n onPlayerClick: () => {\n this.controlsLayerManager.userClickedPlayer();\n }\n });\n\n this.videoLayerManager.registerObserver({\n onEnded: () => {\n this.controlsLayerManager.scenarioElementEnded();\n this.posterLayerManager.scenarioElementEnded();\n this.playerAPI.onScenarioElementEnd();\n // this.musicManager.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.musicManager.pause();\n },\n onSeekStart: () => {\n this.videoLayerManager.pause();\n this.musicManager.pause();\n this.playerAPI.onSeek();\n },\n onPlay: () => {\n this.videoLayerManager.play();\n this.musicManager.play();\n }, \n onReloadFrame: () => this.videoLayerManager.reloadFrame(),\n onSeekTo: (time) => {\n this.videoLayerManager.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 },\n onMutedChange: (isMuted: boolean) => {\n this.scenarioGlobalState = this.scenarioGlobalState.withMuted(isMuted);\n this.videoLayerManager.changeMuted(isMuted);\n // this.musicManager.(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 { 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 if (this.scenarioElement.poster) {\n this.doShowPoster(this.scenarioElement.poster);\n }\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\";\nimport { ScenarioElement } from \"../../../model/playerConfiguration/ScenarioElement\";\nimport { QualityLevel } from \"../../../model/qualityLevel/QualityLevel\";\nimport { ScenarioPath } from \"../../../model/scenarioPath/ScenarioPath\";\nimport { TYPES } from \"../../di/types\";\nimport { VideoLayer } from \"../../layer/VideoLayer\";\nimport { VideoLayerObserver } from \"../../layerObserver/VideoLayerObserver\";\n\nexport interface VideoLayerManager {\n newScenarioElement(scenarioPath: ScenarioPath): void;\n loadVideoAndGetDuration(progress: number): Promise;\n getCurrentSeekTime(): number;\n getCurrentFrameTime(): number;\n getBufferedTime(): number;\n getTotalTime(): number;\n getVolume(): number;\n getIsPlaying(): boolean;\n getIsFullyLoaded(): boolean;\n getIsWaiting(): boolean;\n play(): void;\n pause(): void;\n moveTo(time: number): void;\n reloadFrame(): void;\n changeVolume(volume: number): void;\n changeMuted(isMuted: boolean): void;\n getBandwidth(): number;\n getQualityLevels(): QualityLevel[];\n activateSubtitles(source: string): void;\n registerObserver(observer: VideoLayerObserver): void;\n initializeLayer(): void;\n hide(): void;\n}\n\n@injectable()\nexport class VideoLayerManagerImpl implements VideoLayerManager {\n\n private scenarioElement: ScenarioElement;\n\n constructor(@inject(TYPES.layer.VideoLayer) private layer: VideoLayer) {}\n\n newScenarioElement(scenarioPath: ScenarioPath): void {\n this.scenarioElement = scenarioPath.currentElement;\n }\n\n loadVideoAndGetDuration(progress: number): Promise {\n return this.layer.loadVideo(this.scenarioElement.video.sources, this.scenarioElement.video.subtitles, progress)\n .then(() => this.layer.getTotalTime());\n }\n\n getCurrentSeekTime(): number {\n return this.layer.getCurrentSeekTime();\n }\n\n getCurrentFrameTime(): number {\n return this.layer.getCurrentFrameTime();\n }\n\n getBufferedTime(): number {\n return this.layer.getBufferedTime();\n }\n\n getTotalTime(): number {\n return this.layer.getTotalTime();\n }\n\n getVolume(): number {\n return this.layer.getVolume();\n }\n\n getIsPlaying(): boolean {\n return this.layer.getIsPlaying();\n }\n\n getIsFullyLoaded(): boolean {\n return this.layer.getIsFullyLoaded();\n }\n\n getIsWaiting(): boolean {\n return this.layer.getIsWaiting();\n }\n\n play(): void {\n this.layer.play();\n }\n\n pause(): void {\n this.layer.pause();\n }\n\n moveTo(time: number): void {\n this.layer.moveTo(time);\n }\n\n reloadFrame(): void {\n this.layer.reloadFrame();\n }\n\n changeVolume(volume: number): void {\n this.layer.changeVolume(volume);\n }\n\n changeMuted(isMuted: boolean): void {\n this.layer.changeMuted(isMuted);\n }\n\n getBandwidth(): number {\n return this.layer.getBandwidth();\n }\n\n getQualityLevels(): QualityLevel[] {\n return this.layer.getQualityLevels();\n }\n\n activateSubtitles(source: string): void {\n this.layer.activateSubtitles(source);\n }\n\n registerObserver(observer: VideoLayerObserver): void {\n this.layer.registerObserver(observer);\n }\n\n initializeLayer(): void {\n this.layer.initializeLayer();\n }\n\n hide(): void {\n this.layer.hide();\n }\n\n}","import { inject, injectable } from \"inversify\";\nimport { VideoLayer } from \"../../layer/VideoLayer\";\nimport { TYPES } from \"../../di/types\";\nimport { BrowserFeatureDetector } from \"../../../utils/BrowserFeatureDetector\";\nimport { Soundtrack } from \"../../../model/playerConfiguration/Soundtrack\";\n\ntype AudioState = \"notPlaying\" | \"playing\" | \"fadingIn\" | \"fadingOut\";\n\nexport interface MusicManager {\n play(): void;\n\n pause(): void;\n\n changeSource(src: string): void;\n\n load(soundtrack: Soundtrack);\n}\n\n@injectable()\nexport class BaseMusicManager implements MusicManager {\n\n startOffset: number = 0;\n endOffset: number = 0;\n fadeInDuration: number = 0;\n fadeOutDuration: number = 0;\n\n private static UPDATE_INTERVAL = 30;\n\n private audio: HTMLAudioElement;\n\n private shouldBePlaying: boolean = false;\n\n private previousState: AudioState = \"notPlaying\";\n\n private initialized = false;\n\n private get endTime() {\n return this.videoLayer.getTotalTime() - this.endOffset - 0.1;\n }\n\n private get startTime() {\n return this.startOffset;\n }\n\n private get videoTime() {\n return this.videoLayer.getCurrentSeekTime();\n }\n\n constructor(\n @inject(TYPES.layer.VideoLayer) protected videoLayer: VideoLayer\n ) {\n this.audio = new Audio();\n this.audio.volume = 0;\n\n if (BrowserFeatureDetector.isIOS()) {\n this.installSafariWorkaround();\n }\n\n }\n\n changeSource(src: string): void {\n this.audio.src = src;\n this.audio.load();\n }\n\n load(soundtrack: Soundtrack) {\n this.endOffset = soundtrack.endOffset;\n this.startOffset = soundtrack.startOffset;\n this.fadeInDuration = soundtrack.fadeInDuration;\n this.fadeOutDuration = soundtrack.fadeOutDuration;\n\n this.changeSource(soundtrack.musicUrl);\n }\n\n pause(): void {\n this.shouldBePlaying = false;\n }\n\n play(): void {\n this.sync();\n\n this.shouldBePlaying = true;\n\n if (!this.initialized) {\n // We want to install it on the first play, because player can be in uninitialized state\n // and if we try to get currentTime or volume it will throw an error\n this.installLoop();\n\n this.initialized = true;\n }\n }\n\n private sync(maxAcceptableTimeDifference: number = 0): void {\n const desiredAudioTime = this.videoTime - this.startOffset;\n\n if (Math.abs(this.audio.currentTime - desiredAudioTime) > maxAcceptableTimeDifference) {\n this.audio.currentTime = desiredAudioTime;\n }\n }\n\n private calculateAudioState(): AudioState {\n const videoTime = this.videoTime;\n\n if (!this.shouldBePlaying || videoTime < this.startTime || videoTime >= this.endTime) {\n return \"notPlaying\";\n } else if (videoTime >= this.startTime && videoTime < this.startTime + this.fadeInDuration) {\n return \"fadingIn\";\n } else if (videoTime > this.endTime - this.fadeOutDuration && videoTime < this.endTime) {\n return \"fadingOut\";\n } else {\n return \"playing\";\n }\n }\n\n private doUpdate(): void {\n const state = this.calculateAudioState();\n\n if (state === \"notPlaying\") {\n if (!this.audio.paused) {\n this.shouldBePlaying = false;\n this.audio.pause();\n }\n } else {\n let volume = this.videoLayer.getVolume();\n\n if (state === \"fadingIn\") {\n volume = (this.videoTime - this.startTime) / this.fadeInDuration * this.videoLayer.getVolume();\n }\n\n if (state === \"fadingOut\") {\n volume = (this.endTime - this.videoTime) / this.fadeOutDuration * this.videoLayer.getVolume();\n }\n\n this.audio.volume = volume;\n\n if (this.audio.paused && this.videoLayer.getReadyState() > 2) {\n this.sync();\n\n this.audio.play();\n }\n\n }\n\n this.previousState = state;\n }\n\n private installLoop() {\n setInterval(this.doUpdate.bind(this), BaseMusicManager.UPDATE_INTERVAL);\n\n this.doUpdate();\n }\n\n /**\n * Safari browsers require the first audio play to be a result of user interaction\n */\n private installSafariWorkaround() {\n const initializeAudioPlayer = () => {\n this.audio.volume = 0;\n this.audio.play().then(() => {\n this.audio.pause();\n this.sync();\n });\n\n window.removeEventListener(\"click\", initializeAudioPlayer);\n };\n\n window.addEventListener(\"click\", initializeAudioPlayer);\n }\n\n}\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\";\n\nexport class Soundtrack {\n\n constructor(\n @Field(\"u\", true) public musicUrl: string,\n @Field(\"so\", true) public startOffset: number = 0,\n @Field(\"eo\", true) public endOffset: number = 0,\n @Field(\"fid\", true) public fadeInDuration: number = 0,\n @Field(\"fod\", true) public fadeOutDuration: number = 1500\n ) {\n this.changeMillisecondsToSeconds();\n this.validate();\n }\n\n private changeMillisecondsToSeconds() { \n this.startOffset /= 1000;\n this.endOffset /= 1000;\n this.fadeInDuration /= 1000;\n this.fadeOutDuration /= 1000;\n }\n\n private validate() {\n\n if (!this.musicUrl || this.musicUrl === \"\") {\n throw new JsonParseError(\"musicUrl must be defined)\", JsonParseErrorCode.VALIDATION_FAILED);\n }\n\n }\n\n}\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\";\n\nconst parser = new UAParser(navigator.userAgent);\n\nconst isAndroid = () => /Android/i.test(navigator.userAgent);\nconst isMobileDevice = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\nconst isFullscreenSupported = () => parser.getOS().name.toLowerCase() !== \"ios\";\nconst getBrowserName = () => parser.getBrowser().name.toLowerCase();\nconst isSafari = () => getBrowserName().indexOf(\"safari\") !== -1 || getBrowserName() === \"ios\";\nconst isIE = () => getBrowserName() === \"ie\";\nconst isFirefox = () => getBrowserName() === \"firefox\";\nconst isChrome = () => getBrowserName() === \"chrome\" || getBrowserName() === \"crios\";\nconst isDashSupported = () => !isSafari();\nconst getBrowserMajorVersion = () => Number(parser.getBrowser().version.split(\".\")[0]);\nconst getOS = () => parser.getOS().version;\nconst isIOS = () => parser.getOS().name.toLowerCase() === \"ios\";\n\nexport const BrowserFeatureDetector = {\n getBrowserName,\n getBrowserMajorVersion,\n getOS,\n isMobileDevice,\n isFullscreenSupported,\n isIE,\n isFirefox,\n isChrome,\n isSafari,\n isAndroid,\n isDashSupported,\n isIOS,\n};\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: \"huawei browser\", minVersion: 11 },\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(/