1.1.14 • Published 5 months ago
cotable v1.1.14
Cotable
Cotable, React ve TypeScript ile geliştirilmiş, TanStack Table ve Ant Design tabanlı, güçlü ve özelleştirilebilir bir tablo bileşenidir.
Özellikler
- 🔍 Gelişmiş Filtreleme Seçenekleri
- Çoklu Seçim Filtresi (multiSelect)
- Metin Arama Filtresi (searchFilter)
- Sayısal Aralık Filtresi (numberRange)
- Özel Seçim Filtresi (multipleChoiceFilter)
- İç İçe Obje Filtresi (Nested Object Support)
- 🔎 Genel Arama
- Tüm alanlarda anlık arama
- Debounce optimizasyonu
- Türkçe karakter desteği
- Büyük/küçük harf duyarsız
- İç içe objelerde arama
- 📊 Akıllı Sıralama
- 📑 Gelişmiş Sayfalama
- Sayfa Başına Kayıt Sayısı Seçimi
- Toplam Kayıt Gösterimi
- Türkçe Sayfalama Metinleri
- Sayfa Boyutu Değiştirme
- 🎨 Ant Design Tema Desteği
- 🌍 Türkçe Dil Desteği
- Tüm metinler Türkçe
- Türkçe karakter normalizasyonu
- Türkçe tarih formatı
- 💪 TypeScript ile Tam Tip Güvenliği
- 🔄 Otomatik Filtre Tipi Belirleme
- 🧹 Toplu Filtre Temizleme
Kurulum
npm install cotable
# veya
yarn add cotable
Kullanım
import { Cotable } from 'cotable';
// Tablo verisi
const data = [
{
id: 1,
customer: {
title: 'ABC Ltd.',
contact: {
name: 'Ahmet',
phone: '555-0101'
}
},
age: 25,
city: 'İstanbul'
},
// ...
];
// Sütun tanımlamaları
const columns = [
{
// İç içe obje erişimi için nokta notasyonu kullanımı
accessorKey: 'customer.title',
header: 'Müşteri Adı',
meta: {
isSearchFilter: true
}
},
{
// Daha derin iç içe obje erişimi
accessorKey: 'customer.contact.name',
header: 'İletişim Kişisi',
meta: {
isSearchFilter: true
}
},
{
accessorKey: 'age',
header: 'Yaş',
meta: {
isNumberRange: true
}
},
{
accessorKey: 'city',
header: 'Şehir',
enableColumnFilter: true
}
];
// Bileşen kullanımı
function App() {
return (
<Cotable
columns={columns}
data={data}
showFilters={true}
showPagination={true}
filterStyle="popover"
/>
);
}
Filtre Türleri
1. Metin Arama Filtresi (searchFilter)
- Anlık arama yapabilme
- Büyük/küçük harf duyarsız arama
- Otomatik temizleme butonu
- Prefix olarak arama ikonu
- İç içe objelerde arama desteği
2. Sayısal Aralık Filtresi (numberRange)
- Minimum ve maksimum değer girişi
- Tek yönlü filtreleme imkanı (sadece min veya sadece max)
- Sayısal değer kontrolü
- InputNumber bileşeni ile kolay giriş
- Nested sayısal değerlerde filtreleme
3. Çoklu Seçim Filtresi (multipleChoiceFilter)
- Virgülle ayrılmış değerleri otomatik seçeneklere dönüştürme
- Çoklu seçim yapabilme
- Checkbox grubu ile kolay seçim
- Otomatik değer ayrıştırma
- İç içe obje değerlerinde çoklu seçim
4. Standart Çoklu Seçim Filtresi (multiSelect)
- Benzersiz değerlerden otomatik seçenek oluşturma
- Tümünü seç/hiçbirini seçme butonları
- Seçenekler arasında anlık arama
- Kaydırılabilir liste görünümü
- Seçenek bulunamadığında özel mesaj
- Nested obje değerlerinde filtreleme
Props
Prop | Tip | Varsayılan | Açıklama |
---|---|---|---|
columns | ColumnDef<TData, TValue>[] | - | Tablo sütunlarının tanımları |
data | TData[] | - | Tablo verileri |
showFilters | boolean | true | Filtreleme özelliğinin gösterilip gösterilmeyeceği |
showPagination | boolean | true | Sayfalama özelliğinin gösterilip gösterilmeyeceği |
className | string | '' | Ek CSS sınıfları |
filterStyle | 'popover' \| 'inline' | 'inline' | Filtre stili |
showGlobalSearch | boolean | true | Genel arama özelliğinin gösterilip gösterilmeyeceği |
Sütun Meta Özellikleri
Özellik | Tip | Açıklama | Otomatik Filtre |
---|---|---|---|
isNumberRange | boolean | Sayısal aralık filtresi kullanımı | inNumberRange |
isSearchFilter | boolean | Metin arama filtresi kullanımı | searchFilter |
isMultipleChoiceFilter | boolean | Çoklu seçim filtresi kullanımı | multipleChoiceFilter |
- | - | Standart sütun | multiSelect |
Özelleştirme
CSS Sınıfları
.cotable-wrapper
: Ana tablo konteyneri.scrollable-content
: Kaydırılabilir filtre listesi.checkbox-item
: Filtre seçenek öğesi
Stil Özelleştirme
- Özel scrollbar tasarımı
- Hover efektleri
- Responsive tasarım
- Ant Design tema desteği
Nested Obje Erişimi
- Nokta notasyonu ile sınırsız derinlikte obje erişimi
- Otomatik değer çözümleme
- Null-safe erişim
- Undefined kontrolü
Geliştirme
# Bağımlılıkları yükle
npm install
# Geliştirme modunda çalıştır
npm run dev
# Derleme
npm run build
# Lint kontrolü
npm run lint
Lisans
MIT
1.1.14
5 months ago
1.1.13
5 months ago
1.1.12
5 months ago
1.1.11
5 months ago
1.1.10
5 months ago
1.1.9
5 months ago
1.1.8
5 months ago
1.1.7
5 months ago
1.1.6
5 months ago
1.1.5
5 months ago
1.1.4
5 months ago
1.1.3
5 months ago
1.1.2
5 months ago
1.1.1
5 months ago
1.1.0
5 months ago
1.0.25
5 months ago
1.0.24
5 months ago
1.0.23
5 months ago
1.0.22
5 months ago
1.0.20
5 months ago
1.0.18
5 months ago
1.0.17
5 months ago
1.0.16
5 months ago
1.0.11
5 months ago
1.0.10
5 months ago
1.0.9
5 months ago
1.0.8
5 months ago
1.0.7
5 months ago
1.0.6
5 months ago
1.0.5
5 months ago
1.0.4
5 months ago
1.0.3
5 months ago
1.0.2
5 months ago
1.0.1
5 months ago
1.0.0
5 months ago