@mamrp/components 1.4.3 → 1.4.4

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.
package/dist/index.d.mts CHANGED
@@ -372,39 +372,224 @@ interface DraggablePaperProps extends PaperProps {
372
372
  }
373
373
  declare function DraggablePaper({ handle, cancel, ...props }: DraggablePaperProps): React$1.JSX.Element;
374
374
 
375
+ /**
376
+ * Props کامپوننت DataTable
377
+ *
378
+ * این اینترفیس تمام گزینه‌های قابل تنظیم برای کامپوننت DataTable را تعریف می‌کند
379
+ * و مستقیماً با خروجی useTableState سازگار است
380
+ *
381
+ * @template T - نوع داده‌های جدول (مثال: Car، User، Product)
382
+ */
375
383
  type DataTableProps<T extends Record<string, any>> = {
384
+ /** آرایه داده‌های جدول */
376
385
  data: T[];
386
+ /** تعریف ستون‌های جدول */
377
387
  columns: MRT_ColumnDef<T>[];
388
+ /** آیا جدول در حال بارگذاری است */
378
389
  isLoading?: boolean;
390
+ /** آیا داده‌ها در حال به‌روزرسانی هستند */
379
391
  isRefetching?: boolean;
392
+ /** وضعیت صفحه‌بندی (مستقیماً از useTableState) */
380
393
  pagination: MRT_PaginationState;
394
+ /** تابع تغییر صفحه‌بندی (setPagination از useTableState) */
381
395
  onPaginationChange: (updater: MRT_PaginationState | ((old: MRT_PaginationState) => MRT_PaginationState)) => void;
396
+ /** تعداد کل رکوردها (از API response) */
382
397
  totalRows: number;
398
+ /** فعال‌سازی صفحه‌بندی دستی (پیش‌فرض: true) */
383
399
  manualPagination?: boolean;
400
+ /** فیلترهای ستون (columnFilters از useTableState) */
384
401
  columnFilters?: MRT_ColumnFiltersState;
402
+ /** تابع تغییر فیلترهای ستون */
385
403
  onColumnFiltersChange?: (filters: MRT_ColumnFiltersState | ((old: MRT_ColumnFiltersState) => MRT_ColumnFiltersState)) => void;
404
+ /** فعال‌سازی فیلترینگ دستی (پیش‌فرض: true) */
386
405
  manualFiltering?: boolean;
406
+ /** تابع پاک کردن فیلترها (clearFilters از useTableState) */
387
407
  onClearFilters?: () => void;
408
+ /** نمایش دکمه پاک کردن فیلترها */
388
409
  showClearFiltersButton?: boolean;
410
+ /** وضعیت مرتب‌سازی (sorting از useTableState) */
389
411
  sorting?: MRT_SortingState;
412
+ /** تابع تغییر مرتب‌سازی (setSorting از useTableState) */
390
413
  onSortingChange?: (sorting: MRT_SortingState | ((old: MRT_SortingState) => MRT_SortingState)) => void;
414
+ /** فعال‌سازی مرتب‌سازی دستی (پیش‌فرض: false) */
391
415
  manualSorting?: boolean;
416
+ /** وضعیت نمایش ستون‌ها (columnVisibility از useTableState) */
417
+ columnVisibility?: Record<string, boolean>;
418
+ /** تابع تغییر نمایش ستون‌ها (setColumnVisibility از useTableState) */
419
+ onColumnVisibilityChange?: (visibility: Record<string, boolean> | ((old: Record<string, boolean>) => Record<string, boolean>)) => void;
420
+ /** ترتیب ستون‌ها */
421
+ columnOrder?: string[];
422
+ /** تابع تغییر ترتیب ستون‌ها */
423
+ onColumnOrderChange?: (order: string[] | ((old: string[]) => string[])) => void;
424
+ /** فعال‌سازی header چسبان */
392
425
  enableStickyHeader?: boolean;
426
+ /** حداکثر ارتفاع جدول */
393
427
  maxHeight?: string;
428
+ /** تراکم جدول */
394
429
  density?: "comfortable" | "compact" | "spacious";
430
+ /** امکان تغییر ترتیب ستون‌ها */
395
431
  enableColumnOrdering?: boolean;
432
+ /** فعال‌سازی جستجوی سراسری */
396
433
  enableGlobalFilter?: boolean;
434
+ /** فعال‌سازی انواع فیلتر ستون */
397
435
  enableColumnFilterModes?: boolean;
436
+ /** فعال‌سازی انتخاب سطر */
398
437
  enableRowSelection?: boolean;
438
+ /** رندر کردن اکشن‌های سفارشی بالای جدول */
399
439
  renderTopToolbarCustomActions?: (props: {
400
440
  table: any;
401
441
  }) => React.ReactNode;
442
+ /** رندر کردن اکشن‌های سفارشی پایین جدول */
402
443
  renderBottomToolbarCustomActions?: (props: {
403
444
  table: any;
404
445
  }) => React.ReactNode;
446
+ /** گزینه‌های اضافی جدول */
405
447
  tableOptions?: Partial<MRT_TableOptions<T>>;
448
+ /** لوکالیزیشن سفارشی */
406
449
  localization?: Record<string, string>;
407
450
  };
408
- declare const DataTable: <T extends Record<string, any>>({ data, columns, isLoading, isRefetching, pagination, onPaginationChange, totalRows, manualPagination, columnFilters, onColumnFiltersChange, manualFiltering, onClearFilters, showClearFiltersButton, sorting, onSortingChange, manualSorting, enableStickyHeader, maxHeight, density, enableColumnOrdering, enableGlobalFilter, enableColumnFilterModes, enableRowSelection, renderTopToolbarCustomActions, renderBottomToolbarCustomActions, tableOptions, localization, }: DataTableProps<T>) => React$1.JSX.Element;
451
+ /**
452
+ * کامپوننت DataTable - جدول پیشرفته با قابلیت‌های کامل
453
+ *
454
+ * این کامپوننت یک wrapper پیشرفته برای Material React Table است که:
455
+ * - مستقیماً با useTableState یکپارچه می‌شود
456
+ * - تمام ویژگی‌های مدرن جدول را پشتیبانی می‌کند
457
+ * - لوکالیزیشن کامل فارسی دارد
458
+ * - بهینه‌سازی شده برای عملکرد بالا
459
+ *
460
+ * ## راهنمای استفاده با useTableState:
461
+ *
462
+ * ### مرحله 1: تنظیم useTableState
463
+ * ```tsx
464
+ * const tableState = useTableState("my-table", {
465
+ * initialPageSize: 25,
466
+ * debounceTime: 500,
467
+ * sortMapping: {
468
+ * name: "NameOrdering",
469
+ * status: "StatusOrdering"
470
+ * }
471
+ * });
472
+ * ```
473
+ *
474
+ * ### مرحله 2: فراخوانی API
475
+ * ```tsx
476
+ * const { data } = useGetData({
477
+ * PageNumber: tableState.pagination.pageIndex + 1,
478
+ * PageSize: tableState.pagination.pageSize,
479
+ * ...tableState.debouncedFiltring,
480
+ * ...tableState.mappedSorting,
481
+ * });
482
+ * ```
483
+ *
484
+ * ### مرحله 3: تعریف ستون‌ها با فیلتر
485
+ * ```tsx
486
+ * const columns = useMemo<MRT_ColumnDef<DataType>[]>(() => [
487
+ * {
488
+ * accessorKey: "name",
489
+ * header: "نام",
490
+ * Filter: ({ column }) => (
491
+ * <FormInputText
492
+ * control={control}
493
+ * name="NameFiltering"
494
+ * placeholder="فیلتر نام"
495
+ * />
496
+ * ),
497
+ * },
498
+ * // سایر ستون‌ها...
499
+ * ], [control]);
500
+ * ```
501
+ *
502
+ * ### مرحله 4: رندر DataTable
503
+ * ```tsx
504
+ * return (
505
+ * <DataTable
506
+ * data={data?.items || []}
507
+ * columns={columns}
508
+ * isLoading={isLoading}
509
+ * pagination={tableState.pagination}
510
+ * onPaginationChange={tableState.setPagination}
511
+ * totalRows={data?.totalRecords || 0}
512
+ * sorting={tableState.sorting}
513
+ * onSortingChange={tableState.setSorting}
514
+ * columnVisibility={tableState.columnVisibility}
515
+ * onColumnVisibilityChange={tableState.setColumnVisibility}
516
+ * onClearFilters={handleClearFilters}
517
+ * manualSorting={true}
518
+ * />
519
+ * );
520
+ * ```
521
+ *
522
+ * ## ویژگی‌های کلیدی:
523
+ *
524
+ * 📄 **صفحه‌بندی هوشمند**: صفحه‌بندی سمت سرور با همگام‌سازی خودکار
525
+ * 🔍 **فیلترینگ پیشرفته**: فیلترهای سفارشی با debouncing
526
+ * 🔀 **مرتب‌سازی قدرتمند**: مرتب‌سازی با نگاشت بک‌اند
527
+ * 👁️ **مدیریت ستون‌ها**: نمایش/مخفی کردن ستون‌ها با localStorage
528
+ * 🌍 **لوکالیزیشن**: پشتیبانی کامل از زبان فارسی
529
+ * ⚡ **بهینه‌سازی**: رندرینگ بهینه با useMemo
530
+ * 🎨 **قابل تنظیم**: ظاهر و رفتار کاملاً قابل تنظیم
531
+ *
532
+ * @template T - نوع داده‌های جدول
533
+ *
534
+ * @example
535
+ * ```tsx
536
+ * // مثال کامل استفاده
537
+ * function UsersTable() {
538
+ * const { control, watch, reset } = useForm();
539
+ *
540
+ * const tableState = useTableState<UserFilter>("users-table", {
541
+ * initialPageSize: 50,
542
+ * watch,
543
+ * syncFormToFilters: true,
544
+ * sortMapping: {
545
+ * name: "NameOrdering",
546
+ * email: "EmailOrdering"
547
+ * }
548
+ * });
549
+ *
550
+ * const { data, isLoading } = useGetUsers({
551
+ * PageNumber: tableState.pagination.pageIndex + 1,
552
+ * PageSize: tableState.pagination.pageSize,
553
+ * ...tableState.debouncedFiltring,
554
+ * ...tableState.mappedSorting,
555
+ * });
556
+ *
557
+ * const columns = useMemo(() => [
558
+ * {
559
+ * accessorKey: "name",
560
+ * header: "نام کاربر",
561
+ * Filter: () => (
562
+ * <FormInputText
563
+ * control={control}
564
+ * name="NameFiltering"
565
+ * placeholder="جستجو نام"
566
+ * />
567
+ * ),
568
+ * }
569
+ * ], [control]);
570
+ *
571
+ * return (
572
+ * <DataTable
573
+ * data={data?.users || []}
574
+ * columns={columns}
575
+ * isLoading={isLoading}
576
+ * pagination={tableState.pagination}
577
+ * onPaginationChange={tableState.setPagination}
578
+ * totalRows={data?.totalCount || 0}
579
+ * sorting={tableState.sorting}
580
+ * onSortingChange={tableState.setSorting}
581
+ * columnVisibility={tableState.columnVisibility}
582
+ * onColumnVisibilityChange={tableState.setColumnVisibility}
583
+ * onClearFilters={() => {
584
+ * tableState.clearFilters();
585
+ * reset();
586
+ * }}
587
+ * manualSorting={true}
588
+ * />
589
+ * );
590
+ * }
591
+ * ```
592
+ */
593
+ declare const DataTable: <T extends Record<string, any>>({ data, columns, isLoading, isRefetching, pagination, onPaginationChange, totalRows, manualPagination, columnFilters, onColumnFiltersChange, manualFiltering, onClearFilters, showClearFiltersButton, sorting, onSortingChange, manualSorting, columnVisibility, onColumnVisibilityChange, columnOrder, onColumnOrderChange, enableStickyHeader, maxHeight, density, enableColumnOrdering, enableGlobalFilter, enableColumnFilterModes, enableRowSelection, renderTopToolbarCustomActions, renderBottomToolbarCustomActions, tableOptions, localization, }: DataTableProps<T>) => React$1.JSX.Element;
409
594
 
410
595
  export { Page as Accordion, AdvancedSearchButton, ConfirmationDialog$1 as ConfirmationDialog, ConnectToBasculeButton, CustomCheckbox, CustomTimePicker, DataTable, DateFilter, DateFilterRange, DateMonthPicker, JalaliDatePicker$2 as DatePicker, JalaliDatePicker$1 as DateTimePicker, JalaliDateTimeRangePicker as DateTimeRangePicker, DraggablePaper, UploadImage as EnhancedUploadImage, FormInputNumber, FormInputText, HorizontalStepper, LicensePlate, JalaliDatePicker as MobileDateTimePicker, ConfirmationDialog as Modal, NestedSelect as NestedSelectort, NoResult, PaginationList, PatternTextField, RadioButton, SearchLicensePlate, MultipleSelectChip as Selector, SkeletonCard, SonarSpinner, SwitchButton, Table, UploadImage$1 as UploadImage };
package/dist/index.d.ts CHANGED
@@ -372,39 +372,224 @@ interface DraggablePaperProps extends PaperProps {
372
372
  }
373
373
  declare function DraggablePaper({ handle, cancel, ...props }: DraggablePaperProps): React$1.JSX.Element;
374
374
 
375
+ /**
376
+ * Props کامپوننت DataTable
377
+ *
378
+ * این اینترفیس تمام گزینه‌های قابل تنظیم برای کامپوننت DataTable را تعریف می‌کند
379
+ * و مستقیماً با خروجی useTableState سازگار است
380
+ *
381
+ * @template T - نوع داده‌های جدول (مثال: Car، User، Product)
382
+ */
375
383
  type DataTableProps<T extends Record<string, any>> = {
384
+ /** آرایه داده‌های جدول */
376
385
  data: T[];
386
+ /** تعریف ستون‌های جدول */
377
387
  columns: MRT_ColumnDef<T>[];
388
+ /** آیا جدول در حال بارگذاری است */
378
389
  isLoading?: boolean;
390
+ /** آیا داده‌ها در حال به‌روزرسانی هستند */
379
391
  isRefetching?: boolean;
392
+ /** وضعیت صفحه‌بندی (مستقیماً از useTableState) */
380
393
  pagination: MRT_PaginationState;
394
+ /** تابع تغییر صفحه‌بندی (setPagination از useTableState) */
381
395
  onPaginationChange: (updater: MRT_PaginationState | ((old: MRT_PaginationState) => MRT_PaginationState)) => void;
396
+ /** تعداد کل رکوردها (از API response) */
382
397
  totalRows: number;
398
+ /** فعال‌سازی صفحه‌بندی دستی (پیش‌فرض: true) */
383
399
  manualPagination?: boolean;
400
+ /** فیلترهای ستون (columnFilters از useTableState) */
384
401
  columnFilters?: MRT_ColumnFiltersState;
402
+ /** تابع تغییر فیلترهای ستون */
385
403
  onColumnFiltersChange?: (filters: MRT_ColumnFiltersState | ((old: MRT_ColumnFiltersState) => MRT_ColumnFiltersState)) => void;
404
+ /** فعال‌سازی فیلترینگ دستی (پیش‌فرض: true) */
386
405
  manualFiltering?: boolean;
406
+ /** تابع پاک کردن فیلترها (clearFilters از useTableState) */
387
407
  onClearFilters?: () => void;
408
+ /** نمایش دکمه پاک کردن فیلترها */
388
409
  showClearFiltersButton?: boolean;
410
+ /** وضعیت مرتب‌سازی (sorting از useTableState) */
389
411
  sorting?: MRT_SortingState;
412
+ /** تابع تغییر مرتب‌سازی (setSorting از useTableState) */
390
413
  onSortingChange?: (sorting: MRT_SortingState | ((old: MRT_SortingState) => MRT_SortingState)) => void;
414
+ /** فعال‌سازی مرتب‌سازی دستی (پیش‌فرض: false) */
391
415
  manualSorting?: boolean;
416
+ /** وضعیت نمایش ستون‌ها (columnVisibility از useTableState) */
417
+ columnVisibility?: Record<string, boolean>;
418
+ /** تابع تغییر نمایش ستون‌ها (setColumnVisibility از useTableState) */
419
+ onColumnVisibilityChange?: (visibility: Record<string, boolean> | ((old: Record<string, boolean>) => Record<string, boolean>)) => void;
420
+ /** ترتیب ستون‌ها */
421
+ columnOrder?: string[];
422
+ /** تابع تغییر ترتیب ستون‌ها */
423
+ onColumnOrderChange?: (order: string[] | ((old: string[]) => string[])) => void;
424
+ /** فعال‌سازی header چسبان */
392
425
  enableStickyHeader?: boolean;
426
+ /** حداکثر ارتفاع جدول */
393
427
  maxHeight?: string;
428
+ /** تراکم جدول */
394
429
  density?: "comfortable" | "compact" | "spacious";
430
+ /** امکان تغییر ترتیب ستون‌ها */
395
431
  enableColumnOrdering?: boolean;
432
+ /** فعال‌سازی جستجوی سراسری */
396
433
  enableGlobalFilter?: boolean;
434
+ /** فعال‌سازی انواع فیلتر ستون */
397
435
  enableColumnFilterModes?: boolean;
436
+ /** فعال‌سازی انتخاب سطر */
398
437
  enableRowSelection?: boolean;
438
+ /** رندر کردن اکشن‌های سفارشی بالای جدول */
399
439
  renderTopToolbarCustomActions?: (props: {
400
440
  table: any;
401
441
  }) => React.ReactNode;
442
+ /** رندر کردن اکشن‌های سفارشی پایین جدول */
402
443
  renderBottomToolbarCustomActions?: (props: {
403
444
  table: any;
404
445
  }) => React.ReactNode;
446
+ /** گزینه‌های اضافی جدول */
405
447
  tableOptions?: Partial<MRT_TableOptions<T>>;
448
+ /** لوکالیزیشن سفارشی */
406
449
  localization?: Record<string, string>;
407
450
  };
408
- declare const DataTable: <T extends Record<string, any>>({ data, columns, isLoading, isRefetching, pagination, onPaginationChange, totalRows, manualPagination, columnFilters, onColumnFiltersChange, manualFiltering, onClearFilters, showClearFiltersButton, sorting, onSortingChange, manualSorting, enableStickyHeader, maxHeight, density, enableColumnOrdering, enableGlobalFilter, enableColumnFilterModes, enableRowSelection, renderTopToolbarCustomActions, renderBottomToolbarCustomActions, tableOptions, localization, }: DataTableProps<T>) => React$1.JSX.Element;
451
+ /**
452
+ * کامپوننت DataTable - جدول پیشرفته با قابلیت‌های کامل
453
+ *
454
+ * این کامپوننت یک wrapper پیشرفته برای Material React Table است که:
455
+ * - مستقیماً با useTableState یکپارچه می‌شود
456
+ * - تمام ویژگی‌های مدرن جدول را پشتیبانی می‌کند
457
+ * - لوکالیزیشن کامل فارسی دارد
458
+ * - بهینه‌سازی شده برای عملکرد بالا
459
+ *
460
+ * ## راهنمای استفاده با useTableState:
461
+ *
462
+ * ### مرحله 1: تنظیم useTableState
463
+ * ```tsx
464
+ * const tableState = useTableState("my-table", {
465
+ * initialPageSize: 25,
466
+ * debounceTime: 500,
467
+ * sortMapping: {
468
+ * name: "NameOrdering",
469
+ * status: "StatusOrdering"
470
+ * }
471
+ * });
472
+ * ```
473
+ *
474
+ * ### مرحله 2: فراخوانی API
475
+ * ```tsx
476
+ * const { data } = useGetData({
477
+ * PageNumber: tableState.pagination.pageIndex + 1,
478
+ * PageSize: tableState.pagination.pageSize,
479
+ * ...tableState.debouncedFiltring,
480
+ * ...tableState.mappedSorting,
481
+ * });
482
+ * ```
483
+ *
484
+ * ### مرحله 3: تعریف ستون‌ها با فیلتر
485
+ * ```tsx
486
+ * const columns = useMemo<MRT_ColumnDef<DataType>[]>(() => [
487
+ * {
488
+ * accessorKey: "name",
489
+ * header: "نام",
490
+ * Filter: ({ column }) => (
491
+ * <FormInputText
492
+ * control={control}
493
+ * name="NameFiltering"
494
+ * placeholder="فیلتر نام"
495
+ * />
496
+ * ),
497
+ * },
498
+ * // سایر ستون‌ها...
499
+ * ], [control]);
500
+ * ```
501
+ *
502
+ * ### مرحله 4: رندر DataTable
503
+ * ```tsx
504
+ * return (
505
+ * <DataTable
506
+ * data={data?.items || []}
507
+ * columns={columns}
508
+ * isLoading={isLoading}
509
+ * pagination={tableState.pagination}
510
+ * onPaginationChange={tableState.setPagination}
511
+ * totalRows={data?.totalRecords || 0}
512
+ * sorting={tableState.sorting}
513
+ * onSortingChange={tableState.setSorting}
514
+ * columnVisibility={tableState.columnVisibility}
515
+ * onColumnVisibilityChange={tableState.setColumnVisibility}
516
+ * onClearFilters={handleClearFilters}
517
+ * manualSorting={true}
518
+ * />
519
+ * );
520
+ * ```
521
+ *
522
+ * ## ویژگی‌های کلیدی:
523
+ *
524
+ * 📄 **صفحه‌بندی هوشمند**: صفحه‌بندی سمت سرور با همگام‌سازی خودکار
525
+ * 🔍 **فیلترینگ پیشرفته**: فیلترهای سفارشی با debouncing
526
+ * 🔀 **مرتب‌سازی قدرتمند**: مرتب‌سازی با نگاشت بک‌اند
527
+ * 👁️ **مدیریت ستون‌ها**: نمایش/مخفی کردن ستون‌ها با localStorage
528
+ * 🌍 **لوکالیزیشن**: پشتیبانی کامل از زبان فارسی
529
+ * ⚡ **بهینه‌سازی**: رندرینگ بهینه با useMemo
530
+ * 🎨 **قابل تنظیم**: ظاهر و رفتار کاملاً قابل تنظیم
531
+ *
532
+ * @template T - نوع داده‌های جدول
533
+ *
534
+ * @example
535
+ * ```tsx
536
+ * // مثال کامل استفاده
537
+ * function UsersTable() {
538
+ * const { control, watch, reset } = useForm();
539
+ *
540
+ * const tableState = useTableState<UserFilter>("users-table", {
541
+ * initialPageSize: 50,
542
+ * watch,
543
+ * syncFormToFilters: true,
544
+ * sortMapping: {
545
+ * name: "NameOrdering",
546
+ * email: "EmailOrdering"
547
+ * }
548
+ * });
549
+ *
550
+ * const { data, isLoading } = useGetUsers({
551
+ * PageNumber: tableState.pagination.pageIndex + 1,
552
+ * PageSize: tableState.pagination.pageSize,
553
+ * ...tableState.debouncedFiltring,
554
+ * ...tableState.mappedSorting,
555
+ * });
556
+ *
557
+ * const columns = useMemo(() => [
558
+ * {
559
+ * accessorKey: "name",
560
+ * header: "نام کاربر",
561
+ * Filter: () => (
562
+ * <FormInputText
563
+ * control={control}
564
+ * name="NameFiltering"
565
+ * placeholder="جستجو نام"
566
+ * />
567
+ * ),
568
+ * }
569
+ * ], [control]);
570
+ *
571
+ * return (
572
+ * <DataTable
573
+ * data={data?.users || []}
574
+ * columns={columns}
575
+ * isLoading={isLoading}
576
+ * pagination={tableState.pagination}
577
+ * onPaginationChange={tableState.setPagination}
578
+ * totalRows={data?.totalCount || 0}
579
+ * sorting={tableState.sorting}
580
+ * onSortingChange={tableState.setSorting}
581
+ * columnVisibility={tableState.columnVisibility}
582
+ * onColumnVisibilityChange={tableState.setColumnVisibility}
583
+ * onClearFilters={() => {
584
+ * tableState.clearFilters();
585
+ * reset();
586
+ * }}
587
+ * manualSorting={true}
588
+ * />
589
+ * );
590
+ * }
591
+ * ```
592
+ */
593
+ declare const DataTable: <T extends Record<string, any>>({ data, columns, isLoading, isRefetching, pagination, onPaginationChange, totalRows, manualPagination, columnFilters, onColumnFiltersChange, manualFiltering, onClearFilters, showClearFiltersButton, sorting, onSortingChange, manualSorting, columnVisibility, onColumnVisibilityChange, columnOrder, onColumnOrderChange, enableStickyHeader, maxHeight, density, enableColumnOrdering, enableGlobalFilter, enableColumnFilterModes, enableRowSelection, renderTopToolbarCustomActions, renderBottomToolbarCustomActions, tableOptions, localization, }: DataTableProps<T>) => React$1.JSX.Element;
409
594
 
410
595
  export { Page as Accordion, AdvancedSearchButton, ConfirmationDialog$1 as ConfirmationDialog, ConnectToBasculeButton, CustomCheckbox, CustomTimePicker, DataTable, DateFilter, DateFilterRange, DateMonthPicker, JalaliDatePicker$2 as DatePicker, JalaliDatePicker$1 as DateTimePicker, JalaliDateTimeRangePicker as DateTimeRangePicker, DraggablePaper, UploadImage as EnhancedUploadImage, FormInputNumber, FormInputText, HorizontalStepper, LicensePlate, JalaliDatePicker as MobileDateTimePicker, ConfirmationDialog as Modal, NestedSelect as NestedSelectort, NoResult, PaginationList, PatternTextField, RadioButton, SearchLicensePlate, MultipleSelectChip as Selector, SkeletonCard, SonarSpinner, SwitchButton, Table, UploadImage$1 as UploadImage };
package/dist/index.js CHANGED
@@ -4815,6 +4815,10 @@ var DataTable = ({
4815
4815
  sorting = [],
4816
4816
  onSortingChange,
4817
4817
  manualSorting = false,
4818
+ columnVisibility = {},
4819
+ onColumnVisibilityChange,
4820
+ columnOrder = [],
4821
+ onColumnOrderChange,
4818
4822
  enableStickyHeader = true,
4819
4823
  maxHeight = "calc(100vh - 200px)",
4820
4824
  density = "compact",
@@ -4854,32 +4858,37 @@ var DataTable = ({
4854
4858
  columns: memoizedColumns,
4855
4859
  data: memoizedData,
4856
4860
  localization,
4857
- // Pagination
4861
+ // === صفحه‌بندی ===
4858
4862
  manualPagination,
4859
4863
  onPaginationChange,
4860
4864
  pageCount: manualPagination ? Math.ceil(totalRows / pagination.pageSize) : void 0,
4861
4865
  rowCount: totalRows ?? 0,
4862
- // Filtering
4866
+ // === فیلترینگ ===
4863
4867
  manualFiltering,
4864
4868
  onColumnFiltersChange,
4865
4869
  enableColumnFilterModes,
4866
4870
  enableGlobalFilter,
4867
- // Sorting
4871
+ // === مرتب‌سازی ===
4868
4872
  manualSorting,
4869
4873
  onSortingChange,
4870
- // Features
4874
+ // === ویژگی‌ها ===
4871
4875
  enableColumnOrdering,
4872
4876
  enableRowSelection,
4873
4877
  enableStickyHeader,
4874
- // State
4878
+ // === وضعیت جدول ===
4875
4879
  state: {
4876
4880
  pagination,
4877
- columnFilters,
4881
+ // columnFilters, // غیرفعال شده - فیلترها از طریق useTableState مدیریت می‌شوند
4878
4882
  sorting,
4883
+ columnVisibility,
4884
+ ...columnOrder && Array.isArray(columnOrder) && columnOrder.length > 0 && { columnOrder },
4879
4885
  isLoading,
4880
4886
  showProgressBars: isRefetching
4881
4887
  },
4882
- // Styling
4888
+ // === Event Handlers ===
4889
+ onColumnVisibilityChange,
4890
+ ...onColumnOrderChange && { onColumnOrderChange },
4891
+ // === استایل‌دهی ===
4883
4892
  muiTablePaperProps: { sx: { direction: "ltr" } },
4884
4893
  muiTableBodyCellProps: { sx: { textAlign: "center" } },
4885
4894
  muiTableHeadCellProps: {
@@ -4895,14 +4904,14 @@ var DataTable = ({
4895
4904
  maxHeight
4896
4905
  }
4897
4906
  },
4898
- // Initial state
4907
+ // === حالت اولیه ===
4899
4908
  initialState: {
4900
4909
  density
4901
4910
  },
4902
- // Custom toolbars
4911
+ // === تولبارهای سفارشی ===
4903
4912
  renderTopToolbarCustomActions: renderTopToolbarCustomActions || defaultRenderTopToolbarCustomActions,
4904
4913
  renderBottomToolbarCustomActions,
4905
- // Override with any additional options
4914
+ // 🔧 اعمال تنظیمات اضافی
4906
4915
  ...tableOptions
4907
4916
  });
4908
4917
  return /* @__PURE__ */ React.createElement(import_material_react_table.MaterialReactTable, { table });