persian-number-input 4.0.1 → 4.0.3

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.
@@ -7,13 +7,9 @@ interface UsePersianNumberInputProps extends TransformNumberOptions {
7
7
  max?: number;
8
8
  }
9
9
  interface UsePersianNumberInputReturn {
10
- /** مقدار فرمت شده برای نمایش در input. */
11
10
  value: string;
12
- /** تابع onChange برای اتصال به input. */
13
11
  onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
14
- /** تابع برای تنظیم مقدار به صورت برنامه نویسی (مقدار عددی تمیز). */
15
12
  setValue: (newValue: number | string | undefined) => void;
16
- /** مقدار عددی خام (رشته انگلیسی تمیز شده) */
17
13
  rawValue: string | undefined;
18
14
  }
19
15
  export declare const usePersianNumberInput: ({ initialValue, separatorCount, separatorChar, locale, maxDecimals, showZero, onValueChange, min, max, }?: UsePersianNumberInputProps) => UsePersianNumberInputReturn;
@@ -1 +1 @@
1
- {"version":3,"file":"usePersianNumberInput.d.ts","sourceRoot":"","sources":["../../src/hooks/usePersianNumberInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAmB,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGnF,UAAU,0BAA2B,SAAQ,sBAAsB;IACjE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,2BAA2B;IACnC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC/D,oEAAoE;IACpE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC1D,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAWD,eAAO,MAAM,qBAAqB,GAAI,2GAUnC,0BAA+B,KAAG,2BAqIpC,CAAC"}
1
+ {"version":3,"file":"usePersianNumberInput.d.ts","sourceRoot":"","sources":["../../src/hooks/usePersianNumberInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAmB,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGnF,UAAU,0BAA2B,SAAQ,sBAAsB;IACjE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,2BAA2B;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC/D,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAWD,eAAO,MAAM,qBAAqB,GAAI,2GAUnC,0BAA+B,KAAG,2BA0HpC,CAAC"}
@@ -11,49 +11,41 @@ const digitUtils_1 = require("../utils/digitUtils");
11
11
  // تابع کمکی برای گرد کردن مقدار به تعداد اعشار مشخص
12
12
  const roundToDecimals = (value, maxDecimals) => {
13
13
  if (!value || !value.includes('.'))
14
- return value; // اگر اعشاری نیست یا خالی است، همان را برگردان
14
+ return value;
15
15
  const [integerPart, fractionalPart] = value.split('.');
16
16
  if (maxDecimals === 0)
17
- return integerPart; // اگر اعشار مجاز نیست، فقط بخش صحیح
17
+ return integerPart;
18
18
  const trimmedFractional = fractionalPart.slice(0, maxDecimals);
19
19
  return trimmedFractional ? `${integerPart}.${trimmedFractional}` : integerPart;
20
20
  };
21
21
  const usePersianNumberInput = ({ initialValue, separatorCount = 3, separatorChar = ',', locale = 'fa', maxDecimals = 0, showZero = false, onValueChange, min, max, } = {}) => {
22
- // State داخلی برای نگه داشتن مقدار عددی *تمیز شده* (ارقام انگلیسی، بدون جداکننده)
22
+ // State برای نگه داشتن مقدار عددی تمیز شده (ارقام انگلیسی)
23
23
  const [rawValue, setRawValue] = (0, react_1.useState)(() => {
24
24
  if (initialValue === null || initialValue === undefined)
25
25
  return undefined;
26
- // مقدار اولیه را پاکسازی کن
27
26
  let sanitized = (0, digitUtils_1.sanitizeNumericInput)(String(initialValue));
28
- // اگر مقدار اولیه 0 بود و showZero false بود، مقدار خام را undefined بگذار
29
- if (parseFloat(sanitized) === 0 &&
30
- !showZero &&
31
- initialValue !== 0 &&
32
- initialValue !== '0') {
27
+ if (parseFloat(sanitized) === 0 && !showZero && initialValue !== 0 && initialValue !== '0') {
33
28
  return undefined;
34
29
  }
35
- // گرد کردن به تعداد اعشار مجاز
36
30
  sanitized = roundToDecimals(sanitized, maxDecimals);
37
- // بررسی min و max برای مقدار اولیه
38
31
  if (sanitized) {
39
32
  try {
40
33
  const numericValue = new decimal_js_1.default(sanitized);
41
34
  if ((min !== undefined && numericValue.lt(min)) ||
42
35
  (max !== undefined && numericValue.gt(max))) {
43
- return undefined; // اگر مقدار اولیه خارج از محدوده است، undefined برگردان
36
+ return undefined;
44
37
  }
45
38
  }
46
39
  catch (error) {
47
40
  console.warn(`Invalid initial value: ${sanitized}`, error);
48
- return undefined; // در صورت خطا، مقدار نامعتبر را رد کن
41
+ return undefined;
49
42
  }
50
43
  }
51
- return sanitized || undefined; // اگر پاکسازی نتیجه خالی داد، undefined بگذار
44
+ return sanitized || undefined;
52
45
  });
53
- // استفاده از useMemo برای بهینه سازی
46
+ // مقدار نمایشی فرمت‌شده با استفاده از transformNumber
54
47
  const displayValue = (0, react_1.useMemo)(() => {
55
48
  const options = { separatorCount, separatorChar, locale, maxDecimals, showZero };
56
- // اگر rawValue تعریف نشده باشد، "" برگردان
57
49
  if (rawValue === undefined) {
58
50
  return showZero ? (0, transformNumber_1.transformNumber)('0', options) : '';
59
51
  }
@@ -61,27 +53,24 @@ const usePersianNumberInput = ({ initialValue, separatorCount = 3, separatorChar
61
53
  }, [rawValue, separatorCount, separatorChar, locale, maxDecimals, showZero]);
62
54
  const handleChange = (0, react_1.useCallback)((event) => {
63
55
  const inputValue = event.target.value;
64
- let sanitizedValue = (0, digitUtils_1.sanitizeNumericInput)(inputValue); // پاکسازی ورودی کاربر
65
- // اگر مقدار پاکسازی شده با مقدار خام فعلی متفاوت بود، آپدیت کن
56
+ let sanitizedValue = (0, digitUtils_1.sanitizeNumericInput)(inputValue);
66
57
  if (sanitizedValue !== rawValue) {
67
- // گرد کردن به تعداد اعشار مجاز
68
58
  sanitizedValue = roundToDecimals(sanitizedValue, maxDecimals);
69
- // بررسی min و max
70
59
  let valueToSet = sanitizedValue;
71
60
  if (sanitizedValue) {
72
61
  try {
73
62
  const numericValue = new decimal_js_1.default(sanitizedValue);
74
63
  if ((min !== undefined && numericValue.lt(min)) ||
75
64
  (max !== undefined && numericValue.gt(max))) {
76
- return; // اگر مقدار خارج از محدوده است، تغییر را اعمال نکن
65
+ return; // مقدار خارج از محدوده را نادیده بگیر
77
66
  }
78
67
  }
79
68
  catch (error) {
80
69
  console.warn(`Invalid input value: ${sanitizedValue}`, error);
81
- return; // در صورت خطا، مقدار نامعتبر را رد کن
70
+ return;
82
71
  }
83
72
  }
84
- // اگر مقدار پاکسازی شده 0 بود و showZero=false، مقدار خام را undefined بگذار
73
+ // مدیریت صفر برای showZero
85
74
  valueToSet =
86
75
  parseFloat(sanitizedValue) === 0 &&
87
76
  !showZero &&
@@ -90,7 +79,7 @@ const usePersianNumberInput = ({ initialValue, separatorCount = 3, separatorChar
90
79
  : sanitizedValue;
91
80
  setRawValue(valueToSet);
92
81
  if (onValueChange) {
93
- onValueChange(valueToSet); // اطلاع رسانی مقدار عددی تمیز شده
82
+ onValueChange(valueToSet);
94
83
  }
95
84
  }
96
85
  }, [rawValue, onValueChange, showZero, min, max, maxDecimals]);
@@ -102,20 +91,18 @@ const usePersianNumberInput = ({ initialValue, separatorCount = 3, separatorChar
102
91
  return;
103
92
  }
104
93
  let sanitizedValue = (0, digitUtils_1.sanitizeNumericInput)(String(newValue));
105
- // گرد کردن به تعداد اعشار مجاز
106
94
  sanitizedValue = roundToDecimals(sanitizedValue, maxDecimals);
107
- // بررسی min و max
108
95
  if (sanitizedValue) {
109
96
  try {
110
97
  const numericValue = new decimal_js_1.default(sanitizedValue);
111
98
  if ((min !== undefined && numericValue.lt(min)) ||
112
99
  (max !== undefined && numericValue.gt(max))) {
113
- return; // اگر مقدار خارج از محدوده است، تغییر را اعمال نکن
100
+ return; // مقدار خارج از محدوده را نادیده بگیر
114
101
  }
115
102
  }
116
103
  catch (error) {
117
104
  console.warn(`Invalid set value: ${sanitizedValue}`, error);
118
- return; // در صورت خطا، مقدار نامعتبر را رد کن
105
+ return;
119
106
  }
120
107
  }
121
108
  const valueToSet = parseFloat(sanitizedValue) === 0 &&
@@ -129,10 +116,10 @@ const usePersianNumberInput = ({ initialValue, separatorCount = 3, separatorChar
129
116
  }
130
117
  }, [onValueChange, showZero, min, max, maxDecimals]);
131
118
  return {
132
- value: displayValue, // مقدار قالب بندی شده برای input
133
- onChange: handleChange, // تابع برای اتصال به input.onChange
134
- setValue: handleSetValue, // تابع برای تنظیم مقدار برنامه ای
135
- rawValue: rawValue, // مقدار عددی خام (رشته انگلیسی)
119
+ value: displayValue,
120
+ onChange: handleChange,
121
+ setValue: handleSetValue,
122
+ rawValue,
136
123
  };
137
124
  };
138
125
  exports.usePersianNumberInput = usePersianNumberInput;
@@ -1 +1 @@
1
- {"version":3,"file":"usePersianNumberInput.js","sourceRoot":"","sources":["../../src/hooks/usePersianNumberInput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePersianNumberInput.js","sourceRoot":"","sources":["../../src/hooks/usePersianNumberInput.ts"],"names":[],"mappings":"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"}
@@ -33,16 +33,16 @@ export declare const localizeDecimalSeparator: (numStr: string, locale: keyof ty
33
33
  /**
34
34
  * گروه‌بندی ارقام قسمت صحیح یک عدد با استفاده از جداکننده.
35
35
  * @param numStr قسمت صحیح عدد (فقط ارقام انگلیسی)
36
- * @param separatorCount تعداد ارقام در هر گروه (مثلا 3 برای هزارگان)
37
- * @param separatorChar کاراکتر جداکننده (پیش فرض ',')
36
+ * @param separatorCount تعداد ارقام در هر گروه
37
+ * @param separatorChar کاراکتر جداکننده
38
38
  * @returns رشته گروه‌بندی شده
39
39
  */
40
40
  export declare const groupDigits: (numStr: string, separatorCount: number, separatorChar?: string) => string;
41
41
  /**
42
- * پاکسازی ورودی کاربر برای نگه داشتن فقط کاراکترهای عددی معتبر (ارقام، یک نقطه، یک علامت منفی در ابتدا).
43
- * ابتدا ارقام محلی را به انگلیسی تبدیل می کند.
44
- * @param value مقدار ورودی کاربر
45
- * @returns رشته عددی پاکسازی شده با ارقام انگلیسی
42
+ * پاک‌سازی ورودی عددی برای اجازه دادن به کاراکترهای مجاز (اعداد، نقطه و منفی).
43
+ * این نسخه جدید: ارقام فارسی و جداکننده اعشار فارسی را هم پشتیبانی می‌کند.
44
+ * @param value - رشته ورودی
45
+ * @returns رشته پاک‌شده
46
46
  */
47
47
  export declare const sanitizeNumericInput: (value: string) => string;
48
48
  //# sourceMappingURL=digitUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"digitUtils.d.ts","sourceRoot":"","sources":["../../src/utils/digitUtils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;CAI7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAGxD,CAAC;AAaF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,KAAG,MAGpD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,OAAO,SAAS,KAAG,MAIlF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,OAAO,mBAAmB,KAAG,MAInG,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,EACd,gBAAgB,MAAM,EACtB,sBAAmB,KAClB,MAOF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,MAyBpD,CAAC"}
1
+ {"version":3,"file":"digitUtils.d.ts","sourceRoot":"","sources":["../../src/utils/digitUtils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;CAI7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAGxD,CAAC;AAgBF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,KAAG,MAGpD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,OAAO,SAAS,KAAG,MAIlF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,OAAO,mBAAmB,KAAG,MAInG,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,EACd,gBAAgB,MAAM,EACtB,sBAAmB,KAClB,MAMF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,MAgCpD,CAAC"}
@@ -7,7 +7,7 @@ exports.sanitizeNumericInput = exports.groupDigits = exports.localizeDecimalSepa
7
7
  */
8
8
  exports.digitsMap = {
9
9
  fa: ["۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"],
10
- // می توانید زبان های دیگر را اضافه کنید
10
+ // می‌توانید زبان‌های دیگر را اضافه کنید
11
11
  // in: ["०", "१", "२", "३", "४", "५", "६", "७", "८", "९"],
12
12
  };
13
13
  /**
@@ -15,17 +15,19 @@ exports.digitsMap = {
15
15
  */
16
16
  exports.decimalSeparatorMap = {
17
17
  fa: "٫",
18
- // en: ".", (پیش فرض نقطه است)
18
+ // en: ".",
19
19
  };
20
+ // همه ارقام محلی را به یک رشته واحد می‌چسبانیم تا regex بسازیم
20
21
  const allLocalizedDigits = Object.values(exports.digitsMap).flat().join("");
22
+ // مپ برای تبدیل رقم محلی به رقم انگلیسی
21
23
  const conversionMap = {};
22
24
  for (const locale in exports.digitsMap) {
23
25
  exports.digitsMap[locale].forEach((digit, index) => {
24
26
  conversionMap[digit] = index.toString();
25
27
  });
26
28
  }
27
- // Regex بهینه شده برای پیدا کردن تمام ارقام محلی
28
- const localizedDigitsRegex = new RegExp(`[${allLocalizedDigits}]`, "g");
29
+ // Regex برای پیدا کردن تمام ارقام محلی
30
+ const localizedDigitsRegex = new RegExp(`[${allLocalizedDigits}]`, 'g');
29
31
  /**
30
32
  * تبدیل رشته حاوی ارقام محلی (مانند فارسی) به رشته با ارقام انگلیسی (0-9).
31
33
  * @param str رشته ورودی
@@ -47,7 +49,7 @@ const toLocalizedDigits = (numStr, locale) => {
47
49
  if (!numStr || !exports.digitsMap[locale])
48
50
  return numStr;
49
51
  const localeDigits = exports.digitsMap[locale];
50
- return numStr.replace(/\d/g, (digit) => localeDigits[parseInt(digit)]);
52
+ return numStr.replace(/\d/g, (digit) => localeDigits[parseInt(digit, 10)]);
51
53
  };
52
54
  exports.toLocalizedDigits = toLocalizedDigits;
53
55
  /**
@@ -59,50 +61,55 @@ exports.toLocalizedDigits = toLocalizedDigits;
59
61
  const localizeDecimalSeparator = (numStr, locale) => {
60
62
  const separator = exports.decimalSeparatorMap[locale];
61
63
  if (!separator)
62
- return numStr; // اگر جداکننده محلی تعریف نشده، همان نقطه را برگردان
63
- return numStr.replace(".", separator);
64
+ return numStr;
65
+ return numStr.replace('.', separator);
64
66
  };
65
67
  exports.localizeDecimalSeparator = localizeDecimalSeparator;
66
68
  /**
67
69
  * گروه‌بندی ارقام قسمت صحیح یک عدد با استفاده از جداکننده.
68
70
  * @param numStr قسمت صحیح عدد (فقط ارقام انگلیسی)
69
- * @param separatorCount تعداد ارقام در هر گروه (مثلا 3 برای هزارگان)
70
- * @param separatorChar کاراکتر جداکننده (پیش فرض ',')
71
+ * @param separatorCount تعداد ارقام در هر گروه
72
+ * @param separatorChar کاراکتر جداکننده
71
73
  * @returns رشته گروه‌بندی شده
72
74
  */
73
- const groupDigits = (numStr, separatorCount, separatorChar = ",") => {
75
+ const groupDigits = (numStr, separatorCount, separatorChar = ',') => {
74
76
  if (!numStr || separatorCount <= 0) {
75
77
  return numStr;
76
78
  }
77
- // Regex برای پیدا کردن محل درج جداکننده ها (از راست به چپ)
78
- const regex = new RegExp(`\\B(?=(\\d{${separatorCount}})+(?!\\d))`, "g");
79
+ const regex = new RegExp(`\\B(?=(\\d{${separatorCount}})+(?!\\d))`, 'g');
79
80
  return numStr.replace(regex, separatorChar);
80
81
  };
81
82
  exports.groupDigits = groupDigits;
82
83
  /**
83
- * پاکسازی ورودی کاربر برای نگه داشتن فقط کاراکترهای عددی معتبر (ارقام، یک نقطه، یک علامت منفی در ابتدا).
84
- * ابتدا ارقام محلی را به انگلیسی تبدیل می کند.
85
- * @param value مقدار ورودی کاربر
86
- * @returns رشته عددی پاکسازی شده با ارقام انگلیسی
84
+ * پاک‌سازی ورودی عددی برای اجازه دادن به کاراکترهای مجاز (اعداد، نقطه و منفی).
85
+ * این نسخه جدید: ارقام فارسی و جداکننده اعشار فارسی را هم پشتیبانی می‌کند.
86
+ * @param value - رشته ورودی
87
+ * @returns رشته پاک‌شده
87
88
  */
88
89
  const sanitizeNumericInput = (value) => {
89
- if (value === null || value === undefined)
90
- return "";
91
- // 1. تبدیل همه ارقام به انگلیسی
92
- let cleaned = (0, exports.convertToEnglishDigits)(String(value));
93
- // 2. حذف همه چیز به جز ارقام، نقطه و علامت منفی
94
- cleaned = cleaned.replace(/[^-0-9.]/g, "");
95
- // 3. مدیریت علامت منفی: فقط یکی در ابتدا مجاز است
96
- const negativeSign = cleaned.startsWith("-") ? "-" : "";
97
- cleaned = cleaned.replace(/-/g, ""); // حذف همه منفی ها
98
- // 4. مدیریت نقطه اعشار: فقط یکی مجاز است
99
- const parts = cleaned.split(".");
100
- let integerPart = parts[0] || ""; // بخش صحیح
101
- let fractionalPart = parts.slice(1).join(""); // فقط اولین بخش اعشاری را نگه دار
102
- // 5. بازسازی رشته تمیز شده
103
- let sanitized = negativeSign + integerPart;
104
- if (parts.length > 1) { // اگر نقطه ای وجود داشت
105
- sanitized += "." + fractionalPart;
90
+ // ۱) تبدیل ارقام فارسی به انگلیسی
91
+ let normalized = (0, exports.convertToEnglishDigits)(value);
92
+ // ۲) تبدیل جداکننده اعشار فارسی (٫) به نقطه
93
+ normalized = normalized.replace(/٫/g, '.');
94
+ // ۳) حذف کاراکترهای غیرمجاز
95
+ let sanitized = normalized.replace(/[^0-9.\-]/g, '');
96
+ // حذف صفرهای ابتدایی مگر در موارد اعشاری
97
+ if (sanitized.startsWith('0') && !sanitized.startsWith('0.') && sanitized.length > 1) {
98
+ sanitized = sanitized.replace(/^0+/, '');
99
+ }
100
+ // نگه‌داشتن فقط یک نقطه اعشار
101
+ const parts = sanitized.split('.');
102
+ if (parts.length > 2) {
103
+ sanitized = `${parts[0]}.${parts[1]}`;
104
+ }
105
+ // حذف منفی‌های اضافه و اطمینان از جای صحیح آن
106
+ sanitized = sanitized.replace(/-+/g, '-');
107
+ if (sanitized.includes('-') && !sanitized.startsWith('-')) {
108
+ sanitized = sanitized.replace(/-/, '');
109
+ }
110
+ // اگر ورودی خالی یا فقط '-' یا '.' است، خالی برگردان
111
+ if (sanitized === '' || sanitized === '-' || sanitized === '.') {
112
+ return '';
106
113
  }
107
114
  return sanitized;
108
115
  };
@@ -1 +1 @@
1
- {"version":3,"file":"digitUtils.js","sourceRoot":"","sources":["../../src/utils/digitUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"digitUtils.js","sourceRoot":"","sources":["../../src/utils/digitUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persian-number-input",
3
- "version": "4.0.1",
3
+ "version": "4.0.3",
4
4
  "description": "React component for Persian, Indic, or English localized number input with customizable digit grouping",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",