{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["export type TGetStrWithThousandSeparatorArgs = Parameters<typeof getStrWithThousandSeparator>;\r\n\r\nexport type TGetStrWithThousandSeparatorReturn = ReturnType<typeof getStrWithThousandSeparator>;\r\n\r\n/**\r\n * Gets a formatted string with thousands separators in the integer part of a number.\n *\r\n * @param {number} num Source number\r\n * @param {string} [separator=\" \"] Separator to insert between each group of three digits\r\n * @returns {string} Formatted string\r\n * @example\n * getStrWithThousandSeparator(1000000, \",\"); // \"1,000,000\"\n * @example\n * // Format a dashboard counter with narrow no-break spaces\n * const views = getStrWithThousandSeparator(1_250_000, \"\\u202f\");\n */\nexport const getStrWithThousandSeparator = (num: number, separator: string = \" \"): string => {\r\n  if (!Number.isFinite(num)) {\r\n    throw new TypeError(\"getStrWithThousandSeparator: num must be a finite number\");\r\n  }\r\n  if (typeof separator !== \"string\") {\r\n    throw new TypeError(\"getStrWithThousandSeparator: separator must be a string\");\r\n  }\r\n  const [ mantissa, exponent ] = num.toString().split(\"e\");\n  const [ integer, fraction ] = mantissa.split(\".\");\n  // eslint-disable-next-line security/detect-unsafe-regex\n  const formattedInteger = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, separator);\n  return `${formattedInteger}${fraction === undefined ? \"\" : `.${fraction}`}${exponent === undefined ? \"\" : `e${exponent}`}`;\n};\r\n"],"names":["getStrWithThousandSeparator","num","separator","Number","isFinite","TypeError","mantissa","exponent","toString","split","integer","fraction","formattedInteger","replace","undefined"],"mappings":"yDAgBO,MAAMA,4BAA8B,CAACC,IAAaC,UAAoB,OAC3E,IAAKC,OAAOC,SAASH,KACnB,MAAM,IAAII,UAAU,4DAEtB,UAAWH,YAAc,SACvB,MAAM,IAAIG,UAAU,2DAEtB,MAAQC,SAAUC,UAAaN,IAAIO,WAAWC,MAAM,KACpD,MAAQC,QAASC,UAAaL,SAASG,MAAM,KAE7C,MAAMG,iBAAmBF,QAAQG,QAAQ,wBAAyBX,WAClE,MAAO,GAAGU,mBAAmBD,gBAAaG,EAAY,GAAK,IAAIH,aAAaJ,gBAAaO,EAAY,GAAK,IAAIP"}