{"version":3,"names":["window","__plexStatusWidgetInitialized","__plexStatusWidgetPollHandle","clearInterval","API_URL","STATUS_PAGE_URL","POLL_INTERVAL","STORAGE_KEY","getDismissedMap","JSON","parse","localStorage","getItem","_","saveDismissedMap","map","setItem","stringify","updateHash","item","id","updatedAt","isDismissed","dismiss","fetchStatus","callback","fetch","then","res","ok","Error","status","json","data","catch","normaliseItem","raw","type","name","title","updated_at","started_at","getActiveItems","items","ongoing_incidents","forEach","i","push","in_progress_maintenances","scheduled_maintenances","hostEl","currentItemHash","destroyWidget","parentNode","removeChild","formatTime","iso","d","Date","toLocaleString","render","hash","isIncident","bgColor","label","document","createElement","body","appendChild","shadow","attachShadow","mode","style","textContent","join","container","className","setAttribute","innerHTML","escapeHtml","requestAnimationFrame","classList","add","querySelector","addEventListener","remove","setTimeout","str","div","createTextNode","pickItem","length","priority","incident","maintenance","scheduled","sort","a","b","pa","undefined","pb","localeCompare","tick","err","filter","init","setInterval","readyState"],"sources":["theme-3-inline-common-body_tag.js"],"sourcesContent":["\n(function () {\n  'use strict';\n\n  // Prevent double-init (Discourse SPA navigation can re-run scripts).\n  // If re-initialized (e.g. dev harness), clear the previous poll interval.\n  if (window.__plexStatusWidgetInitialized) return;\n  if (window.__plexStatusWidgetPollHandle) {\n    clearInterval(window.__plexStatusWidgetPollHandle);\n    window.__plexStatusWidgetPollHandle = null;\n  }\n  window.__plexStatusWidgetInitialized = true;\n\n  // ---------------------------------------------------------------------------\n  // Configuration\n  // ---------------------------------------------------------------------------\n  var API_URL = 'https://statuspage.incident.io/plex/api/v1/summary';\n  var STATUS_PAGE_URL = 'https://status.plex.tv/';\n  var POLL_INTERVAL = 60000; // 60 seconds\n  var STORAGE_KEY = 'plex-status-widget-dismissed';\n\n  // ---------------------------------------------------------------------------\n  // Helpers — localStorage-based dismissal\n  // ---------------------------------------------------------------------------\n  function getDismissedMap() {\n    try {\n      return JSON.parse(localStorage.getItem(STORAGE_KEY)) || {};\n    } catch (_) {\n      return {};\n    }\n  }\n\n  function saveDismissedMap(map) {\n    try {\n      localStorage.setItem(STORAGE_KEY, JSON.stringify(map));\n    } catch (_) {\n      // quota exceeded or private browsing — silently ignore\n    }\n  }\n\n  function updateHash(item) {\n    // Combine id + updatedAt so re-showing works when the incident is updated\n    return item.id + '|' + (item.updatedAt || '');\n  }\n\n  function isDismissed(item) {\n    var map = getDismissedMap();\n    return map[item.id] === updateHash(item);\n  }\n\n  function dismiss(item) {\n    var map = getDismissedMap();\n    map[item.id] = updateHash(item);\n    saveDismissedMap(map);\n  }\n\n  // ---------------------------------------------------------------------------\n  // Data fetching\n  // ---------------------------------------------------------------------------\n  function fetchStatus(callback) {\n    fetch(API_URL)\n      .then(function (res) {\n        if (!res.ok) throw new Error('HTTP ' + res.status);\n        return res.json();\n      })\n      .then(function (data) {\n        callback(null, data);\n      })\n      .catch(function () {\n        // Fail silently — retry on next poll\n        callback(null, null);\n      });\n  }\n\n  // ---------------------------------------------------------------------------\n  // Normalise API items into a uniform shape\n  // ---------------------------------------------------------------------------\n  function normaliseItem(raw, type) {\n    return {\n      id: raw.id || '',\n      name: raw.name || raw.title || '',\n      updatedAt: raw.updated_at || raw.started_at || '',\n      type: type // 'incident' | 'maintenance' | 'scheduled'\n    };\n  }\n\n  function getActiveItems(data) {\n    if (!data) return [];\n\n    var items = [];\n\n    (data.ongoing_incidents || []).forEach(function (i) {\n      items.push(normaliseItem(i, 'incident'));\n    });\n\n    (data.in_progress_maintenances || []).forEach(function (i) {\n      items.push(normaliseItem(i, 'maintenance'));\n    });\n\n    (data.scheduled_maintenances || []).forEach(function (i) {\n      items.push(normaliseItem(i, 'scheduled'));\n    });\n\n    return items;\n  }\n\n  // ---------------------------------------------------------------------------\n  // Rendering — Shadow DOM widget\n  // ---------------------------------------------------------------------------\n  var hostEl = null;\n  var currentItemHash = null;\n\n  function destroyWidget() {\n    if (hostEl && hostEl.parentNode) {\n      hostEl.parentNode.removeChild(hostEl);\n    }\n    hostEl = null;\n    currentItemHash = null;\n  }\n\n  function formatTime(iso) {\n    if (!iso) return '';\n    try {\n      var d = new Date(iso);\n      return d.toLocaleString();\n    } catch (_) {\n      return iso;\n    }\n  }\n\n  function render(item) {\n    var hash = updateHash(item);\n    if (currentItemHash === hash && hostEl) return; // Skip if already showing this item\n    destroyWidget();\n    currentItemHash = hash;\n\n    var isIncident = item.type === 'incident';\n    var bgColor = isIncident ? '#E67E22' : '#3498DB';\n    var label = isIncident ? 'Active Incident' : (item.type === 'scheduled' ? 'Scheduled Maintenance' : 'Maintenance In Progress');\n\n    hostEl = document.createElement('div');\n    hostEl.id = 'plex-status-widget-host';\n    document.body.appendChild(hostEl);\n\n    var shadow = hostEl.attachShadow({ mode: 'open' });\n\n    var style = document.createElement('style');\n    style.textContent = [\n      ':host { all: initial; }',\n      '.psw-container {',\n      '  position: fixed;',\n      '  bottom: 16px;',\n      '  right: 16px;',\n      '  width: 350px;',\n      '  max-width: calc(100vw - 32px);',\n      '  background: ' + bgColor + ';',\n      '  color: #fff;',\n      '  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;',\n      '  font-size: 14px;',\n      '  line-height: 1.4;',\n      '  border-radius: 8px;',\n      '  box-shadow: 0 20px 32px -8px rgba(9,20,66,0.25);',\n      '  z-index: 99999;',\n      '  padding: 16px 40px 16px 16px;',\n      '  box-sizing: border-box;',\n      '  transform: translateY(120%);',\n      '  transition: transform 0.3s ease;',\n      '}',\n      '.psw-container.psw-visible {',\n      '  transform: translateY(0);',\n      '}',\n      '.psw-label {',\n      '  font-size: 11px;',\n      '  font-weight: 700;',\n      '  text-transform: uppercase;',\n      '  letter-spacing: 0.5px;',\n      '  margin-bottom: 4px;',\n      '  opacity: 0.9;',\n      '}',\n      '.psw-title {',\n      '  font-size: 15px;',\n      '  font-weight: 600;',\n      '  margin-bottom: 4px;',\n      '}',\n      '.psw-time {',\n      '  font-size: 12px;',\n      '  opacity: 0.85;',\n      '  margin-bottom: 8px;',\n      '}',\n      '.psw-link {',\n      '  color: #fff;',\n      '  font-size: 13px;',\n      '  font-weight: 600;',\n      '  text-decoration: underline;',\n      '}',\n      '.psw-link:hover { opacity: 0.85; }',\n      '.psw-dismiss {',\n      '  position: absolute;',\n      '  top: 8px;',\n      '  right: 8px;',\n      '  background: none;',\n      '  border: none;',\n      '  color: #fff;',\n      '  font-size: 20px;',\n      '  cursor: pointer;',\n      '  padding: 4px 8px;',\n      '  line-height: 1;',\n      '  opacity: 0.8;',\n      '}',\n      '.psw-dismiss:hover { opacity: 1; }',\n      '@media (max-width: 480px) {',\n      '  .psw-container {',\n      '    bottom: 0;',\n      '    right: 0;',\n      '    width: 100%;',\n      '    max-width: 100%;',\n      '    border-radius: 0;',\n      '  }',\n      '}'\n    ].join('\\n');\n\n    var container = document.createElement('div');\n    container.className = 'psw-container';\n    container.setAttribute('role', 'alert');\n    container.innerHTML = [\n      '<button class=\"psw-dismiss\" aria-label=\"Dismiss\">&times;</button>',\n      '<div class=\"psw-label\">' + escapeHtml(label) + '</div>',\n      '<div class=\"psw-title\">' + escapeHtml(item.name) + '</div>',\n      '<div class=\"psw-time\">Updated: ' + escapeHtml(formatTime(item.updatedAt)) + '</div>',\n      '<a class=\"psw-link\" href=\"' + STATUS_PAGE_URL + '\" target=\"_blank\" rel=\"noopener\">View status page</a>'\n    ].join('');\n\n    shadow.appendChild(style);\n    shadow.appendChild(container);\n\n    // Double-rAF: first frame applies the element, second triggers the transition\n    // after the browser has computed the initial style. Do NOT simplify to a single rAF.\n    requestAnimationFrame(function () {\n      requestAnimationFrame(function () {\n        container.classList.add('psw-visible');\n      });\n    });\n\n    // Dismiss handler\n    shadow.querySelector('.psw-dismiss').addEventListener('click', function () {\n      dismiss(item);\n      container.classList.remove('psw-visible');\n      setTimeout(destroyWidget, 350);\n    });\n  }\n\n  function escapeHtml(str) {\n    var div = document.createElement('div');\n    div.appendChild(document.createTextNode(str));\n    return div.innerHTML;\n  }\n\n  // ---------------------------------------------------------------------------\n  // Prioritisation — pick the most critical / most recent item to display\n  // ---------------------------------------------------------------------------\n  function pickItem(items) {\n    if (!items.length) return null;\n\n    var priority = { incident: 0, maintenance: 1, scheduled: 2 };\n\n    items.sort(function (a, b) {\n      var pa = priority[a.type] !== undefined ? priority[a.type] : 9;\n      var pb = priority[b.type] !== undefined ? priority[b.type] : 9;\n      if (pa !== pb) return pa - pb;\n      // Within same priority, most recently updated first\n      return (b.updatedAt || '').localeCompare(a.updatedAt || '');\n    });\n\n    return items[0];\n  }\n\n  // ---------------------------------------------------------------------------\n  // Main loop\n  // ---------------------------------------------------------------------------\n  function tick() {\n    fetchStatus(function (err, data) {\n      var items = getActiveItems(data);\n\n      // Filter out dismissed items\n      items = items.filter(function (item) {\n        return !isDismissed(item);\n      });\n\n      var item = pickItem(items);\n      if (item) {\n        render(item);\n      } else {\n        destroyWidget();\n      }\n    });\n  }\n\n  // ---------------------------------------------------------------------------\n  // Init\n  // ---------------------------------------------------------------------------\n  function init() {\n    tick();\n    window.__plexStatusWidgetPollHandle = setInterval(tick, POLL_INTERVAL);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n"],"mappings":"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","ignoreList":[]}