/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
presto-player
/
dist
/
components
/
web-components
/
Upload File
HOME
{"version":3,"file":"presto-playlist.entry.esm.js","sources":["src/components/core/features/presto-playlist/presto-playlist.scss?tag=presto-playlist&encapsulation=shadow","src/components/core/features/presto-playlist/presto-playlist.tsx"],"sourcesContent":[":host {\n display: block;\n overflow: hidden;\n}\npresto-player {\n opacity: 0;\n visibility: hidden;\n transition: 0.35s opacity, 0.35s visibility;\n\n &.ready {\n opacity: 1;\n visibility: visible;\n }\n}\n","import { Component, h, Prop, State, Watch, Listen, Element } from '@stencil/core';\n\nimport { PlaylistItem } from '../../../../interfaces';\nimport { isIOS } from '../../../../util';\n\n@Component({\n tag: 'presto-playlist',\n styleUrl: 'presto-playlist.scss',\n shadow: true,\n})\nexport class PrestoPlaylist {\n @Element() el: HTMLElement;\n\n /** Overlay component */\n private overlay: any;\n\n /** Array of videos from the Playlist */\n @Prop() items: Array<PlaylistItem>;\n\n /** Title for the Playlist */\n @Prop() heading: string;\n\n /** Count prefix string for the Playlist - Singular */\n @Prop() listTextSingular: string;\n\n /** Count prefix string for the Playlist - Plural */\n @Prop() listTextPlural: string;\n\n /** Transition duration for next video. */\n @Prop() transitionDuration: number = 5;\n\n /** Stores current video that is shown in the preview. */\n @State() currentPlaylistItem: PlaylistItem;\n\n /** Stores current video Plyr object that is shown in the preview. */\n @State() currentPlyr: any;\n\n /** Is a video playing. */\n @State() playing: boolean = false;\n\n /**\n * Listening to the Rewatch Video button click event.\n */\n @Listen('rewatch')\n rewatch() {\n this.handlePlay();\n }\n\n /**\n * Listening to the Next Video button click event.\n */\n @Listen('next')\n next() {\n this.handleNext();\n }\n\n /**\n * Plays the video, adds overlay and Presto Video styles as soon as a new object is assigned.\n * @param value Current value\n * @param previousValue Previous value\n */\n @Watch('currentPlyr')\n handleCurrentPlay(value, previousValue) {\n if (!value) return;\n\n // add the overlay.\n this.addOverlay();\n\n // add styles from the current video config.\n this.currentPlyr.elements.container.getRootNode().host.style = this.currentPlaylistItem.config.styles;\n\n // iOS has strict autoplay policies, so we rely on user interaction for playback.\n if (isIOS()) {\n return;\n }\n\n // if we have a previous value, then we need to autoplay the video since we are switching.\n if (previousValue !== undefined) {\n // Restore audio (YouTube starts playing on seek if the video hasn't been played yet)\n if (this.currentPlyr.provider === 'youtube' && !this.currentPlyr.muted && this.currentPlyr?.embed) {\n this.currentPlyr.embed.unMute();\n }\n\n this.currentPlyr.play();\n }\n }\n\n /**\n * Resets the playing state whenever the current playlist item changes.\n * This ensures the playing state starts fresh with each new video selection.\n */\n @Watch('currentPlaylistItem')\n resetPlayingStateOnItemChange() {\n this.playing = false;\n }\n\n /**\n * Adds overlay to the player which will regulate the Next video button.\n */\n addOverlay() {\n // create overlay\n this.overlay = document.createElement('presto-playlist-overlay');\n // assign properties.\n this.overlay.nextItemTitle = this.getNextItemTitle();\n this.overlay.isLastItem = this.isLastItem();\n this.overlay.nextItemString = this?.listTextSingular || 'Video';\n this.overlay.transitionDuration = this.transitionDuration;\n // append\n this.currentPlyr.elements?.container?.closest('.presto-player__wrapper').append(this.overlay);\n }\n\n /**\n * Lifecycle: Component will load.\n */\n componentWillLoad() {\n // Select the first video as a current video to be shown in the playlist.\n this.currentPlaylistItem = this?.items?.[0] || null;\n }\n\n /**\n * Handles the click on the playlist item.\n * @param item PlaylistItem\n */\n handleItemClick(item: PlaylistItem) {\n if (this.overlay) {\n this.overlay.show = false;\n }\n this.el.style.height = this.el.offsetHeight + 'px';\n this.el.style.width = this.el.offsetWidth + 'px';\n this.currentPlaylistItem = item;\n }\n\n /**\n * Assign the next item in the playlist as a current item.\n */\n handleNext() {\n this.overlay.show = false;\n this.currentPlaylistItem = this.getNextItem() || this.currentPlaylistItem;\n }\n\n /**\n * Play the current video.\n */\n handlePlay() {\n if (this.overlay) {\n this.overlay.show = false;\n }\n this.currentPlyr.play();\n }\n\n /**\n * Pause the current video.\n */\n handlePause() {\n this.overlay.show = false;\n this.currentPlyr.pause();\n }\n\n /**\n * Get the next item in the playlist.\n * @returns PlaylistItem Next item in the playlist.\n */\n getNextItem() {\n if (this.isLastItem()) return this.items[0];\n\n let nextItem: PlaylistItem;\n for (let i = 0; i < this.items?.length; i++) {\n if (this.items[i]?.id === this.currentPlaylistItem?.id && this.items?.length !== i + 1) {\n nextItem = this.items[i + 1];\n break;\n }\n }\n return nextItem;\n }\n\n /**\n * Checks if the current item is the last item in the playlist.\n * @returns boolean True if the current item is the last item in the playlist.\n */\n isLastItem() {\n const lastIndex = this.items?.length - 1;\n return this.items[lastIndex]?.id === this.currentPlaylistItem?.id;\n }\n\n /**\n * Get the title of the next item in the playlist.\n * @returns string Title of the next item in the playlist.\n */\n getNextItemTitle() {\n const nextItem = this.getNextItem();\n if (undefined !== nextItem) {\n return nextItem?.title || nextItem?.config?.title;\n }\n return '';\n }\n\n /**\n * Rendering the component.\n * @returns Web Component\n */\n render() {\n if (!this.items?.length) return '';\n\n const listTextS = this.listTextSingular ? this.listTextSingular : 'Video';\n const listTextP = this.listTextPlural ? this.listTextPlural : 'Videos';\n\n return (\n <presto-playlist-ui>\n {!!this.currentPlaylistItem.config?.src ? (\n <presto-player\n slot=\"preview\"\n src={this.currentPlaylistItem.config?.src}\n {...this.currentPlaylistItem.config}\n videoId={this.currentPlaylistItem.config?.id}\n id={`presto-player-${this.currentPlaylistItem.config?.id}`}\n media-title={this.currentPlaylistItem.config?.title}\n class={this.currentPlaylistItem.config?.playerClass}\n key={this.currentPlaylistItem.config?.id}\n provider={this.currentPlaylistItem.config?.provider}\n onPlayerReady={e => {\n this.currentPlyr = e.detail;\n this.el.style.height = null;\n this.el.style.width = null;\n }}\n onPlayedMedia={() => (this.playing = true)}\n onPausedMedia={() => (this.playing = false)}\n onEndedMedia={() => (this.overlay.show = true)}\n />\n ) : (\n <slot name=\"unauthorized\" slot=\"preview\" />\n )}\n\n <div slot=\"title\">{this.heading || 'Playlist'}</div>\n\n <div slot=\"count\">\n {this.items.length} {this.items.length > 1 ? listTextP : listTextS}\n </div>\n\n {this.items.map(item => {\n return (\n <presto-playlist-item\n slot=\"list\"\n onClick={() => this.handleItemClick(item)}\n active={this.currentPlaylistItem?.id === item?.id}\n playing={this.currentPlaylistItem?.id === item?.id && this.playing}\n class={this.currentPlaylistItem?.id === item?.id ? 'active' : ''}\n key={item?.id}\n onTriggerPause={() => this.handlePause()}\n onTriggerPlay={() => this.handlePlay()}\n >\n <span slot=\"item-title\">\n <span>{item?.title || item?.config?.title}</span>\n </span>\n <span slot=\"item-duration\">\n <span>{item?.duration}</span>\n </span>\n </presto-playlist-item>\n );\n })}\n </presto-playlist-ui>\n );\n }\n}\n"],"names":[],"mappings":"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"}