zova-module-a-table 5.1.44 → 5.1.46

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.
@@ -1,6 +1,6 @@
1
1
  import type { TypeControllerInnerProps } from 'zova';
2
- import type { ControllerTableProps } from '../../component/table/controller.jsx';
3
- import { ControllerTable } from '../../component/table/controller.jsx';
2
+ import type { ControllerTableProps } from '../../component/table/controller.tsx';
3
+ import { ControllerTable } from '../../component/table/controller.tsx';
4
4
  export type ZTableProps<TData extends {} = {}> = {
5
5
  controllerRef?: (ref: ControllerTable<TData>) => void;
6
6
  } & ControllerTableProps<TData>;
@@ -1,5 +1,5 @@
1
1
  /** controller: begin */
2
- export * from '../component/table/controller.jsx';
2
+ export * from '../component/table/controller.tsx';
3
3
  import 'zova';
4
4
  declare module 'zova' {
5
5
  }
@@ -9,7 +9,7 @@ declare module 'zova-module-a-table' {
9
9
  }
10
10
  /** controller: end */
11
11
  /** controller: begin */
12
- import { ControllerTable } from '../component/table/controller.jsx';
12
+ import type { ControllerTable } from '../component/table/controller.tsx';
13
13
  import 'zova';
14
14
  declare module 'zova' {
15
15
  interface IBeanRecordLocal {
@@ -18,8 +18,8 @@ declare module 'zova' {
18
18
  }
19
19
  /** controller: end */
20
20
  /** components: begin */
21
- export * from './component/table.js';
22
- import { ZTable } from './component/table.js';
21
+ export * from './component/table.ts';
22
+ import { ZTable } from './component/table.ts';
23
23
  export declare const components: {
24
24
  table: new <TData extends {} = {}>(props: ({
25
25
  controllerRef?: ((ref: ControllerTable<TData>) => void) | undefined;
@@ -59,7 +59,7 @@ declare module 'zova' {
59
59
  }
60
60
  /** components: end */
61
61
  /** render: begin */
62
- export * from '../component/table/render.jsx';
62
+ export * from '../component/table/render.tsx';
63
63
  import 'zova';
64
64
  declare module 'zova' {
65
65
  }
@@ -69,7 +69,7 @@ declare module 'zova-module-a-table' {
69
69
  }
70
70
  /** render: end */
71
71
  /** render: begin */
72
- import { RenderTable } from '../component/table/render.jsx';
72
+ import type { RenderTable } from '../component/table/render.tsx';
73
73
  import 'zova';
74
74
  declare module 'zova' {
75
75
  interface IBeanRecordLocal {
@@ -78,8 +78,8 @@ declare module 'zova' {
78
78
  }
79
79
  /** render: end */
80
80
  /** config: begin */
81
- export * from '../config/config.js';
82
- import { config } from '../config/config.js';
81
+ export * from '../config/config.ts';
82
+ import { config } from '../config/config.ts';
83
83
  /** config: end */
84
84
  /** scope: begin */
85
85
  import { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,wBAAwB;AACxB,cAAc,mCAAmC,CAAC;AAElD,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAE7B,UAAiB,eAAe;KAG/B;CACR;AACD,sBAAsB;AACtB,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,0BAA0B,EAAE,eAAe,CAAC;KAC7C;CACF;AACD,sBAAsB;AAEtB,wBAAwB;AACxB,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEtB,CAAC;AACF,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACtB,UAAiB,gBAAgB;QAC/B,eAAe,EAAE,eAAe,CAAC;KAClC;IACD,UAAiB,oBAAoB;QACnC,eAAe,EAAE,OAAO,MAAM,CAAC;KAChC;CACA;AACD,sBAAsB;AACtB,oBAAoB;AACpB,cAAc,+BAA+B,CAAC;AAE9C,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAE7B,UAAiB,WAAW;KAG3B;CACR;AACD,kBAAkB;AAClB,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,sBAAsB,EAAE,WAAW,CAAC;KACrC;CACF;AACD,kBAAkB;AAClB,oBAAoB;AACpB,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,kBAAkB;AAClB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAG3E,qBACa,iBAAkB,SAAQ,aAAa;CAAG;AAEvD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC,OAAO,MAAM,CAAC,CAAC;CACvC;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,iBAAiB,CAAC;KAC9B;IAED,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;KACtC;CAKF;AAED,iBAAiB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,wBAAwB;AACxB,cAAc,mCAAmC,CAAC;AAElD,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAE7B,UAAiB,eAAe;KAG/B;CACR;AACD,sBAAsB;AACtB,wBAAwB;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,0BAA0B,EAAE,eAAe,CAAC;KAC7C;CACF;AACD,sBAAsB;AAEtB,wBAAwB;AACxB,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEtB,CAAC;AACF,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACtB,UAAiB,gBAAgB;QAC/B,eAAe,EAAE,eAAe,CAAC;KAClC;IACD,UAAiB,oBAAoB;QACnC,eAAe,EAAE,OAAO,MAAM,CAAC;KAChC;CACA;AACD,sBAAsB;AACtB,oBAAoB;AACpB,cAAc,+BAA+B,CAAC;AAE9C,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAE7B,UAAiB,WAAW;KAG3B;CACR;AACD,kBAAkB;AAClB,oBAAoB;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,sBAAsB,EAAE,WAAW,CAAC;KACrC;CACF;AACD,kBAAkB;AAClB,oBAAoB;AACpB,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,kBAAkB;AAClB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAG3E,qBACa,iBAAkB,SAAQ,aAAa;CAAG;AAEvD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC,OAAO,MAAM,CAAC,CAAC;CACvC;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,iBAAiB,CAAC;KAC9B;IAED,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;KACtC;CAKF;AAED,iBAAiB"}
@@ -1,3 +1,3 @@
1
1
  export declare const __ThisModule__ = "a-table";
2
- export { ScopeModuleATable as ScopeModule } from './index.js';
2
+ export { ScopeModuleATable as ScopeModule } from './index.ts';
3
3
  //# sourceMappingURL=this.d.ts.map
@@ -1,18 +1,20 @@
1
1
  import type { IResourceDetailsActionRowOptionsBase, IResourceTableActionRowOptionsBase, ISchemaObjectExtensionField, TypeTableCellRenderComponent, TypeTableCellRenderComponentProvider } from 'zova-module-a-openapi';
2
2
  import { celEnvBase } from '@cabloy/utils';
3
- import { CellContext, OnChangeFn, Row, RowSelectionState, SortingState } from '@tanstack/vue-table';
3
+ import { CellContext, ColumnSizingState, OnChangeFn, Row, RowSelectionState, SortingState } from '@tanstack/vue-table';
4
4
  import { SchemaObject } from 'openapi3-ts/oas31';
5
5
  import { VNode } from 'vue';
6
6
  import { ZovaJsx } from 'zova-jsx';
7
- import type { ITableMeta, TypeColumn, TypeTableGetColumns } from '../../types/table.js';
8
- import type { IJsxRenderContextTableCell } from '../../types/tableCell.js';
9
- import type { IJsxRenderContextTableColumn, ITableCellScope, ITableColumnScope, ITableScope } from '../../types/tableColumn.js';
10
- import type { ITableLayout } from '../../types/tableLayout.js';
11
- import { BeanControllerTableBase } from '../../lib/beanControllerTableBase.js';
12
- import { ITableCellRenderColumnOptions } from '../../types/tableColumn.js';
7
+ import type { ITableMeta, TypeColumn, TypeTableGetColumns } from '../../types/table.ts';
8
+ import type { IJsxRenderContextTableCell } from '../../types/tableCell.ts';
9
+ import type { IJsxRenderContextTableColumn, ITableCellScope, ITableColumnScope, ITableScope } from '../../types/tableColumn.ts';
10
+ import type { ITableLayout } from '../../types/tableLayout.ts';
11
+ import { BeanControllerTableBase } from '../../lib/beanControllerTableBase.ts';
12
+ import { ITableCellRenderColumnOptions } from '../../types/tableColumn.ts';
13
13
  export interface ControllerTableProps<TData extends {} = {}> {
14
14
  data?: TData[];
15
15
  layout?: ITableLayout;
16
+ compact?: boolean;
17
+ columnSizing?: ColumnSizingState;
16
18
  schema?: SchemaObject;
17
19
  schemaOrder?: SchemaObject;
18
20
  sorting?: SortingState;
@@ -36,6 +38,7 @@ export declare class ControllerTable<TData extends {} = {}> extends BeanControll
36
38
  protected __init__(): Promise<void>;
37
39
  get schema(): SchemaObject | undefined;
38
40
  get data(): TData[] | undefined;
41
+ get compact(): boolean;
39
42
  get sorting(): SortingState;
40
43
  get rowSelection(): RowSelectionState;
41
44
  get layout(): ITableLayout;
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/table/controller.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/table/controller.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './.metadata/index.js';
2
- export * from './lib/index.js';
3
- export * from './types/index.js';
1
+ export * from './.metadata/index.ts';
2
+ export * from './lib/index.ts';
3
+ export * from './types/index.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -135,6 +135,9 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
135
135
  get data() {
136
136
  return this.$props.data;
137
137
  }
138
+ get compact() {
139
+ return this.$props.compact ?? false;
140
+ }
138
141
  get sorting() {
139
142
  return this.$props.sorting ?? [];
140
143
  }
@@ -150,7 +153,6 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
150
153
  async refreshMeta() {
151
154
  this.tableMeta = await this._createTableMeta();
152
155
  this.columns = await this._createColumns();
153
- this.table?.setColumnPinning(this._getColumnPinning());
154
156
  }
155
157
  _createTable() {
156
158
  const self = this;
@@ -179,6 +181,9 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
179
181
  },
180
182
  get columnSizing() {
181
183
  return self._getColumnSizing();
184
+ },
185
+ get columnPinning() {
186
+ return self._getColumnPinning();
182
187
  }
183
188
  },
184
189
  onSortingChange: (updater) => {
@@ -189,9 +194,6 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
189
194
  const rowSelection = functionalUpdate(updater, self.rowSelection);
190
195
  self.$props.onRowSelectionChange?.(rowSelection);
191
196
  },
192
- get initialState() {
193
- return { columnPinning: self._getColumnPinning() };
194
- },
195
197
  get data() {
196
198
  return self.data || [];
197
199
  },
@@ -200,7 +202,6 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
200
202
  }
201
203
  };
202
204
  this.table = this.$useTable(tableOptions);
203
- this.table.setColumnPinning(this._getColumnPinning());
204
205
  }
205
206
  async _createColumns() {
206
207
  if (!this.properties) return [];
@@ -277,9 +278,16 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
277
278
  return this.$props.enableRowSelection ? ["$$selection", ...keys] : keys;
278
279
  }
279
280
  _getColumnSizing() {
280
- return Object.fromEntries(this.layout.columns.filter((column) => typeof column.width === "number").map((column) => [column.key, column.width]));
281
+ return {
282
+ ...Object.fromEntries(this.layout.columns.filter((column) => typeof column.width === "number").map((column) => [column.key, column.width])),
283
+ ...this.$props.columnSizing
284
+ };
281
285
  }
282
286
  _getColumnPinning() {
287
+ if (this.compact) return {
288
+ left: [],
289
+ right: []
290
+ };
283
291
  const left = this.$props.enableRowSelection ? ["$$selection"] : [];
284
292
  const right = [];
285
293
  for (const property of this.tableMeta?.properties ?? []) {
@@ -566,8 +574,6 @@ var config = (_sys) => {
566
574
  };
567
575
  //#endregion
568
576
  //#region src/.metadata/index.ts
569
- /** config: end */
570
- /** scope: begin */
571
577
  var _dec;
572
578
  var _dec2;
573
579
  var _class;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["celEnvBase","isNilOrEmptyString","createColumnHelper","functionalUpdate","getCoreRowModel","appResource","beanFullNameFromOnionName","cast","deepEqual","deepExtend","objectAssignReactive","isJsxComponent","ZovaJsx","Controller","BeanControllerTableBase","TableColumnIdSelection","reconcileTableLayout","ControllerTable","_dec","_dec2","__z_BeanInfo","module","_class","_ControllerTable","constructor","args","properties","columns","tableMeta","zovaJsx","columnCelEnv","__init__","bean","_setBean","_getColumnCelEnv","_newBeanSimple","undefined","_createProperties","refreshMeta","$watch","$props","schema","newValue","oldValue","enableRowSelection","layout","_createTable","data","sorting","rowSelection","layoutProperties","_createTableMeta","_createColumns","table","setColumnPinning","_getColumnPinning","self","tableOptions","getRowId","originalRow","index","parent","_getRowId","renderFallbackValue","scope","config","manualPagination","manualSorting","enableMultiSort","enableSortingRemoval","row","_canSelectRow","enableMultiRowSelection","selectionMode","state","columnVisibility","_getColumnVisibility","columnOrder","_getColumnOrder","columnSizing","_getColumnSizing","onSortingChange","updater","slice","onRowSelectionChange","initialState","columnPinning","$useTable","getColumns","_createColumnsMiddle","key","render","columnScope","getColumnScope","jsxRenderContext","getColumnJsxRenderContext","visible","columnProps","getColumnComponentPropsTop","_createColumnRender","columnHelper","display","id","header","cell","size","enableSorting","meta","rest","fixed","width","align","property","push","accessor","_props","title","props","renders","_getLayoutWidth","_isOrderable","sortDescFirst","String","originalId","original","getParentRow","_getLayoutColumn","find","column","Object","fromEntries","filter","map","keys","left","right","schemaOrder","schemaKey","schemaKeys","some","prototype","hasOwnProperty","call","$computed","$sdk","loadSchemaProperties","promises","res","Promise","all","_item","item","forEach","celScope","app","ctx","$scene","$host","$celScope","$jsx","$$table","getCellJsxRenderContext","cellContext","cellRenderPrepare","Array","isArray","renderProviders","getRenderProvider","renderProvider","includes","_getBean","renderContext","beanInstance","beanOptions","getBean","onionOptions","options","checkVisible","_cellRender","cellRender","cellScope","_getBeanSyncOnly","cellProps","setTransientObject","getValue","name","_cellRenderInner","value","fallbackValue","cellProps2","renderJsxProps","class","style","$cssMerge","$style","children","length","renderJsxChildrenDirect","getColumnProperty","celEnv","clone","registerFunction","transientObject","defaultValue","scopeExtra","tableScope","_getColumnComponentPropsTopByRest","_renderContext","evaluateExpression","assign","$propsDefault","FlexRender","BeanRenderBase","Render","TableColumnIdSelection","RenderTable","_dec","_dec2","__z_BeanInfo","module","_class","_getColumnStyle","column","rest","columnDef","meta","fixed","getIsPinned","width","getSize","minWidth","textAlign","align","position","undefined","left","getStart","right","getAfter","zIndex","_renderTableDefault","table","selectionMode","$props","_createVNode","getFlatHeaders","map","header","canSort","getCanSort","sorted","getIsSorted","headerDefinition","selection","id","headerContent","getIsAllPageRowsSelected","getIsSomePageRowsSelected","getRowModel","rows","every","row","getCanSelect","getToggleAllPageRowsSelectedHandler","getContext","sortAria","sortIcon","getToggleSortingHandler","getIsSelected","getVisibleCells","cell","getToggleSelectedHandler","render","$slotDefault"],"sources":["../src/lib/beanControllerTableBase.ts","../src/types/table.ts","../src/types/tableLayout.ts","../src/component/table/controller.tsx","../src/component/table/render.tsx","../src/.metadata/component/table.ts","../src/config/config.ts","../src/.metadata/index.ts","../src/lib/beanControllerPageTableBase.ts","../src/lib/tableCell.ts"],"sourcesContent":["import { useVueTable } from '@tanstack/vue-table';\nimport { markRaw } from 'vue';\nimport { BeanControllerBase } from 'zova';\nexport class BeanControllerTableBase extends BeanControllerBase {\n constructor(...args) {\n super(...args);\n this.table = void 0;\n }\n get layout() {\n throw new Error('should implement layout');\n }\n get layoutProperties() {\n throw new Error('should implement layoutProperties');\n }\n $useTable(initialOptions) {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useVueTable(initialOptions));\n });\n }\n async refreshMeta() {\n throw new Error('should implement refreshMeta');\n }\n}","export const TableColumnIdSelection = '$$selection';","import { TableColumnIdSelection } from './table.js';\nfunction isWidth(value) {\n return value === 'auto' || typeof value === 'number' && Number.isInteger(value) && value >= 1 && value <= 2000;\n}\n\n/**\n * Reconciles a persisted layout with the currently eligible schema columns.\n * Schema visibility and fixed regions always remain authoritative.\n */\nexport function reconcileTableLayout(properties, profile) {\n const entries = new Map();\n const profileColumns = Array.isArray(profile?.columns) ? profile.columns : [];\n for (const item of profileColumns) {\n if (!item || typeof item !== 'object') continue;\n const column = item;\n const key = typeof column.key === 'string' ? column.key.trim() : '';\n if (!key || entries.has(key)) continue;\n if (typeof column.visible !== 'boolean' || !isWidth(column.width)) continue;\n entries.set(key, {\n key,\n visible: column.visible,\n width: column.width\n });\n }\n const eligible = properties.filter(property => typeof property.key === 'string' && property.key && property.key !== TableColumnIdSelection);\n const schemaKeys = new Set(eligible.map(property => property.key));\n const regions = new Map();\n regions.set('left', []);\n regions.set('center', []);\n regions.set('right', []);\n for (const property of eligible) {\n const fixed = property.rest?.fixed;\n regions.get(fixed === 'left' ? 'left' : fixed === 'right' ? 'right' : 'center').push(property);\n }\n const result = [];\n for (const region of ['left', 'center', 'right']) {\n const regionProperties = regions.get(region);\n const regionKeys = new Set(regionProperties.map(property => property.key));\n const ordered = profileColumns.map(item => item && typeof item === 'object' ? item : undefined).filter(item => {\n const key = typeof item?.key === 'string' ? item.key.trim() : '';\n return !!key && regionKeys.has(key) && schemaKeys.has(key) && entries.get(key)?.key === key;\n }).map(item => item.key);\n const seen = new Set();\n for (const key of [...ordered, ...regionProperties.map(property => property.key)]) {\n if (seen.has(key)) continue;\n seen.add(key);\n const property = regionProperties.find(item => item.key === key);\n const entry = entries.get(key);\n const schemaWidth = property.rest?.width;\n result.push({\n key,\n visible: entry?.visible ?? true,\n width: entry?.width ?? (typeof schemaWidth === 'number' && schemaWidth > 0 ? schemaWidth : 'auto')\n });\n }\n }\n return {\n version: 1,\n ...(typeof profile?.schemaFingerprint === 'string' ? {\n schemaFingerprint: profile.schemaFingerprint\n } : {}),\n columns: result\n };\n}","import type {\n IResourceDetailsActionRowOptionsBase,\n IResourceTableActionRowOptionsBase,\n ISchemaObjectExtensionField,\n ISchemaObjectExtensionFieldRest,\n TypeTableCellRenderComponent,\n TypeTableCellRenderComponentProvider,\n} from 'zova-module-a-openapi';\n\nimport { celEnvBase, isNilOrEmptyString } from '@cabloy/utils';\nimport {\n CellContext,\n createColumnHelper,\n functionalUpdate,\n getCoreRowModel,\n OnChangeFn,\n Row,\n RowSelectionState,\n SortingState,\n TableOptionsWithReactiveData,\n} from '@tanstack/vue-table';\nimport { SchemaObject } from 'openapi3-ts/oas31';\nimport { VNode } from 'vue';\nimport {\n appResource,\n beanFullNameFromOnionName,\n cast,\n deepEqual,\n deepExtend,\n objectAssignReactive,\n} from 'zova';\nimport { isJsxComponent, ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\n\nimport type { ITableMeta, TypeColumn, TypeTableGetColumns } from '../../types/table.js';\nimport type {\n IDecoratorTableCellOptions,\n IJsxRenderContextTableCell,\n ITableCellRender,\n} from '../../types/tableCell.js';\nimport type {\n IJsxRenderContextTableColumn,\n ITableCellRenderColumnProps,\n ITableCellScope,\n ITableColumnScope,\n ITableScope,\n TypeTableCellRender,\n} from '../../types/tableColumn.js';\nimport type { ITableLayout } from '../../types/tableLayout.js';\n\nimport { BeanControllerTableBase } from '../../lib/beanControllerTableBase.js';\nimport { TableColumnIdSelection } from '../../types/table.js';\nimport { ITableCellRenderColumnOptions } from '../../types/tableColumn.js';\nimport { reconcileTableLayout } from '../../types/tableLayout.js';\n\nexport interface ControllerTableProps<TData extends {} = {}> {\n data?: TData[];\n layout?: ITableLayout;\n schema?: SchemaObject;\n schemaOrder?: SchemaObject;\n sorting?: SortingState;\n onSortingChange?: OnChangeFn<SortingState>;\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean);\n selectionMode?: 'single' | 'multiple';\n rowSelection?: RowSelectionState;\n onRowSelectionChange?: OnChangeFn<RowSelectionState>;\n tableScope?: ITableScope;\n getColumns?: TypeTableGetColumns<TData>;\n slotDefault?: (table: ControllerTable<TData>) => VNode;\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;\n}\n\n@Controller()\nexport class ControllerTable<TData extends {} = {}> extends BeanControllerTableBase<TData> {\n static $propsDefault = {};\n\n // table: TypeTable<TData>; // in BeanControllerTableBase\n\n properties: ISchemaObjectExtensionField[] | undefined;\n columns: TypeColumn<TData>[];\n tableMeta: ITableMeta<TData>;\n zovaJsx: ZovaJsx;\n columnCelEnv: typeof celEnvBase;\n\n protected async __init__() {\n this.bean._setBean('$$table', this);\n // jsx\n this.columnCelEnv = this._getColumnCelEnv();\n this.zovaJsx = this.bean._newBeanSimple(ZovaJsx, false, undefined, this.columnCelEnv);\n // properties\n this._createProperties();\n // tableMeta/columns\n await this.refreshMeta();\n // watch\n this.$watch(\n () => this.$props.schema,\n async (newValue, oldValue) => {\n if (deepEqual(newValue, oldValue)) return;\n await this.refreshMeta();\n },\n );\n this.$watch(\n () => this.$props.enableRowSelection,\n async (newValue, oldValue) => {\n if (newValue === oldValue) return;\n await this.refreshMeta();\n },\n );\n this.$watch(\n () => this.$props.layout,\n async (newValue, oldValue) => {\n if (deepEqual(newValue, oldValue)) return;\n await this.refreshMeta();\n },\n );\n // table\n this._createTable();\n }\n\n public get schema() {\n return this.$props.schema;\n }\n\n public get data() {\n return this.$props.data;\n }\n\n public get sorting() {\n return this.$props.sorting ?? [];\n }\n\n public get rowSelection() {\n return this.$props.rowSelection ?? {};\n }\n\n public get layout(): ITableLayout {\n return reconcileTableLayout(this.layoutProperties, this.$props.layout);\n }\n\n public get layoutProperties(): readonly ISchemaObjectExtensionField[] {\n return this.tableMeta?.properties ?? [];\n }\n\n public async refreshMeta() {\n this.tableMeta = await this._createTableMeta();\n this.columns = await this._createColumns();\n this.table?.setColumnPinning(this._getColumnPinning());\n }\n\n private _createTable() {\n // eslint-disable-next-line\n const self = this;\n const tableOptions: TableOptionsWithReactiveData<TData> = {\n getRowId: (originalRow, index, parent) => this._getRowId(originalRow, index, parent),\n getCoreRowModel: getCoreRowModel(),\n renderFallbackValue: this.scope.config.renderFallbackValue,\n manualPagination: true,\n manualSorting: true,\n enableMultiSort: false,\n enableSortingRemoval: false,\n enableRowSelection: row => self._canSelectRow(row),\n enableMultiRowSelection: this.$props.selectionMode !== 'single',\n state: {\n get sorting() {\n return self.sorting;\n },\n get rowSelection() {\n return self.rowSelection;\n },\n get columnVisibility() {\n return self._getColumnVisibility();\n },\n get columnOrder() {\n return self._getColumnOrder();\n },\n get columnSizing() {\n return self._getColumnSizing();\n },\n },\n onSortingChange: updater => {\n const sorting = functionalUpdate(updater, self.sorting).slice(0, 1);\n self.$props.onSortingChange?.(sorting);\n },\n onRowSelectionChange: updater => {\n const rowSelection = functionalUpdate(updater, self.rowSelection);\n self.$props.onRowSelectionChange?.(rowSelection);\n },\n get initialState() {\n const columnPinning = self._getColumnPinning();\n return { columnPinning };\n },\n get data() {\n return self.data || [];\n },\n get columns() {\n return self.columns;\n },\n };\n this.table = this.$useTable(tableOptions);\n this.table.setColumnPinning(this._getColumnPinning());\n }\n\n private async _createColumns() {\n if (!this.properties) return [];\n const columns = !this.$props.getColumns\n ? await this._createColumnsMiddle(this.tableMeta.properties)\n : await this.$props.getColumns(\n async properties => {\n return await this._createColumnsMiddle(properties ?? this.tableMeta.properties);\n },\n async (\n key: string,\n render: TypeTableCellRenderComponent,\n ): Promise<TypeTableCellRender<TData, any> | undefined> => {\n // columnScope\n const columnScope = this.getColumnScope(key);\n // renderContext\n const jsxRenderContext = this.getColumnJsxRenderContext(columnScope);\n // columnProps\n const { visible, columnProps } = this.getColumnComponentPropsTop(\n key,\n columnScope,\n jsxRenderContext,\n );\n // visible\n if (visible === false) return;\n return await this._createColumnRender(\n render,\n columnProps,\n columnScope,\n jsxRenderContext,\n );\n },\n this,\n );\n if (!this.$props.enableRowSelection) return columns;\n const columnHelper = createColumnHelper<TData>();\n return [\n columnHelper.display({\n id: TableColumnIdSelection,\n header: '',\n cell: '',\n size: 48,\n enableSorting: false,\n meta: { rest: { fixed: 'left', width: 48, align: 'center' } },\n }),\n ...columns,\n ];\n }\n\n private async _createColumnsMiddle(\n properties: ISchemaObjectExtensionField[],\n ): Promise<TypeColumn<TData>[]> {\n const tableMeta = this.tableMeta;\n const columnHelper = createColumnHelper<TData>();\n const columns: TypeColumn<TData>[] = [];\n for (const property of properties) {\n const key = property.key!;\n columns.push(\n columnHelper.accessor(key as any, {\n id: key,\n header: _props => {\n return property?.title || key;\n },\n cell: props => tableMeta.renders[key](props),\n size: this._getLayoutWidth(key),\n enableSorting: property.rest?.enableSorting === true && this._isOrderable(property),\n sortDescFirst: property.rest?.sortDescFirst === true,\n meta: {\n rest: {\n ...property.rest,\n width: this._getLayoutWidth(key),\n },\n },\n }),\n );\n }\n return columns;\n }\n\n private _getRowId(originalRow: TData, index: number, parent?: Row<TData>) {\n const id = this.$props.getRowId?.(originalRow, index, parent) ?? cast(originalRow).id;\n if (isNilOrEmptyString(id)) {\n return `__unselectable_${parent ? `${parent.id}.` : ''}${index}`;\n }\n return String(id);\n }\n\n private _canSelectRow(row: Row<TData>) {\n const enableRowSelection = this.$props.enableRowSelection;\n if (!enableRowSelection) return false;\n const originalId =\n this.$props.getRowId?.(row.original, row.index, row.getParentRow()) ?? cast(row.original).id;\n if (isNilOrEmptyString(originalId)) return false;\n return typeof enableRowSelection === 'function' ? enableRowSelection(row) : true;\n }\n\n private _getLayoutColumn(key: string) {\n return this.layout.columns.find(column => column.key === key);\n }\n\n private _getLayoutWidth(key: string) {\n const width = this._getLayoutColumn(key)?.width;\n return typeof width === 'number' ? width : undefined;\n }\n\n private _getColumnVisibility() {\n return Object.fromEntries(\n this.layout.columns\n .filter(column => column.key !== TableColumnIdSelection)\n .map(column => [column.key, column.visible]),\n );\n }\n\n private _getColumnOrder() {\n const keys = this.layout.columns.map(column => column.key);\n return this.$props.enableRowSelection ? [TableColumnIdSelection, ...keys] : keys;\n }\n\n private _getColumnSizing() {\n return Object.fromEntries(\n this.layout.columns\n .filter(column => typeof column.width === 'number')\n .map(column => [column.key, column.width as number]),\n );\n }\n\n private _getColumnPinning() {\n const left: string[] = this.$props.enableRowSelection ? [TableColumnIdSelection] : [];\n const right: string[] = [];\n for (const property of this.tableMeta?.properties ?? []) {\n const fixed = property.rest?.fixed;\n if (fixed === 'left') left.push(property.key!);\n if (fixed === 'right') right.push(property.key!);\n }\n return { left, right };\n }\n\n private _isOrderable(property: ISchemaObjectExtensionField) {\n const properties = this.$props.schemaOrder?.properties;\n if (!properties) return false;\n const keys = [property.key, property.schemaKey, ...(property.schemaKeys ?? [])];\n return keys.some(key => key && Object.prototype.hasOwnProperty.call(properties, key));\n }\n\n private _createProperties() {\n this.properties = this.$computed(() => {\n return this.$sdk.loadSchemaProperties(this.schema, 'table');\n });\n }\n\n private async _createTableMeta() {\n let properties: ISchemaObjectExtensionField[] = [];\n const renders: Record<string, TypeTableCellRender<TData>> = {};\n if (!this.properties) return { properties, renders };\n const promises: Promise<any>[] = [];\n for (const property of this.properties) {\n const key = property.key!;\n // columnScope\n const columnScope = this.getColumnScope(key);\n // renderContext\n const jsxRenderContext = this.getColumnJsxRenderContext(columnScope);\n // columnProps\n const { visible, render, columnProps } = this.getColumnComponentPropsTop(\n key,\n columnScope,\n jsxRenderContext,\n );\n // visible\n if (visible === false) continue;\n // property\n properties.push(property);\n // render\n promises.push(this._createColumnRender(render, columnProps, columnScope, jsxRenderContext));\n }\n let res = await Promise.all(promises);\n properties = properties.filter((_item, index) => !!res[index]);\n res = res.filter(item => !!item);\n properties.forEach((item, index) => {\n renders[item.key!] = res[index];\n });\n return { properties, renders };\n }\n\n public getColumnJsxRenderContext(celScope: ITableColumnScope): IJsxRenderContextTableColumn {\n return {\n app: this.app,\n ctx: this.ctx,\n $scene: 'tableColumn',\n $host: this,\n $celScope: celScope,\n $jsx: this.zovaJsx,\n $$table: this,\n };\n }\n\n public getCellJsxRenderContext(\n celScope: ITableCellScope,\n cellContext: CellContext<TData, any>,\n ): IJsxRenderContextTableCell {\n return {\n app: this.app,\n ctx: this.ctx,\n $scene: 'tableCell',\n $host: this,\n $celScope: celScope,\n $jsx: this.zovaJsx,\n $$table: this,\n cellContext,\n };\n }\n\n public async cellRenderPrepare(\n renders: TypeTableCellRenderComponent | TypeTableCellRenderComponent[],\n ) {\n if (!Array.isArray(renders)) renders = [renders];\n const renderProviders = renders.map(item => this.getRenderProvider(item));\n const promises: Promise<any>[] = renderProviders.map(renderProvider =>\n (async () => {\n if (typeof renderProvider === 'string' && renderProvider.includes('.tableCell.')) {\n return await this.app.bean._getBean(renderProvider as any, true);\n }\n })(),\n );\n return await Promise.all(promises);\n }\n\n private async _createColumnRender(\n render: TypeTableCellRenderComponent | undefined,\n columnProps: ITableCellRenderColumnProps | undefined,\n columnScope: ITableColumnScope,\n renderContext: IJsxRenderContextTableColumn,\n ): Promise<TypeTableCellRender<TData, any> | undefined> {\n // renderProvider\n const renderProvider = this.getRenderProvider(render);\n // beanInstance\n let beanInstance: ITableCellRender | undefined;\n if (typeof renderProvider === 'string' && renderProvider.includes('.tableCell.')) {\n beanInstance = await this.app.bean._getBean(renderProvider as any, true);\n const beanOptions = appResource.getBean(renderProvider as any);\n const onionOptions = beanOptions?.options as IDecoratorTableCellOptions | undefined;\n columnProps = deepExtend({}, onionOptions, columnProps);\n // should not eval jsx columnProps\n // columnProps = this.zovaJsx.renderJsxProps(columnProps as any, {}, columnScope, renderContext) as any;\n if (\n beanInstance?.checkVisible &&\n !(await beanInstance.checkVisible(columnProps as any, renderContext))\n ) {\n return;\n }\n }\n return cellContext => {\n if (!cellContext) return;\n return this._cellRender(\n render,\n columnProps,\n columnScope,\n cellContext,\n renderProvider,\n beanInstance,\n undefined,\n undefined,\n undefined,\n );\n };\n }\n\n public cellRender(\n render: TypeTableCellRenderComponent,\n columnProps: IResourceTableActionRowOptionsBase | IResourceDetailsActionRowOptionsBase,\n renderContext: IJsxRenderContextTableCell,\n ) {\n // render\n const cellScope = renderContext.$celScope;\n // renderProvider\n const renderProvider = this.getRenderProvider(render);\n // beanInstance\n let beanInstance: ITableCellRender | undefined;\n if (typeof renderProvider === 'string' && renderProvider.includes('.tableCell.')) {\n beanInstance = this.app.bean._getBeanSyncOnly(renderProvider as any);\n const beanOptions = appResource.getBean(renderProvider as any);\n const onionOptions = beanOptions?.options as IDecoratorTableCellOptions | undefined;\n columnProps = deepExtend({}, onionOptions, columnProps);\n // should not eval jsx columnProps\n // columnProps = this.zovaJsx.renderJsxProps(columnProps as any, {}, renderContext.$celScope, renderContext) as any;\n }\n // const cellProps = isJsxComponent(render) ? Object.assign({}, columnProps, cast(render).props) : columnProps;\n const cellProps = columnProps;\n return this._cellRender(\n render,\n columnProps as ITableCellRenderColumnProps,\n undefined,\n renderContext.cellContext,\n renderProvider,\n beanInstance,\n cellProps,\n cellScope,\n renderContext,\n );\n }\n\n private _cellRender(\n render: TypeTableCellRenderComponent | undefined,\n columnProps: ITableCellRenderColumnProps | undefined,\n columnScope: ITableColumnScope | undefined,\n cellContext: CellContext<TData, any>,\n renderProvider: TypeTableCellRenderComponentProvider,\n beanInstance: ITableCellRender | undefined,\n cellProps: any | undefined,\n cellScope: ITableCellScope | undefined,\n jsxRenderContext: IJsxRenderContextTableCell | undefined,\n ) {\n return this.zovaJsx.setTransientObject(\n {\n getValue: (name: string) => {\n return cellContext.row.getValue(name);\n },\n },\n () => {\n return this._cellRenderInner(\n render,\n columnProps,\n columnScope,\n cellContext,\n renderProvider,\n beanInstance,\n cellProps,\n cellScope,\n jsxRenderContext,\n );\n },\n );\n }\n\n private _cellRenderInner(\n render: TypeTableCellRenderComponent | undefined,\n columnProps: ITableCellRenderColumnProps | undefined,\n columnScope: ITableColumnScope | undefined,\n cellContext: CellContext<TData, any>,\n renderProvider: TypeTableCellRenderComponentProvider,\n beanInstance: ITableCellRender | undefined,\n cellProps: any | undefined,\n cellScope: ITableCellScope | undefined,\n jsxRenderContext: IJsxRenderContextTableCell | undefined,\n ) {\n // value\n const value = cellContext.getValue();\n // renderFallbackValue\n const fallbackValue = this.table.options.renderFallbackValue;\n // cellScope\n if (!cellScope) {\n cellScope = objectAssignReactive({}, columnScope, { value, fallbackValue })!;\n }\n // render: text\n if (renderProvider === ('text' as TypeTableCellRenderComponent)) {\n return isNilOrEmptyString(value) ? fallbackValue : value;\n }\n // renderContext\n if (!jsxRenderContext) {\n jsxRenderContext = this.getCellJsxRenderContext(cellScope, cellContext);\n }\n // beanInstance\n if (beanInstance) {\n // jsx: props\n if (!cellProps) {\n // cellProps = isJsxComponent(render) ? Object.assign({}, columnProps, cast(render).props) : columnProps;\n cellProps = columnProps;\n }\n const cellProps2 = this.zovaJsx.renderJsxProps(\n cellProps,\n {},\n cellScope,\n jsxRenderContext,\n ) as any;\n if (cellProps2.class || cellProps2.style) {\n cellProps2.class = jsxRenderContext.$host.$cssMerge(\n cellProps2.class,\n jsxRenderContext.$host.$style(cellProps2.style),\n );\n delete cellProps2.style;\n }\n return beanInstance.render(cellProps2, jsxRenderContext, () => {\n const children = isJsxComponent(render) && cast(render).children;\n if (children && children.length > 0) {\n return this.zovaJsx.renderJsxChildrenDirect(children, cellScope, jsxRenderContext);\n } else {\n return value;\n }\n });\n }\n // general component\n return this.zovaJsx.render(render!, {}, cellScope, jsxRenderContext);\n }\n\n public getColumnProperty(name: string): ISchemaObjectExtensionField | undefined {\n if (!this.properties) return;\n return this.properties.find(item => item.key === name);\n }\n\n private _getColumnCelEnv(): typeof celEnvBase {\n const celEnv = celEnvBase.clone();\n celEnv.registerFunction('getProperty(string):dyn', name => {\n return this.getColumnProperty(name);\n });\n celEnv.registerFunction('getValue(string):dyn', name => {\n return this.zovaJsx.transientObject.getValue(name) ?? null;\n });\n celEnv.registerFunction('getValue(string, dyn):dyn', (name, defaultValue) => {\n return this.zovaJsx.transientObject.getValue(name) ?? defaultValue;\n });\n return celEnv;\n }\n\n public getColumnScope(name: string, scopeExtra?: {}): ITableColumnScope {\n return objectAssignReactive({}, this.$props.tableScope, {\n name,\n property: this.getColumnProperty(name),\n ...scopeExtra,\n });\n }\n\n public getColumnComponentPropsTop(\n name: string,\n celScope: {},\n renderContext: {},\n ): ITableCellRenderColumnOptions {\n const property = this.getColumnProperty(name);\n const rest = property?.rest;\n return this._getColumnComponentPropsTopByRest(rest, name, celScope, renderContext);\n }\n\n private _getColumnComponentPropsTopByRest(\n rest: ISchemaObjectExtensionFieldRest | undefined,\n name: string,\n celScope: {},\n _renderContext: {},\n ): ITableCellRenderColumnOptions {\n const visible = this.zovaJsx.evaluateExpression(rest?.visible, celScope);\n const render = rest?.render as TypeTableCellRenderComponent | undefined;\n const columnProps = Object.assign({ key: name }, cast(rest)?.columnProps);\n return { visible, render, columnProps };\n }\n\n // public getRenderFlattern(render: TypeTableCellRenderComponent): TypeTableCellRenderComponent {\n // return isJsxComponent(render) ? cast(render).type : render;\n // }\n\n public getRenderProvider(\n render: TypeTableCellRenderComponent | undefined,\n ): TypeTableCellRenderComponentProvider {\n if (!render) return 'text';\n if (typeof render === 'string' && render.includes(':')) {\n return beanFullNameFromOnionName(render, 'tableCell');\n }\n return render;\n }\n}\n","import type { AriaAttributes, CSSProperties } from 'vue';\n\nimport { FlexRender } from '@tanstack/vue-table';\nimport { BeanRenderBase } from 'zova';\nimport { Render } from 'zova-module-a-bean';\n\nimport { TableColumnIdSelection } from '../../types/table.js';\n\n@Render()\nexport class RenderTable extends BeanRenderBase {\n private _getColumnStyle(column: any): CSSProperties {\n const rest = (column.columnDef.meta as any)?.rest;\n const fixed = column.getIsPinned();\n const width = column.getSize();\n return {\n ...(typeof rest?.width === 'number' ? { width: `${width}px`, minWidth: `${width}px` } : {}),\n textAlign: rest?.align,\n position: fixed ? ('sticky' as const) : undefined,\n left: fixed === 'left' ? `${column.getStart('left')}px` : undefined,\n right: fixed === 'right' ? `${column.getAfter('right')}px` : undefined,\n zIndex: fixed ? 1 : undefined,\n };\n }\n\n private _renderTableDefault() {\n const table = this.table;\n const selectionMode = this.$props.selectionMode ?? 'multiple';\n return (\n <table class=\"table\">\n <thead>\n <tr>\n {table.getFlatHeaders().map(header => {\n const column = header.column;\n const canSort = column.getCanSort();\n const sorted = column.getIsSorted();\n const fixed = column.getIsPinned();\n const headerDefinition = column.columnDef.header;\n const selection = column.id === TableColumnIdSelection;\n const headerContent = selection ? (\n selectionMode === 'single' ? null : (\n <input\n type=\"checkbox\"\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={table.getIsSomePageRowsSelected()}\n aria-checked={table.getIsSomePageRowsSelected() ? 'mixed' : undefined}\n aria-label=\"Select all rows on this page\"\n disabled={table.getRowModel().rows.every(row => !row.getCanSelect())}\n onChange={table.getToggleAllPageRowsSelectedHandler()}\n />\n )\n ) : (\n <FlexRender render={headerDefinition} props={header.getContext()}></FlexRender>\n );\n let sortAria: AriaAttributes['aria-sort'] = 'none';\n let sortIcon: '▲' | '▼' | '↕' = '↕';\n if (sorted === 'asc') {\n sortAria = 'ascending';\n sortIcon = '▲';\n } else if (sorted === 'desc') {\n sortAria = 'descending';\n sortIcon = '▼';\n }\n return (\n <th\n key={header.id}\n class={fixed ? 'bg-base-100' : undefined}\n style={this._getColumnStyle(column)}\n aria-sort={sortAria}\n >\n {canSort ? (\n <button\n type=\"button\"\n class=\"inline-flex w-full items-center gap-1\"\n onClick={column.getToggleSortingHandler()}\n aria-label={`Sort by ${column.id}`}\n >\n {headerContent}\n <span aria-hidden=\"true\">{sortIcon}</span>\n </button>\n ) : (\n headerContent\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {table.getRowModel().rows.map(row => {\n return (\n <tr key={row.id} aria-selected={row.getIsSelected()}>\n {row.getVisibleCells().map(cell => {\n const column = cell.column;\n const selection = column.id === TableColumnIdSelection;\n return (\n <td\n key={cell.id}\n class={column.getIsPinned() ? 'bg-base-100' : undefined}\n style={this._getColumnStyle(column)}\n >\n {selection ? (\n <input\n type={selectionMode === 'single' ? 'radio' : 'checkbox'}\n checked={row.getIsSelected()}\n disabled={!row.getCanSelect()}\n aria-label={`Select row ${row.id}`}\n onChange={row.getToggleSelectedHandler()}\n />\n ) : (\n <FlexRender\n render={column.columnDef.cell}\n props={cell.getContext()}\n ></FlexRender>\n )}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n }\n\n public render() {\n return this.$slotDefault ? this.$slotDefault(this) : this._renderTableDefault();\n }\n}\n","import { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerTable } from '../../component/table/controller.jsx';\nimport { RenderTable } from '../../component/table/render.jsx';\nexport const ZTable = defineComponent(_props => {\n useController(ControllerTable, RenderTable, undefined);\n return () => {};\n}, prepareComponentOptions());","export const config = _sys => {\n return {\n renderFallbackValue: '--'\n };\n};","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** controller: begin */\nexport * from '../component/table/controller.jsx';\nimport 'zova';\n/** controller: end */\n/** controller: begin */\nimport { ControllerTable } from '../component/table/controller.jsx';\nimport 'zova';\n/** controller: end */\n\n/** components: begin */\nexport * from './component/table.js';\nimport { ZTable } from './component/table.js';\nexport const components = {\n 'table': ZTable\n};\nimport 'zova';\n/** components: end */\n/** render: begin */\nexport * from '../component/table/render.jsx';\nimport 'zova';\n/** render: end */\n/** render: begin */\nimport { RenderTable } from '../component/table/render.jsx';\nimport 'zova';\n/** render: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleATable = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-table\"\n}), _dec(_class = _dec2(_class = class ScopeModuleATable extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import { useVueTable } from '@tanstack/vue-table';\nimport { markRaw } from 'vue';\nimport { BeanControllerPageBase } from 'zova';\nexport class BeanControllerPageTableBase extends BeanControllerPageBase {\n constructor(...args) {\n super(...args);\n this.table = void 0;\n }\n $useTable(initialOptions) {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useVueTable(initialOptions));\n });\n }\n async refreshMeta() {\n throw new Error('should implement refreshMeta');\n }\n}","import { createBeanDecorator } from 'zova';\nexport function TableCell(options) {\n return createBeanDecorator('tableCell', 'app', true, options);\n}"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["celEnvBase","isNilOrEmptyString","createColumnHelper","functionalUpdate","getCoreRowModel","appResource","beanFullNameFromOnionName","cast","deepEqual","deepExtend","objectAssignReactive","isJsxComponent","ZovaJsx","Controller","BeanControllerTableBase","TableColumnIdSelection","reconcileTableLayout","ControllerTable","_dec","_dec2","__z_BeanInfo","module","_class","_ControllerTable","constructor","args","properties","columns","tableMeta","zovaJsx","columnCelEnv","__init__","bean","_setBean","_getColumnCelEnv","_newBeanSimple","undefined","_createProperties","refreshMeta","$watch","$props","schema","newValue","oldValue","enableRowSelection","layout","_createTable","data","compact","sorting","rowSelection","layoutProperties","_createTableMeta","_createColumns","self","tableOptions","getRowId","originalRow","index","parent","_getRowId","renderFallbackValue","scope","config","manualPagination","manualSorting","enableMultiSort","enableSortingRemoval","row","_canSelectRow","enableMultiRowSelection","selectionMode","state","columnVisibility","_getColumnVisibility","columnOrder","_getColumnOrder","columnSizing","_getColumnSizing","columnPinning","_getColumnPinning","onSortingChange","updater","slice","onRowSelectionChange","table","$useTable","getColumns","_createColumnsMiddle","key","render","columnScope","getColumnScope","jsxRenderContext","getColumnJsxRenderContext","visible","columnProps","getColumnComponentPropsTop","_createColumnRender","columnHelper","display","id","header","cell","size","enableSorting","meta","rest","fixed","width","align","property","push","accessor","_props","title","props","renders","_getLayoutWidth","_isOrderable","sortDescFirst","String","originalId","original","getParentRow","_getLayoutColumn","find","column","Object","fromEntries","filter","map","keys","left","right","schemaOrder","schemaKey","schemaKeys","some","prototype","hasOwnProperty","call","$computed","$sdk","loadSchemaProperties","promises","res","Promise","all","_item","item","forEach","celScope","app","ctx","$scene","$host","$celScope","$jsx","$$table","getCellJsxRenderContext","cellContext","cellRenderPrepare","Array","isArray","renderProviders","getRenderProvider","renderProvider","includes","_getBean","renderContext","beanInstance","beanOptions","getBean","onionOptions","options","checkVisible","_cellRender","cellRender","cellScope","_getBeanSyncOnly","cellProps","setTransientObject","getValue","name","_cellRenderInner","value","fallbackValue","cellProps2","renderJsxProps","class","style","$cssMerge","$style","children","length","renderJsxChildrenDirect","getColumnProperty","celEnv","clone","registerFunction","transientObject","defaultValue","scopeExtra","tableScope","_getColumnComponentPropsTopByRest","_renderContext","evaluateExpression","assign","$propsDefault","_dec","_dec2","_class","__z_BeanInfo","FlexRender","BeanRenderBase","Render","TableColumnIdSelection","RenderTable","_dec","_dec2","__z_BeanInfo","module","_class","_getColumnStyle","column","rest","columnDef","meta","fixed","getIsPinned","width","getSize","minWidth","textAlign","align","position","undefined","left","getStart","right","getAfter","zIndex","_renderTableDefault","table","selectionMode","$props","_createVNode","getFlatHeaders","map","header","canSort","getCanSort","sorted","getIsSorted","headerDefinition","selection","id","headerContent","getIsAllPageRowsSelected","getIsSomePageRowsSelected","getRowModel","rows","every","row","getCanSelect","getToggleAllPageRowsSelectedHandler","getContext","sortAria","sortIcon","getToggleSortingHandler","getIsSelected","getVisibleCells","cell","getToggleSelectedHandler","render","$slotDefault","_dec","_dec2","_class","__z_BeanInfo","_createVNode","__z_BeanInfo"],"sources":["../src/lib/beanControllerTableBase.ts","../src/types/table.ts","../src/types/tableLayout.ts","../src/component/table/controller.tsx","../src/component/table/render.tsx","../src/.metadata/component/table.ts","../src/config/config.ts","../src/.metadata/index.ts","../src/lib/beanControllerPageTableBase.ts","../src/lib/tableCell.ts"],"sourcesContent":["import { useVueTable } from '@tanstack/vue-table';\nimport { markRaw } from 'vue';\nimport { BeanControllerBase } from 'zova';\nexport class BeanControllerTableBase extends BeanControllerBase {\n constructor(...args) {\n super(...args);\n this.table = void 0;\n }\n get layout() {\n throw new Error('should implement layout');\n }\n get layoutProperties() {\n throw new Error('should implement layoutProperties');\n }\n $useTable(initialOptions) {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useVueTable(initialOptions));\n });\n }\n async refreshMeta() {\n throw new Error('should implement refreshMeta');\n }\n}","export const TableColumnIdSelection = '$$selection';","import { TableColumnIdSelection } from './table.ts';\nfunction isWidth(value) {\n return value === 'auto' || typeof value === 'number' && Number.isInteger(value) && value >= 1 && value <= 2000;\n}\n\n/**\n * Reconciles a persisted layout with the currently eligible schema columns.\n * Schema visibility and fixed regions always remain authoritative.\n */\nexport function reconcileTableLayout(properties, profile) {\n const entries = new Map();\n const profileColumns = Array.isArray(profile?.columns) ? profile.columns : [];\n for (const item of profileColumns) {\n if (!item || typeof item !== 'object') continue;\n const column = item;\n const key = typeof column.key === 'string' ? column.key.trim() : '';\n if (!key || entries.has(key)) continue;\n if (typeof column.visible !== 'boolean' || !isWidth(column.width)) continue;\n entries.set(key, {\n key,\n visible: column.visible,\n width: column.width\n });\n }\n const eligible = properties.filter(property => typeof property.key === 'string' && property.key && property.key !== TableColumnIdSelection);\n const schemaKeys = new Set(eligible.map(property => property.key));\n const regions = new Map();\n regions.set('left', []);\n regions.set('center', []);\n regions.set('right', []);\n for (const property of eligible) {\n const fixed = property.rest?.fixed;\n regions.get(fixed === 'left' ? 'left' : fixed === 'right' ? 'right' : 'center').push(property);\n }\n const result = [];\n for (const region of ['left', 'center', 'right']) {\n const regionProperties = regions.get(region);\n const regionKeys = new Set(regionProperties.map(property => property.key));\n const ordered = profileColumns.map(item => item && typeof item === 'object' ? item : undefined).filter(item => {\n const key = typeof item?.key === 'string' ? item.key.trim() : '';\n return !!key && regionKeys.has(key) && schemaKeys.has(key) && entries.get(key)?.key === key;\n }).map(item => item.key);\n const seen = new Set();\n for (const key of [...ordered, ...regionProperties.map(property => property.key)]) {\n if (seen.has(key)) continue;\n seen.add(key);\n const property = regionProperties.find(item => item.key === key);\n const entry = entries.get(key);\n const schemaWidth = property.rest?.width;\n result.push({\n key,\n visible: entry?.visible ?? true,\n width: entry?.width ?? (typeof schemaWidth === 'number' && schemaWidth > 0 ? schemaWidth : 'auto')\n });\n }\n }\n return {\n version: 1,\n ...(typeof profile?.schemaFingerprint === 'string' ? {\n schemaFingerprint: profile.schemaFingerprint\n } : {}),\n columns: result\n };\n}","import type {\n IResourceDetailsActionRowOptionsBase,\n IResourceTableActionRowOptionsBase,\n ISchemaObjectExtensionField,\n ISchemaObjectExtensionFieldRest,\n TypeTableCellRenderComponent,\n TypeTableCellRenderComponentProvider,\n} from 'zova-module-a-openapi';\n\nimport { celEnvBase, isNilOrEmptyString } from '@cabloy/utils';\nimport {\n CellContext,\n ColumnSizingState,\n createColumnHelper,\n functionalUpdate,\n getCoreRowModel,\n OnChangeFn,\n Row,\n RowSelectionState,\n SortingState,\n TableOptionsWithReactiveData,\n} from '@tanstack/vue-table';\nimport { SchemaObject } from 'openapi3-ts/oas31';\nimport { VNode } from 'vue';\nimport {\n appResource,\n beanFullNameFromOnionName,\n cast,\n deepEqual,\n deepExtend,\n objectAssignReactive,\n} from 'zova';\nimport { isJsxComponent, ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\n\nimport type { ITableMeta, TypeColumn, TypeTableGetColumns } from '../../types/table.ts';\nimport type {\n IDecoratorTableCellOptions,\n IJsxRenderContextTableCell,\n ITableCellRender,\n} from '../../types/tableCell.ts';\nimport type {\n IJsxRenderContextTableColumn,\n ITableCellRenderColumnProps,\n ITableCellScope,\n ITableColumnScope,\n ITableScope,\n TypeTableCellRender,\n} from '../../types/tableColumn.ts';\nimport type { ITableLayout } from '../../types/tableLayout.ts';\n\nimport { BeanControllerTableBase } from '../../lib/beanControllerTableBase.ts';\nimport { TableColumnIdSelection } from '../../types/table.ts';\nimport { ITableCellRenderColumnOptions } from '../../types/tableColumn.ts';\nimport { reconcileTableLayout } from '../../types/tableLayout.ts';\n\nexport interface ControllerTableProps<TData extends {} = {}> {\n data?: TData[];\n layout?: ITableLayout;\n compact?: boolean;\n columnSizing?: ColumnSizingState;\n schema?: SchemaObject;\n schemaOrder?: SchemaObject;\n sorting?: SortingState;\n onSortingChange?: OnChangeFn<SortingState>;\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean);\n selectionMode?: 'single' | 'multiple';\n rowSelection?: RowSelectionState;\n onRowSelectionChange?: OnChangeFn<RowSelectionState>;\n tableScope?: ITableScope;\n getColumns?: TypeTableGetColumns<TData>;\n slotDefault?: (table: ControllerTable<TData>) => VNode;\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;\n}\n\n@Controller()\nexport class ControllerTable<TData extends {} = {}> extends BeanControllerTableBase<TData> {\n static $propsDefault = {};\n\n // table: TypeTable<TData>; // in BeanControllerTableBase\n\n properties: ISchemaObjectExtensionField[] | undefined;\n columns: TypeColumn<TData>[];\n tableMeta: ITableMeta<TData>;\n zovaJsx: ZovaJsx;\n columnCelEnv: typeof celEnvBase;\n\n protected async __init__() {\n this.bean._setBean('$$table', this);\n // jsx\n this.columnCelEnv = this._getColumnCelEnv();\n this.zovaJsx = this.bean._newBeanSimple(ZovaJsx, false, undefined, this.columnCelEnv);\n // properties\n this._createProperties();\n // tableMeta/columns\n await this.refreshMeta();\n // watch\n this.$watch(\n () => this.$props.schema,\n async (newValue, oldValue) => {\n if (deepEqual(newValue, oldValue)) return;\n await this.refreshMeta();\n },\n );\n this.$watch(\n () => this.$props.enableRowSelection,\n async (newValue, oldValue) => {\n if (newValue === oldValue) return;\n await this.refreshMeta();\n },\n );\n this.$watch(\n () => this.$props.layout,\n async (newValue, oldValue) => {\n if (deepEqual(newValue, oldValue)) return;\n await this.refreshMeta();\n },\n );\n // table\n this._createTable();\n }\n\n public get schema() {\n return this.$props.schema;\n }\n\n public get data() {\n return this.$props.data;\n }\n\n public get compact() {\n return this.$props.compact ?? false;\n }\n\n public get sorting() {\n return this.$props.sorting ?? [];\n }\n\n public get rowSelection() {\n return this.$props.rowSelection ?? {};\n }\n\n public get layout(): ITableLayout {\n return reconcileTableLayout(this.layoutProperties, this.$props.layout);\n }\n\n public get layoutProperties(): readonly ISchemaObjectExtensionField[] {\n return this.tableMeta?.properties ?? [];\n }\n\n public async refreshMeta() {\n this.tableMeta = await this._createTableMeta();\n this.columns = await this._createColumns();\n }\n\n private _createTable() {\n // eslint-disable-next-line\n const self = this;\n const tableOptions: TableOptionsWithReactiveData<TData> = {\n getRowId: (originalRow, index, parent) => this._getRowId(originalRow, index, parent),\n getCoreRowModel: getCoreRowModel(),\n renderFallbackValue: this.scope.config.renderFallbackValue,\n manualPagination: true,\n manualSorting: true,\n enableMultiSort: false,\n enableSortingRemoval: false,\n enableRowSelection: row => self._canSelectRow(row),\n enableMultiRowSelection: this.$props.selectionMode !== 'single',\n state: {\n get sorting() {\n return self.sorting;\n },\n get rowSelection() {\n return self.rowSelection;\n },\n get columnVisibility() {\n return self._getColumnVisibility();\n },\n get columnOrder() {\n return self._getColumnOrder();\n },\n get columnSizing() {\n return self._getColumnSizing();\n },\n get columnPinning() {\n return self._getColumnPinning();\n },\n },\n onSortingChange: updater => {\n const sorting = functionalUpdate(updater, self.sorting).slice(0, 1);\n self.$props.onSortingChange?.(sorting);\n },\n onRowSelectionChange: updater => {\n const rowSelection = functionalUpdate(updater, self.rowSelection);\n self.$props.onRowSelectionChange?.(rowSelection);\n },\n get data() {\n return self.data || [];\n },\n get columns() {\n return self.columns;\n },\n };\n this.table = this.$useTable(tableOptions);\n }\n\n private async _createColumns() {\n if (!this.properties) return [];\n const columns = !this.$props.getColumns\n ? await this._createColumnsMiddle(this.tableMeta.properties)\n : await this.$props.getColumns(\n async properties => {\n return await this._createColumnsMiddle(properties ?? this.tableMeta.properties);\n },\n async (\n key: string,\n render: TypeTableCellRenderComponent,\n ): Promise<TypeTableCellRender<TData, any> | undefined> => {\n // columnScope\n const columnScope = this.getColumnScope(key);\n // renderContext\n const jsxRenderContext = this.getColumnJsxRenderContext(columnScope);\n // columnProps\n const { visible, columnProps } = this.getColumnComponentPropsTop(\n key,\n columnScope,\n jsxRenderContext,\n );\n // visible\n if (visible === false) return;\n return await this._createColumnRender(\n render,\n columnProps,\n columnScope,\n jsxRenderContext,\n );\n },\n this,\n );\n if (!this.$props.enableRowSelection) return columns;\n const columnHelper = createColumnHelper<TData>();\n return [\n columnHelper.display({\n id: TableColumnIdSelection,\n header: '',\n cell: '',\n size: 48,\n enableSorting: false,\n meta: { rest: { fixed: 'left', width: 48, align: 'center' } },\n }),\n ...columns,\n ];\n }\n\n private async _createColumnsMiddle(\n properties: ISchemaObjectExtensionField[],\n ): Promise<TypeColumn<TData>[]> {\n const tableMeta = this.tableMeta;\n const columnHelper = createColumnHelper<TData>();\n const columns: TypeColumn<TData>[] = [];\n for (const property of properties) {\n const key = property.key!;\n columns.push(\n columnHelper.accessor(key as any, {\n id: key,\n header: _props => {\n return property?.title || key;\n },\n cell: props => tableMeta.renders[key](props),\n size: this._getLayoutWidth(key),\n enableSorting: property.rest?.enableSorting === true && this._isOrderable(property),\n sortDescFirst: property.rest?.sortDescFirst === true,\n meta: {\n rest: {\n ...property.rest,\n width: this._getLayoutWidth(key),\n },\n },\n }),\n );\n }\n return columns;\n }\n\n private _getRowId(originalRow: TData, index: number, parent?: Row<TData>) {\n const id = this.$props.getRowId?.(originalRow, index, parent) ?? cast(originalRow).id;\n if (isNilOrEmptyString(id)) {\n return `__unselectable_${parent ? `${parent.id}.` : ''}${index}`;\n }\n return String(id);\n }\n\n private _canSelectRow(row: Row<TData>) {\n const enableRowSelection = this.$props.enableRowSelection;\n if (!enableRowSelection) return false;\n const originalId =\n this.$props.getRowId?.(row.original, row.index, row.getParentRow()) ?? cast(row.original).id;\n if (isNilOrEmptyString(originalId)) return false;\n return typeof enableRowSelection === 'function' ? enableRowSelection(row) : true;\n }\n\n private _getLayoutColumn(key: string) {\n return this.layout.columns.find(column => column.key === key);\n }\n\n private _getLayoutWidth(key: string) {\n const width = this._getLayoutColumn(key)?.width;\n return typeof width === 'number' ? width : undefined;\n }\n\n private _getColumnVisibility() {\n return Object.fromEntries(\n this.layout.columns\n .filter(column => column.key !== TableColumnIdSelection)\n .map(column => [column.key, column.visible]),\n );\n }\n\n private _getColumnOrder() {\n const keys = this.layout.columns.map(column => column.key);\n return this.$props.enableRowSelection ? [TableColumnIdSelection, ...keys] : keys;\n }\n\n private _getColumnSizing() {\n return {\n ...Object.fromEntries(\n this.layout.columns\n .filter(column => typeof column.width === 'number')\n .map(column => [column.key, column.width as number]),\n ),\n ...this.$props.columnSizing,\n };\n }\n\n private _getColumnPinning() {\n if (this.compact) return { left: [], right: [] };\n const left: string[] = this.$props.enableRowSelection ? [TableColumnIdSelection] : [];\n const right: string[] = [];\n for (const property of this.tableMeta?.properties ?? []) {\n const fixed = property.rest?.fixed;\n if (fixed === 'left') left.push(property.key!);\n if (fixed === 'right') right.push(property.key!);\n }\n return { left, right };\n }\n\n private _isOrderable(property: ISchemaObjectExtensionField) {\n const properties = this.$props.schemaOrder?.properties;\n if (!properties) return false;\n const keys = [property.key, property.schemaKey, ...(property.schemaKeys ?? [])];\n return keys.some(key => key && Object.prototype.hasOwnProperty.call(properties, key));\n }\n\n private _createProperties() {\n this.properties = this.$computed(() => {\n return this.$sdk.loadSchemaProperties(this.schema, 'table');\n });\n }\n\n private async _createTableMeta() {\n let properties: ISchemaObjectExtensionField[] = [];\n const renders: Record<string, TypeTableCellRender<TData>> = {};\n if (!this.properties) return { properties, renders };\n const promises: Promise<any>[] = [];\n for (const property of this.properties) {\n const key = property.key!;\n // columnScope\n const columnScope = this.getColumnScope(key);\n // renderContext\n const jsxRenderContext = this.getColumnJsxRenderContext(columnScope);\n // columnProps\n const { visible, render, columnProps } = this.getColumnComponentPropsTop(\n key,\n columnScope,\n jsxRenderContext,\n );\n // visible\n if (visible === false) continue;\n // property\n properties.push(property);\n // render\n promises.push(this._createColumnRender(render, columnProps, columnScope, jsxRenderContext));\n }\n let res = await Promise.all(promises);\n properties = properties.filter((_item, index) => !!res[index]);\n res = res.filter(item => !!item);\n properties.forEach((item, index) => {\n renders[item.key!] = res[index];\n });\n return { properties, renders };\n }\n\n public getColumnJsxRenderContext(celScope: ITableColumnScope): IJsxRenderContextTableColumn {\n return {\n app: this.app,\n ctx: this.ctx,\n $scene: 'tableColumn',\n $host: this,\n $celScope: celScope,\n $jsx: this.zovaJsx,\n $$table: this,\n };\n }\n\n public getCellJsxRenderContext(\n celScope: ITableCellScope,\n cellContext: CellContext<TData, any>,\n ): IJsxRenderContextTableCell {\n return {\n app: this.app,\n ctx: this.ctx,\n $scene: 'tableCell',\n $host: this,\n $celScope: celScope,\n $jsx: this.zovaJsx,\n $$table: this,\n cellContext,\n };\n }\n\n public async cellRenderPrepare(\n renders: TypeTableCellRenderComponent | TypeTableCellRenderComponent[],\n ) {\n if (!Array.isArray(renders)) renders = [renders];\n const renderProviders = renders.map(item => this.getRenderProvider(item));\n const promises: Promise<any>[] = renderProviders.map(renderProvider =>\n (async () => {\n if (typeof renderProvider === 'string' && renderProvider.includes('.tableCell.')) {\n return await this.app.bean._getBean(renderProvider as any, true);\n }\n })(),\n );\n return await Promise.all(promises);\n }\n\n private async _createColumnRender(\n render: TypeTableCellRenderComponent | undefined,\n columnProps: ITableCellRenderColumnProps | undefined,\n columnScope: ITableColumnScope,\n renderContext: IJsxRenderContextTableColumn,\n ): Promise<TypeTableCellRender<TData, any> | undefined> {\n // renderProvider\n const renderProvider = this.getRenderProvider(render);\n // beanInstance\n let beanInstance: ITableCellRender | undefined;\n if (typeof renderProvider === 'string' && renderProvider.includes('.tableCell.')) {\n beanInstance = await this.app.bean._getBean(renderProvider as any, true);\n const beanOptions = appResource.getBean(renderProvider as any);\n const onionOptions = beanOptions?.options as IDecoratorTableCellOptions | undefined;\n columnProps = deepExtend({}, onionOptions, columnProps);\n // should not eval jsx columnProps\n // columnProps = this.zovaJsx.renderJsxProps(columnProps as any, {}, columnScope, renderContext) as any;\n if (\n beanInstance?.checkVisible &&\n !(await beanInstance.checkVisible(columnProps as any, renderContext))\n ) {\n return;\n }\n }\n return cellContext => {\n if (!cellContext) return;\n return this._cellRender(\n render,\n columnProps,\n columnScope,\n cellContext,\n renderProvider,\n beanInstance,\n undefined,\n undefined,\n undefined,\n );\n };\n }\n\n public cellRender(\n render: TypeTableCellRenderComponent,\n columnProps: IResourceTableActionRowOptionsBase | IResourceDetailsActionRowOptionsBase,\n renderContext: IJsxRenderContextTableCell,\n ) {\n // render\n const cellScope = renderContext.$celScope;\n // renderProvider\n const renderProvider = this.getRenderProvider(render);\n // beanInstance\n let beanInstance: ITableCellRender | undefined;\n if (typeof renderProvider === 'string' && renderProvider.includes('.tableCell.')) {\n beanInstance = this.app.bean._getBeanSyncOnly(renderProvider as any);\n const beanOptions = appResource.getBean(renderProvider as any);\n const onionOptions = beanOptions?.options as IDecoratorTableCellOptions | undefined;\n columnProps = deepExtend({}, onionOptions, columnProps);\n // should not eval jsx columnProps\n // columnProps = this.zovaJsx.renderJsxProps(columnProps as any, {}, renderContext.$celScope, renderContext) as any;\n }\n // const cellProps = isJsxComponent(render) ? Object.assign({}, columnProps, cast(render).props) : columnProps;\n const cellProps = columnProps;\n return this._cellRender(\n render,\n columnProps as ITableCellRenderColumnProps,\n undefined,\n renderContext.cellContext,\n renderProvider,\n beanInstance,\n cellProps,\n cellScope,\n renderContext,\n );\n }\n\n private _cellRender(\n render: TypeTableCellRenderComponent | undefined,\n columnProps: ITableCellRenderColumnProps | undefined,\n columnScope: ITableColumnScope | undefined,\n cellContext: CellContext<TData, any>,\n renderProvider: TypeTableCellRenderComponentProvider,\n beanInstance: ITableCellRender | undefined,\n cellProps: any | undefined,\n cellScope: ITableCellScope | undefined,\n jsxRenderContext: IJsxRenderContextTableCell | undefined,\n ) {\n return this.zovaJsx.setTransientObject(\n {\n getValue: (name: string) => {\n return cellContext.row.getValue(name);\n },\n },\n () => {\n return this._cellRenderInner(\n render,\n columnProps,\n columnScope,\n cellContext,\n renderProvider,\n beanInstance,\n cellProps,\n cellScope,\n jsxRenderContext,\n );\n },\n );\n }\n\n private _cellRenderInner(\n render: TypeTableCellRenderComponent | undefined,\n columnProps: ITableCellRenderColumnProps | undefined,\n columnScope: ITableColumnScope | undefined,\n cellContext: CellContext<TData, any>,\n renderProvider: TypeTableCellRenderComponentProvider,\n beanInstance: ITableCellRender | undefined,\n cellProps: any | undefined,\n cellScope: ITableCellScope | undefined,\n jsxRenderContext: IJsxRenderContextTableCell | undefined,\n ) {\n // value\n const value = cellContext.getValue();\n // renderFallbackValue\n const fallbackValue = this.table.options.renderFallbackValue;\n // cellScope\n if (!cellScope) {\n cellScope = objectAssignReactive({}, columnScope, { value, fallbackValue })!;\n }\n // render: text\n if (renderProvider === ('text' as TypeTableCellRenderComponent)) {\n return isNilOrEmptyString(value) ? fallbackValue : value;\n }\n // renderContext\n if (!jsxRenderContext) {\n jsxRenderContext = this.getCellJsxRenderContext(cellScope, cellContext);\n }\n // beanInstance\n if (beanInstance) {\n // jsx: props\n if (!cellProps) {\n // cellProps = isJsxComponent(render) ? Object.assign({}, columnProps, cast(render).props) : columnProps;\n cellProps = columnProps;\n }\n const cellProps2 = this.zovaJsx.renderJsxProps(\n cellProps,\n {},\n cellScope,\n jsxRenderContext,\n ) as any;\n if (cellProps2.class || cellProps2.style) {\n cellProps2.class = jsxRenderContext.$host.$cssMerge(\n cellProps2.class,\n jsxRenderContext.$host.$style(cellProps2.style),\n );\n delete cellProps2.style;\n }\n return beanInstance.render(cellProps2, jsxRenderContext, () => {\n const children = isJsxComponent(render) && cast(render).children;\n if (children && children.length > 0) {\n return this.zovaJsx.renderJsxChildrenDirect(children, cellScope, jsxRenderContext);\n } else {\n return value;\n }\n });\n }\n // general component\n return this.zovaJsx.render(render!, {}, cellScope, jsxRenderContext);\n }\n\n public getColumnProperty(name: string): ISchemaObjectExtensionField | undefined {\n if (!this.properties) return;\n return this.properties.find(item => item.key === name);\n }\n\n private _getColumnCelEnv(): typeof celEnvBase {\n const celEnv = celEnvBase.clone();\n celEnv.registerFunction('getProperty(string):dyn', name => {\n return this.getColumnProperty(name);\n });\n celEnv.registerFunction('getValue(string):dyn', name => {\n return this.zovaJsx.transientObject.getValue(name) ?? null;\n });\n celEnv.registerFunction('getValue(string, dyn):dyn', (name, defaultValue) => {\n return this.zovaJsx.transientObject.getValue(name) ?? defaultValue;\n });\n return celEnv;\n }\n\n public getColumnScope(name: string, scopeExtra?: {}): ITableColumnScope {\n return objectAssignReactive({}, this.$props.tableScope, {\n name,\n property: this.getColumnProperty(name),\n ...scopeExtra,\n });\n }\n\n public getColumnComponentPropsTop(\n name: string,\n celScope: {},\n renderContext: {},\n ): ITableCellRenderColumnOptions {\n const property = this.getColumnProperty(name);\n const rest = property?.rest;\n return this._getColumnComponentPropsTopByRest(rest, name, celScope, renderContext);\n }\n\n private _getColumnComponentPropsTopByRest(\n rest: ISchemaObjectExtensionFieldRest | undefined,\n name: string,\n celScope: {},\n _renderContext: {},\n ): ITableCellRenderColumnOptions {\n const visible = this.zovaJsx.evaluateExpression(rest?.visible, celScope);\n const render = rest?.render as TypeTableCellRenderComponent | undefined;\n const columnProps = Object.assign({ key: name }, cast(rest)?.columnProps);\n return { visible, render, columnProps };\n }\n\n // public getRenderFlattern(render: TypeTableCellRenderComponent): TypeTableCellRenderComponent {\n // return isJsxComponent(render) ? cast(render).type : render;\n // }\n\n public getRenderProvider(\n render: TypeTableCellRenderComponent | undefined,\n ): TypeTableCellRenderComponentProvider {\n if (!render) return 'text';\n if (typeof render === 'string' && render.includes(':')) {\n return beanFullNameFromOnionName(render, 'tableCell');\n }\n return render;\n }\n}\n","import type { AriaAttributes, CSSProperties } from 'vue';\n\nimport { FlexRender } from '@tanstack/vue-table';\nimport { BeanRenderBase } from 'zova';\nimport { Render } from 'zova-module-a-bean';\n\nimport { TableColumnIdSelection } from '../../types/table.ts';\n\n@Render()\nexport class RenderTable extends BeanRenderBase {\n private _getColumnStyle(column: any): CSSProperties {\n const rest = (column.columnDef.meta as any)?.rest;\n const fixed = column.getIsPinned();\n const width = column.getSize();\n return {\n ...(typeof rest?.width === 'number' ? { width: `${width}px`, minWidth: `${width}px` } : {}),\n textAlign: rest?.align,\n position: fixed ? ('sticky' as const) : undefined,\n left: fixed === 'left' ? `${column.getStart('left')}px` : undefined,\n right: fixed === 'right' ? `${column.getAfter('right')}px` : undefined,\n zIndex: fixed ? 1 : undefined,\n };\n }\n\n private _renderTableDefault() {\n const table = this.table;\n const selectionMode = this.$props.selectionMode ?? 'multiple';\n return (\n <table class=\"table\">\n <thead>\n <tr>\n {table.getFlatHeaders().map(header => {\n const column = header.column;\n const canSort = column.getCanSort();\n const sorted = column.getIsSorted();\n const fixed = column.getIsPinned();\n const headerDefinition = column.columnDef.header;\n const selection = column.id === TableColumnIdSelection;\n const headerContent = selection ? (\n selectionMode === 'single' ? null : (\n <input\n type=\"checkbox\"\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={table.getIsSomePageRowsSelected()}\n aria-checked={table.getIsSomePageRowsSelected() ? 'mixed' : undefined}\n aria-label=\"Select all rows on this page\"\n disabled={table.getRowModel().rows.every(row => !row.getCanSelect())}\n onChange={table.getToggleAllPageRowsSelectedHandler()}\n />\n )\n ) : (\n <FlexRender render={headerDefinition} props={header.getContext()}></FlexRender>\n );\n let sortAria: AriaAttributes['aria-sort'] = 'none';\n let sortIcon: '▲' | '▼' | '↕' = '↕';\n if (sorted === 'asc') {\n sortAria = 'ascending';\n sortIcon = '▲';\n } else if (sorted === 'desc') {\n sortAria = 'descending';\n sortIcon = '▼';\n }\n return (\n <th\n key={header.id}\n class={fixed ? 'bg-base-100' : undefined}\n style={this._getColumnStyle(column)}\n aria-sort={sortAria}\n >\n {canSort ? (\n <button\n type=\"button\"\n class=\"inline-flex w-full items-center gap-1\"\n onClick={column.getToggleSortingHandler()}\n aria-label={`Sort by ${column.id}`}\n >\n {headerContent}\n <span aria-hidden=\"true\">{sortIcon}</span>\n </button>\n ) : (\n headerContent\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {table.getRowModel().rows.map(row => {\n return (\n <tr key={row.id} aria-selected={row.getIsSelected()}>\n {row.getVisibleCells().map(cell => {\n const column = cell.column;\n const selection = column.id === TableColumnIdSelection;\n return (\n <td\n key={cell.id}\n class={column.getIsPinned() ? 'bg-base-100' : undefined}\n style={this._getColumnStyle(column)}\n >\n {selection ? (\n <input\n type={selectionMode === 'single' ? 'radio' : 'checkbox'}\n checked={row.getIsSelected()}\n disabled={!row.getCanSelect()}\n aria-label={`Select row ${row.id}`}\n onChange={row.getToggleSelectedHandler()}\n />\n ) : (\n <FlexRender\n render={column.columnDef.cell}\n props={cell.getContext()}\n ></FlexRender>\n )}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n }\n\n public render() {\n return this.$slotDefault ? this.$slotDefault(this) : this._renderTableDefault();\n }\n}\n","import { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerTable } from '../../component/table/controller.tsx';\nimport { RenderTable } from '../../component/table/render.tsx';\nexport const ZTable = defineComponent(_props => {\n useController(ControllerTable, RenderTable, undefined);\n return () => {};\n}, prepareComponentOptions());","export const config = _sys => {\n return {\n renderFallbackValue: '--'\n };\n};","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** controller: begin */\nexport * from '../component/table/controller.tsx';\nimport 'zova';\n/** controller: end */\n/** controller: begin */\n\nimport 'zova';\n/** controller: end */\n\n/** components: begin */\nexport * from './component/table.ts';\nimport { ZTable } from './component/table.ts';\nexport const components = {\n 'table': ZTable\n};\nimport 'zova';\n/** components: end */\n/** render: begin */\nexport * from '../component/table/render.tsx';\nimport 'zova';\n/** render: end */\n/** render: begin */\n\nimport 'zova';\n/** render: end */\n/** config: begin */\nexport * from '../config/config.ts';\n/** config: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleATable = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-table\"\n}), _dec(_class = _dec2(_class = class ScopeModuleATable extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import { useVueTable } from '@tanstack/vue-table';\nimport { markRaw } from 'vue';\nimport { BeanControllerPageBase } from 'zova';\nexport class BeanControllerPageTableBase extends BeanControllerPageBase {\n constructor(...args) {\n super(...args);\n this.table = void 0;\n }\n $useTable(initialOptions) {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useVueTable(initialOptions));\n });\n }\n async refreshMeta() {\n throw new Error('should implement refreshMeta');\n }\n}","import { createBeanDecorator } from 'zova';\nexport function TableCell(options) {\n return createBeanDecorator('tableCell', 'app', true, options);\n}"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { Table } from '@tanstack/table-core';
2
2
  import type { TableOptionsWithReactiveData } from '@tanstack/vue-table';
3
3
  import { BeanControllerPageBase } from 'zova';
4
- import { TypeTable } from '../types/table.js';
4
+ import { TypeTable } from '../types/table.ts';
5
5
  export declare class BeanControllerPageTableBase<TData extends {} = {}> extends BeanControllerPageBase {
6
6
  table: TypeTable<TData>;
7
7
  $useTable(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData>;
@@ -2,8 +2,8 @@ import type { Table } from '@tanstack/table-core';
2
2
  import type { TableOptionsWithReactiveData } from '@tanstack/vue-table';
3
3
  import type { ISchemaObjectExtensionField } from 'zova-module-a-openapi';
4
4
  import { BeanControllerBase } from 'zova';
5
- import { TypeTable } from '../types/table.js';
6
- import { ITableLayout } from '../types/tableLayout.js';
5
+ import { TypeTable } from '../types/table.ts';
6
+ import { ITableLayout } from '../types/tableLayout.ts';
7
7
  export declare class BeanControllerTableBase<TData extends {} = {}> extends BeanControllerBase {
8
8
  table: TypeTable<TData>;
9
9
  get layout(): ITableLayout;
@@ -1,4 +1,4 @@
1
- export * from './beanControllerPageTableBase.js';
2
- export * from './beanControllerTableBase.js';
3
- export * from './tableCell.js';
1
+ export * from './beanControllerPageTableBase.ts';
2
+ export * from './beanControllerTableBase.ts';
3
+ export * from './tableCell.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
- import type { IDecoratorTableCellOptions } from '../types/tableCell.js';
1
+ import type { IDecoratorTableCellOptions } from '../types/tableCell.ts';
2
2
  export declare function TableCell<T extends IDecoratorTableCellOptions>(options?: T): ClassDecorator;
3
3
  //# sourceMappingURL=tableCell.d.ts.map
@@ -1,5 +1,5 @@
1
- export * from './table.js';
2
- export * from './tableCell.js';
3
- export * from './tableColumn.js';
4
- export * from './tableLayout.js';
1
+ export * from './table.ts';
2
+ export * from './tableCell.ts';
3
+ export * from './tableColumn.ts';
4
+ export * from './tableLayout.ts';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import type { ColumnDef, useVueTable } from '@tanstack/vue-table';
2
2
  import type { ISchemaObjectExtensionField, TypeTableCellRenderComponent } from 'zova-module-a-openapi';
3
- import type { ControllerTable } from '../component/table/controller.jsx';
4
- import type { TypeTableCellRender } from './tableColumn.js';
3
+ import type { ControllerTable } from '../component/table/controller.tsx';
4
+ import type { TypeTableCellRender } from './tableColumn.ts';
5
5
  export type TypeTable<TData extends {} = {}> = ReturnType<typeof useVueTable<TData>>;
6
6
  export type TypeColumn<TData extends {} = {}> = ColumnDef<TData, any>;
7
7
  export declare const TableColumnIdSelection = "$$selection";
@@ -2,8 +2,8 @@ import type { CellContext } from '@tanstack/table-core';
2
2
  import type { OmitNever } from 'zova';
3
3
  import type { ServiceOnion } from 'zova-module-a-bean';
4
4
  import type { IJsxRenderContextBase } from 'zova-module-a-openapi';
5
- import type { ControllerTable } from '../component/table/controller.jsx';
6
- import type { IJsxRenderContextTableColumn, ITableCellScope } from './tableColumn.js';
5
+ import type { ControllerTable } from '../component/table/controller.tsx';
6
+ import type { IJsxRenderContextTableColumn, ITableCellScope } from './tableColumn.ts';
7
7
  export interface IJsxRenderContextTableCell<TData extends {} = any> extends IJsxRenderContextBase {
8
8
  $celScope: ITableCellScope;
9
9
  $$table: ControllerTable<TData>;
@@ -1,7 +1,7 @@
1
1
  import type { CellContext, RowData } from '@tanstack/table-core';
2
2
  import type { SchemaObject } from 'openapi3-ts/oas31';
3
3
  import type { IJsxRenderContextBase, TypeTableCellRenderComponent } from 'zova-module-a-openapi';
4
- import type { ControllerTable } from '../component/table/controller.jsx';
4
+ import type { ControllerTable } from '../component/table/controller.tsx';
5
5
  export type TypeTableCellRender<TData extends RowData = RowData, TValue = any> = (props?: CellContext<TData, TValue>) => any;
6
6
  export interface IJsxRenderContextTableColumn<TData extends {} = any> extends IJsxRenderContextBase {
7
7
  $celScope: ITableColumnScope;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-table",
3
- "version": "5.1.44",
4
- "gitHead": "7cdd4a231da10499b291c57eae9e84dca37dcdd6",
3
+ "version": "5.1.46",
4
+ "gitHead": "c11bf1dd30fe464ed85340573d8a35a7b2a77d72",
5
5
  "description": "",
6
6
  "keywords": [
7
7
  "Zova Module"
@@ -3,10 +3,10 @@ import type { TypeControllerInnerProps } from 'zova';
3
3
  import { defineComponent } from 'vue';
4
4
  import { prepareComponentOptions, useController } from 'zova';
5
5
 
6
- import type { ControllerTableProps } from '../../component/table/controller.jsx';
6
+ import type { ControllerTableProps } from '../../component/table/controller.tsx';
7
7
 
8
- import { ControllerTable } from '../../component/table/controller.jsx';
9
- import { RenderTable } from '../../component/table/render.jsx';
8
+ import { ControllerTable } from '../../component/table/controller.tsx';
9
+ import { RenderTable } from '../../component/table/render.tsx';
10
10
  export type ZTableProps<TData extends {} = {}> = {
11
11
  controllerRef?: (ref: ControllerTable<TData>) => void;
12
12
  } & ControllerTableProps<TData>;
@@ -1,6 +1,6 @@
1
1
  // eslint-disable
2
2
  /** controller: begin */
3
- export * from '../component/table/controller.jsx';
3
+ export * from '../component/table/controller.tsx';
4
4
 
5
5
  import 'zova';
6
6
  declare module 'zova' {
@@ -16,7 +16,7 @@ declare module 'zova-module-a-table' {
16
16
  }
17
17
  /** controller: end */
18
18
  /** controller: begin */
19
- import { ControllerTable } from '../component/table/controller.jsx';
19
+ import type { ControllerTable } from '../component/table/controller.tsx';
20
20
  import 'zova';
21
21
  declare module 'zova' {
22
22
  export interface IBeanRecordLocal {
@@ -26,8 +26,8 @@ declare module 'zova' {
26
26
  /** controller: end */
27
27
 
28
28
  /** components: begin */
29
- export * from './component/table.js';
30
- import { ZTable } from './component/table.js';
29
+ export * from './component/table.ts';
30
+ import { ZTable } from './component/table.ts';
31
31
  export const components = {
32
32
  'table': ZTable,
33
33
  };
@@ -42,7 +42,7 @@ export interface IZovaComponentRecord {
42
42
  }
43
43
  /** components: end */
44
44
  /** render: begin */
45
- export * from '../component/table/render.jsx';
45
+ export * from '../component/table/render.tsx';
46
46
 
47
47
  import 'zova';
48
48
  declare module 'zova' {
@@ -58,7 +58,7 @@ declare module 'zova-module-a-table' {
58
58
  }
59
59
  /** render: end */
60
60
  /** render: begin */
61
- import { RenderTable } from '../component/table/render.jsx';
61
+ import type { RenderTable } from '../component/table/render.tsx';
62
62
  import 'zova';
63
63
  declare module 'zova' {
64
64
  export interface IBeanRecordLocal {
@@ -67,8 +67,8 @@ declare module 'zova' {
67
67
  }
68
68
  /** render: end */
69
69
  /** config: begin */
70
- export * from '../config/config.js';
71
- import { config } from '../config/config.js';
70
+ export * from '../config/config.ts';
71
+ import { config } from '../config/config.ts';
72
72
  /** config: end */
73
73
  /** scope: begin */
74
74
  import { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';
@@ -1,2 +1,2 @@
1
1
  export const __ThisModule__ = 'a-table';
2
- export { ScopeModuleATable as ScopeModule } from './index.js';
2
+ export { ScopeModuleATable as ScopeModule } from './index.ts';
@@ -10,6 +10,7 @@ import type {
10
10
  import { celEnvBase, isNilOrEmptyString } from '@cabloy/utils';
11
11
  import {
12
12
  CellContext,
13
+ ColumnSizingState,
13
14
  createColumnHelper,
14
15
  functionalUpdate,
15
16
  getCoreRowModel,
@@ -32,12 +33,12 @@ import {
32
33
  import { isJsxComponent, ZovaJsx } from 'zova-jsx';
33
34
  import { Controller } from 'zova-module-a-bean';
34
35
 
35
- import type { ITableMeta, TypeColumn, TypeTableGetColumns } from '../../types/table.js';
36
+ import type { ITableMeta, TypeColumn, TypeTableGetColumns } from '../../types/table.ts';
36
37
  import type {
37
38
  IDecoratorTableCellOptions,
38
39
  IJsxRenderContextTableCell,
39
40
  ITableCellRender,
40
- } from '../../types/tableCell.js';
41
+ } from '../../types/tableCell.ts';
41
42
  import type {
42
43
  IJsxRenderContextTableColumn,
43
44
  ITableCellRenderColumnProps,
@@ -45,17 +46,19 @@ import type {
45
46
  ITableColumnScope,
46
47
  ITableScope,
47
48
  TypeTableCellRender,
48
- } from '../../types/tableColumn.js';
49
- import type { ITableLayout } from '../../types/tableLayout.js';
49
+ } from '../../types/tableColumn.ts';
50
+ import type { ITableLayout } from '../../types/tableLayout.ts';
50
51
 
51
- import { BeanControllerTableBase } from '../../lib/beanControllerTableBase.js';
52
- import { TableColumnIdSelection } from '../../types/table.js';
53
- import { ITableCellRenderColumnOptions } from '../../types/tableColumn.js';
54
- import { reconcileTableLayout } from '../../types/tableLayout.js';
52
+ import { BeanControllerTableBase } from '../../lib/beanControllerTableBase.ts';
53
+ import { TableColumnIdSelection } from '../../types/table.ts';
54
+ import { ITableCellRenderColumnOptions } from '../../types/tableColumn.ts';
55
+ import { reconcileTableLayout } from '../../types/tableLayout.ts';
55
56
 
56
57
  export interface ControllerTableProps<TData extends {} = {}> {
57
58
  data?: TData[];
58
59
  layout?: ITableLayout;
60
+ compact?: boolean;
61
+ columnSizing?: ColumnSizingState;
59
62
  schema?: SchemaObject;
60
63
  schemaOrder?: SchemaObject;
61
64
  sorting?: SortingState;
@@ -125,6 +128,10 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
125
128
  return this.$props.data;
126
129
  }
127
130
 
131
+ public get compact() {
132
+ return this.$props.compact ?? false;
133
+ }
134
+
128
135
  public get sorting() {
129
136
  return this.$props.sorting ?? [];
130
137
  }
@@ -144,7 +151,6 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
144
151
  public async refreshMeta() {
145
152
  this.tableMeta = await this._createTableMeta();
146
153
  this.columns = await this._createColumns();
147
- this.table?.setColumnPinning(this._getColumnPinning());
148
154
  }
149
155
 
150
156
  private _createTable() {
@@ -176,6 +182,9 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
176
182
  get columnSizing() {
177
183
  return self._getColumnSizing();
178
184
  },
185
+ get columnPinning() {
186
+ return self._getColumnPinning();
187
+ },
179
188
  },
180
189
  onSortingChange: updater => {
181
190
  const sorting = functionalUpdate(updater, self.sorting).slice(0, 1);
@@ -185,10 +194,6 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
185
194
  const rowSelection = functionalUpdate(updater, self.rowSelection);
186
195
  self.$props.onRowSelectionChange?.(rowSelection);
187
196
  },
188
- get initialState() {
189
- const columnPinning = self._getColumnPinning();
190
- return { columnPinning };
191
- },
192
197
  get data() {
193
198
  return self.data || [];
194
199
  },
@@ -197,7 +202,6 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
197
202
  },
198
203
  };
199
204
  this.table = this.$useTable(tableOptions);
200
- this.table.setColumnPinning(this._getColumnPinning());
201
205
  }
202
206
 
203
207
  private async _createColumns() {
@@ -318,14 +322,18 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
318
322
  }
319
323
 
320
324
  private _getColumnSizing() {
321
- return Object.fromEntries(
322
- this.layout.columns
323
- .filter(column => typeof column.width === 'number')
324
- .map(column => [column.key, column.width as number]),
325
- );
325
+ return {
326
+ ...Object.fromEntries(
327
+ this.layout.columns
328
+ .filter(column => typeof column.width === 'number')
329
+ .map(column => [column.key, column.width as number]),
330
+ ),
331
+ ...this.$props.columnSizing,
332
+ };
326
333
  }
327
334
 
328
335
  private _getColumnPinning() {
336
+ if (this.compact) return { left: [], right: [] };
329
337
  const left: string[] = this.$props.enableRowSelection ? [TableColumnIdSelection] : [];
330
338
  const right: string[] = [];
331
339
  for (const property of this.tableMeta?.properties ?? []) {
@@ -4,7 +4,7 @@ import { FlexRender } from '@tanstack/vue-table';
4
4
  import { BeanRenderBase } from 'zova';
5
5
  import { Render } from 'zova-module-a-bean';
6
6
 
7
- import { TableColumnIdSelection } from '../../types/table.js';
7
+ import { TableColumnIdSelection } from '../../types/table.ts';
8
8
 
9
9
  @Render()
10
10
  export class RenderTable extends BeanRenderBase {
package/src/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './.metadata/index.js';
2
- export * from './lib/index.js';
3
- export * from './types/index.js';
1
+ export * from './.metadata/index.ts';
2
+ export * from './lib/index.ts';
3
+ export * from './types/index.ts';
@@ -5,7 +5,7 @@ import { useVueTable } from '@tanstack/vue-table';
5
5
  import { markRaw } from 'vue';
6
6
  import { BeanControllerPageBase } from 'zova';
7
7
 
8
- import { TypeTable } from '../types/table.js';
8
+ import { TypeTable } from '../types/table.ts';
9
9
 
10
10
  export class BeanControllerPageTableBase<TData extends {} = {}> extends BeanControllerPageBase {
11
11
  table: TypeTable<TData>;
@@ -6,8 +6,8 @@ import { useVueTable } from '@tanstack/vue-table';
6
6
  import { markRaw } from 'vue';
7
7
  import { BeanControllerBase } from 'zova';
8
8
 
9
- import { TypeTable } from '../types/table.js';
10
- import { ITableLayout } from '../types/tableLayout.js';
9
+ import { TypeTable } from '../types/table.ts';
10
+ import { ITableLayout } from '../types/tableLayout.ts';
11
11
 
12
12
  export class BeanControllerTableBase<TData extends {} = {}> extends BeanControllerBase {
13
13
  table: TypeTable<TData>;
package/src/lib/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './beanControllerPageTableBase.js';
2
- export * from './beanControllerTableBase.js';
3
- export * from './tableCell.js';
1
+ export * from './beanControllerPageTableBase.ts';
2
+ export * from './beanControllerTableBase.ts';
3
+ export * from './tableCell.ts';
@@ -1,6 +1,6 @@
1
1
  import { createBeanDecorator } from 'zova';
2
2
 
3
- import type { IDecoratorTableCellOptions } from '../types/tableCell.js';
3
+ import type { IDecoratorTableCellOptions } from '../types/tableCell.ts';
4
4
 
5
5
  export function TableCell<T extends IDecoratorTableCellOptions>(options?: T): ClassDecorator {
6
6
  return createBeanDecorator('tableCell', 'app', true, options);
@@ -1,4 +1,4 @@
1
- export * from './table.js';
2
- export * from './tableCell.js';
3
- export * from './tableColumn.js';
4
- export * from './tableLayout.js';
1
+ export * from './table.ts';
2
+ export * from './tableCell.ts';
3
+ export * from './tableColumn.ts';
4
+ export * from './tableLayout.ts';
@@ -4,8 +4,8 @@ import type {
4
4
  TypeTableCellRenderComponent,
5
5
  } from 'zova-module-a-openapi';
6
6
 
7
- import type { ControllerTable } from '../component/table/controller.jsx';
8
- import type { TypeTableCellRender } from './tableColumn.js';
7
+ import type { ControllerTable } from '../component/table/controller.tsx';
8
+ import type { TypeTableCellRender } from './tableColumn.ts';
9
9
 
10
10
  export type TypeTable<TData extends {} = {}> = ReturnType<typeof useVueTable<TData>>;
11
11
 
@@ -3,8 +3,8 @@ import type { OmitNever } from 'zova';
3
3
  import type { ServiceOnion } from 'zova-module-a-bean';
4
4
  import type { IJsxRenderContextBase } from 'zova-module-a-openapi';
5
5
 
6
- import type { ControllerTable } from '../component/table/controller.jsx';
7
- import type { IJsxRenderContextTableColumn, ITableCellScope } from './tableColumn.js';
6
+ import type { ControllerTable } from '../component/table/controller.tsx';
7
+ import type { IJsxRenderContextTableColumn, ITableCellScope } from './tableColumn.ts';
8
8
 
9
9
  export interface IJsxRenderContextTableCell<TData extends {} = any> extends IJsxRenderContextBase {
10
10
  $celScope: ITableCellScope;
@@ -2,7 +2,7 @@ import type { CellContext, RowData } from '@tanstack/table-core';
2
2
  import type { SchemaObject } from 'openapi3-ts/oas31';
3
3
  import type { IJsxRenderContextBase, TypeTableCellRenderComponent } from 'zova-module-a-openapi';
4
4
 
5
- import type { ControllerTable } from '../component/table/controller.jsx';
5
+ import type { ControllerTable } from '../component/table/controller.tsx';
6
6
 
7
7
  export type TypeTableCellRender<TData extends RowData = RowData, TValue = any> = (
8
8
  props?: CellContext<TData, TValue>,
@@ -1,6 +1,6 @@
1
1
  import type { ISchemaObjectExtensionField } from 'zova-module-a-openapi';
2
2
 
3
- import { TableColumnIdSelection } from './table.js';
3
+ import { TableColumnIdSelection } from './table.ts';
4
4
 
5
5
  export type TypeTableLayoutWidth = number | 'auto';
6
6