@dxos/react-ui-table 0.9.1-main.c7dcc2e112 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/lib/browser/{chunk-5V5FV3GS.mjs → chunk-K4J2CKTZ.mjs} +66 -14
  2. package/dist/lib/browser/chunk-K4J2CKTZ.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-62PYOJPY.mjs → chunk-VV3P3ADH.mjs} +5 -5
  4. package/dist/lib/browser/chunk-VV3P3ADH.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +76 -10
  6. package/dist/lib/browser/index.mjs.map +3 -3
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/testing/index.mjs +2 -2
  9. package/dist/lib/browser/translations.mjs +5 -2
  10. package/dist/lib/browser/translations.mjs.map +2 -2
  11. package/dist/lib/browser/types/index.mjs +1 -1
  12. package/dist/lib/node-esm/{chunk-5H6GHWNR.mjs → chunk-E6V274ZW.mjs} +66 -14
  13. package/dist/lib/node-esm/chunk-E6V274ZW.mjs.map +7 -0
  14. package/dist/lib/node-esm/{chunk-7LMOZUTS.mjs → chunk-RPEWNOZZ.mjs} +5 -5
  15. package/dist/lib/node-esm/chunk-RPEWNOZZ.mjs.map +7 -0
  16. package/dist/lib/node-esm/index.mjs +76 -10
  17. package/dist/lib/node-esm/index.mjs.map +3 -3
  18. package/dist/lib/node-esm/meta.json +1 -1
  19. package/dist/lib/node-esm/testing/index.mjs +2 -2
  20. package/dist/lib/node-esm/translations.mjs +5 -2
  21. package/dist/lib/node-esm/translations.mjs.map +2 -2
  22. package/dist/lib/node-esm/types/index.mjs +1 -1
  23. package/dist/types/src/components/Table/DynamicTable.stories.d.ts +4 -1
  24. package/dist/types/src/components/Table/DynamicTable.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/Table/Relations.stories.d.ts +4 -1
  26. package/dist/types/src/components/Table/Relations.stories.d.ts.map +1 -1
  27. package/dist/types/src/components/Table/Table.d.ts +1 -0
  28. package/dist/types/src/components/Table/Table.d.ts.map +1 -1
  29. package/dist/types/src/components/Table/Table.stories.d.ts +6 -3
  30. package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
  31. package/dist/types/src/components/Table/TableToolbar.d.ts +3 -1
  32. package/dist/types/src/components/Table/TableToolbar.d.ts.map +1 -1
  33. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts +7 -4
  34. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts.map +1 -1
  35. package/dist/types/src/components/testing.d.ts +2 -3
  36. package/dist/types/src/components/testing.d.ts.map +1 -1
  37. package/dist/types/src/hooks/useTableModel.d.ts.map +1 -1
  38. package/dist/types/src/model/index.d.ts +1 -0
  39. package/dist/types/src/model/index.d.ts.map +1 -1
  40. package/dist/types/src/model/table-model.d.ts +15 -8
  41. package/dist/types/src/model/table-model.d.ts.map +1 -1
  42. package/dist/types/src/model/table-presentation.d.ts.map +1 -1
  43. package/dist/types/src/model/table-view-state.d.ts +19 -0
  44. package/dist/types/src/model/table-view-state.d.ts.map +1 -0
  45. package/dist/types/src/translations.d.ts +4 -1
  46. package/dist/types/src/translations.d.ts.map +1 -1
  47. package/dist/types/src/types/Table.d.ts +3 -11
  48. package/dist/types/src/types/Table.d.ts.map +1 -1
  49. package/dist/types/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +43 -44
  51. package/src/components/Table/Table.stories.tsx +3 -3
  52. package/src/components/Table/Table.tsx +1 -0
  53. package/src/components/Table/TableToolbar.tsx +38 -5
  54. package/src/components/TableCellEditor/TableCellEditor.stories.tsx +2 -2
  55. package/src/components/testing.ts +8 -6
  56. package/src/hooks/useTableModel.ts +4 -2
  57. package/src/model/index.ts +1 -0
  58. package/src/model/table-model.test.ts +93 -5
  59. package/src/model/table-model.ts +36 -20
  60. package/src/model/table-presentation.test.ts +6 -4
  61. package/src/model/table-presentation.ts +30 -0
  62. package/src/model/table-view-state.ts +30 -0
  63. package/src/translations.ts +4 -1
  64. package/src/types/Table.ts +17 -19
  65. package/dist/lib/browser/chunk-5V5FV3GS.mjs.map +0 -7
  66. package/dist/lib/browser/chunk-62PYOJPY.mjs.map +0 -7
  67. package/dist/lib/node-esm/chunk-5H6GHWNR.mjs.map +0 -7
  68. package/dist/lib/node-esm/chunk-7LMOZUTS.mjs.map +0 -7
@@ -2,6 +2,7 @@ import {
2
2
  BUTTON_IDENTIFIERS,
3
3
  CONTROL_IDENTIFIERS,
4
4
  CheckboxStory,
5
+ FieldSortSchema,
5
6
  SwitchStory,
6
7
  TableModel,
7
8
  TablePresentation,
@@ -13,13 +14,14 @@ import {
13
14
  getSortValue,
14
15
  tableButtons,
15
16
  tableControls,
17
+ tableSortAspect,
16
18
  useAddRow,
17
19
  useProjectionModel,
18
20
  useTableModel
19
- } from "./chunk-5V5FV3GS.mjs";
21
+ } from "./chunk-K4J2CKTZ.mjs";
20
22
  import {
21
23
  Table_exports
22
- } from "./chunk-62PYOJPY.mjs";
24
+ } from "./chunk-VV3P3ADH.mjs";
23
25
  import "./chunk-J5LGTIGS.mjs";
24
26
 
25
27
  // src/components/Table/Table.tsx
@@ -1135,10 +1137,11 @@ TableContent.displayName = TABLE_CONTENT_NAME;
1135
1137
  import { Atom as Atom3, RegistryContext as RegistryContext2 } from "@effect-atom/atom-react";
1136
1138
  import React8, { useContext as useContext2, useEffect as useEffect4, useMemo as useMemo5 } from "react";
1137
1139
  import { composable as composable2, composableProps as composableProps2 } from "@dxos/react-ui";
1138
- import { Menu, createGapSeparator, createMenuAction, useMenuActions } from "@dxos/react-ui-menu";
1140
+ import { Menu, createGapSeparator, createMenuAction, createMenuItemGroup, useMenuActions } from "@dxos/react-ui-menu";
1139
1141
  import { translationKey as translationKey4 } from "#translations";
1140
- var createTableToolbarActions = ({ stateAtom, onAdd, onSave, customActions }) => Atom3.make((get) => {
1142
+ var createTableToolbarActions = ({ stateAtom, onAdd, onSave, onExport, customActions }) => Atom3.make((get) => {
1141
1143
  const nodes = [];
1144
+ const edges = [];
1142
1145
  if (onAdd) {
1143
1146
  const add = createMenuAction("add-row", onAdd, {
1144
1147
  type: "add-row",
@@ -1152,6 +1155,11 @@ var createTableToolbarActions = ({ stateAtom, onAdd, onSave, customActions }) =>
1152
1155
  testId: "table.toolbar.add-row"
1153
1156
  });
1154
1157
  nodes.push(add);
1158
+ edges.push({
1159
+ source: "root",
1160
+ target: add.id,
1161
+ relation: "child"
1162
+ });
1155
1163
  }
1156
1164
  if (onSave) {
1157
1165
  const state = get(stateAtom);
@@ -1169,14 +1177,68 @@ var createTableToolbarActions = ({ stateAtom, onAdd, onSave, customActions }) =>
1169
1177
  hidden: !state.viewDirty
1170
1178
  });
1171
1179
  nodes.push(save);
1180
+ edges.push({
1181
+ source: "root",
1182
+ target: save.id,
1183
+ relation: "child"
1184
+ });
1185
+ }
1186
+ if (onExport) {
1187
+ const exportGroup = createMenuItemGroup("export-rows", {
1188
+ label: [
1189
+ "export-rows.menu",
1190
+ {
1191
+ ns: translationKey4
1192
+ }
1193
+ ],
1194
+ icon: "ph--export--regular",
1195
+ iconOnly: true,
1196
+ variant: "dropdownMenu"
1197
+ });
1198
+ nodes.push(exportGroup);
1199
+ edges.push({
1200
+ source: "root",
1201
+ target: exportGroup.id,
1202
+ relation: "child"
1203
+ });
1204
+ const formats = [
1205
+ {
1206
+ format: "csv",
1207
+ type: "export-csv",
1208
+ label: "export-rows-csv.menu"
1209
+ },
1210
+ {
1211
+ format: "json",
1212
+ type: "export-json",
1213
+ label: "export-rows-json.menu"
1214
+ },
1215
+ {
1216
+ format: "xml",
1217
+ type: "export-xml",
1218
+ label: "export-rows-xml.menu"
1219
+ }
1220
+ ];
1221
+ for (const { format, type, label } of formats) {
1222
+ const action = createMenuAction(type, () => onExport(format), {
1223
+ type,
1224
+ label: [
1225
+ label,
1226
+ {
1227
+ ns: translationKey4
1228
+ }
1229
+ ]
1230
+ });
1231
+ nodes.push(action);
1232
+ edges.push({
1233
+ source: exportGroup.id,
1234
+ target: action.id,
1235
+ relation: "child"
1236
+ });
1237
+ }
1172
1238
  }
1173
1239
  const gap = createGapSeparator();
1174
1240
  nodes.push(...gap.nodes);
1175
- const edges = nodes.map(({ id: target }) => ({
1176
- source: "root",
1177
- target,
1178
- relation: "child"
1179
- }));
1241
+ edges.push(...gap.edges);
1180
1242
  if (customActions) {
1181
1243
  const custom = get(customActions);
1182
1244
  nodes.push(...custom.nodes);
@@ -1187,7 +1249,7 @@ var createTableToolbarActions = ({ stateAtom, onAdd, onSave, customActions }) =>
1187
1249
  edges
1188
1250
  };
1189
1251
  });
1190
- var TableToolbar = composable2(({ attendableId, viewDirty, onAdd, onSave, customActions, ...props }, forwardedRef) => {
1252
+ var TableToolbar = composable2(({ attendableId, viewDirty, onAdd, onSave, onExport, customActions, ...props }, forwardedRef) => {
1191
1253
  const registry = useContext2(RegistryContext2);
1192
1254
  const stateAtom = useMemo5(() => Atom3.make({
1193
1255
  viewDirty
@@ -1205,11 +1267,13 @@ var TableToolbar = composable2(({ attendableId, viewDirty, onAdd, onSave, custom
1205
1267
  stateAtom,
1206
1268
  onAdd,
1207
1269
  onSave,
1270
+ onExport,
1208
1271
  customActions
1209
1272
  }), [
1210
1273
  stateAtom,
1211
1274
  onAdd,
1212
1275
  onSave,
1276
+ onExport,
1213
1277
  customActions
1214
1278
  ]);
1215
1279
  const menuActions = useMenuActions(actionsCreator);
@@ -1325,6 +1389,7 @@ export {
1325
1389
  CONTROL_IDENTIFIERS,
1326
1390
  CheckboxStory,
1327
1391
  DynamicTable,
1392
+ FieldSortSchema,
1328
1393
  ModalController,
1329
1394
  SwitchStory,
1330
1395
  Table,
@@ -1341,6 +1406,7 @@ export {
1341
1406
  narrowSchema,
1342
1407
  tableButtons,
1343
1408
  tableControls,
1409
+ tableSortAspect,
1344
1410
  touch,
1345
1411
  useAddRow,
1346
1412
  useProjectionModel,