@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,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var index = require('../../../../node_modules/@dnd-kit/react/index.js');
5
+ var sortable = require('../../../../node_modules/@dnd-kit/react/sortable.js');
4
6
  var core = require('@salt-ds/core');
5
7
  var styles = require('@salt-ds/styles');
6
8
  var window = require('@salt-ds/window');
@@ -12,45 +14,81 @@ var ColumnList$1 = require('./ColumnList.css.js');
12
14
 
13
15
  const classBase = "vuuColumnList";
14
16
  const classBaseListItem = "vuuColumnListItem";
17
+ const useSorting = (id, index, allowSort = true) => {
18
+ const { handleRef: sortableHandleRef, ref: sortableRef } = sortable.useSortable({
19
+ id,
20
+ index
21
+ });
22
+ const noopRef = react.useCallback(() => {
23
+ }, []);
24
+ const [handleRef, ref] = react.useMemo(() => {
25
+ return allowSort ? [sortableHandleRef, sortableRef] : [noopRef, noopRef];
26
+ }, [allowSort, noopRef, sortableHandleRef, sortableRef]);
27
+ return {
28
+ handleRef,
29
+ ref
30
+ };
31
+ };
15
32
  const ColumnListItem = ({
16
33
  className: classNameProp,
34
+ index,
17
35
  item,
18
- ...listItemProps
36
+ permissions: { allowHideColumns, allowRemoveColumns, allowReorderColumns },
37
+ ...optionProps
19
38
  }) => {
39
+ const { handleRef, ref } = useSorting(item.name, index, allowReorderColumns);
20
40
  return /* @__PURE__ */ jsxRuntime.jsxs(
21
- vuuUiControls.ListItem,
41
+ core.Option,
22
42
  {
23
- ...listItemProps,
43
+ ...optionProps,
24
44
  className: cx(classNameProp, classBaseListItem),
25
- "data-name": item?.name,
45
+ "data-name": item.name,
46
+ id: item.name,
47
+ ref,
26
48
  children: [
27
- /* @__PURE__ */ jsxRuntime.jsx(vuuUiControls.Icon, { name: "draggable", size: 16 }),
49
+ allowReorderColumns ? /* @__PURE__ */ jsxRuntime.jsx(
50
+ vuuUiControls.IconButton,
51
+ {
52
+ "data-embedded": true,
53
+ appearance: "transparent",
54
+ icon: "draggable",
55
+ ref: handleRef,
56
+ size: 16
57
+ }
58
+ ) : null,
28
59
  item?.isCalculated ? /* @__PURE__ */ jsxRuntime.jsx(vuuUiControls.Icon, { name: "function" }) : /* @__PURE__ */ jsxRuntime.jsx(
29
60
  core.Checkbox,
30
61
  {
31
62
  className: `${classBase}-checkBox`,
32
- checked: item?.subscribed
63
+ checked: item?.subscribed,
64
+ readOnly: allowRemoveColumns === false
33
65
  }
34
66
  ),
35
67
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `${classBase}-text`, children: vuuUtils.getColumnLabel(item) }),
36
- /* @__PURE__ */ jsxRuntime.jsx(
68
+ allowHideColumns !== false ? /* @__PURE__ */ jsxRuntime.jsx(
37
69
  core.Switch,
38
70
  {
39
71
  className: `${classBase}-switch`,
40
72
  checked: item?.hidden !== true,
41
73
  disabled: item?.subscribed !== true
42
74
  }
43
- )
75
+ ) : null
44
76
  ]
45
77
  }
46
78
  );
47
79
  };
80
+ const defaultPermissions = {
81
+ allowHideColumns: true,
82
+ allowRemoveColumns: true,
83
+ allowReorderColumns: true
84
+ };
48
85
  const ColumnList = ({
49
86
  className,
50
87
  columnItems,
51
88
  onChange,
52
- onMoveListItem,
53
89
  onNavigateToColumn,
90
+ onReorderColumnItems,
91
+ permissions = defaultPermissions,
54
92
  ...htmlAttributes
55
93
  }) => {
56
94
  const targetWindow = window.useWindow();
@@ -59,6 +97,7 @@ const ColumnList = ({
59
97
  css: ColumnList$1,
60
98
  window: targetWindow
61
99
  });
100
+ const listRef = react.useRef(null);
62
101
  const handleChange = react.useCallback(
63
102
  ({ target }) => {
64
103
  const input = target;
@@ -92,7 +131,16 @@ const ColumnList = ({
92
131
  },
93
132
  [onNavigateToColumn]
94
133
  );
95
- return /* @__PURE__ */ jsxRuntime.jsxs(
134
+ const handleDragEnd = react.useCallback(() => {
135
+ setTimeout(() => {
136
+ const listItems = listRef.current?.querySelectorAll(".saltOption");
137
+ if (listItems) {
138
+ const orderedIds = Array.from(listItems).map(({ id }) => id);
139
+ onReorderColumnItems?.(vuuUtils.reorderColumnItems(columnItems, orderedIds));
140
+ }
141
+ }, 300);
142
+ }, [columnItems, onReorderColumnItems]);
143
+ return /* @__PURE__ */ jsxRuntime.jsx(index.DragDropProvider, { onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsxRuntime.jsxs(
96
144
  "div",
97
145
  {
98
146
  ...htmlAttributes,
@@ -105,23 +153,21 @@ const ColumnList = ({
105
153
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Column subscription" }),
106
154
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Visibility" })
107
155
  ] }),
108
- /* @__PURE__ */ jsxRuntime.jsx(
109
- vuuUiControls.List,
156
+ /* @__PURE__ */ jsxRuntime.jsx(core.ListBox, { ref: listRef, children: columnItems.map((columnItem, index) => /* @__PURE__ */ jsxRuntime.jsx(
157
+ ColumnListItem,
110
158
  {
111
- ListItem: ColumnListItem,
112
- allowDragDrop: true,
113
- height: "auto",
159
+ item: columnItem,
160
+ index,
114
161
  onChange: handleChange,
115
162
  onClick: handleClick,
116
- onMoveListItem,
117
- selectionStrategy: "none",
118
- source: columnItems,
119
- itemHeight: 33
120
- }
121
- )
163
+ permissions,
164
+ value: columnItem
165
+ },
166
+ columnItem.name
167
+ )) })
122
168
  ]
123
169
  }
124
- );
170
+ ) });
125
171
  };
126
172
 
127
173
  exports.ColumnList = 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":["useSortable","useCallback","useMemo","jsxs","Option","jsx","IconButton","Icon","Checkbox","getColumnLabel","Switch","useWindow","useComponentCssInjection","columnList","useRef","queryClosest","reorderColumnItems","DragDropProvider","ListBox"],"mappings":"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"}
@@ -10,12 +10,31 @@ var cx = require('clsx');
10
10
  var react = require('react');
11
11
  var ColumnMenu$1 = require('./ColumnMenu.css.js');
12
12
  var columnMenuUtils = require('./column-menu-utils.js');
13
+ var TableSettingsPanel = require('../table-column-settings/TableSettingsPanel.js');
13
14
 
14
15
  const classBase = "vuuColumnMenu";
16
+ const defaultColumnMenuPermissions = {
17
+ allowSort: true,
18
+ allowGroup: true,
19
+ allowAggregation: true,
20
+ allowHide: true,
21
+ allowPin: true,
22
+ allowColumnSettings: true,
23
+ allowTableSettings: TableSettingsPanel.defaultTableSettingsPermissions
24
+ };
15
25
  const ColumnMenu = ({
16
26
  className,
17
27
  column,
18
- menuActionHandler: menuActionHandlerProp
28
+ menuActionHandler: menuActionHandlerProp,
29
+ menuPermissions: {
30
+ allowSort,
31
+ allowGroup,
32
+ allowAggregation,
33
+ allowHide,
34
+ allowPin,
35
+ allowColumnSettings,
36
+ allowTableSettings
37
+ } = defaultColumnMenuPermissions
19
38
  }) => {
20
39
  const targetWindow = window.useWindow();
21
40
  styles.useComponentCssInjection({
@@ -33,21 +52,35 @@ const ColumnMenu = ({
33
52
  },
34
53
  [column, menuActionHandler, menuActionHandlerProp]
35
54
  );
36
- const sortMenu = columnMenuUtils.buildSortMenu(column, dataSource, menuActionClickHandler);
37
- const groupMenu = columnMenuUtils.buildGroupMenu(column, dataSource, menuActionClickHandler);
55
+ const sortMenu = columnMenuUtils.buildSortMenu(
56
+ column,
57
+ dataSource,
58
+ menuActionClickHandler,
59
+ allowSort
60
+ );
61
+ const groupMenu = columnMenuUtils.buildGroupMenu(
62
+ column,
63
+ dataSource,
64
+ menuActionClickHandler,
65
+ allowGroup
66
+ );
38
67
  const aggregationMenu = columnMenuUtils.buildAggregationMenuItems(
39
68
  column,
40
69
  dataSource,
41
- menuActionClickHandler
70
+ menuActionClickHandler,
71
+ allowAggregation
42
72
  );
43
73
  const visibilityMenuItems = columnMenuUtils.buildVisibilityMenuItems(
44
74
  column,
45
- menuActionClickHandler
75
+ menuActionClickHandler,
76
+ allowHide
46
77
  );
47
- const pinMenu = columnMenuUtils.buildPinMenuItems(column, menuActionClickHandler);
78
+ const pinMenu = columnMenuUtils.buildPinMenuItems(column, menuActionClickHandler, allowPin);
48
79
  const settingsMenuItems = columnMenuUtils.buildSettingsMenuItems(
49
80
  column,
50
- menuActionClickHandler
81
+ menuActionClickHandler,
82
+ allowColumnSettings,
83
+ allowTableSettings
51
84
  );
52
85
  const handleClick = react.useCallback(
53
86
  (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":["defaultTableSettingsPermissions","useWindow","useComponentCssInjection","columnMenuCss","useTableContext","useCallback","getColumnMenuActionType","buildSortMenu","buildGroupMenu","buildAggregationMenuItems","buildVisibilityMenuItems","buildPinMenuItems","buildSettingsMenuItems","Menu","jsx","MenuTrigger","IconButton","MenuPanel"],"mappings":"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"}
@@ -39,8 +39,8 @@ const getColumnMenuActionType = (target) => {
39
39
  );
40
40
  }
41
41
  };
42
- function buildSortMenu(column, dataSource, menuActionClickHandler) {
43
- if (column.sortable === false) {
42
+ function buildSortMenu(column, dataSource, menuActionClickHandler, isAllowed = true) {
43
+ if (!isAllowed || column.sortable === false) {
44
44
  return null;
45
45
  } else {
46
46
  const { name, label = name } = column;
@@ -176,8 +176,8 @@ function buildSortMenu(column, dataSource, menuActionClickHandler) {
176
176
  ] }, "sort-menu");
177
177
  }
178
178
  }
179
- function buildGroupMenu(column, dataSource, menuActionClickHandler) {
180
- if (column.groupable === false) {
179
+ function buildGroupMenu(column, dataSource, menuActionClickHandler, isAllowed = true) {
180
+ if (!isAllowed || column.groupable === false) {
181
181
  return null;
182
182
  } else {
183
183
  const menuItems = [];
@@ -249,7 +249,10 @@ function buildGroupMenu(column, dataSource, menuActionClickHandler) {
249
249
  ] }, "group-menu");
250
250
  }
251
251
  }
252
- const buildVisibilityMenuItems = (column, menuActionClickHandler) => {
252
+ const buildVisibilityMenuItems = (column, menuActionClickHandler, isAllowed = true) => {
253
+ if (!isAllowed) {
254
+ return null;
255
+ }
253
256
  const menuItems = [];
254
257
  const { name, label = name } = column;
255
258
  menuItems.push(
@@ -276,8 +279,8 @@ const buildVisibilityMenuItems = (column, menuActionClickHandler) => {
276
279
  );
277
280
  return menuItems;
278
281
  };
279
- const buildPinMenuItems = (column, menuActionClickHandler) => {
280
- if (column === void 0) {
282
+ const buildPinMenuItems = (column, menuActionClickHandler, isAllowed = true) => {
283
+ if (!isAllowed || column === void 0) {
281
284
  return [];
282
285
  }
283
286
  const { pin } = column;
@@ -366,35 +369,45 @@ const buildPinMenuItems = (column, menuActionClickHandler) => {
366
369
  }
367
370
  return menuItems;
368
371
  };
369
- const buildSettingsMenuItems = (_, menuActionClickHandler) => {
372
+ const buildSettingsMenuItems = (_, menuActionClickHandler, allowColumnSettings = true, allowTableSettings = true) => {
373
+ if (!allowColumnSettings && !allowTableSettings) {
374
+ return null;
375
+ }
370
376
  const menuItems = [];
371
- menuItems.push(
372
- /* @__PURE__ */ jsxRuntime.jsx(
373
- core.MenuItem,
374
- {
375
- "data-icon": "settings",
376
- "data-menu-action-id": "column-settings",
377
- onClick: menuActionClickHandler,
378
- children: "Column settings ..."
379
- },
380
- "column-settings"
381
- )
382
- );
383
- menuItems.push(
384
- /* @__PURE__ */ jsxRuntime.jsx(
385
- core.MenuItem,
386
- {
387
- "data-icon": "settings",
388
- "data-menu-action-id": "table-settings",
389
- onClick: menuActionClickHandler,
390
- children: "Table settings ..."
391
- },
392
- "table-settings"
393
- )
394
- );
377
+ if (allowColumnSettings) {
378
+ menuItems.push(
379
+ /* @__PURE__ */ jsxRuntime.jsx(
380
+ core.MenuItem,
381
+ {
382
+ "data-icon": "settings",
383
+ "data-menu-action-id": "column-settings",
384
+ onClick: menuActionClickHandler,
385
+ children: "Column settings ..."
386
+ },
387
+ "column-settings"
388
+ )
389
+ );
390
+ }
391
+ if (allowTableSettings) {
392
+ menuItems.push(
393
+ /* @__PURE__ */ jsxRuntime.jsx(
394
+ core.MenuItem,
395
+ {
396
+ "data-icon": "settings",
397
+ "data-menu-action-id": "table-settings",
398
+ onClick: menuActionClickHandler,
399
+ children: "Table settings ..."
400
+ },
401
+ "table-settings"
402
+ )
403
+ );
404
+ }
395
405
  return menuItems;
396
406
  };
397
- function buildAggregationMenuItems(column, dataSource, menuActionClickHandler) {
407
+ function buildAggregationMenuItems(column, dataSource, menuActionClickHandler, isAllowed = true) {
408
+ if (!isAllowed) {
409
+ return null;
410
+ }
398
411
  const { name, label = name } = column;
399
412
  if (dataSource.groupBy?.length === 0) {
400
413
  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":["getSortStatus","jsx","MenuItem","logUnhandledMessage","Menu","MenuTrigger","MenuPanel","getGroupStatus","isNumericColumn"],"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":["AggregationType","setSortColumn","addSortColumn","addGroupColumn","removeGroupColumn","setAggregations","logUnhandledMessage"],"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":["useWindow","useComponentCssInjection","dataSourceStats","useState","useEffect","jsx","jsxs"],"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,eAAeA,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,sBAAA;AAAA,IACR,GAAK,EAAAC,eAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAAC,cAAA,CAAgB,WAAW,KAAK,CAAA;AAC1D,EAAA,MAAM,CAAC,IAAM,EAAA,OAAO,CAAI,GAAAA,cAAA,CAAS,WAAW,IAAI,CAAA;AAChD,EAAAC,eAAA,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,uBAAAC,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EACH,QAAC,kBAAAA,cAAA,CAAA,MAAA,EAAA,EAAK,WAAW,CAAG,EAAA,SAAS,CAAU,MAAA,CAAA,EAAA,QAAA,EAAA,oBAAA,EAAkB,CAC3D,EAAA,CAAA;AAAA,GAEG,MAAA;AACL,IACE,uBAAAC,eAAA,CAAC,SAAI,SACH,EAAA,QAAA,EAAA;AAAA,sBAAAD,cAAA,CAAC,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,UAAU,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,qCAC1C,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,UAAW,QAAK,EAAA,IAAA,EAAA,CAAA;AAAA,sBAC7CA,cAAA,CAAC,UAAK,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,qCACN,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,UAAW,QAAG,EAAA,EAAA,EAAA,CAAA;AAAA,sBAC3CA,cAAA,CAAC,UAAK,QAAE,EAAA,IAAA,EAAA,CAAA;AAAA,qCACP,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,SAAU,QAAM,EAAA,KAAA,EAAA;AAAA,KAC/C,EAAA,CAAA;AAAA;AAGN;;;;"}
@@ -11,7 +11,11 @@ require('./cell-renderers/progress-cell/ProgressCell.js');
11
11
  var ColumnList = require('./column-list/ColumnList.js');
12
12
  var ColumnMenu = require('./column-menu/ColumnMenu.js');
13
13
  var useColumnActions = require('./column-menu/useColumnActions.js');
14
- var ColumnSettingsPanel = require('./column-settings/ColumnSettingsPanel.js');
14
+ var ColumnSettingsPanel = require('./table-column-settings/ColumnSettingsPanel.js');
15
+ var useColumnSettings = require('./table-column-settings/useColumnSettings.js');
16
+ var TableSettingsPanel = require('./table-column-settings/TableSettingsPanel.js');
17
+ var useTableSettings = require('./table-column-settings/useTableSettings.js');
18
+ var useTableAndColumnSettings = require('./table-column-settings/useTableAndColumnSettings.js');
15
19
  var ColumnExpressionInput = require('./column-expression-input/ColumnExpressionInput.js');
16
20
  var ColumnExpressionLanguage = require('./column-expression-input/column-language-parser/ColumnExpressionLanguage.js');
17
21
  var ColumnExpressionTreeWalker = require('./column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js');
@@ -23,8 +27,6 @@ var ColumnFormattingPanel = require('./column-formatting-settings/ColumnFormatti
23
27
  var BaseNumericFormattingSettings = require('./column-formatting-settings/BaseNumericFormattingSettings.js');
24
28
  var DateTimeFormattingSettings = require('./column-formatting-settings/DateTimeFormattingSettings.js');
25
29
  var DatasourceStats = require('./datasource-stats/DatasourceStats.js');
26
- var TableSettingsPanel = require('./table-settings/TableSettingsPanel.js');
27
- var useTableSettings = require('./table-settings/useTableSettings.js');
28
30
  var TableProvider = require('./table-provider/TableProvider.js');
29
31
 
30
32
 
@@ -40,6 +42,13 @@ exports.ColumnList = ColumnList.ColumnList;
40
42
  exports.ColumnMenu = ColumnMenu.ColumnMenu;
41
43
  exports.useColumnActions = useColumnActions.useColumnActions;
42
44
  exports.ColumnSettingsPanel = ColumnSettingsPanel.ColumnSettingsPanel;
45
+ exports.useColumnSettings = useColumnSettings.useColumnSettings;
46
+ exports.TableSettingsPanel = TableSettingsPanel.TableSettingsPanel;
47
+ exports.defaultTableSettingsPermissions = TableSettingsPanel.defaultTableSettingsPermissions;
48
+ exports.useTableSettings = useTableSettings.useTableSettings;
49
+ exports.columnSettingsFromColumnMenuPermissions = useTableAndColumnSettings.columnSettingsFromColumnMenuPermissions;
50
+ exports.tableSettingsFromColumnMenuPermissions = useTableAndColumnSettings.tableSettingsFromColumnMenuPermissions;
51
+ exports.useTableAndColumnSettings = useTableAndColumnSettings.useTableAndColumnSettings;
43
52
  exports.ColumnExpressionInput = ColumnExpressionInput.ColumnExpressionInput;
44
53
  exports.columnExpressionLanguageSupport = ColumnExpressionLanguage.columnExpressionLanguageSupport;
45
54
  exports.walkTree = ColumnExpressionTreeWalker.walkTree;
@@ -54,8 +63,6 @@ exports.ColumnFormattingPanel = ColumnFormattingPanel.ColumnFormattingPanel;
54
63
  exports.BaseNumericFormattingSettings = BaseNumericFormattingSettings.BaseNumericFormattingSettings;
55
64
  exports.DateTimeFormattingSettings = DateTimeFormattingSettings.DateTimeFormattingSettings;
56
65
  exports.DataSourceStats = DatasourceStats.DataSourceStats;
57
- exports.TableSettingsPanel = TableSettingsPanel.TableSettingsPanel;
58
- exports.useTableSettings = useTableSettings.useTableSettings;
59
66
  exports.TableProvider = TableProvider.TableProvider;
60
67
  exports.useTableContext = TableProvider.useTableContext;
61
68
  //# 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":["useWindow","useComponentCssInjection","columnNameLabelCss","isCalculatedColumn","getCalculatedColumnDetails","jsxs","jsx"],"mappings":";;;;;;;;;AAYA,MAAM,SAAY,GAAA,oBAAA;AAOX,MAAM,eAAkB,GAAA,CAAC,EAAE,MAAA,EAAQ,SAAoC,KAAA;AAC5E,EAAA,MAAM,eAAeA,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAAC,iBAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAI,IAAAC,2BAAA,CAAmB,MAAO,CAAA,IAAI,CAAG,EAAA;AACnC,IAAA,MAAM,EAAE,IAAM,EAAA,cAAA,EAAgB,UAAW,EAAA,GACvCC,oCAA2B,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,uBAAAC,eAAA;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,0BAACC,cAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,SAAA,EAAY,QAAY,EAAA,WAAA,EAAA,CAAA;AAAA,0BACzCA,cAAA,CAAC,UAAK,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,0BACPA,cAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EAAA,cAAA,IAAkB,QAAS,EAAA,CAAA;AAAA,0BAClCA,cAAA,CAAC,UAAK,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,0BACNA,cAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,eAAA,EAAkB,QAAkB,EAAA,iBAAA,EAAA,CAAA;AAAA,yCACpD,MAAK,EAAA,EAAA,SAAA,EAAW,GAAG,SAAS,CAAA,KAAA,CAAA,EAAS,aAAU,MAAO,EAAA;AAAA;AAAA;AAAA,KACzD;AAAA,GAEG,MAAA;AACL,IAAA,uBAAQA,cAAA,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":["isCalculatedColumn","getCalculatedColumnDetails","useWindow","useComponentCssInjection","colunSettingsPanelCss","useColumnSettings","getDefaultAlignment","jsxs","jsx","ColumnNameLabel","ColumnExpressionPanel","FormField","FormFieldLabel","VuuInput","ToggleButtonGroup","ToggleButton","Icon","ColumnFormattingPanel","Button"],"mappings":"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"}