{"version":3,"file":"numbers.mjs","sources":["../../../../src/tools/formatters/numbers.ts"],"sourcesContent":["import { Type } from '../type'\n\nexport default class FormatterNumbers {\n  private static isInternalConstructing: boolean = false\n  private static instance: FormatterNumbers | null = null\n  private _defLocale: null | string = null\n  private constructor() {\n    if (!FormatterNumbers.isInternalConstructing) {\n      throw new TypeError('FormatterNumber is not constructable')\n    }\n    FormatterNumbers.isInternalConstructing = false\n  }\n\n  /**\n   * @return FormatterNumbers\n   */\n  static getInstance(): FormatterNumbers {\n    if (!FormatterNumbers.instance) {\n      FormatterNumbers.isInternalConstructing = true\n      FormatterNumbers.instance = new FormatterNumbers()\n    }\n    return FormatterNumbers.instance\n  }\n\n  setDefLocale(locale: string) {\n    this._defLocale = locale\n  }\n\n  format(value: number, locale?: string): string {\n    let formatter\n    if (typeof locale === 'undefined' || !Type.isStringFilled(locale)) {\n      locale = Type.isStringFilled(this._defLocale)\n        ? this._defLocale || 'en'\n        : (\n            typeof navigator === 'undefined'\n              ? 'en'\n              : navigator?.language || 'en'\n          )\n    }\n\n    if (Number.isInteger(value)) {\n      formatter = new Intl.NumberFormat(locale, {\n        minimumFractionDigits: 0,\n        maximumFractionDigits: 0\n      })\n    } else {\n      formatter = new Intl.NumberFormat(locale, {\n        minimumFractionDigits: 2,\n        maximumFractionDigits: 2\n      })\n    }\n\n    let result = formatter.format(value)\n    if (locale.includes('ru')) {\n      result = result.replace(',', '.')\n    }\n\n    return result\n  }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAqB,gBAAA,CAAiB;AAAA,EAFtC;AAEsC,IAAA,MAAA,CAAA,IAAA,EAAA,kBAAA,CAAA;AAAA;AAAA,EACpC,OAAe,sBAAA,GAAkC,KAAA;AAAA,EACjD,OAAe,QAAA,GAAoC,IAAA;AAAA,EAC3C,UAAA,GAA4B,IAAA;AAAA,EAC5B,WAAA,GAAc;AACpB,IAAA,IAAI,CAAC,iBAAiB,sBAAA,EAAwB;AAC5C,MAAA,MAAM,IAAI,UAAU,sCAAsC,CAAA;AAAA,IAC5D;AACA,IAAA,gBAAA,CAAiB,sBAAA,GAAyB,KAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,WAAA,GAAgC;AACrC,IAAA,IAAI,CAAC,iBAAiB,QAAA,EAAU;AAC9B,MAAA,gBAAA,CAAiB,sBAAA,GAAyB,IAAA;AAC1C,MAAA,gBAAA,CAAiB,QAAA,GAAW,IAAI,gBAAA,EAAiB;AAAA,IACnD;AACA,IAAA,OAAO,gBAAA,CAAiB,QAAA;AAAA,EAC1B;AAAA,EAEA,aAAa,MAAA,EAAgB;AAC3B,IAAA,IAAA,CAAK,UAAA,GAAa,MAAA;AAAA,EACpB;AAAA,EAEA,MAAA,CAAO,OAAe,MAAA,EAAyB;AAC7C,IAAA,IAAI,SAAA;AACJ,IAAA,IAAI,OAAO,MAAA,KAAW,WAAA,IAAe,CAAC,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA,EAAG;AACjE,MAAA,MAAA,GAAS,IAAA,CAAK,cAAA,CAAe,IAAA,CAAK,UAAU,CAAA,GACxC,IAAA,CAAK,UAAA,IAAc,IAAA,GAEjB,OAAO,SAAA,KAAc,WAAA,GACjB,IAAA,GACA,WAAW,QAAA,IAAY,IAAA;AAAA,IAEnC;AAEA,IAAA,IAAI,MAAA,CAAO,SAAA,CAAU,KAAK,CAAA,EAAG;AAC3B,MAAA,SAAA,GAAY,IAAI,IAAA,CAAK,YAAA,CAAa,MAAA,EAAQ;AAAA,QACxC,qBAAA,EAAuB,CAAA;AAAA,QACvB,qBAAA,EAAuB;AAAA,OACxB,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAA,SAAA,GAAY,IAAI,IAAA,CAAK,YAAA,CAAa,MAAA,EAAQ;AAAA,QACxC,qBAAA,EAAuB,CAAA;AAAA,QACvB,qBAAA,EAAuB;AAAA,OACxB,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,MAAA,GAAS,SAAA,CAAU,MAAA,CAAO,KAAK,CAAA;AACnC,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,IAAI,CAAA,EAAG;AACzB,MAAA,MAAA,GAAS,MAAA,CAAO,OAAA,CAAQ,GAAA,EAAK,GAAG,CAAA;AAAA,IAClC;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AACF;;;;"}