@akhatmirzo/ui

Hujjat inputlari

O'zbek hujjat raqamlari uchun tayyor maydonlar: JShShIR, pasport, STIR, avtomobil raqami va hisob raqami.

Qiymat: ""

Qiymat: ""

Qiymat: ""

Qiymat: ""

Qiymat: ""

Import

import {
  BankAccountInput,
  CarPlateInput,
  InnInput,
  PassportInput,
  PinflInput,
} from '@akhatmirzo/ui';

Hammasi MaskedInput bilan bir xil qoidada ishlaydi: ko'rinish — formatlangan, qiymat — toza (bo'sh joysiz). Tekshiruv @akhatmirzo/core dagi isValidX funksiyalari bilan — Identifikatorlar sahifasiga qarang.

KomponentKo'rinishQiymat (value)
PinflInput31503 90123 4567"31503901234567"
PassportInputAA 1234567"AA1234567"
InnInput123 456 789"123456789"
CarPlateInput01 | A 123 BC"01A123BC"
BankAccountInput2020 8000 9000 1234 5001"20208000900012345001"

Qachon ishlatish

  • Davlat xizmatlari, bank, sug'urta, lizing formalari — foydalanuvchi bo'sh joylarni o'zi qo'ymaydi, qiymat esa serverga tayyor holda keladi.
  • Har doim label bering — Field ichida. "JShShIR" yonida qayerdan topish mumkinligini description da yozing ("pasportdagi 14 raqamli shaxsiy raqam").
  • Xato sababini matn bilan ko'rsating — komponent faqat invalid holatni qo'yadi, tushuntirishni Field ning error prop'iga yozing.
  • Hamma narsa Input dan meros: size, clearable, disabled, readOnly, name.

Tekshiruv

validate (standart true) — to'liq kiritilgan qiymat tekshiruvdan o'tmasa, maydon avtomatik invalid bo'ladi. Yozish paytida qizarmaydi. Istisnolar: InnInput 0 bilan boshlansa va CarPlateInput da hudud kodi ro'yxatda bo'lmasa — xato darhol ko'rinadi.

0 bilan boshlanmaydi — darhol xato

validate={false} — tekshiruvsiz

PinflInput

JShShIR — 14 raqam, 5-5-4 guruhlar. 14-raqam kiritilganda onDetails chaqiriladi: { valid, gender, birthDate, complete } — jins va tug'ilgan sana raqamning o'zidan olinadi. Nazorat raqami standartda tekshirilmaydi; checksum bilan yoqiladi.

14 raqam — pasportdagi shaxsiy raqam

PassportInput

Pasport yoki ID karta: 2 lotin harf + 7 raqam. Kichik harf avtomatik katta bo'ladi, kirill harflar va ortiqcha belgilar qabul qilinmaydi. Mobilda klaviatura katta harf bilan ochiladi (autoCapitalize="characters").

InnInput va BankAccountInput

STIR — 9 raqam (000 000 000), hisob raqami — 20 raqam, 4 tadan guruh. Ikkalasida ham mobilda raqamli klaviatura ochiladi.

CarPlateInput

Jismoniy (01 A 123 BC) yoki yuridik shaxs (01 123 ABC) formati 3-belgidan avtomatik aniqlanadi: harf yozilsa — jismoniy, raqam — yuridik. Chapda hudud kodi ajratuvchi chiziq bilan, o'ngda bayroq belgisi va "UZ" — haqiqiy raqam ko'rinishiga o'xshash.

01 A 123 BC

01 123 ABC

onDetails har o'zgarishda chaqiriladi — hudud birinchi ikki raqamdan, tur 3-belgidan keyin ma'lum bo'ladi:

<CarPlateInput
  onDetails={({ region, type, valid }) => {
    // region — UZ_REGIONS dagi obyekt yoki null; type — 'personal' | 'legal' | null
  }}
/>

Tafsilotlarni komponentdan tashqarida ham olasiz: getCarPlateDetails('01A123BC'), getPinflDetails('31503901234567').

Props

Barcha komponentlar Input props'larini va ref ni qabul qiladi. name berilsa — formaga toza qiymatli yashirin <input> qo'shiladi.

Umumiy

PropTipStandartTavsif
valuestring—Toza qiymat — bo'sh joysiz
defaultValuestring—
onValueChange(value: string, details) => void—details: { complete, valid } (+ komponentga xos maydonlar)
validatebooleantrueTo'liq qiymat tekshiruvdan o'tmasa avtomatik invalid

PinflInput

PropTipStandartTavsif
onDetails(details: PinflInputDetails) => void—14 raqam kiritilganda: { valid, gender, birthDate, complete }
checksumbooleanfalseNazorat raqamini ham tekshirish
placeholderstring'00000 00000 0000'

CarPlateInput

prefix va leftIcon qabul qilinmaydi — chap tomon hudud kodi uchun band.

PropTipStandartTavsif
onDetails(details: CarPlateInputDetails) => void—Har o'zgarishda: { region, type, complete, valid }
rightIconReactNode—Standart — bayroq belgisi va "UZ"
placeholderstring'01 A 123 BC'

Boshqa placeholder'lar

Komponentplaceholder
PassportInput'AA 1234567'
InnInput'000 000 000'
BankAccountInput'0000 0000 0000 0000 0000'

Data atributlari

AtributKomponentQiymat
data-plate-typeCarPlateInputpersonal · legal
data-regionCarPlateInputhudud id si (tashkent-city)

Accessibility

  • Native <input type="text"> — ekran o'quvchi formatlangan matnni o'qiydi.
  • Mobil klaviatura: PinflInput, InnInput, BankAccountInput — inputMode="numeric"; PassportInput va CarPlateInput — autoCapitalize="characters".
  • Xato holati aria-invalid sifatida beriladi. Sababini Field ning error prop'ida matn bilan yozing — rang yagona signal bo'lmasin.
  • Dekorativ qismlar — avtomobil raqamidagi ajratuvchi chiziq va bayroq belgisi aria-hidden; ekran o'quvchi faqat raqamni o'qiydi.

Sahifada