{"ast":null,"code":"\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = initHeadManager;\nvar DOMAttributeNames = {\n  acceptCharset: 'accept-charset',\n  className: 'class',\n  htmlFor: 'for',\n  httpEquiv: 'http-equiv'\n};\n\nfunction reactElementToDOM(_ref) {\n  var type = _ref.type,\n      props = _ref.props;\n  var el = document.createElement(type);\n\n  for (var p in props) {\n    if (!props.hasOwnProperty(p)) continue;\n    if (p === 'children' || p === 'dangerouslySetInnerHTML') continue; // we don't render undefined props to the DOM\n\n    if (props[p] === undefined) continue;\n    var attr = DOMAttributeNames[p] || p.toLowerCase();\n    el.setAttribute(attr, props[p]);\n  }\n\n  var children = props.children,\n      dangerouslySetInnerHTML = props.dangerouslySetInnerHTML;\n\n  if (dangerouslySetInnerHTML) {\n    el.innerHTML = dangerouslySetInnerHTML.__html || '';\n  } else if (children) {\n    el.textContent = typeof children === 'string' ? children : children.join('');\n  }\n\n  return el;\n}\n\nfunction updateElements(type, components) {\n  var headEl = document.getElementsByTagName('head')[0];\n  var headCountEl = headEl.querySelector('meta[name=next-head-count]');\n\n  if (true) {\n    if (!headCountEl) {\n      console.error('Warning: next-head-count is missing. https://err.sh/next.js/next-head-count-missing');\n      return;\n    }\n  }\n\n  var headCount = Number(headCountEl.content);\n  var oldTags = [];\n\n  for (var i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = j.previousElementSibling) {\n    if (j.tagName.toLowerCase() === type) {\n      oldTags.push(j);\n    }\n  }\n\n  var newTags = components.map(reactElementToDOM).filter(function (newTag) {\n    for (var k = 0, len = oldTags.length; k < len; k++) {\n      var oldTag = oldTags[k];\n\n      if (oldTag.isEqualNode(newTag)) {\n        oldTags.splice(k, 1);\n        return false;\n      }\n    }\n\n    return true;\n  });\n  oldTags.forEach(function (t) {\n    return t.parentNode.removeChild(t);\n  });\n  newTags.forEach(function (t) {\n    return headEl.insertBefore(t, headCountEl);\n  });\n  headCountEl.content = (headCount - oldTags.length + newTags.length).toString();\n}\n\nfunction initHeadManager() {\n  var updatePromise = null;\n  return function (head) {\n    var promise = updatePromise = Promise.resolve().then(function () {\n      if (promise !== updatePromise) return;\n      updatePromise = null;\n      var tags = {};\n      head.forEach(function (h) {\n        var components = tags[h.type] || [];\n        components.push(h);\n        tags[h.type] = components;\n      });\n      var titleComponent = tags.title ? tags.title[0] : null;\n      var title = '';\n\n      if (titleComponent) {\n        var children = titleComponent.props.children;\n        title = typeof children === 'string' ? children : children.join('');\n      }\n\n      if (title !== document.title) document.title = title;\n      ['meta', 'base', 'link', 'style', 'script'].forEach(function (type) {\n        updateElements(type, tags[type] || []);\n      });\n    });\n  };\n}","map":{"version":3,"sources":["../../client/head-manager.js"],"names":["DOMAttributeNames","acceptCharset","className","htmlFor","httpEquiv","el","document","props","p","attr","dangerouslySetInnerHTML","children","headEl","headCountEl","console","headCount","Number","oldTags","i","j","newTags","components","newTag","k","len","oldTag","t","updatePromise","head","promise","Promise","tags","h","titleComponent","title","type","updateElements"],"mappings":"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","sourcesContent":["const DOMAttributeNames = {\n  acceptCharset: 'accept-charset',\n  className: 'class',\n  htmlFor: 'for',\n  httpEquiv: 'http-equiv',\n}\n\nfunction reactElementToDOM({ type, props }) {\n  const el = document.createElement(type)\n  for (const p in props) {\n    if (!props.hasOwnProperty(p)) continue\n    if (p === 'children' || p === 'dangerouslySetInnerHTML') continue\n\n    // we don't render undefined props to the DOM\n    if (props[p] === undefined) continue\n\n    const attr = DOMAttributeNames[p] || p.toLowerCase()\n    el.setAttribute(attr, props[p])\n  }\n\n  const { children, dangerouslySetInnerHTML } = props\n  if (dangerouslySetInnerHTML) {\n    el.innerHTML = dangerouslySetInnerHTML.__html || ''\n  } else if (children) {\n    el.textContent = typeof children === 'string' ? children : children.join('')\n  }\n  return el\n}\n\nfunction updateElements(type, components) {\n  const headEl = document.getElementsByTagName('head')[0]\n  const headCountEl = headEl.querySelector('meta[name=next-head-count]')\n  if (process.env.NODE_ENV !== 'production') {\n    if (!headCountEl) {\n      console.error(\n        'Warning: next-head-count is missing. https://err.sh/next.js/next-head-count-missing'\n      )\n      return\n    }\n  }\n\n  const headCount = Number(headCountEl.content)\n  const oldTags = []\n\n  for (\n    let i = 0, j = headCountEl.previousElementSibling;\n    i < headCount;\n    i++, j = j.previousElementSibling\n  ) {\n    if (j.tagName.toLowerCase() === type) {\n      oldTags.push(j)\n    }\n  }\n  const newTags = components.map(reactElementToDOM).filter((newTag) => {\n    for (let k = 0, len = oldTags.length; k < len; k++) {\n      const oldTag = oldTags[k]\n      if (oldTag.isEqualNode(newTag)) {\n        oldTags.splice(k, 1)\n        return false\n      }\n    }\n    return true\n  })\n\n  oldTags.forEach((t) => t.parentNode.removeChild(t))\n  newTags.forEach((t) => headEl.insertBefore(t, headCountEl))\n  headCountEl.content = (headCount - oldTags.length + newTags.length).toString()\n}\n\nexport default function initHeadManager() {\n  let updatePromise = null\n\n  return (head) => {\n    const promise = (updatePromise = Promise.resolve().then(() => {\n      if (promise !== updatePromise) return\n\n      updatePromise = null\n      const tags = {}\n\n      head.forEach((h) => {\n        const components = tags[h.type] || []\n        components.push(h)\n        tags[h.type] = components\n      })\n\n      const titleComponent = tags.title ? tags.title[0] : null\n      let title = ''\n      if (titleComponent) {\n        const { children } = titleComponent.props\n        title = typeof children === 'string' ? children : children.join('')\n      }\n      if (title !== document.title) document.title = title\n      ;['meta', 'base', 'link', 'style', 'script'].forEach((type) => {\n        updateElements(type, tags[type] || [])\n      })\n    }))\n  }\n}\n"]},"metadata":{},"sourceType":"script"}