@tinisoftin/tsdatagrid 1.0.0

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.
Files changed (175) hide show
  1. package/README.md +1272 -0
  2. package/dist/components/TSDataGrid.vue.d.ts +1285 -0
  3. package/dist/components/TSDataGrid.vue.d.ts.map +1 -0
  4. package/dist/components/TSDataGridActiveFilters.vue.d.ts +24 -0
  5. package/dist/components/TSDataGridActiveFilters.vue.d.ts.map +1 -0
  6. package/dist/components/TSDataGridBody.vue.d.ts +259 -0
  7. package/dist/components/TSDataGridBody.vue.d.ts.map +1 -0
  8. package/dist/components/TSDataGridCell.vue.d.ts +83 -0
  9. package/dist/components/TSDataGridCell.vue.d.ts.map +1 -0
  10. package/dist/components/TSDataGridColumnChooser.vue.d.ts +56 -0
  11. package/dist/components/TSDataGridColumnChooser.vue.d.ts.map +1 -0
  12. package/dist/components/TSDataGridContextMenu.vue.d.ts +46 -0
  13. package/dist/components/TSDataGridContextMenu.vue.d.ts.map +1 -0
  14. package/dist/components/TSDataGridFilter.vue.d.ts +92 -0
  15. package/dist/components/TSDataGridFilter.vue.d.ts.map +1 -0
  16. package/dist/components/TSDataGridFooter.vue.d.ts +95 -0
  17. package/dist/components/TSDataGridFooter.vue.d.ts.map +1 -0
  18. package/dist/components/TSDataGridGroupPanel.vue.d.ts +47 -0
  19. package/dist/components/TSDataGridGroupPanel.vue.d.ts.map +1 -0
  20. package/dist/components/TSDataGridHeader.vue.d.ts +221 -0
  21. package/dist/components/TSDataGridHeader.vue.d.ts.map +1 -0
  22. package/dist/components/TSDataGridRow.vue.d.ts +83 -0
  23. package/dist/components/TSDataGridRow.vue.d.ts.map +1 -0
  24. package/dist/components/TSDataGridToolbar.vue.d.ts +139 -0
  25. package/dist/components/TSDataGridToolbar.vue.d.ts.map +1 -0
  26. package/dist/composables/index.d.ts +28 -0
  27. package/dist/composables/index.d.ts.map +1 -0
  28. package/dist/composables/useClipboard.d.ts +863 -0
  29. package/dist/composables/useClipboard.d.ts.map +1 -0
  30. package/dist/composables/useColumnChooser.d.ts +36 -0
  31. package/dist/composables/useColumnChooser.d.ts.map +1 -0
  32. package/dist/composables/useColumnReorder.d.ts +40 -0
  33. package/dist/composables/useColumnReorder.d.ts.map +1 -0
  34. package/dist/composables/useColumnResize.d.ts +36 -0
  35. package/dist/composables/useColumnResize.d.ts.map +1 -0
  36. package/dist/composables/useContextMenu.d.ts +55 -0
  37. package/dist/composables/useContextMenu.d.ts.map +1 -0
  38. package/dist/composables/useDataSource.d.ts +1770 -0
  39. package/dist/composables/useDataSource.d.ts.map +1 -0
  40. package/dist/composables/useEditing.d.ts +54 -0
  41. package/dist/composables/useEditing.d.ts.map +1 -0
  42. package/dist/composables/useExport.d.ts +72 -0
  43. package/dist/composables/useExport.d.ts.map +1 -0
  44. package/dist/composables/useFiltering.d.ts +42 -0
  45. package/dist/composables/useFiltering.d.ts.map +1 -0
  46. package/dist/composables/useGridApi.d.ts +85 -0
  47. package/dist/composables/useGridApi.d.ts.map +1 -0
  48. package/dist/composables/useGrouping.d.ts +879 -0
  49. package/dist/composables/useGrouping.d.ts.map +1 -0
  50. package/dist/composables/useInfiniteScroll.d.ts +49 -0
  51. package/dist/composables/useInfiniteScroll.d.ts.map +1 -0
  52. package/dist/composables/useKeyboardNavigation.d.ts +47 -0
  53. package/dist/composables/useKeyboardNavigation.d.ts.map +1 -0
  54. package/dist/composables/useLoadingState.d.ts +36 -0
  55. package/dist/composables/useLoadingState.d.ts.map +1 -0
  56. package/dist/composables/usePagination.d.ts +45 -0
  57. package/dist/composables/usePagination.d.ts.map +1 -0
  58. package/dist/composables/useRowExpansion.d.ts +47 -0
  59. package/dist/composables/useRowExpansion.d.ts.map +1 -0
  60. package/dist/composables/useSearch.d.ts +97 -0
  61. package/dist/composables/useSearch.d.ts.map +1 -0
  62. package/dist/composables/useSelection.d.ts +32 -0
  63. package/dist/composables/useSelection.d.ts.map +1 -0
  64. package/dist/composables/useSorting.d.ts +859 -0
  65. package/dist/composables/useSorting.d.ts.map +1 -0
  66. package/dist/composables/useStatePersistence.d.ts +26 -0
  67. package/dist/composables/useStatePersistence.d.ts.map +1 -0
  68. package/dist/composables/useSummary.d.ts +49 -0
  69. package/dist/composables/useSummary.d.ts.map +1 -0
  70. package/dist/composables/useUndo.d.ts +27 -0
  71. package/dist/composables/useUndo.d.ts.map +1 -0
  72. package/dist/composables/useVirtualization.d.ts +40 -0
  73. package/dist/composables/useVirtualization.d.ts.map +1 -0
  74. package/dist/html2canvas.esm-1a1724a1.js +4886 -0
  75. package/dist/index-541cb5f8.js +38398 -0
  76. package/dist/index.d.ts +108 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.es-713282db.js +5771 -0
  79. package/dist/plugin.d.ts +22 -0
  80. package/dist/plugin.d.ts.map +1 -0
  81. package/dist/purify.es-35a15df8.js +480 -0
  82. package/dist/style.css +1 -0
  83. package/dist/tsdatagrid.es.js +358 -0
  84. package/dist/tsdatagrid.umd.js +450 -0
  85. package/dist/types/core/base.d.ts +143 -0
  86. package/dist/types/core/base.d.ts.map +1 -0
  87. package/dist/types/core/column.d.ts +354 -0
  88. package/dist/types/core/column.d.ts.map +1 -0
  89. package/dist/types/core/datasource.d.ts +247 -0
  90. package/dist/types/core/datasource.d.ts.map +1 -0
  91. package/dist/types/core/events.d.ts +297 -0
  92. package/dist/types/core/events.d.ts.map +1 -0
  93. package/dist/types/core/models.d.ts +74 -0
  94. package/dist/types/core/models.d.ts.map +1 -0
  95. package/dist/types/features/accessibility.d.ts +75 -0
  96. package/dist/types/features/accessibility.d.ts.map +1 -0
  97. package/dist/types/features/editing.d.ts +185 -0
  98. package/dist/types/features/editing.d.ts.map +1 -0
  99. package/dist/types/features/export.d.ts +145 -0
  100. package/dist/types/features/export.d.ts.map +1 -0
  101. package/dist/types/features/filtering.d.ts +193 -0
  102. package/dist/types/features/filtering.d.ts.map +1 -0
  103. package/dist/types/features/grouping.d.ts +148 -0
  104. package/dist/types/features/grouping.d.ts.map +1 -0
  105. package/dist/types/features/keyboard.d.ts +126 -0
  106. package/dist/types/features/keyboard.d.ts.map +1 -0
  107. package/dist/types/features/pagination.d.ts +85 -0
  108. package/dist/types/features/pagination.d.ts.map +1 -0
  109. package/dist/types/features/searching.d.ts +90 -0
  110. package/dist/types/features/searching.d.ts.map +1 -0
  111. package/dist/types/features/selection.d.ts +99 -0
  112. package/dist/types/features/selection.d.ts.map +1 -0
  113. package/dist/types/features/sorting.d.ts +81 -0
  114. package/dist/types/features/sorting.d.ts.map +1 -0
  115. package/dist/types/features/summary.d.ts +99 -0
  116. package/dist/types/features/summary.d.ts.map +1 -0
  117. package/dist/types/features/virtualization.d.ts +88 -0
  118. package/dist/types/features/virtualization.d.ts.map +1 -0
  119. package/dist/types/index.d.ts +60 -0
  120. package/dist/types/index.d.ts.map +1 -0
  121. package/dist/types/state/grid-state.d.ts +70 -0
  122. package/dist/types/state/grid-state.d.ts.map +1 -0
  123. package/dist/types/state/persistence.d.ts +65 -0
  124. package/dist/types/state/persistence.d.ts.map +1 -0
  125. package/dist/types/ui/styling.d.ts +72 -0
  126. package/dist/types/ui/styling.d.ts.map +1 -0
  127. package/dist/types/ui/templates.d.ts +80 -0
  128. package/dist/types/ui/templates.d.ts.map +1 -0
  129. package/dist/types/ui/toolbar.d.ts +63 -0
  130. package/dist/types/ui/toolbar.d.ts.map +1 -0
  131. package/dist/types/validation/validators.d.ts +134 -0
  132. package/dist/types/validation/validators.d.ts.map +1 -0
  133. package/dist/utils/accessibility.d.ts +35 -0
  134. package/dist/utils/accessibility.d.ts.map +1 -0
  135. package/dist/utils/array.d.ts +88 -0
  136. package/dist/utils/array.d.ts.map +1 -0
  137. package/dist/utils/cache.d.ts +92 -0
  138. package/dist/utils/cache.d.ts.map +1 -0
  139. package/dist/utils/clipboard.d.ts +25 -0
  140. package/dist/utils/clipboard.d.ts.map +1 -0
  141. package/dist/utils/column-searcher.d.ts +44 -0
  142. package/dist/utils/column-searcher.d.ts.map +1 -0
  143. package/dist/utils/constants.d.ts +76 -0
  144. package/dist/utils/constants.d.ts.map +1 -0
  145. package/dist/utils/date.d.ts +101 -0
  146. package/dist/utils/date.d.ts.map +1 -0
  147. package/dist/utils/dom.d.ts +128 -0
  148. package/dist/utils/dom.d.ts.map +1 -0
  149. package/dist/utils/error-handling.d.ts +190 -0
  150. package/dist/utils/error-handling.d.ts.map +1 -0
  151. package/dist/utils/export.d.ts +37 -0
  152. package/dist/utils/export.d.ts.map +1 -0
  153. package/dist/utils/formatters.d.ts +60 -0
  154. package/dist/utils/formatters.d.ts.map +1 -0
  155. package/dist/utils/index.d.ts +25 -0
  156. package/dist/utils/index.d.ts.map +1 -0
  157. package/dist/utils/keyboard.d.ts +58 -0
  158. package/dist/utils/keyboard.d.ts.map +1 -0
  159. package/dist/utils/logger.d.ts +45 -0
  160. package/dist/utils/logger.d.ts.map +1 -0
  161. package/dist/utils/number.d.ts +77 -0
  162. package/dist/utils/number.d.ts.map +1 -0
  163. package/dist/utils/object.d.ts +101 -0
  164. package/dist/utils/object.d.ts.map +1 -0
  165. package/dist/utils/odata.d.ts +87 -0
  166. package/dist/utils/odata.d.ts.map +1 -0
  167. package/dist/utils/performance.d.ts +75 -0
  168. package/dist/utils/performance.d.ts.map +1 -0
  169. package/dist/utils/storage.d.ts +83 -0
  170. package/dist/utils/storage.d.ts.map +1 -0
  171. package/dist/utils/string.d.ts +105 -0
  172. package/dist/utils/string.d.ts.map +1 -0
  173. package/dist/utils/validators.d.ts +60 -0
  174. package/dist/utils/validators.d.ts.map +1 -0
  175. package/package.json +90 -0
@@ -0,0 +1,148 @@
1
+ import { ColumnField } from '../core/base';
2
+ import { ColumnDefinition } from '../core/column';
3
+
4
+ /**
5
+ * Aggregate function
6
+ */
7
+ export declare const enum AggregateFunction {
8
+ Sum = "sum",
9
+ Avg = "avg",
10
+ Min = "min",
11
+ Max = "max",
12
+ Count = "count",
13
+ DistinctCount = "distinctCount",
14
+ Median = "median",
15
+ StdDev = "stdDev",
16
+ Variance = "variance",
17
+ First = "first",
18
+ Last = "last",
19
+ Custom = "custom"
20
+ }
21
+ /**
22
+ * Aggregate descriptor
23
+ */
24
+ export interface AggregateDescriptor {
25
+ /** Field name */
26
+ field: ColumnField | string;
27
+ /** Aggregate function */
28
+ aggregate: AggregateFunction;
29
+ /** Display format */
30
+ format?: string;
31
+ /** Custom calculation */
32
+ customCalculation?: (data: any[], field: string) => any;
33
+ /** Formatter */
34
+ formatter?: (value: any) => string;
35
+ }
36
+ /**
37
+ * Group descriptor
38
+ */
39
+ export interface GroupDescriptor {
40
+ /** Field name */
41
+ field: ColumnField | string;
42
+ /** Expanded by default */
43
+ expanded?: boolean;
44
+ /** Sort direction */
45
+ sortDirection?: 'asc' | 'desc';
46
+ /** Group index */
47
+ index?: number;
48
+ /** Aggregates */
49
+ aggregates?: AggregateDescriptor[];
50
+ /** Custom group value */
51
+ groupValue?: (item: any) => any;
52
+ /** Custom group key */
53
+ groupKey?: (item: any) => string;
54
+ /** Column definition */
55
+ column?: ColumnDefinition;
56
+ }
57
+ /**
58
+ * Grouped row
59
+ */
60
+ export interface GroupedRow<T = any> {
61
+ /** Group key */
62
+ key: string;
63
+ /** Group field */
64
+ field: ColumnField | string;
65
+ /** Group value */
66
+ value: any;
67
+ /** Items in group */
68
+ items: T[];
69
+ /** Group level (0-based) */
70
+ level: number;
71
+ /** Expanded state */
72
+ expanded: boolean;
73
+ /** Is group row */
74
+ isGroup: boolean;
75
+ /** Count */
76
+ count: number;
77
+ /** Aggregates */
78
+ aggregates?: Record<string, any>;
79
+ /** Summary */
80
+ summary?: GroupSummary;
81
+ /** Children groups */
82
+ children?: GroupedRow<T>[];
83
+ }
84
+ /**
85
+ * Group summary
86
+ */
87
+ export interface GroupSummary {
88
+ /** Count */
89
+ count: number;
90
+ /** Aggregate values */
91
+ aggregates: Record<string, any>;
92
+ }
93
+ /**
94
+ * Grouping configuration
95
+ */
96
+ export interface GroupingConfig {
97
+ /** Enable grouping */
98
+ enabled?: boolean;
99
+ /** Auto expand all groups */
100
+ autoExpandAll?: boolean;
101
+ /** Allow collapsing */
102
+ allowCollapsing?: boolean;
103
+ /** Group panel visible */
104
+ groupPanelVisible?: boolean;
105
+ /** Show group column */
106
+ showGroupColumn?: boolean;
107
+ /** Group column width */
108
+ groupColumnWidth?: number;
109
+ /** Expand mode */
110
+ expandMode?: 'rowClick' | 'buttonClick';
111
+ /** Default expanded level */
112
+ defaultExpandedLevel?: number;
113
+ /** Summary position */
114
+ summaryPosition?: 'footer' | 'header' | 'both';
115
+ }
116
+ /**
117
+ * Grouping state
118
+ */
119
+ export interface GroupingState {
120
+ /** Group descriptors */
121
+ descriptors: GroupDescriptor[];
122
+ /** Grouped data */
123
+ groupedData: GroupedRow[];
124
+ /** Expanded groups */
125
+ expandedGroups: Set<string>;
126
+ /** Collapsed groups */
127
+ collapsedGroups: Set<string>;
128
+ }
129
+ /**
130
+ * Group panel item
131
+ */
132
+ export interface GroupPanelItem {
133
+ /** Field name */
134
+ field: ColumnField | string;
135
+ /** Display text */
136
+ text: string;
137
+ /** Sort direction */
138
+ sortDirection?: 'asc' | 'desc';
139
+ /** Index */
140
+ index: number;
141
+ /** Removable */
142
+ removable?: boolean;
143
+ }
144
+ /**
145
+ * Type guard: Check if row is grouped row
146
+ */
147
+ export declare function isGroupedRow(row: any): row is GroupedRow;
148
+ //# sourceMappingURL=grouping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../../../src/types/features/grouping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import { RowKey, ColumnField } from '../core/base';
2
+
3
+ /**
4
+ * Keyboard key
5
+ */
6
+ export declare const enum Key {
7
+ ArrowUp = "ArrowUp",
8
+ ArrowDown = "ArrowDown",
9
+ ArrowLeft = "ArrowLeft",
10
+ ArrowRight = "ArrowRight",
11
+ Enter = "Enter",
12
+ Escape = "Escape",
13
+ Tab = "Tab",
14
+ Space = "Space",
15
+ Home = "Home",
16
+ End = "End",
17
+ PageUp = "PageUp",
18
+ PageDown = "PageDown",
19
+ Delete = "Delete",
20
+ Backspace = "Backspace",
21
+ F2 = "F2",
22
+ A = "a",
23
+ C = "c",
24
+ V = "v",
25
+ X = "x",
26
+ Z = "z",
27
+ Y = "y"
28
+ }
29
+ /**
30
+ * Keyboard action
31
+ */
32
+ export declare const enum KeyboardAction {
33
+ NavigateUp = "navigateUp",
34
+ NavigateDown = "navigateDown",
35
+ NavigateLeft = "navigateLeft",
36
+ NavigateRight = "navigateRight",
37
+ NavigateFirst = "navigateFirst",
38
+ NavigateLast = "navigateLast",
39
+ NavigatePageUp = "navigatePageUp",
40
+ NavigatePageDown = "navigatePageDown",
41
+ SelectRow = "selectRow",
42
+ SelectAll = "selectAll",
43
+ DeselectAll = "deselectAll",
44
+ EditCell = "editCell",
45
+ SaveEdit = "saveEdit",
46
+ CancelEdit = "cancelEdit",
47
+ DeleteRow = "deleteRow",
48
+ Copy = "copy",
49
+ Paste = "paste",
50
+ Cut = "cut",
51
+ Undo = "undo",
52
+ Redo = "redo",
53
+ ExpandGroup = "expandGroup",
54
+ CollapseGroup = "collapseGroup"
55
+ }
56
+ /**
57
+ * Keyboard shortcut
58
+ */
59
+ export interface KeyboardShortcut {
60
+ /** Key */
61
+ key: Key | string;
62
+ /** Ctrl key */
63
+ ctrlKey?: boolean;
64
+ /** Shift key */
65
+ shiftKey?: boolean;
66
+ /** Alt key */
67
+ altKey?: boolean;
68
+ /** Meta key */
69
+ metaKey?: boolean;
70
+ /** Action */
71
+ action: KeyboardAction;
72
+ /** Description */
73
+ description?: string;
74
+ /** Enabled */
75
+ enabled?: boolean;
76
+ }
77
+ /**
78
+ * Focus position
79
+ */
80
+ export interface FocusPosition {
81
+ /** Row key */
82
+ rowKey: RowKey;
83
+ /** Column field */
84
+ columnField: ColumnField;
85
+ /** Row index */
86
+ rowIndex: number;
87
+ /** Column index */
88
+ columnIndex: number;
89
+ }
90
+ /**
91
+ * Keyboard navigation configuration
92
+ */
93
+ export interface KeyboardNavigationConfig {
94
+ /** Enable keyboard navigation */
95
+ enabled?: boolean;
96
+ /** Enable cell navigation */
97
+ cellNavigation?: boolean;
98
+ /** Enable row navigation */
99
+ rowNavigation?: boolean;
100
+ /** Enable editing shortcuts */
101
+ editingShortcuts?: boolean;
102
+ /** Enable selection shortcuts */
103
+ selectionShortcuts?: boolean;
104
+ /** Enable clipboard shortcuts */
105
+ clipboardShortcuts?: boolean;
106
+ /** Custom shortcuts */
107
+ customShortcuts?: KeyboardShortcut[];
108
+ /** Enter key action */
109
+ enterKeyAction?: 'startEdit' | 'moveFocus' | 'none';
110
+ /** Enter key direction */
111
+ enterKeyDirection?: 'down' | 'right' | 'none';
112
+ /** Edit on key press */
113
+ editOnKeyPress?: boolean;
114
+ }
115
+ /**
116
+ * Keyboard navigation state
117
+ */
118
+ export interface KeyboardNavigationState {
119
+ /** Focused position */
120
+ focusedPosition: FocusPosition | null;
121
+ /** Focus visible */
122
+ focusVisible: boolean;
123
+ /** Active shortcuts */
124
+ activeShortcuts: KeyboardShortcut[];
125
+ }
126
+ //# sourceMappingURL=keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../src/types/features/keyboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @fileoverview Pagination types
3
+ * @module @tsdatagrid/types/features/pagination
4
+ */
5
+ /**
6
+ * Pagination mode
7
+ */
8
+ export declare const enum PaginationMode {
9
+ /** Client-side pagination */
10
+ Client = "client",
11
+ /** Server-side pagination */
12
+ Server = "server",
13
+ /** Virtual scrolling (infinite) */
14
+ Virtual = "virtual"
15
+ }
16
+ /**
17
+ * Pagination configuration
18
+ */
19
+ export interface PaginationConfig {
20
+ /** Enable pagination */
21
+ enabled?: boolean;
22
+ /** Pagination mode */
23
+ mode?: PaginationMode;
24
+ /** Page size */
25
+ pageSize?: number;
26
+ /** Available page sizes */
27
+ pageSizes?: number[];
28
+ /** Show page size selector */
29
+ showPageSizes?: boolean;
30
+ /** Show pagination info */
31
+ showInfo?: boolean;
32
+ /** Show first/last buttons */
33
+ showFirstLast?: boolean;
34
+ /** Show previous/next buttons */
35
+ showPrevNext?: boolean;
36
+ /** Max visible pages */
37
+ maxVisiblePages?: number;
38
+ /** Info template */
39
+ infoTemplate?: string;
40
+ /** Current page (1-based) */
41
+ page?: number;
42
+ /** Total pages */
43
+ totalPages?: number;
44
+ /** Total items */
45
+ total?: number;
46
+ }
47
+ /**
48
+ * Pagination state
49
+ */
50
+ export interface PaginationState {
51
+ /** Current page (1-based) */
52
+ page: number;
53
+ /** Page size */
54
+ pageSize: number;
55
+ /** Total items */
56
+ totalItems: number;
57
+ /** Total pages */
58
+ totalPages: number;
59
+ /** Start index (0-based) */
60
+ startIndex: number;
61
+ /** End index (0-based) */
62
+ endIndex: number;
63
+ /** Has previous page */
64
+ hasPrevious: boolean;
65
+ /** Has next page */
66
+ hasNext: boolean;
67
+ /** Visible page numbers */
68
+ visiblePages: number[];
69
+ }
70
+ /**
71
+ * Page change event
72
+ */
73
+ export interface PageChangeEvent {
74
+ /** New page */
75
+ page: number;
76
+ /** Page size */
77
+ pageSize: number;
78
+ /** Previous page */
79
+ previousPage: number;
80
+ /** Skip count */
81
+ skip: number;
82
+ /** Take count */
83
+ take: number;
84
+ }
85
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/types/features/pagination.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,0BAAkB,cAAc;IAC9B,6BAA6B;IAC7B,MAAM,WAAW;IAEjB,6BAA6B;IAC7B,MAAM,WAAW;IAEjB,mCAAmC;IACnC,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,sBAAsB;IACtB,IAAI,CAAC,EAAE,cAAc,CAAA;IAErB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IAEpB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAA;IAEZ,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAEhB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAA;IAElB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAA;IAElB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAA;IAElB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAEhB,wBAAwB;IACxB,WAAW,EAAE,OAAO,CAAA;IAEpB,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAA;IAEhB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe;IACf,IAAI,EAAE,MAAM,CAAA;IAEZ,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAEhB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAA;IAEpB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IAEZ,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;CACb"}
@@ -0,0 +1,90 @@
1
+ import { ColumnField } from '../core/base';
2
+
3
+ /**
4
+ * Search mode
5
+ */
6
+ export declare const enum SearchMode {
7
+ /** Contains */
8
+ Contains = "contains",
9
+ /** Starts with */
10
+ StartsWith = "startsWith",
11
+ /** Equals */
12
+ Equals = "equals",
13
+ /** Full-text search */
14
+ FullText = "fulltext"
15
+ }
16
+ /**
17
+ * Search configuration
18
+ */
19
+ export interface SearchConfig {
20
+ /** Enable search */
21
+ enabled: boolean;
22
+ /** Search fields */
23
+ fields?: ColumnField[];
24
+ /** Search mode */
25
+ mode?: SearchMode;
26
+ /** Case sensitive */
27
+ caseSensitive?: boolean;
28
+ /** Debounce delay (ms) */
29
+ debounce?: number;
30
+ /** Minimum length */
31
+ minLength?: number;
32
+ /** Highlight results */
33
+ highlight?: boolean;
34
+ /** Highlight class */
35
+ highlightClass?: string;
36
+ /** Show match count */
37
+ showMatchCount?: boolean;
38
+ /** Search placeholder */
39
+ placeholder?: string;
40
+ }
41
+ /**
42
+ * Search match
43
+ */
44
+ export interface SearchMatch {
45
+ /** Field name */
46
+ field: string;
47
+ /** Field value */
48
+ value: any;
49
+ /** Match text */
50
+ match: string;
51
+ /** Start index */
52
+ startIndex: number;
53
+ /** End index */
54
+ endIndex: number;
55
+ /** Match score */
56
+ score?: number;
57
+ }
58
+ /**
59
+ * Search result
60
+ */
61
+ export interface SearchResult<T = any> {
62
+ /** Row data */
63
+ row: T;
64
+ /** Row key */
65
+ rowKey: any;
66
+ /** Overall score */
67
+ score: number;
68
+ /** Matches */
69
+ matches: SearchMatch[];
70
+ /** Highlighted row */
71
+ highlightedRow?: T;
72
+ }
73
+ /**
74
+ * Search state
75
+ */
76
+ export interface SearchState {
77
+ /** Search term */
78
+ term: string;
79
+ /** Search results */
80
+ results: SearchResult[];
81
+ /** Total matches */
82
+ totalMatches: number;
83
+ /** Is searching */
84
+ isSearching: boolean;
85
+ /** Highlighted rows */
86
+ highlightedRows: Set<any>;
87
+ /** Active match index */
88
+ activeMatchIndex?: number;
89
+ }
90
+ //# sourceMappingURL=searching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searching.d.ts","sourceRoot":"","sources":["../../../src/types/features/searching.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;GAEG;AACH,0BAAkB,UAAU;IAC1B,eAAe;IACf,QAAQ,aAAa;IAErB,kBAAkB;IAClB,UAAU,eAAe;IAEzB,aAAa;IACb,MAAM,WAAW;IAEjB,uBAAuB;IACvB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAA;IAEhB,oBAAoB;IACpB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IAEtB,kBAAkB;IAClB,IAAI,CAAC,EAAE,UAAU,CAAA;IAEjB,qBAAqB;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,uBAAuB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IAEb,kBAAkB;IAClB,KAAK,EAAE,GAAG,CAAA;IAEV,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IAEb,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAA;IAElB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAEhB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACnC,eAAe;IACf,GAAG,EAAE,CAAC,CAAA;IAEN,cAAc;IACd,MAAM,EAAE,GAAG,CAAA;IAEX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAA;IAEb,cAAc;IACd,OAAO,EAAE,WAAW,EAAE,CAAA;IAEtB,sBAAsB;IACtB,cAAc,CAAC,EAAE,CAAC,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAA;IAEZ,qBAAqB;IACrB,OAAO,EAAE,YAAY,EAAE,CAAA;IAEvB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAA;IAEpB,mBAAmB;IACnB,WAAW,EAAE,OAAO,CAAA;IAEpB,uBAAuB;IACvB,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;IAEzB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B"}
@@ -0,0 +1,99 @@
1
+ import { RowKey } from '../core/base';
2
+
3
+ /**
4
+ * Selection mode type
5
+ */
6
+ export declare const enum SelectionModeType {
7
+ /** No selection */
8
+ None = "none",
9
+ /** Single row selection */
10
+ Single = "single",
11
+ /** Multiple row selection */
12
+ Multiple = "multiple"
13
+ }
14
+ /**
15
+ * Selection persistence
16
+ */
17
+ export declare const enum SelectionPersistence {
18
+ /** Per page */
19
+ Page = "page",
20
+ /** Across all data */
21
+ Data = "data",
22
+ /** Session storage */
23
+ Session = "session",
24
+ /** Local storage */
25
+ Local = "local"
26
+ }
27
+ /**
28
+ * Selection mode configuration
29
+ */
30
+ export interface SelectionMode {
31
+ /** Mode type */
32
+ mode: SelectionModeType;
33
+ /** Show checkboxes */
34
+ checkboxes?: boolean;
35
+ /** Checkbox position */
36
+ checkboxPosition?: 'left' | 'right';
37
+ /** Allow select all */
38
+ allowSelectAll?: boolean;
39
+ /** Select on row click */
40
+ selectOnRowClick?: boolean;
41
+ /** Deselect on row click */
42
+ deselectOnRowClick?: boolean;
43
+ /** Persistence mode */
44
+ persistence?: SelectionPersistence;
45
+ /** Key field */
46
+ keyField?: string;
47
+ /** Show selection column */
48
+ showSelectionColumn?: boolean;
49
+ /** Selection column width */
50
+ selectionColumnWidth?: number;
51
+ }
52
+ /**
53
+ * Selection state
54
+ */
55
+ export interface SelectionState {
56
+ /** Selected keys */
57
+ selectedKeys: Set<RowKey>;
58
+ /** Selected indices (page-based) */
59
+ selectedIndices: Set<number>;
60
+ /** Selected rows */
61
+ selectedRows: any[];
62
+ /** Selection mode */
63
+ mode: SelectionModeType;
64
+ /** All selected (for current page/data) */
65
+ allSelected?: boolean;
66
+ /** Some selected (for current page/data) */
67
+ someSelected?: boolean;
68
+ }
69
+ /**
70
+ * Selection configuration
71
+ */
72
+ export interface SelectionConfig {
73
+ /** Enable selection */
74
+ enabled?: boolean;
75
+ /** Selection mode */
76
+ mode?: SelectionMode;
77
+ /** Allowed selection callback */
78
+ allowSelection?: (row: any) => boolean;
79
+ /** Maximum selections */
80
+ maxSelections?: number;
81
+ }
82
+ /**
83
+ * Selection change event
84
+ */
85
+ export interface SelectionChangeEvent<T = any> {
86
+ /** Selected keys */
87
+ selectedKeys: RowKey[];
88
+ /** Selected rows */
89
+ selectedRows: T[];
90
+ /** Added keys */
91
+ addedKeys: RowKey[];
92
+ /** Removed keys */
93
+ removedKeys: RowKey[];
94
+ /** Added rows */
95
+ addedRows: T[];
96
+ /** Removed rows */
97
+ removedRows: T[];
98
+ }
99
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../src/types/features/selection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C;;GAEG;AACH,0BAAkB,iBAAiB;IACjC,mBAAmB;IACnB,IAAI,SAAS;IAEb,2BAA2B;IAC3B,MAAM,WAAW;IAEjB,6BAA6B;IAC7B,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,0BAAkB,oBAAoB;IACpC,eAAe;IACf,IAAI,SAAS;IAEb,sBAAsB;IACtB,IAAI,SAAS;IAEb,sBAAsB;IACtB,OAAO,YAAY;IAEnB,oBAAoB;IACpB,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gBAAgB;IAChB,IAAI,EAAE,iBAAiB,CAAA;IAEvB,sBAAsB;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAEnC,uBAAuB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB,0BAA0B;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,4BAA4B;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B,uBAAuB;IACvB,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAElC,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAEzB,oCAAoC;IACpC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAE5B,oBAAoB;IACpB,YAAY,EAAE,GAAG,EAAE,CAAA;IAEnB,qBAAqB;IACrB,IAAI,EAAE,iBAAiB,CAAA;IAEvB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAA;IAEpB,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAA;IAEtC,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAC3C,oBAAoB;IACpB,YAAY,EAAE,MAAM,EAAE,CAAA;IAEtB,oBAAoB;IACpB,YAAY,EAAE,CAAC,EAAE,CAAA;IAEjB,iBAAiB;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;IAEnB,mBAAmB;IACnB,WAAW,EAAE,MAAM,EAAE,CAAA;IAErB,iBAAiB;IACjB,SAAS,EAAE,CAAC,EAAE,CAAA;IAEd,mBAAmB;IACnB,WAAW,EAAE,CAAC,EAAE,CAAA;CACjB"}
@@ -0,0 +1,81 @@
1
+ import { ColumnField, Comparator } from '../core/base';
2
+ import { ColumnDefinition } from '../core/column';
3
+
4
+ /**
5
+ * Sort direction
6
+ */
7
+ export declare const enum SortDirection {
8
+ Ascending = "asc",
9
+ Descending = "desc"
10
+ }
11
+ /**
12
+ * Sort descriptor
13
+ */
14
+ export interface SortDescriptor {
15
+ /** Field name */
16
+ field: ColumnField | string;
17
+ /** Sort direction */
18
+ direction: SortDirection;
19
+ /** Sort index (for multi-sort) */
20
+ index?: number;
21
+ /** Custom comparator */
22
+ comparator?: Comparator<any>;
23
+ /** Column definition */
24
+ column?: ColumnDefinition;
25
+ }
26
+ /**
27
+ * Sort state
28
+ */
29
+ export interface SortState {
30
+ /** Sort descriptors */
31
+ descriptors: SortDescriptor[];
32
+ /** Multi-sort enabled */
33
+ multiSort: boolean;
34
+ }
35
+ /**
36
+ * Sort mode
37
+ */
38
+ export declare const enum SortMode {
39
+ /** Single column sort */
40
+ Single = "single",
41
+ /** Multiple column sort */
42
+ Multiple = "multiple"
43
+ }
44
+ /**
45
+ * Sort configuration
46
+ */
47
+ export interface SortingConfig {
48
+ /** Enable sorting */
49
+ enabled?: boolean;
50
+ /** Sort mode */
51
+ mode?: SortMode;
52
+ /** Allow unsort (clear sort) */
53
+ allowUnsort?: boolean;
54
+ /** Show sort index for multi-sort */
55
+ showSortIndex?: boolean;
56
+ /** Ascending by default */
57
+ ascendingByDefault?: boolean;
58
+ /** Max sort levels */
59
+ maxSortLevels?: number;
60
+ /** Sort null values first */
61
+ sortNullsFirst?: boolean;
62
+ /** Case sensitive sorting */
63
+ caseSensitive?: boolean;
64
+ }
65
+ /**
66
+ * Sort cycle
67
+ */
68
+ export type SortCycle = [null, SortDirection.Ascending, SortDirection.Descending];
69
+ /**
70
+ * Sort comparer function
71
+ */
72
+ export type SortComparer<T = any> = (a: T, b: T, direction: SortDirection) => number;
73
+ /**
74
+ * Type guard: Check if value is SortDescriptor
75
+ */
76
+ export declare function isSortDescriptor(value: any): value is SortDescriptor;
77
+ /**
78
+ * Toggle sort direction
79
+ */
80
+ export declare function toggleSortDirection(current: SortDirection | null, allowUnsort?: boolean): SortDirection | null;
81
+ //# sourceMappingURL=sorting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sorting.d.ts","sourceRoot":"","sources":["../../../src/types/features/sorting.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD;;GAEG;AACH,0BAAkB,aAAa;IAC7B,SAAS,QAAQ;IACjB,UAAU,SAAS;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iBAAiB;IACjB,KAAK,EAAE,WAAW,GAAG,MAAM,CAAA;IAE3B,qBAAqB;IACrB,SAAS,EAAE,aAAa,CAAA;IAExB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,wBAAwB;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;IAE5B,wBAAwB;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uBAAuB;IACvB,WAAW,EAAE,cAAc,EAAE,CAAA;IAE7B,yBAAyB;IACzB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,0BAAkB,QAAQ;IACxB,yBAAyB;IACzB,MAAM,WAAW;IAEjB,2BAA2B;IAC3B,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,gBAAgB;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAA;IAEf,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B,sBAAsB;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;AAEjF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,KAAK,MAAM,CAAA;AAEpF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAEpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,GAAG,IAAI,EAC7B,WAAW,UAAO,GACjB,aAAa,GAAG,IAAI,CAItB"}