@contember/bindx-dataview 0.1.13 → 0.1.15
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/columnLeaf.d.ts +2 -2
- package/dist/columnLeaf.d.ts.map +1 -1
- package/dist/columns.d.ts +3 -3
- package/dist/columns.d.ts.map +1 -1
- package/dist/contextHooks.d.ts +3 -3
- package/dist/contextHooks.d.ts.map +1 -1
- package/dist/createColumn.d.ts +3 -3
- package/dist/createColumn.d.ts.map +1 -1
- package/dist/createRelationColumn.d.ts +3 -3
- package/dist/createRelationColumn.d.ts.map +1 -1
- package/dist/filterWrappers.d.ts +3 -3
- package/dist/filterWrappers.d.ts.map +1 -1
- package/dist/select/MultiSelect.d.ts.map +1 -1
- package/dist/select/Select.d.ts.map +1 -1
- package/dist/select/SelectDataView.d.ts +2 -2
- package/dist/select/SelectDataView.d.ts.map +1 -1
- package/dist/sortingComponents.d.ts +3 -3
- package/dist/sortingComponents.d.ts.map +1 -1
- package/dist/useDataViewState.d.ts +3 -3
- package/dist/useDataViewState.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/columnLeaf.ts +2 -2
- package/src/columns.tsx +4 -4
- package/src/contextHooks.ts +3 -3
- package/src/createColumn.ts +4 -4
- package/src/createRelationColumn.tsx +4 -4
- package/src/filterWrappers.tsx +4 -4
- package/src/select/MultiSelect.tsx +3 -1
- package/src/select/Select.tsx +3 -1
- package/src/select/SelectDataView.tsx +2 -2
- package/src/sortingComponents.tsx +3 -3
- package/src/useDataViewState.ts +5 -5
package/dist/columnLeaf.d.ts
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
* marker types — a lightweight equivalent of contember-oss's ChildrenAnalyzer.
|
|
8
8
|
*/
|
|
9
9
|
import React from 'react';
|
|
10
|
-
import type {
|
|
10
|
+
import type { FieldRef, FilterHandler, FilterArtifact, EntityAccessor } from '@contember/bindx';
|
|
11
11
|
/** All known column type literals for type narrowing */
|
|
12
12
|
export type ColumnType = 'text' | 'number' | 'date' | 'dateTime' | 'boolean' | 'uuid' | 'isDefined' | 'enum' | 'enumList' | 'hasOne' | 'hasMany' | 'action' | (string & {});
|
|
13
13
|
export interface ColumnLeafProps {
|
|
14
14
|
readonly name: string;
|
|
15
15
|
readonly fieldName: string | null;
|
|
16
|
-
readonly fieldRef:
|
|
16
|
+
readonly fieldRef: FieldRef<unknown> | null;
|
|
17
17
|
readonly sortingField: string | null;
|
|
18
18
|
readonly filterName: string | null;
|
|
19
19
|
readonly filterHandler: FilterHandler<FilterArtifact> | undefined;
|
package/dist/columnLeaf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnLeaf.d.ts","sourceRoot":"","sources":["../src/columnLeaf.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"columnLeaf.d.ts","sourceRoot":"","sources":["../src/columnLeaf.ts"],"names":[],"mappings":"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"}
|
package/dist/columns.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* Relation/action/generic columns use manual `staticRender`.
|
|
10
10
|
*/
|
|
11
11
|
import React, { ReactNode } from 'react';
|
|
12
|
-
import type {
|
|
12
|
+
import type { FieldRef, HasOneRef, HasManyRef, FilterHandler, FilterArtifact, EntityAccessor } from '@contember/bindx';
|
|
13
13
|
import { FIELD_REF_META } from '@contember/bindx-react';
|
|
14
14
|
import { type RelationColumnProps } from './createRelationColumn.jsx';
|
|
15
15
|
import { type ColumnLeafProps } from './columnLeaf.js';
|
|
@@ -37,7 +37,7 @@ export declare function extractRelatedEntityName(ref: unknown): string | null;
|
|
|
37
37
|
*/
|
|
38
38
|
export declare function getRelatedAccessor(item: EntityAccessor<object>, fieldName: string): EntityAccessor<object> | null;
|
|
39
39
|
interface DataGridScalarColumnPropsBase<T> {
|
|
40
|
-
field:
|
|
40
|
+
field: FieldRef<T> | FieldRef<T | undefined>;
|
|
41
41
|
header?: React.ReactNode;
|
|
42
42
|
sortable?: boolean;
|
|
43
43
|
filter?: boolean;
|
|
@@ -101,7 +101,7 @@ export declare const DataGridActionColumn: ((_props: DataGridActionColumnProps)
|
|
|
101
101
|
staticRender: (props: Record<string, unknown>) => React.ReactNode;
|
|
102
102
|
};
|
|
103
103
|
export interface DataGridColumnProps<T> {
|
|
104
|
-
field?:
|
|
104
|
+
field?: FieldRef<T>;
|
|
105
105
|
header?: React.ReactNode;
|
|
106
106
|
sortable?: boolean;
|
|
107
107
|
filter?: boolean;
|
package/dist/columns.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../src/columns.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../src/columns.tsx"],"names":[],"mappings":"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"}
|
package/dist/contextHooks.d.ts
CHANGED
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { DataViewElementData } from './DataViewContext.js';
|
|
8
8
|
import type { FilteringState } from './useDataViewState.js';
|
|
9
|
-
import type { SortingState, SortingDirectionAction, PagingState, PagingInfo, OrderDirection, FilterHandler, FilterArtifact, DataViewLayout,
|
|
9
|
+
import type { SortingState, SortingDirectionAction, PagingState, PagingInfo, OrderDirection, FilterHandler, FilterArtifact, DataViewLayout, FieldRef } from '@contember/bindx';
|
|
10
10
|
export interface DataViewSortingMethods {
|
|
11
|
-
setOrderBy<T>(field:
|
|
11
|
+
setOrderBy<T>(field: FieldRef<T>, action: SortingDirectionAction, append?: boolean): void;
|
|
12
12
|
}
|
|
13
13
|
export declare function useDataViewSortingState(): SortingState;
|
|
14
14
|
export declare function useDataViewSortingMethods(): DataViewSortingMethods;
|
|
15
|
-
export declare function useDataViewSortingDirection<T>(field:
|
|
15
|
+
export declare function useDataViewSortingDirection<T>(field: FieldRef<T>): OrderDirection | null;
|
|
16
16
|
export interface DataViewPagingMethods {
|
|
17
17
|
goToPage(page: number | 'first' | 'next' | 'previous' | 'last'): void;
|
|
18
18
|
setItemsPerPage(count: number | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextHooks.d.ts","sourceRoot":"","sources":["../src/contextHooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAA+D,MAAM,uBAAuB,CAAA;AACxH,OAAO,KAAK,EACX,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"contextHooks.d.ts","sourceRoot":"","sources":["../src/contextHooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAA+D,MAAM,uBAAuB,CAAA;AACxH,OAAO,KAAK,EACX,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,QAAQ,EACR,MAAM,kBAAkB,CAAA;AAMzB,MAAM,WAAW,sBAAsB;IACtC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CACzF;AAED,wBAAgB,uBAAuB,IAAI,YAAY,CAEtD;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,CAGlE;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,IAAI,CAExF;AAMD,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,CAAA;IACrE,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3C,iBAAiB,IAAI,IAAI,CAAA;CACzB;AAED,wBAAgB,sBAAsB,IAAI,WAAW,CAEpD;AAED,wBAAgB,qBAAqB,IAAI,UAAU,CAElD;AAED,wBAAgB,wBAAwB,IAAI,qBAAqB,CAahE;AAMD,MAAM,WAAW,wBAAwB;IACxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;CACvD;AAED,wBAAgB,yBAAyB,IAAI,cAAc,CAE1D;AAED,wBAAgB,2BAA2B,IAAI,wBAAwB,CAGtE;AAED,wBAAgB,gCAAgC,IAAI,WAAW,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;CAAE,CAAC,CAElH;AAMD,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,CAAA;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;IAC3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;CACnD;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,CAOlE;AAED,wBAAgB,2BAA2B,IAAI,wBAAwB,CAMtE;AAMD,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE/D,wBAAgB,mBAAmB,IAAI,SAAS,mBAAmB,EAAE,CAoBpE"}
|
package/dist/createColumn.d.ts
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
* a React component usable inside a DataGrid children render function.
|
|
7
7
|
*/
|
|
8
8
|
import React from 'react';
|
|
9
|
-
import type {
|
|
9
|
+
import type { FieldRef, FilterArtifact, EntityAccessor } from '@contember/bindx';
|
|
10
10
|
import type { ColumnTypeDef } from './columnTypes.js';
|
|
11
11
|
export interface ColumnRenderProps<TValue> {
|
|
12
12
|
readonly value: TValue;
|
|
13
13
|
readonly accessor: EntityAccessor<object>;
|
|
14
|
-
readonly fieldRef:
|
|
14
|
+
readonly fieldRef: FieldRef<unknown> | null;
|
|
15
15
|
readonly fieldName: string | null;
|
|
16
16
|
}
|
|
17
17
|
export interface FilterRenderProps<TFilterArtifact> {
|
|
@@ -23,7 +23,7 @@ export interface CreateColumnConfig<TValue, TFilterArtifact extends FilterArtifa
|
|
|
23
23
|
readonly renderFilter?: (props: FilterRenderProps<TFilterArtifact>) => React.ReactNode;
|
|
24
24
|
}
|
|
25
25
|
export interface ColumnComponentProps<TValue = unknown> {
|
|
26
|
-
field:
|
|
26
|
+
field: FieldRef<TValue>;
|
|
27
27
|
header?: React.ReactNode;
|
|
28
28
|
sortable?: boolean;
|
|
29
29
|
filter?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createColumn.d.ts","sourceRoot":"","sources":["../src/createColumn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"createColumn.d.ts","sourceRoot":"","sources":["../src/createColumn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAiB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAQrD,MAAM,WAAW,iBAAiB,CAAC,MAAM;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IACzC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,iBAAiB,CAAC,eAAe;IACjD,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAA;CACzD;AAMD,MAAM,WAAW,kBAAkB,CAAC,MAAM,EAAE,eAAe,SAAS,cAAc;IACjF,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC1E,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;CACtF;AAMD,MAAM,WAAW,oBAAoB,CAAC,MAAM,GAAG,OAAO;IACrD,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;CACtF;AAMD,MAAM,WAAW,eAAe,CAAC,WAAW,GAAG,MAAM;IACpD,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,IAAI,CAAA;IACvD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;CACjE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,SAAS,cAAc,EAAE,WAAW,GAAG,MAAM,EAChG,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,EAClD,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,GACjD,eAAe,CAAC,WAAW,CAAC,CAgE9B"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* UI layers provide renderFilter and renderCellWrapper via config.
|
|
11
11
|
*/
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import type {
|
|
13
|
+
import type { FieldRef, FilterArtifact, EntityAccessor, SelectionMeta } from '@contember/bindx';
|
|
14
14
|
import type { ColumnTypeDef } from './columnTypes.js';
|
|
15
15
|
import { type ColumnLeafProps } from './columnLeaf.js';
|
|
16
16
|
export interface RelationColumnConfig {
|
|
@@ -30,7 +30,7 @@ export interface RelationCellWrapperContext {
|
|
|
30
30
|
readonly item: EntityAccessor<object>;
|
|
31
31
|
readonly fieldName: string;
|
|
32
32
|
readonly filterName: string;
|
|
33
|
-
readonly fieldRef:
|
|
33
|
+
readonly fieldRef: FieldRef<unknown>;
|
|
34
34
|
}
|
|
35
35
|
export interface RelationColumnProps<TEntity, TSelected> {
|
|
36
36
|
field: object;
|
|
@@ -41,7 +41,7 @@ export interface RelationColumnProps<TEntity, TSelected> {
|
|
|
41
41
|
}
|
|
42
42
|
interface RelationCellConfig {
|
|
43
43
|
/** How to collect selection for the relation (differs between hasOne and hasMany) */
|
|
44
|
-
collectSelection: (renderer: (ref: unknown) => React.ReactNode, fieldRef:
|
|
44
|
+
collectSelection: (renderer: (ref: unknown) => React.ReactNode, fieldRef: FieldRef<unknown>) => void;
|
|
45
45
|
/** How to render the cell content (differs between hasOne and hasMany) */
|
|
46
46
|
renderCell: (accessor: EntityAccessor<object>, fieldName: string, renderer: (ref: unknown) => React.ReactNode) => React.ReactNode;
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRelationColumn.d.ts","sourceRoot":"","sources":["../src/createRelationColumn.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"createRelationColumn.d.ts","sourceRoot":"","sources":["../src/createRelationColumn.tsx"],"names":[],"mappings":"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"}
|
package/dist/filterWrappers.d.ts
CHANGED
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
import React, { type ReactElement } from 'react';
|
|
24
|
-
import type {
|
|
24
|
+
import type { FieldRef } from '@contember/bindx';
|
|
25
25
|
interface FilterWrapperProps<T> {
|
|
26
|
-
field:
|
|
26
|
+
field: FieldRef<T>;
|
|
27
27
|
name?: string;
|
|
28
28
|
children: React.ReactNode;
|
|
29
29
|
}
|
|
@@ -56,7 +56,7 @@ export interface DataViewIsDefinedFilterProps<T> extends FilterWrapperProps<T> {
|
|
|
56
56
|
export declare function DataViewIsDefinedFilter<T>({ field, name, children }: DataViewIsDefinedFilterProps<T>): ReactElement;
|
|
57
57
|
export interface DataViewUnionTextFilterProps<T> {
|
|
58
58
|
/** Single field or array of fields to search across */
|
|
59
|
-
fields:
|
|
59
|
+
fields: FieldRef<T> | FieldRef<T>[];
|
|
60
60
|
/** Required unique filter name */
|
|
61
61
|
name: string;
|
|
62
62
|
children: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterWrappers.d.ts","sourceRoot":"","sources":["../src/filterWrappers.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"filterWrappers.d.ts","sourceRoot":"","sources":["../src/filterWrappers.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAQhD,UAAU,kBAAkB,CAAC,CAAC;IAC7B,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB;AAUD,MAAM,WAAW,uBAAuB,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;CAAG;AAE5E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,YAAY,CAMzG;AAMD,MAAM,WAAW,0BAA0B,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;CAAG;AAE/E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,YAAY,CAM/G;AAMD,MAAM,WAAW,yBAAyB,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;CAAG;AAE9E,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,YAAY,CAM7G;AAMD,MAAM,WAAW,uBAAuB,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;CAAG;AAE5E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,YAAY,CAMzG;AAMD,MAAM,WAAW,uBAAuB,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;CAAG;AAE5E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,YAAY,CAMzG;AAMD,MAAM,WAAW,2BAA2B,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;CAAG;AAEhF,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAAG,YAAY,CAMjH;AAMD,MAAM,WAAW,yBAAyB,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;CAAG;AAE9E,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,YAAY,CAM7G;AAMD,MAAM,WAAW,0BAA0B,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;CAAG;AAE/E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,YAAY,CAM/G;AAMD,MAAM,WAAW,4BAA4B,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;CAAG;AAEjF,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,4BAA4B,CAAC,CAAC,CAAC,GAAG,YAAY,CAMnH;AAMD,MAAM,WAAW,4BAA4B,CAAC,CAAC;IAC9C,uDAAuD;IACvD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,4BAA4B,CAAC,CAAC,CAAC,GAAG,YAAY,CAM5G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../src/select/MultiSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAkB,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../src/select/MultiSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAkB,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,EAMN,KAAK,YAAY,EAEjB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACrD,+CAA+C;IAC/C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC5B,6CAA6C;IAC7C,OAAO,EAAE,SAAS,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAC3B,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,GACV,EAAE,gBAAgB,GAAG,SAAS,CA8C9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/select/Select.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAkB,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/select/Select.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAkB,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAG5E,OAAO,EAMN,KAAK,YAAY,EAEjB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,WAAW,WAAY,SAAQ,YAAY;IAChD,8CAA8C;IAC9C,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IAC3B,6CAA6C;IAC7C,OAAO,EAAE,SAAS,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;CACnB;AAED,wBAAgB,MAAM,CAAC,EACtB,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,GACV,EAAE,WAAW,GAAG,SAAS,CA6CzB"}
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import { type ReactElement, type ReactNode } from 'react';
|
|
27
27
|
import type { EntityAccessor, OrderDirection } from '@contember/bindx';
|
|
28
|
-
import type {
|
|
28
|
+
import type { FieldRef } from '@contember/bindx';
|
|
29
29
|
export interface SelectDataViewProps {
|
|
30
30
|
/** Children rendered inside the DataView context */
|
|
31
31
|
children: ReactNode;
|
|
32
32
|
/** Selection definer — called with collector proxy to discover fields */
|
|
33
33
|
selection?: (it: EntityAccessor<object>) => ReactNode;
|
|
34
34
|
/** Field(s) to search across */
|
|
35
|
-
queryField?:
|
|
35
|
+
queryField?: FieldRef<unknown> | FieldRef<unknown>[] | string[];
|
|
36
36
|
/** Initial sort order */
|
|
37
37
|
initialSorting?: Partial<Record<string, OrderDirection>>;
|
|
38
38
|
/** Static filter for the options list */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectDataView.d.ts","sourceRoot":"","sources":["../../src/select/SelectDataView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAQ,KAAK,YAAY,EAAE,KAAK,SAAS,EAAqD,MAAM,OAAO,CAAA;AAClH,OAAO,KAAK,EACX,cAAc,EAGd,cAAc,EAEd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"SelectDataView.d.ts","sourceRoot":"","sources":["../../src/select/SelectDataView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAQ,KAAK,YAAY,EAAE,KAAK,SAAS,EAAqD,MAAM,OAAO,CAAA;AAClH,OAAO,KAAK,EACX,cAAc,EAGd,cAAc,EAEd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAYhD,MAAM,WAAW,mBAAmB;IACnC,oDAAoD;IACpD,QAAQ,EAAE,SAAS,CAAA;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,SAAS,CAAA;IACrD,gCAAgC;IAChC,UAAU,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,CAAA;IAC/D,yBAAyB;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;IACxD,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAID,iBAAS,kBAAkB,CAAC,EAC3B,QAAQ,EACR,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EACV,cAAc,EACd,MAAM,EAAE,YAAY,EACpB,YAAiB,GACjB,EAAE,mBAAmB,GAAG,YAAY,GAAG,IAAI,CA6J3C;AAED,eAAO,MAAM,cAAc,EAA0C,OAAO,kBAAkB,CAAA"}
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
17
|
import React, { type ReactElement } from 'react';
|
|
18
|
-
import type { SortingDirectionAction,
|
|
18
|
+
import type { SortingDirectionAction, FieldRef } from '@contember/bindx';
|
|
19
19
|
export interface DataViewSortingTriggerProps<T> {
|
|
20
20
|
/** Field to sort by */
|
|
21
|
-
field:
|
|
21
|
+
field: FieldRef<T>;
|
|
22
22
|
/** Sorting action. Default: 'next' (cycles asc → desc → none) */
|
|
23
23
|
action?: SortingDirectionAction;
|
|
24
24
|
/** Button element to render */
|
|
@@ -27,7 +27,7 @@ export interface DataViewSortingTriggerProps<T> {
|
|
|
27
27
|
export declare const DataViewSortingTrigger: <T>(props: DataViewSortingTriggerProps<T> & React.RefAttributes<HTMLButtonElement>) => ReactElement | null;
|
|
28
28
|
export interface DataViewSortingSwitchProps<T> {
|
|
29
29
|
/** Field to check sorting direction for */
|
|
30
|
-
field:
|
|
30
|
+
field: FieldRef<T>;
|
|
31
31
|
/** Render when sorted ascending */
|
|
32
32
|
asc?: React.ReactNode;
|
|
33
33
|
/** Render when sorted descending */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortingComponents.d.ts","sourceRoot":"","sources":["../src/sortingComponents.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAc,KAAK,YAAY,EAAe,MAAM,OAAO,CAAA;AAKzE,OAAO,KAAK,EAAE,sBAAsB,EAAkB,
|
|
1
|
+
{"version":3,"file":"sortingComponents.d.ts","sourceRoot":"","sources":["../src/sortingComponents.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAc,KAAK,YAAY,EAAe,MAAM,OAAO,CAAA;AAKzE,OAAO,KAAK,EAAE,sBAAsB,EAAkB,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAMxF,MAAM,WAAW,2BAA2B,CAAC,CAAC;IAC7C,uBAAuB;IACvB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B,+BAA+B;IAC/B,QAAQ,EAAE,YAAY,CAAA;CACtB;AASD,eAAO,MAAM,sBAAsB,EA6B9B,CAAC,CAAC,EAAE,KAAK,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,YAAY,GAAG,IAAI,CAC9G;AAMD,MAAM,WAAW,0BAA0B,CAAC,CAAC;IAC5C,2CAA2C;IAC3C,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IAClB,mCAAmC;IACnC,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,oCAAoC;IACpC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,EACxC,KAAK,EACL,GAAG,EACH,IAAI,EACJ,IAAI,GACJ,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,YAAY,CAO9C"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* All hooks support optional state storage (URL, session, local, custom)
|
|
5
5
|
* for persisting state across navigations.
|
|
6
6
|
*/
|
|
7
|
-
import type { FilterHandler, FilterArtifact, SortingState, SortingDirections, SortingDirectionAction, PagingState, PagingInfo, OrderDirection, DataViewLayout, SelectionValues, SelectionState,
|
|
7
|
+
import type { FilterHandler, FilterArtifact, SortingState, SortingDirections, SortingDirectionAction, PagingState, PagingInfo, OrderDirection, DataViewLayout, SelectionValues, SelectionState, FieldRef } from '@contember/bindx';
|
|
8
8
|
import { type StateStorageOrName } from './stateStorage.js';
|
|
9
9
|
export interface RegisteredFilter {
|
|
10
10
|
readonly name: string;
|
|
@@ -39,9 +39,9 @@ export interface UseSortingOptions {
|
|
|
39
39
|
}
|
|
40
40
|
export interface SortingStateResult {
|
|
41
41
|
readonly state: SortingState;
|
|
42
|
-
setOrderBy<T>(field:
|
|
42
|
+
setOrderBy<T>(field: FieldRef<T>, action: SortingDirectionAction, append?: boolean): void;
|
|
43
43
|
clear(): void;
|
|
44
|
-
directionOf<T>(field:
|
|
44
|
+
directionOf<T>(field: FieldRef<T>): OrderDirection | null;
|
|
45
45
|
readonly resolvedOrderBy: readonly Record<string, unknown>[] | undefined;
|
|
46
46
|
}
|
|
47
47
|
export declare function useSortingState(options: UseSortingOptions): SortingStateResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataViewState.d.ts","sourceRoot":"","sources":["../src/useDataViewState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"useDataViewState.d.ts","sourceRoot":"","sources":["../src/useDataViewState.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/bindx-dataview",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
4
|
"description": "Headless DataGrid and DataView components for bindx",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.ts",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"react": ">=18.0.0"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@contember/bindx": "0.1.
|
|
19
|
-
"@contember/bindx-react": "0.1.
|
|
18
|
+
"@contember/bindx": "0.1.15",
|
|
19
|
+
"@contember/bindx-react": "0.1.15",
|
|
20
20
|
"@radix-ui/primitive": "^1.1.3",
|
|
21
21
|
"@radix-ui/react-slot": "^1.2.4"
|
|
22
22
|
},
|
package/src/columnLeaf.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import React from 'react'
|
|
11
|
-
import type {
|
|
11
|
+
import type { FieldRef, FilterHandler, FilterArtifact, EntityAccessor } from '@contember/bindx'
|
|
12
12
|
|
|
13
13
|
// ============================================================================
|
|
14
14
|
// ColumnLeaf Props — the new ColumnMeta
|
|
@@ -25,7 +25,7 @@ export interface ColumnLeafProps {
|
|
|
25
25
|
// ── Core ──
|
|
26
26
|
readonly name: string
|
|
27
27
|
readonly fieldName: string | null
|
|
28
|
-
readonly fieldRef:
|
|
28
|
+
readonly fieldRef: FieldRef<unknown> | null
|
|
29
29
|
readonly sortingField: string | null
|
|
30
30
|
readonly filterName: string | null
|
|
31
31
|
readonly filterHandler: FilterHandler<FilterArtifact> | undefined
|
package/src/columns.tsx
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import React, { ReactNode } from 'react'
|
|
13
|
-
import type {
|
|
13
|
+
import type { FieldRef, HasOneRef, HasManyRef, FilterHandler, FilterArtifact, EntityAccessor, EnumFilterArtifact, EnumListFilterArtifact, SelectionMeta } from '@contember/bindx'
|
|
14
14
|
import { SelectionScope } from '@contember/bindx'
|
|
15
15
|
import { FIELD_REF_META, createCollectorProxy } from '@contember/bindx-react'
|
|
16
16
|
import { createColumn, type ColumnRenderProps } from './createColumn.js'
|
|
@@ -114,7 +114,7 @@ function renderEnumListDefault({ value }: ColumnRenderProps<readonly string[] |
|
|
|
114
114
|
// ============================================================================
|
|
115
115
|
|
|
116
116
|
interface DataGridScalarColumnPropsBase<T> {
|
|
117
|
-
field:
|
|
117
|
+
field: FieldRef<T> | FieldRef<T | undefined>
|
|
118
118
|
header?: React.ReactNode
|
|
119
119
|
sortable?: boolean
|
|
120
120
|
filter?: boolean
|
|
@@ -256,7 +256,7 @@ export const DataGridActionColumn = Object.assign(
|
|
|
256
256
|
// ============================================================================
|
|
257
257
|
|
|
258
258
|
export interface DataGridColumnProps<T> {
|
|
259
|
-
field?:
|
|
259
|
+
field?: FieldRef<T>
|
|
260
260
|
header?: React.ReactNode
|
|
261
261
|
sortable?: boolean
|
|
262
262
|
filter?: boolean
|
|
@@ -270,7 +270,7 @@ export const DataGridColumn = Object.assign(
|
|
|
270
270
|
},
|
|
271
271
|
{
|
|
272
272
|
staticRender: (props: Record<string, unknown>): React.ReactNode => {
|
|
273
|
-
const fieldRef = props['field'] as
|
|
273
|
+
const fieldRef = props['field'] as FieldRef<unknown> | undefined
|
|
274
274
|
const fieldName = fieldRef ? extractFieldName(fieldRef) : null
|
|
275
275
|
const header = props['header'] as React.ReactNode | undefined
|
|
276
276
|
const sortable = (props['sortable'] as boolean | undefined) ?? false
|
package/src/contextHooks.ts
CHANGED
|
@@ -18,7 +18,7 @@ import type {
|
|
|
18
18
|
FilterHandler,
|
|
19
19
|
FilterArtifact,
|
|
20
20
|
DataViewLayout,
|
|
21
|
-
|
|
21
|
+
FieldRef,
|
|
22
22
|
} from '@contember/bindx'
|
|
23
23
|
|
|
24
24
|
// ============================================================================
|
|
@@ -26,7 +26,7 @@ import type {
|
|
|
26
26
|
// ============================================================================
|
|
27
27
|
|
|
28
28
|
export interface DataViewSortingMethods {
|
|
29
|
-
setOrderBy<T>(field:
|
|
29
|
+
setOrderBy<T>(field: FieldRef<T>, action: SortingDirectionAction, append?: boolean): void
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export function useDataViewSortingState(): SortingState {
|
|
@@ -38,7 +38,7 @@ export function useDataViewSortingMethods(): DataViewSortingMethods {
|
|
|
38
38
|
return useMemo(() => ({ setOrderBy: sorting.setOrderBy }), [sorting.setOrderBy])
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export function useDataViewSortingDirection<T>(field:
|
|
41
|
+
export function useDataViewSortingDirection<T>(field: FieldRef<T>): OrderDirection | null {
|
|
42
42
|
return useDataViewContext().sorting.directionOf(field)
|
|
43
43
|
}
|
|
44
44
|
|
package/src/createColumn.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import React from 'react'
|
|
10
|
-
import type {
|
|
10
|
+
import type { FieldRef, FilterArtifact, FilterHandler, EntityAccessor } from '@contember/bindx'
|
|
11
11
|
import type { ColumnTypeDef } from './columnTypes.js'
|
|
12
12
|
import { ColumnLeaf, type ColumnLeafProps } from './columnLeaf.js'
|
|
13
13
|
import { extractFieldName, extractEnumName } from './columns.js'
|
|
@@ -19,7 +19,7 @@ import { extractFieldName, extractEnumName } from './columns.js'
|
|
|
19
19
|
export interface ColumnRenderProps<TValue> {
|
|
20
20
|
readonly value: TValue
|
|
21
21
|
readonly accessor: EntityAccessor<object>
|
|
22
|
-
readonly fieldRef:
|
|
22
|
+
readonly fieldRef: FieldRef<unknown> | null
|
|
23
23
|
readonly fieldName: string | null
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -42,7 +42,7 @@ export interface CreateColumnConfig<TValue, TFilterArtifact extends FilterArtifa
|
|
|
42
42
|
// ============================================================================
|
|
43
43
|
|
|
44
44
|
export interface ColumnComponentProps<TValue = unknown> {
|
|
45
|
-
field:
|
|
45
|
+
field: FieldRef<TValue>
|
|
46
46
|
header?: React.ReactNode
|
|
47
47
|
sortable?: boolean
|
|
48
48
|
filter?: boolean
|
|
@@ -67,7 +67,7 @@ export function createColumn<TValue, TFilterArtifact extends FilterArtifact, TEx
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
Column.staticRender = (props: Record<string, unknown>): React.ReactNode => {
|
|
70
|
-
const fieldRef = props['field'] as
|
|
70
|
+
const fieldRef = props['field'] as FieldRef<unknown> | undefined
|
|
71
71
|
const fieldName = fieldRef ? extractFieldName(fieldRef) : null
|
|
72
72
|
const header = props['header'] as React.ReactNode | undefined
|
|
73
73
|
const sortable = (props['sortable'] as boolean | undefined) ?? columnType.defaultSortable
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import React from 'react'
|
|
14
|
-
import type {
|
|
14
|
+
import type { FieldRef, FilterArtifact, FilterHandler, EntityAccessor, SelectionMeta } from '@contember/bindx'
|
|
15
15
|
import { SelectionScope } from '@contember/bindx'
|
|
16
16
|
import { createCollectorProxy } from '@contember/bindx-react'
|
|
17
17
|
import type { ColumnTypeDef } from './columnTypes.js'
|
|
@@ -51,7 +51,7 @@ export interface RelationCellWrapperContext {
|
|
|
51
51
|
readonly item: EntityAccessor<object>
|
|
52
52
|
readonly fieldName: string
|
|
53
53
|
readonly filterName: string
|
|
54
|
-
readonly fieldRef:
|
|
54
|
+
readonly fieldRef: FieldRef<unknown>
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
// ============================================================================
|
|
@@ -72,7 +72,7 @@ export interface RelationColumnProps<TEntity, TSelected> {
|
|
|
72
72
|
|
|
73
73
|
interface RelationCellConfig {
|
|
74
74
|
/** How to collect selection for the relation (differs between hasOne and hasMany) */
|
|
75
|
-
collectSelection: (renderer: (ref: unknown) => React.ReactNode, fieldRef:
|
|
75
|
+
collectSelection: (renderer: (ref: unknown) => React.ReactNode, fieldRef: FieldRef<unknown>) => void
|
|
76
76
|
/** How to render the cell content (differs between hasOne and hasMany) */
|
|
77
77
|
renderCell: (accessor: EntityAccessor<object>, fieldName: string, renderer: (ref: unknown) => React.ReactNode) => React.ReactNode
|
|
78
78
|
}
|
|
@@ -83,7 +83,7 @@ export function createRelationColumn<TFilterArtifact extends FilterArtifact>(
|
|
|
83
83
|
uiConfig: RelationColumnConfig = {},
|
|
84
84
|
) {
|
|
85
85
|
function buildLeaf(props: Record<string, unknown>): ColumnLeafProps {
|
|
86
|
-
const fieldRef = props['field'] as
|
|
86
|
+
const fieldRef = props['field'] as FieldRef<unknown> | undefined
|
|
87
87
|
const fieldName = fieldRef ? extractFieldName(fieldRef) : null
|
|
88
88
|
const renderer = props['children'] as ((ref: unknown) => React.ReactNode) | undefined
|
|
89
89
|
const header = props['header'] as React.ReactNode | undefined
|
package/src/filterWrappers.tsx
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import React, { type ReactElement } from 'react'
|
|
25
|
-
import type {
|
|
25
|
+
import type { FieldRef } from '@contember/bindx'
|
|
26
26
|
import { FIELD_REF_META } from '@contember/bindx'
|
|
27
27
|
import { DataViewFilterNameProvider } from './filterContext.js'
|
|
28
28
|
|
|
@@ -31,12 +31,12 @@ import { DataViewFilterNameProvider } from './filterContext.js'
|
|
|
31
31
|
// ============================================================================
|
|
32
32
|
|
|
33
33
|
interface FilterWrapperProps<T> {
|
|
34
|
-
field:
|
|
34
|
+
field: FieldRef<T>
|
|
35
35
|
name?: string
|
|
36
36
|
children: React.ReactNode
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
function resolveFilterName<T>(name: string | undefined, field:
|
|
39
|
+
function resolveFilterName<T>(name: string | undefined, field: FieldRef<T>): string {
|
|
40
40
|
return name ?? field[FIELD_REF_META].fieldName
|
|
41
41
|
}
|
|
42
42
|
|
|
@@ -172,7 +172,7 @@ export function DataViewIsDefinedFilter<T>({ field, name, children }: DataViewIs
|
|
|
172
172
|
|
|
173
173
|
export interface DataViewUnionTextFilterProps<T> {
|
|
174
174
|
/** Single field or array of fields to search across */
|
|
175
|
-
fields:
|
|
175
|
+
fields: FieldRef<T> | FieldRef<T>[]
|
|
176
176
|
/** Required unique filter name */
|
|
177
177
|
name: string
|
|
178
178
|
children: React.ReactNode
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { type ReactNode, useCallback, useMemo } from 'react'
|
|
18
18
|
import type { EntityAccessor, EntityDef, HasManyRef } from '@contember/bindx'
|
|
19
|
+
import { useHasMany } from '@contember/bindx-react'
|
|
19
20
|
import {
|
|
20
21
|
SelectCurrentEntitiesContext,
|
|
21
22
|
SelectHandleSelectContext,
|
|
@@ -41,7 +42,8 @@ export function MultiSelect({
|
|
|
41
42
|
onSelect,
|
|
42
43
|
onUnselect,
|
|
43
44
|
}: MultiSelectProps): ReactNode {
|
|
44
|
-
const
|
|
45
|
+
const accessor = useHasMany(relation)
|
|
46
|
+
const items = accessor.items
|
|
45
47
|
const selectedIds = useMemo(
|
|
46
48
|
() => new Set(items.map(it => it.id)),
|
|
47
49
|
[items],
|
package/src/select/Select.tsx
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { type ReactNode, useCallback, useMemo } from 'react'
|
|
18
18
|
import type { EntityAccessor, EntityDef, HasOneRef } from '@contember/bindx'
|
|
19
|
+
import { useHasOne } from '@contember/bindx-react'
|
|
19
20
|
import { isPlaceholderId } from '@contember/bindx'
|
|
20
21
|
import {
|
|
21
22
|
SelectCurrentEntitiesContext,
|
|
@@ -42,7 +43,8 @@ export function Select({
|
|
|
42
43
|
onSelect,
|
|
43
44
|
onUnselect,
|
|
44
45
|
}: SelectProps): ReactNode {
|
|
45
|
-
const
|
|
46
|
+
const accessor = useHasOne(relation)
|
|
47
|
+
const entity = accessor.$entity
|
|
46
48
|
const entityId = entity.id
|
|
47
49
|
const isConnected = !isPlaceholderId(entityId)
|
|
48
50
|
const currentId = isConnected ? entityId : null
|
|
@@ -33,7 +33,7 @@ import type {
|
|
|
33
33
|
SortingDirections,
|
|
34
34
|
} from '@contember/bindx'
|
|
35
35
|
import { SelectionScope, buildQueryFromSelection, createFullTextFilterHandler, FIELD_REF_META } from '@contember/bindx'
|
|
36
|
-
import type {
|
|
36
|
+
import type { FieldRef } from '@contember/bindx'
|
|
37
37
|
import {
|
|
38
38
|
useBindxContext,
|
|
39
39
|
useEntityList,
|
|
@@ -51,7 +51,7 @@ export interface SelectDataViewProps {
|
|
|
51
51
|
/** Selection definer — called with collector proxy to discover fields */
|
|
52
52
|
selection?: (it: EntityAccessor<object>) => ReactNode
|
|
53
53
|
/** Field(s) to search across */
|
|
54
|
-
queryField?:
|
|
54
|
+
queryField?: FieldRef<unknown> | FieldRef<unknown>[] | string[]
|
|
55
55
|
/** Initial sort order */
|
|
56
56
|
initialSorting?: Partial<Record<string, OrderDirection>>
|
|
57
57
|
/** Static filter for the options list */
|
|
@@ -20,7 +20,7 @@ import { Slot } from '@radix-ui/react-slot'
|
|
|
20
20
|
import { composeEventHandlers } from '@radix-ui/primitive'
|
|
21
21
|
import { useDataViewContext } from './DataViewContext.js'
|
|
22
22
|
import { dataAttribute } from './dataAttribute.js'
|
|
23
|
-
import type { SortingDirectionAction, OrderDirection,
|
|
23
|
+
import type { SortingDirectionAction, OrderDirection, FieldRef } from '@contember/bindx'
|
|
24
24
|
|
|
25
25
|
// ============================================================================
|
|
26
26
|
// DataViewSortingTrigger
|
|
@@ -28,7 +28,7 @@ import type { SortingDirectionAction, OrderDirection, FieldRefBase } from '@cont
|
|
|
28
28
|
|
|
29
29
|
export interface DataViewSortingTriggerProps<T> {
|
|
30
30
|
/** Field to sort by */
|
|
31
|
-
field:
|
|
31
|
+
field: FieldRef<T>
|
|
32
32
|
/** Sorting action. Default: 'next' (cycles asc → desc → none) */
|
|
33
33
|
action?: SortingDirectionAction
|
|
34
34
|
/** Button element to render */
|
|
@@ -80,7 +80,7 @@ export const DataViewSortingTrigger = forwardRef<HTMLButtonElement, DataViewSort
|
|
|
80
80
|
|
|
81
81
|
export interface DataViewSortingSwitchProps<T> {
|
|
82
82
|
/** Field to check sorting direction for */
|
|
83
|
-
field:
|
|
83
|
+
field: FieldRef<T>
|
|
84
84
|
/** Render when sorted ascending */
|
|
85
85
|
asc?: React.ReactNode
|
|
86
86
|
/** Render when sorted descending */
|
package/src/useDataViewState.ts
CHANGED
|
@@ -18,7 +18,7 @@ import type {
|
|
|
18
18
|
DataViewLayout,
|
|
19
19
|
SelectionValues,
|
|
20
20
|
SelectionState,
|
|
21
|
-
|
|
21
|
+
FieldRef,
|
|
22
22
|
} from '@contember/bindx'
|
|
23
23
|
import { FIELD_REF_META } from '@contember/bindx'
|
|
24
24
|
import { useStoredState, type StateStorageOrName } from './stateStorage.js'
|
|
@@ -144,9 +144,9 @@ export interface UseSortingOptions {
|
|
|
144
144
|
|
|
145
145
|
export interface SortingStateResult {
|
|
146
146
|
readonly state: SortingState
|
|
147
|
-
setOrderBy<T>(field:
|
|
147
|
+
setOrderBy<T>(field: FieldRef<T>, action: SortingDirectionAction, append?: boolean): void
|
|
148
148
|
clear(): void
|
|
149
|
-
directionOf<T>(field:
|
|
149
|
+
directionOf<T>(field: FieldRef<T>): OrderDirection | null
|
|
150
150
|
readonly resolvedOrderBy: readonly Record<string, unknown>[] | undefined
|
|
151
151
|
}
|
|
152
152
|
|
|
@@ -182,7 +182,7 @@ export function useSortingState(options: UseSortingOptions): SortingStateResult
|
|
|
182
182
|
const state = useMemo((): SortingState => ({ directions }), [directions])
|
|
183
183
|
|
|
184
184
|
const setOrderBy = useCallback(
|
|
185
|
-
<T>(field:
|
|
185
|
+
<T>(field: FieldRef<T>, action: SortingDirectionAction, append?: boolean): void => {
|
|
186
186
|
const fieldName = field[FIELD_REF_META].fieldName
|
|
187
187
|
if (!sortableFields.has(fieldName)) return
|
|
188
188
|
const currentDir = directions[fieldName] ?? null
|
|
@@ -210,7 +210,7 @@ export function useSortingState(options: UseSortingOptions): SortingStateResult
|
|
|
210
210
|
}, [setDirections])
|
|
211
211
|
|
|
212
212
|
const directionOf = useCallback(
|
|
213
|
-
<T>(field:
|
|
213
|
+
<T>(field: FieldRef<T>): OrderDirection | null => directions[field[FIELD_REF_META].fieldName] ?? null,
|
|
214
214
|
[directions],
|
|
215
215
|
)
|
|
216
216
|
|