{"version":3,"file":"marketing-BiWdxwml.js","sources":["../../../node_modules/@slideslive/fuse-kit/dist/utils/utilities/browser_locale.js","../../../node_modules/@slideslive/fuse-kit/dist/modules/timer/index.js","../../../app/components/marketing/header_component/header_component.js","../../../app/components/marketing/home/hero_component/hero_component.js","../../../app/frontend/modules/slideslive_embed/slideslive_embed_host.js","../../../app/frontend/modules/slideslive_embed/slideslive_embed_initializer.js","../../../app/frontend/modules/slideslive_embed/slideslive_embed.js","../../../app/components/marketing/home/player_component/player_component.js","../../../app/components/marketing/home/showreel_modal_component/showreel_modal_component.js","../../../app/components/marketing/old_order/form_base_component/form_base_component.js","../../../app/components/marketing/old_order/show/form_component/form_component.js","../../../app/components/marketing/old_order/show/recording_type_select_component/recording_type_select_component.js","../../../app/components/marketing/order/consultation_form_component/consultation_form_component.js","../../../app/components/marketing/order/consultation_modal_component/consultation_modal_component.js","../../../app/components/marketing/references/container_component/container_component.js","../../../app/components/marketing/references/list/filter_component/filter_component.js","../../../app/components/marketing/references/list/list_component/list_component.js","../../../app/components/marketing/section_bg_component/section_bg_component.js","../../../app/components/marketing/slide_show_component/slide_show_component.js","../../../app/components/marketing/video_component/video_component.js","../../../app/frontend/entrypoints/marketing.js"],"sourcesContent":["function browserLocale({ countryCodeOnly = true, defaultLocale = void 0 } = {}) {\n const navigatorLocale = navigator.languages !== void 0 ? navigator.languages[0] : navigator.language;\n if (!navigatorLocale) {\n return defaultLocale;\n }\n return countryCodeOnly ? navigatorLocale.trim().split(/[-_]/)[0] : navigatorLocale.trim();\n}\nexport {\n browserLocale as default\n};\n","class Timer {\n constructor(delay, callback, options = {}) {\n this.delay = delay;\n this.callback = callback;\n this.options = options;\n this.state = \"initialized\";\n this.timeoutId = null;\n this.startTime = null;\n this.remainingTime = this.delay;\n }\n start() {\n this.state = \"started\";\n this.startTime = Date.now();\n this.remainingTime = this.delay;\n clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => {\n this.callback();\n if (this.options.repeat) {\n this.start();\n }\n }, this.remainingTime);\n }\n stop() {\n this.state = \"stopped\";\n clearTimeout(this.timeoutId);\n }\n pause() {\n if (this.state !== \"started\") return;\n this.state = \"paused\";\n clearTimeout(this.timeoutId);\n this.remainingTime -= Date.now() - this.startTime;\n }\n resume() {\n if (this.state !== \"paused\") return;\n this.state = \"started\";\n this.startTime = Date.now();\n clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => {\n this.callback();\n if (this.options.repeat) {\n this.start();\n }\n }, this.remainingTime);\n }\n reset() {\n this.start();\n }\n toggle() {\n if (this.state === \"started\") {\n this.pause();\n } else {\n this.resume();\n }\n }\n}\nexport {\n Timer as default\n};\n","import ApplicationController from 'modules/application_controller';\n\nexport default class extends ApplicationController {\n static get targets() {\n return ['item'];\n }\n\n connect() {\n if (this.isTurboPreview) {\n this.selectByLocation();\n }\n }\n\n updateCurrentItem(event) {\n this.selectItem(event.currentTarget);\n }\n\n selectItem(item) {\n for (const it of this.itemTargets) {\n this.updateUnselectedItem(it);\n }\n\n this.updateSelectedItem(item);\n item.focus();\n }\n\n selectByLocation() {\n const path = `${window.location.origin}${window.location.pathname}`;\n\n for (const it of this.itemTargets) {\n if (it.href === path) {\n this.updateSelectedItem(it);\n } else {\n this.updateUnselectedItem(it);\n }\n }\n }\n\n updateUnselectedItem(item) {\n item.setAttribute('aria-current', false);\n }\n\n updateSelectedItem(item) {\n item.setAttribute('aria-current', true);\n }\n}\n","import ApplicationController from 'modules/application_controller';\n\nexport default class extends ApplicationController {\n static get outlets() {\n return ['marketing--home--showreel-modal'];\n }\n\n openShowreel() {\n if (!this.hasMarketingHomeShowreelModalOutlet) return;\n\n this.marketingHomeShowreelModalOutlet.open();\n }\n}\n","import { isVariableDefinedNotNull } from '@slideslive/fuse-kit/utils';\n\nfunction slidesLiveEmbedHost(defaultHost) {\n if (isVariableDefinedNotNull(defaultHost) && defaultHost !== '') {\n return defaultHost;\n }\n\n return 'https://slideslive.com';\n}\n\nexport default slidesLiveEmbedHost;\n","import { ajax, toParamsQueryString } from '@slideslive/fuse-kit/utils';\nimport 'modules/polyfills/other/location_origin';\n\nimport slidesLiveEmbedHost from './slideslive_embed_host';\n\nconst RECENT_EMBED_COUNT_LIMIT = 5;\nconst RECENT_EMBED_COUNT_RESET_TIMEOUT = 60000;\n\nconst props = {\n host: null,\n initialized: false,\n initializing: false,\n queue: [],\n userUuid: null,\n};\n\nexport default class SlidesLiveEmbedInitializer {\n static initialize() {\n props.initializing = true;\n\n const params = {\n embed_parent_url: window.location.href,\n embed_origin: window.location.origin,\n };\n\n const host = slidesLiveEmbedHost(props.host);\n const url = `${host}/embed/init?${toParamsQueryString(params)}`;\n\n ajax('GET', url, undefined, {\n noXRequestedWithHeader: true,\n noAcceptHeader: true,\n withCredentials: true,\n success: (request) => this.initializeSuccess(request),\n error: (request) => this.initializeError(request),\n });\n }\n\n static initializeSuccess(request) {\n const response = JSON.parse(request.responseText);\n\n props.embedInitToken = response.embed_init_token;\n props.userUuid = response.user_uuid;\n props.initialized = true;\n\n for (const callback of props.queue) {\n callback(props.userUuid, props.embedInitToken);\n }\n\n props.queue = null;\n }\n\n static initializeError(request) {\n console.warn('SlidesLive Embed Initializer: failed.', request);\n }\n\n static load(host, callback) {\n if (!props.initialized && !props.initializing) {\n props.host = host;\n\n this.initialize();\n }\n\n if (!window._slidesLiveEmbedTotalEmbedCount) {\n window._slidesLiveEmbedTotalEmbedCount = 0;\n }\n\n if (!window._slidesLiveEmbedRecentEmbedCount) {\n window._slidesLiveEmbedRecentEmbedCount = 0;\n }\n\n window._slidesLiveEmbedTotalEmbedCount += 1;\n window._slidesLiveEmbedRecentEmbedCount += 1;\n\n let loadDelay = 0;\n let disableAutoLoad = false;\n if (window._slidesLiveEmbedRecentEmbedCount > RECENT_EMBED_COUNT_LIMIT) {\n loadDelay = (window._slidesLiveEmbedRecentEmbedCount / RECENT_EMBED_COUNT_LIMIT) * 300;\n loadDelay += Math.random() * 3000;\n disableAutoLoad = true;\n }\n\n if (window._slidesLiveEmbedTotalEmbedCount > RECENT_EMBED_COUNT_LIMIT) {\n console.warn(\n `High number of SlidesLive embeds (> ${RECENT_EMBED_COUNT_LIMIT}) loaded recently has been detected on this page. Videos might not work properly. Report this to this page's owner.`,\n 'Total embed count:',\n window._slidesLiveEmbedTotalEmbedCount,\n 'Recent embed count:',\n window._slidesLiveEmbedRecentEmbedCount,\n 'Load delay:',\n loadDelay,\n 'Autoload disabled:',\n disableAutoLoad,\n );\n }\n\n if (window._slidesLiveEmbedRecentEmbedCountResetTimeout) {\n clearTimeout(window._slidesLiveEmbedRecentEmbedCountResetTimeout);\n window._slidesLiveEmbedRecentEmbedCountResetTimeout = null;\n }\n\n window._slidesLiveEmbedRecentEmbedCountResetTimeout = setTimeout(() => {\n window._slidesLiveEmbedRecentEmbedCount = 0;\n }, RECENT_EMBED_COUNT_RESET_TIMEOUT);\n\n const callbackWithDelay = (userUuid, embedInitToken) => {\n if (loadDelay > 0) {\n setTimeout(() => callback(userUuid, embedInitToken, { disableAutoLoad }), loadDelay);\n } else {\n callback(userUuid, embedInitToken, { disableAutoLoad });\n }\n };\n\n if (props.initialized) {\n callbackWithDelay(props.userUuid, props.embedInitToken);\n } else {\n props.queue.push(callbackWithDelay);\n }\n }\n}\n","import {\n addListener,\n browserLocale,\n isVariableDefinedNotNull,\n removeListener,\n toParamsQueryString,\n urlParam,\n viewportHeight,\n} from '@slideslive/fuse-kit/utils';\nimport 'modules/polyfills/other/location_origin';\n\nimport slidesLiveEmbedHost from './slideslive_embed_host';\nimport SlidesLiveEmbedInitializer from './slideslive_embed_initializer';\n\nexport default class SlidesLiveEmbed {\n constructor(embedContainerId, options) {\n this.container = document.getElementById(embedContainerId);\n if (!isVariableDefinedNotNull(this.container)) {\n console.warn(`SlidesLive Embed: loading failed! Container #${embedContainerId} not found.`);\n return;\n }\n\n this.windowMessageEventListener = null;\n this.windowResizeEventListener = null;\n\n this.props = {\n userUuid: undefined,\n disableAutoLoad: false,\n state: 'none',\n currentTime: 0,\n duration: 0,\n volume: null,\n muted: null,\n availablePlaybackRates: null,\n playbackRate: null,\n availableSubtitles: null,\n activeSubtitles: null,\n zoomRatio: null,\n size: null,\n };\n\n this.loadOptions(embedContainerId, options);\n this.loadCallbacks(options);\n\n SlidesLiveEmbedInitializer.load(this.options.host, (userUuid, embedInitToken, { disableAutoLoad = false } = {}) =>\n this.load(userUuid, embedInitToken, { disableAutoLoad }),\n );\n }\n\n load(userUuid, embedInitToken, { disableAutoLoad = false } = {}) {\n this.props.userUuid = userUuid;\n this.props.embedInitToken = embedInitToken;\n this.props.disableAutoLoad = disableAutoLoad;\n\n this.addListeners();\n this.createHtml();\n }\n\n destroy() {\n this.removeListeners();\n\n this.iframe = undefined;\n this.container.innerHTML = '';\n }\n\n loadOptions(embedContainerId, options) {\n this.options = {\n embedContainerId,\n presentationId: parseInt(options.presentationId || 0, 10),\n autoLoad: isVariableDefinedNotNull(options.autoLoad) ? !!options.autoLoad : true,\n autoPlay: !!options.autoPlay,\n startTime: options.startTime,\n startSlide: options.startSlide,\n hideZoomControls: isVariableDefinedNotNull(options.hideZoomControls) ? !!options.hideZoomControls : null,\n zoomRatio: parseFloat(options.zoomRatio),\n zoomHandleColor: options.zoomHandleColor,\n zoomSliderColor: options.zoomSliderColor,\n disableFullscreen: !!options.disableFullscreen,\n host: slidesLiveEmbedHost(options.host),\n locale: options.locale || browserLocale({ defaultLocale: 'en' }),\n live: !!options.live,\n account: options.account || '',\n folder: options.folder || '',\n liveAutoLoad: isVariableDefinedNotNull(options.liveAutoLoad) ? !!options.liveAutoLoad : true,\n width: isVariableDefinedNotNull(options.width) ? parseInt(options.width, 10) : null,\n verticalEnabled: isVariableDefinedNotNull(options.verticalEnabled) ? !!options.verticalEnabled : false,\n verticalEnabledOnMobile: isVariableDefinedNotNull(options.verticalEnabledOnMobile)\n ? !!options.verticalEnabledOnMobile\n : false,\n verticalDisabledWhenWidthGte: isVariableDefinedNotNull(options.verticalDisabledWhenWidthGte)\n ? parseInt(options.verticalDisabledWhenWidthGte, 10)\n : null,\n verticalWhenWidthLte: isVariableDefinedNotNull(options.verticalWhenWidthLte)\n ? parseInt(options.verticalWhenWidthLte, 10)\n : null,\n allowHiddenControlsWhenPaused: isVariableDefinedNotNull(options.allowHiddenControlsWhenPaused)\n ? !!options.allowHiddenControlsWhenPaused\n : false,\n registrationId: isVariableDefinedNotNull(options.registrationId) ? options.registrationId : null,\n defaultStreamQuality: options.defaultStreamQuality,\n debugSlidesLivePlayer: !!options.debugSlidesLivePlayer,\n\n registrationIdParamName: isVariableDefinedNotNull(options.registrationIdParamName)\n ? options.registrationIdParamName\n : 'slregid',\n fitToViewport: isVariableDefinedNotNull(options.fitToViewport) ? options.fitToViewport : true,\n debugCallbacks: !!options.debugCallbacks,\n maxHeight: isVariableDefinedNotNull(options.maxHeight) ? parseInt(options.maxHeight, 10) : null,\n customUserId: options.customUserId || '',\n };\n\n this.loadOptionsFromUrlParams();\n\n if (this.options.width <= 0) {\n this.options.width = null;\n }\n }\n\n loadOptionsFromUrlParams() {\n if (\n !isVariableDefinedNotNull(this.options.registrationId) &&\n isVariableDefinedNotNull(this.options.registrationIdParamName)\n ) {\n const registrationId = urlParam(this.options.registrationIdParamName);\n if (isVariableDefinedNotNull(registrationId)) {\n this.options.registrationId = registrationId;\n }\n }\n\n if (!this.options.debugSlidesLivePlayer) {\n const debugSlidesLivePlayer = urlParam('debug_slideslive_player');\n this.options.debugSlidesLivePlayer = debugSlidesLivePlayer && debugSlidesLivePlayer !== 'false';\n }\n }\n\n addCallback(name, callback) {\n if (!isVariableDefinedNotNull(this.callbacks[name])) {\n this.callbacks[name] = [];\n }\n\n this.callbacks[name].push(callback);\n }\n\n loadCallback(options, optionsParam, callbackName) {\n if (typeof options[optionsParam] === 'function') {\n this.addCallback(callbackName, options[optionsParam]);\n }\n }\n\n loadCallbacks(options) {\n this.callbacks = {};\n\n this.loadCallback(options, 'onLoad', 'load');\n this.loadCallback(options, 'onError', 'error');\n this.loadCallback(options, 'onStateChanged', 'stateChanged');\n this.loadCallback(options, 'onVolumeChanged', 'volumeChanged');\n this.loadCallback(options, 'onAvailablePlaybackRatesChanged', 'availablePlaybackRatesChanged');\n this.loadCallback(options, 'onPlaybackRateChanged', 'playbackRateChanged');\n this.loadCallback(options, 'onAvailableSubtitlesChanged', 'availableSubtitlesChanged');\n this.loadCallback(options, 'onActiveSubtitlesChanged', 'activeSubtitlesChanged');\n this.loadCallback(options, 'onSizeChanged', 'sizeChanged');\n this.loadCallback(options, 'onSlideUrl', 'slideUrl');\n this.loadCallback(options, 'onTimeUpdate', 'timeUpdate');\n\n if (!isVariableDefinedNotNull(this.callbacks.error)) {\n this.addCallback('error', (error) => {\n const timeout = Math.round(Math.random() * 20000 + 10000);\n\n if (error === 'no_live_event') {\n // eslint-disable-next-line no-console\n console.info('SlidesLive Embed: livestream not ready. Reload in', timeout, 'ms.');\n } else {\n console.warn('SlidesLive Embed: loading failed.', error);\n }\n\n if (this.options.liveAutoLoad) {\n setTimeout(() => this.reload(), timeout);\n }\n });\n }\n }\n\n addListeners() {\n let messageEvent = 'message';\n if (!isVariableDefinedNotNull(window.addEventListener)) {\n messageEvent = 'onmessage';\n }\n\n if (!this.windowMessageEventListener) {\n this.windowMessageEventListener = addListener(window, messageEvent, (event) => this.handleMessage(event));\n }\n\n if (this.options.fitToViewport && !this.windowResizeEventListener) {\n this.windowResizeEventListener = addListener(window, 'resize', () => {\n if (!this.isFullscreenActive) {\n this.updateSize();\n }\n });\n }\n }\n\n removeListeners() {\n if (this.windowMessageEventListener) {\n removeListener(window, { id: this.windowMessageEventListener });\n this.windowMessageEventListener = null;\n }\n\n if (this.windowResizeEventListener) {\n removeListener(window, { id: this.windowResizeEventListener });\n this.windowResizeEventListener = null;\n }\n }\n\n createIframe() {\n const sandboxAttributes = [\n 'allow-forms',\n 'allow-pointer-lock',\n 'allow-popups',\n 'allow-same-origin',\n 'allow-scripts',\n 'allow-top-navigation',\n ];\n\n if (typeof document.requestStorageAccess === 'function') {\n sandboxAttributes.push('allow-storage-access-by-user-activation');\n }\n\n const iframe = document.createElement('iframe');\n\n iframe.style.margin = '0 auto';\n iframe.style.display = 'block';\n iframe.style.width = '100%';\n\n iframe.setAttribute('src', this.embedUrl);\n iframe.setAttribute('height', '0');\n iframe.setAttribute('scrolling', 'no');\n iframe.setAttribute('frameBorder', '0');\n iframe.setAttribute('sandbox', sandboxAttributes.join(' '));\n iframe.setAttribute('allow', 'autoplay; fullscreen');\n\n iframe.setAttribute('allowfullscreen', '');\n iframe.setAttribute('webkitallowfullscreen', '');\n iframe.setAttribute('mozallowfullscreen', '');\n\n return iframe;\n }\n\n createHtml() {\n this.iframe = this.createIframe();\n this.container.style.width = '100%';\n this.container.appendChild(this.iframe);\n }\n\n handleMessage(event) {\n if (event.origin !== '*' && event.origin !== this.options.host) {\n return;\n }\n\n let data = event.data;\n if (typeof data === 'string') {\n if (data.trim() === '') {\n data = {};\n } else {\n data = JSON.parse(data.replace('/*framebus*/', ''));\n }\n }\n\n if (!data.slideslive || data.targetId !== this.options.embedContainerId) {\n return;\n }\n\n switch (data.method) {\n case 'setSize':\n this.setSize(data.height);\n break;\n case 'updateSizeRequest':\n this.updateSize();\n break;\n case 'ready':\n this.updateSize();\n break;\n case 'beforeLoad':\n this.updateSize();\n break;\n case 'load':\n this.updateSize();\n this.runCallback('load');\n break;\n case 'error':\n this.runCallback('error', data.name);\n break;\n case 'stateChanged':\n this.props.state = data.state;\n this.runCallback('stateChanged', data.state);\n break;\n case 'volumeChanged':\n this.props.volume = data.volume;\n this.props.muted = data.muted;\n this.runCallback('volumeChanged', data.volume, data.muted);\n break;\n case 'availablePlaybackRatesChanged':\n this.props.availablePlaybackRates = data.rates;\n this.runCallback('availablePlaybackRatesChanged', data.rates);\n break;\n case 'playbackRateChanged':\n this.props.playbackRate = data.rate;\n this.runCallback('playbackRateChanged', data.rate);\n break;\n case 'availableSubtitlesChanged':\n this.props.availableSubtitles = data.tracks;\n this.runCallback('availableSubtitlesChanged', data.tracks);\n break;\n case 'activeSubtitlesChanged':\n this.props.activeSubtitles = data.track;\n this.runCallback('activeSubtitlesChanged', data.track);\n break;\n case 'zoomRatioChanged':\n this.props.zoomRatio = data.ratio;\n this.runCallback('zoomRatioChanged', data.ratio);\n break;\n case 'sizeChanged':\n this.props.size = data.size;\n this.runCallback('sizeChanged', data.size);\n break;\n case 'timeUpdate':\n this.props.currentTime = data.currentTime;\n this.props.duration = data.duration;\n this.runCallback('timeUpdate', this.props.currentTime, this.props.duration);\n break;\n case 'slideUrl':\n this.runCallback('slideUrl', data.slide, data.url);\n break;\n default:\n console.warn('SlidesLive Embed: unknown method.', data);\n break;\n }\n }\n\n runCallback(callbackName, ...params) {\n if (isVariableDefinedNotNull(this.callbacks[callbackName])) {\n for (const callback of this.callbacks[callbackName]) {\n callback(...params);\n }\n }\n }\n\n sendMessage(method, data) {\n let message = data || {};\n\n message.method = method;\n message.slideslive = true;\n\n if (isVariableDefinedNotNull(window.ActiveXObject)) {\n message = JSON.stringify(message);\n }\n\n if (!this.iframe.contentWindow) {\n console.warn(\n 'SlidesLive Embed: iframe content window is null. Message not sent. If you want to destroy the embed make sure to call .destroy() method.',\n message,\n );\n } else if (this.iframe.contentWindow === window) {\n console.warn('SlidesLive Embed: iframe content window is main window. Message not sent.', message);\n } else {\n try {\n this.iframe.contentWindow.postMessage(message, this.options.host);\n } catch (e) {\n console.warn(message);\n console.warn(e);\n }\n }\n }\n\n updateSize() {\n if (!this.options.fitToViewport) return;\n\n const height = this.options.maxHeight ? Math.min(this.options.maxHeight, viewportHeight()) : viewportHeight();\n this.sendMessage('setAvailableSize', { height });\n }\n\n setSize(height) {\n if (this.isFullscreenActive) {\n height += 80;\n }\n\n this.iframe.height = height;\n }\n\n reload() {\n this.iframe = undefined;\n this.container.innerHTML = '';\n\n this.addListeners();\n this.createHtml();\n }\n\n // public playback control api\n\n play() {\n this.sendMessage('play');\n }\n\n pause() {\n this.sendMessage('pause');\n }\n\n toggle() {\n this.sendMessage('toggle');\n }\n\n seekTo(time) {\n this.sendMessage('seekTo', { time });\n }\n\n seekToLivePosition() {\n this.sendMessage('seekToLivePosition');\n }\n\n seekToSlide(slide) {\n this.sendMessage('seekToSlide', { slide });\n }\n\n prevSlide() {\n this.sendMessage('prevSlide');\n }\n\n nextSlide() {\n this.sendMessage('nextSlide');\n }\n\n syncVideoToSlide() {\n this.sendMessage('syncVideoToSlide');\n }\n\n syncSlideToVideo() {\n this.sendMessage('syncSlideToVideo');\n }\n\n setVolume(volume) {\n this.sendMessage('setVolume', { volume });\n }\n\n setMuted(muted) {\n this.sendMessage('setMuted', { muted });\n }\n\n setPlaybackRate(rate) {\n this.sendMessage('setPlaybackRate', { rate });\n }\n\n setZoomRatio(ratio) {\n this.sendMessage('setZoomRatio', { ratio });\n }\n\n // public playback state api\n\n isPlaying() {\n return this.props.state === 'playing';\n }\n\n isPaused() {\n return this.props.state === 'paused';\n }\n\n volume() {\n return this.props.volume;\n }\n\n muted() {\n return this.props.muted;\n }\n\n availablePlaybackRates() {\n return this.props.availablePlaybackRates;\n }\n\n playbackRate() {\n return this.props.playbackRate;\n }\n\n availableSubtitles() {\n return this.props.availableSubtitles;\n }\n\n activeSubtitles() {\n return this.props.activeSubtitles;\n }\n\n zoomRatio() {\n return this.props.zoomRatio;\n }\n\n size() {\n return this.props.size;\n }\n\n currentTime() {\n return this.props.currentTime;\n }\n\n duration() {\n return this.props.duration;\n }\n\n // private API\n\n getSlideUrl(slide) {\n this.sendMessage('getSlideUrl', { slide });\n }\n\n get embedUrl() {\n let autoLoad;\n if (this.props.disableAutoLoad) {\n autoLoad = false;\n } else {\n autoLoad = this.options.autoLoad;\n }\n\n const params = {\n js_embed_version: 3,\n embed_init_token: this.props.embedInitToken,\n embed_parent_url: window.location.href,\n embed_origin: window.location.origin,\n embed_container_id: this.options.embedContainerId,\n auto_load: autoLoad,\n auto_play: this.options.autoPlay,\n hide_zoom_controls: this.options.hideZoomControls,\n zoom_handle_color: this.options.zoomHandleColor,\n zoom_slider_color: this.options.zoomSliderColor,\n zoom_ratio: this.options.zoomRatio,\n start_time: this.options.startTime,\n start_slide: this.options.startSlide,\n disable_fullscreen: this.options.disableFullscreen,\n locale: this.options.locale,\n vertical_enabled: this.options.verticalEnabled,\n vertical_enabled_on_mobile: this.options.verticalEnabledOnMobile,\n vertical_disabled_when_width_gte: this.options.verticalDisabledWhenWidthGte,\n vertical_when_width_lte: this.options.verticalWhenWidthLte,\n allow_hidden_controls_when_paused: this.options.allowHiddenControlsWhenPaused,\n registration_id: this.options.registrationId,\n default_stream_quality: this.options.defaultStreamQuality,\n debug_slideslive_player: this.options.debugSlidesLivePlayer,\n fit_to_viewport: this.options.fitToViewport,\n custom_user_id: this.options.customUserId,\n };\n\n if (isVariableDefinedNotNull(this.props.userUuid)) {\n params.user_uuid = this.props.userUuid;\n }\n\n let path;\n if (this.options.live) {\n if (isVariableDefinedNotNull(this.options.folder) && this.options.folder !== '') {\n path = `/embed/live/${this.options.account}/${this.options.folder}`;\n } else {\n path = `/embed/live/${this.options.account}`;\n }\n } else {\n path = `/embed/presentation/${this.options.presentationId}`;\n }\n\n return `${this.options.host}${path}?${toParamsQueryString(params)}`;\n }\n\n get isFullscreenActive() {\n return (\n document.fullScreen ||\n document.mozFullScreen ||\n document.webkitIsFullScreen ||\n document.msFullscreenElement ||\n document.fullscreenElement ||\n document.webkitFullscreenElement ||\n false\n );\n }\n}\n","import { slidesLiveDomain } from '@slideslive/fuse-kit/utils';\nimport ApplicationController from 'modules/application_controller';\nimport SlidesLiveEmbed from 'modules/slideslive_embed/slideslive_embed';\n\nexport default class extends ApplicationController {\n static get values() {\n return {\n presentationId: {\n type: String,\n default: undefined,\n },\n };\n }\n\n initialize() {\n this.embed = null;\n }\n\n connect() {\n if (!this.presentationIdValue) return;\n if (this.isTurboPreview) return;\n\n this.embed = new SlidesLiveEmbed('homepage-player', {\n presentationId: this.presentationIdValue,\n autoPlay: false,\n verticalEnabled: true,\n host: `https://${slidesLiveDomain()}`,\n locale: gon.locale,\n });\n }\n\n disconnect() {\n if (this.embed) {\n this.embed.destroy();\n this.embed = null;\n }\n }\n}\n","import { defer, pushDataLayer } from '@slideslive/fuse-kit/utils';\nimport ApplicationController from 'modules/application_controller';\nimport VimeoPlayerApiLoader from 'vimeo-player-api-loader';\n\nexport default class extends ApplicationController {\n static get targets() {\n return ['video'];\n }\n\n initialize() {\n this.props = {\n player: null,\n };\n }\n\n connect() {\n defer(() => {\n this.initVideo();\n this.initOpenStateFromHash();\n });\n }\n\n disconnect() {\n if (!this.player) {\n return;\n }\n\n this.player.unload();\n this.player = null;\n }\n\n initVideo() {\n if (this.player) {\n return;\n }\n\n VimeoPlayerApiLoader.load((Vimeo) => {\n let firstPlay = true;\n let videoId = null;\n let currentTime = 0;\n let duration = 0;\n let percent = 0;\n let state = 'paused';\n const trackedPercents = { 10: false, 25: false, 50: false, 75: false, 90: false };\n\n const pushDataLayerFromPlayer = ({ event }) => {\n pushDataLayer({\n event,\n video_current_time: currentTime,\n video_duration: duration,\n video_percent: percent,\n video_provider: 'Vimeo',\n video_title: videoId,\n video_url: window.location.href,\n visible: true,\n 'gtm.videoCurrentTime': currentTime,\n 'gtm.videoDuration': duration,\n 'gtm.videoPercent': percent,\n 'gtm.videoProvider': 'Vimeo',\n 'gtm.videoStatus': state,\n 'gtm.videoTitle': videoId,\n 'gtm.videoUrl': window.location.href,\n 'gtm.videoVisible': true,\n });\n };\n\n this.player = new Vimeo.Player(this.videoTarget);\n\n this.player.on('play', () => {\n state = 'playing';\n\n if (firstPlay) {\n firstPlay = false;\n\n pushDataLayerFromPlayer({ event: 'video_start' });\n }\n\n pushDataLayerFromPlayer({ event: 'video_play' });\n });\n\n this.player.on('pause', () => {\n state = 'paused';\n\n pushDataLayerFromPlayer({ event: 'video_pause' });\n });\n\n this.player.on('ended', () => pushDataLayerFromPlayer({ event: 'video_complete' }));\n\n this.player.on('loaded', (data) => {\n videoId = data.id;\n\n pushDataLayerFromPlayer({ event: 'video_load' });\n });\n\n this.player.on('timeupdate', (data) => {\n currentTime = data.seconds;\n duration = data.duration;\n percent = Math.round(data.percent * 100);\n\n const percentToTrack = Math.max(...Object.keys(trackedPercents).filter((p) => p < percent));\n if (Number.isFinite(percentToTrack) && !trackedPercents[percentToTrack] && state === 'playing') {\n trackedPercents[percentToTrack] = true;\n pushDataLayerFromPlayer({ event: 'video_progress' });\n }\n });\n });\n }\n\n initOpenStateFromHash() {\n if (window.location.hash === '#showreel') {\n this.open();\n }\n }\n\n open() {\n window.history.replaceState(window.history.state, '', '#showreel');\n\n this.dispatchOnWindow('open', { prefix: 'modal', detail: { name: 'showreel' } });\n }\n\n beforeHide() {\n this.player.pause();\n\n window.history.replaceState(window.history.state, '', '#');\n }\n\n get player() {\n return this.props.player;\n }\n\n set player(value) {\n this.props.player = value;\n }\n}\n","import { isNaN, isVariableDefinedNotNull } from '@slideslive/fuse-kit/utils';\nimport ApplicationController from 'modules/application_controller';\n\nexport default class extends ApplicationController {\n static get targets() {\n return ['days', 'data', 'orderType', 'productType', 'startDate', 'startTime', 'endDate', 'endTime', 'roomCount'];\n }\n\n updateAll() {\n this.updateStart();\n this.updateEnd();\n this.updateProductType();\n this.updateDays();\n this.updatePrices();\n }\n\n update() {\n this.updateDays();\n this.updatePrices();\n }\n\n updateStart() {\n this.startDateTarget.dataset.future = this.today < this.startDate;\n this.endDateTarget.dataset.invalid =\n this.startDate > this.endDate || (this.startDate === this.endDate && this.startTime >= this.endTime);\n }\n\n updateEnd() {\n this.endDateTarget.dataset.future = this.today < this.endDate;\n this.endDateTarget.dataset.invalid =\n this.startDate > this.endDate || (this.startDate === this.endDate && this.startTime >= this.endTime);\n }\n\n updateProductType() {\n if (this.productType === 'virtual') {\n this.orderTypeTarget.value = this.productTypeTarget.options[this.productTypeTarget.selectedIndex].dataset.type;\n } else {\n this.orderTypeTarget.value = 'conference';\n }\n }\n\n updateDays() {\n const days = this.days;\n const startDate = this.startDate;\n const endDate = this.endDate;\n let startTimeInMinutes = this.startTime.split(':');\n startTimeInMinutes = startTimeInMinutes[0] * 60 + startTimeInMinutes[1] * 1;\n let endTimeInMinutes = this.endTime.split(':');\n endTimeInMinutes = endTimeInMinutes[0] * 60 + endTimeInMinutes[1] * 1;\n\n const recordingDays = this.daysCount(startDate, endDate);\n const hourBreakpoints = this.hourBreakpoints(startTimeInMinutes, endTimeInMinutes);\n const defaultTimes = {\n from: '09:00',\n to: '17:00',\n };\n\n days.start = {\n date: startDate,\n time: this.startTime,\n };\n days.end = {\n date: endDate,\n time: this.endTime,\n };\n\n if (recordingDays === 1) {\n days.items = [\n {\n from: this.startTime,\n to: this.endTime,\n },\n ];\n } else {\n for (let i = 0; i < recordingDays; i++) {\n if (i > days.items.length - 1) {\n days.items.push({ ...defaultTimes });\n }\n\n if (i === 0) {\n const from = this.startTime;\n let to = defaultTimes.to;\n let toTimeInMinutes = to.split(':');\n toTimeInMinutes = toTimeInMinutes[0] * 60 + toTimeInMinutes[1] * 1;\n\n if (startTimeInMinutes >= toTimeInMinutes) {\n to = hourBreakpoints.to.val;\n }\n\n this.updateItemInDayItemsJSON(days, i, from, to);\n } else if (i === recordingDays - 1) {\n const to = this.endTime;\n let from = defaultTimes.from;\n let fromTimeInMinutes = days.items[i].from.split(':');\n fromTimeInMinutes = fromTimeInMinutes[0] * 60 + fromTimeInMinutes[1] * 1;\n\n if (endTimeInMinutes <= fromTimeInMinutes) {\n from = hourBreakpoints.from.val;\n }\n\n this.updateItemInDayItemsJSON(days, i, from, to);\n } else {\n this.updateItemInDayItemsJSON(days, i, defaultTimes.from, defaultTimes.to);\n }\n }\n }\n\n days.items = days.items.slice(0, recordingDays);\n\n this.daysTarget.value = JSON.stringify(days);\n }\n\n updateItemInDayItemsJSON(days, index, from, to) {\n days.items[index] = { from, to };\n }\n\n daysCount(startDate, endDate) {\n return Math.ceil((endDate - startDate) / (1000 * 60 * 60 * 24)) + 1;\n }\n\n hourBreakpoints(fromTimeInMinutes, toTimeInMinutes) {\n const breakpoints = {\n 360: '06:00',\n 960: '16:00',\n 1260: '21:00',\n 1410: '23:30',\n };\n const breakpointsKeys = Object.keys(breakpoints);\n let fromBreakpoint = null;\n let toBreakpoint = null;\n\n for (let i = 0; i < breakpointsKeys.length; i++) {\n const minutes = breakpointsKeys[i] * 1;\n const val = breakpoints[minutes];\n\n if (fromTimeInMinutes < minutes && !toBreakpoint) {\n toBreakpoint = {\n val,\n minutes,\n };\n }\n\n if (toTimeInMinutes > minutes) {\n fromBreakpoint = {\n val,\n minutes,\n };\n }\n }\n\n return {\n from: fromBreakpoint,\n to: toBreakpoint,\n };\n }\n\n updatePrices() {\n const data = this.data;\n const prices = this.prices(data);\n\n data.prices = Object.removeKey(prices, 'surgePrices');\n\n if (isVariableDefinedNotNull(prices.surgePrices)) {\n data.prices.surge_prices = prices.surgePrices;\n }\n\n this.dataTarget.value = JSON.stringify(data);\n\n return data.prices;\n }\n\n recordingOrderHoursFromDay({ from: startTime, to: endTime }) {\n const start = startTime.split(':');\n const end = endTime.split(':');\n const hours = end[0] * 1 - start[0] * 1;\n\n return hours + (end[1] * 1 - start[1] * 1) / 60;\n }\n\n pricePerHours(data, region, hours, track) {\n const trackData = this.productTypeTracksData(data)[track];\n const trackDurationMinutes = hours * 60;\n let priceKey = 'full_day';\n let overtimeFee = 0;\n\n if (trackDurationMinutes <= 2 * 60) {\n priceKey = 'two_hours';\n } else if (trackDurationMinutes <= 4 * 60) {\n priceKey = 'half_day';\n } else if (trackDurationMinutes > 9 * 60) {\n overtimeFee = trackData.prices.overtime_fee[region.id] || 0;\n }\n\n let price = trackData.prices[priceKey][region.id];\n\n if (!isVariableDefinedNotNull(price)) {\n console.warn('Price not found for track', track, 'in region', region);\n price = 0;\n }\n\n return price + overtimeFee;\n }\n\n specificCityCoefficient(data) {\n if (!(this.locationId in data.location_coefficients)) {\n return 1;\n }\n\n return data.location_coefficients[this.locationId];\n }\n\n locationCoefficient(data) {\n return this.specificCityCoefficient(data);\n }\n\n timeLapseCoefficient(data, days) {\n const today = this.element.dataset.updatedAt ? new Date(this.element.dataset.updatedAt) : new Date();\n const timeLapse = Math.ceil((new Date(days.start.date) - today) / (1000 * 60 * 60 * 24));\n\n for (let i = 0; i < data.time_lapse_coefficients.length; i++) {\n const arr = data.time_lapse_coefficients[i];\n\n if (!isNaN(arr[0])) {\n if (timeLapse < arr[0]) {\n return arr[1];\n }\n } else {\n return arr[1];\n }\n }\n\n return 1;\n }\n\n prices(data) {\n const days = this.days;\n const region = this.region(data);\n\n let surgePrices = null;\n let totalBasic = 0;\n let totalPremium = 0;\n let totalEnterprise = 0;\n\n const basic = 'basic';\n let premium = 'premium';\n let enterprise = 'enterprise';\n\n if (this.orderType === 'workshop') {\n premium = 'basic';\n enterprise = 'premium';\n }\n\n for (let i = 0; i < days.items.length; i++) {\n const h = this.recordingOrderHoursFromDay(days.items[i]);\n\n if (this.orderType !== 'workshop') {\n totalBasic += this.pricePerHours(data, region, h, basic);\n }\n\n totalPremium += this.pricePerHours(data, region, h, premium);\n totalEnterprise += this.pricePerHours(data, region, h, enterprise);\n }\n\n if (this.roomCount > 1) {\n totalBasic *= this.roomCount;\n totalPremium *= this.roomCount;\n totalEnterprise *= this.roomCount;\n }\n\n if (this.locationCoefficient(data) !== 1) {\n totalBasic *= this.locationCoefficient(data);\n totalPremium *= this.locationCoefficient(data);\n totalEnterprise *= this.locationCoefficient(data);\n }\n\n if (this.roomCountCoefficient > 0 && gon.locale !== 'cs') {\n totalBasic += this.roomCountCoefficient * 150000;\n totalPremium += this.roomCountCoefficient * 150000;\n totalEnterprise += this.roomCountCoefficient * 150000;\n }\n\n if (this.timeLapseCoefficient(data, days) > 1) {\n surgePrices = {\n basic: Math.round(totalBasic * this.timeLapseCoefficient(data, days)),\n premium: Math.round(totalPremium * this.timeLapseCoefficient(data, days)),\n enterprise: Math.round(totalEnterprise * this.timeLapseCoefficient(data, days)),\n };\n }\n\n if (this.coupon) {\n if (!isNaN(this.coupon.value)) {\n totalBasic -= this.coupon.value;\n totalPremium -= this.coupon.value;\n totalEnterprise -= this.coupon.value;\n\n if (isVariableDefinedNotNull(surgePrices)) {\n surgePrices = {\n basic: surgePrices.basic - this.coupon.value,\n premium: surgePrices.premium - this.coupon.value,\n enterprise: surgePrices.enterprise - this.coupon.value,\n };\n }\n }\n }\n\n if (totalBasic < 0) {\n totalBasic = 0;\n\n if (isVariableDefinedNotNull(surgePrices)) {\n surgePrices.basic = 0;\n }\n }\n\n if (totalPremium < 0) {\n totalPremium = 0;\n\n if (isVariableDefinedNotNull(surgePrices)) {\n surgePrices.premium = 0;\n }\n }\n\n if (totalEnterprise < 0) {\n totalEnterprise = 0;\n\n if (isVariableDefinedNotNull(surgePrices)) {\n surgePrices.enterprise = 0;\n }\n }\n\n return {\n basic: Math.round(totalBasic),\n premium: Math.round(totalPremium),\n enterprise: Math.round(totalEnterprise),\n surgePrices,\n };\n }\n\n productTypeTracksData(data) {\n if (!('types' in data.tracks[this.productType])) {\n return data.tracks[this.productType];\n }\n\n if (!data.tracks[this.productType].types.includes(this.orderType)) {\n console.error('No tracks for:', this.productType, this.orderType);\n }\n\n return data.tracks[this.productType][this.orderType];\n }\n\n region(data) {\n return (\n data.regions.find((r) => r.countries.indexOf(this.locationCountry) > -1) ||\n data.regions.find((r) => r.countries.length === 0)\n );\n }\n\n get days() {\n return JSON.parse(this.daysTarget.value);\n }\n\n get data() {\n return JSON.parse(this.dataTarget.value);\n }\n\n get today() {\n return new Date(new Date().setUTCHours(0, 0, 0, 0));\n }\n\n get startDate() {\n return new Date(this.startDateTarget.value);\n }\n\n get startTime() {\n return this.startTimeTarget.value;\n }\n\n get endDate() {\n return new Date(this.endDateTarget.value);\n }\n\n get endTime() {\n return this.endTimeTarget.value;\n }\n\n get productType() {\n return this.productTypeTarget.value;\n }\n\n get orderType() {\n return this.orderTypeTarget.value;\n }\n\n get roomCount() {\n return parseInt(this.roomCountTarget.value, 10);\n }\n\n get roomCountCoefficient() {\n return Math.floor(this.roomCount / 3.0);\n }\n\n get coupon() {\n return null;\n }\n\n get locationCountry() {\n return null;\n }\n\n get locationId() {\n return null;\n }\n}\n","import { defer } from '@slideslive/fuse-kit/utils';\nimport RecordingOrderFormBaseComponent from 'marketing/old_order/form_base_component/form_base_component';\n\nexport default class extends RecordingOrderFormBaseComponent {\n static get targets() {\n return [...super.targets, 'locationCountry', 'locationId', 'recordingType', 'coupon', 'recordingTypeSelect'];\n }\n\n connect() {\n super.connect();\n\n defer(this.updatePrices.bind(this));\n defer(this.propagateProductType.bind(this));\n }\n\n updateProductType() {\n super.updateProductType();\n this.updatePrices(false);\n this.propagateProductType();\n }\n\n updateRecordingType({ detail: { selected } }) {\n this.recordingTypeTarget.value = selected;\n }\n\n updateStart() {\n super.updateStart();\n this.update();\n }\n\n updateEnd() {\n super.updateEnd();\n this.update();\n }\n\n updatePrices(propagateUpdate = true) {\n super.updatePrices();\n\n if (!propagateUpdate) {\n return;\n }\n\n this.propagatePrices();\n }\n\n propagateProductType() {\n const data = this.data;\n this.recordingTypeSelectController.updateTypesByProductType(\n this.productType,\n this.orderType,\n this.region(data),\n data,\n );\n }\n\n propagatePrices() {\n const data = this.data;\n this.recordingTypeSelectController.updatePrices(this.region(data).currency, data.prices);\n }\n\n get locationCountry() {\n return this.locationCountryTarget.value;\n }\n\n get locationId() {\n return this.locationIdTarget.value;\n }\n\n get coupon() {\n if (!this.hasCouponTarget) {\n return null;\n }\n\n return this.couponTarget.value;\n }\n\n get recordingTypeSelectController() {\n return this.findControllerByName('marketing--old-order--show--recording-type-select', {\n useQuerySelector: false,\n element: this.recordingTypeSelectTarget,\n });\n }\n}\n","import ApplicationController from 'modules/application_controller';\nimport Money from 'modules/money';\n\nexport default class extends ApplicationController {\n static get targets() {\n return [\n 'basicTitle',\n 'basicPrice',\n 'basicLink',\n 'premiumTitle',\n 'premiumPrice',\n 'premiumLink',\n 'enterpriseTitle',\n 'enterprisePrice',\n 'enterpriseLink',\n 'box',\n ];\n }\n\n updateTypesByProductType(productType, orderType, region, data) {\n const prices = data.prices.surgePrices ? data.prices.surgePrices : data.prices;\n const tracks = productType === 'virtual' ? data.tracks[productType][orderType] : data.tracks[productType];\n\n this.setDefaultActive();\n\n this.updateTexts(tracks);\n this.updatePrices(region.currency, prices);\n this.updateRatesheetLinks(productType, orderType, region);\n }\n\n updatePrices(currency, prices) {\n const basic = new Money(prices.basic, currency);\n const premium = new Money(prices.premium, currency);\n const enterprise = new Money(prices.enterprise, currency);\n\n this.basicPriceTarget.textContent = basic.format(false, gon.locale);\n this.premiumPriceTarget.textContent = premium.format(false, gon.locale);\n this.enterprisePriceTarget.textContent = enterprise.format(false, gon.locale);\n }\n\n updateTexts(tracks) {\n this.basicTitleTarget.textContent = tracks.basic.name[gon.locale];\n this.premiumTitleTarget.textContent = tracks.premium.name[gon.locale];\n this.enterpriseTitleTarget.textContent = tracks.enterprise.name[gon.locale];\n }\n\n updateRatesheetLinks(productType, orderType, region) {\n const paperSize = gon.locale === 'en' ? 'letter' : 'a4';\n const allTypes = ['recording', 'livestream', 'virtual_conference', 'virtual_studio', 'highlight_video'];\n const type = productType === 'virtual' ? orderType : productType;\n\n let link = this.ratesheetLinkTemplate;\n link = link.replace('[REGION]', region.id).replace('[PAPER_SIZE]', paperSize);\n\n for (const t of allTypes) {\n const show = type === t;\n link += `&${t}=${show ? 1 : 0}`;\n }\n\n this.basicLinkTarget.href = link;\n this.premiumLinkTarget.href = link;\n this.enterpriseLinkTarget.href = link;\n }\n\n setDefaultActive() {\n if (!this.selectedRecordingType) {\n const boxIndex = Math.floor(this.boxTargets.length / 2);\n const type = this.boxTargets[boxIndex].dataset.type;\n\n this.setActive(type);\n\n return;\n }\n\n for (const box of this.boxTargets) {\n box.classList.toggle('active', box.dataset.type === this.selectedRecordingType);\n }\n }\n\n setActiveFromEvent(event) {\n const type = event.currentTarget.dataset.type;\n\n this.setActive(type);\n }\n\n setActive(type) {\n this.element.dataset.selected = type;\n\n for (const box of this.boxTargets) {\n box.classList.toggle('active', type === box.dataset.type);\n }\n\n this.element.dataset.selected = type;\n this.dispatch('change', { detail: { selected: type } });\n }\n\n get selectedRecordingType() {\n return this.element.dataset.selected;\n }\n\n get ratesheetLinkTemplate() {\n return `https://alex.slideslive.com/ratesheets?language=${gon.locale}®ion=[REGION]&paper_size=[PAPER_SIZE]`;\n }\n}\n","import ApplicationController from 'modules/application_controller';\n\nexport default class extends ApplicationController {\n static get targets() {\n return ['captcha'];\n }\n\n async interceptSubmissionForCaptcha(event) {\n if (!this.hasCaptchaTarget) return;\n\n const { resume, cancel } = event.detail.intercept();\n const captcha = this.findControllerOnElement(this.captchaTarget);\n captcha\n .executeInvisibleCaptcha()\n .then((args) => {\n event.detail.fetchOptions.body.append('g-recaptcha-response', args);\n resume();\n })\n .catch(() => cancel());\n }\n}\n","import { createCookie, readCookie } from '@slideslive/fuse-kit/utils';\nimport ApplicationController from 'modules/application_controller';\n\nexport default class extends ApplicationController {\n static values = {\n openDelaySeconds: {\n type: Number,\n default: 30,\n },\n closedCookieExpiresInMinutes: {\n type: Number,\n default: 60 * 24 * 30,\n },\n };\n\n initialize() {\n this.openTimeout = null;\n }\n\n connect() {\n if (this.isTurboPreview) return;\n\n this.scheduleOpen();\n }\n\n disconnect() {\n if (this.openTimeout) {\n clearTimeout(this.openTimeout);\n }\n\n this.openTimeout = null;\n }\n\n scheduleOpen() {\n if (readCookie(this.cookieName)) return;\n\n this.openTimeout = setTimeout(() => {\n this.dispatchOnWindow('open', {\n prefix: 'modal',\n detail: { name: this.modalName },\n });\n }, this.openDelaySecondsValue * 1000);\n }\n\n setClosedCookie() {\n createCookie(this.cookieName, true, this.closedCookieExpiresInMinutesValue);\n }\n\n get cookieName() {\n return `${this.identifier}-closed`;\n }\n\n get modalName() {\n return this.element.dataset.modalName;\n }\n}\n","import ApplicationController from 'modules/application_controller';\n\nexport default class extends ApplicationController {\n static get values() {\n return {\n referenceModalUrl: {\n type: String,\n default: '',\n },\n };\n }\n\n showReferenceModal() {\n if (!this.referenceModalUrlValue) return;\n\n this.dispatchOnWindow('open', {\n prefix: 'modal',\n detail: { name: 'modalV2', options: { withHistory: true, url: this.referenceModalUrlValue } },\n });\n\n this.referenceModalUrlValue = '';\n }\n}\n","import FilterController from 'fuse/list_base/filter_component/filter_component';\n\nexport default class extends FilterController {}\n","import ListController from 'fuse/list_base/list_component/list_component';\n\nexport default class extends ListController {}\n","import ApplicationController from 'modules/application_controller';\nimport VimeoPlayerApiLoader from 'vimeo-player-api-loader';\n\nexport default class extends ApplicationController {\n static get targets() {\n return ['video'];\n }\n\n initialize() {\n this.player = null;\n this.observer = new ResizeObserver(this.handleResize.bind(this));\n }\n\n connect() {\n if (this.isTurboPreview) return;\n\n this.loadVideo();\n this.observer.observe(this.element);\n }\n\n disconnect() {\n this.destroyVideo();\n this.observer.disconnect();\n }\n\n loadVideo() {\n if (this.player) return;\n\n VimeoPlayerApiLoader.load((Vimeo) => {\n this.player = new Vimeo.Player(this.videoTarget);\n\n this.player.on('error', this.handleVideoError.bind(this));\n this.player.on('play', this.handleVideoPlay.bind(this));\n });\n }\n\n resumeVideo() {\n if (!this.player) return;\n\n this.player.getPaused().then((paused) => {\n if (paused) {\n this.player.play();\n }\n });\n }\n\n pauseVideo() {\n if (!this.player) return;\n\n this.player.getPaused().then((paused) => {\n if (!paused) {\n this.player.pause();\n }\n });\n }\n\n async destroyVideo() {\n if (!this.player) return;\n\n await this.player.unload();\n\n this.player = null;\n }\n\n handleVideoError() {\n this.videoTarget.hidden = true;\n }\n\n handleVideoPlay() {\n this.videoTarget.hidden = false;\n }\n\n handleResize(entries) {\n for (const {\n contentRect: { width, height },\n } of entries) {\n this.updateSize(width, height);\n }\n }\n\n updateSize(width, height) {\n if (height === (width / 16) * 9) {\n return;\n }\n\n if (height < (width / 16) * 9) {\n height = (width / 16) * 9;\n } else {\n width = (height / 9) * 16;\n }\n\n Object.assign(this.videoTarget.style, {\n height: `${height}px`,\n width: `${width}px`,\n });\n }\n}\n","import { Timer } from '@slideslive/fuse-kit/modules';\nimport ApplicationController from 'modules/application_controller';\n\nexport default class extends ApplicationController {\n static get targets() {\n return ['item'];\n }\n\n static get values() {\n return {\n delay: {\n type: Number,\n default: 1000,\n },\n };\n }\n\n static get outlets() {\n return ['marketing--slide-show'];\n }\n\n initialize() {\n this.timer = new Timer(this.delayValue, this.nextItem.bind(this), { repeat: true });\n this.currentIndex = 0;\n }\n\n connect() {\n this.initializeItems();\n }\n\n disconnect() {\n this.timer.stop();\n this.currentIndex = 0;\n }\n\n initializeItems() {\n for (let i = 0; i < this.itemTargets.length; i++) {\n const target = this.itemTargets[i];\n\n target.hidden = i !== this.currentIndex;\n }\n }\n\n pauseFromEvent({ pointerType }) {\n if (pointerType !== 'mouse') return;\n\n this.pause();\n }\n\n resumeFromEvent({ pointerType }) {\n if (pointerType !== 'mouse') return;\n\n this.resume();\n }\n\n toggleFromEvent({ pointerType }) {\n if (pointerType === 'mouse') return;\n\n this.toggle();\n }\n\n pause() {\n if (this.timer.state !== 'started') return;\n\n this.timer.pause();\n this.element.classList.remove('playing');\n }\n\n resume() {\n if (!['initialized', 'paused'].includes(this.timer.state)) return;\n\n if (this.timer.state === 'initialized') {\n this.eagerLoadImages();\n }\n\n if (this.timer.state === 'initialized') {\n this.timer.start();\n } else {\n this.timer.resume();\n }\n\n this.element.classList.add('playing');\n this.pauseOtherSlideShows();\n }\n\n toggle() {\n if (this.timer.state === 'initialized') {\n this.eagerLoadImages();\n }\n\n this.timer.toggle();\n this.element.classList.toggle('playing', this.timer.state === 'started');\n\n if (this.timer.state === 'started') {\n this.pauseOtherSlideShows();\n }\n }\n\n eagerLoadImages() {\n for (const item of this.itemTargets) {\n const lazyImages = item.querySelectorAll('img[loading=lazy]');\n\n for (const img of lazyImages) {\n img.loading = 'eager';\n }\n }\n }\n\n pauseOtherSlideShows() {\n for (const outlet of this.marketingSlideShowOutlets) {\n if (outlet === this) continue;\n\n outlet.pause();\n }\n }\n\n nextItem() {\n const oldIndex = this.currentIndex;\n\n this.currentIndex = (this.currentIndex + 1) % this.itemTargets.length;\n\n this.itemTargets[this.currentIndex].hidden = false;\n this.itemTargets[oldIndex].hidden = true;\n }\n\n get nextIndex() {\n return (this.currentIndex + 1) % this.itemTargets.length;\n }\n}\n","import ApplicationController from 'modules/application_controller';\nimport VimeoPlayerApiLoader from 'vimeo-player-api-loader';\n\nexport default class extends ApplicationController {\n static get targets() {\n return ['video'];\n }\n\n initialize() {\n this.props = {\n player: null,\n };\n\n this.loadVideo();\n }\n\n disconnect() {\n this.destroyVideo();\n }\n\n showVideo() {\n this.videoTarget.hidden = false;\n\n if (this.player) this.player.play();\n }\n\n loadVideo() {\n if (this.player) {\n return;\n }\n\n VimeoPlayerApiLoader.load((Vimeo) => {\n this.player = new Vimeo.Player(this.videoTarget);\n\n this.player.on('error', this.handleVideoError.bind(this));\n this.player.on('play', this.handleVideoPlay.bind(this));\n });\n }\n\n destroyVideo() {\n if (!this.player) {\n return;\n }\n\n this.player\n .unload()\n .then(() => {\n this.player = null;\n })\n .catch((error) => {\n console.warn(error);\n });\n }\n\n handleVideoError() {\n this.videoTarget.hidden = true;\n }\n\n handleVideoPlay() {\n this.videoTarget.hidden = false;\n }\n\n get player() {\n return this.props.player;\n }\n\n set player(value) {\n this.props.player = value;\n }\n}\n","import StimulusIntegration from 'integration/stimulus_integration/stimulus_integration';\n\nStimulusIntegration.registerContext(import.meta.glob('../../components/marketing/**/*_component.js', { eager: true }));\nStimulusIntegration.registerContext(\n import.meta.glob('../../components/alex_fuse/attendance_show/form_component/**/*_component.js', {\n eager: true,\n }),\n);\n"],"names":["browserLocale","countryCodeOnly","defaultLocale","navigatorLocale","Timer","delay","callback","options","header_component","ApplicationController","event","item","it","path","hero_component","slidesLiveEmbedHost","defaultHost","isVariableDefinedNotNull","RECENT_EMBED_COUNT_LIMIT","RECENT_EMBED_COUNT_RESET_TIMEOUT","props","SlidesLiveEmbedInitializer","params","url","toParamsQueryString","ajax","request","response","host","loadDelay","disableAutoLoad","callbackWithDelay","userUuid","embedInitToken","SlidesLiveEmbed","embedContainerId","registrationId","urlParam","debugSlidesLivePlayer","name","optionsParam","callbackName","error","timeout","messageEvent","addListener","removeListener","sandboxAttributes","iframe","data","method","message","e","height","viewportHeight","time","slide","volume","muted","rate","ratio","autoLoad","player_component","slidesLiveDomain","showreel_modal_component","defer","VimeoPlayerApiLoader","Vimeo","firstPlay","videoId","currentTime","duration","percent","state","trackedPercents","pushDataLayerFromPlayer","pushDataLayer","percentToTrack","p","value","RecordingOrderFormBaseComponent","days","startDate","endDate","startTimeInMinutes","endTimeInMinutes","recordingDays","hourBreakpoints","defaultTimes","i","from","to","toTimeInMinutes","fromTimeInMinutes","index","breakpoints","breakpointsKeys","fromBreakpoint","toBreakpoint","minutes","val","prices","startTime","endTime","start","end","region","hours","track","trackData","trackDurationMinutes","priceKey","overtimeFee","price","today","timeLapse","arr","isNaN","surgePrices","totalBasic","totalPremium","totalEnterprise","basic","premium","enterprise","r","form_component","selected","propagateUpdate","recording_type_select_component","productType","orderType","tracks","currency","Money","paperSize","allTypes","type","link","t","boxIndex","box","consultation_form_component","resume","cancel","args","consultation_modal_component","readCookie","createCookie","__publicField","container_component","filter_component","FilterController","list_component","ListController","section_bg_component","paused","entries","width","slide_show_component","target","pointerType","lazyImages","img","outlet","oldIndex","video_component","StimulusIntegration","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10","__vite_glob_0_11","__vite_glob_0_12","__vite_glob_0_13","__vite_glob_0_14","__vite_glob_0_15","__vite_glob_0_16","__vite_glob_0_17","__vite_glob_0_18","__vite_glob_0_19","__vite_glob_0_20","__vite_glob_0_21","__vite_glob_0_22","__vite_glob_0_23","__vite_glob_0_24","__vite_glob_0_25","__vite_glob_0_26","__vite_glob_0_27","__vite_glob_1_0"],"mappings":"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","x_google_ignoreList":[0,1]}