@vuu-ui/vuu-table-extras 3.0.0 → 3.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/package.json +22 -18
  2. package/src/calculated-column/CalculatedColumnPanel.js +95 -0
  3. package/src/calculated-column/useCalculatedColumnPanel.js +60 -0
  4. package/src/calculated-column/useEditCalculatedColumn.js +104 -0
  5. package/src/cell-edit-validators/CaseValidator.js +21 -0
  6. package/src/cell-edit-validators/PatternValidator.js +23 -0
  7. package/src/cell-edit-validators/index.js +2 -0
  8. package/src/cell-renderers/background-cell/BackgroundCell.css.js +103 -0
  9. package/src/cell-renderers/background-cell/BackgroundCell.js +76 -0
  10. package/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +9 -0
  11. package/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +71 -0
  12. package/src/cell-renderers/background-cell/BackgroundKeyframes.css.js +187 -0
  13. package/src/cell-renderers/background-cell/index.js +2 -0
  14. package/src/cell-renderers/background-cell/useDirection.js +25 -0
  15. package/src/cell-renderers/button-cell/IconButtonCell.css.js +23 -0
  16. package/src/cell-renderers/button-cell/IconButtonCell.js +33 -0
  17. package/src/cell-renderers/dropdown-cell/DropdownCell.css.js +36 -0
  18. package/src/cell-renderers/dropdown-cell/DropdownCell.js +87 -0
  19. package/src/cell-renderers/dropdown-cell/index.js +1 -0
  20. package/src/cell-renderers/index.js +6 -0
  21. package/src/cell-renderers/lookup-cell/LookupCell.js +15 -0
  22. package/src/cell-renderers/lookup-cell/index.js +1 -0
  23. package/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js +31 -0
  24. package/src/cell-renderers/pct-progress-cell/PctProgressCell.js +49 -0
  25. package/src/cell-renderers/pct-progress-cell/index.js +1 -0
  26. package/src/cell-renderers/progress-cell/ProgressCell.css.js +43 -0
  27. package/src/cell-renderers/progress-cell/ProgressCell.js +74 -0
  28. package/src/cell-renderers/progress-cell/index.js +1 -0
  29. package/src/column-expression-input/ColumnExpressionInput.css.js +94 -0
  30. package/src/column-expression-input/ColumnExpressionInput.js +28 -0
  31. package/src/column-expression-input/column-function-descriptors.js +281 -0
  32. package/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +18 -0
  33. package/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +381 -0
  34. package/src/column-expression-input/column-language-parser/column-expression-parse-utils.js +56 -0
  35. package/src/column-expression-input/column-language-parser/index.js +3 -0
  36. package/src/column-expression-input/functionDocInfo.js +24 -0
  37. package/src/column-expression-input/highlighting.js +18 -0
  38. package/src/column-expression-input/index.js +4 -0
  39. package/src/column-expression-input/theme.js +57 -0
  40. package/src/column-expression-input/useColumnAutoComplete.js +307 -0
  41. package/src/column-expression-input/useColumnExpressionEditor.js +133 -0
  42. package/src/column-expression-input/useColumnExpressionSuggestionProvider.js +211 -0
  43. package/src/column-formatting-settings/BaseNumericFormattingSettings.js +96 -0
  44. package/src/column-formatting-settings/ColumnFormattingPanel.js +112 -0
  45. package/src/column-formatting-settings/DateTimeFormattingSettings.js +116 -0
  46. package/src/column-formatting-settings/LongTypeFormattingSettings.css.js +11 -0
  47. package/src/column-formatting-settings/LongTypeFormattingSettings.js +54 -0
  48. package/src/column-formatting-settings/index.js +3 -0
  49. package/src/column-menu/ColumnMenu.css.js +25 -0
  50. package/src/column-menu/ColumnMenu.js +69 -0
  51. package/src/column-menu/column-action-types.js +0 -0
  52. package/src/column-menu/column-menu-utils.js +318 -0
  53. package/src/column-menu/useColumnActions.js +77 -0
  54. package/src/column-picker/ColumnModel.js +113 -0
  55. package/src/column-picker/ColumnPicker.css.js +96 -0
  56. package/src/column-picker/ColumnPicker.js +204 -0
  57. package/src/column-picker/ColumnPickerAction.js +24 -0
  58. package/src/column-picker/useColumnPicker.js +42 -0
  59. package/src/column-picker/useTableColumnPicker.js +27 -0
  60. package/src/column-picker/useTableColumnPickerDeprecated.js +87 -0
  61. package/src/column-settings-panel/ColumnNameLabel.css.js +18 -0
  62. package/src/column-settings-panel/ColumnNameLabel.js +54 -0
  63. package/src/column-settings-panel/ColumnSettingsPanel.css.js +70 -0
  64. package/src/column-settings-panel/ColumnSettingsPanel.js +173 -0
  65. package/src/column-settings-panel/useColumnSettings.js +205 -0
  66. package/src/csv-upload/CsvUpload.css.js +28 -0
  67. package/src/csv-upload/CsvUpload.js +105 -0
  68. package/src/csv-upload/data-upload-preview/DataUploadPreview.css.js +15 -0
  69. package/src/csv-upload/data-upload-preview/DataUploadPreview.js +113 -0
  70. package/src/csv-upload/data-upload-preview/useDataUploadPreview.js +63 -0
  71. package/src/csv-upload/index.js +7 -0
  72. package/{esm/packages/vuu-table-extras/src → src}/csv-upload/parse/csv-constants.js +0 -2
  73. package/src/csv-upload/parse/csv-errors.js +54 -0
  74. package/src/csv-upload/parse/csv-parse.js +79 -0
  75. package/src/csv-upload/parse/csv-schema-validation.js +45 -0
  76. package/src/csv-upload/parse/csv-upload-utils.js +59 -0
  77. package/src/csv-upload/parse/index.js +5 -0
  78. package/src/csv-upload/useCsvUpload.js +305 -0
  79. package/src/datasource-stats/DatasourceStats.css.js +56 -0
  80. package/src/datasource-stats/DatasourceStats.js +89 -0
  81. package/src/datasource-stats/useDatasourceStats.js +51 -0
  82. package/src/freeze-control/FreezeControl.css.js +108 -0
  83. package/src/freeze-control/FreezeControl.js +96 -0
  84. package/src/freeze-control/FrozenBanner.css.js +16 -0
  85. package/src/freeze-control/FrozenBanner.js +48 -0
  86. package/src/freeze-control/freezeControlBadge.js +9 -0
  87. package/src/freeze-control/useFreezeControl.js +68 -0
  88. package/src/index.js +23 -0
  89. package/src/inline-add-row/InlineAddRow.css.js +16 -0
  90. package/src/inline-add-row/InlineAddRow.js +34 -0
  91. package/src/inline-add-row/index.js +2 -0
  92. package/src/inline-add-row/useInlineAddRow.js +120 -0
  93. package/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +23 -0
  94. package/src/tabbed-table-config-panel/TabbedTableConfigPanel.js +99 -0
  95. package/src/tabbed-table-config-panel/TabbedTableSettingsAction.js +28 -0
  96. package/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js +29 -0
  97. package/src/table-footer/TableFooter.css.js +31 -0
  98. package/src/table-footer/TableFooter.js +33 -0
  99. package/src/table-provider/TableProvider.js +33 -0
  100. package/src/table-settings-panel/TableSettingsPanel.css.js +70 -0
  101. package/src/table-settings-panel/TableSettingsPanel.js +128 -0
  102. package/src/table-settings-panel/useTableSettings.js +50 -0
  103. package/cjs/node_modules/csv-parse/dist/esm/sync.js +0 -3978
  104. package/cjs/node_modules/csv-parse/dist/esm/sync.js.map +0 -1
  105. package/cjs/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js +0 -85
  106. package/cjs/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js.map +0 -1
  107. package/cjs/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js +0 -71
  108. package/cjs/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js.map +0 -1
  109. package/cjs/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js +0 -138
  110. package/cjs/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js.map +0 -1
  111. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js +0 -25
  112. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js.map +0 -1
  113. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js +0 -31
  114. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js.map +0 -1
  115. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css.js +0 -6
  116. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
  117. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js +0 -81
  118. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  119. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -6
  120. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
  121. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -67
  122. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  123. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -6
  124. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
  125. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js +0 -20
  126. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js.map +0 -1
  127. package/cjs/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.css.js +0 -6
  128. package/cjs/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.css.js.map +0 -1
  129. package/cjs/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js +0 -40
  130. package/cjs/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js.map +0 -1
  131. package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -6
  132. package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
  133. package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js +0 -106
  134. package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  135. package/cjs/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js +0 -21
  136. package/cjs/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  137. package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -6
  138. package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
  139. package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -62
  140. package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  141. package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css.js +0 -6
  142. package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
  143. package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js +0 -69
  144. package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  145. package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css.js +0 -6
  146. package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
  147. package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js +0 -39
  148. package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js.map +0 -1
  149. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js +0 -307
  150. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js.map +0 -1
  151. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -28
  152. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  153. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -465
  154. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  155. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -61
  156. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  157. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js +0 -21
  158. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  159. package/cjs/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js +0 -39
  160. package/cjs/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js.map +0 -1
  161. package/cjs/packages/vuu-table-extras/src/column-expression-input/highlighting.js +0 -16
  162. package/cjs/packages/vuu-table-extras/src/column-expression-input/highlighting.js.map +0 -1
  163. package/cjs/packages/vuu-table-extras/src/column-expression-input/theme.js +0 -63
  164. package/cjs/packages/vuu-table-extras/src/column-expression-input/theme.js.map +0 -1
  165. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js +0 -358
  166. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js.map +0 -1
  167. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js +0 -131
  168. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  169. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -213
  170. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  171. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js +0 -98
  172. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  173. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js +0 -111
  174. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  175. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js +0 -102
  176. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  177. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -6
  178. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
  179. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js +0 -48
  180. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  181. package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.css.js +0 -6
  182. package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.css.js.map +0 -1
  183. package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.js +0 -107
  184. package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.js.map +0 -1
  185. package/cjs/packages/vuu-table-extras/src/column-menu/column-menu-utils.js +0 -459
  186. package/cjs/packages/vuu-table-extras/src/column-menu/column-menu-utils.js.map +0 -1
  187. package/cjs/packages/vuu-table-extras/src/column-menu/useColumnActions.js +0 -68
  188. package/cjs/packages/vuu-table-extras/src/column-menu/useColumnActions.js.map +0 -1
  189. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnModel.js +0 -177
  190. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnModel.js.map +0 -1
  191. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPicker.css.js +0 -6
  192. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPicker.css.js.map +0 -1
  193. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPicker.js +0 -252
  194. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPicker.js.map +0 -1
  195. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js +0 -34
  196. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js.map +0 -1
  197. package/cjs/packages/vuu-table-extras/src/column-picker/useColumnPicker.js +0 -55
  198. package/cjs/packages/vuu-table-extras/src/column-picker/useColumnPicker.js.map +0 -1
  199. package/cjs/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js +0 -35
  200. package/cjs/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js.map +0 -1
  201. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.css.js +0 -6
  202. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.css.js.map +0 -1
  203. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js +0 -45
  204. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js.map +0 -1
  205. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.css.js +0 -6
  206. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.css.js.map +0 -1
  207. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js +0 -161
  208. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js.map +0 -1
  209. package/cjs/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js +0 -203
  210. package/cjs/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js.map +0 -1
  211. package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js +0 -6
  212. package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js.map +0 -1
  213. package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.js +0 -109
  214. package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.js.map +0 -1
  215. package/cjs/packages/vuu-table-extras/src/csv-upload/data-upload-preview/DataUploadPreview.css.js +0 -6
  216. package/cjs/packages/vuu-table-extras/src/csv-upload/data-upload-preview/DataUploadPreview.css.js.map +0 -1
  217. package/cjs/packages/vuu-table-extras/src/csv-upload/data-upload-preview/DataUploadPreview.js +0 -118
  218. package/cjs/packages/vuu-table-extras/src/csv-upload/data-upload-preview/DataUploadPreview.js.map +0 -1
  219. package/cjs/packages/vuu-table-extras/src/csv-upload/data-upload-preview/useDataUploadPreview.js +0 -76
  220. package/cjs/packages/vuu-table-extras/src/csv-upload/data-upload-preview/useDataUploadPreview.js.map +0 -1
  221. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js +0 -8
  222. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js.map +0 -1
  223. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js +0 -64
  224. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js.map +0 -1
  225. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js +0 -199
  226. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js.map +0 -1
  227. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js +0 -100
  228. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js.map +0 -1
  229. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js +0 -43
  230. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js.map +0 -1
  231. package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js +0 -391
  232. package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js.map +0 -1
  233. package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css.js +0 -6
  234. package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css.js.map +0 -1
  235. package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js +0 -76
  236. package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js.map +0 -1
  237. package/cjs/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js +0 -66
  238. package/cjs/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js.map +0 -1
  239. package/cjs/packages/vuu-table-extras/src/freeze-control/FreezeControl.css.js +0 -6
  240. package/cjs/packages/vuu-table-extras/src/freeze-control/FreezeControl.css.js.map +0 -1
  241. package/cjs/packages/vuu-table-extras/src/freeze-control/FreezeControl.js +0 -106
  242. package/cjs/packages/vuu-table-extras/src/freeze-control/FreezeControl.js.map +0 -1
  243. package/cjs/packages/vuu-table-extras/src/freeze-control/FrozenBanner.css.js +0 -6
  244. package/cjs/packages/vuu-table-extras/src/freeze-control/FrozenBanner.css.js.map +0 -1
  245. package/cjs/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js +0 -55
  246. package/cjs/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js.map +0 -1
  247. package/cjs/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js +0 -10
  248. package/cjs/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js.map +0 -1
  249. package/cjs/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js +0 -68
  250. package/cjs/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js.map +0 -1
  251. package/cjs/packages/vuu-table-extras/src/index.js +0 -106
  252. package/cjs/packages/vuu-table-extras/src/index.js.map +0 -1
  253. package/cjs/packages/vuu-table-extras/src/inline-add-row/InlineAddRow.css.js +0 -6
  254. package/cjs/packages/vuu-table-extras/src/inline-add-row/InlineAddRow.css.js.map +0 -1
  255. package/cjs/packages/vuu-table-extras/src/inline-add-row/InlineAddRow.js +0 -44
  256. package/cjs/packages/vuu-table-extras/src/inline-add-row/InlineAddRow.js.map +0 -1
  257. package/cjs/packages/vuu-table-extras/src/inline-add-row/useInlineAddRow.js +0 -137
  258. package/cjs/packages/vuu-table-extras/src/inline-add-row/useInlineAddRow.js.map +0 -1
  259. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +0 -6
  260. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +0 -1
  261. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js +0 -90
  262. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +0 -1
  263. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js +0 -44
  264. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +0 -1
  265. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js +0 -49
  266. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +0 -1
  267. package/cjs/packages/vuu-table-extras/src/table-footer/TableFooter.css.js +0 -6
  268. package/cjs/packages/vuu-table-extras/src/table-footer/TableFooter.css.js.map +0 -1
  269. package/cjs/packages/vuu-table-extras/src/table-footer/TableFooter.js +0 -37
  270. package/cjs/packages/vuu-table-extras/src/table-footer/TableFooter.js.map +0 -1
  271. package/cjs/packages/vuu-table-extras/src/table-provider/TableProvider.js +0 -61
  272. package/cjs/packages/vuu-table-extras/src/table-provider/TableProvider.js.map +0 -1
  273. package/cjs/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.css.js +0 -6
  274. package/cjs/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.css.js.map +0 -1
  275. package/cjs/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js +0 -116
  276. package/cjs/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js.map +0 -1
  277. package/cjs/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js +0 -60
  278. package/cjs/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js.map +0 -1
  279. package/esm/node_modules/csv-parse/dist/esm/sync.js +0 -3974
  280. package/esm/node_modules/csv-parse/dist/esm/sync.js.map +0 -1
  281. package/esm/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js +0 -83
  282. package/esm/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js.map +0 -1
  283. package/esm/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js +0 -69
  284. package/esm/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js.map +0 -1
  285. package/esm/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js +0 -136
  286. package/esm/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js.map +0 -1
  287. package/esm/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js +0 -23
  288. package/esm/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js.map +0 -1
  289. package/esm/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js +0 -29
  290. package/esm/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js.map +0 -1
  291. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css.js +0 -4
  292. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
  293. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js +0 -79
  294. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  295. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -4
  296. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
  297. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -65
  298. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  299. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -4
  300. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
  301. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js +0 -18
  302. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js.map +0 -1
  303. package/esm/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.css.js +0 -4
  304. package/esm/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.css.js.map +0 -1
  305. package/esm/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js +0 -38
  306. package/esm/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js.map +0 -1
  307. package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -4
  308. package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
  309. package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js +0 -104
  310. package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  311. package/esm/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js +0 -19
  312. package/esm/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  313. package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -4
  314. package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
  315. package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -60
  316. package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  317. package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css.js +0 -4
  318. package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
  319. package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js +0 -67
  320. package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  321. package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css.js +0 -4
  322. package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
  323. package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js +0 -37
  324. package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js.map +0 -1
  325. package/esm/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js +0 -305
  326. package/esm/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js.map +0 -1
  327. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -26
  328. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  329. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -463
  330. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  331. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -56
  332. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  333. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js +0 -19
  334. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  335. package/esm/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js +0 -37
  336. package/esm/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js.map +0 -1
  337. package/esm/packages/vuu-table-extras/src/column-expression-input/highlighting.js +0 -14
  338. package/esm/packages/vuu-table-extras/src/column-expression-input/highlighting.js.map +0 -1
  339. package/esm/packages/vuu-table-extras/src/column-expression-input/theme.js +0 -61
  340. package/esm/packages/vuu-table-extras/src/column-expression-input/theme.js.map +0 -1
  341. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js +0 -356
  342. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js.map +0 -1
  343. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js +0 -129
  344. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  345. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -211
  346. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  347. package/esm/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js +0 -96
  348. package/esm/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  349. package/esm/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js +0 -109
  350. package/esm/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  351. package/esm/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js +0 -100
  352. package/esm/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  353. package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -4
  354. package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
  355. package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js +0 -46
  356. package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  357. package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.css.js +0 -4
  358. package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.css.js.map +0 -1
  359. package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.js +0 -105
  360. package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.js.map +0 -1
  361. package/esm/packages/vuu-table-extras/src/column-menu/column-menu-utils.js +0 -451
  362. package/esm/packages/vuu-table-extras/src/column-menu/column-menu-utils.js.map +0 -1
  363. package/esm/packages/vuu-table-extras/src/column-menu/useColumnActions.js +0 -66
  364. package/esm/packages/vuu-table-extras/src/column-menu/useColumnActions.js.map +0 -1
  365. package/esm/packages/vuu-table-extras/src/column-picker/ColumnModel.js +0 -170
  366. package/esm/packages/vuu-table-extras/src/column-picker/ColumnModel.js.map +0 -1
  367. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPicker.css.js +0 -4
  368. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPicker.css.js.map +0 -1
  369. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPicker.js +0 -249
  370. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPicker.js.map +0 -1
  371. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js +0 -32
  372. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js.map +0 -1
  373. package/esm/packages/vuu-table-extras/src/column-picker/useColumnPicker.js +0 -53
  374. package/esm/packages/vuu-table-extras/src/column-picker/useColumnPicker.js.map +0 -1
  375. package/esm/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js +0 -33
  376. package/esm/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js.map +0 -1
  377. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.css.js +0 -4
  378. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.css.js.map +0 -1
  379. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js +0 -43
  380. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js.map +0 -1
  381. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.css.js +0 -4
  382. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.css.js.map +0 -1
  383. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js +0 -159
  384. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js.map +0 -1
  385. package/esm/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js +0 -201
  386. package/esm/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js.map +0 -1
  387. package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js +0 -4
  388. package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js.map +0 -1
  389. package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.js +0 -107
  390. package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.js.map +0 -1
  391. package/esm/packages/vuu-table-extras/src/csv-upload/data-upload-preview/DataUploadPreview.css.js +0 -4
  392. package/esm/packages/vuu-table-extras/src/csv-upload/data-upload-preview/DataUploadPreview.css.js.map +0 -1
  393. package/esm/packages/vuu-table-extras/src/csv-upload/data-upload-preview/DataUploadPreview.js +0 -116
  394. package/esm/packages/vuu-table-extras/src/csv-upload/data-upload-preview/DataUploadPreview.js.map +0 -1
  395. package/esm/packages/vuu-table-extras/src/csv-upload/data-upload-preview/useDataUploadPreview.js +0 -73
  396. package/esm/packages/vuu-table-extras/src/csv-upload/data-upload-preview/useDataUploadPreview.js.map +0 -1
  397. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js.map +0 -1
  398. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js +0 -57
  399. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js.map +0 -1
  400. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js +0 -196
  401. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js.map +0 -1
  402. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js +0 -97
  403. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js.map +0 -1
  404. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js +0 -35
  405. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js.map +0 -1
  406. package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js +0 -389
  407. package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js.map +0 -1
  408. package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css.js +0 -4
  409. package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css.js.map +0 -1
  410. package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js +0 -74
  411. package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js.map +0 -1
  412. package/esm/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js +0 -64
  413. package/esm/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js.map +0 -1
  414. package/esm/packages/vuu-table-extras/src/freeze-control/FreezeControl.css.js +0 -4
  415. package/esm/packages/vuu-table-extras/src/freeze-control/FreezeControl.css.js.map +0 -1
  416. package/esm/packages/vuu-table-extras/src/freeze-control/FreezeControl.js +0 -104
  417. package/esm/packages/vuu-table-extras/src/freeze-control/FreezeControl.js.map +0 -1
  418. package/esm/packages/vuu-table-extras/src/freeze-control/FrozenBanner.css.js +0 -4
  419. package/esm/packages/vuu-table-extras/src/freeze-control/FrozenBanner.css.js.map +0 -1
  420. package/esm/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js +0 -53
  421. package/esm/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js.map +0 -1
  422. package/esm/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js +0 -8
  423. package/esm/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js.map +0 -1
  424. package/esm/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js +0 -66
  425. package/esm/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js.map +0 -1
  426. package/esm/packages/vuu-table-extras/src/index.js +0 -45
  427. package/esm/packages/vuu-table-extras/src/index.js.map +0 -1
  428. package/esm/packages/vuu-table-extras/src/inline-add-row/InlineAddRow.css.js +0 -4
  429. package/esm/packages/vuu-table-extras/src/inline-add-row/InlineAddRow.css.js.map +0 -1
  430. package/esm/packages/vuu-table-extras/src/inline-add-row/InlineAddRow.js +0 -42
  431. package/esm/packages/vuu-table-extras/src/inline-add-row/InlineAddRow.js.map +0 -1
  432. package/esm/packages/vuu-table-extras/src/inline-add-row/useInlineAddRow.js +0 -135
  433. package/esm/packages/vuu-table-extras/src/inline-add-row/useInlineAddRow.js.map +0 -1
  434. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +0 -4
  435. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +0 -1
  436. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js +0 -88
  437. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +0 -1
  438. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js +0 -42
  439. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +0 -1
  440. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js +0 -47
  441. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +0 -1
  442. package/esm/packages/vuu-table-extras/src/table-footer/TableFooter.css.js +0 -4
  443. package/esm/packages/vuu-table-extras/src/table-footer/TableFooter.css.js.map +0 -1
  444. package/esm/packages/vuu-table-extras/src/table-footer/TableFooter.js +0 -34
  445. package/esm/packages/vuu-table-extras/src/table-footer/TableFooter.js.map +0 -1
  446. package/esm/packages/vuu-table-extras/src/table-provider/TableProvider.js +0 -56
  447. package/esm/packages/vuu-table-extras/src/table-provider/TableProvider.js.map +0 -1
  448. package/esm/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.css.js +0 -4
  449. package/esm/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.css.js.map +0 -1
  450. package/esm/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js +0 -112
  451. package/esm/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js.map +0 -1
  452. package/esm/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js +0 -58
  453. package/esm/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js.map +0 -1
@@ -1,116 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { useComponentCssInjection } from '@salt-ds/styles';
3
- import { useWindow } from '@salt-ds/window';
4
- import { DataEditingProvider, EditButtons, UNDO_CELL_RENDERER, EDIT_ACTION_ROW_CLASS_NAME_GENERATOR } from '@vuu-ui/vuu-data-editing';
5
- import { Table } from '@vuu-ui/vuu-table';
6
- import cx from 'clsx';
7
- import { useMemo, useCallback } from 'react';
8
- import { TableFooter, TableFooterTray } from '../../table-footer/TableFooter.js';
9
- import css from './DataUploadPreview.css.js';
10
- import { getSessionDataSource, useDataUploadPreview } from './useDataUploadPreview.js';
11
-
12
- const classBase = "vuuDataUploadPreview";
13
- const undoColumn = {
14
- name: "undo",
15
- source: "client",
16
- width: 80,
17
- type: {
18
- name: "string",
19
- renderer: {
20
- name: UNDO_CELL_RENDERER
21
- }
22
- }
23
- };
24
- const rowClassNameGenerators = [EDIT_ACTION_ROW_CLASS_NAME_GENERATOR];
25
- const DataUploadPreview = ({
26
- className,
27
- editSession,
28
- onClose,
29
- saveLabel = "Submit",
30
- tableSchema,
31
- ...htmlAttributes
32
- }) => {
33
- const dataSource = useMemo(
34
- () => getSessionDataSource(editSession),
35
- [editSession]
36
- );
37
- const targetWindow = useWindow();
38
- useComponentCssInjection({
39
- testId: "vuu-data-upload-preview",
40
- css,
41
- window: targetWindow
42
- });
43
- const {
44
- canCancel,
45
- canSave,
46
- hasSelection,
47
- onCancel,
48
- onDelete,
49
- onSave,
50
- sessionError
51
- } = useDataUploadPreview({ dataSource, editSession, onClose });
52
- const isRowSelectable = useCallback(
53
- (dataRow) => dataRow.vuu_action !== "deleteRow",
54
- []
55
- );
56
- const config = useMemo(() => {
57
- const columns = tableSchema.columns.map(
58
- (column) => column.name === "vuuMsg" ? {
59
- ...column,
60
- editable: false,
61
- hidden: false,
62
- label: "Error",
63
- width: 300
64
- } : {
65
- ...column,
66
- editable: true
67
- }
68
- );
69
- if (!columns.some(({ name }) => name === "vuuMsg")) {
70
- columns.push({
71
- editable: false,
72
- label: "Error",
73
- name: "vuuMsg",
74
- serverDataType: "string",
75
- width: 300
76
- });
77
- }
78
- return {
79
- columns: columns.concat({ hidden: true, name: "vuu_action" }, undoColumn),
80
- columnDefaultWidth: 150,
81
- rowClassNameGenerators,
82
- rowSeparators: true,
83
- zebraStripes: true
84
- };
85
- }, [tableSchema.columns]);
86
- return /* @__PURE__ */ jsxs("div", { ...htmlAttributes, className: cx(classBase, className), children: [
87
- sessionError ? /* @__PURE__ */ jsx("div", { role: "alert", children: sessionError }) : null,
88
- /* @__PURE__ */ jsx("div", { className: `${classBase}-content`, children: /* @__PURE__ */ jsx(DataEditingProvider, { editSession, children: /* @__PURE__ */ jsx(
89
- Table,
90
- {
91
- config,
92
- "data-viewport": dataSource.viewport,
93
- dataSource,
94
- isRowSelectable,
95
- renderBufferSize: 10,
96
- selectionModel: "checkbox"
97
- }
98
- ) }) }),
99
- /* @__PURE__ */ jsx(TableFooter, { children: /* @__PURE__ */ jsx(TableFooterTray, { position: "center", children: /* @__PURE__ */ jsx(
100
- EditButtons,
101
- {
102
- canCancel,
103
- canSave,
104
- editSession,
105
- hasSelection,
106
- onCancel,
107
- onDelete,
108
- onSave,
109
- saveLabel
110
- }
111
- ) }) })
112
- ] });
113
- };
114
-
115
- export { DataUploadPreview };
116
- //# sourceMappingURL=DataUploadPreview.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataUploadPreview.js","sources":["../../../../../../../../packages/vuu-table-extras/src/csv-upload/data-upload-preview/DataUploadPreview.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport type { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport {\n DataEditingProvider,\n EDIT_ACTION_ROW_CLASS_NAME_GENERATOR,\n EditButtons,\n type EditSession,\n UNDO_CELL_RENDERER,\n} from \"@vuu-ui/vuu-data-editing\";\nimport { Table } from \"@vuu-ui/vuu-table\";\nimport type {\n ColumnDescriptor,\n DataRow,\n TableConfig,\n} from \"@vuu-ui/vuu-table-types\";\nimport cx from \"clsx\";\nimport type { HTMLAttributes } from \"react\";\nimport { useCallback, useMemo } from \"react\";\nimport { TableFooter, TableFooterTray } from \"../../table-footer/TableFooter\";\nimport css from \"./DataUploadPreview.css\";\nimport {\n getSessionDataSource,\n useDataUploadPreview,\n} from \"./useDataUploadPreview\";\n\nconst classBase = \"vuuDataUploadPreview\";\n\nconst undoColumn: ColumnDescriptor = {\n name: \"undo\",\n source: \"client\",\n width: 80,\n type: {\n name: \"string\",\n renderer: {\n name: UNDO_CELL_RENDERER,\n },\n },\n};\n\nconst rowClassNameGenerators = [EDIT_ACTION_ROW_CLASS_NAME_GENERATOR];\n\nexport interface DataUploadPreviewProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n editSession: EditSession;\n onClose: () => void;\n saveLabel?: string;\n tableSchema: TableSchema;\n}\n\nexport const DataUploadPreview = ({\n className,\n editSession,\n onClose,\n saveLabel = \"Submit\",\n tableSchema,\n ...htmlAttributes\n}: DataUploadPreviewProps) => {\n const dataSource = useMemo(\n () => getSessionDataSource(editSession),\n [editSession],\n );\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-data-upload-preview\",\n css,\n window: targetWindow,\n });\n\n const {\n canCancel,\n canSave,\n hasSelection,\n onCancel,\n onDelete,\n onSave,\n sessionError,\n } = useDataUploadPreview({ dataSource, editSession, onClose });\n\n const isRowSelectable = useCallback(\n (dataRow: DataRow) => dataRow.vuu_action !== \"deleteRow\",\n [],\n );\n const config = useMemo<TableConfig>(() => {\n const columns = tableSchema.columns.map<ColumnDescriptor>((column) =>\n column.name === \"vuuMsg\"\n ? {\n ...column,\n editable: false,\n hidden: false,\n label: \"Error\",\n width: 300,\n }\n : {\n ...column,\n editable: true,\n },\n );\n if (!columns.some(({ name }) => name === \"vuuMsg\")) {\n columns.push({\n editable: false,\n label: \"Error\",\n name: \"vuuMsg\",\n serverDataType: \"string\",\n width: 300,\n });\n }\n\n return {\n columns: columns.concat({ hidden: true, name: \"vuu_action\" }, undoColumn),\n columnDefaultWidth: 150,\n rowClassNameGenerators,\n rowSeparators: true,\n zebraStripes: true,\n };\n }, [tableSchema.columns]);\n\n return (\n <div {...htmlAttributes} className={cx(classBase, className)}>\n {sessionError ? <div role=\"alert\">{sessionError}</div> : null}\n <div className={`${classBase}-content`}>\n <DataEditingProvider editSession={editSession}>\n <Table\n config={config}\n data-viewport={dataSource.viewport}\n dataSource={dataSource}\n isRowSelectable={isRowSelectable}\n renderBufferSize={10}\n selectionModel=\"checkbox\"\n />\n </DataEditingProvider>\n </div>\n <TableFooter>\n <TableFooterTray position=\"center\">\n <EditButtons\n canCancel={canCancel}\n canSave={canSave}\n editSession={editSession}\n hasSelection={hasSelection}\n onCancel={onCancel}\n onDelete={onDelete}\n onSave={onSave}\n saveLabel={saveLabel}\n />\n </TableFooterTray>\n </TableFooter>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,73 +0,0 @@
1
- import { useState, useCallback, useEffect } from 'react';
2
-
3
- const getSessionDataSource = (editSession) => {
4
- const dataSource = editSession.sessionDataSource;
5
- if (!dataSource) {
6
- throw new Error("[DataUploadPreview] requires an active edit session");
7
- }
8
- return dataSource;
9
- };
10
- const useDataUploadPreview = ({
11
- dataSource,
12
- editSession,
13
- onClose
14
- }) => {
15
- const [editState, setEditState] = useState(editSession.editState);
16
- const [lifecycle, setLifecycle] = useState(
17
- editSession.lifecycle
18
- );
19
- const [selectionCount, setSelectionCount] = useState(0);
20
- const [sessionError, setSessionError] = useState();
21
- const endSession = useCallback(
22
- async (save, force = false) => {
23
- try {
24
- await editSession.end(save, force);
25
- onClose();
26
- } catch (error) {
27
- setSessionError(
28
- error instanceof Error ? error.message : "Unable to end edit session"
29
- );
30
- }
31
- },
32
- [editSession, onClose]
33
- );
34
- const onCancel = useCallback(() => endSession(false), [endSession]);
35
- const onDelete = useCallback(
36
- () => editSession.deleteSelectedRows(),
37
- [editSession]
38
- );
39
- const onSave = useCallback(
40
- (force = false) => endSession(true, force),
41
- [endSession]
42
- );
43
- useEffect(() => {
44
- const handleEditState = (nextEditState) => {
45
- setEditState(nextEditState);
46
- };
47
- const handleLifecycle = (nextLifecycle) => {
48
- setLifecycle(nextLifecycle);
49
- };
50
- editSession.on("editState", handleEditState);
51
- editSession.on("lifecycle", handleLifecycle);
52
- dataSource.on("row-selection", setSelectionCount);
53
- return () => {
54
- editSession.removeListener("editState", handleEditState);
55
- editSession.removeListener("lifecycle", handleLifecycle);
56
- dataSource.removeListener("row-selection", setSelectionCount);
57
- };
58
- }, [dataSource, editSession]);
59
- const canCancel = lifecycle.status === "active" || lifecycle.status === "error" && lifecycle.operation === "end";
60
- const canSave = canCancel && (editState === "dirty" || editState === "stale") && editSession.invalidCount === 0;
61
- return {
62
- canCancel,
63
- canSave,
64
- hasSelection: selectionCount > 0,
65
- onCancel,
66
- onDelete,
67
- onSave,
68
- sessionError
69
- };
70
- };
71
-
72
- export { getSessionDataSource, useDataUploadPreview };
73
- //# sourceMappingURL=useDataUploadPreview.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDataUploadPreview.js","sources":["../../../../../../../../packages/vuu-table-extras/src/csv-upload/data-upload-preview/useDataUploadPreview.ts"],"sourcesContent":["import type { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport type {\n EditLifecycle,\n EditSession,\n EditState,\n} from \"@vuu-ui/vuu-data-editing\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport interface UseDataUploadPreviewProps {\n dataSource: DataSource;\n editSession: EditSession;\n onClose: () => void;\n}\n\nexport const getSessionDataSource = (editSession: EditSession): DataSource => {\n const dataSource = editSession.sessionDataSource;\n if (!dataSource) {\n throw new Error(\"[DataUploadPreview] requires an active edit session\");\n }\n return dataSource;\n};\n\nexport const useDataUploadPreview = ({\n dataSource,\n editSession,\n onClose,\n}: UseDataUploadPreviewProps) => {\n const [editState, setEditState] = useState<EditState>(editSession.editState);\n const [lifecycle, setLifecycle] = useState<EditLifecycle>(\n editSession.lifecycle,\n );\n const [selectionCount, setSelectionCount] = useState(0);\n const [sessionError, setSessionError] = useState<string>();\n\n const endSession = useCallback(\n async (save: boolean, force = false) => {\n try {\n await editSession.end(save, force);\n onClose();\n } catch (error) {\n setSessionError(\n error instanceof Error ? error.message : \"Unable to end edit session\",\n );\n }\n },\n [editSession, onClose],\n );\n\n const onCancel = useCallback(() => endSession(false), [endSession]);\n const onDelete = useCallback(\n () => editSession.deleteSelectedRows(),\n [editSession],\n );\n const onSave = useCallback(\n (force = false) => endSession(true, force),\n [endSession],\n );\n\n useEffect(() => {\n const handleEditState = (nextEditState: EditState) => {\n setEditState(nextEditState);\n };\n const handleLifecycle = (nextLifecycle: EditLifecycle) => {\n setLifecycle(nextLifecycle);\n };\n editSession.on(\"editState\", handleEditState);\n editSession.on(\"lifecycle\", handleLifecycle);\n dataSource.on(\"row-selection\", setSelectionCount);\n return () => {\n editSession.removeListener(\"editState\", handleEditState);\n editSession.removeListener(\"lifecycle\", handleLifecycle);\n dataSource.removeListener(\"row-selection\", setSelectionCount);\n };\n }, [dataSource, editSession]);\n\n const canCancel =\n lifecycle.status === \"active\" ||\n (lifecycle.status === \"error\" && lifecycle.operation === \"end\");\n const canSave =\n canCancel &&\n (editState === \"dirty\" || editState === \"stale\") &&\n editSession.invalidCount === 0;\n\n return {\n canCancel,\n canSave,\n hasSelection: selectionCount > 0,\n onCancel,\n onDelete,\n onSave,\n sessionError,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv-constants.js","sources":["../../../../../../../../packages/vuu-table-extras/src/csv-upload/parse/csv-constants.ts"],"sourcesContent":["export const CSV_HEADER_ROW_NUMBER = 1;\nexport const CSV_FIRST_DATA_ROW_NUMBER = 2;\n"],"names":[],"mappings":"AAAO,MAAM,qBAAwB,GAAA;AAC9B,MAAM,yBAA4B,GAAA;;;;"}
@@ -1,57 +0,0 @@
1
- import { CSV_HEADER_ROW_NUMBER } from './csv-constants.js';
2
-
3
- var CsvParseErrorEnum = /* @__PURE__ */ ((CsvParseErrorEnum2) => {
4
- CsvParseErrorEnum2["EMPTY_FILE"] = "EMPTY_FILE";
5
- CsvParseErrorEnum2["INVALID_SEPARATOR"] = "INVALID_SEPARATOR";
6
- CsvParseErrorEnum2["INVALID_FORMAT"] = "INVALID_FORMAT";
7
- CsvParseErrorEnum2["UNQUOTED_VALUE"] = "UNQUOTED_VALUE";
8
- CsvParseErrorEnum2["EMPTY_HEADER_COLUMN"] = "EMPTY_HEADER_COLUMN";
9
- CsvParseErrorEnum2["DUPLICATE_HEADER_COLUMN"] = "DUPLICATE_HEADER_COLUMN";
10
- CsvParseErrorEnum2["ROW_COLUMN_COUNT_MISMATCH"] = "ROW_COLUMN_COUNT_MISMATCH";
11
- return CsvParseErrorEnum2;
12
- })(CsvParseErrorEnum || {});
13
- var CsvValidationErrorEnum = /* @__PURE__ */ ((CsvValidationErrorEnum2) => {
14
- CsvValidationErrorEnum2["MISSING_KEY_COLUMN"] = "MISSING_KEY_COLUMN";
15
- CsvValidationErrorEnum2["UNKNOWN_COLUMN"] = "UNKNOWN_COLUMN";
16
- CsvValidationErrorEnum2["MAX_ROWS_EXCEEDED"] = "MAX_ROWS_EXCEEDED";
17
- CsvValidationErrorEnum2["EMPTY_NON_STRING_VALUE"] = "EMPTY_NON_STRING_VALUE";
18
- CsvValidationErrorEnum2["TYPE_MISMATCH"] = "TYPE_MISMATCH";
19
- return CsvValidationErrorEnum2;
20
- })(CsvValidationErrorEnum || {});
21
- const createCsvErrorState = () => ({
22
- errorMap: {
23
- rowErrors: {},
24
- fileErrors: {}
25
- },
26
- errors: []
27
- });
28
- const addCsvFileError = (state, columnName, error, message, value = "") => {
29
- const existing = state.errorMap.fileErrors[columnName] ?? [];
30
- existing.push(error);
31
- state.errorMap.fileErrors[columnName] = existing;
32
- state.errors.push({
33
- rowNum: CSV_HEADER_ROW_NUMBER,
34
- column: columnName,
35
- value,
36
- message,
37
- errorEnum: error
38
- });
39
- };
40
- const addCsvRowError = (state, rowNum, columnName, error, message, value = "") => {
41
- const rowErrors = state.errorMap.rowErrors[rowNum] ?? {};
42
- const existing = rowErrors[columnName] ?? [];
43
- existing.push(error);
44
- rowErrors[columnName] = existing;
45
- state.errorMap.rowErrors[rowNum] = rowErrors;
46
- state.errors.push({
47
- rowNum,
48
- column: columnName,
49
- value,
50
- message,
51
- errorEnum: error
52
- });
53
- };
54
- const hasCsvErrors = (errorMap) => Object.keys(errorMap.fileErrors).length > 0 || Object.keys(errorMap.rowErrors).length > 0;
55
-
56
- export { CsvParseErrorEnum, CsvValidationErrorEnum, addCsvFileError, addCsvRowError, createCsvErrorState, hasCsvErrors };
57
- //# sourceMappingURL=csv-errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv-errors.js","sources":["../../../../../../../../packages/vuu-table-extras/src/csv-upload/parse/csv-errors.ts"],"sourcesContent":["import { CSV_HEADER_ROW_NUMBER } from \"./csv-constants\";\n\nexport enum CsvParseErrorEnum {\n EMPTY_FILE = \"EMPTY_FILE\",\n INVALID_SEPARATOR = \"INVALID_SEPARATOR\",\n INVALID_FORMAT = \"INVALID_FORMAT\",\n UNQUOTED_VALUE = \"UNQUOTED_VALUE\",\n EMPTY_HEADER_COLUMN = \"EMPTY_HEADER_COLUMN\",\n DUPLICATE_HEADER_COLUMN = \"DUPLICATE_HEADER_COLUMN\",\n ROW_COLUMN_COUNT_MISMATCH = \"ROW_COLUMN_COUNT_MISMATCH\",\n}\n\nexport enum CsvValidationErrorEnum {\n MISSING_KEY_COLUMN = \"MISSING_KEY_COLUMN\",\n UNKNOWN_COLUMN = \"UNKNOWN_COLUMN\",\n MAX_ROWS_EXCEEDED = \"MAX_ROWS_EXCEEDED\",\n EMPTY_NON_STRING_VALUE = \"EMPTY_NON_STRING_VALUE\",\n TYPE_MISMATCH = \"TYPE_MISMATCH\",\n}\n\nexport type CsvErrorMap<TError extends string> = {\n rowErrors: Record<number, Record<string, TError[]>>;\n fileErrors: Record<string, TError[]>;\n};\n\nexport type CsvStructuredError<TError extends string> = {\n rowNum: number;\n column: string;\n value: string;\n message: string;\n errorEnum: TError;\n};\n\nexport type CsvError<TError extends string> = {\n errorMap: CsvErrorMap<TError>;\n errors: CsvStructuredError<TError>[];\n message: string;\n};\n\nexport type CsvErrorState<TError extends string> = {\n errorMap: CsvErrorMap<TError>;\n errors: CsvStructuredError<TError>[];\n};\n\nexport const createCsvErrorState = <\n TError extends string,\n>(): CsvErrorState<TError> => ({\n errorMap: {\n rowErrors: {},\n fileErrors: {},\n },\n errors: [],\n});\n\nexport const addCsvFileError = <TError extends string>(\n state: CsvErrorState<TError>,\n columnName: string,\n error: TError,\n message: string,\n value = \"\",\n) => {\n const existing = state.errorMap.fileErrors[columnName] ?? [];\n existing.push(error);\n state.errorMap.fileErrors[columnName] = existing;\n state.errors.push({\n rowNum: CSV_HEADER_ROW_NUMBER,\n column: columnName,\n value,\n message,\n errorEnum: error,\n });\n};\n\nexport const addCsvRowError = <TError extends string>(\n state: CsvErrorState<TError>,\n rowNum: number,\n columnName: string,\n error: TError,\n message: string,\n value = \"\",\n) => {\n const rowErrors = state.errorMap.rowErrors[rowNum] ?? {};\n const existing = rowErrors[columnName] ?? [];\n existing.push(error);\n rowErrors[columnName] = existing;\n state.errorMap.rowErrors[rowNum] = rowErrors;\n state.errors.push({\n rowNum,\n column: columnName,\n value,\n message,\n errorEnum: error,\n });\n};\n\nexport const hasCsvErrors = <TError extends string>(\n errorMap: CsvErrorMap<TError>,\n) =>\n Object.keys(errorMap.fileErrors).length > 0 ||\n Object.keys(errorMap.rowErrors).length > 0;\n\nexport type CsvParseErrorMap = CsvErrorMap<CsvParseErrorEnum>;\nexport type CsvParseError = CsvError<CsvParseErrorEnum>;\n\nexport type CsvValidationErrorType = CsvValidationErrorEnum | CsvParseErrorEnum;\n\nexport type CsvValidationErrorMap = CsvErrorMap<CsvValidationErrorEnum>;\nexport type CsvValidationStructuredError = CsvError<CsvValidationErrorType>;\nexport type CsvValidationError = CsvStructuredError<CsvValidationErrorType>;\n"],"names":["CsvParseErrorEnum","CsvValidationErrorEnum"],"mappings":";;AAEY,IAAA,iBAAA,qBAAAA,kBAAL,KAAA;AACL,EAAAA,mBAAA,YAAa,CAAA,GAAA,YAAA;AACb,EAAAA,mBAAA,mBAAoB,CAAA,GAAA,mBAAA;AACpB,EAAAA,mBAAA,gBAAiB,CAAA,GAAA,gBAAA;AACjB,EAAAA,mBAAA,gBAAiB,CAAA,GAAA,gBAAA;AACjB,EAAAA,mBAAA,qBAAsB,CAAA,GAAA,qBAAA;AACtB,EAAAA,mBAAA,yBAA0B,CAAA,GAAA,yBAAA;AAC1B,EAAAA,mBAAA,2BAA4B,CAAA,GAAA,2BAAA;AAPlB,EAAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAUA,IAAA,sBAAA,qBAAAC,uBAAL,KAAA;AACL,EAAAA,wBAAA,oBAAqB,CAAA,GAAA,oBAAA;AACrB,EAAAA,wBAAA,gBAAiB,CAAA,GAAA,gBAAA;AACjB,EAAAA,wBAAA,mBAAoB,CAAA,GAAA,mBAAA;AACpB,EAAAA,wBAAA,wBAAyB,CAAA,GAAA,wBAAA;AACzB,EAAAA,wBAAA,eAAgB,CAAA,GAAA,eAAA;AALN,EAAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA;AAgCL,MAAM,sBAAsB,OAEJ;AAAA,EAC7B,QAAU,EAAA;AAAA,IACR,WAAW,EAAC;AAAA,IACZ,YAAY;AAAC,GACf;AAAA,EACA,QAAQ;AACV,CAAA;AAEO,MAAM,kBAAkB,CAC7B,KAAA,EACA,YACA,KACA,EAAA,OAAA,EACA,QAAQ,EACL,KAAA;AACH,EAAA,MAAM,WAAW,KAAM,CAAA,QAAA,CAAS,UAAW,CAAA,UAAU,KAAK,EAAC;AAC3D,EAAA,QAAA,CAAS,KAAK,KAAK,CAAA;AACnB,EAAM,KAAA,CAAA,QAAA,CAAS,UAAW,CAAA,UAAU,CAAI,GAAA,QAAA;AACxC,EAAA,KAAA,CAAM,OAAO,IAAK,CAAA;AAAA,IAChB,MAAQ,EAAA,qBAAA;AAAA,IACR,MAAQ,EAAA,UAAA;AAAA,IACR,KAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAW,EAAA;AAAA,GACZ,CAAA;AACH;AAEa,MAAA,cAAA,GAAiB,CAC5B,KACA,EAAA,MAAA,EACA,YACA,KACA,EAAA,OAAA,EACA,QAAQ,EACL,KAAA;AACH,EAAA,MAAM,YAAY,KAAM,CAAA,QAAA,CAAS,SAAU,CAAA,MAAM,KAAK,EAAC;AACvD,EAAA,MAAM,QAAW,GAAA,SAAA,CAAU,UAAU,CAAA,IAAK,EAAC;AAC3C,EAAA,QAAA,CAAS,KAAK,KAAK,CAAA;AACnB,EAAA,SAAA,CAAU,UAAU,CAAI,GAAA,QAAA;AACxB,EAAM,KAAA,CAAA,QAAA,CAAS,SAAU,CAAA,MAAM,CAAI,GAAA,SAAA;AACnC,EAAA,KAAA,CAAM,OAAO,IAAK,CAAA;AAAA,IAChB,MAAA;AAAA,IACA,MAAQ,EAAA,UAAA;AAAA,IACR,KAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAW,EAAA;AAAA,GACZ,CAAA;AACH;AAEO,MAAM,YAAe,GAAA,CAC1B,QAEA,KAAA,MAAA,CAAO,KAAK,QAAS,CAAA,UAAU,CAAE,CAAA,MAAA,GAAS,KAC1C,MAAO,CAAA,IAAA,CAAK,QAAS,CAAA,SAAS,EAAE,MAAS,GAAA;;;;"}
@@ -1,196 +0,0 @@
1
- import { parse } from '../../../../../node_modules/csv-parse/dist/esm/sync.js';
2
- import { addCsvFileError, CsvParseErrorEnum, addCsvRowError, hasCsvErrors, createCsvErrorState } from './csv-errors.js';
3
- import { CSV_HEADER_ROW_NUMBER, CSV_FIRST_DATA_ROW_NUMBER } from './csv-constants.js';
4
-
5
- const normaliseLineEndings = (input) => input.replace(/^\uFEFF/, "").replace(/\r\n/g, "\n").replace(/\r/g, "\n");
6
- const quotedCsvLinePattern = /^\s*"(?:""|[^"])*"\s*(,\s*"(?:""|[^"])*"\s*)*$/;
7
- const withError = (message, errorMap, errors, header = [], rows = []) => ({
8
- error: { errorMap, errors, message },
9
- header,
10
- rows
11
- });
12
- const parseCsv = (csvText, options) => {
13
- const errorState = createCsvErrorState();
14
- const text = normaliseLineEndings(csvText);
15
- if (text.trim().length === 0) {
16
- addCsvFileError(
17
- errorState,
18
- "*",
19
- CsvParseErrorEnum.EMPTY_FILE,
20
- "CSV file is empty."
21
- );
22
- return withError(
23
- "CSV file is empty.",
24
- errorState.errorMap,
25
- errorState.errors
26
- );
27
- }
28
- const allLines = text.split("\n");
29
- const nonEmptyLines = allLines.filter((line) => line.trim().length > 0);
30
- if (nonEmptyLines.length === 0) {
31
- addCsvFileError(
32
- errorState,
33
- "*",
34
- CsvParseErrorEnum.EMPTY_FILE,
35
- "CSV file is empty."
36
- );
37
- return withError(
38
- "CSV file is empty.",
39
- errorState.errorMap,
40
- errorState.errors
41
- );
42
- }
43
- const firstLine = nonEmptyLines[0];
44
- if (firstLine.includes(";") && !firstLine.includes(",")) {
45
- addCsvFileError(
46
- errorState,
47
- "*",
48
- CsvParseErrorEnum.INVALID_SEPARATOR,
49
- "CSV must use comma separators.",
50
- firstLine
51
- );
52
- return withError(
53
- "CSV must use comma separators.",
54
- errorState.errorMap,
55
- errorState.errors
56
- );
57
- }
58
- if (options?.requireQuotedValues === true) {
59
- nonEmptyLines.forEach((line, lineIndex) => {
60
- if (!quotedCsvLinePattern.test(line)) {
61
- if (lineIndex === 0) {
62
- addCsvFileError(
63
- errorState,
64
- "*",
65
- CsvParseErrorEnum.UNQUOTED_VALUE,
66
- "CSV values must be enclosed in double quotes.",
67
- line
68
- );
69
- } else {
70
- addCsvRowError(
71
- errorState,
72
- lineIndex + CSV_HEADER_ROW_NUMBER,
73
- "*",
74
- CsvParseErrorEnum.UNQUOTED_VALUE,
75
- "CSV values must be enclosed in double quotes.",
76
- line
77
- );
78
- }
79
- }
80
- });
81
- if (hasCsvErrors(errorState.errorMap)) {
82
- return withError(
83
- "CSV values must be enclosed in double quotes.",
84
- errorState.errorMap,
85
- errorState.errors
86
- );
87
- }
88
- }
89
- let records;
90
- try {
91
- records = parse(text, {
92
- bom: true,
93
- delimiter: ",",
94
- escape: '"',
95
- quote: '"',
96
- relax_column_count: true,
97
- skip_empty_lines: true
98
- });
99
- } catch (err) {
100
- addCsvFileError(
101
- errorState,
102
- "*",
103
- CsvParseErrorEnum.INVALID_FORMAT,
104
- err instanceof Error ? err.message : "Invalid CSV format."
105
- );
106
- return withError(
107
- "Invalid CSV format.",
108
- errorState.errorMap,
109
- errorState.errors
110
- );
111
- }
112
- if (records.length === 0) {
113
- addCsvFileError(
114
- errorState,
115
- "*",
116
- CsvParseErrorEnum.EMPTY_FILE,
117
- "CSV file is empty."
118
- );
119
- return withError(
120
- "CSV file is empty.",
121
- errorState.errorMap,
122
- errorState.errors
123
- );
124
- }
125
- const header = records[0].map((value) => value.trim());
126
- if (header.length === 0) {
127
- addCsvFileError(
128
- errorState,
129
- "*",
130
- CsvParseErrorEnum.EMPTY_HEADER_COLUMN,
131
- "CSV header contains empty column names."
132
- );
133
- }
134
- header.forEach((col, columnIndex) => {
135
- if (col.length === 0) {
136
- addCsvFileError(
137
- errorState,
138
- `column_${columnIndex + 1}`,
139
- CsvParseErrorEnum.EMPTY_HEADER_COLUMN,
140
- "CSV header contains empty column names."
141
- );
142
- }
143
- });
144
- if (hasCsvErrors(errorState.errorMap)) {
145
- return withError(
146
- "CSV header contains empty column names.",
147
- errorState.errorMap,
148
- errorState.errors
149
- );
150
- }
151
- const duplicateHeader = header.find(
152
- (col, idx) => header.indexOf(col) !== idx
153
- );
154
- if (duplicateHeader) {
155
- addCsvFileError(
156
- errorState,
157
- duplicateHeader,
158
- CsvParseErrorEnum.DUPLICATE_HEADER_COLUMN,
159
- `CSV header contains duplicate column '${duplicateHeader}'.`,
160
- duplicateHeader
161
- );
162
- return withError(
163
- `CSV header contains duplicate column '${duplicateHeader}'.`,
164
- errorState.errorMap,
165
- errorState.errors,
166
- header,
167
- []
168
- );
169
- }
170
- const rows = records.slice(1);
171
- rows.forEach((row, rowIndex) => {
172
- if (row.length !== header.length) {
173
- addCsvRowError(
174
- errorState,
175
- rowIndex + CSV_FIRST_DATA_ROW_NUMBER,
176
- "*",
177
- CsvParseErrorEnum.ROW_COLUMN_COUNT_MISMATCH,
178
- "CSV rows must have the same number of columns as the header.",
179
- row.join(",")
180
- );
181
- }
182
- });
183
- if (hasCsvErrors(errorState.errorMap)) {
184
- return withError(
185
- "CSV rows must have the same number of columns as the header.",
186
- errorState.errorMap,
187
- errorState.errors,
188
- header,
189
- rows
190
- );
191
- }
192
- return { header, rows };
193
- };
194
-
195
- export { CsvParseErrorEnum, parseCsv };
196
- //# sourceMappingURL=csv-parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv-parse.js","sources":["../../../../../../../../packages/vuu-table-extras/src/csv-upload/parse/csv-parse.ts"],"sourcesContent":["import { parse } from \"csv-parse/browser/esm/sync\";\nimport {\n addCsvFileError,\n addCsvRowError,\n createCsvErrorState,\n hasCsvErrors,\n CsvParseErrorEnum,\n type CsvStructuredError,\n type CsvParseError,\n type CsvParseErrorMap,\n} from \"./csv-errors\";\nimport {\n CSV_FIRST_DATA_ROW_NUMBER,\n CSV_HEADER_ROW_NUMBER,\n} from \"./csv-constants\";\n\nexport {\n CsvParseErrorEnum,\n type CsvError,\n type CsvErrorMap,\n type CsvStructuredError,\n type CsvParseError,\n type CsvParseErrorMap,\n} from \"./csv-errors\";\n\nexport type CsvParseResult = {\n error?: CsvParseError;\n header: string[];\n rows: string[][];\n};\n\nexport type CsvParseOptions = {\n requireQuotedValues?: boolean;\n};\n\nconst normaliseLineEndings = (input: string) =>\n input\n .replace(/^\\uFEFF/, \"\")\n .replace(/\\r\\n/g, \"\\n\")\n .replace(/\\r/g, \"\\n\");\n\nconst quotedCsvLinePattern = /^\\s*\"(?:\"\"|[^\"])*\"\\s*(,\\s*\"(?:\"\"|[^\"])*\"\\s*)*$/;\n\nconst withError = (\n message: string,\n errorMap: CsvParseErrorMap,\n errors: CsvStructuredError<CsvParseErrorEnum>[],\n header: string[] = [],\n rows: string[][] = [],\n): CsvParseResult => ({\n error: { errorMap, errors, message },\n header,\n rows,\n});\n\nexport const parseCsv = (\n csvText: string,\n options?: CsvParseOptions,\n): CsvParseResult => {\n const errorState = createCsvErrorState<CsvParseErrorEnum>();\n const text = normaliseLineEndings(csvText);\n\n if (text.trim().length === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.EMPTY_FILE,\n \"CSV file is empty.\",\n );\n return withError(\n \"CSV file is empty.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n const allLines = text.split(\"\\n\");\n const nonEmptyLines = allLines.filter((line) => line.trim().length > 0);\n\n if (nonEmptyLines.length === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.EMPTY_FILE,\n \"CSV file is empty.\",\n );\n return withError(\n \"CSV file is empty.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n const firstLine = nonEmptyLines[0];\n if (firstLine.includes(\";\") && !firstLine.includes(\",\")) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.INVALID_SEPARATOR,\n \"CSV must use comma separators.\",\n firstLine,\n );\n return withError(\n \"CSV must use comma separators.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n if (options?.requireQuotedValues === true) {\n nonEmptyLines.forEach((line, lineIndex) => {\n if (!quotedCsvLinePattern.test(line)) {\n if (lineIndex === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.UNQUOTED_VALUE,\n \"CSV values must be enclosed in double quotes.\",\n line,\n );\n } else {\n addCsvRowError(\n errorState,\n lineIndex + CSV_HEADER_ROW_NUMBER,\n \"*\",\n CsvParseErrorEnum.UNQUOTED_VALUE,\n \"CSV values must be enclosed in double quotes.\",\n line,\n );\n }\n }\n });\n\n if (hasCsvErrors(errorState.errorMap)) {\n return withError(\n \"CSV values must be enclosed in double quotes.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n }\n\n let records: string[][];\n try {\n records = parse(text, {\n bom: true,\n delimiter: \",\",\n escape: '\"',\n quote: '\"',\n relax_column_count: true,\n skip_empty_lines: true,\n }) as string[][];\n } catch (err) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.INVALID_FORMAT,\n err instanceof Error ? err.message : \"Invalid CSV format.\",\n );\n return withError(\n \"Invalid CSV format.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n if (records.length === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.EMPTY_FILE,\n \"CSV file is empty.\",\n );\n return withError(\n \"CSV file is empty.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n const header = records[0].map((value) => value.trim());\n if (header.length === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.EMPTY_HEADER_COLUMN,\n \"CSV header contains empty column names.\",\n );\n }\n\n header.forEach((col, columnIndex) => {\n if (col.length === 0) {\n addCsvFileError(\n errorState,\n `column_${columnIndex + 1}`,\n CsvParseErrorEnum.EMPTY_HEADER_COLUMN,\n \"CSV header contains empty column names.\",\n );\n }\n });\n\n if (hasCsvErrors(errorState.errorMap)) {\n return withError(\n \"CSV header contains empty column names.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n const duplicateHeader = header.find(\n (col, idx) => header.indexOf(col) !== idx,\n );\n if (duplicateHeader) {\n addCsvFileError(\n errorState,\n duplicateHeader,\n CsvParseErrorEnum.DUPLICATE_HEADER_COLUMN,\n `CSV header contains duplicate column '${duplicateHeader}'.`,\n duplicateHeader,\n );\n return withError(\n `CSV header contains duplicate column '${duplicateHeader}'.`,\n errorState.errorMap,\n errorState.errors,\n header,\n [],\n );\n }\n\n const rows = records.slice(1);\n\n rows.forEach((row, rowIndex) => {\n if (row.length !== header.length) {\n addCsvRowError(\n errorState,\n rowIndex + CSV_FIRST_DATA_ROW_NUMBER,\n \"*\",\n CsvParseErrorEnum.ROW_COLUMN_COUNT_MISMATCH,\n \"CSV rows must have the same number of columns as the header.\",\n row.join(\",\"),\n );\n }\n });\n\n if (hasCsvErrors(errorState.errorMap)) {\n return withError(\n \"CSV rows must have the same number of columns as the header.\",\n errorState.errorMap,\n errorState.errors,\n header,\n rows,\n );\n }\n\n return { header, rows };\n};\n"],"names":[],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- import { getTypedValue } from '@vuu-ui/vuu-utils';
2
- import { addCsvFileError, CsvValidationErrorEnum, addCsvRowError, createCsvErrorState } from './csv-errors.js';
3
- import { CSV_FIRST_DATA_ROW_NUMBER } from './csv-constants.js';
4
-
5
- const MAX_ROWS_IN_CSV = 25e3;
6
- const validateCsvAgainstSchema = (parsed, tableSchema, options) => {
7
- const schemaColumns = new Map(
8
- tableSchema.columns.map((col) => [col.name, col.serverDataType])
9
- );
10
- const maxRows = options?.maxRows ?? MAX_ROWS_IN_CSV;
11
- const errorState = createCsvErrorState();
12
- if (!parsed.header.includes(tableSchema.key)) {
13
- addCsvFileError(
14
- errorState,
15
- tableSchema.key,
16
- CsvValidationErrorEnum.MISSING_KEY_COLUMN,
17
- `CSV must include key column '${tableSchema.key}'.`
18
- );
19
- }
20
- parsed.header.forEach((column) => {
21
- if (!schemaColumns.has(column)) {
22
- addCsvFileError(
23
- errorState,
24
- column,
25
- CsvValidationErrorEnum.UNKNOWN_COLUMN,
26
- "Column is not present in table schema.",
27
- column
28
- );
29
- }
30
- });
31
- if (parsed.rows.length > maxRows) {
32
- addCsvFileError(
33
- errorState,
34
- "*",
35
- CsvValidationErrorEnum.MAX_ROWS_EXCEEDED,
36
- `CSV row count ${parsed.rows.length} exceeds maxRows ${maxRows}.`,
37
- String(parsed.rows.length)
38
- );
39
- }
40
- const typedRows = [];
41
- parsed.rows.forEach((rowValues, rowIndex) => {
42
- const rowNum = rowIndex + CSV_FIRST_DATA_ROW_NUMBER;
43
- const typedRow = {};
44
- parsed.header.forEach((columnName, columnIndex) => {
45
- const rawValue = rowValues[columnIndex];
46
- const schemaType = schemaColumns.get(columnName);
47
- if (rawValue.length === 0 && schemaType !== "string") {
48
- addCsvRowError(
49
- errorState,
50
- rowNum,
51
- columnName,
52
- CsvValidationErrorEnum.EMPTY_NON_STRING_VALUE,
53
- "Empty value is not allowed for non-string columns.",
54
- rawValue
55
- );
56
- return;
57
- }
58
- let value;
59
- const toType = schemaType ?? "string";
60
- try {
61
- value = getTypedValue(rawValue, toType);
62
- } catch (err) {
63
- addCsvRowError(
64
- errorState,
65
- rowNum,
66
- columnName,
67
- CsvValidationErrorEnum.TYPE_MISMATCH,
68
- err instanceof Error ? err.message : String(err),
69
- rawValue
70
- );
71
- return;
72
- }
73
- if (value === void 0) {
74
- addCsvRowError(
75
- errorState,
76
- rowNum,
77
- columnName,
78
- CsvValidationErrorEnum.TYPE_MISMATCH,
79
- `Value '${rawValue}' is not a valid ${toType}`,
80
- rawValue
81
- );
82
- return;
83
- }
84
- typedRow[columnName] = value;
85
- });
86
- typedRows.push(typedRow);
87
- });
88
- return {
89
- columns: parsed.header,
90
- errorMap: errorState.errorMap,
91
- errors: errorState.errors,
92
- rows: typedRows
93
- };
94
- };
95
-
96
- export { CsvValidationErrorEnum, validateCsvAgainstSchema };
97
- //# sourceMappingURL=csv-schema-validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv-schema-validation.js","sources":["../../../../../../../../packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.ts"],"sourcesContent":["import type { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { getTypedValue } from \"@vuu-ui/vuu-utils\";\nimport type { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n addCsvFileError,\n addCsvRowError,\n createCsvErrorState,\n CsvValidationErrorEnum,\n} from \"./csv-errors\";\nimport type {\n CsvValidationError,\n CsvValidationErrorMap,\n CsvParseError,\n} from \"./csv-errors\";\nimport type { CsvParseResult } from \"./csv-parse\";\nimport { CSV_FIRST_DATA_ROW_NUMBER } from \"./csv-constants\";\nimport type { VuuColumnDataType } from \"@vuu-ui/vuu-protocol-types\";\nimport type { DataValueTypeSimple } from \"@vuu-ui/vuu-data-types\";\n\nexport {\n CsvValidationErrorEnum,\n type CsvValidationError,\n type CsvValidationErrorMap,\n type CsvValidationErrorType,\n type CsvValidationStructuredError,\n} from \"./csv-errors\";\n\nexport type CsvValidationResult = {\n columns: string[];\n errorMap: CsvValidationErrorMap;\n errors: CsvValidationError[];\n parseRowError?: CsvParseError;\n rows: Record<string, VuuRowDataItemType>[];\n};\n\nexport type CsvValidationOptions = {\n maxRows?: number;\n};\n\nconst MAX_ROWS_IN_CSV = 25000;\n\nexport const validateCsvAgainstSchema = (\n parsed: CsvParseResult,\n tableSchema: TableSchema,\n options?: CsvValidationOptions,\n): CsvValidationResult => {\n const schemaColumns = new Map(\n tableSchema.columns.map((col) => [col.name, col.serverDataType] as const),\n );\n const maxRows = options?.maxRows ?? MAX_ROWS_IN_CSV;\n const errorState = createCsvErrorState<CsvValidationErrorEnum>();\n\n if (!parsed.header.includes(tableSchema.key)) {\n addCsvFileError(\n errorState,\n tableSchema.key,\n CsvValidationErrorEnum.MISSING_KEY_COLUMN,\n `CSV must include key column '${tableSchema.key}'.`,\n );\n }\n\n parsed.header.forEach((column) => {\n if (!schemaColumns.has(column)) {\n addCsvFileError(\n errorState,\n column,\n CsvValidationErrorEnum.UNKNOWN_COLUMN,\n \"Column is not present in table schema.\",\n column,\n );\n }\n });\n\n if (parsed.rows.length > maxRows) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvValidationErrorEnum.MAX_ROWS_EXCEEDED,\n `CSV row count ${parsed.rows.length} exceeds maxRows ${maxRows}.`,\n String(parsed.rows.length),\n );\n }\n\n const typedRows: Record<string, VuuRowDataItemType>[] = [];\n\n parsed.rows.forEach((rowValues, rowIndex) => {\n const rowNum = rowIndex + CSV_FIRST_DATA_ROW_NUMBER;\n const typedRow: Record<string, VuuRowDataItemType> = {};\n\n parsed.header.forEach((columnName, columnIndex) => {\n const rawValue = rowValues[columnIndex];\n const schemaType = schemaColumns.get(columnName);\n\n if (rawValue.length === 0 && schemaType !== \"string\") {\n addCsvRowError(\n errorState,\n rowNum,\n columnName,\n CsvValidationErrorEnum.EMPTY_NON_STRING_VALUE,\n \"Empty value is not allowed for non-string columns.\",\n rawValue,\n );\n return;\n }\n\n let value: VuuRowDataItemType | undefined;\n const toType = (schemaType ?? \"string\") as\n | VuuColumnDataType\n | DataValueTypeSimple;\n try {\n value = getTypedValue(rawValue, toType);\n } catch (err) {\n addCsvRowError(\n errorState,\n rowNum,\n columnName,\n CsvValidationErrorEnum.TYPE_MISMATCH,\n err instanceof Error ? err.message : String(err),\n rawValue,\n );\n return;\n }\n if (value === undefined) {\n addCsvRowError(\n errorState,\n rowNum,\n columnName,\n CsvValidationErrorEnum.TYPE_MISMATCH,\n `Value '${rawValue}' is not a valid ${toType}`,\n rawValue,\n );\n return;\n }\n typedRow[columnName] = value;\n });\n\n typedRows.push(typedRow);\n });\n\n return {\n columns: parsed.header,\n errorMap: errorState.errorMap,\n errors: errorState.errors,\n rows: typedRows,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import '@vuu-ui/vuu-utils';
2
- import { CSV_FIRST_DATA_ROW_NUMBER } from './csv-constants.js';
3
-
4
- const isRecord = (value) => typeof value === "object" && value !== null;
5
- const toErrorMessage = (error) => error instanceof Error ? error.message : String(error);
6
- const isCsvParseError = (value) => isRecord(value) && "message" in value && typeof value.message === "string" && "errors" in value && Array.isArray(value.errors) && "errorMap" in value && isRecord(value.errorMap);
7
- const hasFileParseErrors = (parseError) => Object.keys(parseError.errorMap.fileErrors).length > 0;
8
- const createUploadError = (source, message, parseError, validationError) => ({
9
- message,
10
- parseError,
11
- validationError,
12
- source
13
- });
14
- const mergeValidationWithParseErrors = (schemaValidation, parseError) => parseError ? {
15
- ...schemaValidation,
16
- errors: [
17
- ...schemaValidation.errors,
18
- ...toValidationErrorsFromParseRowErrors(parseError)
19
- ],
20
- parseRowError: parseError
21
- } : schemaValidation;
22
- const buildRowErrorMessage = (prefix, rowErrors) => {
23
- const details = rowErrors.slice(0, 8).join("; ");
24
- const remaining = rowErrors.length - 8;
25
- const suffix = remaining > 0 ? `; and ${remaining} more` : "";
26
- return `${prefix} for ${rowErrors.length} row(s): ${details}${suffix}`;
27
- };
28
- const toValidationErrorsFromParseRowErrors = (parseError) => {
29
- return parseError.errors.filter(
30
- (error) => error.rowNum >= CSV_FIRST_DATA_ROW_NUMBER
31
- );
32
- };
33
-
34
- export { buildRowErrorMessage, createUploadError, hasFileParseErrors, isCsvParseError, mergeValidationWithParseErrors, toErrorMessage, toValidationErrorsFromParseRowErrors };
35
- //# sourceMappingURL=csv-upload-utils.js.map