@tagplus/components 4.7.6 → 4.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "email": "bruno@tagplus.com.br"
9
9
  }
10
10
  ],
11
- "version": "4.7.6",
11
+ "version": "4.7.8",
12
12
  "main": "./dist/tp.common.js",
13
13
  "directories": {
14
14
  "lib": "src/lib"
@@ -81,9 +81,9 @@
81
81
  "husky": "^8.0.1",
82
82
  "jest": "^27.1.0",
83
83
  "lint-staged": "^13.2.2",
84
- "sass": "^1.63.4",
85
84
  "nodemon": "^2.0.19",
86
85
  "prettier": "^2.7.1",
86
+ "sass": "^1.63.4",
87
87
  "sass-loader": "^13.0.2",
88
88
  "vue-template-compiler": "^2.7.10",
89
89
  "webpack": "^5.74.0"
@@ -38,7 +38,7 @@ function unformat (input, precision = defaults.precision) {
38
38
  * @returns
39
39
  */
40
40
  function formatMoney (input, toString = false, locale = defaults, customPrecision = false) {
41
- let inputString = removeSecondSeparator(`${input}`)
41
+ let inputString = removeSecondSeparator(`${input}`, locale)
42
42
 
43
43
  // Impede de digitar . ou , porque o formatador já adiciona
44
44
  if ((inputString.slice(-1).match(/[.,]/))) {
@@ -91,9 +91,29 @@ function completeZeros (customPrecision, input, locale) {
91
91
  }
92
92
 
93
93
  // Impede que seja adicionado um segundo separadador apos o ponto ou a virgula
94
- function removeSecondSeparator (input) {
95
- // Identifica a segunda vírgula ou ponto e remove
96
- return input.replace(/([.,])([^.,]*?)([.,])/, '$1$2')
94
+ function removeSecondSeparator (input, locale) {
95
+ const decimal = locale?.number?.decimal
96
+
97
+ if (!decimal || !input) {
98
+ return input
99
+ }
100
+
101
+ // Separa a string pelo decimal
102
+ const newInputParts = input.split(decimal)
103
+
104
+ if (newInputParts.length > 0) {
105
+ let newInput = ''
106
+
107
+ // Percorre as partes dividas da string limpando tudo que nao for numerico depois do separador decimal
108
+ for (let i = 0; i < newInputParts.length; i++) {
109
+ newInputParts[i] = i >= 1 ? newInputParts[i].replace(/[^0-9]/g, '') : newInputParts[i] + decimal
110
+ newInput += newInputParts[i]
111
+ }
112
+
113
+ return newInput
114
+ }
115
+
116
+ return input
97
117
  }
98
118
 
99
119
  function onlyNumbers (input) {