persian-data-grid 0.6.0 → 0.7.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 (137) hide show
  1. package/README.md +1 -1
  2. package/dist/{ERPTableGroupRow-PSAPAHGL.js → ERPTableGroupRow-E5Q6FYDS.js} +4 -4
  3. package/dist/{ERPTableGroupRow-PSAPAHGL.js.map → ERPTableGroupRow-E5Q6FYDS.js.map} +1 -1
  4. package/dist/{ERPTableGroupRow-J5Z2LRC5.cjs → ERPTableGroupRow-F2IPDYL5.cjs} +9 -9
  5. package/dist/{ERPTableGroupRow-J5Z2LRC5.cjs.map → ERPTableGroupRow-F2IPDYL5.cjs.map} +1 -1
  6. package/dist/{GridPlugin-CJCaYnlw.d.ts → GridPlugin-Bewn0X51.d.ts} +1 -1
  7. package/dist/{GridPlugin-oxhq8AsM.d.cts → GridPlugin-DewWufGZ.d.cts} +1 -1
  8. package/dist/{GridSession-Bc7UIawO.d.ts → GridSession-CeIfVFck.d.ts} +142 -9
  9. package/dist/{GridSession-B-9lLcoB.d.cts → GridSession-CmQn2RnL.d.cts} +142 -9
  10. package/dist/GridSyncService-3JQLEY65.cjs +12 -0
  11. package/dist/{GridSyncService-TAPAHABV.cjs.map → GridSyncService-3JQLEY65.cjs.map} +1 -1
  12. package/dist/GridSyncService-GECXGEKL.js +3 -0
  13. package/dist/{GridSyncService-KTLB4KP3.js.map → GridSyncService-GECXGEKL.js.map} +1 -1
  14. package/dist/{PdfRenderer-CBg7hWNS.d.cts → PdfRenderer-B9FJaCo_.d.cts} +1 -1
  15. package/dist/{PdfRenderer-1HFh6UeR.d.ts → PdfRenderer-bN7ca_Aj.d.ts} +1 -1
  16. package/dist/{UITableController-DU8RopUM.d.ts → UITableController-C71LXBiX.d.ts} +48 -2
  17. package/dist/{UITableController-Cuwq481K.d.cts → UITableController-CIwnHIw8.d.cts} +48 -2
  18. package/dist/{VazirmatnPdfRenderer-BCMpC1zy.d.cts → VazirmatnPdfRenderer-CpCqA-Wh.d.cts} +2 -2
  19. package/dist/{VazirmatnPdfRenderer-Dz_G-m3c.d.ts → VazirmatnPdfRenderer-D46smncn.d.ts} +2 -2
  20. package/dist/adapters/arian-erp.cjs +16 -4
  21. package/dist/adapters/arian-erp.cjs.map +1 -1
  22. package/dist/adapters/arian-erp.d.cts +3 -1
  23. package/dist/adapters/arian-erp.d.ts +3 -1
  24. package/dist/adapters/arian-erp.js +11 -3
  25. package/dist/adapters/arian-erp.js.map +1 -1
  26. package/dist/{applyImportedRows-BO6yxoAN.d.cts → applyImportedRows-C2fWYoPy.d.cts} +3 -3
  27. package/dist/{applyImportedRows-D4zVY8uD.d.ts → applyImportedRows-Cqh_N_0k.d.ts} +3 -3
  28. package/dist/{applyRowVisibilityHandler-LXCOGESZ.cjs → applyRowVisibilityHandler-Q64ZFC7A.cjs} +7 -6
  29. package/dist/applyRowVisibilityHandler-Q64ZFC7A.cjs.map +1 -0
  30. package/dist/{applyRowVisibilityHandler-KS6TMCBN.js → applyRowVisibilityHandler-ZLZXQEGY.js} +6 -5
  31. package/dist/applyRowVisibilityHandler-ZLZXQEGY.js.map +1 -0
  32. package/dist/callbackRemoteApi-BYLjmSI6.d.ts +51 -0
  33. package/dist/callbackRemoteApi-Cv26MmSD.d.cts +51 -0
  34. package/dist/{cellRenderContext-DB7V_mlu.d.ts → cellRenderContext-BaNh4qn_.d.ts} +2 -2
  35. package/dist/{cellRenderContext-DG5BOlxK.d.cts → cellRenderContext-DvngkptV.d.cts} +2 -2
  36. package/dist/{chunk-HTNJT2QU.js → chunk-27ALJSZP.js} +617 -104
  37. package/dist/chunk-27ALJSZP.js.map +1 -0
  38. package/dist/{chunk-KUBVDIF7.cjs → chunk-3HP3HQCW.cjs} +52 -17
  39. package/dist/chunk-3HP3HQCW.cjs.map +1 -0
  40. package/dist/{chunk-DXRCYW42.cjs → chunk-52LFOPXD.cjs} +43 -23
  41. package/dist/chunk-52LFOPXD.cjs.map +1 -0
  42. package/dist/{chunk-VVGYRZ7S.cjs → chunk-72IVAOTK.cjs} +4 -4
  43. package/dist/{chunk-VVGYRZ7S.cjs.map → chunk-72IVAOTK.cjs.map} +1 -1
  44. package/dist/{chunk-LJ7LMEXO.js → chunk-7GWV5HGO.js} +3 -3
  45. package/dist/{chunk-LJ7LMEXO.js.map → chunk-7GWV5HGO.js.map} +1 -1
  46. package/dist/{chunk-RM6ZWNT3.js → chunk-7T6AWRPU.js} +43 -23
  47. package/dist/chunk-7T6AWRPU.js.map +1 -0
  48. package/dist/{chunk-PXCHPZTP.cjs → chunk-CMQ4VLCW.cjs} +8 -7
  49. package/dist/{chunk-EHHHC5JV.js.map → chunk-CMQ4VLCW.cjs.map} +1 -1
  50. package/dist/chunk-E2J533UH.cjs +53 -0
  51. package/dist/chunk-E2J533UH.cjs.map +1 -0
  52. package/dist/chunk-F6EMC75A.cjs +34 -0
  53. package/dist/chunk-F6EMC75A.cjs.map +1 -0
  54. package/dist/chunk-GKE33FOJ.js +32 -0
  55. package/dist/chunk-GKE33FOJ.js.map +1 -0
  56. package/dist/{chunk-QQMU44KJ.js → chunk-HLOHWFOA.js} +52 -19
  57. package/dist/chunk-HLOHWFOA.js.map +1 -0
  58. package/dist/{chunk-633KP74Z.js → chunk-KCNTKYUY.js} +19 -2
  59. package/dist/chunk-KCNTKYUY.js.map +1 -0
  60. package/dist/{chunk-BLYVOV3G.cjs → chunk-LY27YAXE.cjs} +19 -2
  61. package/dist/chunk-LY27YAXE.cjs.map +1 -0
  62. package/dist/{chunk-EHHHC5JV.js → chunk-NB5GCGHL.js} +5 -4
  63. package/dist/chunk-NB5GCGHL.js.map +1 -0
  64. package/dist/{chunk-6XBXZPBW.js → chunk-NQUVAJQA.js} +3 -3
  65. package/dist/{chunk-6XBXZPBW.js.map → chunk-NQUVAJQA.js.map} +1 -1
  66. package/dist/chunk-SVO62ZV2.js +50 -0
  67. package/dist/chunk-SVO62ZV2.js.map +1 -0
  68. package/dist/{chunk-MU3RY46O.js → chunk-VBAZ77Q4.js} +3 -3
  69. package/dist/{chunk-MU3RY46O.js.map → chunk-VBAZ77Q4.js.map} +1 -1
  70. package/dist/{chunk-H2LESGMX.cjs → chunk-VSAFQTW5.cjs} +4 -4
  71. package/dist/{chunk-H2LESGMX.cjs.map → chunk-VSAFQTW5.cjs.map} +1 -1
  72. package/dist/{chunk-2BJCRYOS.cjs → chunk-VYJQ2HTA.cjs} +5 -5
  73. package/dist/{chunk-2BJCRYOS.cjs.map → chunk-VYJQ2HTA.cjs.map} +1 -1
  74. package/dist/{chunk-IIISFUW4.cjs → chunk-WTHTVKVI.cjs} +621 -108
  75. package/dist/chunk-WTHTVKVI.cjs.map +1 -0
  76. package/dist/{createEngineGridQuery-Mt1hc33m.d.ts → createEngineGridQuery-BBkud5oE.d.ts} +61 -6
  77. package/dist/{createEngineGridQuery-Dmq3i5v3.d.cts → createEngineGridQuery-D-fgO_jg.d.cts} +61 -6
  78. package/dist/date-picker-jalali.cjs +17 -17
  79. package/dist/date-picker-jalali.d.cts +3 -3
  80. package/dist/date-picker-jalali.d.ts +3 -3
  81. package/dist/date-picker-jalali.js +1 -1
  82. package/dist/headless.cjs +102 -102
  83. package/dist/headless.d.cts +13 -9
  84. package/dist/headless.d.ts +13 -9
  85. package/dist/headless.js +4 -4
  86. package/dist/index.cjs +440 -382
  87. package/dist/index.cjs.map +1 -1
  88. package/dist/index.d.cts +34 -14
  89. package/dist/index.d.ts +34 -14
  90. package/dist/index.js +200 -143
  91. package/dist/index.js.map +1 -1
  92. package/dist/plugins/csv.cjs +3 -3
  93. package/dist/plugins/csv.d.cts +2 -2
  94. package/dist/plugins/csv.d.ts +2 -2
  95. package/dist/plugins/csv.js +2 -2
  96. package/dist/plugins/excel.cjs +11 -11
  97. package/dist/plugins/excel.d.cts +4 -4
  98. package/dist/plugins/excel.d.ts +4 -4
  99. package/dist/plugins/excel.js +3 -3
  100. package/dist/plugins/pdf/fonts/vazirmatn.cjs +6 -6
  101. package/dist/plugins/pdf/fonts/vazirmatn.d.cts +4 -4
  102. package/dist/plugins/pdf/fonts/vazirmatn.d.ts +4 -4
  103. package/dist/plugins/pdf/fonts/vazirmatn.js +3 -3
  104. package/dist/plugins/pdf.cjs +5 -5
  105. package/dist/plugins/pdf.d.cts +5 -5
  106. package/dist/plugins/pdf.d.ts +5 -5
  107. package/dist/plugins/pdf.js +2 -2
  108. package/dist/presence.d.cts +3 -3
  109. package/dist/presence.d.ts +3 -3
  110. package/dist/sync.cjs +2 -2
  111. package/dist/sync.d.cts +3 -3
  112. package/dist/sync.d.ts +3 -3
  113. package/dist/sync.js +1 -1
  114. package/package.json +3 -3
  115. package/dist/GridSyncService-KTLB4KP3.js +0 -3
  116. package/dist/GridSyncService-TAPAHABV.cjs +0 -12
  117. package/dist/applyRowVisibilityHandler-KS6TMCBN.js.map +0 -1
  118. package/dist/applyRowVisibilityHandler-LXCOGESZ.cjs.map +0 -1
  119. package/dist/callbackRemoteApi-BlXO5NJz.d.ts +0 -30
  120. package/dist/callbackRemoteApi-DgnXH-i0.d.cts +0 -30
  121. package/dist/chunk-633KP74Z.js.map +0 -1
  122. package/dist/chunk-ASPTRYRD.cjs +0 -21
  123. package/dist/chunk-ASPTRYRD.cjs.map +0 -1
  124. package/dist/chunk-BHDRUZH5.cjs +0 -33
  125. package/dist/chunk-BHDRUZH5.cjs.map +0 -1
  126. package/dist/chunk-BLYVOV3G.cjs.map +0 -1
  127. package/dist/chunk-DXRCYW42.cjs.map +0 -1
  128. package/dist/chunk-HTNJT2QU.js.map +0 -1
  129. package/dist/chunk-IIISFUW4.cjs.map +0 -1
  130. package/dist/chunk-KUBVDIF7.cjs.map +0 -1
  131. package/dist/chunk-KYAOSBQN.js +0 -31
  132. package/dist/chunk-KYAOSBQN.js.map +0 -1
  133. package/dist/chunk-PXCHPZTP.cjs.map +0 -1
  134. package/dist/chunk-QQMU44KJ.js.map +0 -1
  135. package/dist/chunk-RM6ZWNT3.js.map +0 -1
  136. package/dist/chunk-Y6W5V2CI.js +0 -19
  137. package/dist/chunk-Y6W5V2CI.js.map +0 -1
package/README.md CHANGED
@@ -204,7 +204,7 @@ import 'persian-data-grid/styles.css';
204
204
 
205
205
  ## Changelog
206
206
 
207
- See [CHANGELOG.md](./CHANGELOG.md) (Keep a Changelog). The next npm line is **0.6.0**.
207
+ See [CHANGELOG.md](./CHANGELOG.md) (Keep a Changelog). The next npm line is **0.7.0**.
208
208
 
209
209
  ## Contributing
210
210
 
@@ -1,6 +1,6 @@
1
- import { useColumnWindowOrAll, ColumnWindowCells, columnPinCellProps, ariaColIndex, ariaDataRowIndex } from './chunk-6XBXZPBW.js';
1
+ import { useColumnWindowOrAll, ColumnWindowCells, columnPinCellProps, ariaColIndex, ariaDataRowIndex } from './chunk-NQUVAJQA.js';
2
2
  import { columnSizeStyle } from './chunk-IPPIXOVQ.js';
3
- import './chunk-QQMU44KJ.js';
3
+ import './chunk-HLOHWFOA.js';
4
4
  import './chunk-SZ7BLAY3.js';
5
5
  import './chunk-F4PYOYHR.js';
6
6
  import './chunk-77UXAJII.js';
@@ -121,5 +121,5 @@ var ERPTableGroupRow = React.memo(
121
121
  );
122
122
 
123
123
  export { ERPTableGroupRow };
124
- //# sourceMappingURL=ERPTableGroupRow-PSAPAHGL.js.map
125
- //# sourceMappingURL=ERPTableGroupRow-PSAPAHGL.js.map
124
+ //# sourceMappingURL=ERPTableGroupRow-E5Q6FYDS.js.map
125
+ //# sourceMappingURL=ERPTableGroupRow-E5Q6FYDS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../ui/desktop/ERPTableGroupRow.tsx"],"names":[],"mappings":"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","file":"ERPTableGroupRow-PSAPAHGL.js","sourcesContent":["import React from 'react';\r\n\r\nimport { columnSizeStyle } from '../../engine/columnWidth';\r\nimport type { UITableController } from '../../infrastructure/ui/UITableController';\r\nimport { ariaColIndex, ariaDataRowIndex } from '../a11y/gridRoles';\r\nimport { columnPinCellProps } from '../columnPin';\r\nimport type { UIRow } from '../type';\r\nimport { useColumnWindowOrAll } from '../virtual/columnWindow';\r\nimport { ColumnWindowCells } from '../virtual/ColumnWindowCells';\r\n\r\nexport type ERPTableGroupRowProps = {\r\n row: UIRow;\r\n index: number;\r\n pinnedTopCount?: number;\r\n table: Pick<\r\n import('../../engine/type').TableViewState,\r\n 'columns' | 'columnWidths' | 'activeCell'\r\n >;\r\n controller: UITableController;\r\n tableKey: string;\r\n isSelected: boolean;\r\n isActive: boolean;\r\n};\r\n\r\n/** Synthetic group header row (PR-121). */\r\nfunction ERPTableGroupRowComponent({\r\n row,\r\n index,\r\n pinnedTopCount = 0,\r\n table,\r\n controller,\r\n isSelected,\r\n isActive,\r\n}: ERPTableGroupRowProps) {\r\n const colWindow = useColumnWindowOrAll(\r\n table.columns ?? [],\r\n table.columnWidths,\r\n );\r\n const expanded = row.groupExpanded !== false;\r\n const groupField = row.groupField;\r\n const label = row.groupKey ?? '';\r\n const hasIndex = colWindow.allVisible.some(\r\n (col) => col.fieldName === 'index' || col.fieldType === 'index',\r\n );\r\n\r\n const toggle = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (row.groupKey != null) controller.toggleRowGroup(row.groupKey);\r\n };\r\n\r\n return (\r\n <tr\r\n role=\"row\"\r\n className={`pdg-group-row font-semibold ${\r\n isSelected ? 'bg-blue-100' : 'bg-blue-blue11'\r\n }${isActive ? ' border-gray-gray8' : ' border-gray-gray5'}`}\r\n data-rowid={row.id}\r\n data-pdg-row-kind=\"group\"\r\n data-pdg-group-key={row.groupKey}\r\n aria-rowindex={ariaDataRowIndex(index, pinnedTopCount)}\r\n aria-expanded={expanded}\r\n aria-level={1}\r\n onClick={(e) =>\r\n controller.onRowClick(row.id, {\r\n ctrlKey: e.ctrlKey,\r\n shiftKey: e.shiftKey,\r\n })\r\n }\r\n onDoubleClick={(e) => {\r\n if (!e.shiftKey && !e.ctrlKey && !e.altKey) {\r\n e.preventDefault();\r\n controller.onRowSelect(row.id);\r\n }\r\n }}\r\n >\r\n <ColumnWindowCells\r\n window={colWindow}\r\n spacerElement=\"td\"\r\n spacerRole=\"presentation\"\r\n renderColumn={(c, absoluteColIndex) => {\r\n const pin = columnPinCellProps(\r\n c,\r\n colWindow.startPinOffsets,\r\n colWindow.endPinOffsets,\r\n );\r\n const isIndex = c.fieldName === 'index' || c.fieldType === 'index';\r\n const isGroupField = groupField != null && c.fieldName === groupField;\r\n const showChevron = isIndex || (isGroupField && !hasIndex);\r\n const cellValue = isGroupField\r\n ? label\r\n : (row.cells[c.fieldName]?.display ??\r\n row.cells[c.fieldName]?.value ??\r\n '');\r\n\r\n const chevron = showChevron ? (\r\n <button\r\n type=\"button\"\r\n className=\"pdg-group-row__chevron inline-flex items-center justify-center w-6 h-6 border-0 bg-transparent cursor-pointer\"\r\n aria-label={expanded ? 'Collapse group' : 'Expand group'}\r\n aria-expanded={expanded}\r\n onClick={toggle}\r\n >\r\n <span aria-hidden>{expanded ? '▾' : '▸'}</span>\r\n </button>\r\n ) : null;\r\n\r\n return (\r\n <td\r\n key={c.fieldName}\r\n role=\"gridcell\"\r\n aria-colindex={ariaColIndex(absoluteColIndex)}\r\n className={`p-0 h-full overflow-hidden border ${pin.className}`.trim()}\r\n data-columnid={c.fieldName}\r\n data-erp-col-pin={pin['data-erp-col-pin']}\r\n style={{\r\n ...columnSizeStyle(\r\n c,\r\n table.columnWidths,\r\n colWindow.layoutWidths,\r\n ),\r\n ...pin.style,\r\n }}\r\n >\r\n {isIndex ? (\r\n <div className=\"flex items-center h-full px-2\">{chevron}</div>\r\n ) : isGroupField ? (\r\n <div className=\"flex items-center gap-1.5 h-full px-2\">\r\n {chevron}\r\n <span>\r\n {label}\r\n {typeof row.groupChildCount === 'number'\r\n ? ` (${row.groupChildCount})`\r\n : ''}\r\n </span>\r\n </div>\r\n ) : (\r\n <div className=\"flex items-center h-full px-2 tabular-nums\">\r\n {cellValue == null || cellValue === ''\r\n ? null\r\n : String(cellValue)}\r\n </div>\r\n )}\r\n </td>\r\n );\r\n }}\r\n />\r\n </tr>\r\n );\r\n}\r\n\r\nexport const ERPTableGroupRow = React.memo(\r\n ERPTableGroupRowComponent,\r\n (prev, next) =>\r\n prev.row === next.row &&\r\n prev.index === next.index &&\r\n prev.controller === next.controller &&\r\n prev.isSelected === next.isSelected &&\r\n prev.isActive === next.isActive &&\r\n prev.table.columns === next.table.columns &&\r\n prev.table.columnWidths === next.table.columnWidths &&\r\n prev.pinnedTopCount === next.pinnedTopCount,\r\n);\r\n"]}
1
+ {"version":3,"sources":["../ui/desktop/ERPTableGroupRow.tsx"],"names":[],"mappings":"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","file":"ERPTableGroupRow-E5Q6FYDS.js","sourcesContent":["import React from 'react';\r\n\r\nimport { columnSizeStyle } from '../../engine/columnWidth';\r\nimport type { UITableController } from '../../infrastructure/ui/UITableController';\r\nimport { ariaColIndex, ariaDataRowIndex } from '../a11y/gridRoles';\r\nimport { columnPinCellProps } from '../columnPin';\r\nimport type { UIRow } from '../type';\r\nimport { useColumnWindowOrAll } from '../virtual/columnWindow';\r\nimport { ColumnWindowCells } from '../virtual/ColumnWindowCells';\r\n\r\nexport type ERPTableGroupRowProps = {\r\n row: UIRow;\r\n index: number;\r\n pinnedTopCount?: number;\r\n table: Pick<\r\n import('../../engine/type').TableViewState,\r\n 'columns' | 'columnWidths' | 'activeCell'\r\n >;\r\n controller: UITableController;\r\n tableKey: string;\r\n isSelected: boolean;\r\n isActive: boolean;\r\n};\r\n\r\n/** Synthetic group header row (PR-121). */\r\nfunction ERPTableGroupRowComponent({\r\n row,\r\n index,\r\n pinnedTopCount = 0,\r\n table,\r\n controller,\r\n isSelected,\r\n isActive,\r\n}: ERPTableGroupRowProps) {\r\n const colWindow = useColumnWindowOrAll(\r\n table.columns ?? [],\r\n table.columnWidths,\r\n );\r\n const expanded = row.groupExpanded !== false;\r\n const groupField = row.groupField;\r\n const label = row.groupKey ?? '';\r\n const hasIndex = colWindow.allVisible.some(\r\n (col) => col.fieldName === 'index' || col.fieldType === 'index',\r\n );\r\n\r\n const toggle = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (row.groupKey != null) controller.toggleRowGroup(row.groupKey);\r\n };\r\n\r\n return (\r\n <tr\r\n role=\"row\"\r\n className={`pdg-group-row font-semibold ${\r\n isSelected ? 'bg-blue-100' : 'bg-blue-blue11'\r\n }${isActive ? ' border-gray-gray8' : ' border-gray-gray5'}`}\r\n data-rowid={row.id}\r\n data-pdg-row-kind=\"group\"\r\n data-pdg-group-key={row.groupKey}\r\n aria-rowindex={ariaDataRowIndex(index, pinnedTopCount)}\r\n aria-expanded={expanded}\r\n aria-level={1}\r\n onClick={(e) =>\r\n controller.onRowClick(row.id, {\r\n ctrlKey: e.ctrlKey,\r\n shiftKey: e.shiftKey,\r\n })\r\n }\r\n onDoubleClick={(e) => {\r\n if (!e.shiftKey && !e.ctrlKey && !e.altKey) {\r\n e.preventDefault();\r\n controller.onRowSelect(row.id);\r\n }\r\n }}\r\n >\r\n <ColumnWindowCells\r\n window={colWindow}\r\n spacerElement=\"td\"\r\n spacerRole=\"presentation\"\r\n renderColumn={(c, absoluteColIndex) => {\r\n const pin = columnPinCellProps(\r\n c,\r\n colWindow.startPinOffsets,\r\n colWindow.endPinOffsets,\r\n );\r\n const isIndex = c.fieldName === 'index' || c.fieldType === 'index';\r\n const isGroupField = groupField != null && c.fieldName === groupField;\r\n const showChevron = isIndex || (isGroupField && !hasIndex);\r\n const cellValue = isGroupField\r\n ? label\r\n : (row.cells[c.fieldName]?.display ??\r\n row.cells[c.fieldName]?.value ??\r\n '');\r\n\r\n const chevron = showChevron ? (\r\n <button\r\n type=\"button\"\r\n className=\"pdg-group-row__chevron inline-flex items-center justify-center w-6 h-6 border-0 bg-transparent cursor-pointer\"\r\n aria-label={expanded ? 'Collapse group' : 'Expand group'}\r\n aria-expanded={expanded}\r\n onClick={toggle}\r\n >\r\n <span aria-hidden>{expanded ? '▾' : '▸'}</span>\r\n </button>\r\n ) : null;\r\n\r\n return (\r\n <td\r\n key={c.fieldName}\r\n role=\"gridcell\"\r\n aria-colindex={ariaColIndex(absoluteColIndex)}\r\n className={`p-0 h-full overflow-hidden border ${pin.className}`.trim()}\r\n data-columnid={c.fieldName}\r\n data-erp-col-pin={pin['data-erp-col-pin']}\r\n style={{\r\n ...columnSizeStyle(\r\n c,\r\n table.columnWidths,\r\n colWindow.layoutWidths,\r\n ),\r\n ...pin.style,\r\n }}\r\n >\r\n {isIndex ? (\r\n <div className=\"flex items-center h-full px-2\">{chevron}</div>\r\n ) : isGroupField ? (\r\n <div className=\"flex items-center gap-1.5 h-full px-2\">\r\n {chevron}\r\n <span>\r\n {label}\r\n {typeof row.groupChildCount === 'number'\r\n ? ` (${row.groupChildCount})`\r\n : ''}\r\n </span>\r\n </div>\r\n ) : (\r\n <div className=\"flex items-center h-full px-2 tabular-nums\">\r\n {cellValue == null || cellValue === ''\r\n ? null\r\n : String(cellValue)}\r\n </div>\r\n )}\r\n </td>\r\n );\r\n }}\r\n />\r\n </tr>\r\n );\r\n}\r\n\r\nexport const ERPTableGroupRow = React.memo(\r\n ERPTableGroupRowComponent,\r\n (prev, next) =>\r\n prev.row === next.row &&\r\n prev.index === next.index &&\r\n prev.controller === next.controller &&\r\n prev.isSelected === next.isSelected &&\r\n prev.isActive === next.isActive &&\r\n prev.table.columns === next.table.columns &&\r\n prev.table.columnWidths === next.table.columnWidths &&\r\n prev.pinnedTopCount === next.pinnedTopCount,\r\n);\r\n"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkH2LESGMX_cjs = require('./chunk-H2LESGMX.cjs');
3
+ var chunkVSAFQTW5_cjs = require('./chunk-VSAFQTW5.cjs');
4
4
  var chunkUC7PHDM6_cjs = require('./chunk-UC7PHDM6.cjs');
5
- require('./chunk-KUBVDIF7.cjs');
5
+ require('./chunk-3HP3HQCW.cjs');
6
6
  require('./chunk-CILNIWYW.cjs');
7
7
  require('./chunk-SX4VQXAA.cjs');
8
8
  require('./chunk-QZN7R2WP.cjs');
@@ -26,7 +26,7 @@ function ERPTableGroupRowComponent({
26
26
  isSelected,
27
27
  isActive
28
28
  }) {
29
- const colWindow = chunkH2LESGMX_cjs.useColumnWindowOrAll(
29
+ const colWindow = chunkVSAFQTW5_cjs.useColumnWindowOrAll(
30
30
  table.columns ?? [],
31
31
  table.columnWidths
32
32
  );
@@ -49,7 +49,7 @@ function ERPTableGroupRowComponent({
49
49
  "data-rowid": row.id,
50
50
  "data-pdg-row-kind": "group",
51
51
  "data-pdg-group-key": row.groupKey,
52
- "aria-rowindex": chunkH2LESGMX_cjs.ariaDataRowIndex(index, pinnedTopCount),
52
+ "aria-rowindex": chunkVSAFQTW5_cjs.ariaDataRowIndex(index, pinnedTopCount),
53
53
  "aria-expanded": expanded,
54
54
  "aria-level": 1,
55
55
  onClick: (e) => controller.onRowClick(row.id, {
@@ -63,13 +63,13 @@ function ERPTableGroupRowComponent({
63
63
  }
64
64
  },
65
65
  children: /* @__PURE__ */ jsxRuntime.jsx(
66
- chunkH2LESGMX_cjs.ColumnWindowCells,
66
+ chunkVSAFQTW5_cjs.ColumnWindowCells,
67
67
  {
68
68
  window: colWindow,
69
69
  spacerElement: "td",
70
70
  spacerRole: "presentation",
71
71
  renderColumn: (c, absoluteColIndex) => {
72
- const pin = chunkH2LESGMX_cjs.columnPinCellProps(
72
+ const pin = chunkVSAFQTW5_cjs.columnPinCellProps(
73
73
  c,
74
74
  colWindow.startPinOffsets,
75
75
  colWindow.endPinOffsets
@@ -93,7 +93,7 @@ function ERPTableGroupRowComponent({
93
93
  "td",
94
94
  {
95
95
  role: "gridcell",
96
- "aria-colindex": chunkH2LESGMX_cjs.ariaColIndex(absoluteColIndex),
96
+ "aria-colindex": chunkVSAFQTW5_cjs.ariaColIndex(absoluteColIndex),
97
97
  className: `p-0 h-full overflow-hidden border ${pin.className}`.trim(),
98
98
  "data-columnid": c.fieldName,
99
99
  "data-erp-col-pin": pin["data-erp-col-pin"],
@@ -127,5 +127,5 @@ var ERPTableGroupRow = React__default.default.memo(
127
127
  );
128
128
 
129
129
  exports.ERPTableGroupRow = ERPTableGroupRow;
130
- //# sourceMappingURL=ERPTableGroupRow-J5Z2LRC5.cjs.map
131
- //# sourceMappingURL=ERPTableGroupRow-J5Z2LRC5.cjs.map
130
+ //# sourceMappingURL=ERPTableGroupRow-F2IPDYL5.cjs.map
131
+ //# sourceMappingURL=ERPTableGroupRow-F2IPDYL5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../ui/desktop/ERPTableGroupRow.tsx"],"names":["useColumnWindowOrAll","jsx","ariaDataRowIndex","ColumnWindowCells","columnPinCellProps","ariaColIndex","columnSizeStyle","jsxs","React"],"mappings":"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","file":"ERPTableGroupRow-J5Z2LRC5.cjs","sourcesContent":["import React from 'react';\r\n\r\nimport { columnSizeStyle } from '../../engine/columnWidth';\r\nimport type { UITableController } from '../../infrastructure/ui/UITableController';\r\nimport { ariaColIndex, ariaDataRowIndex } from '../a11y/gridRoles';\r\nimport { columnPinCellProps } from '../columnPin';\r\nimport type { UIRow } from '../type';\r\nimport { useColumnWindowOrAll } from '../virtual/columnWindow';\r\nimport { ColumnWindowCells } from '../virtual/ColumnWindowCells';\r\n\r\nexport type ERPTableGroupRowProps = {\r\n row: UIRow;\r\n index: number;\r\n pinnedTopCount?: number;\r\n table: Pick<\r\n import('../../engine/type').TableViewState,\r\n 'columns' | 'columnWidths' | 'activeCell'\r\n >;\r\n controller: UITableController;\r\n tableKey: string;\r\n isSelected: boolean;\r\n isActive: boolean;\r\n};\r\n\r\n/** Synthetic group header row (PR-121). */\r\nfunction ERPTableGroupRowComponent({\r\n row,\r\n index,\r\n pinnedTopCount = 0,\r\n table,\r\n controller,\r\n isSelected,\r\n isActive,\r\n}: ERPTableGroupRowProps) {\r\n const colWindow = useColumnWindowOrAll(\r\n table.columns ?? [],\r\n table.columnWidths,\r\n );\r\n const expanded = row.groupExpanded !== false;\r\n const groupField = row.groupField;\r\n const label = row.groupKey ?? '';\r\n const hasIndex = colWindow.allVisible.some(\r\n (col) => col.fieldName === 'index' || col.fieldType === 'index',\r\n );\r\n\r\n const toggle = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (row.groupKey != null) controller.toggleRowGroup(row.groupKey);\r\n };\r\n\r\n return (\r\n <tr\r\n role=\"row\"\r\n className={`pdg-group-row font-semibold ${\r\n isSelected ? 'bg-blue-100' : 'bg-blue-blue11'\r\n }${isActive ? ' border-gray-gray8' : ' border-gray-gray5'}`}\r\n data-rowid={row.id}\r\n data-pdg-row-kind=\"group\"\r\n data-pdg-group-key={row.groupKey}\r\n aria-rowindex={ariaDataRowIndex(index, pinnedTopCount)}\r\n aria-expanded={expanded}\r\n aria-level={1}\r\n onClick={(e) =>\r\n controller.onRowClick(row.id, {\r\n ctrlKey: e.ctrlKey,\r\n shiftKey: e.shiftKey,\r\n })\r\n }\r\n onDoubleClick={(e) => {\r\n if (!e.shiftKey && !e.ctrlKey && !e.altKey) {\r\n e.preventDefault();\r\n controller.onRowSelect(row.id);\r\n }\r\n }}\r\n >\r\n <ColumnWindowCells\r\n window={colWindow}\r\n spacerElement=\"td\"\r\n spacerRole=\"presentation\"\r\n renderColumn={(c, absoluteColIndex) => {\r\n const pin = columnPinCellProps(\r\n c,\r\n colWindow.startPinOffsets,\r\n colWindow.endPinOffsets,\r\n );\r\n const isIndex = c.fieldName === 'index' || c.fieldType === 'index';\r\n const isGroupField = groupField != null && c.fieldName === groupField;\r\n const showChevron = isIndex || (isGroupField && !hasIndex);\r\n const cellValue = isGroupField\r\n ? label\r\n : (row.cells[c.fieldName]?.display ??\r\n row.cells[c.fieldName]?.value ??\r\n '');\r\n\r\n const chevron = showChevron ? (\r\n <button\r\n type=\"button\"\r\n className=\"pdg-group-row__chevron inline-flex items-center justify-center w-6 h-6 border-0 bg-transparent cursor-pointer\"\r\n aria-label={expanded ? 'Collapse group' : 'Expand group'}\r\n aria-expanded={expanded}\r\n onClick={toggle}\r\n >\r\n <span aria-hidden>{expanded ? '▾' : '▸'}</span>\r\n </button>\r\n ) : null;\r\n\r\n return (\r\n <td\r\n key={c.fieldName}\r\n role=\"gridcell\"\r\n aria-colindex={ariaColIndex(absoluteColIndex)}\r\n className={`p-0 h-full overflow-hidden border ${pin.className}`.trim()}\r\n data-columnid={c.fieldName}\r\n data-erp-col-pin={pin['data-erp-col-pin']}\r\n style={{\r\n ...columnSizeStyle(\r\n c,\r\n table.columnWidths,\r\n colWindow.layoutWidths,\r\n ),\r\n ...pin.style,\r\n }}\r\n >\r\n {isIndex ? (\r\n <div className=\"flex items-center h-full px-2\">{chevron}</div>\r\n ) : isGroupField ? (\r\n <div className=\"flex items-center gap-1.5 h-full px-2\">\r\n {chevron}\r\n <span>\r\n {label}\r\n {typeof row.groupChildCount === 'number'\r\n ? ` (${row.groupChildCount})`\r\n : ''}\r\n </span>\r\n </div>\r\n ) : (\r\n <div className=\"flex items-center h-full px-2 tabular-nums\">\r\n {cellValue == null || cellValue === ''\r\n ? null\r\n : String(cellValue)}\r\n </div>\r\n )}\r\n </td>\r\n );\r\n }}\r\n />\r\n </tr>\r\n );\r\n}\r\n\r\nexport const ERPTableGroupRow = React.memo(\r\n ERPTableGroupRowComponent,\r\n (prev, next) =>\r\n prev.row === next.row &&\r\n prev.index === next.index &&\r\n prev.controller === next.controller &&\r\n prev.isSelected === next.isSelected &&\r\n prev.isActive === next.isActive &&\r\n prev.table.columns === next.table.columns &&\r\n prev.table.columnWidths === next.table.columnWidths &&\r\n prev.pinnedTopCount === next.pinnedTopCount,\r\n);\r\n"]}
1
+ {"version":3,"sources":["../ui/desktop/ERPTableGroupRow.tsx"],"names":["useColumnWindowOrAll","jsx","ariaDataRowIndex","ColumnWindowCells","columnPinCellProps","ariaColIndex","columnSizeStyle","jsxs","React"],"mappings":"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","file":"ERPTableGroupRow-F2IPDYL5.cjs","sourcesContent":["import React from 'react';\r\n\r\nimport { columnSizeStyle } from '../../engine/columnWidth';\r\nimport type { UITableController } from '../../infrastructure/ui/UITableController';\r\nimport { ariaColIndex, ariaDataRowIndex } from '../a11y/gridRoles';\r\nimport { columnPinCellProps } from '../columnPin';\r\nimport type { UIRow } from '../type';\r\nimport { useColumnWindowOrAll } from '../virtual/columnWindow';\r\nimport { ColumnWindowCells } from '../virtual/ColumnWindowCells';\r\n\r\nexport type ERPTableGroupRowProps = {\r\n row: UIRow;\r\n index: number;\r\n pinnedTopCount?: number;\r\n table: Pick<\r\n import('../../engine/type').TableViewState,\r\n 'columns' | 'columnWidths' | 'activeCell'\r\n >;\r\n controller: UITableController;\r\n tableKey: string;\r\n isSelected: boolean;\r\n isActive: boolean;\r\n};\r\n\r\n/** Synthetic group header row (PR-121). */\r\nfunction ERPTableGroupRowComponent({\r\n row,\r\n index,\r\n pinnedTopCount = 0,\r\n table,\r\n controller,\r\n isSelected,\r\n isActive,\r\n}: ERPTableGroupRowProps) {\r\n const colWindow = useColumnWindowOrAll(\r\n table.columns ?? [],\r\n table.columnWidths,\r\n );\r\n const expanded = row.groupExpanded !== false;\r\n const groupField = row.groupField;\r\n const label = row.groupKey ?? '';\r\n const hasIndex = colWindow.allVisible.some(\r\n (col) => col.fieldName === 'index' || col.fieldType === 'index',\r\n );\r\n\r\n const toggle = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (row.groupKey != null) controller.toggleRowGroup(row.groupKey);\r\n };\r\n\r\n return (\r\n <tr\r\n role=\"row\"\r\n className={`pdg-group-row font-semibold ${\r\n isSelected ? 'bg-blue-100' : 'bg-blue-blue11'\r\n }${isActive ? ' border-gray-gray8' : ' border-gray-gray5'}`}\r\n data-rowid={row.id}\r\n data-pdg-row-kind=\"group\"\r\n data-pdg-group-key={row.groupKey}\r\n aria-rowindex={ariaDataRowIndex(index, pinnedTopCount)}\r\n aria-expanded={expanded}\r\n aria-level={1}\r\n onClick={(e) =>\r\n controller.onRowClick(row.id, {\r\n ctrlKey: e.ctrlKey,\r\n shiftKey: e.shiftKey,\r\n })\r\n }\r\n onDoubleClick={(e) => {\r\n if (!e.shiftKey && !e.ctrlKey && !e.altKey) {\r\n e.preventDefault();\r\n controller.onRowSelect(row.id);\r\n }\r\n }}\r\n >\r\n <ColumnWindowCells\r\n window={colWindow}\r\n spacerElement=\"td\"\r\n spacerRole=\"presentation\"\r\n renderColumn={(c, absoluteColIndex) => {\r\n const pin = columnPinCellProps(\r\n c,\r\n colWindow.startPinOffsets,\r\n colWindow.endPinOffsets,\r\n );\r\n const isIndex = c.fieldName === 'index' || c.fieldType === 'index';\r\n const isGroupField = groupField != null && c.fieldName === groupField;\r\n const showChevron = isIndex || (isGroupField && !hasIndex);\r\n const cellValue = isGroupField\r\n ? label\r\n : (row.cells[c.fieldName]?.display ??\r\n row.cells[c.fieldName]?.value ??\r\n '');\r\n\r\n const chevron = showChevron ? (\r\n <button\r\n type=\"button\"\r\n className=\"pdg-group-row__chevron inline-flex items-center justify-center w-6 h-6 border-0 bg-transparent cursor-pointer\"\r\n aria-label={expanded ? 'Collapse group' : 'Expand group'}\r\n aria-expanded={expanded}\r\n onClick={toggle}\r\n >\r\n <span aria-hidden>{expanded ? '▾' : '▸'}</span>\r\n </button>\r\n ) : null;\r\n\r\n return (\r\n <td\r\n key={c.fieldName}\r\n role=\"gridcell\"\r\n aria-colindex={ariaColIndex(absoluteColIndex)}\r\n className={`p-0 h-full overflow-hidden border ${pin.className}`.trim()}\r\n data-columnid={c.fieldName}\r\n data-erp-col-pin={pin['data-erp-col-pin']}\r\n style={{\r\n ...columnSizeStyle(\r\n c,\r\n table.columnWidths,\r\n colWindow.layoutWidths,\r\n ),\r\n ...pin.style,\r\n }}\r\n >\r\n {isIndex ? (\r\n <div className=\"flex items-center h-full px-2\">{chevron}</div>\r\n ) : isGroupField ? (\r\n <div className=\"flex items-center gap-1.5 h-full px-2\">\r\n {chevron}\r\n <span>\r\n {label}\r\n {typeof row.groupChildCount === 'number'\r\n ? ` (${row.groupChildCount})`\r\n : ''}\r\n </span>\r\n </div>\r\n ) : (\r\n <div className=\"flex items-center h-full px-2 tabular-nums\">\r\n {cellValue == null || cellValue === ''\r\n ? null\r\n : String(cellValue)}\r\n </div>\r\n )}\r\n </td>\r\n );\r\n }}\r\n />\r\n </tr>\r\n );\r\n}\r\n\r\nexport const ERPTableGroupRow = React.memo(\r\n ERPTableGroupRowComponent,\r\n (prev, next) =>\r\n prev.row === next.row &&\r\n prev.index === next.index &&\r\n prev.controller === next.controller &&\r\n prev.isSelected === next.isSelected &&\r\n prev.isActive === next.isActive &&\r\n prev.table.columns === next.table.columns &&\r\n prev.table.columnWidths === next.table.columnWidths &&\r\n prev.pinnedTopCount === next.pinnedTopCount,\r\n);\r\n"]}
@@ -1,4 +1,4 @@
1
- import { G as GridEvent, a as Unsubscribe, b as GridSession, c as CollectionScope, T as TableSnapShot, E as EventStore } from './GridSession-Bc7UIawO.js';
1
+ import { G as GridEvent, a as Unsubscribe, b as GridSession, c as CollectionScope, T as TableSnapShot, E as EventStore } from './GridSession-CeIfVFck.js';
2
2
 
3
3
  type ExportColumnDef = {
4
4
  readonly fieldName: string;
@@ -1,4 +1,4 @@
1
- import { G as GridEvent, a as Unsubscribe, b as GridSession, c as CollectionScope, T as TableSnapShot, E as EventStore } from './GridSession-B-9lLcoB.cjs';
1
+ import { G as GridEvent, a as Unsubscribe, b as GridSession, c as CollectionScope, T as TableSnapShot, E as EventStore } from './GridSession-CmQn2RnL.cjs';
2
2
 
3
3
  type ExportColumnDef = {
4
4
  readonly fieldName: string;
@@ -507,12 +507,18 @@ type ColumnVisibilityRule = {
507
507
  kind: 'whenTableType';
508
508
  tableType: string;
509
509
  };
510
+ /**
511
+ * Remote flag/response resolution. The response callbacks use METHOD syntax
512
+ * (bivariant) so a host-typed config (`TResponse` = the host's query response)
513
+ * stays assignable to the default `ResolveOnConfig<K>` (`TResponse` = `unknown`)
514
+ * used inside the engine.
515
+ */
510
516
  interface ResolveOnConfig<K = unknown, TResponse = unknown> {
511
517
  endpoint: string;
512
518
  fieldName: string;
513
519
  buildParams: (row: Record<string, unknown>) => Record<string, unknown>;
514
- getResponse?: (response: TResponse, row: Row) => unknown;
515
- mapFlags?: (response: TResponse) => Record<string, boolean>;
520
+ getResponse?(response: TResponse, row: Row): unknown;
521
+ mapFlags?(response: TResponse): Record<string, boolean>;
516
522
  }
517
523
  type ColumnAccessControl = {
518
524
  allowRoles?: string[];
@@ -529,7 +535,8 @@ interface IDependOn {
529
535
  }
530
536
  type DefaultOptionType = {
531
537
  value?: string | number;
532
- label?: string;
538
+ /** Renderable label; the UI-aware public type narrows it to `ReactNode`. */
539
+ label?: unknown;
533
540
  title?: string;
534
541
  [key: string]: unknown;
535
542
  };
@@ -578,13 +585,19 @@ interface ColumnSchema<T = unknown, K = unknown> {
578
585
  label: string;
579
586
  value: string | number;
580
587
  }[];
581
- indexOptions?: (...args: unknown[]) => unknown[];
582
- onChange?: (...args: unknown[]) => void;
588
+ /**
589
+ * Engine-side (loose) callback shapes. Declared with METHOD syntax
590
+ * (bivariant) so the precise host-facing signatures of the public
591
+ * `ColumnSchema` (UIRow, UITableController, ItemType, ...) stay assignable.
592
+ */
593
+ indexOptions?(...args: unknown[]): unknown[];
594
+ onChange?(...args: unknown[]): void;
583
595
  displayFormat?: (value: unknown) => unknown;
584
596
  minWidth?: number;
585
- style?: Record<string, string | number>;
597
+ /** Inline style object (the public type narrows it to `CSSProperties`). */
598
+ style?: object;
586
599
  popUpWidth?: number;
587
- dynamicSelectFilterOption?: (inputValue: string, option: unknown) => boolean;
600
+ dynamicSelectFilterOption?(inputValue: string, option: unknown): boolean;
588
601
  labelValue?: 'selectDisplay' | 'selectValue';
589
602
  /**
590
603
  * ColumnDef-only fields restored by `toColumnDef` (PR-81).
@@ -892,6 +905,27 @@ declare function pageWindow(page: number, pageSize: number): {
892
905
  * Typing updates drafts; Commit writes; Cancel discards.
893
906
  */
894
907
  type CellEditType = 'cell' | 'fullRow';
908
+ /**
909
+ * When typed values become durable.
910
+ * - `immediate`: every editor change is written to the table at once (the
911
+ * draft only mirrors it for a stable input). Host reads — `getRowView`,
912
+ * snapshots, totals, `computed` / `resolveOn` — always see what the user
913
+ * typed. `Esc` ends editing and keeps the value. Default for
914
+ * `persistence: 'paged-idb'` (the arianERP document-grid contract).
915
+ * - `deferred`: typing only updates a session draft; the value is written when
916
+ * the edit is committed (move / Enter / Tab / focus leaves the grid / a
917
+ * durable read such as `getFullSnapShot`). `Esc` discards the draft.
918
+ * Default for the event-sourced mode (no EventStore write per keystroke).
919
+ */
920
+ type CellEditCommit = 'immediate' | 'deferred';
921
+ /**
922
+ * What `Enter` does on an active cell.
923
+ * - `nextCell`: like `Tab` — next editable cell of the row, then the first
924
+ * cell of the next row; past the last row a new empty row is added.
925
+ * `Shift+Enter` goes back. (Default; the data-entry behaviour.)
926
+ * - `down`: commit and move to the cell below (spreadsheet style).
927
+ */
928
+ type EnterNavigation = 'nextCell' | 'down';
895
929
  type CellEditValue = {
896
930
  value: unknown;
897
931
  display: unknown;
@@ -901,10 +935,15 @@ type CellEditSession = {
901
935
  /** Focused column while editing. */
902
936
  columnId: string;
903
937
  editType: CellEditType;
904
- /** Values at edit start — restored on cancel. */
938
+ /**
939
+ * Values at edit start — restored on cancel. Moves forward when the draft
940
+ * is written without ending the session (immediate commit / flush).
941
+ */
905
942
  baseline: Readonly<Record<string, CellEditValue>>;
906
943
  /** Working copies. */
907
944
  drafts: Record<string, CellEditValue>;
945
+ /** Writes of one session share it, so undo reverts the whole edit at once. */
946
+ correlationId: string;
908
947
  };
909
948
  type CellEditOptions = {
910
949
  /** Default true — activate cell starts edit. False ⇒ need Enter / double-click / api.startEditingCell. */
@@ -913,6 +952,10 @@ type CellEditOptions = {
913
952
  stopEditingWhenCellsLoseFocus: boolean;
914
953
  /** Default `cell`. `fullRow` edits every editable column on the row. */
915
954
  editType: CellEditType;
955
+ /** Default `deferred` (createGrid picks `immediate` for `paged-idb`). */
956
+ commit: CellEditCommit;
957
+ /** Default `nextCell`. */
958
+ enterNavigation: EnterNavigation;
916
959
  };
917
960
 
918
961
  /**
@@ -925,6 +968,38 @@ type IRequestConfig = {
925
968
  method?: 'GET' | 'POST';
926
969
  [key: string]: unknown;
927
970
  };
971
+ /**
972
+ * Envelope returned by arianERP query endpoints. Structural twin of the host's
973
+ * `IBaseQueryResponse<T>`: it is the response type handed to
974
+ * `ColumnSchema.resolveOn.getResponse` / `mapFlags`.
975
+ */
976
+ interface IBaseQueryResponse<T = unknown> {
977
+ Result: string;
978
+ Error?: string;
979
+ ErrorCode?: string;
980
+ InnerException?: string;
981
+ AdditionalInfo?: unknown;
982
+ Data: T;
983
+ TotalCount: number;
984
+ ReturnCount: number;
985
+ ReadFromCache: boolean;
986
+ ExportFile?: string;
987
+ ExportString?: string;
988
+ YearPlanId?: number;
989
+ Url?: string;
990
+ }
991
+ /**
992
+ * `RemoteApi` as seen by host `computed` callbacks: `request()` resolves to the
993
+ * ERP envelope by default. The payload is `unknown`; hosts name its shape
994
+ * through the type argument (`request<IBaseQueryResponse<Row[]>>(…)`).
995
+ */
996
+ interface HostRemoteApi {
997
+ request<TResponse = IBaseQueryResponse<unknown>>(input: {
998
+ endpoint: string;
999
+ params?: Record<string, unknown>;
1000
+ method?: 'GET' | 'POST';
1001
+ }): Promise<TResponse>;
1002
+ }
928
1003
 
929
1004
  interface UIRow {
930
1005
  id: number;
@@ -2038,8 +2113,14 @@ declare class SparseRowIndex<T> {
2038
2113
  private orderedIds;
2039
2114
  /** id → position in `orderedIds` (PR-99). */
2040
2115
  private readonly posById;
2116
+ private revisionCount;
2041
2117
  constructor(entries?: Iterable<readonly [number, T]>);
2042
2118
  get size(): number;
2119
+ /**
2120
+ * Bumped by every change of ids, order or values. O(1) change detection for
2121
+ * subscribers (a sort keeps `size` but changes the order).
2122
+ */
2123
+ get revision(): number;
2043
2124
  getOrderedIds(): readonly number[];
2044
2125
  getById(id: number): T | undefined;
2045
2126
  /** O(1) position of `id`, or `-1`. */
@@ -2109,6 +2190,15 @@ declare class TableEngine {
2109
2190
  /** Durable command store id (for CHANGE_CELL_* on edit commit). */
2110
2191
  private commandStore?;
2111
2192
  private cellEditOptions;
2193
+ /**
2194
+ * Cell writes coming from editors / host input, executed one at a time in
2195
+ * arrival order. Consecutive values for the same cell coalesce (latest
2196
+ * wins). Until a write landed, the queued value is what the cell shows.
2197
+ */
2198
+ private readonly cellWrites;
2199
+ private cellWriteChain;
2200
+ /** > 0 while a queued write executes (re-entrant settle must not wait on itself). */
2201
+ private cellWriteDepth;
2112
2202
  readonly errors: Map<string, CellError>;
2113
2203
  readonly searchResult: Map<string, CellError>;
2114
2204
  private readonly asyncCellCache;
@@ -2234,7 +2324,45 @@ declare class TableEngine {
2234
2324
  setCellEditOptions(partial: Partial<CellEditOptions>): void;
2235
2325
  getCellEditOptions(): CellEditOptions;
2236
2326
  getCellEdit(): CellEditSession | null;
2327
+ /**
2328
+ * What the cell editor shows: the session draft, else a value that was
2329
+ * typed but whose write has not reached the table yet (no flicker back to
2330
+ * the old value while it is in flight). `null` = show the table value.
2331
+ */
2237
2332
  getEditDraft(rowId: number, columnId: string): CellEditValue | null;
2333
+ /** Editor / host value for a cell (`UI_CELL_CHANGE`). Resolves once it is durable. */
2334
+ inputCellValue(rowId: number, columnId: string, value: unknown): Promise<void>;
2335
+ /** Editor / host display label for a cell (`UI_CELL_CHANGE_DISPLAY`). */
2336
+ inputCellDisplay(rowId: number, columnId: string, display: unknown): Promise<void>;
2337
+ private inputCell;
2338
+ private enqueueCellWrite;
2339
+ private runCellWrite;
2340
+ /**
2341
+ * Resolves when every queued cell write reached the table. Called from inside
2342
+ * a write (re-entrant) it returns at once instead of waiting on itself.
2343
+ */
2344
+ settleCellWrites(): Promise<void>;
2345
+ /** Queues CHANGE_CELL_* for `columnIds` of `session`; returns the value writes. */
2346
+ private queueDraftWrites;
2347
+ /**
2348
+ * Make what the user typed durable WITHOUT ending the edit: dirty drafts are
2349
+ * written and become the session baseline, then all queued writes settle.
2350
+ * Every durable read (snapshot, row stream, export) calls this first, so a
2351
+ * save never misses the value still in the editor.
2352
+ */
2353
+ flushCellEdit(): Promise<void>;
2354
+ /**
2355
+ * Focus / pointer moved outside the grid. Deferred commit ends the edit per
2356
+ * `stopEditingWhenCellsLoseFocus`; immediate commit has nothing pending and
2357
+ * keeps the editor (legacy table behaviour).
2358
+ */
2359
+ leaveGridFocus(): Promise<void>;
2360
+ /**
2361
+ * Before dispose / unmount: commit (or drop, when
2362
+ * `stopEditingWhenCellsLoseFocus` is false) the open edit and wait until
2363
+ * every queued write is durable.
2364
+ */
2365
+ settleEditsForTeardown(): Promise<void>;
2238
2366
  isEditingCell(rowId: number, columnId: string): boolean;
2239
2367
  /**
2240
2368
  * Begin a session-only draft for the cell (or full row). Does not touch EventStore.
@@ -2271,6 +2399,7 @@ declare class TableEngine {
2271
2399
  private validateCellFull;
2272
2400
  private finishValidation;
2273
2401
  private collectValidationJobs;
2402
+ /** Replaces the error map; true when the set of errors / messages changed. */
2274
2403
  private applyValidationErrors;
2275
2404
  private runValidationSync;
2276
2405
  private runValidationAsync;
@@ -2325,6 +2454,8 @@ declare class ChangelogProjection {
2325
2454
  private subscribers;
2326
2455
  private seenEventIds;
2327
2456
  private started;
2457
+ /** Incremented by start() and stop(); invalidates an in-flight catch-up. */
2458
+ private run;
2328
2459
  constructor(eventStore: EventStore);
2329
2460
  /**
2330
2461
  * Catch up via readAll, then subscribe for live events.
@@ -2332,6 +2463,8 @@ declare class ChangelogProjection {
2332
2463
  */
2333
2464
  start(): Promise<void>;
2334
2465
  stop(): void;
2466
+ /** Stop and drop all subscribers (grid teardown). Entries stay readable. */
2467
+ dispose(): void;
2335
2468
  query(filter?: ChangelogQuery): ChangelogEntry[];
2336
2469
  count(filter?: ChangelogQuery): number;
2337
2470
  subscribe(notify: (entries: ChangelogEntry[]) => void, filter?: ChangelogQuery): Unsubscribe;
@@ -2489,4 +2622,4 @@ interface GridSession {
2489
2622
  subscribeViewport(listener: () => void): () => void;
2490
2623
  }
2491
2624
 
2492
- export { type CycleSortModelOptions as $, type AggFunc as A, type AriaSortValue as B, type ColumnSchema as C, type DefaultOptionType as D, type EventStore as E, type FilterModel as F, type GridEvent as G, HistoryPanelViewModel as H, type ArrowDirection as I, type BooleanColumnFilter as J, type BooleanFilterOp as K, type BuiltinFilterKind as L, type MobileTableViewState as M, type CellRangeBounds as N, type CellRangeSelection as O, type ColumnDefBridge as P, type ColumnField as Q, Row as R, type ColumnFilter as S, type TableSnapShot as T, type UIRow as U, type ValidCell as V, type WindowedTableRepository as W, type ColumnPinned as X, type CombinedColumnFilter as Y, type CustomColumnFilter as Z, type CustomFilterFn as _, type Unsubscribe as a, sortPriorityForColumn as a$, type DateColumnFilter as a0, type DateFilterOp as a1, type FilterAccessor as a2, type FilterDef as a3, type FilterJoin as a4, HEADER_SORT_CLICK_MAX_MOVE_PX as a5, INDEX_COL_ID as a6, type ItemType as a7, type NumberColumnFilter as a8, type NumberFilterOp as a9, compareSortValues as aA, compareTypedValues as aB, createEmptyCellRangeSelection as aC, ctrlClickCell as aD, cycleSortModel as aE, defaultGetRowId as aF, ensureIndexColumnDef as aG, isBlankSortValue as aH, isCellInRange as aI, isColumnFilterActive as aJ, isHeaderColumnSortable as aK, isServerRowModel as aL, isWindowedRepository as aM, mapRowDataToRowInputs as aN, mergeCellRanges as aO, moveCellAddress as aP, normalizeCellRange as aQ, normalizeDigits as aR, normalizeFilterText as aS, pageWindow as aT, rangeFromAnchorFocus as aU, rangesOverlap as aV, resolveBuiltinFilterKind as aW, selectAllCellRanges as aX, shiftArrowCell as aY, shiftClickCell as aZ, shouldCommitHeaderSortClick as a_, type PersistedRowRecord as aa, type RowModelType as ab, RowStateEnum as ac, type SetColumnFilter as ad, type SetFilterOp as ae, type SimpleColumnFilter as af, type SortAccessor as ag, type SortDirection as ah, type SortModel as ai, type SortModelItem as aj, type SortValueComparator as ak, SparseRowIndex as al, type TextColumnFilter as am, type TextFilterOp as an, type ViewIntent as ao, Viewport as ap, type VisibleRange as aq, applyFilter as ar, applyHostRowDataToTable as as, applySort as at, ariaSortForColumn as au, clampColIndex as av, clampRowIndex as aw, clickCell as ax, colIndex as ay, collectUniqueFilterValues as az, type GridSession as b, type ExportRequestedPayload as b0, type ImportRequestedPayload as b1, type IRule as b2, type ColumnVisibilityRule as b3, type IDependOn as b4, type Actor$1 as b5, type ColDefOrGroup as b6, type TableRepository as b7, type PermissionPolicy as b8, type CellEditType as b9, type IMultiSelectConfig as ba, type ColumnGroupDef as bb, type ColumnGroupMeta as bc, type ColumnGroupPathEntry as bd, isColumnGroupDef as be, type CollectionScope as c, type CellRange as d, TableEngine as e, Table as f, type TableActions as g, type GridSearchState as h, ChangelogProjection as i, CellUndoStack as j, type TableViewState as k, type ColumnDef as l, type GetRowId as m, Cell as n, type ChangelogQuery as o, type ChangelogEntry as p, type HistoryQuery as q, type HistoryItem as r, type ActiveCell as s, type CellEditValue as t, type MobileEditorState as u, type ValidationCallbackResult as v, type CellAddress as w, type FieldType as x, type AggFuncName as y, type AppendResult as z };
2625
+ export { type CycleSortModelOptions as $, type AggFunc as A, type AriaSortValue as B, type ColumnSchema as C, type DefaultOptionType as D, type EventStore as E, type FilterModel as F, type GridEvent as G, HistoryPanelViewModel as H, type ArrowDirection as I, type BooleanColumnFilter as J, type BooleanFilterOp as K, type BuiltinFilterKind as L, type MobileTableViewState as M, type CellRangeBounds as N, type CellRangeSelection as O, type ColumnDefBridge as P, type ColumnField as Q, Row as R, type ColumnFilter as S, type TableSnapShot as T, type UIRow as U, type ValidCell as V, type WindowedTableRepository as W, type ColumnPinned as X, type CombinedColumnFilter as Y, type CustomColumnFilter as Z, type CustomFilterFn as _, type Unsubscribe as a, sortPriorityForColumn as a$, type DateColumnFilter as a0, type DateFilterOp as a1, type FilterAccessor as a2, type FilterDef as a3, type FilterJoin as a4, HEADER_SORT_CLICK_MAX_MOVE_PX as a5, INDEX_COL_ID as a6, type ItemType as a7, type NumberColumnFilter as a8, type NumberFilterOp as a9, compareSortValues as aA, compareTypedValues as aB, createEmptyCellRangeSelection as aC, ctrlClickCell as aD, cycleSortModel as aE, defaultGetRowId as aF, ensureIndexColumnDef as aG, isBlankSortValue as aH, isCellInRange as aI, isColumnFilterActive as aJ, isHeaderColumnSortable as aK, isServerRowModel as aL, isWindowedRepository as aM, mapRowDataToRowInputs as aN, mergeCellRanges as aO, moveCellAddress as aP, normalizeCellRange as aQ, normalizeDigits as aR, normalizeFilterText as aS, pageWindow as aT, rangeFromAnchorFocus as aU, rangesOverlap as aV, resolveBuiltinFilterKind as aW, selectAllCellRanges as aX, shiftArrowCell as aY, shiftClickCell as aZ, shouldCommitHeaderSortClick as a_, type PersistedRowRecord as aa, type RowModelType as ab, RowStateEnum as ac, type SetColumnFilter as ad, type SetFilterOp as ae, type SimpleColumnFilter as af, type SortAccessor as ag, type SortDirection as ah, type SortModel as ai, type SortModelItem as aj, type SortValueComparator as ak, SparseRowIndex as al, type TextColumnFilter as am, type TextFilterOp as an, type ViewIntent as ao, Viewport as ap, type VisibleRange as aq, applyFilter as ar, applyHostRowDataToTable as as, applySort as at, ariaSortForColumn as au, clampColIndex as av, clampRowIndex as aw, clickCell as ax, colIndex as ay, collectUniqueFilterValues as az, type GridSession as b, type ExportRequestedPayload as b0, type ImportRequestedPayload as b1, type IRule as b2, type ColumnVisibilityRule as b3, type IDependOn as b4, type ResolveOnConfig as b5, type IBaseQueryResponse as b6, type HostRemoteApi as b7, type Actor$1 as b8, type ColDefOrGroup as b9, type TableRepository as ba, type PermissionPolicy as bb, type CellEditType as bc, type CellEditCommit as bd, type EnterNavigation as be, type IMultiSelectConfig as bf, type ColumnGroupDef as bg, type ColumnGroupMeta as bh, type ColumnGroupPathEntry as bi, isColumnGroupDef as bj, type CollectionScope as c, type CellRange as d, TableEngine as e, Table as f, type TableActions as g, type GridSearchState as h, ChangelogProjection as i, CellUndoStack as j, type TableViewState as k, type ColumnDef as l, type GetRowId as m, Cell as n, type ChangelogQuery as o, type ChangelogEntry as p, type HistoryQuery as q, type HistoryItem as r, type ActiveCell as s, type CellEditValue as t, type MobileEditorState as u, type ValidationCallbackResult as v, type CellAddress as w, type FieldType as x, type AggFuncName as y, type AppendResult as z };