{"version":3,"sources":["../src/parse/rangeMap.ts"],"names":["createRangeMap","ranges","sortedRanges","a","b","r","getRangeValue","number","rangeMap","breakpoints","values","left","right","mid"],"mappings":";;AAWO,SAASA,CAAAA,CAAeC,EAA2B,CACxD,IAAMC,EAAeD,CAAO,CAAA,IAAA,CAAK,CAACE,CAAAA,CAAGC,CAAMD,GAAAA,CAAAA,CAAE,MAAQC,CAAE,CAAA,KAAK,EAC5D,OAAO,CACL,YAAaF,CAAa,CAAA,GAAA,CAAKG,CAAMA,EAAAA,CAAAA,CAAE,KAAK,CAAA,CAC5C,OAAQH,CAAa,CAAA,GAAA,CAAKG,GAAMA,CAAE,CAAA,KAAK,CACzC,CACF,CAEO,SAASC,CAAAA,CACdC,CACAC,CAAAA,CAAAA,CACe,CACf,GAAM,CAAE,YAAAC,CAAa,CAAA,MAAA,CAAAC,CAAO,CAAIF,CAAAA,CAAAA,CAC5BG,CAAO,CAAA,CAAA,CACPC,CAAQH,CAAAA,CAAAA,CAAY,OAAS,CAGjC,CAAA,GAAIF,EAASE,CAAY,CAAA,CAAC,EACxB,OAAO,IAAA,CAGT,KAAOE,CAAAA,EAAQC,CAAO,EAAA,CACpB,IAAMC,CAAM,CAAA,IAAA,CAAK,OAAOF,CAAOC,CAAAA,CAAAA,EAAS,CAAC,CACzC,CAAA,GAAIL,CAAUE,EAAAA,CAAAA,CAAYI,CAAG,CAAA,CAAG,CAC9B,GAAIA,CAAAA,GAAQJ,EAAY,MAAS,CAAA,CAAA,EAAKF,EAASE,CAAYI,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAChE,OAAOH,CAAAA,CAAOG,CAAG,CAEnBF,CAAAA,CAAAA,CAAOE,EAAM,EACf,CAAA,KACED,EAAQC,CAAM,CAAA,EAElB,CAEA,OAAO,IACT","file":"chunk-A4GPCTFO.cjs","sourcesContent":["export interface Range {\r\n  start: number;\r\n  end: number;\r\n  value: string;\r\n}\r\n\r\ninterface RangeMap {\r\n  breakpoints: number[];\r\n  values: string[];\r\n}\r\n\r\nexport function createRangeMap(ranges: Range[]): RangeMap {\r\n  const sortedRanges = ranges.sort((a, b) => a.start - b.start);\r\n  return {\r\n    breakpoints: sortedRanges.map((r) => r.start),\r\n    values: sortedRanges.map((r) => r.value),\r\n  };\r\n}\r\n\r\nexport function getRangeValue(\r\n  number: number,\r\n  rangeMap: RangeMap,\r\n): string | null {\r\n  const { breakpoints, values } = rangeMap;\r\n  let left = 0;\r\n  let right = breakpoints.length - 1;\r\n\r\n  // 处理边界情况\r\n  if (number < breakpoints[0]) {\r\n    return null;\r\n  }\r\n\r\n  while (left <= right) {\r\n    const mid = Math.floor((left + right) / 2);\r\n    if (number >= breakpoints[mid]) {\r\n      if (mid === breakpoints.length - 1 || number < breakpoints[mid + 1]) {\r\n        return values[mid];\r\n      }\r\n      left = mid + 1;\r\n    } else {\r\n      right = mid - 1;\r\n    }\r\n  }\r\n\r\n  return null;\r\n}\r\n"]}