ইমপোর্ট
import { NuiGrid, type NuiGridColumn, type NuiGridHandle } from '@needless-ui/react/grid';NuiGrid
নেটিভ টেবিলের ওপর তৈরি ডেটা গ্রিড।
| নাম | টাইপ | ডিফল্ট | বিবরণ |
|---|---|---|---|
rowsপ্রপ | readonly T[] | ডেটা। এডিট তার সারিটি বদলে দেয় আর onRowsChange কল করে; এরপর আপনি যে rows দেন, তা এডিটগুলোর জায়গা নেয়। | |
onRowsChangeকলব্যাক | (rows: readonly T[]) => void | প্রয়োগ করা প্রতিটি এডিটের পর সারিগুলো নিয়ে কল হয়। | |
columnsপ্রপ | NuiGridColumn<T>[] | কলামগুলো, NuiGridColumn অবজেক্ট হিসেবে। | |
rowIdপ্রপ | (row: T) => unknown | row.id ?? row | সারির কী, বাছাই ও ট্র্যাকিংয়ের জন্য। |
labelপ্রপ | string | গ্রিডের অ্যাক্সেসিবল নাম। | |
selectionপ্রপ | 'none' | 'single' | 'multiple' | 'none' | সারি বেছে নেওয়া যায় কি না, আর কয়টি। |
selecteddefaultSelectedonSelectedChangeঅবস্থা | unknown[] | [] | বেছে নেওয়া সারিগুলোর কী। |
sortdefaultSortonSortChangeঅবস্থা | NuiGridSort[] | [] | সর্ট, { column, direction } অবজেক্ট হিসেবে; প্রথমটি সবার আগে প্রয়োগ হয়। |
filtersdefaultFiltersonFiltersChangeঅবস্থা | Record<string, NuiGridFilter> | {} | প্রতিটি কলাম id-র জন্য একটি ফিল্টার: একটি অপারেটর ও একটি ভ্যালু। |
searchdefaultSearchonSearchChangeঅবস্থা | string | '' | যে শব্দগুলোর সবই সারিতে থাকতে হবে। |
pageSizedefaultPageSizeonPageSizeChangeঅবস্থা | number | 0 | প্রতি পেজে সারি, বা একটানা স্ক্রল করা তালিকার জন্য 0। |
pagedefaultPageonPageChangeঅবস্থা | number | 0 | দেখানো পেজ, 0 থেকে শুরু। |
pageSizesপ্রপ | number[] | [10, 25, 50, 100] | পেজারের অপশন। |
virtualপ্রপ | boolean | 'auto' | 'auto' | শুধু দৃশ্যমান সারিগুলো রেন্ডার করে: সবসময়, কখনো না, অথবা পেজ ছাড়া 100 সারির পরে auto। |
heightপ্রপ | string | গ্রিডের সীমা ঠিক করা CSS দৈর্ঘ্য; স্ক্রল হয় ভেতরে। | |
columnStatedefaultColumnStateonColumnStateChangeঅবস্থা | NuiGridColumnState[] | [] | প্রতিটি কলামের প্রস্থ, ক্রম, পিন ও দৃশ্যমানতা, সংরক্ষণ ও পুনরুদ্ধারের জন্য। |
modeপ্রপ | 'client' | 'server' | 'client' | server সারিগুলো যেমন আসে তেমনই দেখায়, আর সর্টিং, ফিল্টারিং ও পেজিং আপনার হাতে ছেড়ে দেয়। |
totalপ্রপ | number | সার্ভারে সারির সংখ্যা। | |
loadingপ্রপ | boolean | false | প্রোগ্রেস বার দেখায়, আর কোনো সারি না থাকলে প্লেসহোল্ডার সারি। |
localeপ্রপ | string | 'en-US' | সংখ্যা ও তারিখ ফরম্যাট করে, আর টাইপ করা সংখ্যা পড়ে। |
labelsপ্রপ | Partial<NuiGridLabels> | গ্রিড যত টেক্সট দেখায় বা ঘোষণা করে, অনুবাদের জন্য। | |
cornersপ্রপ | NuiCorners | এর কোণগুলোর আকৃতি: round, squircle, bevel, scoop, notch বা square। | |
radiusপ্রপ | NuiRadius | এর কোণগুলো কত বড়: none, small, medium, large বা full। | |
densityপ্রপ | NuiDensity | এটি কতটা জায়গা নেয়: compact, regular বা roomy। | |
groupByপ্রপ | string[] | [] | যেসব কলাম অনুযায়ী সারি গ্রুপ হয়, সবচেয়ে বাইরেরটি আগে। |
collapseddefaultCollapsedonCollapsedChangeঅবস্থা | string[] | [] | বন্ধ গ্রুপগুলোর কী; শুরুতে গ্রুপগুলো খোলা থাকে। |
getChildrenপ্রপ | (row: T) => T[] | undefined | একটি সারির চাইল্ড সারি: এতে গ্রিড ট্রি ডেটা দেখায়। | |
expandeddefaultExpandedonExpandedChangeঅবস্থা | unknown[] | [] | ট্রি ডেটায় খোলা সারিগুলোর কী; শুরুতে সেগুলো বন্ধ থাকে। |
detailsdefaultDetailsonDetailsChangeঅবস্থা | unknown[] | [] | যেসব সারির বিস্তারিত খোলা, সেগুলোর কী। |
totals, flashপ্রপ | boolean | false | ফিল্টার করা সব সারির ওপর অ্যাগ্রিগেটের একটি সারি; আর টেক্সট বদলালে যে সেলগুলো মুহূর্তের জন্য ঝলকে ওঠে, স্থায়ী rowId-সহ সারিতে। |
layoutপ্রপ | 'table' | 'list' | 'auto' | 'table' | list সারিগুলো কার্ড হিসেবে দেখায়, আর auto তা করে সরু স্ক্রিনে। |
toolbarপ্রপ | boolean | 'auto' | 'auto' | সারিগুলো সর্ট ও ফিল্টার করে এবং সব সারি বেছে নেয় এমন একটি বার: সবসময়, কখনো না, অথবা কার্ডের সঙ্গে auto। |
renderEmptyরেন্ডার প্রপ | (filtered: boolean) => ReactNode | কোনো সারি না থাকলে যা দেখায়; ফিল্টার সেগুলো লুকিয়েছে কি না, তা একে জানানো হয়। | |
renderDetailরেন্ডার প্রপ | (row: T) => ReactNode | একটি সারির বিস্তারিত, খুললে তার নিচে দেখা যায়। গ্রিড টগলের একটি কলাম যোগ করে। | |
onRowActivateকলব্যাক | (row: T) => void | Enter বা ডাবল-ক্লিকে খোলা সারি নিয়ে কল হয়। | |
onCellEditকলব্যাক | (edit: NuiGridEdit<T>) => void | প্রয়োগ করা প্রতিটি এডিট নিয়ে কল হয়। | |
onQueryChangeকলব্যাক | (query: NuiGridQuery) => void | সর্ট, ফিল্টার, সার্চ ও পেজ বদলালেই সেগুলো নিয়ে কল হয়, আর শুরুতে একবার। | |
refপ্রপ | Ref<NuiGridHandle> | গ্রিডের ref দিয়ে যা পাওয়া যায়: এক্সপোর্ট, প্রিন্ট ও ফোকাস। | |
exportXlsx, printমেথড | (options?) => Blob, () => void | ফিল্টার ও সর্ট করা সারি, স্প্রেডশিট হিসেবে; সব সারি প্রিন্ট করে। | |
exportCsvমেথড | (options?) => string | দৃশ্যমান কলামগুলোর ফিল্টার ও সর্ট করা সারি, CSV হিসেবে। | |
expandAllমেথড | (open?: boolean) => void | প্রতিটি গ্রুপ আর চাইল্ড সারি থাকা প্রতিটি সারি খোলে, অথবা সবগুলো বন্ধ করে। | |
focusCellমেথড | (row: number, col: number) => void | একটি সেলে ফোকাস করে; সারি -1 হলো হেডার। | |
clearFiltersমেথড | () => void | সব ফিল্টার ও সার্চ মুছে দেয়। | |
fitমেথড | (id: string) => void | একটি কলামকে তার রেন্ডার হওয়া সেলগুলোর মধ্যে সবচেয়ে চওড়াটির মাপে ফিট করে। |
অবস্থা React-এর নিজস্ব ইনপুটের মতোই কাজ করে: একটি ভ্যালু দিন আর তার on…Change কলব্যাক থেকে সেটি আপডেট করুন, অথবা একটি default… ভ্যালু দিন আর কম্পোনেন্টকেই সেটি রাখতে দিন।
যে কাস্টমাইজেশন প্রপ আপনি সেট করেন না, সেগুলো সবচেয়ে কাছের data-nui-* অ্যাট্রিবিউট থেকে ভ্যালু নেয়। কাস্টমাইজেশন গাইড দেখুন।
NuiGridColumn
একটি কলাম। এটি Angular কলামের প্রতিটি প্রপার্টি নেয় (শুধু id ও header আবশ্যক), আর নেয় এই দুটি, যেগুলো কলামটি আঁকে।
| নাম | টাইপ | ডিফল্ট | বিবরণ |
|---|---|---|---|
renderCellরেন্ডার প্রপ | ({ row, value, text, column }) => ReactNode | কলামের সেলগুলো নিজে আঁকুন, সারি, সেলের ভ্যালু ও টেক্সট থেকে। | |
renderHeaderরেন্ডার প্রপ | (column) => ReactNode | কলামের হেডার নিজে আঁকুন; নাম তবুও আসে header থেকে। |