{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["import type { IFormattedValue } from \"../config/types\";\r\n\r\n/**\r\n * Форматирует число с разделителями тысяч\r\n * @param {IFormattedValue} params - параметры форматирования\r\n * @param {number | string} params.value - исходное число\r\n * @param {string} [params.separator=\"\"] - разделительный символ или пробел\r\n * @returns {string} отформатированная строка числа\r\n */\r\nconst getFormatNumber = ({\r\n  value,\r\n  separator = \"\",\r\n}: IFormattedValue): string => {\r\n  // Обработка строковых значений с разделителями\r\n  if (typeof value === \"string\" && /[\\s.,]/.test(value)) {\r\n    const cleanedValue = value.replace(/[\\s.,]/g, \"\");\r\n    const num = parseFloat(cleanedValue);\r\n\r\n    if (isNaN(num)) {\r\n      return value;\r\n    }\r\n\r\n    value = num;\r\n  }\r\n\r\n  // Преобразование в число\r\n  const num = typeof value === \"string\" ? parseFloat(value) : value;\r\n\r\n  // Проверка на NaN после преобразования\r\n  if (isNaN(num)) {\r\n    return String(value);\r\n  }\r\n\r\n  // Разделение на целую и дробную части\r\n  const [ integerPart, decimalPart ] = num.toString().split(\".\");\r\n\r\n  // Форматирование целой части с разделителями\r\n  const formattedInteger = integerPart.replace(\r\n    // eslint-disable-next-line security/detect-unsafe-regex\r\n    /\\B(?=(\\d{3})+(?!\\d))/g, separator\r\n  );\r\n\r\n  // Сборка результата\r\n  return decimalPart ? `${formattedInteger}.${decimalPart}` : formattedInteger;\r\n};\r\n\r\nexport { getFormatNumber };\r\n"],"names":["getFormatNumber","value","separator","test","cleanedValue","replace","num","parseFloat","isNaN","String","integerPart","decimalPart","toString","split","formattedInteger"],"mappings":";;;;;;;AASA,MAAMA,gBAAkB,EACtBC,YACAC,oBAAY;;AAGZ,UAAWD,QAAU,UAAY,SAASE,KAAKF,OAAQ,CACrD,MAAMG,aAAeH,MAAMI,QAAQ,UAAW,IAC9C,MAAMC,IAAMC,WAAWH,cAEvB,GAAII,MAAMF,KACR,OAAOL,MAGTA,MAAQK,GACV;yBAGA;MAAMA,WAAaL,QAAU,SAAWM,WAAWN,OAASA;uCAG5D;GAAIO,MAAMF,KACR,OAAOG,OAAOR;sCAIhB;MAAQS,YAAaC,aAAgBL,IAAIM,WAAWC,MAAM;6CAG1D;MAAMC,iBAAmBJ,YAAYL;;AAEnC,wBAAyBH;oBAI3B;OAAOS,YAAc,GAAGG,oBAAoBH,cAAgBG"}