@dxos/react-ui-table 0.9.1-staging.ee54ba693a → 0.11.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.
- package/dist/lib/chunk-types.mjs +65 -0
- package/dist/lib/chunk-types.mjs.map +1 -0
- package/dist/lib/chunk-useTableModel.mjs +1595 -0
- package/dist/lib/chunk-useTableModel.mjs.map +1 -0
- package/dist/lib/index.mjs +1133 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/testing.mjs +88 -0
- package/dist/lib/testing.mjs.map +1 -0
- package/dist/lib/translations.mjs +30 -0
- package/dist/lib/translations.mjs.map +1 -0
- package/dist/lib/types.mjs +2 -0
- package/dist/types/src/components/Table/DynamicTable.d.ts +4 -1
- package/dist/types/src/components/Table/DynamicTable.d.ts.map +1 -1
- package/dist/types/src/components/Table/DynamicTable.stories.d.ts +3 -1
- package/dist/types/src/components/Table/DynamicTable.stories.d.ts.map +1 -1
- package/dist/types/src/components/Table/Relations.stories.d.ts +1 -0
- package/dist/types/src/components/Table/Relations.stories.d.ts.map +1 -1
- package/dist/types/src/components/Table/Table.d.ts +3 -9
- package/dist/types/src/components/Table/Table.d.ts.map +1 -1
- package/dist/types/src/components/Table/Table.stories.d.ts +2 -0
- package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
- package/dist/types/src/components/Table/TableContent.d.ts +1 -1
- package/dist/types/src/components/Table/TableContent.d.ts.map +1 -1
- package/dist/types/src/components/Table/TableContext.d.ts +10 -0
- package/dist/types/src/components/Table/TableContext.d.ts.map +1 -0
- package/dist/types/src/components/Table/TableToolbar.d.ts +1 -1
- package/dist/types/src/components/Table/TableToolbar.d.ts.map +1 -1
- package/dist/types/src/components/Table/index.d.ts +1 -0
- package/dist/types/src/components/Table/index.d.ts.map +1 -1
- package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
- package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +1 -1
- package/dist/types/src/components/testing.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 +8 -1
- package/dist/types/src/hooks/useTableModel.d.ts.map +1 -1
- package/dist/types/src/model/modal-controller.d.ts +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 +42 -7
- package/dist/types/src/model/table-model.d.ts.map +1 -1
- package/dist/types/src/model/table-presentation.d.ts +20 -5
- package/dist/types/src/model/table-presentation.d.ts.map +1 -1
- package/dist/types/src/model/table-view-state.d.ts +5 -1
- package/dist/types/src/model/table-view-state.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/util/dynamic-table.d.ts +1 -1
- package/dist/types/src/util/dynamic-table.d.ts.map +1 -1
- package/dist/types/src/util/table-controls.d.ts +5 -3
- package/dist/types/src/util/table-controls.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +48 -50
- package/src/components/Table/DynamicTable.stories.tsx +59 -1
- package/src/components/Table/DynamicTable.tsx +16 -8
- package/src/components/Table/Relations.stories.tsx +2 -2
- package/src/components/Table/Table.stories.tsx +76 -2
- package/src/components/Table/Table.tsx +3 -15
- package/src/components/Table/TableContent.tsx +6 -5
- package/src/components/Table/TableContext.ts +21 -0
- package/src/components/Table/index.ts +2 -0
- package/src/components/TableCellEditor/TableCellEditor.stories.tsx +2 -3
- package/src/components/TableCellEditor/TableCellEditor.tsx +27 -22
- package/src/components/testing.ts +1 -1
- package/src/hooks/useProjectionModel.ts +1 -1
- package/src/hooks/useTableModel.ts +18 -6
- package/src/model/modal-controller.ts +1 -1
- package/src/model/selection-model.ts +1 -1
- package/src/model/table-model.test.ts +3 -3
- package/src/model/table-model.ts +148 -31
- package/src/model/table-presentation.test.ts +59 -1
- package/src/model/table-presentation.ts +171 -81
- package/src/model/table-view-state.ts +2 -2
- package/src/testing/useTestTableModel.ts +1 -1
- package/src/types/index.ts +4 -0
- package/src/util/dynamic-table.test.ts +1 -1
- package/src/util/dynamic-table.ts +1 -1
- package/src/util/table-buttons.ts +1 -1
- package/src/util/table-controls.ts +18 -10
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/browser/chunk-K4J2CKTZ.mjs +0 -1751
- package/dist/lib/browser/chunk-K4J2CKTZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-VV3P3ADH.mjs +0 -67
- package/dist/lib/browser/chunk-VV3P3ADH.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -1416
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/testing/index.mjs +0 -115
- package/dist/lib/browser/testing/index.mjs.map +0 -7
- package/dist/lib/browser/translations.mjs +0 -39
- package/dist/lib/browser/translations.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -8
- package/dist/lib/browser/types/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-E6V274ZW.mjs +0 -1753
- package/dist/lib/node-esm/chunk-E6V274ZW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RPEWNOZZ.mjs +0 -68
- package/dist/lib/node-esm/chunk-RPEWNOZZ.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -1417
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/testing/index.mjs +0 -116
- package/dist/lib/node-esm/testing/index.mjs.map +0 -7
- package/dist/lib/node-esm/translations.mjs +0 -40
- package/dist/lib/node-esm/translations.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -9
- package/dist/lib/node-esm/types/index.mjs.map +0 -7
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Annotation, DXN, JsonSchema, Obj, Ref, Type, View } from "@dxos/echo";
|
|
2
|
+
import { ViewAnnotation } from "@dxos/schema";
|
|
3
|
+
import * as Match from "effect/Match";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
6
|
+
import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/Annotation";
|
|
7
|
+
//#region \0rolldown/runtime.js
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __exportAll = (all, no_symbols) => {
|
|
10
|
+
let target = {};
|
|
11
|
+
for (var name in all) __defProp(target, name, {
|
|
12
|
+
get: all[name],
|
|
13
|
+
enumerable: true
|
|
14
|
+
});
|
|
15
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
16
|
+
return target;
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/types/Table.ts
|
|
20
|
+
var Table_exports = /* @__PURE__ */ __exportAll({
|
|
21
|
+
Table: () => Table,
|
|
22
|
+
make: () => make
|
|
23
|
+
});
|
|
24
|
+
var Table = class extends Type.makeObject(DXN.make("org.dxos.type.table", "0.1.0"))(Schema.Struct({
|
|
25
|
+
name: Schema.String.pipe(Schema.optional),
|
|
26
|
+
view: Ref.Ref(View.View).pipe(FormInputAnnotation.set(false)),
|
|
27
|
+
sizes: Schema.Record({
|
|
28
|
+
key: Schema.String,
|
|
29
|
+
value: Schema.Number
|
|
30
|
+
}).pipe(Schema.mutable, FormInputAnnotation.set(false))
|
|
31
|
+
}).pipe(LabelAnnotation.set(["name"]), ViewAnnotation.set(["view"]), Annotation.IconAnnotation.set({
|
|
32
|
+
icon: "ph--table--regular",
|
|
33
|
+
hue: "green"
|
|
34
|
+
}))) {};
|
|
35
|
+
/**
|
|
36
|
+
* Make a table as a view of a data set.
|
|
37
|
+
*/
|
|
38
|
+
var make = ({ name, sizes = {}, view, jsonSchema }) => {
|
|
39
|
+
const table = Obj.make(Table, {
|
|
40
|
+
name,
|
|
41
|
+
view: Ref.make(view),
|
|
42
|
+
sizes
|
|
43
|
+
});
|
|
44
|
+
if (jsonSchema) {
|
|
45
|
+
const schema = JsonSchema.toEffectSchema(jsonSchema);
|
|
46
|
+
const properties = SchemaAST.getPropertySignatures(schema.ast);
|
|
47
|
+
for (const property of properties) {
|
|
48
|
+
const name = property.name.toString();
|
|
49
|
+
if (sizes?.[name]) {
|
|
50
|
+
table.sizes[name] = sizes[name];
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
Match.type().pipe(Match.when({ _tag: "BooleanKeyword" }, () => {
|
|
54
|
+
table.sizes[name] = 100;
|
|
55
|
+
}), Match.when({ _tag: "NumberKeyword" }, () => {
|
|
56
|
+
table.sizes[name] = 100;
|
|
57
|
+
}), Match.orElse(() => {}))(property.type);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return table;
|
|
61
|
+
};
|
|
62
|
+
//#endregion
|
|
63
|
+
export { Table_exports as n, Table as t };
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=chunk-types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-types.mjs","names":[],"sources":["../../src/types/Table.ts"],"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\n// QueryAST is referenced indirectly through `Type.InstanceType<typeof TableSchema>`\n// (Ref.Ref(View.View) → View.View → QueryAST.Query) in the emitted .d.ts; the\n// namespace import keeps the inferred types portable.\n// eslint-disable-next-line unused-imports/no-unused-imports\nimport { Annotation, DXN, JsonSchema, Obj, QueryAST, Ref, Type, View } from '@dxos/echo';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/Annotation';\nimport { type JsonSchema as JsonSchemaType } from '@dxos/echo/JsonSchema';\nimport { SchemaEx } from '@dxos/effect';\nimport { ViewAnnotation } from '@dxos/schema';\n\n// TODO(wittjosiah): Try to clean up this type inference.\nexport class Table extends Type.makeObject<Table>(DXN.make('org.dxos.type.table', '0.1.0'))(\n 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 LabelAnnotation.set(['name']),\n ViewAnnotation.set(['view']),\n Annotation.IconAnnotation.set({ icon: 'ph--table--regular', hue: 'green' }),\n ),\n) {}\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 SchemaEx.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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAa,QAAb,cAA2B,KAAK,WAAkB,IAAI,KAAK,uBAAuB,OAAO,CAAC,CAAC,CACzF,OAAO,OAAO;CACZ,MAAM,OAAO,OAAO,KAAK,OAAO,QAAQ;CAExC,MAAM,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,oBAAoB,IAAI,KAAK,CAAC;CAE5D,OAAO,OAAO,OAAO;EAEnB,KAAK,OAAO;EACZ,OAAO,OAAO;CAChB,CAAC,CAAC,CAAC,KAAK,OAAO,SAAS,oBAAoB,IAAI,KAAK,CAAC;AACxD,CAAC,CAAC,CAAC,KACD,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAC5B,eAAe,IAAI,CAAC,MAAM,CAAC,GAC3B,WAAW,eAAe,IAAI;CAAE,MAAM;CAAsB,KAAK;AAAQ,CAAC,CAC5E,CACF,CAAC,CAAC,CAAC;;;;AAaH,IAAa,QAAQ,EAAE,MAAM,QAAQ,CAAC,GAAG,MAAM,iBAAmC;CAChF,MAAM,QAAQ,IAAI,KAAK,OAAO;EAAE;EAAM,MAAM,IAAI,KAAK,IAAI;EAAG;CAAM,CAAgC;CAGlG,IAAI,YAAY;EACd,MAAM,SAAS,WAAW,eAAe,UAAU;EACnD,MAAM,aAAa,UAAU,sBAAsB,OAAO,GAAG;EAC7D,KAAK,MAAM,YAAY,YAAY;GACjC,MAAM,OAAO,SAAS,KAAK,SAAS;GACpC,IAAI,QAAQ,OAAO;IACjB,MAAM,MAAM,QAAQ,MAAM;IAC1B;GACF;GAEA,MAAM,KAAoB,CAAC,CAAC,KAC1B,MAAM,KAAK,EAAE,MAAM,iBAAiB,SAAS;IAC3C,MAAM,MAAM,QAAQ;GACtB,CAAC,GACD,MAAM,KAAK,EAAE,MAAM,gBAAgB,SAAS;IAC1C,MAAM,MAAM,QAAQ;GACtB,CAAC,GACD,MAAM,aAAa,CAEnB,CAAC,CACH,CAAC,CAAC,SAAS,IAAI;EACjB;CACF;CAEA,OAAO;AACT"}
|