@dxos/react-ui-table 0.8.4-main.1068cf700f → 0.8.4-main.1c7ec43d41
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-OZBLY7XM.mjs → chunk-FBURZBPH.mjs} +17 -23
- package/dist/lib/browser/chunk-FBURZBPH.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GTGYBRJA.mjs → chunk-YGC7LZJN.mjs} +31 -84
- package/dist/lib/browser/chunk-YGC7LZJN.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +197 -234
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +6 -5
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/browser/translations.mjs +36 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -1
- package/dist/lib/node-esm/{chunk-WNZSKIRF.mjs → chunk-DKKMSVKP.mjs} +17 -23
- package/dist/lib/node-esm/chunk-DKKMSVKP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-DPNSZHU5.mjs → chunk-GKIWDEZ7.mjs} +31 -84
- package/dist/lib/node-esm/chunk-GKIWDEZ7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +197 -234
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +6 -5
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/translations.mjs +37 -0
- package/dist/lib/node-esm/translations.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -1
- package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -1
- package/dist/types/src/components/Table/ColumnSettings.d.ts.map +1 -1
- package/dist/types/src/components/Table/DynamicTable.d.ts +2 -2
- package/dist/types/src/components/Table/DynamicTable.d.ts.map +1 -1
- package/dist/types/src/components/Table/DynamicTable.stories.d.ts +20 -22
- package/dist/types/src/components/Table/DynamicTable.stories.d.ts.map +1 -1
- package/dist/types/src/components/Table/Relations.stories.d.ts +82 -82
- package/dist/types/src/components/Table/Relations.stories.d.ts.map +1 -1
- package/dist/types/src/components/Table/RowActionsMenu.d.ts.map +1 -1
- package/dist/types/src/components/Table/Table.d.ts +20 -21
- package/dist/types/src/components/Table/Table.d.ts.map +1 -1
- package/dist/types/src/components/Table/Table.stories.d.ts +84 -84
- package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
- package/dist/types/src/components/Table/TableContent.d.ts +17 -0
- package/dist/types/src/components/Table/TableContent.d.ts.map +1 -0
- package/dist/types/src/components/Table/TableToolbar.d.ts +21 -0
- package/dist/types/src/components/Table/TableToolbar.d.ts.map +1 -0
- package/dist/types/src/components/TableCellEditor/CellValidationMessage.d.ts.map +1 -1
- package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts +3 -3
- package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts.map +1 -1
- package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts +2 -2
- package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
- package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts +22 -24
- package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +0 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/hooks/useAddRow.d.ts +1 -1
- package/dist/types/src/hooks/useAddRow.d.ts.map +1 -1
- package/dist/types/src/hooks/useProjectionModel.d.ts +1 -1
- package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -1
- package/dist/types/src/hooks/useTableModel.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/model/modal-controller.d.ts.map +1 -1
- package/dist/types/src/model/selection-model.d.ts +1 -1
- package/dist/types/src/model/selection-model.d.ts.map +1 -1
- package/dist/types/src/model/table-model.d.ts +5 -4
- package/dist/types/src/model/table-model.d.ts.map +1 -1
- package/dist/types/src/model/table-presentation.d.ts.map +1 -1
- package/dist/types/src/playwright/TableManager.d.ts.map +1 -1
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
- package/dist/types/src/testing/useTestTableModel.d.ts +2 -2
- package/dist/types/src/testing/useTestTableModel.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +19 -21
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Table.d.ts +1 -6
- package/dist/types/src/types/Table.d.ts.map +1 -1
- package/dist/types/src/util/dynamic-table.d.ts +2 -2
- package/dist/types/src/util/dynamic-table.d.ts.map +1 -1
- package/dist/types/src/util/query-ast.d.ts.map +1 -1
- package/dist/types/src/util/schema.d.ts.map +1 -1
- package/dist/types/src/util/signals.d.ts.map +1 -1
- package/dist/types/src/util/sort.d.ts.map +1 -1
- package/dist/types/src/util/table-buttons.d.ts +20 -20
- package/dist/types/src/util/table-buttons.d.ts.map +1 -1
- package/dist/types/src/util/table-controls.d.ts +4 -4
- package/dist/types/src/util/table-controls.d.ts.map +1 -1
- package/dist/types/src/util/tag.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +50 -59
- package/src/components/Table/ColumnActionsMenu.tsx +7 -6
- package/src/components/Table/ColumnSettings.tsx +3 -4
- package/src/components/Table/DynamicTable.stories.tsx +15 -15
- package/src/components/Table/DynamicTable.tsx +10 -18
- package/src/components/Table/Relations.stories.tsx +77 -33
- package/src/components/Table/RowActionsMenu.tsx +3 -2
- package/src/components/Table/Table.stories.tsx +58 -51
- package/src/components/Table/Table.tsx +41 -435
- package/src/components/Table/TableContent.tsx +421 -0
- package/src/components/{TableToolbar → Table}/TableToolbar.tsx +36 -43
- package/src/components/TableCellEditor/CellValidationMessage.tsx +4 -4
- package/src/components/TableCellEditor/FormCellEditor.tsx +14 -7
- package/src/components/TableCellEditor/TableCellEditor.stories.tsx +12 -11
- package/src/components/TableCellEditor/TableCellEditor.tsx +12 -10
- package/src/components/index.ts +0 -1
- package/src/components/testing.ts +10 -10
- package/src/hooks/useAddRow.ts +1 -1
- package/src/hooks/useProjectionModel.ts +3 -3
- package/src/index.ts +0 -4
- package/src/model/table-model.test.ts +5 -6
- package/src/model/table-model.ts +11 -10
- package/src/model/table-presentation.test.ts +5 -6
- package/src/model/table-presentation.ts +12 -12
- package/src/playwright/playwright.config.ts +1 -1
- package/src/playwright/smoke.spec.ts +3 -3
- package/src/testing/useTestTableModel.ts +5 -5
- package/src/translations.ts +19 -21
- package/src/types/Table.ts +12 -23
- package/src/util/dynamic-table.test.ts +4 -4
- package/src/util/dynamic-table.ts +11 -10
- package/src/util/query-ast.ts +3 -0
- package/src/util/table-buttons.ts +1 -1
- package/src/util/table-controls.ts +2 -2
- package/dist/lib/browser/chunk-GTGYBRJA.mjs.map +0 -7
- package/dist/lib/browser/chunk-OZBLY7XM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-DPNSZHU5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WNZSKIRF.mjs.map +0 -7
- package/dist/types/src/components/TableToolbar/TableToolbar.d.ts +0 -21
- package/dist/types/src/components/TableToolbar/TableToolbar.d.ts.map +0 -1
- package/dist/types/src/components/TableToolbar/index.d.ts +0 -2
- package/dist/types/src/components/TableToolbar/index.d.ts.map +0 -1
- package/src/components/TableToolbar/index.ts +0 -5
|
@@ -1,36 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
-
};
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
6
4
|
|
|
7
5
|
// src/types/Table.ts
|
|
8
6
|
var Table_exports = {};
|
|
9
7
|
__export(Table_exports, {
|
|
10
8
|
Table: () => Table,
|
|
11
|
-
TableV1: () => TableV1,
|
|
12
9
|
make: () => make
|
|
13
10
|
});
|
|
14
11
|
import * as Match from "effect/Match";
|
|
15
12
|
import * as Schema from "effect/Schema";
|
|
16
13
|
import * as SchemaAST from "effect/SchemaAST";
|
|
17
|
-
import { Obj, Ref, Type } from "@dxos/echo";
|
|
14
|
+
import { Annotation, JsonSchema, Obj, Ref, Type } from "@dxos/echo";
|
|
15
|
+
import { View } from "@dxos/echo";
|
|
18
16
|
import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
|
|
19
|
-
import {
|
|
17
|
+
import { ViewAnnotation } from "@dxos/schema";
|
|
20
18
|
var Table = Schema.Struct({
|
|
21
19
|
name: Schema.String.pipe(Schema.optional),
|
|
22
|
-
view:
|
|
20
|
+
view: Ref.Ref(View.View).pipe(FormInputAnnotation.set(false)),
|
|
23
21
|
sizes: Schema.Record({
|
|
24
22
|
// TODO(wittjosiah): Should be JsonPath.
|
|
25
23
|
key: Schema.String,
|
|
26
24
|
value: Schema.Number
|
|
27
25
|
}).pipe(Schema.mutable, FormInputAnnotation.set(false))
|
|
28
26
|
}).pipe(Type.object({
|
|
29
|
-
typename: "dxos.
|
|
30
|
-
version: "0.
|
|
27
|
+
typename: "org.dxos.type.table",
|
|
28
|
+
version: "0.1.0"
|
|
31
29
|
}), LabelAnnotation.set([
|
|
32
30
|
"name"
|
|
33
|
-
]), ViewAnnotation.set(
|
|
31
|
+
]), ViewAnnotation.set([
|
|
32
|
+
"view"
|
|
33
|
+
]), Annotation.IconAnnotation.set({
|
|
34
|
+
icon: "ph--table--regular",
|
|
35
|
+
hue: "green"
|
|
36
|
+
}));
|
|
34
37
|
var make = ({ name, sizes = {}, view, jsonSchema }) => {
|
|
35
38
|
const table = Obj.make(Table, {
|
|
36
39
|
name,
|
|
@@ -38,7 +41,7 @@ var make = ({ name, sizes = {}, view, jsonSchema }) => {
|
|
|
38
41
|
sizes
|
|
39
42
|
});
|
|
40
43
|
if (jsonSchema) {
|
|
41
|
-
const schema =
|
|
44
|
+
const schema = JsonSchema.toEffectSchema(jsonSchema);
|
|
42
45
|
const properties = SchemaAST.getPropertySignatures(schema.ast);
|
|
43
46
|
for (const property of properties) {
|
|
44
47
|
const name2 = property.name.toString();
|
|
@@ -60,17 +63,8 @@ var make = ({ name, sizes = {}, view, jsonSchema }) => {
|
|
|
60
63
|
}
|
|
61
64
|
return table;
|
|
62
65
|
};
|
|
63
|
-
var TableV1 = Schema.Struct({
|
|
64
|
-
sizes: Schema.Record({
|
|
65
|
-
key: Schema.String,
|
|
66
|
-
value: Schema.Number
|
|
67
|
-
}).pipe(Schema.mutable)
|
|
68
|
-
}).pipe(Type.object({
|
|
69
|
-
typename: "dxos.org/type/Table",
|
|
70
|
-
version: "0.1.0"
|
|
71
|
-
}));
|
|
72
66
|
|
|
73
67
|
export {
|
|
74
68
|
Table_exports
|
|
75
69
|
};
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
70
|
+
//# sourceMappingURL=chunk-FBURZBPH.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/Table.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Match from 'effect/Match';\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { Annotation, JsonSchema, Obj, Ref, Type } from '@dxos/echo';\nimport { View } from '@dxos/echo';\nimport { FormInputAnnotation, type JsonPath, type JsonSchemaType, LabelAnnotation } from '@dxos/echo/internal';\nimport { ViewAnnotation } from '@dxos/schema';\n\nexport const Table = Schema.Struct({\n name: Schema.String.pipe(Schema.optional),\n\n view: Ref.Ref(View.View).pipe(FormInputAnnotation.set(false)),\n\n sizes: Schema.Record({\n // TODO(wittjosiah): Should be JsonPath.\n key: Schema.String,\n value: Schema.Number,\n }).pipe(Schema.mutable, FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.table',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n ViewAnnotation.set(['view']),\n Annotation.IconAnnotation.set({\n icon: 'ph--table--regular',\n hue: 'green',\n }),\n);\n\nexport interface Table extends Schema.Schema.Type<typeof Table> {}\n\ntype MakeProps = {\n name?: string;\n sizes?: Record<string, number>;\n view: View.View;\n /** Required to auto-size columns. */\n jsonSchema?: JsonSchemaType;\n};\n\n/**\n * Make a table as a view of a data set.\n */\nexport const make = ({ name, sizes = {}, view, jsonSchema }: MakeProps): Table => {\n const table = Obj.make(Table, { name, view: Ref.make(view), sizes } as Obj.MakeProps<typeof Table>);\n\n // Preset sizes.\n if (jsonSchema) {\n const schema = JsonSchema.toEffectSchema(jsonSchema);\n const properties = SchemaAST.getPropertySignatures(schema.ast);\n for (const property of properties) {\n const name = property.name.toString() as JsonPath;\n if (sizes?.[name]) {\n table.sizes[name] = sizes[name];\n continue;\n }\n\n Match.type<SchemaAST.AST>().pipe(\n Match.when({ _tag: 'BooleanKeyword' }, () => {\n table.sizes[name] = 100;\n }),\n Match.when({ _tag: 'NumberKeyword' }, () => {\n table.sizes[name] = 100;\n }),\n Match.orElse(() => {\n // Noop.\n }),\n )(property.type);\n }\n }\n\n return table;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA;;;;;AAIA,YAAYA,WAAW;AACvB,YAAYC,YAAY;AACxB,YAAYC,eAAe;AAE3B,SAASC,YAAYC,YAAYC,KAAKC,KAAKC,YAAY;AACvD,SAASC,YAAY;AACrB,SAASC,qBAAyDC,uBAAuB;AACzF,SAASC,sBAAsB;AAExB,IAAMC,QAAeC,cAAO;EACjCC,MAAaC,cAAOC,KAAYC,eAAQ;EAExCC,MAAMZ,IAAIA,IAAIE,KAAKA,IAAI,EAAEQ,KAAKP,oBAAoBU,IAAI,KAAA,CAAA;EAEtDC,OAAcC,cAAO;;IAEnBC,KAAYP;IACZQ,OAAcC;EAChB,CAAA,EAAGR,KAAYS,gBAAShB,oBAAoBU,IAAI,KAAA,CAAA;AAClD,CAAA,EAAGH,KACDT,KAAKmB,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAlB,gBAAgBS,IAAI;EAAC;CAAO,GAC5BR,eAAeQ,IAAI;EAAC;CAAO,GAC3BhB,WAAW0B,eAAeV,IAAI;EAC5BW,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAgBK,IAAMC,OAAO,CAAC,EAAElB,MAAMM,QAAQ,CAAC,GAAGF,MAAMe,WAAU,MAAa;AACpE,QAAMC,QAAQ7B,IAAI2B,KAAKpB,OAAO;IAAEE;IAAMI,MAAMZ,IAAI0B,KAAKd,IAAAA;IAAOE;EAAM,CAAA;AAGlE,MAAIa,YAAY;AACd,UAAME,SAAS/B,WAAWgC,eAAeH,UAAAA;AACzC,UAAMI,aAAuBC,gCAAsBH,OAAOI,GAAG;AAC7D,eAAWC,YAAYH,YAAY;AACjC,YAAMvB,QAAO0B,SAAS1B,KAAK2B,SAAQ;AACnC,UAAIrB,QAAQN,KAAAA,GAAO;AACjBoB,cAAMd,MAAMN,KAAAA,IAAQM,MAAMN,KAAAA;AAC1B;MACF;AAEAd,MAAM0C,WAAI,EAAkB1B,KACpB2B,WAAK;QAAEC,MAAM;MAAiB,GAAG,MAAA;AACrCV,cAAMd,MAAMN,KAAAA,IAAQ;MACtB,CAAA,GACM6B,WAAK;QAAEC,MAAM;MAAgB,GAAG,MAAA;AACpCV,cAAMd,MAAMN,KAAAA,IAAQ;MACtB,CAAA,GACM+B,aAAO,MAAA;MAEb,CAAA,CAAA,EACAL,SAASE,IAAI;IACjB;EACF;AAEA,SAAOR;AACT;",
|
|
6
|
+
"names": ["Match", "Schema", "SchemaAST", "Annotation", "JsonSchema", "Obj", "Ref", "Type", "View", "FormInputAnnotation", "LabelAnnotation", "ViewAnnotation", "Table", "Struct", "name", "String", "pipe", "optional", "view", "set", "sizes", "Record", "key", "value", "Number", "mutable", "object", "typename", "version", "IconAnnotation", "icon", "hue", "make", "jsonSchema", "table", "schema", "toEffectSchema", "properties", "getPropertySignatures", "ast", "property", "toString", "type", "when", "_tag", "orElse"]
|
|
7
|
+
}
|
|
@@ -6,6 +6,9 @@ var extractOrder = (queryAst) => {
|
|
|
6
6
|
if (queryAst.type === "options") {
|
|
7
7
|
return extractOrder(queryAst.query);
|
|
8
8
|
}
|
|
9
|
+
if (queryAst.type === "from") {
|
|
10
|
+
return extractOrder(queryAst.query);
|
|
11
|
+
}
|
|
9
12
|
return void 0;
|
|
10
13
|
};
|
|
11
14
|
|
|
@@ -69,7 +72,7 @@ var BUTTON_IDENTIFIERS = {
|
|
|
69
72
|
};
|
|
70
73
|
var createButton = ({ attr, data, disabled = false, icon, testId, type: _type = "primary" }) => {
|
|
71
74
|
const dataAttrs = Object.entries(data).map(([k, v]) => `${k}="${v}"`).join(" ");
|
|
72
|
-
return `<button ${attr} data-testid="${testId}" class="dx-button
|
|
75
|
+
return `<button ${attr} data-testid="${testId}" class="dx-button w-6 aspect-square px-0.5 min-h-0" ${dataAttrs} ${disabled ? "disabled" : ""} data-dx-grid-action="accessory"><svg data-size="4"><use href="/icons.svg#${icon}"/></svg></button>`;
|
|
73
76
|
};
|
|
74
77
|
var addColumnButton = {
|
|
75
78
|
attr: BUTTON_IDENTIFIERS.newColumn,
|
|
@@ -182,8 +185,8 @@ var CONTROL_IDENTIFIERS = {
|
|
|
182
185
|
switch: "data-table-switch"
|
|
183
186
|
};
|
|
184
187
|
var BASE_CLASSES = {
|
|
185
|
-
checkbox: "absolute inset-
|
|
186
|
-
switch: "absolute inset-
|
|
188
|
+
checkbox: "absolute inset-y-[.375rem] end-[.375rem] dx-checkbox",
|
|
189
|
+
switch: "absolute inset-y-[.25rem] end-[.25rem] dx-checkbox--switch"
|
|
187
190
|
};
|
|
188
191
|
var renderAttributes = (data) => {
|
|
189
192
|
return Object.entries(data).map(([k, v]) => `${k}="${v}"`).join(" ");
|
|
@@ -380,10 +383,10 @@ var SelectionModel = class extends Resource {
|
|
|
380
383
|
// src/model/table-model.ts
|
|
381
384
|
var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-table/src/model/table-model.ts";
|
|
382
385
|
var createEchoChangeCallback = (table) => ({
|
|
383
|
-
table: (mutate) => Obj.
|
|
386
|
+
table: (mutate) => Obj.update(table, (table2) => mutate(table2)),
|
|
384
387
|
row: (row, mutate) => {
|
|
385
388
|
if (Obj.isObject(row)) {
|
|
386
|
-
Obj.
|
|
389
|
+
Obj.update(row, (row2) => mutate(row2));
|
|
387
390
|
} else {
|
|
388
391
|
mutate(row);
|
|
389
392
|
}
|
|
@@ -448,15 +451,7 @@ var TableModel = class extends Resource2 {
|
|
|
448
451
|
...defaultFeatures,
|
|
449
452
|
...features
|
|
450
453
|
};
|
|
451
|
-
invariant(!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === "single"), "Single selection is not compatible with editable tables.", {
|
|
452
|
-
F: __dxlog_file,
|
|
453
|
-
L: 196,
|
|
454
|
-
S: this,
|
|
455
|
-
A: [
|
|
456
|
-
"!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === 'single')",
|
|
457
|
-
"'Single selection is not compatible with editable tables.'"
|
|
458
|
-
]
|
|
459
|
-
});
|
|
454
|
+
invariant(!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === "single"), "Single selection is not compatible with editable tables.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 94, S: this, A: ["!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === 'single')", "'Single selection is not compatible with editable tables.'"] });
|
|
460
455
|
this._visibleRange = Atom2.make({
|
|
461
456
|
start: {
|
|
462
457
|
row: 0,
|
|
@@ -539,15 +534,7 @@ var TableModel = class extends Resource2 {
|
|
|
539
534
|
}
|
|
540
535
|
get view() {
|
|
541
536
|
const view = this._object.view.target;
|
|
542
|
-
invariant(view, "Table model not initialized", {
|
|
543
|
-
F: __dxlog_file,
|
|
544
|
-
L: 307,
|
|
545
|
-
S: this,
|
|
546
|
-
A: [
|
|
547
|
-
"view",
|
|
548
|
-
"'Table model not initialized'"
|
|
549
|
-
]
|
|
550
|
-
});
|
|
537
|
+
invariant(view, "Table model not initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 186, S: this, A: ["view", "'Table model not initialized'"] });
|
|
551
538
|
return view;
|
|
552
539
|
}
|
|
553
540
|
get table() {
|
|
@@ -607,15 +594,7 @@ var TableModel = class extends Resource2 {
|
|
|
607
594
|
return this._pinnedRows;
|
|
608
595
|
}
|
|
609
596
|
get columnMeta() {
|
|
610
|
-
invariant(this._columnMeta, void 0, {
|
|
611
|
-
F: __dxlog_file,
|
|
612
|
-
L: 380,
|
|
613
|
-
S: this,
|
|
614
|
-
A: [
|
|
615
|
-
"this._columnMeta",
|
|
616
|
-
""
|
|
617
|
-
]
|
|
618
|
-
});
|
|
597
|
+
invariant(this._columnMeta, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 240, S: this, A: ["this._columnMeta", ""] });
|
|
619
598
|
return this._columnMeta;
|
|
620
599
|
}
|
|
621
600
|
get selection() {
|
|
@@ -634,15 +613,7 @@ var TableModel = class extends Resource2 {
|
|
|
634
613
|
await this._selection.open(this._ctx);
|
|
635
614
|
}
|
|
636
615
|
initializeColumnMeta() {
|
|
637
|
-
invariant(this._object.view.target, "View must be loaded before initializing column meta", {
|
|
638
|
-
F: __dxlog_file,
|
|
639
|
-
L: 404,
|
|
640
|
-
S: this,
|
|
641
|
-
A: [
|
|
642
|
-
"this._object.view.target",
|
|
643
|
-
"'View must be loaded before initializing column meta'"
|
|
644
|
-
]
|
|
645
|
-
});
|
|
616
|
+
invariant(this._object.view.target, "View must be loaded before initializing column meta", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 259, S: this, A: ["this._object.view.target", "'View must be loaded before initializing column meta'"] });
|
|
646
617
|
this._columnMeta = Atom2.make((get) => {
|
|
647
618
|
const fields = get(this._projection.fields);
|
|
648
619
|
const meta = Object.fromEntries(fields.map((field, index) => [
|
|
@@ -904,41 +875,17 @@ var TableModel = class extends Resource2 {
|
|
|
904
875
|
};
|
|
905
876
|
} else {
|
|
906
877
|
const currentRow = this._registry.get(this._rows)[row];
|
|
907
|
-
invariant(currentRow, "Invalid row index", {
|
|
908
|
-
F: __dxlog_file,
|
|
909
|
-
L: 692,
|
|
910
|
-
S: this,
|
|
911
|
-
A: [
|
|
912
|
-
"currentRow",
|
|
913
|
-
"'Invalid row index'"
|
|
914
|
-
]
|
|
915
|
-
});
|
|
878
|
+
invariant(currentRow, "Invalid row index", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 533, S: this, A: ["currentRow", "'Invalid row index'"] });
|
|
916
879
|
const snapshot = {
|
|
917
880
|
...getSnapshot(currentRow)
|
|
918
881
|
};
|
|
919
882
|
setValue(snapshot, field.path, transformedValue);
|
|
920
883
|
const schema = Obj.getSchema(currentRow);
|
|
921
|
-
invariant(schema, void 0, {
|
|
922
|
-
F: __dxlog_file,
|
|
923
|
-
L: 698,
|
|
924
|
-
S: this,
|
|
925
|
-
A: [
|
|
926
|
-
"schema",
|
|
927
|
-
""
|
|
928
|
-
]
|
|
929
|
-
});
|
|
884
|
+
invariant(schema, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 539, S: this, A: ["schema", ""] });
|
|
930
885
|
const validationResult = validateSchema(schema, snapshot);
|
|
931
886
|
if (validationResult && validationResult.length > 0) {
|
|
932
887
|
const error = validationResult[0];
|
|
933
|
-
invariant(error.path === field.path, void 0, {
|
|
934
|
-
F: __dxlog_file,
|
|
935
|
-
L: 703,
|
|
936
|
-
S: this,
|
|
937
|
-
A: [
|
|
938
|
-
"error.path === field.path",
|
|
939
|
-
""
|
|
940
|
-
]
|
|
941
|
-
});
|
|
888
|
+
invariant(error.path === field.path, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 543, S: this, A: ["error.path === field.path", ""] });
|
|
942
889
|
return {
|
|
943
890
|
valid: false,
|
|
944
891
|
error: error.message
|
|
@@ -1102,13 +1049,13 @@ var TableModel = class extends Resource2 {
|
|
|
1102
1049
|
const field = this._projection.getFields().find((f) => f.id === inMemorySort.fieldId);
|
|
1103
1050
|
if (field) {
|
|
1104
1051
|
const newQuery = baseQuery.orderBy(Order.property(field.path, inMemorySort.direction));
|
|
1105
|
-
Obj.
|
|
1106
|
-
|
|
1052
|
+
Obj.update(view, (view2) => {
|
|
1053
|
+
view2.query.ast = newQuery.ast;
|
|
1107
1054
|
});
|
|
1108
1055
|
}
|
|
1109
1056
|
} else {
|
|
1110
|
-
Obj.
|
|
1111
|
-
|
|
1057
|
+
Obj.update(view, (view2) => {
|
|
1058
|
+
view2.query.ast = baseQuery.ast;
|
|
1112
1059
|
});
|
|
1113
1060
|
}
|
|
1114
1061
|
this._registry.set(this._inMemorySort, void 0);
|
|
@@ -1316,7 +1263,7 @@ var TablePresentation = class {
|
|
|
1316
1263
|
const targetObj = getValue2(obj, field.path)?.target;
|
|
1317
1264
|
if (targetObj) {
|
|
1318
1265
|
const dxn = Obj2.getDXN(targetObj)?.toString();
|
|
1319
|
-
cell.accessoryHtml = `<div role="none" class="absolute
|
|
1266
|
+
cell.accessoryHtml = `<div role="none" class="absolute end-0 inset-y-0 p-(--dx-grid-cell-content-padding-block)"><dx-anchor dxn=${dxn} class="dx-button w-6 aspect-square min-h-0" data-dx-grid-action="accessory"><dx-icon icon="ph--link-simple--regular"/></dx-anchor></div>`;
|
|
1320
1267
|
}
|
|
1321
1268
|
}
|
|
1322
1269
|
if (props.format === Format3.TypeFormat.Boolean) {
|
|
@@ -1430,7 +1377,7 @@ var TablePresentation = class {
|
|
|
1430
1377
|
value: "",
|
|
1431
1378
|
resizeHandle: "col",
|
|
1432
1379
|
accessoryHtml: `
|
|
1433
|
-
<span class="grow min-
|
|
1380
|
+
<span class="grow min-w-0 truncate">${props.title ?? field.path}</span>
|
|
1434
1381
|
${direction !== void 0 ? tableButtons.sort.render({
|
|
1435
1382
|
fieldId: field.id,
|
|
1436
1383
|
direction
|
|
@@ -1439,7 +1386,7 @@ var TablePresentation = class {
|
|
|
1439
1386
|
fieldId: field.id
|
|
1440
1387
|
})}
|
|
1441
1388
|
`,
|
|
1442
|
-
className: "!bg-
|
|
1389
|
+
className: "!bg-toolbar-surface text-description! [&>div]:flex [&>div]:items-stretch"
|
|
1443
1390
|
};
|
|
1444
1391
|
}
|
|
1445
1392
|
return cells;
|
|
@@ -1490,7 +1437,7 @@ var TablePresentation = class {
|
|
|
1490
1437
|
col: 0,
|
|
1491
1438
|
row: 0
|
|
1492
1439
|
})]: {
|
|
1493
|
-
className: "!bg-
|
|
1440
|
+
className: "!bg-toolbar-surface",
|
|
1494
1441
|
readonly: true,
|
|
1495
1442
|
value: ""
|
|
1496
1443
|
}
|
|
@@ -1506,7 +1453,7 @@ var TablePresentation = class {
|
|
|
1506
1453
|
header: true,
|
|
1507
1454
|
checked: this.model.selection.allRowsSelected
|
|
1508
1455
|
}),
|
|
1509
|
-
className: "!bg-
|
|
1456
|
+
className: "!bg-toolbar-surface",
|
|
1510
1457
|
readonly: true,
|
|
1511
1458
|
value: ""
|
|
1512
1459
|
}
|
|
@@ -1521,7 +1468,7 @@ var TablePresentation = class {
|
|
|
1521
1468
|
accessoryHtml: this.model.features.schemaEditable ? tableButtons.addColumn.render({
|
|
1522
1469
|
disabled: (this.model.projection?.getFields()?.length ?? 0) >= VIEW_FIELD_LIMIT
|
|
1523
1470
|
}) : void 0,
|
|
1524
|
-
className: "!bg-
|
|
1471
|
+
className: "!bg-toolbar-surface",
|
|
1525
1472
|
readonly: true,
|
|
1526
1473
|
value: ""
|
|
1527
1474
|
}
|
|
@@ -1579,7 +1526,7 @@ var cellClassesForRowSelection = (selected, selectionMode) => {
|
|
|
1579
1526
|
if (!selected) {
|
|
1580
1527
|
if (selectionMode === "single") {
|
|
1581
1528
|
return [
|
|
1582
|
-
"
|
|
1529
|
+
"cursor-pointer!"
|
|
1583
1530
|
];
|
|
1584
1531
|
} else {
|
|
1585
1532
|
return void 0;
|
|
@@ -1588,11 +1535,11 @@ var cellClassesForRowSelection = (selected, selectionMode) => {
|
|
|
1588
1535
|
switch (selectionMode) {
|
|
1589
1536
|
case "single":
|
|
1590
1537
|
return [
|
|
1591
|
-
"
|
|
1538
|
+
"dx-grid__cell--no-focus-unfurl !bg-current-surface hover:bg-hover-surface cursor-pointer!"
|
|
1592
1539
|
];
|
|
1593
1540
|
case "multiple":
|
|
1594
1541
|
return [
|
|
1595
|
-
"!bg-
|
|
1542
|
+
"!bg-grid-cell-selected"
|
|
1596
1543
|
];
|
|
1597
1544
|
}
|
|
1598
1545
|
};
|
|
@@ -1619,7 +1566,7 @@ var useAddRow = ({ db, schema }) => {
|
|
|
1619
1566
|
|
|
1620
1567
|
// src/hooks/useProjectionModel.ts
|
|
1621
1568
|
import { useState } from "react";
|
|
1622
|
-
import { Type } from "@dxos/echo";
|
|
1569
|
+
import { JsonSchema, Type } from "@dxos/echo";
|
|
1623
1570
|
import { useAsyncEffect } from "@dxos/react-ui";
|
|
1624
1571
|
import { ProjectionModel, createEchoChangeCallback as createEchoChangeCallback2 } from "@dxos/schema";
|
|
1625
1572
|
var useProjectionModel = (schema, table, registry) => {
|
|
@@ -1627,7 +1574,7 @@ var useProjectionModel = (schema, table, registry) => {
|
|
|
1627
1574
|
useAsyncEffect(async () => {
|
|
1628
1575
|
if (schema && table) {
|
|
1629
1576
|
const view = await table.view.load();
|
|
1630
|
-
const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema :
|
|
1577
|
+
const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : JsonSchema.toJsonSchema(schema);
|
|
1631
1578
|
const change = createEchoChangeCallback2(view, Type.isMutable(schema) ? schema : void 0);
|
|
1632
1579
|
const projection2 = new ProjectionModel({
|
|
1633
1580
|
registry,
|
|
@@ -1745,4 +1692,4 @@ export {
|
|
|
1745
1692
|
useProjectionModel,
|
|
1746
1693
|
useTableModel
|
|
1747
1694
|
};
|
|
1748
|
-
//# sourceMappingURL=chunk-
|
|
1695
|
+
//# sourceMappingURL=chunk-YGC7LZJN.mjs.map
|