@zengrid/core 1.0.1

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 (252) hide show
  1. package/README.md +55 -0
  2. package/dist/README.md +55 -0
  3. package/dist/index.cjs.default.js +1 -0
  4. package/dist/index.cjs.js +9882 -0
  5. package/dist/index.cjs.mjs +2 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.esm.js +9847 -0
  8. package/dist/package.json +49 -0
  9. package/dist/src/a11y/aria-manager.d.ts +171 -0
  10. package/dist/src/a11y/aria-manager.d.ts.map +1 -0
  11. package/dist/src/a11y/focus-manager.d.ts +124 -0
  12. package/dist/src/a11y/focus-manager.d.ts.map +1 -0
  13. package/dist/src/a11y/index.d.ts +8 -0
  14. package/dist/src/a11y/index.d.ts.map +1 -0
  15. package/dist/src/data/data-accessor/array-accessor.d.ts +38 -0
  16. package/dist/src/data/data-accessor/array-accessor.d.ts.map +1 -0
  17. package/dist/src/data/data-accessor/column-store-accessor.d.ts +41 -0
  18. package/dist/src/data/data-accessor/column-store-accessor.d.ts.map +1 -0
  19. package/dist/src/data/data-accessor/data-accessor.interface.d.ts +41 -0
  20. package/dist/src/data/data-accessor/data-accessor.interface.d.ts.map +1 -0
  21. package/dist/src/data/data-accessor/index.d.ts +9 -0
  22. package/dist/src/data/data-accessor/index.d.ts.map +1 -0
  23. package/dist/src/data/data-accessor/sparse-matrix-accessor.d.ts +39 -0
  24. package/dist/src/data/data-accessor/sparse-matrix-accessor.d.ts.map +1 -0
  25. package/dist/src/data/data-manager.d.ts +161 -0
  26. package/dist/src/data/data-manager.d.ts.map +1 -0
  27. package/dist/src/data/data-source.interface.d.ts +82 -0
  28. package/dist/src/data/data-source.interface.d.ts.map +1 -0
  29. package/dist/src/data/grid-data-model.d.ts +102 -0
  30. package/dist/src/data/grid-data-model.d.ts.map +1 -0
  31. package/dist/src/data/index-map/index-map.d.ts +30 -0
  32. package/dist/src/data/index-map/index-map.d.ts.map +1 -0
  33. package/dist/src/data/index-map/index-map.interface.d.ts +49 -0
  34. package/dist/src/data/index-map/index-map.interface.d.ts.map +1 -0
  35. package/dist/src/data/index-map/index.d.ts +7 -0
  36. package/dist/src/data/index-map/index.d.ts.map +1 -0
  37. package/dist/src/data/index.d.ts +9 -0
  38. package/dist/src/data/index.d.ts.map +1 -0
  39. package/dist/src/editing/cell-editor.interface.d.ts +87 -0
  40. package/dist/src/editing/cell-editor.interface.d.ts.map +1 -0
  41. package/dist/src/editing/date-editor.d.ts +67 -0
  42. package/dist/src/editing/date-editor.d.ts.map +1 -0
  43. package/dist/src/editing/editor-manager.d.ts +141 -0
  44. package/dist/src/editing/editor-manager.d.ts.map +1 -0
  45. package/dist/src/editing/index.d.ts +15 -0
  46. package/dist/src/editing/index.d.ts.map +1 -0
  47. package/dist/src/editing/number-editor.d.ts +68 -0
  48. package/dist/src/editing/number-editor.d.ts.map +1 -0
  49. package/dist/src/editing/select-editor.d.ts +53 -0
  50. package/dist/src/editing/select-editor.d.ts.map +1 -0
  51. package/dist/src/editing/text-editor.d.ts +69 -0
  52. package/dist/src/editing/text-editor.d.ts.map +1 -0
  53. package/dist/src/events/event-emitter.d.ts +90 -0
  54. package/dist/src/events/event-emitter.d.ts.map +1 -0
  55. package/dist/src/events/grid-events.d.ts +277 -0
  56. package/dist/src/events/grid-events.d.ts.map +1 -0
  57. package/dist/src/events/index.d.ts +6 -0
  58. package/dist/src/events/index.d.ts.map +1 -0
  59. package/dist/src/features/autofill/autofill-manager.d.ts +103 -0
  60. package/dist/src/features/autofill/autofill-manager.d.ts.map +1 -0
  61. package/dist/src/features/autofill/index.d.ts +6 -0
  62. package/dist/src/features/autofill/index.d.ts.map +1 -0
  63. package/dist/src/features/column-resize/auto-fit-calculator.d.ts +52 -0
  64. package/dist/src/features/column-resize/auto-fit-calculator.d.ts.map +1 -0
  65. package/dist/src/features/column-resize/column-resize-manager.d.ts +114 -0
  66. package/dist/src/features/column-resize/column-resize-manager.d.ts.map +1 -0
  67. package/dist/src/features/column-resize/column-resize-manager.interface.d.ts +167 -0
  68. package/dist/src/features/column-resize/column-resize-manager.interface.d.ts.map +1 -0
  69. package/dist/src/features/column-resize/column-resize.styles.css +30 -0
  70. package/dist/src/features/column-resize/index.d.ts +15 -0
  71. package/dist/src/features/column-resize/index.d.ts.map +1 -0
  72. package/dist/src/features/column-resize/resize-constraint-manager.d.ts +52 -0
  73. package/dist/src/features/column-resize/resize-constraint-manager.d.ts.map +1 -0
  74. package/dist/src/features/column-resize/resize-handle-renderer.d.ts +41 -0
  75. package/dist/src/features/column-resize/resize-handle-renderer.d.ts.map +1 -0
  76. package/dist/src/features/column-resize/resize-preview.d.ts +32 -0
  77. package/dist/src/features/column-resize/resize-preview.d.ts.map +1 -0
  78. package/dist/src/features/column-resize/resize-state-manager.d.ts +75 -0
  79. package/dist/src/features/column-resize/resize-state-manager.d.ts.map +1 -0
  80. package/dist/src/features/column-resize/resize-strategies.d.ts +26 -0
  81. package/dist/src/features/column-resize/resize-strategies.d.ts.map +1 -0
  82. package/dist/src/features/column-resize/resize-test-helper.d.ts +71 -0
  83. package/dist/src/features/column-resize/resize-test-helper.d.ts.map +1 -0
  84. package/dist/src/features/column-resize/resize-zone-detector.d.ts +32 -0
  85. package/dist/src/features/column-resize/resize-zone-detector.d.ts.map +1 -0
  86. package/dist/src/features/copy-paste/clipboard-manager.d.ts +116 -0
  87. package/dist/src/features/copy-paste/clipboard-manager.d.ts.map +1 -0
  88. package/dist/src/features/copy-paste/index.d.ts +6 -0
  89. package/dist/src/features/copy-paste/index.d.ts.map +1 -0
  90. package/dist/src/features/filtering/adapters/adapter.interface.d.ts +100 -0
  91. package/dist/src/features/filtering/adapters/adapter.interface.d.ts.map +1 -0
  92. package/dist/src/features/filtering/adapters/graphql-adapter.d.ts +124 -0
  93. package/dist/src/features/filtering/adapters/graphql-adapter.d.ts.map +1 -0
  94. package/dist/src/features/filtering/adapters/index.d.ts +11 -0
  95. package/dist/src/features/filtering/adapters/index.d.ts.map +1 -0
  96. package/dist/src/features/filtering/adapters/rest-adapter.d.ts +108 -0
  97. package/dist/src/features/filtering/adapters/rest-adapter.d.ts.map +1 -0
  98. package/dist/src/features/filtering/adapters/sql-adapter.d.ts +123 -0
  99. package/dist/src/features/filtering/adapters/sql-adapter.d.ts.map +1 -0
  100. package/dist/src/features/filtering/adapters/types.d.ts +201 -0
  101. package/dist/src/features/filtering/adapters/types.d.ts.map +1 -0
  102. package/dist/src/features/filtering/column-filter.d.ts +117 -0
  103. package/dist/src/features/filtering/column-filter.d.ts.map +1 -0
  104. package/dist/src/features/filtering/filter-autocomplete.d.ts +78 -0
  105. package/dist/src/features/filtering/filter-autocomplete.d.ts.map +1 -0
  106. package/dist/src/features/filtering/filter-cache.d.ts +113 -0
  107. package/dist/src/features/filtering/filter-cache.d.ts.map +1 -0
  108. package/dist/src/features/filtering/filter-compiler.d.ts +66 -0
  109. package/dist/src/features/filtering/filter-compiler.d.ts.map +1 -0
  110. package/dist/src/features/filtering/filter-export-manager.d.ts +131 -0
  111. package/dist/src/features/filtering/filter-export-manager.d.ts.map +1 -0
  112. package/dist/src/features/filtering/filter-index-manager.d.ts +126 -0
  113. package/dist/src/features/filtering/filter-index-manager.d.ts.map +1 -0
  114. package/dist/src/features/filtering/filter-manager.d.ts +408 -0
  115. package/dist/src/features/filtering/filter-manager.d.ts.map +1 -0
  116. package/dist/src/features/filtering/filter-optimizer.d.ts +101 -0
  117. package/dist/src/features/filtering/filter-optimizer.d.ts.map +1 -0
  118. package/dist/src/features/filtering/filter-query-parser.d.ts +69 -0
  119. package/dist/src/features/filtering/filter-query-parser.d.ts.map +1 -0
  120. package/dist/src/features/filtering/index.d.ts +20 -0
  121. package/dist/src/features/filtering/index.d.ts.map +1 -0
  122. package/dist/src/features/filtering/range-filter-optimizer.d.ts +138 -0
  123. package/dist/src/features/filtering/range-filter-optimizer.d.ts.map +1 -0
  124. package/dist/src/features/filtering/substring-filter.d.ts +90 -0
  125. package/dist/src/features/filtering/substring-filter.d.ts.map +1 -0
  126. package/dist/src/features/filtering/types.d.ts +204 -0
  127. package/dist/src/features/filtering/types.d.ts.map +1 -0
  128. package/dist/src/features/formulas/formula-calculator.d.ts +151 -0
  129. package/dist/src/features/formulas/formula-calculator.d.ts.map +1 -0
  130. package/dist/src/features/formulas/index.d.ts +6 -0
  131. package/dist/src/features/formulas/index.d.ts.map +1 -0
  132. package/dist/src/features/hit-testing/index.d.ts +7 -0
  133. package/dist/src/features/hit-testing/index.d.ts.map +1 -0
  134. package/dist/src/features/hit-testing/spatial-hit-tester.d.ts +137 -0
  135. package/dist/src/features/hit-testing/spatial-hit-tester.d.ts.map +1 -0
  136. package/dist/src/features/loading/index.d.ts +5 -0
  137. package/dist/src/features/loading/index.d.ts.map +1 -0
  138. package/dist/src/features/loading/loading-indicator.d.ts +79 -0
  139. package/dist/src/features/loading/loading-indicator.d.ts.map +1 -0
  140. package/dist/src/features/loading/loading.styles.css +413 -0
  141. package/dist/src/features/pagination/index.d.ts +5 -0
  142. package/dist/src/features/pagination/index.d.ts.map +1 -0
  143. package/dist/src/features/pagination/pagination.styles.css +288 -0
  144. package/dist/src/features/pagination/paginator.d.ts +89 -0
  145. package/dist/src/features/pagination/paginator.d.ts.map +1 -0
  146. package/dist/src/features/selection/index.d.ts +7 -0
  147. package/dist/src/features/selection/index.d.ts.map +1 -0
  148. package/dist/src/features/selection/selection-manager.d.ts +167 -0
  149. package/dist/src/features/selection/selection-manager.d.ts.map +1 -0
  150. package/dist/src/features/sorting/index.d.ts +13 -0
  151. package/dist/src/features/sorting/index.d.ts.map +1 -0
  152. package/dist/src/features/sorting/row-sorter.interface.d.ts +63 -0
  153. package/dist/src/features/sorting/row-sorter.interface.d.ts.map +1 -0
  154. package/dist/src/features/sorting/single-column-sorter.d.ts +75 -0
  155. package/dist/src/features/sorting/single-column-sorter.d.ts.map +1 -0
  156. package/dist/src/features/sorting/sort-manager.d.ts +132 -0
  157. package/dist/src/features/sorting/sort-manager.d.ts.map +1 -0
  158. package/dist/src/features/undo-redo/index.d.ts +8 -0
  159. package/dist/src/features/undo-redo/index.d.ts.map +1 -0
  160. package/dist/src/features/undo-redo/undo-redo-manager.d.ts +215 -0
  161. package/dist/src/features/undo-redo/undo-redo-manager.d.ts.map +1 -0
  162. package/dist/src/grid.d.ts +412 -0
  163. package/dist/src/grid.d.ts.map +1 -0
  164. package/dist/src/i18n/index.d.ts +8 -0
  165. package/dist/src/i18n/index.d.ts.map +1 -0
  166. package/dist/src/i18n/locale-manager.d.ts +123 -0
  167. package/dist/src/i18n/locale-manager.d.ts.map +1 -0
  168. package/dist/src/i18n/rtl-support.d.ts +120 -0
  169. package/dist/src/i18n/rtl-support.d.ts.map +1 -0
  170. package/dist/src/index.d.ts +38 -0
  171. package/dist/src/index.d.ts.map +1 -0
  172. package/dist/src/keyboard/index.d.ts +6 -0
  173. package/dist/src/keyboard/index.d.ts.map +1 -0
  174. package/dist/src/keyboard/keyboard-navigator.d.ts +171 -0
  175. package/dist/src/keyboard/keyboard-navigator.d.ts.map +1 -0
  176. package/dist/src/rendering/cache/index.d.ts +3 -0
  177. package/dist/src/rendering/cache/index.d.ts.map +1 -0
  178. package/dist/src/rendering/cache/renderer-cache.d.ts +100 -0
  179. package/dist/src/rendering/cache/renderer-cache.d.ts.map +1 -0
  180. package/dist/src/rendering/cache/renderer-cache.interface.d.ts +89 -0
  181. package/dist/src/rendering/cache/renderer-cache.interface.d.ts.map +1 -0
  182. package/dist/src/rendering/cell-pool/cell-pool.d.ts +36 -0
  183. package/dist/src/rendering/cell-pool/cell-pool.d.ts.map +1 -0
  184. package/dist/src/rendering/cell-pool/cell-pool.interface.d.ts +76 -0
  185. package/dist/src/rendering/cell-pool/cell-pool.interface.d.ts.map +1 -0
  186. package/dist/src/rendering/cell-pool/index.d.ts +6 -0
  187. package/dist/src/rendering/cell-pool/index.d.ts.map +1 -0
  188. package/dist/src/rendering/cell-positioner/cell-positioner.d.ts +46 -0
  189. package/dist/src/rendering/cell-positioner/cell-positioner.d.ts.map +1 -0
  190. package/dist/src/rendering/cell-positioner/cell-positioner.interface.d.ts +86 -0
  191. package/dist/src/rendering/cell-positioner/cell-positioner.interface.d.ts.map +1 -0
  192. package/dist/src/rendering/cell-positioner/index.d.ts +6 -0
  193. package/dist/src/rendering/cell-positioner/index.d.ts.map +1 -0
  194. package/dist/src/rendering/height-provider/height-provider.interface.d.ts +62 -0
  195. package/dist/src/rendering/height-provider/height-provider.interface.d.ts.map +1 -0
  196. package/dist/src/rendering/height-provider/index.d.ts +7 -0
  197. package/dist/src/rendering/height-provider/index.d.ts.map +1 -0
  198. package/dist/src/rendering/height-provider/uniform-height-provider.d.ts +31 -0
  199. package/dist/src/rendering/height-provider/uniform-height-provider.d.ts.map +1 -0
  200. package/dist/src/rendering/height-provider/variable-height-provider.d.ts +33 -0
  201. package/dist/src/rendering/height-provider/variable-height-provider.d.ts.map +1 -0
  202. package/dist/src/rendering/renderers/advanced-cell-renderer.d.ts +105 -0
  203. package/dist/src/rendering/renderers/advanced-cell-renderer.d.ts.map +1 -0
  204. package/dist/src/rendering/renderers/image-renderer.d.ts +60 -0
  205. package/dist/src/rendering/renderers/image-renderer.d.ts.map +1 -0
  206. package/dist/src/rendering/renderers/index.d.ts +13 -0
  207. package/dist/src/rendering/renderers/index.d.ts.map +1 -0
  208. package/dist/src/rendering/renderers/number-renderer.d.ts +71 -0
  209. package/dist/src/rendering/renderers/number-renderer.d.ts.map +1 -0
  210. package/dist/src/rendering/renderers/renderer-registry.d.ts +55 -0
  211. package/dist/src/rendering/renderers/renderer-registry.d.ts.map +1 -0
  212. package/dist/src/rendering/renderers/renderer.interface.d.ts +79 -0
  213. package/dist/src/rendering/renderers/renderer.interface.d.ts.map +1 -0
  214. package/dist/src/rendering/renderers/text-renderer.d.ts +20 -0
  215. package/dist/src/rendering/renderers/text-renderer.d.ts.map +1 -0
  216. package/dist/src/rendering/spatial-hit-tester.d.ts +108 -0
  217. package/dist/src/rendering/spatial-hit-tester.d.ts.map +1 -0
  218. package/dist/src/rendering/virtual-scroller/index.d.ts +6 -0
  219. package/dist/src/rendering/virtual-scroller/index.d.ts.map +1 -0
  220. package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts +56 -0
  221. package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts.map +1 -0
  222. package/dist/src/rendering/virtual-scroller/virtual-scroller.interface.d.ts +170 -0
  223. package/dist/src/rendering/virtual-scroller/virtual-scroller.interface.d.ts.map +1 -0
  224. package/dist/src/rendering/width-provider/index.d.ts +7 -0
  225. package/dist/src/rendering/width-provider/index.d.ts.map +1 -0
  226. package/dist/src/rendering/width-provider/uniform-width-provider.d.ts +31 -0
  227. package/dist/src/rendering/width-provider/uniform-width-provider.d.ts.map +1 -0
  228. package/dist/src/rendering/width-provider/variable-width-provider.d.ts +33 -0
  229. package/dist/src/rendering/width-provider/variable-width-provider.d.ts.map +1 -0
  230. package/dist/src/rendering/width-provider/width-provider.interface.d.ts +62 -0
  231. package/dist/src/rendering/width-provider/width-provider.interface.d.ts.map +1 -0
  232. package/dist/src/selection/hit-tester.d.ts +168 -0
  233. package/dist/src/selection/hit-tester.d.ts.map +1 -0
  234. package/dist/src/selection/hit-tester.interface.d.ts +108 -0
  235. package/dist/src/selection/hit-tester.interface.d.ts.map +1 -0
  236. package/dist/src/selection/index.d.ts +9 -0
  237. package/dist/src/selection/index.d.ts.map +1 -0
  238. package/dist/src/selection/range-utils.d.ts +219 -0
  239. package/dist/src/selection/range-utils.d.ts.map +1 -0
  240. package/dist/src/selection/range-utils.interface.d.ts +51 -0
  241. package/dist/src/selection/range-utils.interface.d.ts.map +1 -0
  242. package/dist/src/styles/grid.css +356 -0
  243. package/dist/src/styles.css +273 -0
  244. package/dist/src/touch/index.d.ts +6 -0
  245. package/dist/src/touch/index.d.ts.map +1 -0
  246. package/dist/src/touch/touch-handler.d.ts +167 -0
  247. package/dist/src/touch/touch-handler.d.ts.map +1 -0
  248. package/dist/src/types/index.d.ts +133 -0
  249. package/dist/src/types/index.d.ts.map +1 -0
  250. package/dist/src/types.d.ts +559 -0
  251. package/dist/src/types.d.ts.map +1 -0
  252. package/package.json +47 -0
@@ -0,0 +1,141 @@
1
+ import type { CellEditor } from './cell-editor.interface';
2
+ import type { CellRef } from '../types';
3
+ import type { EventEmitter } from '../events/event-emitter';
4
+ import type { GridEvents } from '../events/grid-events';
5
+ /**
6
+ * Editor manager options
7
+ */
8
+ export interface EditorManagerOptions {
9
+ /**
10
+ * Container element for editors
11
+ */
12
+ container: HTMLElement;
13
+ /**
14
+ * Event emitter for grid events
15
+ */
16
+ events?: EventEmitter<GridEvents>;
17
+ /**
18
+ * Callback to get cell value
19
+ */
20
+ getValue: (row: number, col: number) => any;
21
+ /**
22
+ * Callback to set cell value
23
+ */
24
+ setValue: (row: number, col: number, value: any) => void;
25
+ /**
26
+ * Callback to get column definition
27
+ */
28
+ getColumn?: (col: number) => any;
29
+ /**
30
+ * Callback to get row data
31
+ */
32
+ getRowData?: (row: number) => any;
33
+ /**
34
+ * Callback to get cell element
35
+ */
36
+ getCellElement: (row: number, col: number) => HTMLElement | null;
37
+ /**
38
+ * Callback when editing starts
39
+ */
40
+ onEditStart?: (cell: CellRef) => void;
41
+ /**
42
+ * Callback when editing ends
43
+ */
44
+ onEditEnd?: (cell: CellRef, cancelled: boolean) => void;
45
+ }
46
+ /**
47
+ * EditorManager - Manages cell editing lifecycle
48
+ *
49
+ * Coordinates the editing process:
50
+ * - Creates and destroys editor instances
51
+ * - Handles edit start/end events
52
+ * - Validates and commits changes
53
+ * - Manages keyboard shortcuts (Enter, Escape)
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const editorManager = new EditorManager({
58
+ * container: gridElement,
59
+ * getValue: (row, col) => data[row][col],
60
+ * setValue: (row, col, value) => { data[row][col] = value; },
61
+ * getCellElement: (row, col) => document.getElementById(`cell-${row}-${col}`),
62
+ * });
63
+ *
64
+ * // Start editing
65
+ * editorManager.startEdit({ row: 0, col: 0 });
66
+ *
67
+ * // Cancel editing
68
+ * editorManager.cancelEdit();
69
+ * ```
70
+ */
71
+ export declare class EditorManager {
72
+ private container;
73
+ private events?;
74
+ private getValue;
75
+ private setValue;
76
+ private getColumn?;
77
+ private getRowData?;
78
+ private getCellElement;
79
+ private onEditStart?;
80
+ private onEditEnd?;
81
+ private currentEditor;
82
+ private editingCell;
83
+ private originalValue;
84
+ private editorContainer;
85
+ private boundHandleEditorKeyDown;
86
+ private editors;
87
+ constructor(options: EditorManagerOptions);
88
+ /**
89
+ * Register a custom editor
90
+ * @param type - Editor type name
91
+ * @param editorClass - Editor class constructor
92
+ */
93
+ registerEditor(type: string, editorClass: new () => CellEditor): void;
94
+ /**
95
+ * Start editing a cell
96
+ * @param cell - Cell to edit
97
+ * @param initialValue - Optional initial value (for typing to start edit)
98
+ */
99
+ startEdit(cell: CellRef, initialValue?: any): void;
100
+ /**
101
+ * Commit the current edit
102
+ */
103
+ commitEdit(): void;
104
+ /**
105
+ * Cancel the current edit
106
+ */
107
+ cancelEdit(): void;
108
+ /**
109
+ * End editing and cleanup
110
+ */
111
+ private endEdit;
112
+ /**
113
+ * Get currently editing cell
114
+ */
115
+ getEditingCell(): CellRef | null;
116
+ /**
117
+ * Check if currently editing
118
+ */
119
+ isEditing(): boolean;
120
+ /**
121
+ * Setup keyboard event handlers
122
+ */
123
+ private setupKeyboardHandlers;
124
+ /**
125
+ * Cleanup keyboard event handlers
126
+ */
127
+ private cleanupKeyboardHandlers;
128
+ /**
129
+ * Handle keyboard events during editing
130
+ */
131
+ private handleEditorKeyDown;
132
+ /**
133
+ * Get default editor type based on value
134
+ */
135
+ private getDefaultEditor;
136
+ /**
137
+ * Destroy editor manager
138
+ */
139
+ destroy(): void;
140
+ }
141
+ //# sourceMappingURL=editor-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/editing/editor-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAE5C;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAEjC;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAElC;;OAEG;IACH,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;IAEjE;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAC,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAC,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAmD;IACzE,OAAO,CAAC,WAAW,CAAC,CAA0B;IAC9C,OAAO,CAAC,SAAS,CAAC,CAA8C;IAEhE,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,wBAAwB,CAAiC;IAEjE,OAAO,CAAC,OAAO,CAAgD;gBAEnD,OAAO,EAAE,oBAAoB;IAmBzC;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,UAAU,GAAG,IAAI;IAIrE;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,IAAI;IA+FlD;;OAEG;IACH,UAAU,IAAI,IAAI;IA4ClB;;OAEG;IACH,UAAU,IAAI,IAAI;IA2BlB;;OAEG;IACH,OAAO,CAAC,OAAO;IAqBf;;OAEG;IACH,cAAc,IAAI,OAAO,GAAG,IAAI;IAIhC;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,OAAO,IAAI,IAAI;CAOhB"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Cell editing system for ZenGrid
3
+ */
4
+ export type { CellEditor, EditorParams, ValidationResult, EditorFactory } from './cell-editor.interface';
5
+ export { EditorManager } from './editor-manager';
6
+ export type { EditorManagerOptions } from './editor-manager';
7
+ export { TextEditor } from './text-editor';
8
+ export type { TextEditorOptions } from './text-editor';
9
+ export { NumberEditor } from './number-editor';
10
+ export type { NumberEditorOptions } from './number-editor';
11
+ export { SelectEditor } from './select-editor';
12
+ export type { SelectEditorOptions } from './select-editor';
13
+ export { DateEditor } from './date-editor';
14
+ export type { DateEditorOptions } from './date-editor';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/editing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEzG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { CellEditor, EditorParams } from './cell-editor.interface';
2
+ /**
3
+ * Number editor options
4
+ */
5
+ export interface NumberEditorOptions {
6
+ /**
7
+ * Minimum value
8
+ */
9
+ min?: number;
10
+ /**
11
+ * Maximum value
12
+ */
13
+ max?: number;
14
+ /**
15
+ * Step increment
16
+ * @default 1
17
+ */
18
+ step?: number;
19
+ /**
20
+ * Number of decimal places
21
+ */
22
+ precision?: number;
23
+ /**
24
+ * Allow negative numbers
25
+ * @default true
26
+ */
27
+ allowNegative?: boolean;
28
+ /**
29
+ * Placeholder text
30
+ */
31
+ placeholder?: string;
32
+ }
33
+ /**
34
+ * NumberEditor - Numeric input editor
35
+ *
36
+ * Provides a number input with validation and formatting.
37
+ * Supports min/max, step, precision, and negative numbers.
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const editor = new NumberEditor();
42
+ * editor.init(container, 42, {
43
+ * cell: { row: 0, col: 0 },
44
+ * options: {
45
+ * min: 0,
46
+ * max: 100,
47
+ * step: 0.1,
48
+ * precision: 2,
49
+ * },
50
+ * });
51
+ * ```
52
+ */
53
+ export declare class NumberEditor implements CellEditor<number> {
54
+ private input;
55
+ private options;
56
+ private boundHandleKeyDown;
57
+ constructor();
58
+ init(container: HTMLElement, value: number, params: EditorParams): void;
59
+ getValue(): number;
60
+ focus(): void;
61
+ isValid(): boolean | {
62
+ valid: boolean;
63
+ message?: string;
64
+ };
65
+ destroy(): void;
66
+ private handleKeyDown;
67
+ }
68
+ //# sourceMappingURL=number-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-editor.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/editing/number-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAa,YAAW,UAAU,CAAC,MAAM,CAAC;IACrD,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,kBAAkB,CAAiC;;IAM3D,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IA6DvE,QAAQ,IAAI,MAAM;IAclB,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,OAAO,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAsCzD,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,aAAa;CAUtB"}
@@ -0,0 +1,53 @@
1
+ import type { CellEditor, EditorParams } from './cell-editor.interface';
2
+ /**
3
+ * Select editor options
4
+ */
5
+ export interface SelectEditorOptions {
6
+ /**
7
+ * Available options
8
+ */
9
+ options: Array<{
10
+ value: any;
11
+ label: string;
12
+ }> | string[];
13
+ /**
14
+ * Allow empty selection
15
+ * @default false
16
+ */
17
+ allowEmpty?: boolean;
18
+ /**
19
+ * Placeholder for empty selection
20
+ */
21
+ placeholder?: string;
22
+ }
23
+ /**
24
+ * SelectEditor - Dropdown selection editor
25
+ *
26
+ * Provides a dropdown select for choosing from predefined options.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const editor = new SelectEditor();
31
+ * editor.init(container, 'active', {
32
+ * cell: { row: 0, col: 0 },
33
+ * options: {
34
+ * options: ['active', 'inactive', 'pending'],
35
+ * allowEmpty: true,
36
+ * placeholder: 'Select status...',
37
+ * },
38
+ * });
39
+ * ```
40
+ */
41
+ export declare class SelectEditor implements CellEditor<any> {
42
+ private select;
43
+ private options;
44
+ private boundHandleKeyDown;
45
+ constructor();
46
+ init(container: HTMLElement, value: any, params: EditorParams): void;
47
+ getValue(): any;
48
+ focus(): void;
49
+ isValid(): boolean;
50
+ destroy(): void;
51
+ private handleKeyDown;
52
+ }
53
+ //# sourceMappingURL=select-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-editor.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/editing/select-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM,EAAE,CAAC;IAEzD;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAa,YAAW,UAAU,CAAC,GAAG,CAAC;IAClD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,kBAAkB,CAAiC;;IAM3D,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAqEpE,QAAQ,IAAI,GAAG;IAoBf,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,OAAO;IAKlB,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,aAAa;CAItB"}
@@ -0,0 +1,69 @@
1
+ import type { CellEditor, EditorParams } from './cell-editor.interface';
2
+ /**
3
+ * Text editor options
4
+ */
5
+ export interface TextEditorOptions {
6
+ /**
7
+ * Maximum length
8
+ */
9
+ maxLength?: number;
10
+ /**
11
+ * Placeholder text
12
+ */
13
+ placeholder?: string;
14
+ /**
15
+ * Input type
16
+ * @default 'text'
17
+ */
18
+ type?: 'text' | 'email' | 'url' | 'tel';
19
+ /**
20
+ * Auto-select text on focus
21
+ * @default true
22
+ */
23
+ autoSelect?: boolean;
24
+ /**
25
+ * Validation pattern (regex)
26
+ */
27
+ pattern?: RegExp;
28
+ /**
29
+ * Custom validator function
30
+ */
31
+ validator?: (value: string) => boolean | {
32
+ valid: boolean;
33
+ message?: string;
34
+ };
35
+ }
36
+ /**
37
+ * TextEditor - Basic text input editor
38
+ *
39
+ * Provides a simple text input for editing cell values.
40
+ * Supports validation, max length, and auto-selection.
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const editor = new TextEditor();
45
+ * editor.init(container, 'Hello', {
46
+ * cell: { row: 0, col: 0 },
47
+ * options: {
48
+ * maxLength: 100,
49
+ * placeholder: 'Enter text...',
50
+ * },
51
+ * });
52
+ * ```
53
+ */
54
+ export declare class TextEditor implements CellEditor<string> {
55
+ private input;
56
+ private options;
57
+ private boundHandleKeyDown;
58
+ constructor();
59
+ init(container: HTMLElement, value: string, params: EditorParams): void;
60
+ getValue(): string;
61
+ focus(): void;
62
+ isValid(): boolean | {
63
+ valid: boolean;
64
+ message?: string;
65
+ };
66
+ destroy(): void;
67
+ private handleKeyDown;
68
+ }
69
+ //# sourceMappingURL=text-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-editor.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/editing/text-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;IAExC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,UAAW,YAAW,UAAU,CAAC,MAAM,CAAC;IACnD,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,kBAAkB,CAAiC;;IAM3D,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAuDvE,QAAQ,IAAI,MAAM;IAIlB,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,OAAO,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAoBzD,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,aAAa;CAItB"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Type-safe event emitter for grid events
3
+ *
4
+ * Provides a strongly-typed pub/sub system for grid events.
5
+ * Supports both synchronous and asynchronous event handlers.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const emitter = new EventEmitter<GridEvents>();
10
+ *
11
+ * // Subscribe
12
+ * emitter.on('cell:change', (event) => {
13
+ * console.log(`Cell ${event.cell.row},${event.cell.col} changed`);
14
+ * });
15
+ *
16
+ * // Emit
17
+ * emitter.emit('cell:change', {
18
+ * cell: { row: 0, col: 0 },
19
+ * oldValue: 'old',
20
+ * newValue: 'new',
21
+ * });
22
+ *
23
+ * // Unsubscribe
24
+ * emitter.off('cell:change', handler);
25
+ * ```
26
+ */
27
+ export declare class EventEmitter<TEvents extends Record<string, any>> {
28
+ private listeners;
29
+ private onceListeners;
30
+ private maxListeners;
31
+ /**
32
+ * Subscribe to an event
33
+ * @param event - Event name
34
+ * @param handler - Event handler function
35
+ * @returns Unsubscribe function
36
+ */
37
+ on<K extends keyof TEvents>(event: K, handler: (data: TEvents[K]) => void): () => void;
38
+ /**
39
+ * Subscribe to an event (fires only once)
40
+ * @param event - Event name
41
+ * @param handler - Event handler function
42
+ * @returns Unsubscribe function
43
+ */
44
+ once<K extends keyof TEvents>(event: K, handler: (data: TEvents[K]) => void): () => void;
45
+ /**
46
+ * Unsubscribe from an event
47
+ * @param event - Event name
48
+ * @param handler - Event handler function to remove
49
+ */
50
+ off<K extends keyof TEvents>(event: K, handler: (data: TEvents[K]) => void): void;
51
+ /**
52
+ * Remove a once listener
53
+ * @param event - Event name
54
+ * @param handler - Event handler function to remove
55
+ */
56
+ private offOnce;
57
+ /**
58
+ * Emit an event
59
+ * @param event - Event name
60
+ * @param data - Event data
61
+ */
62
+ emit<K extends keyof TEvents>(event: K, data: TEvents[K]): void;
63
+ /**
64
+ * Remove all listeners for an event (or all events if no event specified)
65
+ * @param event - Optional event name
66
+ */
67
+ removeAllListeners<K extends keyof TEvents>(event?: K): void;
68
+ /**
69
+ * Get the number of listeners for an event
70
+ * @param event - Event name
71
+ * @returns Number of listeners
72
+ */
73
+ listenerCount<K extends keyof TEvents>(event: K): number;
74
+ /**
75
+ * Get all event names that have listeners
76
+ * @returns Array of event names
77
+ */
78
+ eventNames(): Array<keyof TEvents>;
79
+ /**
80
+ * Set the maximum number of listeners per event
81
+ * @param n - Maximum number of listeners
82
+ */
83
+ setMaxListeners(n: number): void;
84
+ /**
85
+ * Get the maximum number of listeners per event
86
+ * @returns Maximum number of listeners
87
+ */
88
+ getMaxListeners(): number;
89
+ }
90
+ //# sourceMappingURL=event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/events/event-emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3D,OAAO,CAAC,SAAS,CAAgD;IACjE,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,YAAY,CAAO;IAE3B;;;;;OAKG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EACxB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAClC,MAAM,IAAI;IAmBb;;;;;OAKG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAC1B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAClC,MAAM,IAAI;IAWb;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,OAAO,EACzB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAClC,IAAI;IAUP;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAaf;;;;OAIG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IA4B/D;;;OAGG;IACH,kBAAkB,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;IAU5D;;;;OAIG;IACH,aAAa,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM;IAMxD;;;OAGG;IACH,UAAU,IAAI,KAAK,CAAC,MAAM,OAAO,CAAC;IAWlC;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAOhC;;;OAGG;IACH,eAAe,IAAI,MAAM;CAG1B"}