{"version":3,"names":["WEBCAL_URL","HTTPS_URL","isCalendarCategory","p","window","location","pathname","includes","updateBanner","existing","document","getElementById","remove","isConnected","target","querySelector","parentNode","banner","createElement","id","className","style","cssText","innerHTML","insertBefore","copyBtn","addEventListener","e","preventDefault","navigator","clipboard","writeText","then","textContent","setTimeout","catch","prompt","readyState","origPush","history","pushState","apply","arguments","origReplace","replaceState","setInterval","a","closest","href","startsWith","setAttribute"],"sources":["theme-7-inline-common-head_tag.js"],"sourcesContent":["\n(function() {\n  const WEBCAL_URL = \"webcal://wearegig.org/discourse-post-event/events.ics?attending_user=fund-calendar-bot&include_interested=true&user_api_key=3fa5a16889d30ff3a18e196c8a85896a\";\n  const HTTPS_URL = \"https://wearegig.org/discourse-post-event/events.ics?attending_user=fund-calendar-bot&include_interested=true&user_api_key=3fa5a16889d30ff3a18e196c8a85896a\";\n\n  function isCalendarCategory() {\n    const p = window.location.pathname;\n    return p.includes(\"/37\") || p.includes(\"internal-calendar-gig-fund-2026\");\n  }\n\n  function updateBanner() {\n    const existing = document.getElementById(\"cohort-calendar-banner\");\n\n    // Remove banner if navigating away from the calendar category\n    if (!isCalendarCategory()) {\n      if (existing) existing.remove();\n      return;\n    }\n\n    // IDEMPOTENCY GUARD: If already rendered and in DOM, do nothing (0 DOM changes)\n    if (existing && existing.isConnected) {\n      return;\n    }\n\n    // Locate the list controls or category calendar container\n    const target = document.querySelector(\".list-controls\") || \n                   document.querySelector(\".category-calendar\") ||\n                   document.querySelector(\"#category-events-calendar\") ||\n                   document.querySelector(\".fc\");\n\n    if (!target || !target.parentNode) {\n      return; // Ember hasn't inserted the view yet; will catch on next cycle\n    }\n\n    // Outer wrapper matching Discourse's exact container grid and centering\n    const banner = document.createElement(\"div\");\n    banner.id = \"cohort-calendar-banner\";\n    banner.className = \"container cohort-calendar-banner-container\";\n    banner.style.cssText = `\n      max-width: var(--d-max-width, 1110px);\n      margin: 16px auto;\n      padding: 0 10px;\n      width: 100%;\n      box-sizing: border-box;\n    `;\n\n    banner.innerHTML = `\n      <div style=\"\n        background: #f8fafc;\n        border: 1px solid #e2e8f0;\n        border-left: 4px solid #0284c7;\n        border-radius: 8px;\n        padding: 18px 24px;\n        box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n        display: flex;\n        flex-direction: column;\n        gap: 12px;\n        box-sizing: border-box;\n        width: 100%;\n      \">\n        <div style=\"display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px;\">\n          <div>\n            <div style=\"font-weight: 700; font-size: 1.15rem; color: #0f172a; display: flex; align-items: center; gap: 8px;\">\n              <span>📅</span> GIG Fund 2026 Cohort Calendar\n            </div>\n            <div style=\"color: #475569; font-size: 0.95rem; margin-top: 4px; line-height: 1.45;\">\n              All cohort workshops, milestone reviews, peer learning sessions, and office hours are published here. \n              Subscribe to sync live updates directly with your Google Calendar, Apple Calendar, or Outlook.\n            </div>\n          </div>\n        </div>\n\n        <div style=\"display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 4px;\">\n          <a href=\"${WEBCAL_URL}\" style=\"\n            background: #0284c7;\n            color: #ffffff !important;\n            padding: 9px 16px;\n            border-radius: 6px;\n            font-weight: 600;\n            font-size: 0.9rem;\n            text-decoration: none;\n            display: inline-flex;\n            align-items: center;\n            gap: 6px;\n          \" title=\"Open in default calendar app\">\n            <span>➕</span> Subscribe to Calendar\n          </a>\n          <button id=\"copy-calendar-url-btn\" type=\"button\" style=\"\n            background: #ffffff;\n            color: #334155;\n            border: 1px solid #cbd5e1;\n            padding: 9px 14px;\n            border-radius: 6px;\n            font-weight: 500;\n            font-size: 0.9rem;\n            cursor: pointer;\n            display: inline-flex;\n            align-items: center;\n            gap: 6px;\n          \">\n            📋 Copy Calendar URL\n          </button>\n        </div>\n      </div>\n    `;\n\n    target.parentNode.insertBefore(banner, target);\n\n    const copyBtn = banner.querySelector(\"#copy-calendar-url-btn\");\n    if (copyBtn) {\n      copyBtn.addEventListener(\"click\", function(e) {\n        e.preventDefault();\n        navigator.clipboard.writeText(HTTPS_URL).then(function() {\n          copyBtn.textContent = \"✅ Copied URL!\";\n          setTimeout(function() {\n            copyBtn.textContent = \"📋 Copy Feed URL\";\n          }, 2500);\n        }).catch(function() {\n          prompt(\"Copy calendar feed URL:\", HTTPS_URL);\n        });\n      });\n    }\n  }\n\n  // 1. Initial page load\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", updateBanner);\n  } else {\n    updateBanner();\n  }\n\n  // 2. Client-side navigation hooks (SPA transitions)\n  const origPush = history.pushState;\n  history.pushState = function() {\n    origPush.apply(this, arguments);\n    setTimeout(updateBanner, 50);\n  };\n  const origReplace = history.replaceState;\n  history.replaceState = function() {\n    origReplace.apply(this, arguments);\n    setTimeout(updateBanner, 50);\n  };\n  window.addEventListener(\"popstate\", function() {\n    setTimeout(updateBanner, 50);\n  });\n\n  // 3. Lightweight check (exits in <0.01ms if banner is already in place)\n  setInterval(updateBanner, 400);\n\n  // 4. Prevent Discourse SPA router from intercepting raw .ics calendar feed downloads\n  document.addEventListener(\"click\", function(e) {\n    const a = e.target.closest('a[href*=\"/discourse-post-event/events.ics\"]');\n    if (a && !a.href.startsWith(\"webcal://\")) {\n      a.setAttribute(\"data-auto-route\", \"false\");\n      a.setAttribute(\"target\", \"_blank\");\n    }\n  }, true);\n})();\n"],"mappings":"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","ignoreList":[]}