{"version":3,"sources":["../src/react-router.ts"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\nimport type { Attributes, RumInstance } from './types';\n\nexport interface RumRouterTrackerProps {\n  rum: RumInstance;\n  pattern?: string;\n  params?: Attributes;\n}\n\nconst lastRouterNavigation = new WeakMap<RumInstance, string>();\n\nexport function trackReactRouterNavigation(rum: RumInstance, pattern: string, params: Attributes = {}): void {\n  const span = rum.startSpan('routeChange', {\n    'router.type': 'react-router',\n    'route.pattern': pattern,\n    'route.params': JSON.stringify(params)\n  });\n  span.end();\n}\n\nexport function RumRouterTracker(props: RumRouterTrackerProps): null {\n  const paramsKey = stringifyParams(props.params ?? {});\n  useEffect(() => {\n    if (!props.pattern) return;\n    const key = `${props.pattern}|${paramsKey}`;\n    if (lastRouterNavigation.get(props.rum) === key) return;\n    lastRouterNavigation.set(props.rum, key);\n    trackReactRouterNavigation(props.rum, props.pattern, props.params ?? {});\n  }, [props.rum, props.pattern, paramsKey]);\n  return null;\n}\n\nfunction stringifyParams(params: Attributes): string {\n  try {\n    return JSON.stringify(params);\n  } catch {\n    return String(params);\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA0B;AAS1B,IAAM,uBAAuB,oBAAI,QAA6B;AAEvD,SAAS,2BAA2B,KAAkB,SAAiB,SAAqB,CAAC,GAAS;AAC3G,QAAM,OAAO,IAAI,UAAU,eAAe;AAAA,IACxC,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,gBAAgB,KAAK,UAAU,MAAM;AAAA,EACvC,CAAC;AACD,OAAK,IAAI;AACX;AAEO,SAAS,iBAAiB,OAAoC;AAtBrE;AAuBE,QAAM,YAAY,iBAAgB,WAAM,WAAN,YAAgB,CAAC,CAAC;AACpD,8BAAU,MAAM;AAxBlB,QAAAA;AAyBI,QAAI,CAAC,MAAM,QAAS;AACpB,UAAM,MAAM,GAAG,MAAM,OAAO,IAAI,SAAS;AACzC,QAAI,qBAAqB,IAAI,MAAM,GAAG,MAAM,IAAK;AACjD,yBAAqB,IAAI,MAAM,KAAK,GAAG;AACvC,+BAA2B,MAAM,KAAK,MAAM,UAASA,MAAA,MAAM,WAAN,OAAAA,MAAgB,CAAC,CAAC;AAAA,EACzE,GAAG,CAAC,MAAM,KAAK,MAAM,SAAS,SAAS,CAAC;AACxC,SAAO;AACT;AAEA,SAAS,gBAAgB,QAA4B;AACnD,MAAI;AACF,WAAO,KAAK,UAAU,MAAM;AAAA,EAC9B,QAAQ;AACN,WAAO,OAAO,MAAM;AAAA,EACtB;AACF;","names":["_a"]}