{"version":3,"file":"money_mask_controller-Ct8EBwyt.js","sources":["../../app/assets/javascript/controllers/input_masks/money_mask_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n this.element.addEventListener('input', this.mask)\n this.element.addEventListener('blur', this.maskWithDecimal)\n this.maskWithDecimal()\n }\n\n disconnect(){\n this.element.removeEventListener('input', this.mask)\n this.element.removeEventListener('blur', this.maskWithDecimal)\n }\n\n maskWithDecimal = (event) => {\n this.mask(event, true)\n }\n\n mask = (event, padZeros = false) => {\n const input = event ? event.target : this.element\n let value = input.value.replace(/[^\\d.]/g, '')\n\n if (value === \"\") {\n input.value = \"\"\n return\n }\n\n const numberOfDecimals = (value.match(/\\./g) || []).length\n\n if (numberOfDecimals > 1) {\n input.value = \"$\" + value.slice(0, -1)\n return\n }\n\n input.value = this.formatNumber(value, padZeros)\n }\n\n formatNumber(value, padZeros) {\n let [integerPart, decimalPart] = value.split('.')\n\n integerPart = integerPart ? parseInt(integerPart, 10).toString() : '0'\n integerPart = Number(integerPart).toLocaleString(\"en-US\")\n\n if (decimalPart !== undefined) {\n if (decimalPart.length > 2) {\n decimalPart = decimalPart.slice(0, 2)\n } else if (padZeros) {\n decimalPart = decimalPart.padEnd(2, '0');\n }\n return `$${integerPart}.${decimalPart}`\n } else {\n return `$${integerPart}`\n }\n }\n}\n"],"names":["money_mask_controller","Controller","__publicField","event","padZeros","input","value","integerPart","decimalPart"],"mappings":"kSAEe,MAAKA,UAASC,CAAW,CAAzB,kCAYbC,EAAA,uBAAmBC,GAAU,CAC3B,KAAK,KAAKA,EAAO,EAAI,CACzB,GAEED,EAAA,YAAO,CAACC,EAAOC,EAAW,KAAU,CAClC,MAAMC,EAAQF,EAAQA,EAAM,OAAS,KAAK,QAC1C,IAAIG,EAAQD,EAAM,MAAM,QAAQ,UAAW,EAAE,EAE7C,GAAIC,IAAU,GAAI,CAChBD,EAAM,MAAQ,GACd,MACN,CAII,IAF0BC,EAAM,MAAM,KAAK,GAAK,CAAA,GAAI,OAE7B,EAAG,CACxBD,EAAM,MAAQ,IAAMC,EAAM,MAAM,EAAG,EAAE,EACrC,MACN,CAEID,EAAM,MAAQ,KAAK,aAAaC,EAAOF,CAAQ,CACnD,GAhCE,SAAU,CACR,KAAK,QAAQ,iBAAiB,QAAS,KAAK,IAAI,EAChD,KAAK,QAAQ,iBAAiB,OAAQ,KAAK,eAAe,EAC1D,KAAK,gBAAe,CACxB,CAEE,YAAY,CACV,KAAK,QAAQ,oBAAoB,QAAS,KAAK,IAAI,EACnD,KAAK,QAAQ,oBAAoB,OAAQ,KAAK,eAAe,CACjE,CAyBE,aAAaE,EAAOF,EAAU,CAC5B,GAAI,CAACG,EAAaC,CAAW,EAAIF,EAAM,MAAM,GAAG,EAKhD,OAHAC,EAAcA,EAAc,SAASA,EAAa,EAAE,EAAE,WAAa,IACnEA,EAAc,OAAOA,CAAW,EAAE,eAAe,OAAO,EAEpDC,IAAgB,QACdA,EAAY,OAAS,EACvBA,EAAcA,EAAY,MAAM,EAAG,CAAC,EAC3BJ,IACTI,EAAcA,EAAY,OAAO,EAAG,GAAG,GAElC,IAAI,OAAAD,EAAW,KAAI,OAAAC,IAEnB,IAAI,OAAAD,EAEjB,CACA"}