@multiplatform.one/table 7.10.0 → 7.15.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 (307) hide show
  1. package/README.md +61 -1
  2. package/dist/cjs/components/ChildTable/index.cjs +8 -2
  3. package/dist/cjs/components/ChildTable/index.native.js +8 -2
  4. package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
  5. package/dist/cjs/components/ColumnHeaderFilter/index.cjs +77 -111
  6. package/dist/cjs/components/ColumnHeaderFilter/index.native.js +89 -129
  7. package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
  8. package/dist/cjs/components/DataTable/DataTableCardControls.cjs +90 -54
  9. package/dist/cjs/components/DataTable/DataTableCardControls.native.js +93 -56
  10. package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
  11. package/dist/cjs/components/DataTable/DataTableRoot.cjs +68 -9
  12. package/dist/cjs/components/DataTable/DataTableRoot.native.js +78 -11
  13. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  14. package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +72 -70
  15. package/dist/cjs/components/DataTableCell/index.cjs +2 -2
  16. package/dist/cjs/components/DataTableCell/index.native.js +2 -11
  17. package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
  18. package/dist/cjs/components/DataTableDateFilter/index.cjs +135 -158
  19. package/dist/cjs/components/DataTableDateFilter/index.native.js +153 -183
  20. package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
  21. package/dist/cjs/components/DataTableExport/index.cjs +122 -139
  22. package/dist/cjs/components/DataTableExport/index.native.js +135 -157
  23. package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
  24. package/dist/cjs/components/DataTableFilterButton/index.cjs +14 -0
  25. package/dist/cjs/components/DataTableFilterButton/index.native.js +15 -0
  26. package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
  27. package/dist/cjs/components/DataTableGrouping/index.cjs +192 -212
  28. package/dist/cjs/components/DataTableGrouping/index.native.js +209 -230
  29. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  30. package/dist/cjs/components/DataTableSearch/index.cjs +103 -115
  31. package/dist/cjs/components/DataTableSearch/index.native.js +111 -123
  32. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
  33. package/dist/cjs/components/DataTableToolbar/index.cjs +161 -101
  34. package/dist/cjs/components/DataTableToolbar/index.native.js +168 -109
  35. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  36. package/dist/cjs/components/DataTableViewOptions/index.cjs +38 -54
  37. package/dist/cjs/components/DataTableViewOptions/index.native.js +40 -56
  38. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  39. package/dist/cjs/components/FilterOperatorValueEditor/index.cjs +3 -11
  40. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js +3 -11
  41. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  42. package/dist/cjs/components/SimpleTable/index.cjs +2 -6
  43. package/dist/cjs/components/SimpleTable/index.native.js +2 -6
  44. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  45. package/dist/cjs/components/TableInput/RowDetailEditor.cjs +190 -0
  46. package/dist/cjs/components/TableInput/RowDetailEditor.native.js +172 -0
  47. package/dist/cjs/components/TableInput/RowDetailEditor.native.js.map +1 -0
  48. package/dist/cjs/components/TableInput/index.cjs +42 -5
  49. package/dist/cjs/components/TableInput/index.native.js +64 -1
  50. package/dist/cjs/components/TableInput/index.native.js.map +1 -1
  51. package/dist/cjs/components/TableInput/shared.cjs +8 -0
  52. package/dist/cjs/components/TableInput/shared.native.js +10 -0
  53. package/dist/cjs/components/TableInput/shared.native.js.map +1 -1
  54. package/dist/cjs/hooks/useDataTable.cjs +43 -2
  55. package/dist/cjs/hooks/useDataTable.native.js +49 -3
  56. package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
  57. package/dist/cjs/index.native.js.map +1 -1
  58. package/dist/cjs/utils/rowPress.cjs +4 -1
  59. package/dist/cjs/utils/rowPress.native.js +4 -1
  60. package/dist/cjs/utils/rowPress.native.js.map +1 -1
  61. package/dist/esm/components/ChildTable/index.mjs +8 -2
  62. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  63. package/dist/esm/components/ChildTable/index.native.js +8 -2
  64. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  65. package/dist/esm/components/ColumnHeaderFilter/index.mjs +80 -114
  66. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
  67. package/dist/esm/components/ColumnHeaderFilter/index.native.js +92 -132
  68. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
  69. package/dist/esm/components/DataTable/DataTableCardControls.mjs +89 -54
  70. package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -1
  71. package/dist/esm/components/DataTable/DataTableCardControls.native.js +92 -56
  72. package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -1
  73. package/dist/esm/components/DataTable/DataTableRoot.mjs +70 -11
  74. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  75. package/dist/esm/components/DataTable/DataTableRoot.native.js +80 -13
  76. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  77. package/dist/esm/components/DataTableCell/CellModalEditor.mjs +76 -74
  78. package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  79. package/dist/esm/components/DataTableCell/index.mjs +3 -3
  80. package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
  81. package/dist/esm/components/DataTableCell/index.native.js +3 -12
  82. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  83. package/dist/esm/components/DataTableDateFilter/index.mjs +137 -160
  84. package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
  85. package/dist/esm/components/DataTableDateFilter/index.native.js +155 -185
  86. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
  87. package/dist/esm/components/DataTableExport/index.mjs +124 -141
  88. package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
  89. package/dist/esm/components/DataTableExport/index.native.js +137 -159
  90. package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
  91. package/dist/esm/components/DataTableFilterButton/index.mjs +14 -1
  92. package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
  93. package/dist/esm/components/DataTableFilterButton/index.native.js +15 -1
  94. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
  95. package/dist/esm/components/DataTableGrouping/index.mjs +194 -214
  96. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  97. package/dist/esm/components/DataTableGrouping/index.native.js +211 -232
  98. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  99. package/dist/esm/components/DataTableSearch/index.mjs +105 -117
  100. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
  101. package/dist/esm/components/DataTableSearch/index.native.js +113 -125
  102. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  103. package/dist/esm/components/DataTableToolbar/index.mjs +165 -106
  104. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  105. package/dist/esm/components/DataTableToolbar/index.native.js +172 -114
  106. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  107. package/dist/esm/components/DataTableViewOptions/index.mjs +40 -56
  108. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  109. package/dist/esm/components/DataTableViewOptions/index.native.js +42 -58
  110. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  111. package/dist/esm/components/FilterOperatorValueEditor/index.mjs +3 -11
  112. package/dist/esm/components/FilterOperatorValueEditor/index.mjs.map +1 -1
  113. package/dist/esm/components/FilterOperatorValueEditor/index.native.js +3 -11
  114. package/dist/esm/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  115. package/dist/esm/components/SimpleTable/index.mjs +3 -7
  116. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  117. package/dist/esm/components/SimpleTable/index.native.js +3 -7
  118. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  119. package/dist/esm/components/TableInput/RowDetailEditor.mjs +165 -0
  120. package/dist/esm/components/TableInput/RowDetailEditor.mjs.map +1 -0
  121. package/dist/esm/components/TableInput/RowDetailEditor.native.js +144 -0
  122. package/dist/esm/components/TableInput/RowDetailEditor.native.js.map +1 -0
  123. package/dist/esm/components/TableInput/index.mjs +42 -5
  124. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  125. package/dist/esm/components/TableInput/index.native.js +64 -1
  126. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  127. package/dist/esm/components/TableInput/shared.mjs +7 -1
  128. package/dist/esm/components/TableInput/shared.mjs.map +1 -1
  129. package/dist/esm/components/TableInput/shared.native.js +9 -1
  130. package/dist/esm/components/TableInput/shared.native.js.map +1 -1
  131. package/dist/esm/hooks/useDataTable.mjs +43 -2
  132. package/dist/esm/hooks/useDataTable.mjs.map +1 -1
  133. package/dist/esm/hooks/useDataTable.native.js +49 -3
  134. package/dist/esm/hooks/useDataTable.native.js.map +1 -1
  135. package/dist/esm/index.mjs.map +1 -1
  136. package/dist/esm/index.native.js.map +1 -1
  137. package/dist/esm/utils/rowPress.mjs +4 -1
  138. package/dist/esm/utils/rowPress.mjs.map +1 -1
  139. package/dist/esm/utils/rowPress.native.js +4 -1
  140. package/dist/esm/utils/rowPress.native.js.map +1 -1
  141. package/dist/jsx/components/ChildTable/index.mjs +8 -2
  142. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  143. package/dist/jsx/components/ChildTable/index.native.js +8 -2
  144. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  145. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +80 -114
  146. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
  147. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +89 -129
  148. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
  149. package/dist/jsx/components/DataTable/DataTableCardControls.mjs +89 -54
  150. package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -1
  151. package/dist/jsx/components/DataTable/DataTableCardControls.native.js +93 -56
  152. package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -1
  153. package/dist/jsx/components/DataTable/DataTableRoot.mjs +70 -11
  154. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  155. package/dist/jsx/components/DataTable/DataTableRoot.native.js +78 -11
  156. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  157. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +76 -74
  158. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  159. package/dist/jsx/components/DataTableCell/index.mjs +3 -3
  160. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
  161. package/dist/jsx/components/DataTableCell/index.native.js +2 -11
  162. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  163. package/dist/jsx/components/DataTableDateFilter/index.mjs +137 -160
  164. package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
  165. package/dist/jsx/components/DataTableDateFilter/index.native.js +153 -183
  166. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
  167. package/dist/jsx/components/DataTableExport/index.mjs +124 -141
  168. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
  169. package/dist/jsx/components/DataTableExport/index.native.js +135 -157
  170. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
  171. package/dist/jsx/components/DataTableFilterButton/index.mjs +14 -1
  172. package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
  173. package/dist/jsx/components/DataTableFilterButton/index.native.js +15 -0
  174. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
  175. package/dist/jsx/components/DataTableGrouping/index.mjs +194 -214
  176. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  177. package/dist/jsx/components/DataTableGrouping/index.native.js +209 -230
  178. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  179. package/dist/jsx/components/DataTableSearch/index.mjs +105 -117
  180. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
  181. package/dist/jsx/components/DataTableSearch/index.native.js +111 -123
  182. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  183. package/dist/jsx/components/DataTableToolbar/index.mjs +165 -106
  184. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  185. package/dist/jsx/components/DataTableToolbar/index.native.js +168 -109
  186. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  187. package/dist/jsx/components/DataTableViewOptions/index.mjs +40 -56
  188. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  189. package/dist/jsx/components/DataTableViewOptions/index.native.js +40 -56
  190. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  191. package/dist/jsx/components/FilterOperatorValueEditor/index.mjs +3 -11
  192. package/dist/jsx/components/FilterOperatorValueEditor/index.mjs.map +1 -1
  193. package/dist/jsx/components/FilterOperatorValueEditor/index.native.js +3 -11
  194. package/dist/jsx/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  195. package/dist/jsx/components/SimpleTable/index.mjs +3 -7
  196. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  197. package/dist/jsx/components/SimpleTable/index.native.js +2 -6
  198. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  199. package/dist/jsx/components/TableInput/RowDetailEditor.mjs +165 -0
  200. package/dist/jsx/components/TableInput/RowDetailEditor.mjs.map +1 -0
  201. package/dist/jsx/components/TableInput/RowDetailEditor.native.js +172 -0
  202. package/dist/jsx/components/TableInput/RowDetailEditor.native.js.map +1 -0
  203. package/dist/jsx/components/TableInput/index.mjs +42 -5
  204. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  205. package/dist/jsx/components/TableInput/index.native.js +64 -1
  206. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  207. package/dist/jsx/components/TableInput/shared.mjs +7 -1
  208. package/dist/jsx/components/TableInput/shared.mjs.map +1 -1
  209. package/dist/jsx/components/TableInput/shared.native.js +10 -0
  210. package/dist/jsx/components/TableInput/shared.native.js.map +1 -1
  211. package/dist/jsx/hooks/useDataTable.mjs +43 -2
  212. package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
  213. package/dist/jsx/hooks/useDataTable.native.js +49 -3
  214. package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
  215. package/dist/jsx/index.js.map +1 -1
  216. package/dist/jsx/index.mjs.map +1 -1
  217. package/dist/jsx/index.native.js.map +1 -1
  218. package/dist/jsx/utils/rowPress.mjs +4 -1
  219. package/dist/jsx/utils/rowPress.mjs.map +1 -1
  220. package/dist/jsx/utils/rowPress.native.js +4 -1
  221. package/dist/jsx/utils/rowPress.native.js.map +1 -1
  222. package/package.json +16 -16
  223. package/src/components/ChildTable/childTable.cellHidden.spec.tsx +57 -0
  224. package/src/components/ChildTable/childTable.rowDetail.spec.tsx +120 -0
  225. package/src/components/ChildTable/index.tsx +16 -0
  226. package/src/components/ColumnHeaderFilter/index.tsx +89 -116
  227. package/src/components/DataTable/DataTable.stories.tsx +130 -6
  228. package/src/components/DataTable/DataTableCardControls.stories.tsx +61 -2
  229. package/src/components/DataTable/DataTableCardControls.tsx +92 -66
  230. package/src/components/DataTable/DataTableRoot.tsx +109 -18
  231. package/src/components/DataTable/cardLayout.spec.tsx +4 -3
  232. package/src/components/DataTable/cardToolbar.spec.tsx +238 -0
  233. package/src/components/DataTable/chromeInterplay.spec.tsx +7 -5
  234. package/src/components/DataTable/columnWidthLayout.spec.tsx +189 -0
  235. package/src/components/DataTable/dataTableCardControls.spec.tsx +3 -2
  236. package/src/components/DataTable/dataTableMobileCards.spec.tsx +1 -4
  237. package/src/components/DataTable/footerLayout.spec.tsx +250 -0
  238. package/src/components/DataTable/headerContainment.spec.tsx +91 -0
  239. package/src/components/DataTable/pinningGeometry.spec.tsx +66 -1
  240. package/src/components/DataTable/rowPress.spec.tsx +2 -6
  241. package/src/components/DataTableBulkActions/DataTableBulkActions.stories.tsx +5 -4
  242. package/src/components/DataTableCell/CellModalEditor.tsx +95 -75
  243. package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +12 -2
  244. package/src/components/DataTableCell/cellModalEditor.spec.tsx +75 -49
  245. package/src/components/DataTableCell/dataTableCell.spec.tsx +31 -14
  246. package/src/components/DataTableCell/index.tsx +3 -2
  247. package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +6 -3
  248. package/src/components/DataTableDateFilter/index.tsx +151 -180
  249. package/src/components/DataTableExport/DataTableExport.spec.tsx +42 -18
  250. package/src/components/DataTableExport/index.tsx +135 -142
  251. package/src/components/DataTableFilterButton/index.tsx +9 -0
  252. package/src/components/DataTableGrouping/index.tsx +193 -195
  253. package/src/components/DataTableSearch/index.tsx +111 -109
  254. package/src/components/DataTableToolbar/index.tsx +179 -107
  255. package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +52 -0
  256. package/src/components/DataTableViewOptions/index.tsx +32 -40
  257. package/src/components/FilterOperatorValueEditor/FilterOperatorValueEditor.spec.tsx +64 -2
  258. package/src/components/FilterOperatorValueEditor/index.tsx +0 -8
  259. package/src/components/SimpleTable/index.tsx +3 -2
  260. package/src/components/SimpleTable/simpleTable.spec.tsx +15 -0
  261. package/src/components/Table/accessibility.spec.tsx +7 -19
  262. package/src/components/TableInput/RowDetailEditor.native.tsx +134 -0
  263. package/src/components/TableInput/RowDetailEditor.tsx +173 -0
  264. package/src/components/TableInput/index.native.tsx +49 -1
  265. package/src/components/TableInput/index.tsx +65 -10
  266. package/src/components/TableInput/shared.ts +29 -0
  267. package/src/components/tableDropdowns.spec.tsx +172 -0
  268. package/src/hooks/useDataTable.spec.ts +153 -0
  269. package/src/hooks/useDataTable.ts +38 -2
  270. package/src/index.ts +1 -0
  271. package/src/types.ts +14 -12
  272. package/src/utils/rowPress.ts +3 -0
  273. package/types/components/ChildTable/index.d.ts +10 -0
  274. package/types/components/ChildTable/index.d.ts.map +1 -1
  275. package/types/components/ColumnHeaderFilter/index.d.ts +1 -1
  276. package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
  277. package/types/components/DataTable/DataTableCardControls.d.ts +3 -0
  278. package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -1
  279. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  280. package/types/components/DataTableCell/CellModalEditor.d.ts +10 -7
  281. package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -1
  282. package/types/components/DataTableCell/index.d.ts.map +1 -1
  283. package/types/components/DataTableDateFilter/index.d.ts.map +1 -1
  284. package/types/components/DataTableFilterButton/index.d.ts +2 -1
  285. package/types/components/DataTableFilterButton/index.d.ts.map +1 -1
  286. package/types/components/DataTableGrouping/index.d.ts.map +1 -1
  287. package/types/components/DataTableSearch/index.d.ts.map +1 -1
  288. package/types/components/DataTableToolbar/index.d.ts +1 -0
  289. package/types/components/DataTableToolbar/index.d.ts.map +1 -1
  290. package/types/components/FilterOperatorValueEditor/index.d.ts.map +1 -1
  291. package/types/components/SimpleTable/index.d.ts.map +1 -1
  292. package/types/components/TableInput/RowDetailEditor.d.ts +24 -0
  293. package/types/components/TableInput/RowDetailEditor.d.ts.map +1 -0
  294. package/types/components/TableInput/RowDetailEditor.native.d.ts +11 -0
  295. package/types/components/TableInput/RowDetailEditor.native.d.ts.map +1 -0
  296. package/types/components/TableInput/index.d.ts +11 -2
  297. package/types/components/TableInput/index.d.ts.map +1 -1
  298. package/types/components/TableInput/index.native.d.ts +8 -1
  299. package/types/components/TableInput/index.native.d.ts.map +1 -1
  300. package/types/components/TableInput/shared.d.ts +11 -0
  301. package/types/components/TableInput/shared.d.ts.map +1 -1
  302. package/types/hooks/useDataTable.d.ts.map +1 -1
  303. package/types/index.d.ts +1 -0
  304. package/types/index.d.ts.map +1 -1
  305. package/types/types.d.ts +14 -12
  306. package/types/types.d.ts.map +1 -1
  307. package/types/utils/rowPress.d.ts.map +1 -1
@@ -0,0 +1,190 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var RowDetailEditor_exports = {};
24
+ __export(RowDetailEditor_exports, {
25
+ RowDetailEditor: () => RowDetailEditor
26
+ });
27
+ module.exports = __toCommonJS(RowDetailEditor_exports);
28
+ var import_components = require("@multiplatform.one/components");
29
+ var import_forms = require("@multiplatform.one/forms");
30
+ var import_table_primitives = require("@multiplatform.one/table-primitives");
31
+ var import_theme = require("@multiplatform.one/theme");
32
+ var import_react = require("@phosphor-icons/react");
33
+ var import_react2 = require("react");
34
+ var import_tamagui = require("tamagui");
35
+ var import_t = require("../../shared/t.cjs");
36
+ var import_withInterp = require("../../utils/withInterp.cjs");
37
+ var import_DataTableCell = require("../DataTableCell/index.cjs");
38
+ var import_shared = require("./shared.cjs");
39
+ var import_jsx_runtime = require("react/jsx-runtime");
40
+ function RowDetailEditor({
41
+ row,
42
+ rowIndex,
43
+ columns,
44
+ readOnly,
45
+ compact,
46
+ isCellHidden,
47
+ onCommit
48
+ }) {
49
+ const {
50
+ knobProps
51
+ } = (0, import_theme.useResolvedKnobs)({
52
+ compact
53
+ });
54
+ const [draft, setDraft] = (0, import_react2.useState)(null);
55
+ const draftRef = (0, import_react2.useRef)(draft);
56
+ draftRef.current = draft;
57
+ const rowRef = (0, import_react2.useRef)(row);
58
+ rowRef.current = row;
59
+ const onCommitRef = (0, import_react2.useRef)(onCommit);
60
+ onCommitRef.current = onCommit;
61
+ const discardRef = (0, import_react2.useRef)(false);
62
+ const rowNumber = rowIndex + 1;
63
+ const handleOpenChange = (0, import_react2.useCallback)(next => {
64
+ if (next) {
65
+ discardRef.current = false;
66
+ const seeded = {
67
+ ...rowRef.current
68
+ };
69
+ draftRef.current = seeded;
70
+ setDraft(seeded);
71
+ return;
72
+ }
73
+ const active = draftRef.current;
74
+ if (!discardRef.current && !readOnly && active) {
75
+ const changed = (0, import_shared.changedColumns)(rowRef.current, active, columns);
76
+ if (changed.length > 0) onCommitRef.current(active, changed);
77
+ }
78
+ discardRef.current = false;
79
+ draftRef.current = null;
80
+ setDraft(null);
81
+ }, [columns, readOnly]);
82
+ const handleCancel = (0, import_react2.useCallback)(() => {
83
+ discardRef.current = true;
84
+ handleOpenChange(false);
85
+ }, [handleOpenChange]);
86
+ const setDraftValue = (0, import_react2.useCallback)((columnId, value) => {
87
+ const current2 = draftRef.current;
88
+ if (!current2) return;
89
+ const next = {
90
+ ...current2,
91
+ [columnId]: value
92
+ };
93
+ draftRef.current = next;
94
+ setDraft(next);
95
+ }, []);
96
+ const triggerLabel = (0, import_withInterp.withInterp)((0, import_t.t)(readOnly ? "View row {{row}}" : "Edit row {{row}}", {
97
+ row: rowNumber
98
+ }), {
99
+ row: rowNumber
100
+ });
101
+ const current = draft ?? row;
102
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
103
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
104
+ chromeless: true,
105
+ compact,
106
+ onPress: () => handleOpenChange(true),
107
+ hitSlop: knobProps.nestedControl.hitSlop,
108
+ "aria-label": triggerLabel,
109
+ "aria-haspopup": "dialog",
110
+ "aria-expanded": draft !== null,
111
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.PencilSimpleIcon, {
112
+ size: 16
113
+ })
114
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Dialog, {
115
+ open: draft !== null,
116
+ onOpenChange: handleOpenChange,
117
+ modal: true,
118
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Dialog.Portal, {
119
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DialogOverlay, {
120
+ opacity: 0.5
121
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.DialogContent, {
122
+ maxWidth: 720,
123
+ maxHeight: "80vh",
124
+ width: "90vw",
125
+ onEscapeKeyDown: () => {
126
+ discardRef.current = true;
127
+ },
128
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Dialog.Title, {
129
+ ...knobProps.heading,
130
+ children: (0, import_withInterp.withInterp)((0, import_t.t)("Row {{row}}", {
131
+ row: rowNumber
132
+ }), {
133
+ row: rowNumber
134
+ })
135
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.ScrollView, {
136
+ flexShrink: 1,
137
+ minHeight: 0,
138
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.TableCellContext.Provider, {
139
+ value: {
140
+ inTableCell: false
141
+ },
142
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
143
+ ...knobProps.gapLg,
144
+ children: columns.map(col => {
145
+ const columnId = (0, import_shared.columnKey)(col);
146
+ if (isCellHidden?.(current, columnId, rowIndex)) return null;
147
+ const label = typeof col.header === "string" ? col.header : columnId;
148
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
149
+ ...knobProps.gap,
150
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
151
+ ...knobProps.label,
152
+ children: label
153
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableCell.DataTableCell, {
154
+ value: current[columnId],
155
+ onChange: value => setDraftValue(columnId, value),
156
+ field: col.field || "input",
157
+ fieldProps: col.fieldProps,
158
+ readOnly,
159
+ compact: false,
160
+ columnId,
161
+ columnLabel: label,
162
+ rowIndex,
163
+ rowData: current
164
+ })]
165
+ }, columnId);
166
+ })
167
+ })
168
+ })
169
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
170
+ ...knobProps.gap,
171
+ justifyContent: "flex-end",
172
+ children: readOnly ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
173
+ onPress: handleCancel,
174
+ children: (0, import_t.t)("Close")
175
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
176
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
177
+ onPress: handleCancel,
178
+ children: (0, import_t.t)("Cancel")
179
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
180
+ theme: "accent",
181
+ onPress: () => handleOpenChange(false),
182
+ children: (0, import_t.t)("Done")
183
+ })]
184
+ })
185
+ })]
186
+ })]
187
+ })
188
+ })]
189
+ });
190
+ }
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var RowDetailEditor_native_exports = {};
26
+ __export(RowDetailEditor_native_exports, {
27
+ RowDetailEditor: () => RowDetailEditor
28
+ });
29
+ module.exports = __toCommonJS(RowDetailEditor_native_exports);
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var import_forms = require("@multiplatform.one/forms");
32
+ var import_theme = require("@multiplatform.one/theme");
33
+ var import_react = require("@phosphor-icons/react");
34
+ var import_react2 = require("react");
35
+ var import_tamagui = require("tamagui");
36
+ var import_t = require("../../shared/t.native.js");
37
+ var import_withInterp = require("../../utils/withInterp.native.js");
38
+ var import_DataTableCell = require("../DataTableCell/index.native.js");
39
+ var import_shared = require("./shared.native.js");
40
+ function RowDetailEditor(param) {
41
+ var {
42
+ row,
43
+ rowIndex,
44
+ columns,
45
+ readOnly,
46
+ compact,
47
+ isCellHidden,
48
+ onCommit
49
+ } = param;
50
+ var {
51
+ knobProps
52
+ } = (0, import_theme.useResolvedKnobs)({
53
+ compact
54
+ });
55
+ var [draft, setDraft] = (0, import_react2.useState)(null);
56
+ var draftRef = (0, import_react2.useRef)(draft);
57
+ draftRef.current = draft;
58
+ var rowRef = (0, import_react2.useRef)(row);
59
+ rowRef.current = row;
60
+ var onCommitRef = (0, import_react2.useRef)(onCommit);
61
+ onCommitRef.current = onCommit;
62
+ var discardRef = (0, import_react2.useRef)(false);
63
+ var rowNumber = rowIndex + 1;
64
+ var handleOpenChange = (0, import_react2.useCallback)(function (next) {
65
+ if (next) {
66
+ discardRef.current = false;
67
+ var seeded = {
68
+ ...rowRef.current
69
+ };
70
+ draftRef.current = seeded;
71
+ setDraft(seeded);
72
+ return;
73
+ }
74
+ var active = draftRef.current;
75
+ if (!discardRef.current && !readOnly && active) {
76
+ var changed = (0, import_shared.changedColumns)(rowRef.current, active, columns);
77
+ if (changed.length > 0) onCommitRef.current(active, changed);
78
+ }
79
+ discardRef.current = false;
80
+ draftRef.current = null;
81
+ setDraft(null);
82
+ }, [columns, readOnly]);
83
+ var handleCancel = (0, import_react2.useCallback)(function () {
84
+ discardRef.current = true;
85
+ handleOpenChange(false);
86
+ }, [handleOpenChange]);
87
+ var setDraftValue = (0, import_react2.useCallback)(function (columnId, value) {
88
+ var current2 = draftRef.current;
89
+ if (!current2) return;
90
+ var next = {
91
+ ...current2,
92
+ [columnId]: value
93
+ };
94
+ draftRef.current = next;
95
+ setDraft(next);
96
+ }, []);
97
+ var triggerLabel = (0, import_withInterp.withInterp)((0, import_t.t)(readOnly ? "View row {{row}}" : "Edit row {{row}}", {
98
+ row: rowNumber
99
+ }), {
100
+ row: rowNumber
101
+ });
102
+ var current = draft !== null && draft !== void 0 ? draft : row;
103
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.FloatingPanel, {
104
+ open: draft !== null,
105
+ onOpenChange: handleOpenChange,
106
+ scrollable: true,
107
+ triggerSizing: "content",
108
+ triggerA11y: {
109
+ label: triggerLabel
110
+ },
111
+ trigger: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
112
+ alignItems: "center",
113
+ justifyContent: "center",
114
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.PencilSimpleIcon, {
115
+ size: 16
116
+ })
117
+ }),
118
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
119
+ ...knobProps.gapLg,
120
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
121
+ ...knobProps.heading,
122
+ children: (0, import_withInterp.withInterp)((0, import_t.t)("Row {{row}}", {
123
+ row: rowNumber
124
+ }), {
125
+ row: rowNumber
126
+ })
127
+ }), columns.map(function (col) {
128
+ var columnId = (0, import_shared.columnKey)(col);
129
+ if (isCellHidden === null || isCellHidden === void 0 ? void 0 : isCellHidden(current, columnId, rowIndex)) return null;
130
+ var label = typeof col.header === "string" ? col.header : columnId;
131
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
132
+ ...knobProps.gap,
133
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
134
+ ...knobProps.label,
135
+ children: label
136
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableCell.DataTableCell, {
137
+ value: current[columnId],
138
+ onChange: function onChange(value) {
139
+ return setDraftValue(columnId, value);
140
+ },
141
+ field: col.field || "input",
142
+ fieldProps: col.fieldProps,
143
+ readOnly,
144
+ compact: false,
145
+ columnId,
146
+ columnLabel: label,
147
+ rowIndex,
148
+ rowData: current
149
+ })]
150
+ }, columnId);
151
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
152
+ ...knobProps.gap,
153
+ justifyContent: "flex-end",
154
+ children: readOnly ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
155
+ onPress: handleCancel,
156
+ children: (0, import_t.t)("Close")
157
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
158
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
159
+ onPress: handleCancel,
160
+ children: (0, import_t.t)("Cancel")
161
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
162
+ onPress: function onPress() {
163
+ return handleOpenChange(false);
164
+ },
165
+ children: (0, import_t.t)("Done")
166
+ })]
167
+ })
168
+ })]
169
+ })
170
+ });
171
+ }
172
+ //# sourceMappingURL=RowDetailEditor.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RowDetailEditor_native_exports","__export","RowDetailEditor","module","exports","__toCommonJS","import_jsx_runtime","require","import_forms","import_theme","import_react","import_react2","import_tamagui","import_t","import_withInterp","import_DataTableCell","import_shared","param","row","rowIndex","columns","readOnly","compact","isCellHidden","onCommit","knobProps","useResolvedKnobs","draft","setDraft","useState","draftRef","useRef","current","rowRef","onCommitRef","discardRef","rowNumber","handleOpenChange","useCallback","next","seeded","active","changed","changedColumns","length","handleCancel","setDraftValue","columnId","value","current2","triggerLabel","withInterp","t","jsx","FloatingPanel","open","onOpenChange","scrollable","triggerSizing","triggerA11y","label","trigger","View","alignItems","justifyContent","children","PencilSimpleIcon","size","jsxs","YStack","gapLg","Text","heading","map","col","columnKey","header","gap","DataTableCell","onChange","field","fieldProps","columnLabel","rowData","XStack","Button","onPress","Fragment"],"sources":["../../../../src/components/TableInput/RowDetailEditor.native.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -36,8 +36,10 @@ var import_theme = require("@multiplatform.one/theme");
36
36
  var import_tamagui = require("tamagui");
37
37
  var import_DataTableCell = require("../DataTableCell/index.cjs");
38
38
  var import_withInterp = require("../../utils/withInterp.cjs");
39
+ var import_RowDetailEditor = require("./RowDetailEditor.cjs");
39
40
  var import_shared = require("./shared.cjs");
40
41
  var import_jsx_runtime = require("react/jsx-runtime");
42
+ const chromeColumnIds = /* @__PURE__ */new Set(["_reorder", "_rowNumber", "_detail", "_actions"]);
41
43
  function TableInput({
42
44
  data = [],
43
45
  columns,
@@ -59,7 +61,10 @@ function TableInput({
59
61
  emptyMessage,
60
62
  "aria-label": ariaLabel,
61
63
  compact = true,
62
- enableReorder = false
64
+ enableReorder = false,
65
+ rowDetail = false,
66
+ detailColumns,
67
+ isCellHidden
63
68
  }) {
64
69
  const {
65
70
  t
@@ -90,6 +95,9 @@ function TableInput({
90
95
  ariaLabel: resolvedAriaLabel,
91
96
  compact,
92
97
  enableReorder,
98
+ rowDetail,
99
+ detailColumns: detailColumns ?? columns,
100
+ isCellHidden,
93
101
  t
94
102
  };
95
103
  const Inner = TableInputInner;
@@ -138,6 +146,9 @@ function TableInputInner({
138
146
  ariaLabel,
139
147
  compact,
140
148
  enableReorder,
149
+ rowDetail,
150
+ detailColumns,
151
+ isCellHidden,
141
152
  t
142
153
  }) {
143
154
  const theme = (0, import_tamagui.useTheme)();
@@ -152,6 +163,7 @@ function TableInputInner({
152
163
  const pendingFocusRef = (0, import_react.useRef)(null);
153
164
  const gridRef = (0, import_react.useRef)(null);
154
165
  const reorderEnabled = enableReorder && !readOnly && !skeleton;
166
+ const Detail = import_RowDetailEditor.RowDetailEditor;
155
167
  const firstDataKey = (0, import_react.useMemo)(() => {
156
168
  const first = columns[0];
157
169
  if (!first) return null;
@@ -212,6 +224,12 @@ function TableInputInner({
212
224
  if (minRows && rows.length <= minRows) return;
213
225
  commit(rows.filter((_, index) => index !== rowIndex));
214
226
  }, [rows, commit, minRows]);
227
+ const handleRowDetailCommit = (0, import_react.useCallback)((rowIndex, next, changed) => {
228
+ for (const columnId of changed) {
229
+ onCellChange?.(rowIndex, columnId, next[columnId]);
230
+ }
231
+ commit(rows.map((row, index) => index === rowIndex ? next : row));
232
+ }, [rows, commit, onCellChange]);
215
233
  (0, import_react.useEffect)(() => {
216
234
  const id = pendingFocusRef.current;
217
235
  if (!id || typeof document === "undefined") return;
@@ -292,6 +310,7 @@ function TableInputInner({
292
310
  cell: ({
293
311
  row
294
312
  }) => {
313
+ if (isCellHidden?.(row.original, columnId, row.index)) return null;
295
314
  const value = row.original[columnId];
296
315
  const field = col.field || "input";
297
316
  const fieldProps = col.fieldProps;
@@ -310,6 +329,24 @@ function TableInputInner({
310
329
  }
311
330
  });
312
331
  });
332
+ if (rowDetail) {
333
+ cols.push({
334
+ id: "_detail",
335
+ header: "",
336
+ size: chromePx + 16,
337
+ cell: ({
338
+ row
339
+ }) => /* @__PURE__ */(0, import_jsx_runtime.jsx)(Detail, {
340
+ row: row.original,
341
+ rowIndex: row.index,
342
+ columns: detailColumns,
343
+ readOnly,
344
+ compact,
345
+ isCellHidden,
346
+ onCommit: (next, changed) => handleRowDetailCommit(row.index, next, changed)
347
+ })
348
+ });
349
+ }
313
350
  if (showDeleteRow && !readOnly) {
314
351
  cols.push({
315
352
  id: "_actions",
@@ -339,7 +376,7 @@ function TableInputInner({
339
376
  });
340
377
  }
341
378
  return cols;
342
- }, [columns, showRowNumbers, showDeleteRow, readOnly, handleCellChange, handleDeleteRow, rows.length, minRows, t, compact, chromePx, knobProps.label.fontSize, knobProps.nestedControl.hitSlop, reorderEnabled]);
379
+ }, [columns, showRowNumbers, showDeleteRow, readOnly, handleCellChange, handleDeleteRow, rows.length, minRows, t, compact, chromePx, knobProps.label.fontSize, knobProps.nestedControl.hitSlop, reorderEnabled, rowDetail, detailColumns, isCellHidden, handleRowDetailCommit]);
343
380
  const table = (0, import_react_table.useReactTable)({
344
381
  data: rows,
345
382
  columns: tableColumns,
@@ -397,7 +434,7 @@ function TableInputInner({
397
434
  children: headerGroup.headers.map(header => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.HeaderCell, {
398
435
  style: {
399
436
  width: header.getSize(),
400
- ...(isEmpty && header.column.id !== "_rowNumber" && header.column.id !== "_actions" && header.column.id !== "_reorder" ? {
437
+ ...(isEmpty && !chromeColumnIds.has(header.column.id) ? {
401
438
  flexGrow: 1
402
439
  } : null)
403
440
  },
@@ -409,7 +446,7 @@ function TableInputInner({
409
446
  length: import_shared.SKELETON_ROW_COUNT
410
447
  }, (_, rowIndex) => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
411
448
  children: table.getAllLeafColumns().map(column => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
412
- children: column.id === "_actions" || column.id === "_reorder" ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Skeleton, {
449
+ children: column.id === "_actions" || column.id === "_reorder" || column.id === "_detail" ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Skeleton, {
413
450
  variant: "rounded",
414
451
  width: column.id === "_rowNumber" ? 16 : "70%",
415
452
  height: 16
@@ -448,7 +485,7 @@ function TableInputInner({
448
485
  onFocusCapture: () => setActiveRowId(row.id)
449
486
  },
450
487
  children: row.getVisibleCells().map(cell => {
451
- const isData = cell.column.id !== "_rowNumber" && cell.column.id !== "_actions" && cell.column.id !== "_reorder";
488
+ const isData = !chromeColumnIds.has(cell.column.id);
452
489
  const field = columns.find(col => {
453
490
  const id = typeof col.accessorKey === "string" ? col.accessorKey : col.id || String(col.accessorKey);
454
491
  return id === cell.column.id;
@@ -38,6 +38,7 @@ var import_theme = require("@multiplatform.one/theme");
38
38
  var import_tamagui = require("tamagui");
39
39
  var import_DataTableCell = require("../DataTableCell/index.native.js");
40
40
  var import_withInterp = require("../../utils/withInterp.native.js");
41
+ var import_RowDetailEditor = require("./RowDetailEditor.native.js");
41
42
  var import_shared = require("./shared.native.js");
42
43
  function TableInput(param) {
43
44
  var {
@@ -60,7 +61,10 @@ function TableInput(param) {
60
61
  defaultRow,
61
62
  emptyMessage,
62
63
  "aria-label": ariaLabel,
63
- compact = true
64
+ compact = true,
65
+ rowDetail = false,
66
+ detailColumns,
67
+ isCellHidden
64
68
  } = param;
65
69
  var {
66
70
  t
@@ -90,6 +94,9 @@ function TableInput(param) {
90
94
  emptyMessage: emptyMessage !== null && emptyMessage !== void 0 ? emptyMessage : t("No rows"),
91
95
  ariaLabel: resolvedAriaLabel,
92
96
  compact,
97
+ rowDetail,
98
+ detailColumns: detailColumns !== null && detailColumns !== void 0 ? detailColumns : columns,
99
+ isCellHidden,
93
100
  t
94
101
  };
95
102
  var Inner = TableInputInner;
@@ -144,6 +151,9 @@ function TableInputInner(param) {
144
151
  emptyMessage,
145
152
  ariaLabel,
146
153
  compact,
154
+ rowDetail,
155
+ detailColumns,
156
+ isCellHidden,
147
157
  t
148
158
  } = param;
149
159
  var theme = (0, import_tamagui.useTheme)();
@@ -157,6 +167,7 @@ function TableInputInner(param) {
157
167
  var indexWidth = Math.max(36, chromePx);
158
168
  var actionWidth = chromePx + 16;
159
169
  var [activeRowId, setActiveRowId] = (0, import_react.useState)(null);
170
+ var Detail = import_RowDetailEditor.RowDetailEditor;
160
171
  var handleCellChange = (0, import_react.useCallback)(function (rowIndex, columnId, value) {
161
172
  onCellChange === null || onCellChange === void 0 ? void 0 : onCellChange(rowIndex, columnId, value);
162
173
  var newData = [...rows];
@@ -180,6 +191,33 @@ function TableInputInner(param) {
180
191
  return index !== rowIndex;
181
192
  }));
182
193
  }, [rows, commit, minRows]);
194
+ var handleRowDetailCommit = (0, import_react.useCallback)(function (rowIndex, next, changed) {
195
+ var _iteratorNormalCompletion = true,
196
+ _didIteratorError = false,
197
+ _iteratorError = void 0;
198
+ try {
199
+ for (var _iterator = changed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
200
+ var columnId = _step.value;
201
+ onCellChange === null || onCellChange === void 0 ? void 0 : onCellChange(rowIndex, columnId, next[columnId]);
202
+ }
203
+ } catch (err) {
204
+ _didIteratorError = true;
205
+ _iteratorError = err;
206
+ } finally {
207
+ try {
208
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
209
+ _iterator.return();
210
+ }
211
+ } finally {
212
+ if (_didIteratorError) {
213
+ throw _iteratorError;
214
+ }
215
+ }
216
+ }
217
+ commit(rows.map(function (row, index) {
218
+ return index === rowIndex ? next : row;
219
+ }));
220
+ }, [rows, commit, onCellChange]);
183
221
  var canAddRow = !maxRows || rows.length < maxRows;
184
222
  var canDelete = !minRows || rows.length > (minRows || 0);
185
223
  var columnIds = (0, import_react.useMemo)(function () {
@@ -212,6 +250,8 @@ function TableInputInner(param) {
212
250
  children: typeof col.header === "string" ? col.header : columnIds[index]
213
251
  })
214
252
  }, columnIds[index]);
253
+ }), rowDetail && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
254
+ width: actionWidth
215
255
  }), showDeleteRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
216
256
  width: actionWidth
217
257
  })]
@@ -247,6 +287,12 @@ function TableInputInner(param) {
247
287
  var value = item[columnId];
248
288
  var field = col.field || "input";
249
289
  var fieldProps = col.fieldProps;
290
+ if (isCellHidden === null || isCellHidden === void 0 ? void 0 : isCellHidden(item, columnId, index)) {
291
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
292
+ flex: 1,
293
+ paddingHorizontal: "$1"
294
+ }, columnId);
295
+ }
250
296
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
251
297
  flex: 1,
252
298
  paddingHorizontal: "$1",
@@ -265,6 +311,21 @@ function TableInputInner(param) {
265
311
  rowData: item
266
312
  })
267
313
  }, columnId);
314
+ }), rowDetail && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
315
+ width: actionWidth,
316
+ justifyContent: "center",
317
+ alignItems: "center",
318
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Detail, {
319
+ row: item,
320
+ rowIndex: index,
321
+ columns: detailColumns,
322
+ readOnly,
323
+ compact,
324
+ isCellHidden,
325
+ onCommit: function onCommit(next, changed) {
326
+ return handleRowDetailCommit(index, next, changed);
327
+ }
328
+ })
268
329
  }), showDeleteRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
269
330
  width: actionWidth,
270
331
  justifyContent: "center",
@@ -317,6 +378,8 @@ function TableInputInner(param) {
317
378
  height: 16
318
379
  })
319
380
  }, columnIds[colIndex]);
381
+ }), rowDetail && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
382
+ width: actionWidth
320
383
  }), showDeleteRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
321
384
  width: actionWidth
322
385
  })]