@dxos/react-ui-table 0.8.4-main.ead640a → 0.8.4-main.effb148878
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/LICENSE +102 -5
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/browser/chunk-KC62K4WS.mjs +1696 -0
- package/dist/lib/browser/chunk-KC62K4WS.mjs.map +7 -0
- package/dist/lib/browser/chunk-VWQWF3CP.mjs +67 -0
- package/dist/lib/browser/chunk-VWQWF3CP.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1128 -1044
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +35 -46
- 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 +4 -3
- package/dist/lib/node-esm/chunk-62FOU4M7.mjs +1698 -0
- package/dist/lib/node-esm/chunk-62FOU4M7.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/chunk-UBXOF64L.mjs +68 -0
- package/dist/lib/node-esm/chunk-UBXOF64L.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +1128 -1044
- 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 +35 -46
- 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 +4 -3
- package/dist/types/src/components/Table/ColumnActionsMenu.d.ts +1 -2
- package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -1
- package/dist/types/src/components/Table/ColumnSettings.d.ts +2 -2
- package/dist/types/src/components/Table/ColumnSettings.d.ts.map +1 -1
- package/dist/types/src/components/Table/DynamicTable.d.ts +6 -7
- package/dist/types/src/components/Table/DynamicTable.d.ts.map +1 -1
- package/dist/types/src/components/Table/DynamicTable.stories.d.ts +22 -37
- package/dist/types/src/components/Table/DynamicTable.stories.d.ts.map +1 -1
- package/dist/types/src/components/Table/Relations.stories.d.ts +85 -81
- 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 +93 -26
- package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
- package/dist/types/src/components/Table/TableContent.d.ts +18 -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 +1 -1
- package/dist/types/src/components/TableCellEditor/CellValidationMessage.d.ts.map +1 -1
- package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts +10 -12
- package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts.map +1 -1
- package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts +5 -7
- package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
- package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts +24 -26
- 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 +22 -15
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useAddRow.d.ts +5 -6
- package/dist/types/src/hooks/useAddRow.d.ts.map +1 -1
- package/dist/types/src/hooks/useProjectionModel.d.ts +6 -0
- package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -0
- package/dist/types/src/hooks/useTableModel.d.ts +9 -9
- 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 +5 -1
- package/dist/types/src/model/modal-controller.d.ts.map +1 -1
- package/dist/types/src/model/selection-model.d.ts +18 -9
- package/dist/types/src/model/selection-model.d.ts.map +1 -1
- package/dist/types/src/model/table-model.d.ts +104 -25
- package/dist/types/src/model/table-model.d.ts.map +1 -1
- package/dist/types/src/model/table-presentation.d.ts +3 -1
- package/dist/types/src/model/table-presentation.d.ts.map +1 -1
- package/dist/types/src/playwright/TableManager.d.ts +2 -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 +18 -15
- package/dist/types/src/testing/useTestTableModel.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +21 -23
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Table.d.ts +32 -0
- package/dist/types/src/types/Table.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/util/dynamic-table.d.ts +14 -11
- package/dist/types/src/util/dynamic-table.d.ts.map +1 -1
- package/dist/types/src/util/dynamic-table.test.d.ts +2 -0
- package/dist/types/src/util/dynamic-table.test.d.ts.map +1 -0
- package/dist/types/src/util/index.d.ts +2 -0
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/query-ast.d.ts +7 -0
- package/dist/types/src/util/query-ast.d.ts.map +1 -0
- 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 +12 -0
- package/dist/types/src/util/sort.d.ts.map +1 -0
- 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 +69 -78
- package/src/components/Table/ColumnActionsMenu.tsx +17 -12
- package/src/components/Table/ColumnSettings.tsx +8 -9
- package/src/components/Table/DynamicTable.stories.tsx +32 -32
- package/src/components/Table/DynamicTable.tsx +32 -33
- package/src/components/Table/Relations.stories.tsx +116 -82
- package/src/components/Table/RowActionsMenu.tsx +27 -17
- package/src/components/Table/Table.stories.tsx +129 -116
- package/src/components/Table/Table.tsx +43 -407
- package/src/components/Table/TableContent.tsx +426 -0
- package/src/components/Table/TableToolbar.tsx +111 -0
- package/src/components/TableCellEditor/CellValidationMessage.tsx +5 -6
- package/src/components/TableCellEditor/FormCellEditor.tsx +119 -135
- package/src/components/TableCellEditor/TableCellEditor.stories.tsx +29 -22
- package/src/components/TableCellEditor/TableCellEditor.tsx +35 -33
- package/src/components/index.ts +0 -1
- package/src/components/testing.ts +38 -17
- package/src/hooks/index.ts +2 -1
- package/src/hooks/useAddRow.ts +8 -10
- package/src/hooks/useProjectionModel.ts +38 -0
- package/src/hooks/useTableModel.ts +36 -34
- package/src/index.ts +0 -4
- package/src/model/modal-controller.ts +23 -12
- package/src/model/selection-model.ts +75 -44
- package/src/model/table-model.test.ts +77 -55
- package/src/model/table-model.ts +437 -171
- package/src/model/table-presentation.test.ts +54 -50
- package/src/model/table-presentation.ts +44 -40
- package/src/playwright/TableManager.ts +13 -6
- package/src/playwright/playwright.config.ts +1 -1
- package/src/playwright/smoke.spec.ts +59 -13
- package/src/testing/useTestTableModel.ts +49 -43
- package/src/translations.ts +20 -22
- package/src/types/Table.ts +81 -0
- package/src/types/index.ts +1 -1
- package/src/util/dynamic-table.test.ts +63 -0
- package/src/util/dynamic-table.ts +49 -35
- package/src/util/index.ts +2 -0
- package/src/util/query-ast.ts +22 -0
- package/src/util/sort.ts +90 -0
- package/src/util/table-buttons.ts +1 -1
- package/src/util/table-controls.ts +2 -2
- package/dist/lib/browser/chunk-4K7JPALT.mjs +0 -66
- package/dist/lib/browser/chunk-4K7JPALT.mjs.map +0 -7
- package/dist/lib/browser/chunk-OZTXLZGM.mjs +0 -1804
- package/dist/lib/browser/chunk-OZTXLZGM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MK6OVUF6.mjs +0 -67
- package/dist/lib/node-esm/chunk-MK6OVUF6.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-S56Z4V4X.mjs +0 -1805
- package/dist/lib/node-esm/chunk-S56Z4V4X.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/dist/types/src/model/table-sorting.d.ts +0 -52
- package/dist/types/src/model/table-sorting.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -28
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/components/TableToolbar/TableToolbar.tsx +0 -102
- package/src/components/TableToolbar/index.ts +0 -5
- package/src/model/table-sorting.ts +0 -225
- package/src/types/schema.ts +0 -73
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type Completion } from '@codemirror/autocomplete';
|
|
2
|
-
import type * as Schema from 'effect/Schema';
|
|
3
2
|
import React from 'react';
|
|
4
|
-
import type
|
|
3
|
+
import { type Type } from '@dxos/echo';
|
|
5
4
|
import { type DxGridAxis, type DxGridPosition } from '@dxos/lit-grid';
|
|
6
5
|
import { type GridScopedProps } from '@dxos/react-ui-grid';
|
|
7
6
|
import { type ModalController, type TableModel } from '../../model';
|
|
@@ -12,15 +11,14 @@ import { type OnCreateHandler } from './FormCellEditor';
|
|
|
12
11
|
export type QueryResult = Pick<Completion, 'label'> & {
|
|
13
12
|
data: any;
|
|
14
13
|
};
|
|
15
|
-
export type TableCellEditorProps = {
|
|
14
|
+
export type TableCellEditorProps<T extends Type.AnyEntity = Type.AnyEntity> = {
|
|
15
|
+
schema?: T;
|
|
16
16
|
model?: TableModel;
|
|
17
17
|
modals?: ModalController;
|
|
18
|
-
schema?: Schema.Schema.AnyNoContext;
|
|
19
18
|
onFocus?: (axis?: DxGridAxis, delta?: -1 | 0 | 1, cell?: DxGridPosition) => void;
|
|
20
19
|
onCreate?: OnCreateHandler;
|
|
21
20
|
onSave?: () => void;
|
|
22
|
-
client?: Client;
|
|
23
21
|
};
|
|
24
|
-
export declare const TableValueEditor: ({ model, modals,
|
|
25
|
-
export declare const TableCellEditor: ({ model, modals, onFocus, onSave,
|
|
22
|
+
export declare const TableValueEditor: <T extends Type.AnyEntity = Type.AnyEntity>({ __gridScope, schema, model, modals, onFocus, onSave, onCreate, }: GridScopedProps<TableCellEditorProps<T>>) => React.JSX.Element;
|
|
23
|
+
export declare const TableCellEditor: ({ __gridScope, model, modals, onFocus, onSave, }: GridScopedProps<TableCellEditorProps>) => React.JSX.Element;
|
|
26
24
|
//# sourceMappingURL=TableCellEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCellEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/TableCellEditor/TableCellEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,
|
|
1
|
+
{"version":3,"file":"TableCellEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/TableCellEditor/TableCellEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAiD,MAAM,OAAO,CAAC;AAGtE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAML,KAAK,eAAe,EAIrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG;IACpD,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI;IAC5E,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACjF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,IAAI,CAAC,SAAS,uFAQtD,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,sBAoC1C,CAAC;AAEF,eAAO,MAAM,eAAe,qDAMzB,eAAe,CAAC,oBAAoB,CAAC,sBA+JvC,CAAC"}
|
|
@@ -1,43 +1,41 @@
|
|
|
1
1
|
import { type StoryObj } from '@storybook/react-vite';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { type GridEditing } from '@dxos/react-ui-grid';
|
|
4
|
-
type
|
|
4
|
+
type DefaultStoryProps = {
|
|
5
5
|
editing: GridEditing;
|
|
6
6
|
};
|
|
7
7
|
declare const meta: {
|
|
8
8
|
title: string;
|
|
9
|
-
component: ({ editing }:
|
|
10
|
-
render: ({ editing }:
|
|
9
|
+
component: ({ editing }: DefaultStoryProps) => React.JSX.Element;
|
|
10
|
+
render: ({ editing }: DefaultStoryProps) => React.JSX.Element;
|
|
11
11
|
decorators: import("@storybook/react").Decorator[];
|
|
12
12
|
parameters: {
|
|
13
|
+
layout: string;
|
|
13
14
|
translations: [{
|
|
14
15
|
readonly 'en-US': {
|
|
15
|
-
readonly "react-ui-table": {
|
|
16
|
-
readonly 'object
|
|
17
|
-
readonly 'create
|
|
18
|
-
readonly 'table
|
|
19
|
-
readonly 'settings
|
|
20
|
-
readonly 'table
|
|
21
|
-
readonly '
|
|
22
|
-
readonly '
|
|
23
|
-
readonly '
|
|
24
|
-
readonly '
|
|
25
|
-
readonly '
|
|
26
|
-
readonly 'column
|
|
27
|
-
readonly 'column
|
|
28
|
-
readonly 'column
|
|
29
|
-
readonly '
|
|
30
|
-
readonly '
|
|
31
|
-
readonly '
|
|
32
|
-
readonly '
|
|
33
|
-
readonly '
|
|
34
|
-
readonly '
|
|
35
|
-
readonly 'create new object label': "Create new object “{{text}}”";
|
|
36
|
-
readonly 'save view label': "Save changes to view";
|
|
16
|
+
readonly "@dxos/react-ui-table": {
|
|
17
|
+
readonly 'object.placeholder': 'New table';
|
|
18
|
+
readonly 'create-object.label': 'Create table';
|
|
19
|
+
readonly 'table-name.placeholder': 'Table name';
|
|
20
|
+
readonly 'settings.title': 'Table settings';
|
|
21
|
+
readonly 'table-schema.label': 'Type';
|
|
22
|
+
readonly 'continue.label': 'Continue';
|
|
23
|
+
readonly 'create-stack-section.label': 'Create table';
|
|
24
|
+
readonly 'add-row.label': 'Add row';
|
|
25
|
+
readonly 'column-action-sort-descending.menu': 'Sort Descending';
|
|
26
|
+
readonly 'column-action-sort-ascending.menu': 'Sort Ascending';
|
|
27
|
+
readonly 'column-action-clear-sorting.menu': 'Clear Sorting';
|
|
28
|
+
readonly 'column-action-settings.menu': 'Column Settings';
|
|
29
|
+
readonly 'column-action-delete.menu': 'Delete Column';
|
|
30
|
+
readonly 'delete-row.label': 'Delete row';
|
|
31
|
+
readonly 'bulk-delete-row.label': 'Delete selected rows';
|
|
32
|
+
readonly 'column-deleted.label': 'Column deleted';
|
|
33
|
+
readonly 'new-column-button.label': 'Create column';
|
|
34
|
+
readonly 'create-new-object.label': 'Create new object \u201C{{text}}\u201D';
|
|
35
|
+
readonly 'save-view.label': 'Save changes to view';
|
|
37
36
|
};
|
|
38
37
|
};
|
|
39
38
|
}];
|
|
40
|
-
layout: string;
|
|
41
39
|
};
|
|
42
40
|
};
|
|
43
41
|
export default meta;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCellEditor.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/TableCellEditor/TableCellEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TableCellEditor.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/TableCellEditor/TableCellEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAQ,KAAK,WAAW,EAAkB,MAAM,qBAAqB,CAAC;AAW7E,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAmBF,QAAA,MAAM,IAAI;;6BAhByB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDf,CAAC;eAEvB,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC"}
|
|
@@ -1,24 +1,31 @@
|
|
|
1
|
+
import { Atom } from '@effect-atom/atom-react';
|
|
1
2
|
import * as Schema from 'effect/Schema';
|
|
3
|
+
import { Type } from '@dxos/echo';
|
|
2
4
|
import { type ProjectionModel } from '@dxos/schema';
|
|
3
|
-
export declare const TestSchema:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
id: import("@dxos/keys").ObjectIdClass;
|
|
11
|
-
name: Schema.optional<typeof Schema.String>;
|
|
12
|
-
age: Schema.optional<typeof Schema.Number>;
|
|
13
|
-
active: Schema.optional<typeof Schema.Boolean>;
|
|
14
|
-
netWorth: Schema.optional<typeof Schema.Number>;
|
|
15
|
-
}>>;
|
|
16
|
-
export declare const createItems: (n: number) => {
|
|
5
|
+
export declare const TestSchema: Type.Obj<{
|
|
6
|
+
readonly name?: string | undefined;
|
|
7
|
+
readonly age?: number | undefined;
|
|
8
|
+
readonly active?: boolean | undefined;
|
|
9
|
+
readonly netWorth?: number | undefined;
|
|
10
|
+
}, Schema.Struct.Fields>;
|
|
11
|
+
export type TestItem = {
|
|
17
12
|
name: string;
|
|
18
13
|
age: number;
|
|
19
14
|
active: boolean;
|
|
20
15
|
netWorth: number;
|
|
21
|
-
}
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Creates an Atom containing test items data.
|
|
19
|
+
*/
|
|
20
|
+
export declare const createItemsAtom: (n: number) => Atom.Writable<{
|
|
21
|
+
data: TestItem[];
|
|
22
|
+
}, {
|
|
23
|
+
data: TestItem[];
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Creates plain test items (non-reactive).
|
|
27
|
+
*/
|
|
28
|
+
export declare const createItems: (n: number) => TestItem[];
|
|
22
29
|
export type SimulatorProps = {
|
|
23
30
|
projection: ProjectionModel;
|
|
24
31
|
items: any[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/components/testing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/components/testing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAe,IAAI,EAAE,MAAM,YAAY,CAAC;AAI/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,UAAU;;;;;wBAK6C,CAAC;AAErE,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,MAAO,MAAM;UACd,QAAQ,EAAE;;;EAQpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,MAAO,MAAM,KAAG,QAAQ,EAO/C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY,0DAA2D,cAAc,SA6DjG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { type Space } from '@dxos/client/echo';
|
|
1
|
+
import { type Database, type Type } from '@dxos/echo';
|
|
3
2
|
import { type InsertRowResult } from '../model';
|
|
4
|
-
export type
|
|
5
|
-
|
|
6
|
-
schema?:
|
|
3
|
+
export type UseAddRowProps = {
|
|
4
|
+
db?: Database.Database;
|
|
5
|
+
schema?: Type.AnyObj;
|
|
7
6
|
};
|
|
8
7
|
/**
|
|
9
8
|
* Hook that provides a safe row creation function that handles schema validation failures.
|
|
10
9
|
* Returns a callback that attempts to create an object and returns boolean success/failure.
|
|
11
10
|
* Can accept optional data to create objects with specific content (used for committing draft rows).
|
|
12
11
|
*/
|
|
13
|
-
export declare const useAddRow: ({
|
|
12
|
+
export declare const useAddRow: ({ db, schema }: UseAddRowProps) => (data?: any) => InsertRowResult;
|
|
14
13
|
//# sourceMappingURL=useAddRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAddRow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAddRow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAddRow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAddRow.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,QAAQ,EAAO,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACvB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,mBAAoB,cAAc,aAE5C,GAAG,KAAG,eAajB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Registry } from '@effect-atom/atom-react';
|
|
2
|
+
import { Type } from '@dxos/echo';
|
|
3
|
+
import { ProjectionModel } from '@dxos/schema';
|
|
4
|
+
import { type Table } from '../types';
|
|
5
|
+
export declare const useProjectionModel: <S extends Type.AnyEntity>(schema: S | undefined, table: Table.Table | undefined, registry: Registry.Registry) => ProjectionModel | undefined;
|
|
6
|
+
//# sourceMappingURL=useProjectionModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProjectionModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useProjectionModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,eAAe,EAA4B,MAAM,cAAc,CAAC;AAEzE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,IAAI,CAAC,SAAS,UACjD,CAAC,GAAG,SAAS,SACd,KAAK,CAAC,KAAK,GAAG,SAAS,YACpB,QAAQ,CAAC,QAAQ,gCAqB5B,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type
|
|
3
|
-
import { type DataType, type ProjectionModel } from '@dxos/schema';
|
|
1
|
+
import { type Database } from '@dxos/echo';
|
|
2
|
+
import { type ProjectionModel } from '@dxos/schema';
|
|
4
3
|
import { TableModel, type TableModelProps, type TableRow, type TableRowAction } from '../model';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import { type Table } from '../types';
|
|
5
|
+
export type UseTableModelProps<T extends TableRow = TableRow> = {
|
|
6
|
+
object?: Table.Table;
|
|
8
7
|
projection?: ProjectionModel;
|
|
9
|
-
|
|
8
|
+
db?: Database.Database;
|
|
9
|
+
rows?: T[];
|
|
10
10
|
rowActions?: TableRowAction[];
|
|
11
11
|
onSelectionChanged?: (selection: string[]) => void;
|
|
12
12
|
onRowAction?: (actionId: string, data: T) => void;
|
|
13
|
-
} & Pick<TableModelProps<T>, 'features' | 'onInsertRow' | 'onDeleteRows' | '
|
|
14
|
-
export declare const useTableModel: <T extends TableRow = TableRow>({
|
|
13
|
+
} & Pick<TableModelProps<T>, 'features' | 'onInsertRow' | 'onDeleteRows' | 'onColumnDelete' | 'onCellUpdate' | 'onRowOrderChange'>;
|
|
14
|
+
export declare const useTableModel: <T extends TableRow = TableRow>({ object, projection, db, rows, rowActions, features, onSelectionChanged, onRowAction, ...props }: UseTableModelProps<T>) => TableModel<T> | undefined;
|
|
15
15
|
//# sourceMappingURL=useTableModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useTableModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTableModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useTableModel.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,QAAQ,EAAO,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,cAAc,EAEpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI;IAC9D,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACvB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;CACnD,GAAG,IAAI,CACN,eAAe,CAAC,CAAC,CAAC,EAClB,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAAG,kBAAkB,CACrG,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,qGAUxD,kBAAkB,CAAC,CAAC,CAAC,KAAG,UAAU,CAAC,CAAC,CAAC,GAAG,SAgE1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Atom, type Registry } from '@effect-atom/atom-react';
|
|
1
2
|
import { type RefObject } from 'react';
|
|
2
3
|
export type ColumnSettingsMode = {
|
|
3
4
|
type: 'create';
|
|
@@ -22,9 +23,12 @@ export type ModalState = {
|
|
|
22
23
|
type: 'closed';
|
|
23
24
|
};
|
|
24
25
|
export declare class ModalController {
|
|
26
|
+
private readonly _registry;
|
|
25
27
|
private readonly _state;
|
|
26
28
|
private readonly _triggerRef;
|
|
27
|
-
|
|
29
|
+
constructor(registry: Registry.Registry);
|
|
30
|
+
get state(): Atom.Atom<ModalState>;
|
|
31
|
+
get stateValue(): ModalState;
|
|
28
32
|
get trigger(): RefObject<HTMLButtonElement>;
|
|
29
33
|
setTrigger: (trigger: HTMLElement) => void;
|
|
30
34
|
showRowMenu: (rowIndex: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal-controller.d.ts","sourceRoot":"","sources":["../../../../src/model/modal-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"modal-controller.d.ts","sourceRoot":"","sources":["../../../../src/model/modal-controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8E;IAE1G,YAAY,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAGtC;IAED,IAAW,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAExC;IAED,IAAW,UAAU,IAAI,UAAU,CAElC;IAED,IAAW,OAAO,IACW,SAAS,CAAC,iBAAiB,CAAC,CACxD;IAEM,UAAU,YAAa,WAAW,UAEvC;IAEK,WAAW,aAAc,MAAM,UAEpC;IAEK,cAAc,YAAa,MAAM,UAEtC;IAEK,iBAAiB,aAEtB;IAEK,kBAAkB,aAAc,MAAM,YAAY,MAAM,UAE7D;IAEK,kBAAkB,aAYvB;IAEK,KAAK,aAEV;CACH"}
|
|
@@ -1,26 +1,35 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { Atom, type Registry } from '@effect-atom/atom-react';
|
|
2
2
|
import { Resource } from '@dxos/context';
|
|
3
3
|
import { type TableRow } from './table-model';
|
|
4
4
|
export type SelectionMode = 'single' | 'multiple';
|
|
5
5
|
export declare class SelectionModel<T extends TableRow> extends Resource {
|
|
6
|
+
private readonly _registry;
|
|
6
7
|
private readonly _rows;
|
|
7
|
-
private readonly _selectionMode;
|
|
8
|
-
private readonly _initialSelection;
|
|
9
|
-
private readonly _onSelectionChanged?;
|
|
10
8
|
private readonly _selection;
|
|
11
9
|
private readonly _validSelectedIds;
|
|
12
10
|
private readonly _hasSelection;
|
|
13
11
|
private readonly _allSelected;
|
|
14
|
-
|
|
12
|
+
private readonly _selectionMode;
|
|
13
|
+
private readonly _onSelectionChanged?;
|
|
14
|
+
constructor(registry: Registry.Registry, rows: Atom.Atom<T[]>, selectionMode: SelectionMode, initialSelection: string[], onSelectionChanged?: () => void);
|
|
15
15
|
protected _open(): Promise<void>;
|
|
16
|
-
|
|
17
|
-
get
|
|
18
|
-
|
|
16
|
+
/** Get the selection atom for reactive access. */
|
|
17
|
+
get selectionAtom(): Atom.Atom<Set<string>>;
|
|
18
|
+
/** Get the current selection value. */
|
|
19
|
+
get selection(): Set<string>;
|
|
20
|
+
/** Get the hasSelection atom for reactive access. */
|
|
21
|
+
get hasSelectionAtom(): Atom.Atom<boolean>;
|
|
22
|
+
/** Check if there is any selection. */
|
|
23
|
+
get hasSelection(): boolean;
|
|
24
|
+
/** Get the allRowsSelected atom for reactive access. */
|
|
25
|
+
get allRowsSelectedAtom(): Atom.Atom<boolean>;
|
|
26
|
+
/** Check if all rows are selected. */
|
|
27
|
+
get allRowsSelected(): boolean;
|
|
19
28
|
get selectionMode(): SelectionMode;
|
|
20
29
|
getSelectedRows: () => T[];
|
|
21
30
|
isRowIndexSelected: (rowIndex: number) => boolean;
|
|
22
31
|
isObjectSelected: (object: T) => boolean;
|
|
23
32
|
toggleSelectionForRowIndex: (rowIndex: number) => void;
|
|
24
|
-
setSelection: (mode:
|
|
33
|
+
setSelection: (mode: 'all' | 'none') => void;
|
|
25
34
|
}
|
|
26
35
|
//# sourceMappingURL=selection-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-model.d.ts","sourceRoot":"","sources":["../../../../src/model/selection-model.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"selection-model.d.ts","sourceRoot":"","sources":["../../../../src/model/selection-model.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElD,qBAAa,cAAc,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,QAAQ;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAa;IAElD,YACE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EACpB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,kBAAkB,CAAC,EAAE,MAAM,IAAI,EAgChC;IAED,UAAyB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAK9C;IAMD,kDAAkD;IAClD,IAAW,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAEjD;IAED,uCAAuC;IACvC,IAAW,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,CAElC;IAED,qDAAqD;IACrD,IAAW,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAEhD;IAED,uCAAuC;IACvC,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED,wDAAwD;IACxD,IAAW,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAEnD;IAED,sCAAsC;IACtC,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,IAAW,aAAa,IAAI,aAAa,CAExC;IAEM,eAAe,QAAO,CAAC,EAAE,CAG9B;IAEK,kBAAkB,aAAc,MAAM,KAAG,OAAO,CAGrD;IAEK,gBAAgB,WAAY,CAAC,KAAG,OAAO,CAE5C;IAMK,0BAA0B,aAAc,MAAM,KAAG,IAAI,CAe1D;IAEK,YAAY,SAAU,KAAK,GAAG,MAAM,KAAG,IAAI,CAWhD;CACH"}
|
|
@@ -1,12 +1,39 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { Atom, type Registry } from '@effect-atom/atom-react';
|
|
2
2
|
import { Resource } from '@dxos/context';
|
|
3
|
+
import { type Database, type QueryAST, type View } from '@dxos/echo';
|
|
3
4
|
import { type JsonProp, type JsonSchemaType } from '@dxos/echo/internal';
|
|
4
5
|
import { type Label } from '@dxos/react-ui';
|
|
5
6
|
import { type DxGridAxisMeta, type DxGridPlanePosition, type DxGridPosition } from '@dxos/react-ui-grid';
|
|
6
|
-
import { type
|
|
7
|
-
import { Table } from '../types';
|
|
7
|
+
import { type ProjectionModel, type ValidationError } from '@dxos/schema';
|
|
8
|
+
import { type Table } from '../types';
|
|
9
|
+
/**
|
|
10
|
+
* Field sort configuration.
|
|
11
|
+
*/
|
|
12
|
+
export type FieldSortType = {
|
|
13
|
+
fieldId: string;
|
|
14
|
+
direction: QueryAST.OrderDirection;
|
|
15
|
+
};
|
|
8
16
|
import { type SelectionMode, SelectionModel } from './selection-model';
|
|
9
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Callback type for wrapping mutations in Obj.update().
|
|
19
|
+
* Contains separate callbacks for table object and row mutations.
|
|
20
|
+
*/
|
|
21
|
+
export type TableChangeCallback<T extends TableRow> = {
|
|
22
|
+
/** Callback to wrap table object mutations. */
|
|
23
|
+
table: (mutate: (mutableTable: Table.Table) => void) => void;
|
|
24
|
+
/** Callback to wrap row mutations. */
|
|
25
|
+
row: (row: T, mutate: (mutableRow: T) => void) => void;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Creates a change callback for ECHO-backed table and rows.
|
|
29
|
+
* Use this when the table and rows are stored in the ECHO database.
|
|
30
|
+
*/
|
|
31
|
+
export declare const createEchoChangeCallback: <T extends TableRow>(table: Table.Table) => TableChangeCallback<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a change callback that directly mutates objects without wrapping.
|
|
34
|
+
* Use this for plain JavaScript objects (tests, non-ECHO scenarios).
|
|
35
|
+
*/
|
|
36
|
+
export declare const createDirectChangeCallback: <T extends TableRow>(table: Table.Table) => TableChangeCallback<T>;
|
|
10
37
|
export type TableCellType = 'standard' | 'draft' | 'header';
|
|
11
38
|
export type ValidationResult = {
|
|
12
39
|
valid: true;
|
|
@@ -36,11 +63,16 @@ export type TableFeatures = {
|
|
|
36
63
|
};
|
|
37
64
|
export type InsertRowResult = 'draft' | 'final';
|
|
38
65
|
export type TableModelProps<T extends TableRow = TableRow> = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
projection
|
|
66
|
+
registry: Registry.Registry;
|
|
67
|
+
object: Table.Table;
|
|
68
|
+
projection: ProjectionModel;
|
|
69
|
+
db?: Database.Database;
|
|
70
|
+
/**
|
|
71
|
+
* Callbacks to wrap mutations in Obj.update().
|
|
72
|
+
* Use createEchoChangeCallback() for ECHO-backed objects or createDirectChangeCallback() for plain objects.
|
|
73
|
+
*/
|
|
74
|
+
change?: TableChangeCallback<T>;
|
|
42
75
|
features?: Partial<TableFeatures>;
|
|
43
|
-
sorting?: FieldSortType[];
|
|
44
76
|
initialSelection?: string[];
|
|
45
77
|
pinnedRows?: {
|
|
46
78
|
top: number[];
|
|
@@ -50,19 +82,21 @@ export type TableModelProps<T extends TableRow = TableRow> = {
|
|
|
50
82
|
onResolveSchema?: (typename: string) => Promise<JsonSchemaType>;
|
|
51
83
|
onInsertRow?: (data?: any) => InsertRowResult;
|
|
52
84
|
onDeleteRows?: (index: number, obj: T[]) => void;
|
|
53
|
-
|
|
85
|
+
onColumnDelete?: (fieldId: string) => void;
|
|
54
86
|
onCellUpdate?: (cell: DxGridPosition) => void;
|
|
55
87
|
onRowOrderChange?: () => void;
|
|
56
88
|
onRowAction?: (actionId: string, data: T) => void;
|
|
57
89
|
};
|
|
58
90
|
export declare class TableModel<T extends TableRow = TableRow> extends Resource {
|
|
59
|
-
private readonly
|
|
91
|
+
private readonly _registry;
|
|
92
|
+
private readonly _object;
|
|
60
93
|
private readonly _projection;
|
|
61
|
-
private
|
|
94
|
+
private readonly _db?;
|
|
95
|
+
private readonly _change;
|
|
62
96
|
private readonly _visibleRange;
|
|
63
97
|
private readonly _onInsertRow?;
|
|
64
98
|
private readonly _onDeleteRows?;
|
|
65
|
-
private readonly
|
|
99
|
+
private readonly _onColumnDelete?;
|
|
66
100
|
private readonly _onCellUpdate?;
|
|
67
101
|
private readonly _onRowOrderChange?;
|
|
68
102
|
private readonly _onRowAction?;
|
|
@@ -70,41 +104,61 @@ export declare class TableModel<T extends TableRow = TableRow> extends Resource
|
|
|
70
104
|
private readonly _features;
|
|
71
105
|
private readonly _rows;
|
|
72
106
|
private readonly _draftRows;
|
|
107
|
+
private readonly _inMemorySort;
|
|
108
|
+
private readonly _persistedSort;
|
|
73
109
|
private readonly _sorting;
|
|
110
|
+
private readonly _sortedRows;
|
|
111
|
+
private readonly _viewDirty;
|
|
74
112
|
private _pinnedRows;
|
|
75
113
|
private _selection;
|
|
76
114
|
private _columnMeta?;
|
|
77
|
-
|
|
115
|
+
private readonly _cellUpdateCounter;
|
|
116
|
+
constructor({ registry, object, projection, db, change, features, initialSelection, pinnedRows, rowActions, onCellUpdate, onColumnDelete, onDeleteRows, onInsertRow, onRowOrderChange, onRowAction }: TableModelProps<T>);
|
|
78
117
|
get id(): string;
|
|
79
|
-
get view():
|
|
118
|
+
get view(): View.View;
|
|
80
119
|
get table(): Table.Table;
|
|
81
120
|
get projection(): ProjectionModel;
|
|
82
|
-
get
|
|
121
|
+
get db(): Database.Database | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* Atom for reactive access to rows with in-memory sorting applied.
|
|
124
|
+
*/
|
|
125
|
+
get rows(): Atom.Atom<T[]>;
|
|
126
|
+
/**
|
|
127
|
+
* Gets rows with in-memory sorting applied.
|
|
128
|
+
* In-memory sort is local to this instance until saved.
|
|
129
|
+
*/
|
|
130
|
+
getRows(): T[];
|
|
131
|
+
/** Atom for reactive access to cell changes. */
|
|
132
|
+
get cellUpdate(): Atom.Atom<number>;
|
|
133
|
+
/**
|
|
134
|
+
* Change a row using the configured change callback.
|
|
135
|
+
* Use this instead of directly mutating to ensure consistent mutation handling.
|
|
136
|
+
*/
|
|
137
|
+
changeRow(row: T, mutate: (mutableRow: T) => void): void;
|
|
83
138
|
get features(): TableFeatures;
|
|
84
139
|
/**
|
|
85
|
-
*
|
|
140
|
+
* Gets the current sort state.
|
|
141
|
+
* Priority: in-memory sort (local changes) > persisted sort (from query AST).
|
|
86
142
|
*/
|
|
87
|
-
|
|
143
|
+
getSorting(): FieldSortType | undefined;
|
|
88
144
|
/**
|
|
89
145
|
* Gets the row data at the specified display index.
|
|
90
146
|
*/
|
|
91
147
|
getRowAt(displayIndex: number): T | undefined;
|
|
92
148
|
get pinnedRows(): NonNullable<TableModelProps<T>['pinnedRows']>;
|
|
93
|
-
get columnMeta():
|
|
149
|
+
get columnMeta(): Atom.Atom<DxGridAxisMeta>;
|
|
94
150
|
get selection(): SelectionModel<T>;
|
|
95
|
-
/** @reactive */
|
|
96
|
-
get isViewDirty(): boolean;
|
|
97
151
|
get rowActions(): TableRowAction[];
|
|
98
152
|
protected _open(): Promise<void>;
|
|
99
153
|
private initializeColumnMeta;
|
|
100
154
|
private initializeEffects;
|
|
101
155
|
setRows: (obj: T[]) => void;
|
|
102
156
|
getRowCount: () => number;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
157
|
+
getDraftRowCount(): number;
|
|
158
|
+
/** Atom for reactive access to draft rows. */
|
|
159
|
+
get draftRows(): Atom.Atom<DraftRow<T>[]>;
|
|
160
|
+
/** Gets the current draft rows. */
|
|
161
|
+
getDraftRows(): DraftRow<T>[];
|
|
108
162
|
/**
|
|
109
163
|
* Checks if a specific field path has validation errors for a given draft row.
|
|
110
164
|
* @param draftRowIndex - The index of the draft row to check
|
|
@@ -146,6 +200,31 @@ export declare class TableModel<T extends TableRow = TableRow> extends Resource
|
|
|
146
200
|
setColumnWidth(columnIndex: number, width: number): void;
|
|
147
201
|
pinRow(rowIndex: number, side: 'top' | 'bottom'): void;
|
|
148
202
|
unpinRow(rowIndex: number): void;
|
|
203
|
+
/**
|
|
204
|
+
* Sets the sort order for a field in-memory (local to this instance).
|
|
205
|
+
* Use saveView() to persist the sort to the view query.
|
|
206
|
+
*/
|
|
207
|
+
setSort(fieldId: string, direction: QueryAST.OrderDirection): void;
|
|
208
|
+
/**
|
|
209
|
+
* Toggles the sort direction for a field in-memory.
|
|
210
|
+
*/
|
|
211
|
+
toggleSort(fieldId: string): void;
|
|
212
|
+
/**
|
|
213
|
+
* Clears the in-memory sort order.
|
|
214
|
+
*/
|
|
215
|
+
clearSort(): void;
|
|
216
|
+
/**
|
|
217
|
+
* Saves the current in-memory sort to the view query AST.
|
|
218
|
+
* This persists the sort so it becomes the default for all viewers.
|
|
219
|
+
*/
|
|
149
220
|
saveView(): void;
|
|
221
|
+
/**
|
|
222
|
+
* Extracts the base query without order clauses.
|
|
223
|
+
*/
|
|
224
|
+
private _getBaseQuery;
|
|
225
|
+
/**
|
|
226
|
+
* Checks if the view has unsaved changes (in-memory sort differs from persisted sort).
|
|
227
|
+
*/
|
|
228
|
+
getViewDirty(): boolean;
|
|
150
229
|
}
|
|
151
230
|
//# sourceMappingURL=table-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-model.d.ts","sourceRoot":"","sources":["../../../../src/model/table-model.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"table-model.d.ts","sourceRoot":"","sources":["../../../../src/model/table-model.ts"],"names":[],"mappings":"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"}
|