@dxos/react-ui-table 0.7.1 → 0.7.2-staging.6d26b2a
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.
- package/dist/lib/browser/{chunk-A5W4XWPD.mjs → chunk-EWGUNGJC.mjs} +8 -6
- package/dist/lib/browser/chunk-EWGUNGJC.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +22 -11
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{chunk-32IGMRME.cjs → chunk-A2N7XWW6.cjs} +11 -9
- package/dist/lib/node/chunk-A2N7XWW6.cjs.map +7 -0
- package/dist/lib/node/index.cjs +23 -12
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/types/index.cjs +2 -2
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{chunk-DWQ4KGLD.mjs → chunk-SABDOZ6I.mjs} +8 -6
- package/dist/lib/node-esm/chunk-SABDOZ6I.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +22 -11
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -1
- package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +3 -2
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/playwright/TableManager.d.ts +17 -0
- package/dist/types/src/playwright/TableManager.d.ts.map +1 -0
- package/dist/types/src/playwright/playwright.config.d.ts +3 -0
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
- package/dist/types/src/playwright/smoke.spec.d.ts +2 -0
- package/dist/types/src/playwright/smoke.spec.d.ts.map +1 -0
- package/dist/types/src/types/table.d.ts +9 -7
- package/dist/types/src/types/table.d.ts.map +1 -1
- package/dist/types/src/util/grid.d.ts +3 -3
- package/dist/types/src/util/grid.d.ts.map +1 -1
- package/dist/types/src/util/table-buttons.d.ts.map +1 -1
- package/dist/types/src/util/table.d.ts +5 -2
- package/dist/types/src/util/table.d.ts.map +1 -1
- package/package.json +38 -39
- package/src/_deprecated/components/ColumnMenu/ColumnMenu.stories.tsx +1 -1
- package/src/_deprecated/components/ColumnMenu/ColumnSettings.stories.tsx +1 -1
- package/src/_deprecated/components/Table/Table.stories.tsx +1 -1
- package/src/components/Table/ColumnActionsMenu.tsx +11 -5
- package/src/components/Table/RowActionsMenu.tsx +1 -1
- package/src/components/Table/Table.stories.tsx +5 -3
- package/src/components/Table/Table.tsx +2 -2
- package/src/playwright/TableManager.ts +60 -0
- package/src/playwright/playwright.config.ts +18 -0
- package/src/playwright/smoke.spec.ts +105 -0
- package/src/types/table.ts +12 -3
- package/src/util/grid.ts +3 -3
- package/src/util/table-buttons.ts +9 -4
- package/src/util/table-controls.ts +1 -1
- package/src/util/table.ts +11 -3
- package/dist/lib/browser/chunk-A5W4XWPD.mjs.map +0 -7
- package/dist/lib/node/chunk-32IGMRME.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-DWQ4KGLD.mjs.map +0 -7
|
@@ -2,17 +2,19 @@
|
|
|
2
2
|
import { ref, S, TypedObject } from "@dxos/echo-schema";
|
|
3
3
|
import { ThreadType } from "@dxos/plugin-space";
|
|
4
4
|
import { ViewType } from "@dxos/schema";
|
|
5
|
+
var TableSchema = S.Struct({
|
|
6
|
+
id: S.String,
|
|
7
|
+
name: S.optional(S.String),
|
|
8
|
+
view: S.optional(ref(ViewType)),
|
|
9
|
+
threads: S.optional(S.Array(ref(ThreadType)))
|
|
10
|
+
});
|
|
5
11
|
var TableType = class extends TypedObject({
|
|
6
12
|
typename: "dxos.org/type/Table",
|
|
7
13
|
version: "0.1.0"
|
|
8
|
-
})({
|
|
9
|
-
name: S.optional(S.String),
|
|
10
|
-
view: S.optional(ref(ViewType)),
|
|
11
|
-
threads: S.optional(S.mutable(S.Array(ref(ThreadType))))
|
|
12
|
-
}) {
|
|
14
|
+
})(TableSchema.fields) {
|
|
13
15
|
};
|
|
14
16
|
|
|
15
17
|
export {
|
|
16
18
|
TableType
|
|
17
19
|
};
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
20
|
+
//# sourceMappingURL=chunk-EWGUNGJC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/table.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { ref, S, TypedObject } from '@dxos/echo-schema';\nimport { ThreadType } from '@dxos/plugin-space';\nimport { ViewType } from '@dxos/schema';\n\n// TODO(burdon): Factor out echo dependency and define pattern for react-ui-xxx.\nconst TableSchema = S.Struct({\n id: S.String,\n name: S.optional(S.String),\n view: S.optional(ref(ViewType)),\n threads: S.optional(S.Array(ref(ThreadType))),\n});\n\ntype _TableType = S.Schema.Type<typeof TableSchema>;\n\nexport class TableType extends TypedObject({\n typename: 'dxos.org/type/Table',\n version: '0.1.0',\n})(TableSchema.fields) {}\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,KAAKC,GAAGC,mBAAmB;AACpC,SAASC,kBAAkB;AAC3B,SAASC,gBAAgB;AAGzB,IAAMC,cAAcC,EAAEC,OAAO;EAC3BC,IAAIF,EAAEG;EACNC,MAAMJ,EAAEK,SAASL,EAAEG,MAAM;EACzBG,MAAMN,EAAEK,SAASE,IAAIC,QAAAA,CAAAA;EACrBC,SAAST,EAAEK,SAASL,EAAEU,MAAMH,IAAII,UAAAA,CAAAA,CAAAA;AAClC,CAAA;AAIO,IAAMC,YAAN,cAAwBC,YAAY;EACzCC,UAAU;EACVC,SAAS;AACX,CAAA,EAAGhB,YAAYiB,MAAM,EAAA;AAAG;",
|
|
6
|
+
"names": ["ref", "S", "TypedObject", "ThreadType", "ViewType", "TableSchema", "S", "Struct", "id", "String", "name", "optional", "view", "ref", "ViewType", "threads", "Array", "ThreadType", "TableType", "TypedObject", "typename", "version", "fields"]
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TableType
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EWGUNGJC.mjs";
|
|
4
4
|
|
|
5
5
|
// packages/ui/react-ui-table/src/translations.ts
|
|
6
6
|
var translationKey = "table";
|
|
@@ -60,14 +60,19 @@ var ColumnActionsMenu = ({ model }) => {
|
|
|
60
60
|
}, /* @__PURE__ */ React.createElement(DropdownMenu.VirtualTrigger, {
|
|
61
61
|
virtualRef: model.modalController.trigger
|
|
62
62
|
}), /* @__PURE__ */ React.createElement(DropdownMenu.Portal, null, /* @__PURE__ */ React.createElement(DropdownMenu.Content, null, /* @__PURE__ */ React.createElement(DropdownMenu.Viewport, null, (!isCurrentColumnSorted || currentSort?.direction === "asc") && /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
|
|
63
|
+
"data-testid": "column-sort-descending",
|
|
63
64
|
onClick: () => model.setSort(state.fieldId, "desc")
|
|
64
65
|
}, t("column action sort descending")), (!isCurrentColumnSorted || currentSort?.direction === "desc") && /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
|
|
66
|
+
"data-testid": "column-sort-ascending",
|
|
65
67
|
onClick: () => model.setSort(state.fieldId, "asc")
|
|
66
68
|
}, t("column action sort ascending")), isCurrentColumnSorted && /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
|
|
69
|
+
"data-testid": "column-clear-sort",
|
|
67
70
|
onClick: () => model.clearSort()
|
|
68
71
|
}, t("column action clear sorting")), model.getColumnCount() > 1 && /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
|
|
72
|
+
"data-testid": "column-delete",
|
|
69
73
|
onClick: () => model.deleteColumn(state.fieldId)
|
|
70
74
|
}, t("column action delete")), /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
|
|
75
|
+
"data-testid": "column-settings",
|
|
71
76
|
onClick: () => model.modalController.openColumnSettings()
|
|
72
77
|
}, t("column action settings"))), /* @__PURE__ */ React.createElement(DropdownMenu.Arrow, null))));
|
|
73
78
|
};
|
|
@@ -155,6 +160,7 @@ var RowActionsMenu = ({ model }) => {
|
|
|
155
160
|
}, /* @__PURE__ */ React3.createElement(DropdownMenu3.VirtualTrigger, {
|
|
156
161
|
virtualRef: model.modalController.trigger
|
|
157
162
|
}), /* @__PURE__ */ React3.createElement(DropdownMenu3.Content, null, /* @__PURE__ */ React3.createElement(DropdownMenu3.Viewport, null, /* @__PURE__ */ React3.createElement(DropdownMenu3.Item, {
|
|
163
|
+
"data-testid": "row-menu-delete",
|
|
158
164
|
onClick: () => model.deleteRow(state.rowIndex)
|
|
159
165
|
}, t(hasSelection ? "bulk delete row label" : "delete row label"))), /* @__PURE__ */ React3.createElement(DropdownMenu3.Arrow, null)));
|
|
160
166
|
};
|
|
@@ -225,12 +231,12 @@ import { PublicKey } from "@dxos/react-client";
|
|
|
225
231
|
import { create } from "@dxos/react-client/echo";
|
|
226
232
|
import { createFieldId, createView, ViewProjection } from "@dxos/schema";
|
|
227
233
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/ui/react-ui-table/src/util/table.ts";
|
|
228
|
-
var initializeTable = ({ space, table }) => {
|
|
234
|
+
var initializeTable = ({ space, table, initialRow = true }) => {
|
|
229
235
|
log.info("initializeTable", {
|
|
230
236
|
table
|
|
231
237
|
}, {
|
|
232
238
|
F: __dxlog_file,
|
|
233
|
-
L:
|
|
239
|
+
L: 32,
|
|
234
240
|
S: void 0,
|
|
235
241
|
C: (f, a) => f(...a)
|
|
236
242
|
});
|
|
@@ -279,7 +285,9 @@ var initializeTable = ({ space, table }) => {
|
|
|
279
285
|
title: "Manager"
|
|
280
286
|
}
|
|
281
287
|
});
|
|
282
|
-
|
|
288
|
+
if (initialRow) {
|
|
289
|
+
space.db.add(create(contactSchema, {}));
|
|
290
|
+
}
|
|
283
291
|
return contactSchema;
|
|
284
292
|
};
|
|
285
293
|
|
|
@@ -294,9 +302,9 @@ var ICONS = {
|
|
|
294
302
|
rowMenu: "ph--dots-three--regular",
|
|
295
303
|
newColumn: "ph--plus--regular"
|
|
296
304
|
};
|
|
297
|
-
var createButtonHtml = ({ button, value = "", disabled = false }) => {
|
|
305
|
+
var createButtonHtml = ({ button, value = "", disabled = false, testId }) => {
|
|
298
306
|
const buttonClasses = "ch-button is-6 pli-0.5 min-bs-0 absolute inset-block-1 inline-end-2";
|
|
299
|
-
return `<button class="${buttonClasses}" ${TABLE_ATTRS[button]}="${value}" ${disabled ? "disabled" : ""}><svg><use href="/icons.svg#${ICONS[button]}"/></svg></button>`;
|
|
307
|
+
return `<button class="${buttonClasses}" ${TABLE_ATTRS[button]}="${value}" data-testid="${testId}" ${disabled ? "disabled" : ""}><svg><use href="/icons.svg#${ICONS[button]}"/></svg></button>`;
|
|
300
308
|
};
|
|
301
309
|
var tableButtons = {
|
|
302
310
|
columnSettings: {
|
|
@@ -304,7 +312,8 @@ var tableButtons = {
|
|
|
304
312
|
icon: ICONS.columnSettings,
|
|
305
313
|
render: ({ fieldId }) => createButtonHtml({
|
|
306
314
|
button: "columnSettings",
|
|
307
|
-
value: fieldId
|
|
315
|
+
value: fieldId,
|
|
316
|
+
testId: "table-column-settings-button"
|
|
308
317
|
})
|
|
309
318
|
},
|
|
310
319
|
rowMenu: {
|
|
@@ -312,7 +321,8 @@ var tableButtons = {
|
|
|
312
321
|
icon: ICONS.rowMenu,
|
|
313
322
|
render: ({ rowIndex }) => createButtonHtml({
|
|
314
323
|
button: "rowMenu",
|
|
315
|
-
value: rowIndex.toString()
|
|
324
|
+
value: rowIndex.toString(),
|
|
325
|
+
testId: "table-row-menu-button"
|
|
316
326
|
})
|
|
317
327
|
},
|
|
318
328
|
addColumn: {
|
|
@@ -320,7 +330,8 @@ var tableButtons = {
|
|
|
320
330
|
icon: ICONS.newColumn,
|
|
321
331
|
render: ({ disabled } = {}) => createButtonHtml({
|
|
322
332
|
button: "newColumn",
|
|
323
|
-
disabled
|
|
333
|
+
disabled,
|
|
334
|
+
testId: "table-new-column-button"
|
|
324
335
|
})
|
|
325
336
|
}
|
|
326
337
|
};
|
|
@@ -471,7 +482,7 @@ var frozen = {
|
|
|
471
482
|
var TableRoot = ({ children, role }) => {
|
|
472
483
|
return /* @__PURE__ */ React5.createElement("div", {
|
|
473
484
|
role: "none",
|
|
474
|
-
className: mx("relative border-bs !border-separator", role === "section" ? "attention-surface overflow-hidden [&_.dx-grid]:max-is-
|
|
485
|
+
className: mx("relative border-bs !border-separator", role === "section" ? "attention-surface overflow-hidden [&_.dx-grid]:max-is-[--dx-grid-content-inline-size]" : "flex flex-col [&_.dx-grid]:grow [&_.dx-grid]:max-is-[--dx-grid-content-inline-size] [&_.dx-grid]:bs-0 [&_.dx-grid]:max-bs-[--dx-grid-content-block-size]")
|
|
475
486
|
}, children);
|
|
476
487
|
};
|
|
477
488
|
var TableMain = /* @__PURE__ */ forwardRef(({ model, ignoreAttention }, forwardedRef) => {
|
|
@@ -847,7 +858,7 @@ var checkboxAttributes = {
|
|
|
847
858
|
var renderCheckbox = ({ rowIndex, header = false, checked = false, disabled = false }) => {
|
|
848
859
|
const baseClasses = "absolute inset-block-[6px] inline-end-[6px] ch-checkbox";
|
|
849
860
|
const { attributes } = tableControls.checkbox;
|
|
850
|
-
return `<input type="checkbox" class="${baseClasses}" ${attributes.checkbox}="${rowIndex}" ${header ? attributes.header : ""} ${checked ? "checked" : ""} ${disabled ? "disabled" : ""}/>`;
|
|
861
|
+
return `<input type="checkbox" class="${baseClasses}" ${attributes.checkbox}="${rowIndex}" ${header ? attributes.header : ""} ${checked ? "checked" : ""} ${disabled ? "disabled" : ""} data-testid="table-selection"/>`;
|
|
851
862
|
};
|
|
852
863
|
var tableControls = {
|
|
853
864
|
checkbox: {
|