persian-number-input 3.0.6 → 3.0.7

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.
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
2
  interface PersianNumberInputCustomProps {
3
- value: string;
3
+ initialValue?: string;
4
4
  separatorCount?: number;
5
5
  separatorChar?: string;
6
6
  lang?: 'fa' | 'in' | 'en';
7
- onChange: (value: string) => void;
7
+ onChangeValue?: (englishNumber: string) => void;
8
8
  }
9
9
  type AllowedInputProps = Pick<React.InputHTMLAttributes<HTMLInputElement>, 'className' | 'style' | 'placeholder' | 'disabled' | 'readOnly' | 'id' | 'name' | 'autoComplete' | 'autoFocus' | 'maxLength' | 'minLength' | 'required' | 'title' | 'dir' | 'onClick' | 'onKeyDown' | 'onKeyUp' | 'onKeyPress' | 'onFocus' | 'onBlur' | 'onMouseDown' | 'onMouseUp' | 'onMouseEnter' | 'onMouseLeave' | 'onTouchStart' | 'onTouchEnd' | 'onPaste'>;
10
10
  export type PersianNumberInputProps = PersianNumberInputCustomProps & AllowedInputProps;
11
- declare const PersianNumberInput: ({ value, separatorCount, separatorChar, lang, onChange, style, ...rest }: PersianNumberInputProps) => React.JSX.Element;
11
+ declare const PersianNumberInput: React.FC<PersianNumberInputProps>;
12
12
  export default PersianNumberInput;
@@ -9,27 +9,24 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React from 'react';
12
+ import React, { useCallback } from 'react';
13
13
  import { toLocalizedDigits, groupDigits, convertToEnglishDigits } from '../utils/digitUtils';
14
14
  // استایل پایه برای input
15
15
  const baseInputStyle = {
16
16
  border: '1px solid #ccc',
17
17
  borderRadius: '4px',
18
- padding: '8px 12px',
19
- fontSize: '14px',
20
- outline: 'none',
21
18
  };
22
19
  const PersianNumberInput = (_a) => {
23
- var { value, separatorCount = 0, separatorChar = ',', lang = 'fa', onChange, style } = _a, rest = __rest(_a, ["value", "separatorCount", "separatorChar", "lang", "onChange", "style"]);
24
- // تبدیل مقدار به فرمت نمایشی
25
- const numericValue = convertToEnglishDigits(value).replace(/\D/g, '');
26
- const formattedValue = groupDigits(numericValue, separatorCount, separatorChar);
20
+ var { initialValue = '', separatorCount = 0, separatorChar = ',', lang = 'fa', onChangeValue, style } = _a, rest = __rest(_a, ["initialValue", "separatorCount", "separatorChar", "lang", "onChangeValue", "style"]);
21
+ const [value, setValue] = React.useState(() => convertToEnglishDigits(initialValue).replace(/\D/g, ''));
22
+ const handleChange = useCallback((e) => {
23
+ const input = convertToEnglishDigits(e.target.value).replace(/\D/g, '');
24
+ setValue(input);
25
+ if (onChangeValue)
26
+ onChangeValue(input);
27
+ }, [onChangeValue]);
28
+ const formattedValue = groupDigits(value, separatorCount, separatorChar);
27
29
  const displayValue = lang === 'en' ? formattedValue : toLocalizedDigits(formattedValue, lang);
28
- // هندل تغییرات
29
- const handleChange = (e) => {
30
- const newValue = convertToEnglishDigits(e.target.value).replace(/\D/g, '');
31
- onChange(newValue);
32
- };
33
30
  const mergedStyle = Object.assign(Object.assign({}, baseInputStyle), style);
34
31
  return React.createElement("input", Object.assign({ value: displayValue, onChange: handleChange, style: mergedStyle }, rest));
35
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PersianNumberInput.js","sourceRoot":"","sources":["../../src/components/PersianNumberInput.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AA4C7F,yBAAyB;AACzB,MAAM,cAAc,GAAwB;IACxC,MAAM,EAAE,gBAAgB;IACxB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,MAAM;CAClB,CAAC;AAKF,MAAM,kBAAkB,GAAG,CAAC,EAQF,EAAE,EAAE;QARF,EACxB,KAAK,EACL,cAAc,GAAG,CAAC,EAClB,aAAa,GAAG,GAAG,EACnB,IAAI,GAAG,IAAI,EACX,QAAQ,EACR,KAAK,OAEiB,EADnB,IAAI,cAPiB,yEAQ3B,CADU;IAEP,6BAA6B;IAC7B,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,WAAW,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAE9F,eAAe;IACf,MAAM,YAAY,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC5D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3E,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,WAAW,mCAAQ,cAAc,GAAK,KAAK,CAAE,CAAC;IAEpD,OAAO,6CACH,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,WAAW,IACd,IAAI,EACV,CAAC;AACP,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"PersianNumberInput.js","sourceRoot":"","sources":["../../src/components/PersianNumberInput.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AA4C7F,yBAAyB;AACzB,MAAM,cAAc,GAAwB;IACxC,MAAM,EAAE,gBAAgB;IACxB,YAAY,EAAE,KAAK;CACtB,CAAC;AAKF,MAAM,kBAAkB,GAAsC,CAAC,EAQ9D,EAAE,EAAE;QAR0D,EAC3D,YAAY,GAAG,EAAE,EACjB,cAAc,GAAG,CAAC,EAClB,aAAa,GAAG,GAAG,EACnB,IAAI,GAAG,IAAI,EACX,aAAa,EACb,KAAK,OAER,EADM,IAAI,cAPoD,qFAQ9D,CADU;IAEP,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAExG,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAsC,EAAE,EAAE;QACxE,MAAM,KAAK,GAAG,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChB,IAAI,aAAa;YAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAE9F,MAAM,WAAW,mCAAQ,cAAc,GAAK,KAAK,CAAE,CAAC;IAEpD,OAAO,6CACH,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,WAAW,IACd,IAAI,EACV,CAAC;AACP,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persian-number-input",
3
- "version": "3.0.6",
3
+ "version": "3.0.7",
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",