@contember/bindx-dataview 0.1.51 → 0.1.52

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.
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import React from 'react';
6
6
  import type { FilteringState, SortingStateResult, PagingStateResult, SelectionStateResult } from './useDataViewState.js';
7
- import type { ColumnLeafProps } from './columnLeaf.js';
7
+ import type { DataViewColumn } from './columnLeaf.js';
8
8
  import type { EntityAccessor, SelectionMeta } from '@contember/bindx';
9
9
  export type DataViewLoaderState = 'initial' | 'loaded' | 'refreshing' | 'failed';
10
10
  export type DataViewItem = EntityAccessor<object>;
@@ -20,7 +20,7 @@ export interface DataViewContextValue {
20
20
  readonly sorting: SortingStateResult;
21
21
  readonly paging: PagingStateResult;
22
22
  readonly selection: SelectionStateResult;
23
- readonly columns: readonly ColumnLeafProps[];
23
+ readonly columns: readonly DataViewColumn[];
24
24
  readonly entityType: string;
25
25
  readonly items: readonly DataViewItem[];
26
26
  readonly itemCount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewContext.d.ts","sourceRoot":"","sources":["../src/DataViewContext.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAoC,MAAM,OAAO,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACxH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAA;AAEhF,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;AAEjD,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,qHAAqH;AACrH,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;AAE3F,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAA;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,6GAA6G;IAC7G,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzC,6FAA6F;IAC7F,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;IACpF,qFAAqF;IACrF,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC,CAAA;CAC5E;AAID,wBAAgB,kBAAkB,IAAI,oBAAoB,CAMzD;AAED,wBAAgB,0BAA0B,IAAI,oBAAoB,GAAG,IAAI,CAExE;AAED,eAAO,MAAM,gBAAgB,6CAA2B,CAAA"}
1
+ {"version":3,"file":"DataViewContext.d.ts","sourceRoot":"","sources":["../src/DataViewContext.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAoC,MAAM,OAAO,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACxH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAA;AAEhF,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;AAEjD,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,qHAAqH;AACrH,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;AAE3F,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,6GAA6G;IAC7G,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzC,6FAA6F;IAC7F,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;IACpF,qFAAqF;IACrF,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC,CAAA;CAC5E;AAID,wBAAgB,kBAAkB,IAAI,oBAAoB,CAMzD;AAED,wBAAgB,0BAA0B,IAAI,oBAAoB,GAAG,IAAI,CAExE;AAED,eAAO,MAAM,gBAAgB,6CAA2B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"HasManyDataGrid.d.ts","sourceRoot":"","sources":["../src/HasManyDataGrid.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAQ,KAAK,YAAY,EAAE,KAAK,SAAS,EAAqD,MAAM,OAAO,CAAA;AAClH,OAAO,KAAK,EACX,cAAc,EACd,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,MAAM,kBAAkB,CAAA;AAQzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAa3D,MAAM,WAAW,oBAAoB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACpE,iDAAiD;IACjD,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC/B,4FAA4F;IAC5F,QAAQ,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACpD,sBAAsB;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;IACxD,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,wBAAwB;IACxB,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,eAAe,CAAA;IAClC,uDAAuD;IACvD,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,qCAAqC;IACrC,uBAAuB,CAAC,EAAE,kBAAkB,CAAA;IAC5C,6CAA6C;IAC7C,qBAAqB,CAAC,EAAE,kBAAkB,CAAA;IAC1C,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAkBD,iBAAS,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,EACpD,KAAK,EACL,QAAQ,EACR,cAAc,EACd,YAAiB,EACjB,MAAM,EAAE,YAAY,EACpB,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,UAAU,GACV,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,IAAI,CAqMrD;AAMD,eAAO,MAAM,eAAe,EAA2C,OAAO,mBAAmB,CAAA"}
1
+ {"version":3,"file":"HasManyDataGrid.d.ts","sourceRoot":"","sources":["../src/HasManyDataGrid.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAQ,KAAK,YAAY,EAAE,KAAK,SAAS,EAAqD,MAAM,OAAO,CAAA;AAClH,OAAO,KAAK,EACX,cAAc,EACd,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,MAAM,kBAAkB,CAAA;AAQzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAa3D,MAAM,WAAW,oBAAoB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACpE,iDAAiD;IACjD,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC/B,4FAA4F;IAC5F,QAAQ,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACpD,sBAAsB;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;IACxD,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,wBAAwB;IACxB,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,eAAe,CAAA;IAClC,uDAAuD;IACvD,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,qCAAqC;IACrC,uBAAuB,CAAC,EAAE,kBAAkB,CAAA;IAC5C,6CAA6C;IAC7C,qBAAqB,CAAC,EAAE,kBAAkB,CAAA;IAC1C,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAwBD,iBAAS,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,EACpD,KAAK,EACL,QAAQ,EACR,cAAc,EACd,YAAiB,EACjB,MAAM,EAAE,YAAY,EACpB,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,UAAU,GACV,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,IAAI,CAoMrD;AAMD,eAAO,MAAM,eAAe,EAA2C,OAAO,mBAAmB,CAAA"}
@@ -11,13 +11,25 @@ import type { FieldRef, FilterHandler, FilterArtifact, EntityAccessor } from '@c
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
- readonly name: string;
14
+ /**
15
+ * Identity of the column: the key its visibility is stored under and the key
16
+ * its header and cells are rendered by. Optional here because most call sites
17
+ * let it be derived — see {@link resolveColumnNames}. Pass it explicitly when
18
+ * two columns bind the same field, which would otherwise derive one name.
19
+ */
20
+ readonly name?: string;
15
21
  readonly fieldName: string | null;
16
22
  readonly fieldRef: FieldRef<unknown> | null;
17
23
  readonly sortingField: string | null;
18
24
  readonly filterName: string | null;
19
25
  readonly filterHandler: FilterHandler<FilterArtifact> | undefined;
20
26
  readonly isTextSearchable: boolean;
27
+ /**
28
+ * The leaf exists only to register its field — for full-text search, or to
29
+ * pull the field into the query. It is not a column: neither the table nor
30
+ * the visibility list shows it.
31
+ */
32
+ readonly virtual?: boolean;
21
33
  readonly columnType?: ColumnType;
22
34
  readonly collectSelection?: (collectorProxy: unknown) => void;
23
35
  /** Enum type name for resolving options from context (e.g. 'DeploymentStatus') */
@@ -46,6 +58,20 @@ export declare function isRelationColumn(col: ColumnLeafProps): col is ColumnLea
46
58
  * Its props are the column metadata extracted by `analyzeChildren()`.
47
59
  */
48
60
  export declare function ColumnLeaf(_props: ColumnLeafProps): null;
61
+ /** A column leaf once its identity is settled — what the view exposes. */
62
+ export interface DataViewColumn extends ColumnLeafProps {
63
+ readonly name: string;
64
+ }
65
+ /**
66
+ * Settle each leaf's identity: the declared name, else the bound field, else the
67
+ * position.
68
+ *
69
+ * Position is the last resort rather than the first, because it is only stable
70
+ * while the column order is — and the name is a persisted visibility key, so a
71
+ * reordered grid would read a stale one. That is also why duplicates are
72
+ * reported instead of being suffixed away.
73
+ */
74
+ export declare function resolveColumnNames(leaves: readonly ColumnLeafProps[]): DataViewColumn[];
49
75
  /**
50
76
  * Result of analyzing a JSX element tree for marker components.
51
77
  */
@@ -1 +1 @@
1
- {"version":3,"file":"columnLeaf.d.ts","sourceRoot":"","sources":["../src/columnLeaf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"columnLeaf.d.ts","sourceRoot":"","sources":["../src/columnLeaf.ts"],"names":[],"mappings":"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"}
package/dist/columns.d.ts CHANGED
@@ -76,6 +76,8 @@ export declare const DataGridHasManyColumn: {
76
76
  };
77
77
  export interface DataGridActionColumnProps {
78
78
  children: React.ReactNode | ((entity: EntityAccessor<object>) => React.ReactNode);
79
+ /** Column identity. An action column binds no field, so without this it is named by its position. */
80
+ name?: string;
79
81
  header?: React.ReactNode;
80
82
  }
81
83
  export declare const DataGridActionColumn: ((_props: DataGridActionColumnProps) => null) & {
@@ -83,10 +85,14 @@ export declare const DataGridActionColumn: ((_props: DataGridActionColumnProps)
83
85
  };
84
86
  export interface DataGridColumnProps<T> {
85
87
  field?: FieldRef<T>;
88
+ /** Column identity. Defaults to the bound field name — pass it when two columns bind one field, or when there is no field. */
89
+ name?: string;
86
90
  header?: React.ReactNode;
87
91
  sortable?: boolean;
88
92
  filter?: boolean;
89
93
  filterHandler?: FilterHandler<FilterArtifact>;
94
+ /** Register the field without showing a column (e.g. to make it full-text searchable). */
95
+ virtual?: boolean;
90
96
  children?: (value: T | null, accessor: EntityAccessor<object>) => React.ReactNode;
91
97
  }
92
98
  export declare const DataGridColumn: (<T>(_props: DataGridColumnProps<T>) => null) & {
@@ -1 +1 @@
1
- {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../src/columns.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../src/columns.tsx"],"names":[],"mappings":"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"}
@@ -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,iBAAiB,EACjB,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;IACzF,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAClD;AAED,wBAAgB,uBAAuB,IAAI,YAAY,CAEtD;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,CAMlE;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;IACvD,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAAA;CAC9D;AAED,wBAAgB,yBAAyB,IAAI,cAAc,CAE1D;AAED,wBAAgB,2BAA2B,IAAI,wBAAwB,CAMtE;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"}
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,iBAAiB,EACjB,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;IACzF,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAClD;AAED,wBAAgB,uBAAuB,IAAI,YAAY,CAEtD;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,CAMlE;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;IACvD,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAAA;CAC9D;AAED,wBAAgB,yBAAyB,IAAI,cAAc,CAE1D;AAED,wBAAgB,2BAA2B,IAAI,wBAAwB,CAMtE;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,CA6BpE"}
@@ -26,9 +26,13 @@ export interface CreateColumnConfig<TValue, TFilterArtifact extends FilterArtifa
26
26
  }
27
27
  export interface ColumnComponentProps<TValue = unknown> {
28
28
  field: FieldRef<TValue>;
29
+ /** Column identity. Defaults to the bound field name — pass it when two columns bind one field. */
30
+ name?: string;
29
31
  header?: React.ReactNode;
30
32
  sortable?: boolean;
31
33
  filter?: boolean;
34
+ /** Register the field without showing a column (e.g. to make it full-text searchable). */
35
+ virtual?: boolean;
32
36
  children?: (value: TValue | null, accessor: EntityAccessor<object>) => React.ReactNode;
33
37
  }
34
38
  export interface ColumnComponent<TExtraProps = object> {
@@ -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,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;IACjC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;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;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,SAAS,cAAc,EACtF,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,EAClD,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,GACjD,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,SAAS,CA4DrD;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,CAM9B"}
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;IACjC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;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,mGAAmG;IACnG,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,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;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,SAAS,cAAc,EACtF,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,EAClD,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,GACjD,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,SAAS,CA6DrD;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,CAM9B"}
@@ -34,8 +34,12 @@ export interface RelationCellWrapperContext {
34
34
  }
35
35
  export interface RelationColumnProps<TEntity, TSelected> {
36
36
  field: object;
37
+ /** Column identity. Defaults to the bound field name — pass it when two columns bind one relation. */
38
+ name?: string;
37
39
  header?: React.ReactNode;
38
40
  filter?: boolean;
41
+ /** Register the relation without showing a column. */
42
+ virtual?: boolean;
39
43
  renderCellWrapper?: (content: React.ReactNode, item: EntityAccessor<object>) => React.ReactNode;
40
44
  children: (entity: EntityAccessor<TEntity, TSelected>) => React.ReactNode;
41
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createRelationColumn.d.ts","sourceRoot":"","sources":["../src/createRelationColumn.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createRelationColumn.d.ts","sourceRoot":"","sources":["../src/createRelationColumn.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { DataGrid, type DataGridProps, QUERY_FILTER_NAME } from './DataGrid.js';
2
2
  export { HasManyDataGrid, type HasManyDataGridProps } from './HasManyDataGrid.js';
3
3
  export { defineColumnType, type ColumnTypeDef, textColumnDef, numberColumnDef, dateColumnDef, dateTimeColumnDef, booleanColumnDef, enumColumnDef, enumListColumnDef, uuidColumnDef, isDefinedColumnDef, hasOneColumnDef, hasManyColumnDef, accessField, } from './columnTypes.js';
4
- export { ColumnLeaf, type ColumnLeafProps, extractColumnLeaves, analyzeChildren, type ChildrenAnalysisResult, } from './columnLeaf.js';
4
+ export { ColumnLeaf, type ColumnLeafProps, type DataViewColumn, resolveColumnNames, extractColumnLeaves, analyzeChildren, type ChildrenAnalysisResult, } from './columnLeaf.js';
5
5
  export { DataGridToolbarContent, type DataGridToolbarContentProps, DataGridLayout, type DataGridLayoutProps, } from './markers.js';
6
6
  export { createColumn, createColumnStaticRender, type ColumnRenderProps, type FilterRenderProps, type CreateColumnConfig, type ColumnComponentProps, type ColumnComponent, } from './createColumn.js';
7
7
  export { createRelationColumn, hasOneCellConfig, hasManyCellConfig, type RelationColumnConfig, type RelationFilterContext, type RelationCellWrapperContext, type RelationColumnProps, type RelationColumnComponent, } from './createRelationColumn.jsx';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { type ReactNode } from 'react';
6
6
  import type { EntityAccessor, OrderDirection, DataViewLayout, SelectionMeta, SelectionValues, SchemaRegistry } from '@contember/bindx';
7
- import { type ColumnLeafProps } from './columnLeaf.js';
7
+ import { type DataViewColumn } from './columnLeaf.js';
8
8
  import { useFilteringState, useSortingState, usePagingState, useSelectionState } from './useDataViewState.js';
9
9
  import type { StateStorageOrName } from './stateStorage.js';
10
10
  import type { DataViewContextValue, DataViewElementData } from './DataViewContext.js';
@@ -23,7 +23,7 @@ export interface DataGridCommonProps<TEntity extends object> {
23
23
  }
24
24
  export interface DataGridSetupResult {
25
25
  childrenJsx: ReactNode;
26
- columns: ColumnLeafProps[];
26
+ columns: DataViewColumn[];
27
27
  selection: SelectionMeta;
28
28
  queryKey: string;
29
29
  toolbarContent: ReactNode | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridSetup.d.ts","sourceRoot":"","sources":["../src/useDataGridSetup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAA;AACtD,OAAO,KAAK,EACX,cAAc,EACd,cAAc,EAId,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,MAAM,kBAAkB,CAAA;AAOzB,OAAO,EAAc,KAAK,eAAe,EAAmB,MAAM,iBAAiB,CAAA;AAGnF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAGrF,eAAO,MAAM,iBAAiB,YAAY,CAAA;AAmB1C,MAAM,WAAW,mBAAmB,CAAC,OAAO,SAAS,MAAM;IAC1D,QAAQ,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;IACxD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,gBAAgB,CAAC,EAAE,eAAe,CAAA;IAClC,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,uBAAuB,CAAC,EAAE,kBAAkB,CAAA;IAC5C,qBAAqB,CAAC,EAAE,kBAAkB,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,WAAW,EAAE,SAAS,CAAA;IACtB,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,SAAS,GAAG,SAAS,CAAA;IACrC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAA;IACtF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC,CAAA;IAC3D,gBAAgB,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,SAAS,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IAC/C,OAAO,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;IAC3C,MAAM,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;IACzC,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IACpD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CACnD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,MAAM,EAAE,EACxD,UAAU,EACV,cAAc,EACd,QAAQ,EACR,cAAc,EACd,YAAiB,EACjB,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,UAAU,GACV,EAAE;IACF,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAA;IACrC,QAAQ,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;IACxD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,gBAAgB,CAAC,EAAE,eAAe,CAAA;IAClC,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,uBAAuB,CAAC,EAAE,kBAAkB,CAAA;IAC5C,qBAAqB,CAAC,EAAE,kBAAkB,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,mBAAmB,CAuKtB"}
1
+ {"version":3,"file":"useDataGridSetup.d.ts","sourceRoot":"","sources":["../src/useDataGridSetup.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.51",
3
+ "version": "0.1.52",
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.51",
19
- "@contember/bindx-react": "0.1.51",
18
+ "@contember/bindx": "0.1.52",
19
+ "@contember/bindx-react": "0.1.52",
20
20
  "@radix-ui/primitive": "^1.1.3",
21
21
  "@radix-ui/react-slot": "^1.2.4"
22
22
  },
@@ -5,7 +5,7 @@
5
5
 
6
6
  import React, { createContext, useContext } from 'react'
7
7
  import type { FilteringState, SortingStateResult, PagingStateResult, SelectionStateResult } from './useDataViewState.js'
8
- import type { ColumnLeafProps } from './columnLeaf.js'
8
+ import type { DataViewColumn } from './columnLeaf.js'
9
9
  import type { EntityAccessor, SelectionMeta } from '@contember/bindx'
10
10
 
11
11
  export type DataViewLoaderState = 'initial' | 'loaded' | 'refreshing' | 'failed'
@@ -26,7 +26,7 @@ export interface DataViewContextValue {
26
26
  readonly sorting: SortingStateResult
27
27
  readonly paging: PagingStateResult
28
28
  readonly selection: SelectionStateResult
29
- readonly columns: readonly ColumnLeafProps[]
29
+ readonly columns: readonly DataViewColumn[]
30
30
  readonly entityType: string
31
31
  readonly items: readonly DataViewItem[]
32
32
  readonly itemCount: number
@@ -84,6 +84,12 @@ interface ListState {
84
84
 
85
85
  const INITIAL_LIST_STATE: ListState = { status: 'loading', items: [] }
86
86
 
87
+ function getRowId(entityType: string, row: Record<string, unknown>): string {
88
+ const id = row['id']
89
+ if (typeof id !== 'string') throw new Error(`${entityType} relation row has no string id`)
90
+ return id
91
+ }
92
+
87
93
  // ============================================================================
88
94
  // Implementation
89
95
  // ============================================================================
@@ -183,12 +189,11 @@ function HasManyDataGridImpl<TEntity extends object>({
183
189
  return
184
190
  }
185
191
 
186
- const items = relation.rows.map((data: Record<string, unknown>) => {
187
- const id = data['id'] as string
188
- dispatcher.dispatch(
189
- setEntityData(targetEntityType, id, data, true),
190
- )
191
- return { id, data: data as object }
192
+ const items = relation.rows.map(data => ({ id: getRowId(targetEntityType, data), data }))
193
+ store.batchNotifications(() => {
194
+ for (const item of items) {
195
+ dispatcher.dispatch(setEntityData(targetEntityType, item.id, item.data, true))
196
+ }
192
197
  })
193
198
 
194
199
  setListState({ status: 'ready', items, totalCount: relation.totalCount })
package/src/columnLeaf.ts CHANGED
@@ -23,13 +23,25 @@ export type ColumnType = 'text' | 'number' | 'date' | 'dateTime' | 'boolean' | '
23
23
 
24
24
  export interface ColumnLeafProps {
25
25
  // ── Core ──
26
- readonly name: string
26
+ /**
27
+ * Identity of the column: the key its visibility is stored under and the key
28
+ * its header and cells are rendered by. Optional here because most call sites
29
+ * let it be derived — see {@link resolveColumnNames}. Pass it explicitly when
30
+ * two columns bind the same field, which would otherwise derive one name.
31
+ */
32
+ readonly name?: string
27
33
  readonly fieldName: string | null
28
34
  readonly fieldRef: FieldRef<unknown> | null
29
35
  readonly sortingField: string | null
30
36
  readonly filterName: string | null
31
37
  readonly filterHandler: FilterHandler<FilterArtifact> | undefined
32
38
  readonly isTextSearchable: boolean
39
+ /**
40
+ * The leaf exists only to register its field — for full-text search, or to
41
+ * pull the field into the query. It is not a column: neither the table nor
42
+ * the visibility list shows it.
43
+ */
44
+ readonly virtual?: boolean
33
45
  readonly columnType?: ColumnType
34
46
  readonly collectSelection?: (collectorProxy: unknown) => void
35
47
 
@@ -64,6 +76,44 @@ export function ColumnLeaf(_props: ColumnLeafProps): null {
64
76
  return null
65
77
  }
66
78
 
79
+ // ============================================================================
80
+ // Column Identity
81
+ // ============================================================================
82
+
83
+ /** A column leaf once its identity is settled — what the view exposes. */
84
+ export interface DataViewColumn extends ColumnLeafProps {
85
+ readonly name: string
86
+ }
87
+
88
+ /**
89
+ * Settle each leaf's identity: the declared name, else the bound field, else the
90
+ * position.
91
+ *
92
+ * Position is the last resort rather than the first, because it is only stable
93
+ * while the column order is — and the name is a persisted visibility key, so a
94
+ * reordered grid would read a stale one. That is also why duplicates are
95
+ * reported instead of being suffixed away.
96
+ */
97
+ export function resolveColumnNames(leaves: readonly ColumnLeafProps[]): DataViewColumn[] {
98
+ const columns = leaves.map((leaf, index): DataViewColumn => ({
99
+ ...leaf,
100
+ name: leaf.name ?? leaf.fieldName ?? `col-${index}`,
101
+ }))
102
+
103
+ const duplicates = columns
104
+ .map(it => it.name)
105
+ .filter((name, index, names) => names.indexOf(name) !== index)
106
+ if (duplicates.length > 0) {
107
+ console.warn(
108
+ `[bindx] DataGrid columns share the name ${[...new Set(duplicates)].map(it => `"${it}"`).join(', ')}. ` +
109
+ `A name keys a column's cells and stores its visibility, so the columns act as one. ` +
110
+ `Give each of them a \`name\` prop.`,
111
+ )
112
+ }
113
+
114
+ return columns
115
+ }
116
+
67
117
  // ============================================================================
68
118
  // Generalized Children Analyzer
69
119
  // ============================================================================
package/src/columns.tsx CHANGED
@@ -186,6 +186,8 @@ export const DataGridHasManyColumn: {
186
186
 
187
187
  export interface DataGridActionColumnProps {
188
188
  children: React.ReactNode | ((entity: EntityAccessor<object>) => React.ReactNode)
189
+ /** Column identity. An action column binds no field, so without this it is named by its position. */
190
+ name?: string
189
191
  header?: React.ReactNode
190
192
  }
191
193
 
@@ -203,7 +205,7 @@ export const DataGridActionColumn = Object.assign(
203
205
 
204
206
  const leafProps: ColumnLeafProps = {
205
207
  columnType: 'action',
206
- name: `action-${Math.random().toString(36).slice(2, 8)}`,
208
+ name: props['name'] as string | undefined,
207
209
  fieldName: null,
208
210
  fieldRef: null,
209
211
  sortingField: null,
@@ -225,10 +227,14 @@ export const DataGridActionColumn = Object.assign(
225
227
 
226
228
  export interface DataGridColumnProps<T> {
227
229
  field?: FieldRef<T>
230
+ /** Column identity. Defaults to the bound field name — pass it when two columns bind one field, or when there is no field. */
231
+ name?: string
228
232
  header?: React.ReactNode
229
233
  sortable?: boolean
230
234
  filter?: boolean
231
235
  filterHandler?: FilterHandler<FilterArtifact>
236
+ /** Register the field without showing a column (e.g. to make it full-text searchable). */
237
+ virtual?: boolean
232
238
  children?: (value: T | null, accessor: EntityAccessor<object>) => React.ReactNode
233
239
  }
234
240
 
@@ -247,7 +253,8 @@ export const DataGridColumn = Object.assign(
247
253
  const children = props['children'] as ((value: unknown, accessor: EntityAccessor<object>) => React.ReactNode) | undefined
248
254
 
249
255
  const leafProps: ColumnLeafProps = {
250
- name: fieldName ?? `col-${Math.random().toString(36).slice(2, 8)}`,
256
+ name: props['name'] as string | undefined,
257
+ virtual: props['virtual'] as boolean | undefined,
251
258
  fieldName,
252
259
  fieldRef: fieldRef ?? null,
253
260
  sortingField: sortable && fieldName ? fieldName : null,
@@ -154,13 +154,22 @@ export function useDataViewElements(): readonly DataViewElementData[] {
154
154
  if (elements) return elements
155
155
  }
156
156
 
157
- // Fallback: derive elements from columns (table layout or no layout markers)
158
- return columns
159
- .filter(c => c.fieldName !== null)
160
- .map(c => ({
161
- name: c.name,
162
- label: c.header,
157
+ // Fallback: derive elements from columns (table layout or no layout markers).
158
+ // Every column is offered — `name` is what the table hides by, so a column
159
+ // with no field of its own is reachable just the same. An empty header is
160
+ // left unset so the label falls back to the formatted name.
161
+ //
162
+ // Columns sharing a name share one visibility flag, so they are listed once
163
+ // rather than as rows that look independent and are not.
164
+ const byName = new Map<string, DataViewElementData>()
165
+ for (const column of columns) {
166
+ if (column.virtual || byName.has(column.name)) continue
167
+ byName.set(column.name, {
168
+ name: column.name,
169
+ label: column.header === '' ? undefined : column.header,
163
170
  fallback: true,
164
- }))
171
+ })
172
+ }
173
+ return [...byName.values()]
165
174
  }, [columns, currentLayout, layoutElements])
166
175
  }
@@ -45,9 +45,13 @@ export interface CreateColumnConfig<TValue, TFilterArtifact extends FilterArtifa
45
45
 
46
46
  export interface ColumnComponentProps<TValue = unknown> {
47
47
  field: FieldRef<TValue>
48
+ /** Column identity. Defaults to the bound field name — pass it when two columns bind one field. */
49
+ name?: string
48
50
  header?: React.ReactNode
49
51
  sortable?: boolean
50
52
  filter?: boolean
53
+ /** Register the field without showing a column (e.g. to make it full-text searchable). */
54
+ virtual?: boolean
51
55
  children?: (value: TValue | null, accessor: EntityAccessor<object>) => React.ReactNode
52
56
  }
53
57
 
@@ -106,7 +110,8 @@ export function createColumnStaticRender<TValue, TFilterArtifact extends FilterA
106
110
  }
107
111
 
108
112
  const leafProps = {
109
- name: fieldName ?? `col-${Math.random().toString(36).slice(2, 8)}`,
113
+ name: props['name'] as string | undefined,
114
+ virtual: props['virtual'] as boolean | undefined,
110
115
  fieldName,
111
116
  fieldRef: fieldRef ?? null,
112
117
  sortingField: sortable && fieldName ? fieldName : null,
@@ -60,8 +60,12 @@ export interface RelationCellWrapperContext {
60
60
 
61
61
  export interface RelationColumnProps<TEntity, TSelected> {
62
62
  field: object
63
+ /** Column identity. Defaults to the bound field name — pass it when two columns bind one relation. */
64
+ name?: string
63
65
  header?: React.ReactNode
64
66
  filter?: boolean
67
+ /** Register the relation without showing a column. */
68
+ virtual?: boolean
65
69
  renderCellWrapper?: (content: React.ReactNode, item: EntityAccessor<object>) => React.ReactNode
66
70
  children: (entity: EntityAccessor<TEntity, TSelected>) => React.ReactNode
67
71
  }
@@ -149,7 +153,8 @@ export function createRelationColumn<TFilterArtifact extends FilterArtifact>(
149
153
  : undefined)
150
154
 
151
155
  return {
152
- name: fieldName ?? `col-${Math.random().toString(36).slice(2, 8)}`,
156
+ name: props['name'] as string | undefined,
157
+ virtual: props['virtual'] as boolean | undefined,
153
158
  fieldName,
154
159
  fieldRef: fieldRef ?? null,
155
160
  sortingField: null,
package/src/export.tsx CHANGED
@@ -123,7 +123,7 @@ export const DataViewExportTrigger = forwardRef<HTMLButtonElement, DataViewExpor
123
123
 
124
124
  try {
125
125
  const visibleColumns = onlyVisible
126
- ? columns.filter((c, i) => selection.isVisible(c.fieldName ?? `col-${i}`))
126
+ ? columns.filter(c => selection.isVisible(c.name))
127
127
  : columns
128
128
 
129
129
  const data = await fetchAllData()
@@ -133,7 +133,7 @@ export const DataViewExportTrigger = forwardRef<HTMLButtonElement, DataViewExpor
133
133
  }
134
134
 
135
135
  const exportColumns = visibleColumns
136
- .filter(c => c.fieldName !== null)
136
+ .filter(c => !c.virtual && c.fieldName !== null)
137
137
  .map(c => ({ name: String(c.header ?? c.fieldName ?? ''), fieldName: c.fieldName }))
138
138
 
139
139
  const { blob, extension } = exportFactory.create({
package/src/index.ts CHANGED
@@ -24,6 +24,8 @@ export {
24
24
  export {
25
25
  ColumnLeaf,
26
26
  type ColumnLeafProps,
27
+ type DataViewColumn,
28
+ resolveColumnNames,
27
29
  extractColumnLeaves,
28
30
  analyzeChildren,
29
31
  type ChildrenAnalysisResult,
@@ -21,7 +21,7 @@ import {
21
21
  mergeSelections,
22
22
  collectSelection,
23
23
  } from '@contember/bindx-react'
24
- import { ColumnLeaf, type ColumnLeafProps, analyzeChildren } from './columnLeaf.js'
24
+ import { ColumnLeaf, type ColumnLeafProps, type DataViewColumn, analyzeChildren, resolveColumnNames } from './columnLeaf.js'
25
25
  import { DataGridToolbarContent, type DataGridToolbarContentProps } from './markers.js'
26
26
  import { DataGridLayout, type DataGridLayoutProps } from './markers.js'
27
27
  import { useFilteringState, useSortingState, usePagingState, useSelectionState } from './useDataViewState.js'
@@ -63,7 +63,7 @@ export interface DataGridCommonProps<TEntity extends object> {
63
63
 
64
64
  export interface DataGridSetupResult {
65
65
  childrenJsx: ReactNode
66
- columns: ColumnLeafProps[]
66
+ columns: DataViewColumn[]
67
67
  selection: SelectionMeta
68
68
  queryKey: string
69
69
  toolbarContent: ReactNode | undefined
@@ -141,7 +141,7 @@ export function useDataGridSetup<TEntity extends object>({
141
141
  return runtimeColumns
142
142
  }
143
143
 
144
- const runtimeBoundColumns = cols.map((column, index): ColumnLeafProps => ({
144
+ const runtimeBoundColumns = resolveColumnNames(cols).map((column, index): DataViewColumn => ({
145
145
  ...column,
146
146
  renderCell: accessor => {
147
147
  const runtimeColumn = getRuntimeColumns(accessor)[index]