{
  "version": 3,
  "sources": ["/cdn/shop/t/31/assets/ro-search-results-pages-ga4.js?vTrack=202605191002"],
  "sourcesContent": ["/**\n * \u641C\u7D22\u9875 Page \u5217\u8868 GA4\uFF08\u4EC5 2 \u4E2A\u57CB\u70B9\uFF0C\u89C1\u4E0B\u65B9\u7D22\u5F15\uFF09\n *\n * \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n * \u2502 \u57CB\u70B9\u7D22\u5F15\uFF08\u6539/\u6269\u65F6\u5148\u641C TRACK \u6CE8\u91CA\uFF09                                \u2502\n * \u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n * \u2502 [TRACK-1] view_item_list  \u5355\u5F20 Page \u5361\u81EA\u8EAB\u53EF\u89C1 \u226560% \u540E\u66DD\u5149\u4E0A\u62A5 \u2502\n * \u2502           \u89E6\u53D1\uFF1AobservePageCards + ro-search:pages-rendered     \u2502\n * \u2502 [TRACK-2] select_item     Learn More \u94FE\u63A5\u70B9\u51FB \u2192 pushSelectItem  \u2502\n * \u2502           \u89E6\u53D1\uFF1AhandlePageLearnMoreClick\uFF08document \u6355\u83B7\u4E00\u6B21\u7ED1\u5B9A\uFF09\u2502\n * \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n *\n * event_parameters \u5B57\u6BB5\uFF08\u4E0E\u9700\u6C42\u6587\u6863\u4E00\u81F4\uFF09\uFF1A\n *   item_list_name / item_list_id\uFF1A\u641C\u7D22\u8BCD\uFF08bootstrap.searchTerms\uFF09\n *   items[]\uFF1Aitem_id\u3001item_name\u3001index\u3001item_list_id\u3001item_list_name\n *   select_item \u989D\u5916\uFF1Abutton_name\n *\n * \u6570\u636E\u6D41\uFF1A\n *   ro-search-results-pages.js \u6E32\u67D3\u540E\u6D3E\u53D1 ro-search:pages-rendered\n *   \u2192 \u672C\u6587\u4EF6\u66F4\u65B0 currentPageItems / container \u2192 \u66DD\u5149 observer\n *\n * \u4F9D\u8D56\uFF1Awindow.__RO_SEARCH_PAGES_BOOTSTRAP__\n * \u4E0A\u62A5\uFF1AtrackReport\uFF08\u4E0E GA4-track-directive \u5171\u7528 dataLayer\uFF09\n */\nimport { trackReport } from \"//de.roborock.com/cdn/shop/t/31/assets/GA4-track-directive-report.js?vTrack=202605191002&v=104115401213510859531780561566\";\n\n// \u2500\u2500\u2500 \u914D\u7F6E\u5E38\u91CF \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * [TRACK-1] \u5355\u5F20 Page \u5361\u66DD\u5149\u9608\u503C\uFF08\u975E\u6574\u9875\u5217\u8868\u5BB9\u5668\uFF09\n * intersectionRatio \u9488\u5BF9 observe \u7684\u6BCF\u5F20 .ro-search-page-card\n */\nconst CARD_VISIBLE_RATIO = 0.6;\n/** [TRACK-2] Learn More\uFF0C\u9700\u4E0E search-page-card-template \u4E2D .ro-search-page-card__link \u4E00\u81F4 */\nconst PAGE_LEARN_MORE_SELECTOR = 'a.ro-search-page-card__link.ro-btn.theme-text[href]';\n/** [TRACK-1] \u4E0E DOM \u5361\u7247\u4E00\u4E00\u5BF9\u5E94\u7684\u9009\u62E9\u5668 */\nconst PAGE_CARD_SELECTOR = '.ro-search-page-card';\n\n// \u2500\u2500\u2500 \u8FD0\u884C\u65F6\u72B6\u6001 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/** [TRACK-1] Page \u5361 IntersectionObserver\uFF0C\u7FFB\u9875/\u91CD\u6E32\u67D3\u524D disconnect */\n/** @type {IntersectionObserver | null} */\nlet listObserver = null;\n/** [TRACK-1] \u672C\u9875\u5DF2\u4E0A\u62A5\u8FC7 view_item_list \u7684\u5361\u7247\u4E0B\u6807\uFF080-based\uFF09 */\n/** @type {Set<number>} */\nlet reportedCardIndices = new Set();\n/** [TRACK-1] \u5F85\u5408\u5E76\u4E0A\u62A5\u7684\u4E0B\u6807 */\n/** @type {Set<number>} */\nlet pendingViewIndices = new Set();\n/** [TRACK-1] \u662F\u5426\u5DF2\u5B89\u6392 requestAnimationFrame \u5408\u5E76 flush */\nlet viewItemListFlushScheduled = false;\n/** \u5F53\u524D\u9875 bootstrap \u9875\u9762\u9879\uFF0C\u4E0E DOM \u5361\u7247\u987A\u5E8F\u4E00\u4E00\u5BF9\u5E94 */\n/** @type {object[]} */\nlet currentPageItems = [];\n/** [data-search-page-card-container] */\n/** @type {HTMLElement | null} */\nlet currentPageContainer = null;\n/** \u5217\u8868\u7EA7\uFF1Aitem_list_name / item_list_id\uFF08\u641C\u7D22\u8BCD\uFF09 */\n/** @type {object | null} */\nlet currentListMeta = null;\n/** [TRACK-2] document \u70B9\u51FB\u662F\u5426\u5DF2\u7ED1\u5B9A */\nlet learnMoreClickBound = false;\n\n// \u2500\u2500\u2500 \u516C\u5171\uFF1AlistMeta / GA4 item\uFF08\u4E24\u4E2A\u57CB\u70B9\u5171\u7528\uFF09\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * @param {object} boot window.__RO_SEARCH_PAGES_BOOTSTRAP__\n */\nfunction getListMeta(boot) {\n  const searchTerms = boot.searchTerms || '';\n  return {\n    item_list_name: searchTerms,\n    item_list_id: searchTerms,\n  };\n}\n\n/**\n * \u5355\u6761 GA4 item\uFF08Page \u5217\u8868\u65E0 currency / category \u7B49\u6269\u5C55\u5B57\u6BB5\uFF09\n * @param {object} pageItem bootstrap \u9879 { id, title, ... }\n * @param {number} index \u5F53\u524D\u9875 1-based\n * @param {object} listMeta\n */\nfunction buildGa4PageItem(pageItem, index, listMeta) {\n  return {\n    item_id: String(pageItem.id != null ? pageItem.id : ''),\n    item_name: pageItem.title || '',\n    index: index,\n    item_list_id: listMeta.item_list_id,\n    item_list_name: listMeta.item_list_name,\n  };\n}\n\n// \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n// [TRACK-1] view_item_list \u2014 \u5355\u5361\u66DD\u5149\uFF08\u6EDA\u52A8\u589E\u91CF\u4E0A\u62A5\uFF09\n// \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\n/**\n * [TRACK-1] \u5B9E\u9645\u4E0A\u62A5\u5165\u53E3\n * @param {object[]} pageItems\n * @param {number[]} cardIndices \u5F85\u4E0A\u62A5\u5361\u7247\u5728 pageItems \u4E2D\u7684 0-based \u4E0B\u6807\n * @param {object} listMeta\n */\nfunction pushViewItemList(pageItems, cardIndices, listMeta) {\n  if (!pageItems || pageItems.length === 0 || !cardIndices || cardIndices.length === 0) {\n    return;\n  }\n\n  const items = cardIndices.map(function (cardIndex) {\n    return buildGa4PageItem(pageItems[cardIndex], cardIndex + 1, listMeta);\n  });\n\n  trackReport({\n    event_name: 'view_item_list',\n    event_parameters: {\n      item_list_name: listMeta.item_list_name,\n      item_list_id: listMeta.item_list_id,\n      items: items,\n    },\n  });\n}\n\n/**\n * [TRACK-1] \u5408\u5E76\u540C\u4E00\u5E27\u5185\u591A\u5F20\u65B0\u66DD\u5149\u5361\n * @param {object[]} pageItems\n * @param {object} listMeta\n */\nfunction scheduleViewItemListFlush(pageItems, listMeta) {\n  if (viewItemListFlushScheduled) return;\n  viewItemListFlushScheduled = true;\n\n  requestAnimationFrame(function () {\n    viewItemListFlushScheduled = false;\n    if (pendingViewIndices.size === 0) return;\n\n    const indices = Array.from(pendingViewIndices).sort(function (left, right) {\n      return left - right;\n    });\n    pendingViewIndices.clear();\n    pushViewItemList(pageItems, indices, listMeta);\n  });\n}\n\n/**\n * [TRACK-1] \u5355\u5361 IntersectionObserver \u56DE\u8C03\n * @param {object[]} pageItems\n * @param {object} listMeta\n */\nfunction handlePageCardIntersection(pageItems, listMeta) {\n  return function (entries) {\n    entries.forEach(function (entry) {\n      if (!entry.isIntersecting || entry.intersectionRatio < CARD_VISIBLE_RATIO) return;\n\n      const cardEl = entry.target;\n      const cardIndex = Number(cardEl.dataset.ga4CardIndex);\n      if (!Number.isInteger(cardIndex) || cardIndex < 0 || cardIndex >= pageItems.length) return;\n      if (reportedCardIndices.has(cardIndex)) return;\n\n      reportedCardIndices.add(cardIndex);\n      if (listObserver) listObserver.unobserve(cardEl);\n\n      pendingViewIndices.add(cardIndex);\n      scheduleViewItemListFlush(pageItems, listMeta);\n    });\n  };\n}\n\n/**\n * [TRACK-1] \u5BF9\u6BCF\u5F20 .ro-search-page-card \u5355\u72EC observe\uFF0C\u8BE5\u5361\u81EA\u8EAB\u53EF\u89C1 \u226560% \u624D\u89E6\u53D1\n * @param {HTMLElement} container [data-search-page-card-container]\n * @param {object[]} pageItems\n * @param {object} listMeta\n */\nfunction observePageCards(container, pageItems, listMeta) {\n  if (!container || pageItems.length === 0) return;\n\n  if (listObserver) {\n    listObserver.disconnect();\n    listObserver = null;\n  }\n  reportedCardIndices = new Set();\n  pendingViewIndices = new Set();\n  viewItemListFlushScheduled = false;\n\n  if (!window.IntersectionObserver) {\n    const allIndices = pageItems.map(function (_item, idx) {\n      return idx;\n    });\n    pushViewItemList(pageItems, allIndices, listMeta);\n    return;\n  }\n\n  const cards = container.querySelectorAll(PAGE_CARD_SELECTOR);\n  if (cards.length === 0) return;\n\n  listObserver = new IntersectionObserver(handlePageCardIntersection(pageItems, listMeta), {\n    threshold: [CARD_VISIBLE_RATIO],\n  });\n\n  cards.forEach(function (cardEl, cardIndex) {\n    if (cardIndex >= pageItems.length) return;\n    cardEl.dataset.ga4CardIndex = String(cardIndex);\n    listObserver.observe(cardEl);\n  });\n}\n\n// \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n// [TRACK-2] select_item \u2014 Learn More \u70B9\u51FB\n// \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\n/**\n * [TRACK-2] \u5B9E\u9645\u4E0A\u62A5\u5165\u53E3\n * @param {object} pageItem\n * @param {number} index\n * @param {string} buttonName\n * @param {object} listMeta\n */\nfunction pushSelectItem(pageItem, index, buttonName, listMeta) {\n  trackReport({\n    event_name: 'select_item',\n    event_parameters: {\n      item_list_name: listMeta.item_list_name,\n      item_list_id: listMeta.item_list_id,\n      button_name: buttonName,\n      items: [buildGa4PageItem(pageItem, index, listMeta)],\n    },\n  });\n}\n\n/**\n * @param {HTMLElement} container\n * @param {HTMLElement} cardEl\n */\nfunction getCardIndex(container, cardEl) {\n  const cards = container.querySelectorAll('.ro-search-page-card');\n  return Array.prototype.indexOf.call(cards, cardEl) + 1;\n}\n\n/**\n * [TRACK-2] \u70B9\u51FB\u5904\u7406\uFF1A\u5339\u914D PAGE_LEARN_MORE_SELECTOR \u2192 pushSelectItem\n */\nfunction handlePageLearnMoreClick(event) {\n  const container = currentPageContainer;\n  const pageItems = currentPageItems;\n  const listMeta = currentListMeta;\n  if (!container || !listMeta || !pageItems.length) return;\n\n  const link = event.target.closest(PAGE_LEARN_MORE_SELECTOR);\n  if (!link || !container.contains(link)) return;\n\n  const card = link.closest('.ro-search-page-card');\n  if (!card) return;\n\n  const index = getCardIndex(container, card);\n  if (index < 1 || index > pageItems.length) return;\n\n  const pageItem = pageItems[index - 1];\n  const buttonName = (link.textContent && link.textContent.trim()) || link.getAttribute('aria-label') || '';\n\n  pushSelectItem(pageItem, index, buttonName, listMeta);\n}\n\nfunction bindPageLearnMoreClickOnce() {\n  if (learnMoreClickBound) return;\n  learnMoreClickBound = true;\n  document.addEventListener('click', handlePageLearnMoreClick, true);\n}\n\n// \u2500\u2500\u2500 \u521D\u59CB\u5316 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * \u5165\u53E3\uFF1Abootstrap\u3001\u7ED1\u5B9A [TRACK-2]\u3001\u8BA2\u9605 ro-search:pages-rendered \u89E6\u53D1 [TRACK-1]\n */\nfunction initSearchResultsPagesGa4() {\n  const boot = window.__RO_SEARCH_PAGES_BOOTSTRAP__;\n  if (!boot) return;\n\n  currentListMeta = getListMeta(boot);\n  bindPageLearnMoreClickOnce();\n\n  document.addEventListener('ro-search:pages-rendered', function (event) {\n    const detail = event.detail || {};\n    const pageItems = detail.pageItems || [];\n    const container = detail.container;\n    if (!container || pageItems.length === 0) return;\n\n    currentPageItems = pageItems;\n    currentPageContainer = container;\n\n    observePageCards(container, pageItems, currentListMeta);\n  });\n}\n\ninitSearchResultsPagesGa4();\n"],
  "mappings": "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",
  "names": []
}
