{"version":3,"file":"UIMedia-v2.js","sources":["../../../../../design-system/components/Editorial/ShopTheLook/EditorialShopTheLook.vue","../../../../../design-system/utils/video.ts","../../../../../design-system/composables/useVideo.ts","../../../../../design-system/components/UI/UIMediaVideo.vue","../../../../../../node_modules/uuid/dist/esm-browser/rng.js","../../../../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../../../../node_modules/uuid/dist/esm-browser/native.js","../../../../../../node_modules/uuid/dist/esm-browser/v4.js","../../../../../design-system/components/UI/UIMedia.vue"],"sourcesContent":["\n\n\n\n\n","import type { Video } from '@design-system/components/UI/UIMedia.props'\nimport { joinURL } from 'ufo'\n\n/**\n * Get the full video URL.\n *\n * This function constructs the full URL for the video source. It supports both\n * absolute URLs (starting with 'http') and relative URLs by joining them with\n * the base Cloudinary URL from runtime config.\n *\n * @param {string} src - The source of the video (either absolute or relative).\n *\n * @returns {string} The full URL of the video.\n */\nexport const getVideo = (src: string): string => {\n // Support runtime config for base Cloudinary URL\n const baseURL: string = useRuntimeConfig().public.cloudinary\n return src.startsWith('http') ? src : joinURL(baseURL, src)\n}\n\n/**\n * Get the optimized video source URL.\n *\n * This function optimizes the video URL using Cloudinary transformations.\n *\n * @param {Video} video - The video object containing the source URL.\n * @param {string} format - The desired video format (e.g., 'mp4', 'webm').\n * @param {string} [aspectRatio] - Optional aspect ratio for video optimization.\n *\n * @returns {string} The optimized video URL.\n */\nexport const getVideoScr = (\n video: Video,\n format: string,\n aspectRatio?: string\n): string =>\n optimizeVideo(\n getVideo(video?.srcVideo?.public_id ?? video?.srcVideo?.secure_url ?? '#'),\n video.quality ?? 'best',\n aspectRatio,\n format\n )\n\n/**\n * Format time from seconds to mm:ss format.\n *\n * This function takes a number of seconds and formats it into a more human-readable\n * \"minutes:seconds\" format (e.g., 90 seconds becomes '1:30').\n *\n * @param {number} seconds - The time in seconds.\n *\n * @returns {string} The formatted time in mm:ss.\n */\nexport const formatTime = (seconds: number): string => {\n const mins = Math.floor(seconds / 60)\n const secs = Math.floor(seconds % 60)\n return `${mins}:${secs < 10 ? '0' : ''}${secs}` // Pad single-digit seconds with a zero\n}\n","import type {\n UIMediaProps,\n Video,\n} from '@design-system/components/UI/UIMedia.props'\n\ndeclare global {\n interface HTMLVideoElement {\n webkitEnterFullscreen?: () => Promise\n mozRequestFullScreen?: () => Promise\n msRequestFullscreen?: () => Promise\n }\n}\n\nexport const useVideo = (\n video: UIMediaProps,\n videoRef: Ref\n) => {\n const mediaVideo = video.media as Video\n\n // Determine if the video is of 'standard' or 'loop' type\n const isStandardVideo = mediaVideo.anatomy === 'standard'\n const isLoopVideo = mediaVideo.anatomy === 'loop' || !isStandardVideo\n\n // States for playback control\n const isPlaying = ref(mediaVideo.autoplay)\n const isMuted = ref(mediaVideo.muted)\n\n // Time-related states\n const currentTime = ref('0:00')\n const duration = ref('0:00')\n const currentSeconds = ref(0)\n const videoDuration = ref(0)\n\n // Computed properties for video sources in different formats\n const srcVideo = computed(() =>\n getVideoScr(mediaVideo, 'webm', video.aspectRatio)\n )\n\n const srcVideoMp4 = computed(() =>\n getVideoScr(mediaVideo, 'mp4', video.aspectRatio)\n )\n\n // Check if Picture-in-Picture (PiP) is supported by the browser\n const isPipSupported = computed(\n () => videoRef.value && 'requestPictureInPicture' in videoRef.value\n )\n\n // Executes a given function if the video is a 'standard' video and the videoRef exists\n const executeIfStandardVideo = (fn: () => void) => {\n if (isStandardVideo && videoRef.value) {\n fn()\n }\n }\n\n // Toggle play/pause state of the video\n const togglePlay = async () => {\n if (!videoRef.value) return\n try {\n isPlaying.value ? videoRef.value.pause() : await videoRef.value.play()\n isPlaying.value = !isPlaying.value\n } catch (error) {\n console.log(error)\n }\n }\n\n // Toggle mute/unmute state of the video\n const toggleMute = () => {\n if (!videoRef.value) return\n\n videoRef.value.muted = !videoRef.value.muted\n isMuted.value = videoRef.value.muted\n }\n\n // Enable Picture-in-Picture mode (if supported)\n const enablePip = () =>\n executeIfStandardVideo(async () => {\n try {\n await videoRef?.value?.requestPictureInPicture()\n } catch (error) {\n console.error('Error entering PiP:', error)\n }\n })\n\n // Toggle fullscreen mode for the video\n const toggleFullScreen = () =>\n executeIfStandardVideo(() => {\n if (videoRef?.value?.requestFullscreen) {\n videoRef.value.requestFullscreen()\n } else if (videoRef?.value?.webkitEnterFullscreen) {\n videoRef.value.webkitEnterFullscreen()\n } else if (videoRef?.value?.mozRequestFullScreen) {\n videoRef.value.mozRequestFullScreen()\n } else if (videoRef?.value?.msRequestFullscreen) {\n videoRef.value.msRequestFullscreen()\n }\n })\n\n // Seek the video to a specific time (based on the range input)\n const onSeek = (event: Event) => {\n executeIfStandardVideo(() => {\n const input = event.target as HTMLInputElement\n videoRef.value!.currentTime = Number(input.value)\n })\n }\n\n // Update the current time and total duration of the video, triggered by 'timeupdate' event\n const onTimeUpdate = () => {\n executeIfStandardVideo(() => {\n const current = videoRef.value!.currentTime\n const total = videoRef.value!.duration\n\n currentTime.value = formatTime(current)\n duration.value = formatTime(total)\n currentSeconds.value = current\n videoDuration.value = total\n })\n }\n\n // Get the position of the video commands (play, pause, etc.) based on the type of video (standard or loop).\n const getCommandsPosition = () => {\n if (isStandardVideo) {\n return 'bottom-0 left-0 right-0'\n } else {\n const loopCommandPositionOptions = {\n 'top-left': 'top-0 left-0',\n 'bottom-right': 'bottom-0 right-0',\n }\n return loopCommandPositionOptions[\n mediaVideo.commandsPosition ?? 'bottom-right'\n ]\n }\n }\n\n return {\n isStandardVideo,\n isLoopVideo,\n isPlaying,\n isMuted,\n currentTime,\n duration,\n currentSeconds,\n videoDuration,\n srcVideo,\n srcVideoMp4,\n isPipSupported,\n togglePlay,\n toggleMute,\n enablePip,\n toggleFullScreen,\n onSeek,\n onTimeUpdate,\n getCommandsPosition,\n }\n}\n","\n\n\n\n\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","\n\n\n\n"],"names":["_sfc_main$2","_defineComponent","__props","__temp","__restore","isEmporioArmaniWebsite","isEa7Website","isGiorgioArmaniWebsite","useWebsite","props","getProducts","transformProductForQuickBuy","useShopTheLook","products","ref","_withAsyncContext","isOneProduct","isLessThanThreeProduct","tabletSlidesPerView","computed","mobileSlidesPerView","options","emblaApi","onInit","api","updateButtonStates","getVideo","src","baseURL","useRuntimeConfig","joinURL","getVideoScr","video","format","aspectRatio","optimizeVideo","_a","_b","formatTime","seconds","mins","secs","useVideo","videoRef","mediaVideo","isStandardVideo","isLoopVideo","isPlaying","isMuted","currentTime","duration","currentSeconds","videoDuration","srcVideo","srcVideoMp4","isPipSupported","executeIfStandardVideo","fn","error","_c","_d","event","input","current","total","videoElement","togglePlay","toggleMute","enablePip","toggleFullScreen","onSeek","onTimeUpdate","getCommandsPosition","canVideoPlay","readyStateHandler","onMounted","getRandomValues","rnds8","rng","byteToHex","i","unsafeStringify","arr","offset","randomUUID","native","v4","buf","rnds","_hoisted_7","__expose","openDialog","useDialog","srcImage","image","adaptedRatio","adaptRatio","hotspots","hotspotsProduct","selectors","areHotspotsLoaded","item","getObjectBySelector","getHotspotPosition","hotspot","uniqueShopTheLookModalId","uuidv4","focusElement","target","openHotspotDialog","SIDEBAR_IDS","productSelected","indexSelected","setHotspotModalState","useHotspotModal","nextTick","hotSpotModalProps","data","selector","widgetPositionOptions","widgetOrientationOptions","handleHotspotHover","hotspotElements","el","handleHotspotUnhover"],"mappings":"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","x_google_ignoreList":[4,5,6,7]}