{
  "version": 3,
  "sources": ["/cdn/shop/t/20/assets/sts-show-controller.js?revision=auto-20261018-1"],
  "sourcesContent": ["import { deriveShowState, validateShow, createPoller, UnavailableShowError } from './sts-show-state.js?v=native-20261012';\r\nimport { createPlayerDocument } from './sts-player-document.js?v=space-20261016-3';\r\nimport { createPlayerControls } from './sts-player-controls.js?v=loading-controls-20261016-1';\r\nimport { resolveShowId, rewriteReplayLinks } from './sts-replay-navigation.js?v=preview-20261016-1';\r\nimport { createStorePage } from './sts-store-page.js?v=r05-20261016-1';\r\nimport { createShowSelection } from './sts-show-selection.js?v=auto-20261018-1';\r\n\r\nconst initialized = new WeakMap();\r\nconst disposed = new WeakSet();\r\nconst watchedDocuments = new WeakMap();\r\nconst idPattern = /^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i;\r\nconst configurationAttributes = ['data-show-id', 'data-show-selection', 'data-public-key', 'data-player-script-url', 'data-store-root', 'data-currency', 'data-rotation-show-id', 'data-rotation-degrees'];\r\nfunction configuration(root) { return JSON.stringify([...configurationAttributes.map(name => root.getAttribute(name)), root.dataset.stsStorePage === 'true' ? initialized.get(root)?.selectedShow : new URL(root.ownerDocument.defaultView.location.href).searchParams.get('showId')]); }\r\n\r\nexport function initializeShow(root, dependencies = {}) {\r\n  rewriteReplayLinks(root.ownerDocument);\r\n  const { fetcher = fetch, clock = Date.now, schedule = setTimeout, cancel = clearTimeout } = dependencies;\r\n  const fingerprint = configuration(root);\r\n  const previous = initialized.get(root);\r\n  if (previous?.fingerprint === fingerprint) return previous;\r\n  previous?.destroy();\r\n  disposed.delete(root);\r\n  if (!root.isConnected) throw new Error('Attach the show component before initialization');\r\n  const doc = root.ownerDocument;\r\n  const view = doc.defaultView;\r\n  const origin = view.location.origin;\r\n  const automatic = root.dataset.showSelection === 'auto' && !new URL(view.location.href).searchParams.has('showId');\r\n  let showId = automatic ? null : resolveShowId(root.dataset.showId, view.location.href);\r\n  if (!automatic && !idPattern.test(showId)) throw new Error('Invalid show configuration');\r\n  const selection = automatic ? createShowSelection({ publicKey: root.dataset.publicKey, fetcher, now: clock }) : null;\r\n  const title = root.querySelector('[data-sts-title]');\r\n  const description = root.querySelector('[data-sts-description]');\r\n  const playerSlot = root.querySelector('[data-sts-player]');\r\n  const freshness = root.querySelector('[data-sts-freshness]');\r\n  const time = root.querySelector('[data-sts-time]');\r\n  let iframe = null;\r\n  let show = null;\r\n  let playbackReady = false;\r\n  let playerFailed = false;\r\n  let failed = false;\r\n  let showUnavailable = false;\r\n  let destroyed = false;\r\n  let playerClosed = false;\r\n  const anonymousId = crypto.randomUUID();\r\n  let storePage;\r\n  const controls = createPlayerControls(root, { reopen() {\r\n    if (destroyed || showUnavailable) return;\r\n    iframe?.remove(); iframe = null; playbackReady = false; playerFailed = false; playerClosed = false;\r\n    freshness.textContent = 'Reloading the player...'; render();\r\n  }, close() {\r\n    iframe?.remove(); iframe = null; playbackReady = false; playerClosed = true;\r\n    freshness.textContent = 'The player was closed. Select Reopen player to continue watching.'; render();\r\n  }, schedule, cancel, onModeChange(minimized) {\r\n    if (!minimized && storePage?.isOpen) storePage.close();\r\n    iframe?.contentWindow?.postMessage({ source: 'sts-shell', type: 'view-mode', showId, minimized }, origin);\r\n  } });\r\n  storePage = createStorePage(root, { fetcher, onOpen: () => controls.minimize(), onClose() { iframe?.contentWindow?.postMessage({ source: 'sts-shell', type: 'shopping-return', showId }, origin); controls.restore(); } });\r\n\r\n  function render() {\r\n    const state = deriveShowState(show, { expectedId: showId, now: clock(), playbackReady, playerMounted: Boolean(iframe), providerUnavailable: failed || !show, showUnavailable });\r\n    root.dataset.phase = playerClosed && state.mountPlayer ? 'closed' : state.phase;\r\n    title.textContent = playerClosed && state.mountPlayer ? 'Player closed' : state.title;\r\n    description.textContent = playerClosed && state.mountPlayer ? 'Select Reopen player to continue watching, chatting and shopping.' : state.description;\r\n    if (state.mountPlayer && !iframe && !playerClosed) {\r\n      playerFailed = false;\r\n      delete root.dataset.stsMobileControls;\r\n      delete root.dataset.stsOrientation;\r\n      try {\r\n        const nextFrame = doc.createElement('iframe');\r\n        nextFrame.srcdoc = createPlayerDocument({ showId, status: show.status, publicKey: root.dataset.publicKey, parentOrigin: origin, scriptUrl: new URL(root.dataset.playerScriptUrl ?? new URL('sts-player-host.js', import.meta.url).href, view.location.href).href, root: root.dataset.storeRoot ?? '/', currency: root.dataset.currency ?? 'USD', rotationShowId: root.dataset.rotationShowId, rotationDegrees: root.dataset.rotationDegrees, emptyReplayCatalog: show.status === 'completed' && Array.isArray(show.products) && show.products.length === 0 });\r\n        nextFrame.title = 'Setting the Space video, chat and featured products';\r\n        nextFrame.allow = 'autoplay; fullscreen; picture-in-picture';\r\n        nextFrame.allowFullscreen = true;\r\n        nextFrame.className = 'sts-live-player';\r\n        playerSlot.replaceChildren(nextFrame);\r\n        // Commit only after setup succeeds; a detached iframe is not a mounted player.\r\n        iframe = nextFrame;\r\n      } catch {\r\n        root.dataset.phase = 'error';\r\n        title.textContent = 'Player could not load';\r\n        description.textContent = 'Please reload this page to try the player again.';\r\n        freshness.textContent = 'The player configuration could not load. Show status is still being checked.';\r\n      }\r\n    }\r\n    if (!state.mountPlayer && iframe) { iframe.remove(); iframe = null; playbackReady = false; }\r\n    if (!iframe || playerClosed) delete root.dataset.stsMobileControls;\r\n    playerSlot.hidden = !iframe;\r\n    controls.update({ mounted: Boolean(iframe), closed: playerClosed, ready: playbackReady && !playerFailed, recoverable: playerFailed || failed || root.dataset.phase === 'error' });\r\n    if (time && show) {\r\n      const format = new Intl.DateTimeFormat('en-US', { dateStyle: 'long', timeStyle: 'short', timeZone: 'America/New_York' });\r\n      time.textContent = `${show.status === 'completed' ? 'Recorded' : 'Scheduled'} ${format.format(new Date(show.startTime))} Eastern`;\r\n      time.dateTime = show.startTime;\r\n    }\r\n  }\r\n  function message(event) {\r\n    if (!iframe || event.origin !== origin || event.source !== iframe.contentWindow || !event.data || event.data.source !== 'sts-player' || event.data.showId !== showId) return;\r\n    if (event.data.type === 'embed-loaded') iframe.contentWindow.postMessage({ source: 'sts-shell', type: 'view-mode', showId, minimized: root.querySelector('[data-sts-stage]')?.dataset.minimized === 'true' }, origin);\r\n    if (event.data.type === 'minimize-request') void controls.minimize();\r\n    if (event.data.type === 'expand-request') void controls.toggleExpand();\r\n    if (event.data.type === 'product-page-request' && typeof event.data.path === 'string') void storePage.open(event.data.path);\r\n    if (event.data.type === 'cart-page-request') void storePage.open(`${root.dataset.storeRoot ?? '/'}cart`);\r\n    if (event.data.type === 'mobile-controls' && typeof event.data.ready === 'boolean') {\r\n      if (event.data.ready) root.dataset.stsMobileControls = 'true'; else delete root.dataset.stsMobileControls;\r\n    }\r\n    if (event.data.type === 'media-layout' && ['portrait', 'landscape'].includes(event.data.orientation)) root.dataset.stsOrientation = event.data.orientation;\r\n    if (event.data.type === 'playback-ready') { playbackReady = true; playerFailed = false; render(); }\r\n    if (event.data.type === 'player-closed') { playerClosed = true; playbackReady = false; freshness.textContent = 'The player was closed. Select Reopen player to continue watching.'; render(); }\r\n    if (event.data.type === 'player-error') { playerFailed = true; delete root.dataset.stsMobileControls; freshness.textContent = 'The player could not load. Please try again shortly.'; controls.update({ mounted: Boolean(iframe), closed: playerClosed, ready: false, recoverable: true }); }\r\n  }\r\n  const poller = createPoller({\r\n    read: async () => {\r\n      const signal = AbortSignal.timeout(8000);\r\n      const selectedId = automatic && root.dataset.stsStorePage !== 'true' ? await selection.read({ signal }) : showId;\r\n      if (!selectedId) throw new UnavailableShowError('No public shows available');\r\n      const response = await fetcher(`https://live-broadcast-api.channelize.io/v2/live_broadcasts/${encodeURIComponent(selectedId)}`, { headers: { 'Public-Key': root.dataset.publicKey, 'Anonymous-User-Id': anonymousId }, credentials: 'omit', signal, cache: 'no-store' });\r\n      if ([401, 403, 404, 410].includes(response.status)) throw new UnavailableShowError('Show access is unavailable');\r\n      if (!response.ok) throw new Error('Provider status unavailable');\r\n      const data = validateShow(await response.json(), selectedId);\r\n      if (automatic && (data.passwordProtectedShow === true || data.passwordProtectedShow?.isEnabled === true)) throw new UnavailableShowError('Show access is unavailable');\r\n      return data;\r\n    },\r\n    onData(data) {\r\n      // Shopping opened after discovery started owns the current viewing session.\r\n      if (automatic && show && show.id !== data.id && root.dataset.stsStorePage === 'true') return;\r\n      // A new broadcast/recording needs its own media readiness. Messages from an old iframe cannot establish it.\r\n      if (show && (show.id !== data.id || show.status !== data.status || (data.status === 'completed' && show.recordingUrl !== data.recordingUrl))) {\r\n        controls.update({ mounted: false });\r\n        iframe?.remove(); iframe = null; playbackReady = false; playerClosed = false;\r\n      }\r\n      showId = data.id; root.dataset.activeShowId = showId;\r\n      show = data; failed = false; showUnavailable = false;\r\n      freshness.textContent = playerClosed ? 'Select Reopen player to continue watching.' : 'Show status updates automatically.'; render();\r\n    },\r\n    onError(error) {\r\n      failed = true;\r\n      if (error instanceof UnavailableShowError) { showUnavailable = true; show = null; playbackReady = false; playerClosed = false; }\r\n      freshness.textContent = showUnavailable ? 'This show cannot be displayed. We will check for updates.' : 'Status connection interrupted. We will keep trying.';\r\n      render();\r\n    },\r\n    schedule, cancel\r\n  });\r\n  // The timer only refreshes a waiting label; provider data decides live/end.\r\n  let clockTimer;\r\n  function refreshClock() { if (destroyed) return; if (show && !failed && show.status === 'upcoming') render(); clockTimer = schedule(refreshClock, 1000); }\r\n  view.addEventListener('message', message);\r\n  const controller = { fingerprint, selectedShow: new URL(view.location.href).searchParams.get('showId'), destroy() { if (destroyed) return; destroyed = true; poller.stop(); cancel(clockTimer); storePage.destroy(); controls.destroy(); view.removeEventListener('message', message); iframe?.remove(); iframe = null; delete root.dataset.stsMobileControls; disposed.add(root); initialized.delete(root); } };\r\n  initialized.set(root, controller);\r\n  poller.start(); refreshClock();\r\n  observeShowComponents(doc, dependencies);\r\n  return controller;\r\n}\r\n\r\n/** One observer per document disposes replaced blocks and rebinds edited configuration. */\r\nexport function observeShowComponents(doc, dependencies = {}) {\r\n  if (watchedDocuments.has(doc)) return watchedDocuments.get(doc);\r\n  const knownRoots = new Set();\r\n  const invalidConfigurations = new WeakMap();\r\n  function synchronize() {\r\n    for (const root of knownRoots) {\r\n      if (!root.isConnected) { initialized.get(root)?.destroy(); knownRoots.delete(root); }\r\n    }\r\n    for (const root of doc.querySelectorAll('[data-sts-show]')) {\r\n      knownRoots.add(root);\r\n      if (disposed.has(root) || invalidConfigurations.get(root) === configuration(root)) continue;\r\n      try { initializeShow(root, dependencies); invalidConfigurations.delete(root); }\r\n      catch { invalidConfigurations.set(root, configuration(root)); const title = root.querySelector('[data-sts-title]'); if (title) title.textContent = 'Show details coming soon'; }\r\n    }\r\n  }\r\n  const observer = new doc.defaultView.MutationObserver(synchronize);\r\n  const watcher = { disconnect() { observer.disconnect(); for (const root of knownRoots) initialized.get(root)?.destroy(); knownRoots.clear(); watchedDocuments.delete(doc); } };\r\n  watchedDocuments.set(doc, watcher);\r\n  observer.observe(doc.documentElement, { childList: true, subtree: true, attributes: true, attributeFilter: configurationAttributes });\r\n  synchronize();\r\n  return watcher;\r\n}\r\n\r\nif (typeof document !== 'undefined') observeShowComponents(document);\r\n"],
  "mappings": "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",
  "names": []
}
