الاستيراد

import-grid.tsx
import { NuiGrid, type NuiGridColumn, type NuiGridHandle } from '@needless-ui/react/grid';

NuiGrid

شبكة بيانات على جدول أصلي.

NuiGrid: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
rowsخاصية (prop)readonly T[]البيانات. يستبدل التعديل صفّه ويستدعي onRowsChange؛ وقيمة rows التالية التي تمرّرها تحل محل التعديلات.
onRowsChangeدالة رد نداء(rows: readonly T[]) => voidتُستدعى مع الصفوف بعد كل تعديل معتمد.
columnsخاصية (prop)NuiGridColumn<T>[]الأعمدة، على هيئة كائنات NuiGridColumn.
rowIdخاصية (prop)(row: T) => unknownrow.id ?? rowمفتاح الصف، للتحديد والتتبّع.
labelخاصية (prop)stringاسم الشبكة الذي تقرؤه التقنيات المساعدة.
selectionخاصية (prop)'none' | 'single' | 'multiple''none'ما إذا كان يمكن تحديد الصفوف، وكم صفًّا.
selected
defaultSelected
onSelectedChangeحالة
unknown[][]مفاتيح الصفوف المحددة.
sort
defaultSort
onSortChangeحالة
NuiGridSort[][]الفرز، على هيئة كائنات { column, direction }؛ وللأول الأولوية.
filters
defaultFilters
onFiltersChangeحالة
Record<string, NuiGridFilter>{}تصفية لكل معرّف عمود: مُعامِل وقيمة.
search
defaultSearch
onSearchChangeحالة
string''كلمات يجب أن تظهر كلها في الصف.
pageSize
defaultPageSize
onPageSizeChangeحالة
number0عدد الصفوف في الصفحة، أو 0 لقائمة واحدة قابلة للتمرير.
page
defaultPage
onPageChangeحالة
number0الصفحة المعروضة، بدءًا من 0.
pageSizesخاصية (prop)number[][10, 25, 50, 100]الخيارات المتاحة في شريط الصفحات.
virtualخاصية (prop)boolean | 'auto''auto'يرسم الصفوف الظاهرة فقط: دائمًا، أو أبدًا، أو مع auto بعد 100 صف دون صفحات.
heightخاصية (prop)stringطول CSS يحدّ الشبكة؛ ويجري التمرير داخلها.
columnState
defaultColumnState
onColumnStateChangeحالة
NuiGridColumnState[][]عرض كل عمود وترتيبه وتثبيته وظهوره، لحفظها واستعادتها.
modeخاصية (prop)'client' | 'server''client'يعرض server الصفوف كما تصل، ويترك لك الفرز والتصفية والتقسيم إلى صفحات.
totalخاصية (prop)numberعدد الصفوف على الخادم.
loadingخاصية (prop)booleanfalseيعرض شريط تقدّم، وصفوفًا مؤقتة ما دامت لا توجد صفوف.
localeخاصية (prop)string'en-US'يُنسّق الأرقام والتواريخ، ويقرأ الأرقام المكتوبة.
labelsخاصية (prop)Partial<NuiGridLabels>كل نص تعرضه الشبكة أو تُعلنه، لترجمته.
cornersخاصية (prop)NuiCornersشكل زواياه: round أو squircle أو bevel أو scoop أو notch أو square.
radiusخاصية (prop)NuiRadiusحجم زواياه: none أو small أو medium أو large أو full.
densityخاصية (prop)NuiDensityالمساحة التي يشغلها: compact أو regular أو roomy.
groupByخاصية (prop)string[][]الأعمدة التي تُجمَّع الصفوف حسبها، بدءًا من المستوى الخارجي.
collapsed
defaultCollapsed
onCollapsedChangeحالة
string[][]مفاتيح المجموعات المغلقة؛ وتبدأ المجموعات مفتوحة.
getChildrenخاصية (prop)(row: T) => T[] | undefinedالصفوف الفرعية للصف: وبها تعرض الشبكة بيانات شجرية.
expanded
defaultExpanded
onExpandedChangeحالة
unknown[][]مفاتيح الصفوف المفتوحة في البيانات الشجرية؛ وتبدأ الصفوف مغلقة.
details
defaultDetails
onDetailsChangeحالة
unknown[][]مفاتيح الصفوف التي تفاصيلها مفتوحة.
totals, flashخاصية (prop)booleanfalseصف من القيم التجميعية لكل الصفوف المصفّاة؛ وخلايا تومض حين يتغيّر نصها، في صفوف لها rowId ثابت.
layoutخاصية (prop)'table' | 'list' | 'auto''table'يعرض list الصفوف على هيئة بطاقات، ويفعل auto ذلك على الشاشات الضيقة.
toolbarخاصية (prop)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خاصية (prop)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)، إضافةً إلى هاتين الخاصيتين اللتين ترسمانه.

NuiGridColumn: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
renderCellدالة رسم({ row, value, text, column }) => ReactNodeلرسم خلايا العمود بنفسك، من الصف وقيمة الخلية ونصها.
renderHeaderدالة رسم(column) => ReactNodeلرسم رأس العمود بنفسك؛ ويظل header هو ما يُسمّيه.