{"version":3,"names":[],"sources":["theme-40-inline-common-head_tag.js"],"sourcesContent":["\n(function () {\n  if (!document.documentElement.lang.startsWith(\"fa\")) return;\n\n  // Formatters\n  const fullFormatter = new Intl.DateTimeFormat(\"fa-IR-u-ca-persian\", { dateStyle: \"medium\" });\n  const monthYearFormatter = new Intl.DateTimeFormat(\"fa-IR-u-ca-persian\", { year: \"numeric\", month: \"long\" });\n  const dayMonthFormatter = new Intl.DateTimeFormat(\"fa-IR-u-ca-persian\", { day: \"numeric\", month: \"long\" });\n\n  const gregorianMonthsFa = new Map([\n    [\"ژانویه\", 0], [\"فوریه\", 1], [\"مارس\", 2], [\"آوریل\", 3], [\"مه\", 4], [\"ژوئن\", 5],\n    [\"ژوئیه\", 6], [\"ژوئیهٔ\", 6], [\"اوت\", 7], [\"اگوست\", 7], [\"سپتامبر\", 8],\n    [\"اکتبر\", 9], [\"نوامبر\", 10], [\"دسامبر\", 11],\n  ]);\n\n  function toLatinDigits(str) {\n    return (str || \"\")\n      .replace(/[۰-۹]/g, d => String(\"۰۱۲۳۴۵۶۷۸۹\".indexOf(d)))\n      .replace(/[٠-٩]/g, d => String(\"٠١٢٣٤٥٦٧٨٩\".indexOf(d)));\n  }\n\n  function toDate(value) {\n    if (!value) return null;\n    if (/^\\d{10,13}$/.test(value)) {\n      const n = Number(value);\n      return new Date(value.length === 10 ? n * 1000 : n);\n    }\n    const d = new Date(value);\n    return isNaN(d.getTime()) ? null : d;\n  }\n\n  function processTimeElement(el) {\n    // Allow re-processing if Discourse overwrote text\n    // We mark last applied value so we can detect overwrite.\n    const date =\n      toDate(el.getAttribute(\"datetime\")) ||\n      toDate(el.getAttribute(\"data-time\")) ||\n      toDate(el.dataset && el.dataset.time) ||\n      toDate(el.getAttribute(\"title\"));\n\n    if (!date) return;\n\n    const formatted = fullFormatter.format(date);\n    if (el.textContent !== formatted) {\n      el.textContent = formatted;\n    }\n  }\n\n  function findTimelineYear(rootEl) {\n    const container = rootEl.closest(\".timeline-scrollarea-wrapper\") || document;\n    const candidates = container.querySelectorAll(\".timeline-date-wrapper, .start-date span, .timeline-ago\");\n    for (const el of candidates) {\n      const text = (el.textContent || \"\").trim().replace(/\\s+/g, \" \");\n      const m = text.match(/^(\\S+)\\s+([۰-۹٠-٩0-9]{4})$/);\n      if (!m) continue;\n      const year = Number(toLatinDigits(m[2]));\n      if (Number.isFinite(year) && year >= 1970 && year <= 2100) return year;\n    }\n    return new Date().getFullYear();\n  }\n\n  function parseGregorianMonthYearFa(text) {\n    const cleaned = (text || \"\").trim().replace(/\\s+/g, \" \");\n    const parts = cleaned.split(\" \");\n    if (parts.length !== 2) return null;\n    const monthIndex = gregorianMonthsFa.get(parts[0]);\n    const year = Number(toLatinDigits(parts[1]));\n    if (monthIndex === undefined || !Number.isFinite(year) || year < 1970 || year > 2100) return null;\n    return new Date(Date.UTC(year, monthIndex, 1));\n  }\n\n  function parseGregorianDayMonthFa(text, assumedYear) {\n    const cleaned = (text || \"\").trim().replace(/\\s+/g, \" \");\n    const parts = cleaned.split(\" \");\n    if (parts.length !== 2) return null;\n    const day = Number(toLatinDigits(parts[0]));\n    const monthIndex = gregorianMonthsFa.get(parts[1]);\n    if (monthIndex === undefined || !Number.isFinite(day) || day < 1 || day > 31) return null;\n    const d = new Date(Date.UTC(assumedYear, monthIndex, day));\n    return isNaN(d.getTime()) ? null : d;\n  }\n\n  function processTimelineLabel(el) {\n    const text = (el.textContent || \"\").trim();\n    if (!text) return;\n\n    const d1 = parseGregorianMonthYearFa(text);\n    if (d1) {\n      const formatted = monthYearFormatter.format(d1);\n      if (el.textContent !== formatted) el.textContent = formatted;\n      return;\n    }\n\n    const year = findTimelineYear(el);\n    const d2 = parseGregorianDayMonthFa(text, year);\n    if (d2) {\n      const formatted = dayMonthFormatter.format(d2);\n      if (el.textContent !== formatted) el.textContent = formatted;\n    }\n  }\n\n  function run(root = document) {\n    // 1) Real time-based elements\n    root.querySelectorAll(\"time, .relative-date\").forEach(processTimeElement);\n\n    // 2) Timeline plain labels\n    root.querySelectorAll(\n      \".timeline-scrollarea-wrapper .timeline-ago, \" +\n      \".timeline-scrollarea-wrapper .start-date span, \" +\n      \".timeline-scrollarea-wrapper .timeline-date-wrapper span\"\n    ).forEach(processTimelineLabel);\n  }\n\n  // Initial\n  run();\n\n  // IMPORTANT: Observe text changes too, not just added nodes\n  const obs = new MutationObserver((muts) => {\n    for (const m of muts) {\n      // If nodes are added, process them\n      if (m.addedNodes && m.addedNodes.length) {\n        m.addedNodes.forEach(n => { if (n.nodeType === 1) run(n); });\n      }\n      // If text changes, re-run on the parent element\n      if (m.type === \"characterData\" && m.target && m.target.parentElement) {\n        run(m.target.parentElement);\n      }\n    }\n  });\n\n  obs.observe(document.documentElement, {\n    subtree: true,\n    childList: true,\n    characterData: true // <-- this is the key change\n  });\n\n  // Re-apply when tab becomes active again (Discourse often re-renders then)\n  function reapplySoon() {\n    // two passes handle immediate + next tick re-renders\n    run();\n    setTimeout(run, 250);\n    setTimeout(run, 1000);\n  }\n\n  document.addEventListener(\"visibilitychange\", () => {\n    if (!document.hidden) reapplySoon();\n  });\n\n  window.addEventListener(\"focus\", reapplySoon);\n})();\n"],"mappings":"AACA,CAAC,YAAY;EACX,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;;EAErD;EACA,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE;IAAE,SAAS,EAAE;EAAS,CAAC,CAAC;EAC5F,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE;IAAE,IAAI,EAAE,SAAS;IAAE,KAAK,EAAE;EAAO,CAAC,CAAC;EAC5G,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE;IAAE,GAAG,EAAE,SAAS;IAAE,KAAK,EAAE;EAAO,CAAC,CAAC;EAE1G,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAChC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAC9E,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EACrE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC7C,CAAC;EAEF,SAAS,aAAa,CAAC,GAAG,EAAE;IAC1B,OAAO,CAAC,GAAG,IAAI,EAAE,EACd,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CACvD,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;EAC5D;EAEA,SAAS,MAAM,CAAC,KAAK,EAAE;IACrB,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;IACvB,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;MAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;MACvB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IACrD;IACA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;IACzB,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;EACtC;EAEA,SAAS,kBAAkB,CAAC,EAAE,EAAE;IAC9B;IACA;IACA,MAAM,IAAI,GACR,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IACnC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IACpC,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IACrC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,CAAC,IAAI,EAAE;IAEX,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5C,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,EAAE;MAChC,EAAE,CAAC,WAAW,GAAG,SAAS;IAC5B;EACF;EAEA,SAAS,gBAAgB,CAAC,MAAM,EAAE;IAChC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,IAAI,QAAQ;IAC5E,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,CAAC,yDAAyD,CAAC;IACxG,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;MAC3B,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;MAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC;MAClD,IAAI,CAAC,CAAC,EAAE;MACR,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,OAAO,IAAI;IACxE;IACA,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;EACjC;EAEA,SAAS,yBAAyB,CAAC,IAAI,EAAE;IACvC,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;IACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,OAAO,IAAI;IACjG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;EAChD;EAEA,SAAS,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE;IACnD,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,OAAO,IAAI;IACzF,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;EACtC;EAEA,SAAS,oBAAoB,CAAC,EAAE,EAAE;IAChC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,EAAE;IAEX,MAAM,EAAE,GAAG,yBAAyB,CAAC,IAAI,CAAC;IAC1C,IAAI,EAAE,EAAE;MACN,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;MAC/C,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,EAAE,EAAE,CAAC,WAAW,GAAG,SAAS;MAC5D;IACF;IAEA,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC;IACjC,MAAM,EAAE,GAAG,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC;IAC/C,IAAI,EAAE,EAAE;MACN,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;MAC9C,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,EAAE,EAAE,CAAC,WAAW,GAAG,SAAS;IAC9D;EACF;EAEA,SAAS,GAAG,CAAC,IAAI,GAAG,QAAQ,EAAE;IAC5B;IACA,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;;IAEzE;IACA,IAAI,CAAC,gBAAgB,CACnB,8CAA8C,GAC9C,iDAAiD,GACjD,0DACF,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;EACjC;;EAEA;EACA,GAAG,CAAC,CAAC;;EAEL;EACA,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAE,IAAI,IAAK;IACzC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;MACpB;MACA,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE;QACvC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI;UAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAAE,CAAC,CAAC;MAC9D;MACA;MACA,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE;QACpE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;MAC7B;IACF;EACF,CAAC,CAAC;EAEF,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;IACpC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI,CAAC;EACtB,CAAC,CAAC;;EAEF;EACA,SAAS,WAAW,GAAG;IACrB;IACA,GAAG,CAAC,CAAC;IACL,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IACpB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC;EACvB;EAEA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM;IAClD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;EACrC,CAAC,CAAC;EAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC;AAC/C,CAAC,EAAE,CAAC","ignoreList":[]}