{"version":3,"sources":["common/misc.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAI,GAAG,MAAM,EAAE,CAYpE;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAYzE","file":"../../common/misc.d.ts","sourcesContent":["/**\n * Construct list of numbers (start, end] by step -\n * including start, not including end\n *\n * @param {number} start\n * @param {number} end\n * @param {number} step\n * @return {[number]}\n */\nexport function range(start: number, end: number, step = 1): number[] {\n  const result = [];\n  if (end > start && step > 0) {\n    for (let i = start; i < end; i += step) {\n      result.push(i);\n    }\n  } else if (end < start && step < 0) {\n    for (let i = start; i > end; i += step) {\n      result.push(i);\n    }\n  }\n  return result;\n}\n\nexport function relativeUrl(relativeTo: URL, relativePath: string): string {\n  const pathParts = relativeTo.pathname.split(/\\/+/).filter((s) => !!s);\n  const relParts = relativePath.split(/\\/+/).filter((s) => !!s);\n\n  for (const it of relParts) {\n    if (it === '..') {\n      pathParts.pop();\n    } else if (it !== '.') {\n      pathParts.push(it);\n    }\n  }\n  return `${relativeTo.origin}/${pathParts.join('/')}`;\n}\n"]}