@vuu-ui/vuu-table-extras 0.13.1 → 0.13.3

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 (354) hide show
  1. package/cjs/node_modules/@dnd-kit/abstract/index.js +1488 -0
  2. package/cjs/node_modules/@dnd-kit/abstract/index.js.map +1 -0
  3. package/cjs/node_modules/@dnd-kit/collision/dist/index.js +91 -0
  4. package/cjs/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
  5. package/cjs/node_modules/@dnd-kit/dom/index.js +1978 -0
  6. package/cjs/node_modules/@dnd-kit/dom/index.js.map +1 -0
  7. package/cjs/node_modules/@dnd-kit/dom/sortable.js +833 -0
  8. package/cjs/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
  9. package/cjs/node_modules/@dnd-kit/dom/utilities.js +1389 -0
  10. package/cjs/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
  11. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js +310 -0
  12. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
  13. package/cjs/node_modules/@dnd-kit/react/hooks.js +94 -0
  14. package/cjs/node_modules/@dnd-kit/react/hooks.js.map +1 -0
  15. package/cjs/node_modules/@dnd-kit/react/index.js +331 -0
  16. package/cjs/node_modules/@dnd-kit/react/index.js.map +1 -0
  17. package/cjs/node_modules/@dnd-kit/react/sortable.js +177 -0
  18. package/cjs/node_modules/@dnd-kit/react/sortable.js.map +1 -0
  19. package/cjs/node_modules/@dnd-kit/react/utilities.js +19 -0
  20. package/cjs/node_modules/@dnd-kit/react/utilities.js.map +1 -0
  21. package/cjs/node_modules/@dnd-kit/state/dist/index.js +277 -0
  22. package/cjs/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
  23. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js +11 -0
  24. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
  25. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js.map +1 -0
  26. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js.map +1 -0
  27. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js.map +1 -0
  28. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +1 -0
  29. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js.map +1 -0
  30. package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js.map +1 -0
  31. package/cjs/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js.map +1 -0
  32. package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js.map +1 -0
  33. package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js.map +1 -0
  34. package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js.map +1 -0
  35. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js.map +1 -0
  36. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +1 -0
  37. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +1 -0
  38. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +1 -0
  39. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js.map +1 -0
  40. package/cjs/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js.map +1 -0
  41. package/cjs/packages/vuu-table-extras/src/column-expression-input/highlighting.js.map +1 -0
  42. package/cjs/packages/vuu-table-extras/src/column-expression-input/theme.js.map +1 -0
  43. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js.map +1 -0
  44. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js.map +1 -0
  45. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js.map +1 -0
  46. package/cjs/packages/vuu-table-extras/src/column-expression-panel/ColumnExpressionPanel.js.map +1 -0
  47. package/cjs/packages/vuu-table-extras/src/column-expression-panel/useColumnExpression.js.map +1 -0
  48. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -0
  49. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js.map +1 -0
  50. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js.map +1 -0
  51. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js.map +1 -0
  52. package/cjs/{column-list → packages/vuu-table-extras/src/column-list}/ColumnList.css.js +1 -1
  53. package/cjs/{column-list → packages/vuu-table-extras/src/column-list}/ColumnList.js +68 -22
  54. package/cjs/packages/vuu-table-extras/src/column-list/ColumnList.js.map +1 -0
  55. package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.js +40 -7
  56. package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.js.map +1 -0
  57. package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/column-menu-utils.js +46 -33
  58. package/cjs/packages/vuu-table-extras/src/column-menu/column-menu-utils.js.map +1 -0
  59. package/cjs/packages/vuu-table-extras/src/column-menu/useColumnActions.js.map +1 -0
  60. package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js.map +1 -0
  61. package/cjs/{index.js → packages/vuu-table-extras/src/index.js} +12 -5
  62. package/cjs/{index.js.map → packages/vuu-table-extras/src/index.js.map} +1 -1
  63. package/cjs/packages/vuu-table-extras/src/table-column-settings/ColumnNameLabel.js.map +1 -0
  64. package/cjs/packages/vuu-table-extras/src/table-column-settings/ColumnSettingsPanel.js.map +1 -0
  65. package/cjs/{table-settings → packages/vuu-table-extras/src/table-column-settings}/TableSettingsPanel.js +27 -11
  66. package/cjs/packages/vuu-table-extras/src/table-column-settings/TableSettingsPanel.js.map +1 -0
  67. package/cjs/packages/vuu-table-extras/src/table-column-settings/useColumnSettings.js.map +1 -0
  68. package/cjs/packages/vuu-table-extras/src/table-column-settings/useTableAndColumnSettings.js +126 -0
  69. package/cjs/packages/vuu-table-extras/src/table-column-settings/useTableAndColumnSettings.js.map +1 -0
  70. package/cjs/{table-settings → packages/vuu-table-extras/src/table-column-settings}/useTableSettings.js +9 -21
  71. package/cjs/packages/vuu-table-extras/src/table-column-settings/useTableSettings.js.map +1 -0
  72. package/cjs/packages/vuu-table-extras/src/table-provider/TableProvider.js.map +1 -0
  73. package/esm/node_modules/@dnd-kit/abstract/index.js +1472 -0
  74. package/esm/node_modules/@dnd-kit/abstract/index.js.map +1 -0
  75. package/esm/node_modules/@dnd-kit/collision/dist/index.js +86 -0
  76. package/esm/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
  77. package/esm/node_modules/@dnd-kit/dom/index.js +1964 -0
  78. package/esm/node_modules/@dnd-kit/dom/index.js.map +1 -0
  79. package/esm/node_modules/@dnd-kit/dom/sortable.js +827 -0
  80. package/esm/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
  81. package/esm/node_modules/@dnd-kit/dom/utilities.js +1344 -0
  82. package/esm/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
  83. package/esm/node_modules/@dnd-kit/geometry/dist/index.js +303 -0
  84. package/esm/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
  85. package/esm/node_modules/@dnd-kit/react/hooks.js +87 -0
  86. package/esm/node_modules/@dnd-kit/react/hooks.js.map +1 -0
  87. package/esm/node_modules/@dnd-kit/react/index.js +326 -0
  88. package/esm/node_modules/@dnd-kit/react/index.js.map +1 -0
  89. package/esm/node_modules/@dnd-kit/react/sortable.js +175 -0
  90. package/esm/node_modules/@dnd-kit/react/sortable.js.map +1 -0
  91. package/esm/node_modules/@dnd-kit/react/utilities.js +17 -0
  92. package/esm/node_modules/@dnd-kit/react/utilities.js.map +1 -0
  93. package/esm/node_modules/@dnd-kit/state/dist/index.js +263 -0
  94. package/esm/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
  95. package/esm/node_modules/@preact/signals-core/dist/signals-core.js +4 -0
  96. package/esm/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
  97. package/esm/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js.map +1 -0
  98. package/esm/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js.map +1 -0
  99. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js.map +1 -0
  100. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +1 -0
  101. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js.map +1 -0
  102. package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js.map +1 -0
  103. package/esm/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js.map +1 -0
  104. package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js.map +1 -0
  105. package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js.map +1 -0
  106. package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js.map +1 -0
  107. package/esm/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js.map +1 -0
  108. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +1 -0
  109. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +1 -0
  110. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +1 -0
  111. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js.map +1 -0
  112. package/esm/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js.map +1 -0
  113. package/esm/packages/vuu-table-extras/src/column-expression-input/highlighting.js.map +1 -0
  114. package/esm/packages/vuu-table-extras/src/column-expression-input/theme.js.map +1 -0
  115. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js.map +1 -0
  116. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js.map +1 -0
  117. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js.map +1 -0
  118. package/esm/packages/vuu-table-extras/src/column-expression-panel/ColumnExpressionPanel.js.map +1 -0
  119. package/esm/packages/vuu-table-extras/src/column-expression-panel/useColumnExpression.js.map +1 -0
  120. package/esm/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -0
  121. package/esm/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js.map +1 -0
  122. package/esm/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js.map +1 -0
  123. package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js.map +1 -0
  124. package/esm/{column-list → packages/vuu-table-extras/src/column-list}/ColumnList.css.js +1 -1
  125. package/esm/{column-list → packages/vuu-table-extras/src/column-list}/ColumnList.js +73 -27
  126. package/esm/packages/vuu-table-extras/src/column-list/ColumnList.js.map +1 -0
  127. package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.js +40 -7
  128. package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.js.map +1 -0
  129. package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/column-menu-utils.js +46 -33
  130. package/esm/packages/vuu-table-extras/src/column-menu/column-menu-utils.js.map +1 -0
  131. package/esm/packages/vuu-table-extras/src/column-menu/useColumnActions.js.map +1 -0
  132. package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js.map +1 -0
  133. package/esm/{index.js → packages/vuu-table-extras/src/index.js} +5 -3
  134. package/esm/{index.js.map → packages/vuu-table-extras/src/index.js.map} +1 -1
  135. package/esm/packages/vuu-table-extras/src/table-column-settings/ColumnNameLabel.js.map +1 -0
  136. package/esm/packages/vuu-table-extras/src/table-column-settings/ColumnSettingsPanel.js.map +1 -0
  137. package/esm/{table-settings → packages/vuu-table-extras/src/table-column-settings}/TableSettingsPanel.js +27 -12
  138. package/esm/packages/vuu-table-extras/src/table-column-settings/TableSettingsPanel.js.map +1 -0
  139. package/esm/packages/vuu-table-extras/src/table-column-settings/useColumnSettings.js.map +1 -0
  140. package/esm/packages/vuu-table-extras/src/table-column-settings/useTableAndColumnSettings.js +122 -0
  141. package/esm/packages/vuu-table-extras/src/table-column-settings/useTableAndColumnSettings.js.map +1 -0
  142. package/esm/{table-settings → packages/vuu-table-extras/src/table-column-settings}/useTableSettings.js +10 -22
  143. package/esm/packages/vuu-table-extras/src/table-column-settings/useTableSettings.js.map +1 -0
  144. package/esm/packages/vuu-table-extras/src/table-provider/TableProvider.js.map +1 -0
  145. package/package.json +11 -12
  146. package/types/column-list/ColumnList.d.ts +5 -5
  147. package/types/column-menu/ColumnMenu.d.ts +3 -2
  148. package/types/column-menu/column-menu-utils.d.ts +7 -7
  149. package/types/index.d.ts +5 -2
  150. package/types/table-column-settings/TableSettingsPanel.d.ts +8 -0
  151. package/types/table-column-settings/useTableAndColumnSettings.d.ts +18 -0
  152. package/types/{table-settings → table-column-settings}/useTableSettings.d.ts +4 -1
  153. package/cjs/cell-edit-validators/CaseValidator.js.map +0 -1
  154. package/cjs/cell-edit-validators/PatternValidator.js.map +0 -1
  155. package/cjs/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  156. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  157. package/cjs/cell-renderers/background-cell/useDirection.js.map +0 -1
  158. package/cjs/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  159. package/cjs/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  160. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  161. package/cjs/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  162. package/cjs/column-expression-input/ColumnExpressionInput.js.map +0 -1
  163. package/cjs/column-expression-input/column-function-descriptors.js.map +0 -1
  164. package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  165. package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  166. package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  167. package/cjs/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  168. package/cjs/column-expression-input/functionDocInfo.js.map +0 -1
  169. package/cjs/column-expression-input/highlighting.js.map +0 -1
  170. package/cjs/column-expression-input/theme.js.map +0 -1
  171. package/cjs/column-expression-input/useColumnAutoComplete.js.map +0 -1
  172. package/cjs/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  173. package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  174. package/cjs/column-expression-panel/ColumnExpressionPanel.js.map +0 -1
  175. package/cjs/column-expression-panel/useColumnExpression.js.map +0 -1
  176. package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  177. package/cjs/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  178. package/cjs/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  179. package/cjs/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  180. package/cjs/column-list/ColumnList.js.map +0 -1
  181. package/cjs/column-menu/ColumnMenu.js.map +0 -1
  182. package/cjs/column-menu/column-menu-utils.js.map +0 -1
  183. package/cjs/column-menu/useColumnActions.js.map +0 -1
  184. package/cjs/column-settings/ColumnNameLabel.js.map +0 -1
  185. package/cjs/column-settings/ColumnSettingsPanel.js.map +0 -1
  186. package/cjs/column-settings/useColumnSettings.js.map +0 -1
  187. package/cjs/datasource-stats/DatasourceStats.js.map +0 -1
  188. package/cjs/table-provider/TableProvider.js.map +0 -1
  189. package/cjs/table-settings/TableSettingsPanel.js.map +0 -1
  190. package/cjs/table-settings/useTableSettings.js.map +0 -1
  191. package/esm/cell-edit-validators/CaseValidator.js.map +0 -1
  192. package/esm/cell-edit-validators/PatternValidator.js.map +0 -1
  193. package/esm/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  194. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  195. package/esm/cell-renderers/background-cell/useDirection.js.map +0 -1
  196. package/esm/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  197. package/esm/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  198. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  199. package/esm/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  200. package/esm/column-expression-input/ColumnExpressionInput.js.map +0 -1
  201. package/esm/column-expression-input/column-function-descriptors.js.map +0 -1
  202. package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  203. package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  204. package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  205. package/esm/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  206. package/esm/column-expression-input/functionDocInfo.js.map +0 -1
  207. package/esm/column-expression-input/highlighting.js.map +0 -1
  208. package/esm/column-expression-input/theme.js.map +0 -1
  209. package/esm/column-expression-input/useColumnAutoComplete.js.map +0 -1
  210. package/esm/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  211. package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  212. package/esm/column-expression-panel/ColumnExpressionPanel.js.map +0 -1
  213. package/esm/column-expression-panel/useColumnExpression.js.map +0 -1
  214. package/esm/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  215. package/esm/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  216. package/esm/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  217. package/esm/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  218. package/esm/column-list/ColumnList.js.map +0 -1
  219. package/esm/column-menu/ColumnMenu.js.map +0 -1
  220. package/esm/column-menu/column-menu-utils.js.map +0 -1
  221. package/esm/column-menu/useColumnActions.js.map +0 -1
  222. package/esm/column-settings/ColumnNameLabel.js.map +0 -1
  223. package/esm/column-settings/ColumnSettingsPanel.js.map +0 -1
  224. package/esm/column-settings/useColumnSettings.js.map +0 -1
  225. package/esm/datasource-stats/DatasourceStats.js.map +0 -1
  226. package/esm/table-provider/TableProvider.js.map +0 -1
  227. package/esm/table-settings/TableSettingsPanel.js.map +0 -1
  228. package/esm/table-settings/useTableSettings.js.map +0 -1
  229. package/types/column-settings/index.d.ts +0 -1
  230. package/types/table-settings/TableSettingsPanel.d.ts +0 -7
  231. package/types/table-settings/index.d.ts +0 -2
  232. /package/cjs/{cell-edit-validators → packages/vuu-table-extras/src/cell-edit-validators}/CaseValidator.js +0 -0
  233. /package/cjs/{cell-edit-validators → packages/vuu-table-extras/src/cell-edit-validators}/PatternValidator.js +0 -0
  234. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.css.js +0 -0
  235. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.css.js.map +0 -0
  236. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.js +0 -0
  237. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.css.js +0 -0
  238. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -0
  239. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.js +0 -0
  240. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundKeyframes.css.js +0 -0
  241. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundKeyframes.css.js.map +0 -0
  242. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/useDirection.js +0 -0
  243. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.css.js +0 -0
  244. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.css.js.map +0 -0
  245. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.js +0 -0
  246. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/lookup-cell/LookupCell.js +0 -0
  247. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.css.js +0 -0
  248. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.css.js.map +0 -0
  249. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.js +0 -0
  250. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.css.js +0 -0
  251. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.css.js.map +0 -0
  252. /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.js +0 -0
  253. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.css.js +0 -0
  254. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.css.js.map +0 -0
  255. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.js +0 -0
  256. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-function-descriptors.js +0 -0
  257. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionLanguage.js +0 -0
  258. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionTreeWalker.js +0 -0
  259. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/column-expression-parse-utils.js +0 -0
  260. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/generated/column-parser.js +0 -0
  261. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/functionDocInfo.js +0 -0
  262. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/highlighting.js +0 -0
  263. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/theme.js +0 -0
  264. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnAutoComplete.js +0 -0
  265. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnExpressionEditor.js +0 -0
  266. /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnExpressionSuggestionProvider.js +0 -0
  267. /package/cjs/{column-expression-panel → packages/vuu-table-extras/src/column-expression-panel}/ColumnExpressionPanel.js +0 -0
  268. /package/cjs/{column-expression-panel → packages/vuu-table-extras/src/column-expression-panel}/useColumnExpression.js +0 -0
  269. /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/BaseNumericFormattingSettings.js +0 -0
  270. /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/ColumnFormattingPanel.js +0 -0
  271. /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/DateTimeFormattingSettings.js +0 -0
  272. /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.css.js +0 -0
  273. /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.css.js.map +0 -0
  274. /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.js +0 -0
  275. /package/cjs/{column-list → packages/vuu-table-extras/src/column-list}/ColumnList.css.js.map +0 -0
  276. /package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.css.js +0 -0
  277. /package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.css.js.map +0 -0
  278. /package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/useColumnActions.js +0 -0
  279. /package/cjs/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.css.js +0 -0
  280. /package/cjs/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.css.js.map +0 -0
  281. /package/cjs/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.js +0 -0
  282. /package/cjs/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnNameLabel.css.js +0 -0
  283. /package/cjs/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnNameLabel.css.js.map +0 -0
  284. /package/cjs/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnNameLabel.js +0 -0
  285. /package/cjs/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnSettingsPanel.css.js +0 -0
  286. /package/cjs/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnSettingsPanel.css.js.map +0 -0
  287. /package/cjs/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnSettingsPanel.js +0 -0
  288. /package/cjs/{table-settings → packages/vuu-table-extras/src/table-column-settings}/TableSettingsPanel.css.js +0 -0
  289. /package/cjs/{table-settings → packages/vuu-table-extras/src/table-column-settings}/TableSettingsPanel.css.js.map +0 -0
  290. /package/cjs/{column-settings → packages/vuu-table-extras/src/table-column-settings}/useColumnSettings.js +0 -0
  291. /package/cjs/{table-provider → packages/vuu-table-extras/src/table-provider}/TableProvider.js +0 -0
  292. /package/esm/{cell-edit-validators → packages/vuu-table-extras/src/cell-edit-validators}/CaseValidator.js +0 -0
  293. /package/esm/{cell-edit-validators → packages/vuu-table-extras/src/cell-edit-validators}/PatternValidator.js +0 -0
  294. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.css.js +0 -0
  295. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.css.js.map +0 -0
  296. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.js +0 -0
  297. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.css.js +0 -0
  298. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -0
  299. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.js +0 -0
  300. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundKeyframes.css.js +0 -0
  301. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundKeyframes.css.js.map +0 -0
  302. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/useDirection.js +0 -0
  303. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.css.js +0 -0
  304. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.css.js.map +0 -0
  305. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.js +0 -0
  306. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/lookup-cell/LookupCell.js +0 -0
  307. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.css.js +0 -0
  308. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.css.js.map +0 -0
  309. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.js +0 -0
  310. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.css.js +0 -0
  311. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.css.js.map +0 -0
  312. /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.js +0 -0
  313. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.css.js +0 -0
  314. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.css.js.map +0 -0
  315. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.js +0 -0
  316. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-function-descriptors.js +0 -0
  317. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionLanguage.js +0 -0
  318. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionTreeWalker.js +0 -0
  319. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/column-expression-parse-utils.js +0 -0
  320. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/generated/column-parser.js +0 -0
  321. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/functionDocInfo.js +0 -0
  322. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/highlighting.js +0 -0
  323. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/theme.js +0 -0
  324. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnAutoComplete.js +0 -0
  325. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnExpressionEditor.js +0 -0
  326. /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnExpressionSuggestionProvider.js +0 -0
  327. /package/esm/{column-expression-panel → packages/vuu-table-extras/src/column-expression-panel}/ColumnExpressionPanel.js +0 -0
  328. /package/esm/{column-expression-panel → packages/vuu-table-extras/src/column-expression-panel}/useColumnExpression.js +0 -0
  329. /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/BaseNumericFormattingSettings.js +0 -0
  330. /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/ColumnFormattingPanel.js +0 -0
  331. /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/DateTimeFormattingSettings.js +0 -0
  332. /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.css.js +0 -0
  333. /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.css.js.map +0 -0
  334. /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.js +0 -0
  335. /package/esm/{column-list → packages/vuu-table-extras/src/column-list}/ColumnList.css.js.map +0 -0
  336. /package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.css.js +0 -0
  337. /package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.css.js.map +0 -0
  338. /package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/useColumnActions.js +0 -0
  339. /package/esm/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.css.js +0 -0
  340. /package/esm/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.css.js.map +0 -0
  341. /package/esm/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.js +0 -0
  342. /package/esm/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnNameLabel.css.js +0 -0
  343. /package/esm/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnNameLabel.css.js.map +0 -0
  344. /package/esm/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnNameLabel.js +0 -0
  345. /package/esm/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnSettingsPanel.css.js +0 -0
  346. /package/esm/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnSettingsPanel.css.js.map +0 -0
  347. /package/esm/{column-settings → packages/vuu-table-extras/src/table-column-settings}/ColumnSettingsPanel.js +0 -0
  348. /package/esm/{table-settings → packages/vuu-table-extras/src/table-column-settings}/TableSettingsPanel.css.js +0 -0
  349. /package/esm/{table-settings → packages/vuu-table-extras/src/table-column-settings}/TableSettingsPanel.css.js.map +0 -0
  350. /package/esm/{column-settings → packages/vuu-table-extras/src/table-column-settings}/useColumnSettings.js +0 -0
  351. /package/esm/{table-provider → packages/vuu-table-extras/src/table-provider}/TableProvider.js +0 -0
  352. /package/types/{column-settings → table-column-settings}/ColumnNameLabel.d.ts +0 -0
  353. /package/types/{column-settings → table-column-settings}/ColumnSettingsPanel.d.ts +0 -0
  354. /package/types/{column-settings → table-column-settings}/useColumnSettings.d.ts +0 -0
@@ -1,54 +1,92 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { Checkbox, Switch } from '@salt-ds/core';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { DragDropProvider } from '../../../../node_modules/@dnd-kit/react/index.js';
3
+ import { useSortable } from '../../../../node_modules/@dnd-kit/react/sortable.js';
4
+ import { ListBox, Option, Checkbox, Switch } from '@salt-ds/core';
3
5
  import { useComponentCssInjection } from '@salt-ds/styles';
4
6
  import { useWindow } from '@salt-ds/window';
5
- import { List, ListItem, Icon } from '@vuu-ui/vuu-ui-controls';
6
- import { queryClosest, getColumnLabel } from '@vuu-ui/vuu-utils';
7
+ import { IconButton, Icon } from '@vuu-ui/vuu-ui-controls';
8
+ import { queryClosest, reorderColumnItems, getColumnLabel } from '@vuu-ui/vuu-utils';
7
9
  import cx from 'clsx';
8
- import { useCallback } from 'react';
10
+ import { useRef, useCallback, useMemo } from 'react';
9
11
  import columnList from './ColumnList.css.js';
10
12
 
11
13
  const classBase = "vuuColumnList";
12
14
  const classBaseListItem = "vuuColumnListItem";
15
+ const useSorting = (id, index, allowSort = true) => {
16
+ const { handleRef: sortableHandleRef, ref: sortableRef } = useSortable({
17
+ id,
18
+ index
19
+ });
20
+ const noopRef = useCallback(() => {
21
+ }, []);
22
+ const [handleRef, ref] = useMemo(() => {
23
+ return allowSort ? [sortableHandleRef, sortableRef] : [noopRef, noopRef];
24
+ }, [allowSort, noopRef, sortableHandleRef, sortableRef]);
25
+ return {
26
+ handleRef,
27
+ ref
28
+ };
29
+ };
13
30
  const ColumnListItem = ({
14
31
  className: classNameProp,
32
+ index,
15
33
  item,
16
- ...listItemProps
34
+ permissions: { allowHideColumns, allowRemoveColumns, allowReorderColumns },
35
+ ...optionProps
17
36
  }) => {
37
+ const { handleRef, ref } = useSorting(item.name, index, allowReorderColumns);
18
38
  return /* @__PURE__ */ jsxs(
19
- ListItem,
39
+ Option,
20
40
  {
21
- ...listItemProps,
41
+ ...optionProps,
22
42
  className: cx(classNameProp, classBaseListItem),
23
- "data-name": item?.name,
43
+ "data-name": item.name,
44
+ id: item.name,
45
+ ref,
24
46
  children: [
25
- /* @__PURE__ */ jsx(Icon, { name: "draggable", size: 16 }),
47
+ allowReorderColumns ? /* @__PURE__ */ jsx(
48
+ IconButton,
49
+ {
50
+ "data-embedded": true,
51
+ appearance: "transparent",
52
+ icon: "draggable",
53
+ ref: handleRef,
54
+ size: 16
55
+ }
56
+ ) : null,
26
57
  item?.isCalculated ? /* @__PURE__ */ jsx(Icon, { name: "function" }) : /* @__PURE__ */ jsx(
27
58
  Checkbox,
28
59
  {
29
60
  className: `${classBase}-checkBox`,
30
- checked: item?.subscribed
61
+ checked: item?.subscribed,
62
+ readOnly: allowRemoveColumns === false
31
63
  }
32
64
  ),
33
65
  /* @__PURE__ */ jsx("span", { className: `${classBase}-text`, children: getColumnLabel(item) }),
34
- /* @__PURE__ */ jsx(
66
+ allowHideColumns !== false ? /* @__PURE__ */ jsx(
35
67
  Switch,
36
68
  {
37
69
  className: `${classBase}-switch`,
38
70
  checked: item?.hidden !== true,
39
71
  disabled: item?.subscribed !== true
40
72
  }
41
- )
73
+ ) : null
42
74
  ]
43
75
  }
44
76
  );
45
77
  };
78
+ const defaultPermissions = {
79
+ allowHideColumns: true,
80
+ allowRemoveColumns: true,
81
+ allowReorderColumns: true
82
+ };
46
83
  const ColumnList = ({
47
84
  className,
48
85
  columnItems,
49
86
  onChange,
50
- onMoveListItem,
51
87
  onNavigateToColumn,
88
+ onReorderColumnItems,
89
+ permissions = defaultPermissions,
52
90
  ...htmlAttributes
53
91
  }) => {
54
92
  const targetWindow = useWindow();
@@ -57,6 +95,7 @@ const ColumnList = ({
57
95
  css: columnList,
58
96
  window: targetWindow
59
97
  });
98
+ const listRef = useRef(null);
60
99
  const handleChange = useCallback(
61
100
  ({ target }) => {
62
101
  const input = target;
@@ -90,7 +129,16 @@ const ColumnList = ({
90
129
  },
91
130
  [onNavigateToColumn]
92
131
  );
93
- return /* @__PURE__ */ jsxs(
132
+ const handleDragEnd = useCallback(() => {
133
+ setTimeout(() => {
134
+ const listItems = listRef.current?.querySelectorAll(".saltOption");
135
+ if (listItems) {
136
+ const orderedIds = Array.from(listItems).map(({ id }) => id);
137
+ onReorderColumnItems?.(reorderColumnItems(columnItems, orderedIds));
138
+ }
139
+ }, 300);
140
+ }, [columnItems, onReorderColumnItems]);
141
+ return /* @__PURE__ */ jsx(DragDropProvider, { onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsxs(
94
142
  "div",
95
143
  {
96
144
  ...htmlAttributes,
@@ -103,23 +151,21 @@ const ColumnList = ({
103
151
  /* @__PURE__ */ jsx("span", { children: "Column subscription" }),
104
152
  /* @__PURE__ */ jsx("span", { children: "Visibility" })
105
153
  ] }),
106
- /* @__PURE__ */ jsx(
107
- List,
154
+ /* @__PURE__ */ jsx(ListBox, { ref: listRef, children: columnItems.map((columnItem, index) => /* @__PURE__ */ jsx(
155
+ ColumnListItem,
108
156
  {
109
- ListItem: ColumnListItem,
110
- allowDragDrop: true,
111
- height: "auto",
157
+ item: columnItem,
158
+ index,
112
159
  onChange: handleChange,
113
160
  onClick: handleClick,
114
- onMoveListItem,
115
- selectionStrategy: "none",
116
- source: columnItems,
117
- itemHeight: 33
118
- }
119
- )
161
+ permissions,
162
+ value: columnItem
163
+ },
164
+ columnItem.name
165
+ )) })
120
166
  ]
121
167
  }
122
- );
168
+ ) });
123
169
  };
124
170
 
125
171
  export { ColumnList };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnList.js","sources":["../../../../../src/column-list/ColumnList.tsx"],"sourcesContent":["import { DragDropProvider } from \"@dnd-kit/react\";\nimport { useSortable } from \"@dnd-kit/react/sortable\";\nimport { Checkbox, ListBox, Option, OptionProps, Switch } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ColumnDescriptor,\n ColumnListPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { Icon, IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n getColumnLabel,\n queryClosest,\n reorderColumnItems,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n HTMLAttributes,\n MouseEventHandler,\n SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\nimport { ColumnItem } from \"../table-column-settings/useTableSettings\";\n\nimport columnList from \"./ColumnList.css\";\n\nconst classBase = \"vuuColumnList\";\nconst classBaseListItem = \"vuuColumnListItem\";\n\nconst useSorting = (id: string, index: number, allowSort = true) => {\n const { handleRef: sortableHandleRef, ref: sortableRef } = useSortable({\n id,\n index,\n });\n\n const noopRef = useCallback(() => {\n // do nothing\n }, []);\n\n const [handleRef, ref] = useMemo(() => {\n return allowSort ? [sortableHandleRef, sortableRef] : [noopRef, noopRef];\n }, [allowSort, noopRef, sortableHandleRef, sortableRef]);\n\n return {\n handleRef,\n ref,\n };\n};\n\nexport type ColumnChangeHandler = (\n columnName: string,\n propertyName: keyof ColumnDescriptor | \"subscribed\",\n value: string | number | boolean,\n) => void;\n\nexport interface ColumnListProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n columnItems: ColumnItem[];\n onChange: ColumnChangeHandler;\n onNavigateToColumn?: (columnName: string) => void;\n onReorderColumnItems?: (columnItems: ColumnItem[]) => void;\n permissions?: ColumnListPermissions;\n}\n\nconst ColumnListItem = ({\n className: classNameProp,\n index,\n item,\n permissions: { allowHideColumns, allowRemoveColumns, allowReorderColumns },\n ...optionProps\n}: OptionProps & {\n index: number;\n item: ColumnItem;\n permissions: ColumnListPermissions;\n}) => {\n const { handleRef, ref } = useSorting(item.name, index, allowReorderColumns);\n return (\n <Option\n {...optionProps}\n className={cx(classNameProp, classBaseListItem)}\n data-name={item.name}\n id={item.name}\n ref={ref}\n >\n {allowReorderColumns ? (\n <IconButton\n data-embedded\n appearance=\"transparent\"\n icon=\"draggable\"\n ref={handleRef}\n size={16}\n />\n ) : null}\n {item?.isCalculated ? (\n <Icon name=\"function\" />\n ) : (\n <Checkbox\n className={`${classBase}-checkBox`}\n checked={item?.subscribed}\n readOnly={allowRemoveColumns === false}\n />\n )}\n <span className={`${classBase}-text`}>\n {getColumnLabel(item as ColumnDescriptor)}\n </span>\n {allowHideColumns !== false ? (\n <Switch\n className={`${classBase}-switch`}\n checked={item?.hidden !== true}\n disabled={item?.subscribed !== true}\n />\n ) : null}\n </Option>\n );\n};\n\nconst defaultPermissions: ColumnListPermissions = {\n allowHideColumns: true,\n allowRemoveColumns: true,\n allowReorderColumns: true,\n};\n\nexport const ColumnList = ({\n className,\n columnItems,\n onChange,\n onNavigateToColumn,\n onReorderColumnItems,\n permissions = defaultPermissions,\n ...htmlAttributes\n}: ColumnListProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-list\",\n css: columnList,\n window: targetWindow,\n });\n const listRef = useRef<HTMLDivElement>(null);\n\n const handleChange = useCallback(\n ({ target }: SyntheticEvent) => {\n const input = target as HTMLInputElement;\n const listItem = queryClosest(target, `.${classBaseListItem}`);\n if (listItem) {\n const {\n dataset: { name },\n } = listItem;\n if (name) {\n const saltCheckbox = queryClosest(target, `.${classBase}-checkBox`);\n const saltSwitch = queryClosest(target, `.${classBase}-switch`);\n\n if (saltCheckbox) {\n onChange(name, \"subscribed\", input.checked);\n } else if (saltSwitch) {\n onChange(name, \"hidden\", input.checked === false);\n }\n }\n }\n },\n [onChange],\n );\n\n const handleClick = useCallback<MouseEventHandler>(\n (evt) => {\n const targetEl = evt.target as HTMLElement;\n if (targetEl.classList.contains(\"vuuColumnList-text\")) {\n const listItemEl = targetEl.closest(\".vuuListItem\") as HTMLElement;\n if (listItemEl?.dataset.name) {\n onNavigateToColumn?.(listItemEl.dataset.name);\n }\n }\n },\n [onNavigateToColumn],\n );\n\n const handleDragEnd = useCallback(() => {\n setTimeout(() => {\n const listItems =\n listRef.current?.querySelectorAll<HTMLDivElement>(\".saltOption\");\n if (listItems) {\n const orderedIds = Array.from(listItems).map(({ id }) => id);\n onReorderColumnItems?.(reorderColumnItems(columnItems, orderedIds));\n }\n }, 300);\n }, [columnItems, onReorderColumnItems]);\n\n return (\n <DragDropProvider onDragEnd={handleDragEnd}>\n <div\n {...htmlAttributes}\n className={cx(classBase, className, {\n [`${classBase}-withColumnNavigation`]:\n typeof onNavigateToColumn === \"function\",\n })}\n >\n <div className={`${classBase}-header`}>\n <span>Column Selection</span>\n </div>\n <div className={`${classBase}-colHeadings`}>\n <span>Column subscription</span>\n <span>Visibility</span>\n </div>\n <ListBox ref={listRef}>\n {columnItems.map((columnItem, index) => (\n <ColumnListItem\n item={columnItem}\n index={index}\n key={columnItem.name}\n onChange={handleChange}\n onClick={handleClick}\n permissions={permissions}\n value={columnItem}\n />\n ))}\n </ListBox>\n </div>\n </DragDropProvider>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -8,12 +8,31 @@ import cx from 'clsx';
8
8
  import { useCallback } from 'react';
9
9
  import columnMenuCss from './ColumnMenu.css.js';
10
10
  import { getColumnMenuActionType, buildSortMenu, buildGroupMenu, buildAggregationMenuItems, buildVisibilityMenuItems, buildPinMenuItems, buildSettingsMenuItems } from './column-menu-utils.js';
11
+ import { defaultTableSettingsPermissions } from '../table-column-settings/TableSettingsPanel.js';
11
12
 
12
13
  const classBase = "vuuColumnMenu";
14
+ const defaultColumnMenuPermissions = {
15
+ allowSort: true,
16
+ allowGroup: true,
17
+ allowAggregation: true,
18
+ allowHide: true,
19
+ allowPin: true,
20
+ allowColumnSettings: true,
21
+ allowTableSettings: defaultTableSettingsPermissions
22
+ };
13
23
  const ColumnMenu = ({
14
24
  className,
15
25
  column,
16
- menuActionHandler: menuActionHandlerProp
26
+ menuActionHandler: menuActionHandlerProp,
27
+ menuPermissions: {
28
+ allowSort,
29
+ allowGroup,
30
+ allowAggregation,
31
+ allowHide,
32
+ allowPin,
33
+ allowColumnSettings,
34
+ allowTableSettings
35
+ } = defaultColumnMenuPermissions
17
36
  }) => {
18
37
  const targetWindow = useWindow();
19
38
  useComponentCssInjection({
@@ -31,21 +50,35 @@ const ColumnMenu = ({
31
50
  },
32
51
  [column, menuActionHandler, menuActionHandlerProp]
33
52
  );
34
- const sortMenu = buildSortMenu(column, dataSource, menuActionClickHandler);
35
- const groupMenu = buildGroupMenu(column, dataSource, menuActionClickHandler);
53
+ const sortMenu = buildSortMenu(
54
+ column,
55
+ dataSource,
56
+ menuActionClickHandler,
57
+ allowSort
58
+ );
59
+ const groupMenu = buildGroupMenu(
60
+ column,
61
+ dataSource,
62
+ menuActionClickHandler,
63
+ allowGroup
64
+ );
36
65
  const aggregationMenu = buildAggregationMenuItems(
37
66
  column,
38
67
  dataSource,
39
- menuActionClickHandler
68
+ menuActionClickHandler,
69
+ allowAggregation
40
70
  );
41
71
  const visibilityMenuItems = buildVisibilityMenuItems(
42
72
  column,
43
- menuActionClickHandler
73
+ menuActionClickHandler,
74
+ allowHide
44
75
  );
45
- const pinMenu = buildPinMenuItems(column, menuActionClickHandler);
76
+ const pinMenu = buildPinMenuItems(column, menuActionClickHandler, allowPin);
46
77
  const settingsMenuItems = buildSettingsMenuItems(
47
78
  column,
48
- menuActionClickHandler
79
+ menuActionClickHandler,
80
+ allowColumnSettings,
81
+ allowTableSettings
49
82
  );
50
83
  const handleClick = useCallback(
51
84
  (evt) => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnMenu.js","sources":["../../../../../src/column-menu/ColumnMenu.tsx"],"sourcesContent":["import { Menu, MenuPanel, MenuTrigger } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ColumnDescriptor,\n ColumnMenuPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport { useTableContext } from \"../table-provider/TableProvider\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, MouseEventHandler, useCallback } from \"react\";\n\nimport columnMenuCss from \"./ColumnMenu.css\";\nimport {\n buildAggregationMenuItems,\n buildPinMenuItems,\n buildGroupMenu,\n buildSortMenu,\n buildVisibilityMenuItems,\n ColumnMenuActionType,\n getColumnMenuActionType,\n type MenuItemClickHandler,\n buildSettingsMenuItems,\n} from \"./column-menu-utils\";\nimport { MenuActionHandler } from \"@vuu-ui/vuu-context-menu\";\nimport { defaultTableSettingsPermissions } from \"../table-column-settings/TableSettingsPanel\";\n\nconst classBase = \"vuuColumnMenu\";\n\nconst defaultColumnMenuPermissions: Readonly<ColumnMenuPermissions> = {\n allowSort: true,\n allowGroup: true,\n allowAggregation: true,\n allowHide: true,\n allowPin: true,\n allowColumnSettings: true,\n allowTableSettings: defaultTableSettingsPermissions,\n};\n\nexport interface ColumnMenuProps extends HTMLAttributes<HTMLSpanElement> {\n column: ColumnDescriptor;\n menuActionHandler?: MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;\n menuPermissions?: ColumnMenuPermissions;\n}\n\nexport const ColumnMenu = ({\n className,\n column,\n menuActionHandler: menuActionHandlerProp,\n menuPermissions: {\n allowSort,\n allowGroup,\n allowAggregation,\n allowHide,\n allowPin,\n allowColumnSettings,\n allowTableSettings,\n } = defaultColumnMenuPermissions,\n}: ColumnMenuProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-menu\",\n css: columnMenuCss,\n window: targetWindow,\n });\n\n const { dataSource, menuActionHandler } = useTableContext(true);\n\n const menuActionClickHandler = useCallback<MenuItemClickHandler>(\n (evt) => {\n const columnMenuActionType = getColumnMenuActionType(evt.target);\n if (menuActionHandlerProp?.(columnMenuActionType, column) !== true) {\n return menuActionHandler(columnMenuActionType, column);\n }\n },\n [column, menuActionHandler, menuActionHandlerProp],\n );\n\n const sortMenu = buildSortMenu(\n column,\n dataSource,\n menuActionClickHandler,\n allowSort,\n );\n const groupMenu = buildGroupMenu(\n column,\n dataSource,\n menuActionClickHandler,\n allowGroup,\n );\n const aggregationMenu = buildAggregationMenuItems(\n column,\n dataSource,\n menuActionClickHandler,\n allowAggregation,\n );\n const visibilityMenuItems = buildVisibilityMenuItems(\n column,\n menuActionClickHandler,\n allowHide,\n );\n const pinMenu = buildPinMenuItems(column, menuActionClickHandler, allowPin);\n const settingsMenuItems = buildSettingsMenuItems(\n column,\n menuActionClickHandler,\n allowColumnSettings,\n allowTableSettings,\n );\n\n const handleClick = useCallback<MouseEventHandler<HTMLButtonElement>>(\n (evt) => {\n // Prevent sort from triggering if the click were to bubble.\n evt.stopPropagation();\n },\n [],\n );\n\n return (\n <Menu>\n <MenuTrigger>\n <IconButton\n appearance=\"transparent\"\n className={cx(classBase, className)}\n data-embedded\n icon=\"more-vert\"\n sentiment=\"neutral\"\n aria-label=\"Open Column Menu\"\n onClick={handleClick}\n />\n </MenuTrigger>\n <MenuPanel>\n {sortMenu}\n {groupMenu}\n {aggregationMenu}\n {visibilityMenuItems}\n {pinMenu}\n {settingsMenuItems}\n </MenuPanel>\n </Menu>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -37,8 +37,8 @@ const getColumnMenuActionType = (target) => {
37
37
  );
38
38
  }
39
39
  };
40
- function buildSortMenu(column, dataSource, menuActionClickHandler) {
41
- if (column.sortable === false) {
40
+ function buildSortMenu(column, dataSource, menuActionClickHandler, isAllowed = true) {
41
+ if (!isAllowed || column.sortable === false) {
42
42
  return null;
43
43
  } else {
44
44
  const { name, label = name } = column;
@@ -174,8 +174,8 @@ function buildSortMenu(column, dataSource, menuActionClickHandler) {
174
174
  ] }, "sort-menu");
175
175
  }
176
176
  }
177
- function buildGroupMenu(column, dataSource, menuActionClickHandler) {
178
- if (column.groupable === false) {
177
+ function buildGroupMenu(column, dataSource, menuActionClickHandler, isAllowed = true) {
178
+ if (!isAllowed || column.groupable === false) {
179
179
  return null;
180
180
  } else {
181
181
  const menuItems = [];
@@ -247,7 +247,10 @@ function buildGroupMenu(column, dataSource, menuActionClickHandler) {
247
247
  ] }, "group-menu");
248
248
  }
249
249
  }
250
- const buildVisibilityMenuItems = (column, menuActionClickHandler) => {
250
+ const buildVisibilityMenuItems = (column, menuActionClickHandler, isAllowed = true) => {
251
+ if (!isAllowed) {
252
+ return null;
253
+ }
251
254
  const menuItems = [];
252
255
  const { name, label = name } = column;
253
256
  menuItems.push(
@@ -274,8 +277,8 @@ const buildVisibilityMenuItems = (column, menuActionClickHandler) => {
274
277
  );
275
278
  return menuItems;
276
279
  };
277
- const buildPinMenuItems = (column, menuActionClickHandler) => {
278
- if (column === void 0) {
280
+ const buildPinMenuItems = (column, menuActionClickHandler, isAllowed = true) => {
281
+ if (!isAllowed || column === void 0) {
279
282
  return [];
280
283
  }
281
284
  const { pin } = column;
@@ -364,35 +367,45 @@ const buildPinMenuItems = (column, menuActionClickHandler) => {
364
367
  }
365
368
  return menuItems;
366
369
  };
367
- const buildSettingsMenuItems = (_, menuActionClickHandler) => {
370
+ const buildSettingsMenuItems = (_, menuActionClickHandler, allowColumnSettings = true, allowTableSettings = true) => {
371
+ if (!allowColumnSettings && !allowTableSettings) {
372
+ return null;
373
+ }
368
374
  const menuItems = [];
369
- menuItems.push(
370
- /* @__PURE__ */ jsx(
371
- MenuItem,
372
- {
373
- "data-icon": "settings",
374
- "data-menu-action-id": "column-settings",
375
- onClick: menuActionClickHandler,
376
- children: "Column settings ..."
377
- },
378
- "column-settings"
379
- )
380
- );
381
- menuItems.push(
382
- /* @__PURE__ */ jsx(
383
- MenuItem,
384
- {
385
- "data-icon": "settings",
386
- "data-menu-action-id": "table-settings",
387
- onClick: menuActionClickHandler,
388
- children: "Table settings ..."
389
- },
390
- "table-settings"
391
- )
392
- );
375
+ if (allowColumnSettings) {
376
+ menuItems.push(
377
+ /* @__PURE__ */ jsx(
378
+ MenuItem,
379
+ {
380
+ "data-icon": "settings",
381
+ "data-menu-action-id": "column-settings",
382
+ onClick: menuActionClickHandler,
383
+ children: "Column settings ..."
384
+ },
385
+ "column-settings"
386
+ )
387
+ );
388
+ }
389
+ if (allowTableSettings) {
390
+ menuItems.push(
391
+ /* @__PURE__ */ jsx(
392
+ MenuItem,
393
+ {
394
+ "data-icon": "settings",
395
+ "data-menu-action-id": "table-settings",
396
+ onClick: menuActionClickHandler,
397
+ children: "Table settings ..."
398
+ },
399
+ "table-settings"
400
+ )
401
+ );
402
+ }
393
403
  return menuItems;
394
404
  };
395
- function buildAggregationMenuItems(column, dataSource, menuActionClickHandler) {
405
+ function buildAggregationMenuItems(column, dataSource, menuActionClickHandler, isAllowed = true) {
406
+ if (!isAllowed) {
407
+ return null;
408
+ }
396
409
  const { name, label = name } = column;
397
410
  if (dataSource.groupBy?.length === 0) {
398
411
  return [];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-menu-utils.js","sources":["../../../../../src/column-menu/column-menu-utils.tsx"],"sourcesContent":["import {\n Menu,\n MenuItem,\n MenuItemProps,\n MenuPanel,\n MenuProps,\n MenuTrigger,\n} from \"@salt-ds/core\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport {\n ColumnDescriptor,\n TableSettingsPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n getGroupStatus,\n getSortStatus,\n isNumericColumn,\n logUnhandledMessage,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, ReactElement } from \"react\";\n\ntype MenuElement = ReactElement<MenuProps, typeof Menu>;\ntype MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;\ntype MenuElements = Array<MenuElement | MenuItemElement>;\n\nexport type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;\n\nexport type DataSourceColumnMenuActionType =\n | \"agg-count\"\n | \"agg-distinct\"\n | \"agg-sum\"\n | \"agg-avg\"\n | \"agg-high\"\n | \"agg-low\"\n | \"sort-asc\"\n | \"sort-dsc\"\n | \"sort-add-asc\"\n | \"sort-add-dsc\"\n | \"remove-sort\"\n | \"group-column\"\n | \"remove-group\"\n | \"add-to-group\"\n | \"remove-from-group\"\n | \"remove-column\";\n\nexport type ColumnDisplayColumnMenuActionType =\n | \"pin-column-left\"\n | \"pin-column-right\"\n | \"pin-column-floating\"\n | \"unpin-column\"\n | \"hide-column\";\n\nexport type TableSettingsActionType = \"column-settings\" | \"table-settings\";\n\nexport type ColumnMenuActionType =\n | DataSourceColumnMenuActionType\n | ColumnDisplayColumnMenuActionType\n | TableSettingsActionType;\n\nexport const isColumnMenuActionType = (\n value?: string,\n): value is ColumnMenuActionType =>\n value !== undefined &&\n [\n \"agg-count\",\n \"agg-distinct\",\n \"agg-sum\",\n \"agg-avg\",\n \"agg-high\",\n \"agg-low\",\n \"sort-asc\",\n \"sort-dsc\",\n \"sort-add-asc\",\n \"sort-add-dsc\",\n \"remove-sort\",\n \"group-column\",\n \"remove-group\",\n \"add-to-group\",\n \"remove-from-group\",\n \"pin-column-left\",\n \"pin-column-right\",\n \"pin-column-floating\",\n \"unpin-column\",\n \"hide-column\",\n \"remove-column\",\n \"column-settings\",\n \"table-settings\",\n ].includes(value);\n\nexport const getColumnMenuActionType = (target: EventTarget | HTMLElement) => {\n const { menuActionId } = (target as HTMLElement).dataset;\n if (isColumnMenuActionType(menuActionId)) {\n return menuActionId;\n } else {\n throw Error(\n \"[vuu-table-extras] column-menu-utils target element is not a valid Column MenuItem\",\n );\n }\n};\n\nexport function buildSortMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.sortable === false) {\n return null;\n } else {\n const { name, label = name } = column;\n const menuItems: MenuElements = [];\n const columnSortStatus = getSortStatus(column.name, dataSource.sort);\n\n switch (columnSortStatus) {\n case \"no-sort\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Sort ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Sort descending\n </MenuItem>,\n );\n break;\n case \"single-sort-asc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (DSC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n case \"single-sort-desc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (ASC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n\n case \"sort-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-asc\"\n key=\"sort-add-asc\"\n onClick={menuActionClickHandler}\n >\n Add to sort ASC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-dsc\"\n key=\"sort-add-dsc\"\n onClick={menuActionClickHandler}\n >\n Add to sort DSC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Descending\n </MenuItem>,\n );\n break;\n\n case \"multi-sort-includes-column-asc\":\n case \"multi-sort-includes-column-desc\":\n break;\n default:\n logUnhandledMessage(\n columnSortStatus,\n \"[vuu-table-extras] column-menu-utils buildSortMenu\",\n );\n }\n\n return (\n <Menu key=\"sort-menu\">\n <MenuTrigger>\n <MenuItem>{`Sort by ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport function buildGroupMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.groupable === false) {\n return null;\n } else {\n const menuItems: MenuElements = [];\n const columnGroupStatus = getGroupStatus(column.name, dataSource.groupBy);\n const { name, label = name } = column;\n\n switch (columnGroupStatus) {\n case \"no-groupby\":\n case \"single-groupby-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"group-column\"\n key=\"group-column\"\n onClick={menuActionClickHandler}\n >{`Group by ${label}`}</MenuItem>,\n );\n break;\n case \"single-groupby\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-group\"\n key=\"remove-group\"\n onClick={menuActionClickHandler}\n >\n Remove Grouping\n </MenuItem>,\n );\n break;\n\n case \"multi-groupby-other-columns\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"add-to-group\"\n key=\"add-to-group\"\n onClick={menuActionClickHandler}\n >\n Add to grouping\n </MenuItem>,\n );\n\n break;\n\n case \"multi-groupby-includes-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-from-group\"\n key=\"remove-from-group\"\n onClick={menuActionClickHandler}\n >\n Remove from grouping\n </MenuItem>,\n );\n\n break;\n\n default:\n logUnhandledMessage(\n columnGroupStatus,\n \"[vuu-table-extras] column-menu-utils buildGroupMenu\",\n );\n }\n\n return (\n <Menu key=\"group-menu\">\n <MenuTrigger>\n <MenuItem>Group data</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport const buildVisibilityMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null => {\n if (!isAllowed) {\n return null;\n }\n const menuItems: MenuElements = [];\n const { name, label = name } = column;\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"hide-column\"\n key=\"hide-column\"\n onClick={menuActionClickHandler}\n >\n {`Hide ${label} column`}\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-column\"\n key=\"remove-column\"\n onClick={menuActionClickHandler}\n >\n {`Remove ${label} column`}\n </MenuItem>,\n );\n\n return menuItems;\n};\n\nexport const buildPinMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements => {\n if (!isAllowed || column === undefined) {\n return [];\n }\n const { pin } = column;\n\n const menuItems: MenuElements = [];\n\n const pinLeft = (\n <MenuItem\n data-menu-action-id=\"pin-column-left\"\n key=\"pin-column-left\"\n onClick={menuActionClickHandler}\n >\n Pin left\n </MenuItem>\n );\n\n const pinFloating = (\n <MenuItem\n data-menu-action-id=\"pin-column-floating\"\n key=\"pin-column-floating\"\n onClick={menuActionClickHandler}\n >\n Pin floating\n </MenuItem>\n );\n\n const pinRight = (\n <MenuItem\n data-menu-action-id=\"pin-column-right\"\n key=\"pin-column-right\"\n onClick={menuActionClickHandler}\n >\n Pin right\n </MenuItem>\n );\n\n if (pin === undefined) {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"unpin-column\"\n key=\"unpin-column\"\n onClick={menuActionClickHandler}\n >\n Unpin\n </MenuItem>,\n );\n if (pin === \"left\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else if (pin === \"floating\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n }\n }\n\n return menuItems;\n};\n\nexport const buildSettingsMenuItems = (\n _: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n allowColumnSettings = true,\n allowTableSettings: boolean | TableSettingsPermissions = true,\n): MenuElements | null => {\n if (!allowColumnSettings && !allowTableSettings) {\n return null;\n }\n\n const menuItems: MenuElements = [];\n\n if (allowColumnSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"column-settings\"\n key=\"column-settings\"\n onClick={menuActionClickHandler}\n >\n Column settings ...\n </MenuItem>,\n );\n }\n\n if (allowTableSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"table-settings\"\n key=\"table-settings\"\n onClick={menuActionClickHandler}\n >\n Table settings ...\n </MenuItem>,\n );\n }\n\n return menuItems;\n};\n\nexport function buildAggregationMenuItems(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null {\n if (!isAllowed) {\n return null;\n }\n\n const { name, label = name } = column;\n\n if (dataSource.groupBy?.length === 0) {\n return [];\n } else {\n const menuItems: MenuElements = [\n <MenuItem\n data-menu-action-id=\"agg-count\"\n key=\"agg-count\"\n onClick={menuActionClickHandler}\n >\n Count\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-distinct\"\n key=\"agg-distinct\"\n onClick={menuActionClickHandler}\n >\n Distinct\n </MenuItem>,\n ];\n\n if (isNumericColumn(column)) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"agg-sum\"\n key=\"agg-sum\"\n onClick={menuActionClickHandler}\n >\n Sum\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-avg\"\n key=\"agg-avg\"\n onClick={menuActionClickHandler}\n >\n Average\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-high\"\n key=\"agg-high\"\n onClick={menuActionClickHandler}\n >\n High\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-low\"\n key=\"agg-low\"\n onClick={menuActionClickHandler}\n >\n Low\n </MenuItem>,\n );\n }\n\n return [\n <Menu key=\"aggregate-menu\">\n <MenuTrigger>\n <MenuItem>{`Aggregate ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>,\n ];\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnActions.js","sources":["../../../../../src/column-menu/useColumnActions.ts"],"sourcesContent":["/* eslint-disable no-sequences */\nimport { MenuActionHandler } from \"@vuu-ui/vuu-context-menu\";\nimport { Filter } from \"@vuu-ui/vuu-filter-types\";\nimport { VuuFilter } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n ColumnDescriptor,\n RuntimeColumnDescriptor,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n addGroupColumn,\n addSortColumn,\n AggregationType,\n logUnhandledMessage,\n removeGroupColumn,\n setAggregations,\n setSortColumn,\n} from \"@vuu-ui/vuu-utils\";\nimport { ColumnMenuActionType } from \"./column-menu-utils\";\nimport {\n ColumnDisplayAction,\n DisplaySettingsAction,\n} from \"./column-action-types\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\n\nexport interface ContextMenuOptions {\n column?: RuntimeColumnDescriptor;\n filter?: Filter;\n sort?: VuuFilter;\n}\nexport interface ContextMenuHookProps {\n dataSource: DataSource;\n onColumnDisplayAction?: (action: ColumnDisplayAction) => void;\n onDisplaySettingsAction?: (action: DisplaySettingsAction) => void;\n}\n\n// const removeFilterColumn = (\n// dataSourceFilter: DataSourceFilter,\n// column: RuntimeColumnDescriptor,\n// ) => {\n// if (dataSourceFilter.filterStruct && column) {\n// const [filterStruct, filter] = removeColumnFromFilter(\n// column,\n// dataSourceFilter.filterStruct,\n// );\n// return {\n// filter,\n// filterStruct,\n// };\n// } else {\n// return dataSourceFilter;\n// }\n// };\n\nconst { Average, Count, Distinct, High, Low, Sum } = AggregationType;\n\nexport const useColumnActions = ({\n dataSource,\n onColumnDisplayAction,\n onDisplaySettingsAction,\n}: ContextMenuHookProps) => {\n /** return {boolean} used by caller to determine whether to forward to additional installed context menu handlers */\n const handleContextMenuAction: MenuActionHandler<\n ColumnMenuActionType,\n ColumnDescriptor\n > = (columnMenuActionType, column): boolean => {\n if (column && dataSource) {\n // prettier-ignore\n switch(columnMenuActionType){\n // 1) DataSource operations ...\n case \"sort-asc\": return (dataSource.sort = setSortColumn(dataSource.sort, column, \"A\")), true;\n case \"sort-dsc\": return (dataSource.sort = setSortColumn(dataSource.sort, column, \"D\")), true;\n case \"remove-sort\": return (dataSource.sort = {sortDefs:[]}), true;\n case \"sort-add-asc\": return (dataSource.sort = addSortColumn(dataSource.sort, column, \"A\")), true;\n case \"sort-add-dsc\": return (dataSource.sort = addSortColumn(dataSource.sort, column, \"D\")), true;\n case \"group-column\": return (dataSource.groupBy = addGroupColumn(dataSource.groupBy ?? [], column)), true;\n case \"add-to-group\": return (dataSource.groupBy = addGroupColumn(dataSource.groupBy ?? [], column)), true;\n case \"remove-group\": return (dataSource.groupBy = []), true;\n case \"remove-from-group\": return (dataSource.groupBy = removeGroupColumn(dataSource.groupBy ?? [], column)), true;\n case \"remove-column\": return (dataSource.columns = dataSource.columns.filter(name => name !== column.name)), true\n // case \"filter-remove-column\": return (dataSource.filter = removeFilterColumn(dataSource.filter, column)), true;\n // case \"remove-filters\": return (dataSource.filter = {filter:\"\"}), true;\n case \"agg-avg\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Average)), true;\n case \"agg-high\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, High)), true;\n case \"agg-low\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Low)), true;\n case \"agg-count\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Count)), true;\n case \"agg-distinct\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Distinct)), true;\n case \"agg-sum\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Sum)), true;\n // 2) Column display options ...\n case \"hide-column\": return onColumnDisplayAction?.({type: \"hideColumn\", column}), true;\n case \"pin-column-floating\": return onColumnDisplayAction?.({type: \"pinColumn\", column, pin: \"floating\"}), true;\n case \"pin-column-left\": return onColumnDisplayAction?.({type: \"pinColumn\", column, pin: \"left\"}), true;\n case \"pin-column-right\": return onColumnDisplayAction?.({type: \"pinColumn\", column, pin: \"right\"}), true;\n case \"unpin-column\": return onColumnDisplayAction?.({type: \"pinColumn\", column, pin: false}), true\n // 3) Table Admin options ...\n case \"column-settings\": return onDisplaySettingsAction?.({type: \"column-settings\", column}), true\n case \"table-settings\": return onDisplaySettingsAction?.({type: \"table-settings\"}), true\n default:\n logUnhandledMessage(columnMenuActionType, `[vuu-table-extras] useColumnActions handleContextMenuAction, unhandled columnMenuActionType`)\n }\n }\n return false;\n };\n\n return handleContextMenuAction;\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatasourceStats.js","sources":["../../../../../src/datasource-stats/DatasourceStats.tsx"],"sourcesContent":["import { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes, useEffect, useState } from \"react\";\n\nimport dataSourceStats from \"./DatasourceStats.css\";\nimport { Range } from \"@vuu-ui/vuu-utils\";\n\ninterface DataSourceStatsProps extends HTMLAttributes<HTMLSpanElement> {\n dataSource: DataSource;\n}\n\nconst classBase = \"vuuDatasourceStats\";\n\nconst numberFormatter = new Intl.NumberFormat();\n\nexport const DataSourceStats = ({\n className: classNameProp,\n dataSource,\n}: DataSourceStatsProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-datasource-stats\",\n css: dataSourceStats,\n window: targetWindow,\n });\n\n const [range, setRange] = useState<Range>(dataSource.range);\n const [size, setSize] = useState(dataSource.size);\n useEffect(() => {\n setSize(dataSource.size);\n dataSource.on(\"resize\", setSize);\n dataSource.on(\"range\", setRange);\n return () => {\n dataSource.removeListener(\"resize\", setSize);\n dataSource.removeListener(\"range\", setRange);\n };\n }, [dataSource]);\n\n const className = cx(classBase, classNameProp);\n const from = numberFormatter.format(range.firstRowInViewport);\n const to = numberFormatter.format(range.lastRowInViewport);\n const value = numberFormatter.format(size);\n if (size === 0) {\n return (\n <div className={className}>\n <span className={`${classBase}-label`}>No Rows to display</span>\n </div>\n );\n } else {\n return (\n <div className={className}>\n <span className={`${classBase}-label`}>Rows</span>\n <span className={`${classBase}-range`}>{from}</span>\n <span>-</span>\n <span className={`${classBase}-range`}>{to}</span>\n <span>of</span>\n <span className={`${classBase}-size`}>{value}</span>\n </div>\n );\n }\n};\n"],"names":[],"mappings":";;;;;;;AAaA,MAAM,SAAY,GAAA,oBAAA;AAElB,MAAM,eAAA,GAAkB,IAAI,IAAA,CAAK,YAAa,EAAA;AAEvC,MAAM,kBAAkB,CAAC;AAAA,EAC9B,SAAW,EAAA,aAAA;AAAA,EACX;AACF,CAA4B,KAAA;AAC1B,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,sBAAA;AAAA,IACR,GAAK,EAAA,eAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,QAAA,CAAgB,WAAW,KAAK,CAAA;AAC1D,EAAA,MAAM,CAAC,IAAM,EAAA,OAAO,CAAI,GAAA,QAAA,CAAS,WAAW,IAAI,CAAA;AAChD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAA,CAAQ,WAAW,IAAI,CAAA;AACvB,IAAW,UAAA,CAAA,EAAA,CAAG,UAAU,OAAO,CAAA;AAC/B,IAAW,UAAA,CAAA,EAAA,CAAG,SAAS,QAAQ,CAAA;AAC/B,IAAA,OAAO,MAAM;AACX,MAAW,UAAA,CAAA,cAAA,CAAe,UAAU,OAAO,CAAA;AAC3C,MAAW,UAAA,CAAA,cAAA,CAAe,SAAS,QAAQ,CAAA;AAAA,KAC7C;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAM,MAAA,SAAA,GAAY,EAAG,CAAA,SAAA,EAAW,aAAa,CAAA;AAC7C,EAAA,MAAM,IAAO,GAAA,eAAA,CAAgB,MAAO,CAAA,KAAA,CAAM,kBAAkB,CAAA;AAC5D,EAAA,MAAM,EAAK,GAAA,eAAA,CAAgB,MAAO,CAAA,KAAA,CAAM,iBAAiB,CAAA;AACzD,EAAM,MAAA,KAAA,GAAQ,eAAgB,CAAA,MAAA,CAAO,IAAI,CAAA;AACzC,EAAA,IAAI,SAAS,CAAG,EAAA;AACd,IACE,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EACH,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA,EAAK,WAAW,CAAG,EAAA,SAAS,CAAU,MAAA,CAAA,EAAA,QAAA,EAAA,oBAAA,EAAkB,CAC3D,EAAA,CAAA;AAAA,GAEG,MAAA;AACL,IACE,uBAAA,IAAA,CAAC,SAAI,SACH,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,UAAU,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,0BAC1C,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,UAAW,QAAK,EAAA,IAAA,EAAA,CAAA;AAAA,sBAC7C,GAAA,CAAC,UAAK,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,0BACN,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,UAAW,QAAG,EAAA,EAAA,EAAA,CAAA;AAAA,sBAC3C,GAAA,CAAC,UAAK,QAAE,EAAA,IAAA,EAAA,CAAA;AAAA,0BACP,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,SAAU,QAAM,EAAA,KAAA,EAAA;AAAA,KAC/C,EAAA,CAAA;AAAA;AAGN;;;;"}
@@ -9,7 +9,11 @@ import './cell-renderers/progress-cell/ProgressCell.js';
9
9
  export { ColumnList } from './column-list/ColumnList.js';
10
10
  export { ColumnMenu } from './column-menu/ColumnMenu.js';
11
11
  export { useColumnActions } from './column-menu/useColumnActions.js';
12
- export { ColumnSettingsPanel } from './column-settings/ColumnSettingsPanel.js';
12
+ export { ColumnSettingsPanel } from './table-column-settings/ColumnSettingsPanel.js';
13
+ export { useColumnSettings } from './table-column-settings/useColumnSettings.js';
14
+ export { TableSettingsPanel, defaultTableSettingsPermissions } from './table-column-settings/TableSettingsPanel.js';
15
+ export { useTableSettings } from './table-column-settings/useTableSettings.js';
16
+ export { columnSettingsFromColumnMenuPermissions, tableSettingsFromColumnMenuPermissions, useTableAndColumnSettings } from './table-column-settings/useTableAndColumnSettings.js';
13
17
  export { ColumnExpressionInput } from './column-expression-input/ColumnExpressionInput.js';
14
18
  export { columnExpressionLanguageSupport } from './column-expression-input/column-language-parser/ColumnExpressionLanguage.js';
15
19
  export { walkTree } from './column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js';
@@ -21,7 +25,5 @@ export { ColumnFormattingPanel } from './column-formatting-settings/ColumnFormat
21
25
  export { BaseNumericFormattingSettings } from './column-formatting-settings/BaseNumericFormattingSettings.js';
22
26
  export { DateTimeFormattingSettings } from './column-formatting-settings/DateTimeFormattingSettings.js';
23
27
  export { DataSourceStats } from './datasource-stats/DatasourceStats.js';
24
- export { TableSettingsPanel } from './table-settings/TableSettingsPanel.js';
25
- export { useTableSettings } from './table-settings/useTableSettings.js';
26
28
  export { TableProvider, useTableContext } from './table-provider/TableProvider.js';
27
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnNameLabel.js","sources":["../../../../../src/table-column-settings/ColumnNameLabel.tsx"],"sourcesContent":["import { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n getCalculatedColumnDetails,\n isCalculatedColumn,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler } from \"react\";\n\nimport columnNameLabelCss from \"./ColumnNameLabel.css\";\n\nconst classBase = \"vuuColumnNameLabel\";\n\nexport interface ColumnNameLabelProps {\n column: ColumnDescriptor;\n onClick: MouseEventHandler;\n}\n\nexport const ColumnNameLabel = ({ column, onClick }: ColumnNameLabelProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-label\",\n css: columnNameLabelCss,\n window: targetWindow,\n });\n\n if (isCalculatedColumn(column.name)) {\n const { name, serverDataType, expression } =\n getCalculatedColumnDetails(column);\n const displayName = name || \"name\";\n const displayExpression = \"=expression\";\n\n const nameClass =\n displayName === \"name\" ? `${classBase}-placeholder` : undefined;\n const expressionClass =\n expression === \"\" ? `${classBase}-placeholder` : undefined;\n return (\n <div\n className={cx(classBase, `${classBase}-calculated`)}\n onClick={onClick}\n >\n <span className={nameClass}>{displayName}</span>\n <span>:</span>\n <span>{serverDataType || \"string\"}</span>\n <span>:</span>\n <span className={expressionClass}>{displayExpression}</span>\n <span className={`${classBase}-edit`} data-icon=\"edit\" />\n </div>\n );\n } else {\n return <div className={classBase}>{column.name}</div>;\n }\n};\n"],"names":[],"mappings":";;;;;;;AAYA,MAAM,SAAY,GAAA,oBAAA;AAOX,MAAM,eAAkB,GAAA,CAAC,EAAE,MAAA,EAAQ,SAAoC,KAAA;AAC5E,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAA,kBAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAI,IAAA,kBAAA,CAAmB,MAAO,CAAA,IAAI,CAAG,EAAA;AACnC,IAAA,MAAM,EAAE,IAAM,EAAA,cAAA,EAAgB,UAAW,EAAA,GACvC,2BAA2B,MAAM,CAAA;AACnC,IAAA,MAAM,cAAc,IAAQ,IAAA,MAAA;AAC5B,IAAA,MAAM,iBAAoB,GAAA,aAAA;AAE1B,IAAA,MAAM,SACJ,GAAA,WAAA,KAAgB,MAAS,GAAA,CAAA,EAAG,SAAS,CAAiB,YAAA,CAAA,GAAA,KAAA,CAAA;AACxD,IAAA,MAAM,eACJ,GAAA,UAAA,KAAe,EAAK,GAAA,CAAA,EAAG,SAAS,CAAiB,YAAA,CAAA,GAAA,KAAA,CAAA;AACnD,IACE,uBAAA,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,EAAA,CAAG,SAAW,EAAA,CAAA,EAAG,SAAS,CAAa,WAAA,CAAA,CAAA;AAAA,QAClD,OAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,SAAA,EAAY,QAAY,EAAA,WAAA,EAAA,CAAA;AAAA,0BACzC,GAAA,CAAC,UAAK,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,0BACP,GAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EAAA,cAAA,IAAkB,QAAS,EAAA,CAAA;AAAA,0BAClC,GAAA,CAAC,UAAK,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,0BACN,GAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,eAAA,EAAkB,QAAkB,EAAA,iBAAA,EAAA,CAAA;AAAA,8BACpD,MAAK,EAAA,EAAA,SAAA,EAAW,GAAG,SAAS,CAAA,KAAA,CAAA,EAAS,aAAU,MAAO,EAAA;AAAA;AAAA;AAAA,KACzD;AAAA,GAEG,MAAA;AACL,IAAA,uBAAQ,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,SAAA,EAAY,iBAAO,IAAK,EAAA,CAAA;AAAA;AAEnD;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnSettingsPanel.js","sources":["../../../../../src/table-column-settings/ColumnSettingsPanel.tsx"],"sourcesContent":["import { ColumnDescriptor, ColumnSettingsProps } from \"@vuu-ui/vuu-table-types\";\nimport { Icon, VuuInput } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n getCalculatedColumnDetails,\n getDefaultAlignment,\n isCalculatedColumn,\n} from \"@vuu-ui/vuu-utils\";\nimport {\n Button,\n FormField,\n FormFieldLabel,\n ToggleButton,\n ToggleButtonGroup,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { ColumnExpressionPanel } from \"../column-expression-panel\";\nimport { ColumnFormattingPanel } from \"../column-formatting-settings\";\nimport { ColumnNameLabel } from \"./ColumnNameLabel\";\nimport { useColumnSettings } from \"./useColumnSettings\";\n\nimport colunSettingsPanelCss from \"./ColumnSettingsPanel.css\";\n\nconst classBase = \"vuuColumnSettingsPanel\";\n\nconst getColumnLabel = (column: ColumnDescriptor) => {\n const { name, label } = column;\n if (isCalculatedColumn(name)) {\n return label ?? getCalculatedColumnDetails(column).name;\n } else {\n return label ?? name;\n }\n};\n\nexport const ColumnSettingsPanel = ({\n column: columnProp,\n onCancelCreateColumn,\n onConfigChange,\n onCreateCalculatedColumn,\n tableConfig,\n vuuTable,\n}: ColumnSettingsProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-settings-panel\",\n css: colunSettingsPanelCss,\n window: targetWindow,\n });\n\n const isNewCalculatedColumn = columnProp.name === \"::\";\n const {\n availableRenderers,\n editCalculatedColumn,\n column,\n navigateNextColumn,\n navigatePrevColumn,\n onCancel,\n onChange,\n onChangeCalculatedColumnName,\n onChangeFormatting,\n onChangeRendering,\n onChangeServerDataType,\n onChangeToggleButton,\n onChangeType,\n onEditCalculatedColumn,\n onInputCommit,\n onSave,\n } = useColumnSettings({\n column: columnProp,\n onCancelCreateColumn,\n onConfigChange,\n onCreateCalculatedColumn,\n tableConfig,\n });\n\n const {\n serverDataType,\n align = getDefaultAlignment(serverDataType),\n pin,\n width,\n } = column;\n\n return (\n <div\n className={cx(classBase, {\n [`${classBase}-editing`]: editCalculatedColumn,\n })}\n >\n <div className={`${classBase}-header`}>\n <ColumnNameLabel column={column} onClick={onEditCalculatedColumn} />\n </div>\n\n {editCalculatedColumn ? (\n <ColumnExpressionPanel\n column={column}\n onChangeName={onChangeCalculatedColumnName}\n onChangeServerDataType={onChangeServerDataType}\n tableConfig={tableConfig}\n vuuTable={vuuTable}\n />\n ) : null}\n\n <FormField data-field=\"column-label\">\n <FormFieldLabel>Column Label</FormFieldLabel>\n <VuuInput\n className=\"vuuInput\"\n data-embedded\n onChange={onChange}\n onCommit={onInputCommit}\n value={getColumnLabel(column)}\n />\n </FormField>\n\n <FormField data-field=\"column-width\">\n <FormFieldLabel>Column Width</FormFieldLabel>\n <VuuInput\n className=\"vuuInput\"\n data-embedded\n onChange={onChange}\n value={width}\n onCommit={onInputCommit}\n />\n </FormField>\n <FormField data-field=\"column-alignment\">\n <FormFieldLabel>Alignment</FormFieldLabel>\n <ToggleButtonGroup onChange={onChangeToggleButton} value={align}>\n <ToggleButton value=\"left\">\n <Icon name=\"align-left\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"right\">\n <Icon name=\"align-right\" size={16} />\n </ToggleButton>\n </ToggleButtonGroup>\n </FormField>\n <FormField data-field=\"column-pin\">\n <FormFieldLabel>Pin Column</FormFieldLabel>\n <ToggleButtonGroup\n onChange={onChangeToggleButton}\n value={pin || \"false\"}\n >\n <ToggleButton value=\"left\">\n <Icon name=\"pin-left\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"floating\">\n <Icon name=\"pin-float\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"right\">\n <Icon name=\"pin-right\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"\">\n <Icon name=\"cross-circle\" size={16} />\n </ToggleButton>\n </ToggleButtonGroup>\n </FormField>\n <ColumnFormattingPanel\n availableRenderers={availableRenderers}\n column={column}\n onChangeFormatting={onChangeFormatting}\n onChangeRendering={onChangeRendering}\n onChangeColumnType={onChangeType}\n />\n\n {editCalculatedColumn ? (\n <div className=\"vuuColumnSettingsPanel-buttonBar\" data-align=\"right\">\n <Button\n className={`${classBase}-buttonCancel`}\n onClick={onCancel}\n tabIndex={-1}\n >\n cancel\n </Button>\n <Button\n className={`${classBase}-buttonSave`}\n onClick={onSave}\n variant=\"cta\"\n >\n save\n </Button>\n </div>\n ) : (\n <div\n className={`${classBase}-buttonBar`}\n data-align={isNewCalculatedColumn ? \"right\" : undefined}\n >\n <Button\n className={`${classBase}-buttonNavPrev`}\n variant=\"secondary\"\n data-icon=\"arrow-left\"\n onClick={navigatePrevColumn}\n >\n PREVIOUS\n </Button>\n <Button\n className={`${classBase}-buttonNavNext`}\n variant=\"secondary\"\n data-icon=\"arrow-right\"\n onClick={navigateNextColumn}\n >\n NEXT\n </Button>\n </div>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":"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"}