zova-module-a-table 5.1.18 → 5.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ import { CellContext } 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, TypeTable, TypeTableGetColumns } from '../../types/table.js';
7
+ import type { ITableMeta, TypeColumn, TypeTableGetColumns } from '../../types/table.js';
8
8
  import type { IJsxRenderContextTableCell } from '../../types/tableCell.js';
9
9
  import { BeanControllerTableBase } from '../../lib/beanControllerTableBase.js';
10
10
  import { ITableCellRenderColumnOptions, type IJsxRenderContextTableColumn, type ITableCellScope, type ITableColumnScope, type ITableScope } from '../../types/tableColumn.js';
@@ -15,11 +15,10 @@ export interface ControllerTableProps<TData extends {} = {}> {
15
15
  getColumns?: TypeTableGetColumns<TData>;
16
16
  slotDefault?: (table: ControllerTable<TData>) => VNode;
17
17
  }
18
- export declare class ControllerTable<TData extends {} = {}> extends BeanControllerTableBase {
18
+ export declare class ControllerTable<TData extends {} = {}> extends BeanControllerTableBase<TData> {
19
19
  static $propsDefault: {};
20
20
  properties: ISchemaObjectExtensionField[] | undefined;
21
21
  columns: TypeColumn<TData>[];
22
- table: TypeTable<TData>;
23
22
  tableMeta: ITableMeta<TData>;
24
23
  zovaJsx: ZovaJsx;
25
24
  columnCelEnv: typeof celEnvBase;
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/table/controller.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kCAAkC,EAClC,2BAA2B,EAE3B,4BAA4B,EAC5B,oCAAoC,EACrC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAsB,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAqE,MAAM,qBAAqB,CAAC;AACrH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC;AAE5B,OAAO,EAAkB,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,KAAK,EAA8B,0BAA0B,EAAoB,MAAM,0BAA0B,CAAC;AAEzH,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EACL,6BAA6B,EAC7B,KAAK,4BAA4B,EAEjC,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEjB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,oBAAoB,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE;IACzD,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;CACxD;AAED,qBACa,eAAe,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,uBAAuB;IACjF,MAAM,CAAC,aAAa,KAAM;IAE1B,UAAU,EAAE,2BAA2B,EAAE,GAAG,SAAS,CAAC;IACtD,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,UAAU,CAAC;cAEhB,QAAQ;IAqBxB,IAAI,MAAM,6BAET;IAED,IAAI,IAAI,wBAEP;IAEY,WAAW;IAKxB,OAAO,CAAC,YAAY;YAkBN,cAAc;YAsBd,oBAAoB;IAmBlC,OAAO,CAAC,iBAAiB;YAMX,gBAAgB;IA6BvB,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,4BAA4B;IAYpF,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,0BAA0B;IAa9G,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,4BAA4B,EAAE;YAavF,mBAAmB;IAyB1B,UAAU,CACf,MAAM,EAAE,4BAA4B,EACpC,WAAW,EAAE,kCAAkC,EAC/C,aAAa,EAAE,0BAA0B;IA+B3C,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,gBAAgB;IAoDjB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAK/E,OAAO,CAAC,gBAAgB;IAWjB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,iBAAiB;IAQhE,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,6BAA6B;IAM/G,OAAO,CAAC,iCAAiC;IAgBlC,iBAAiB,CAAC,MAAM,EAAE,4BAA4B,GAAG,SAAS,GAAG,oCAAoC;CAOjH"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/table/controller.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kCAAkC,EAClC,2BAA2B,EAE3B,4BAA4B,EAC5B,oCAAoC,EACrC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAsB,MAAM,eAAe,CAAC;AAC/D,OAAO,EACL,WAAW,EAIZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC;AAS5B,OAAO,EAAkB,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAEV,0BAA0B,EAE3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EACL,6BAA6B,EAC7B,KAAK,4BAA4B,EAEjC,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEjB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,oBAAoB,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE;IACzD,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;CACxD;AAED,qBACa,eAAe,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,uBAAuB,CAAC,KAAK,CAAC;IACxF,MAAM,CAAC,aAAa,KAAM;IAI1B,UAAU,EAAE,2BAA2B,EAAE,GAAG,SAAS,CAAC;IACtD,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,UAAU,CAAC;cAEhB,QAAQ;IAqBxB,IAAI,MAAM,6BAET;IAED,IAAI,IAAI,wBAEP;IAEY,WAAW;IAKxB,OAAO,CAAC,YAAY;YAkBN,cAAc;YA6Bd,oBAAoB;IAqBlC,OAAO,CAAC,iBAAiB;YAMX,gBAAgB;IAiCvB,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,4BAA4B;IAYpF,uBAAuB,CAC5B,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,GACnC,0BAA0B;IAahB,iBAAiB,CAC5B,OAAO,EAAE,4BAA4B,GAAG,4BAA4B,EAAE;YAc1D,mBAAmB;IAuC1B,UAAU,CACf,MAAM,EAAE,4BAA4B,EACpC,WAAW,EAAE,kCAAkC,EAC/C,aAAa,EAAE,0BAA0B;IA+B3C,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,gBAAgB;IA4DjB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAK/E,OAAO,CAAC,gBAAgB;IAWjB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,iBAAiB;IAQhE,0BAA0B,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,EAAE,EACZ,aAAa,EAAE,EAAE,GAChB,6BAA6B;IAMhC,OAAO,CAAC,iCAAiC;IAgBlC,iBAAiB,CACtB,MAAM,EAAE,4BAA4B,GAAG,SAAS,GAC/C,oCAAoC;CAOxC"}
package/dist/index.js CHANGED
@@ -1,12 +1,15 @@
1
1
  import { BeanControllerBase, BeanControllerPageBase, BeanInfo, BeanRenderBase, BeanScopeBase, appResource, beanFullNameFromOnionName, cast, createBeanDecorator, deepEqual, deepExtend, objectAssignReactive, prepareComponentOptions, useController } from "zova";
2
2
  import { celEnvBase, isNilOrEmptyString } from "@cabloy/utils";
3
3
  import { FlexRender, createColumnHelper, getCoreRowModel, useVueTable } from "@tanstack/vue-table";
4
- import { classes } from "typestyle";
5
4
  import { ZovaJsx, isJsxComponent } from "zova-jsx";
6
5
  import { Controller, Render, Scope } from "zova-module-a-bean";
7
6
  import { createVNode, defineComponent, markRaw } from "vue";
8
7
  //#region src/lib/beanControllerTableBase.ts
9
8
  var BeanControllerTableBase = class extends BeanControllerBase {
9
+ constructor(...args) {
10
+ super(...args);
11
+ this.table = void 0;
12
+ }
10
13
  $useTable(initialOptions) {
11
14
  return this.ctx.util.instanceScope(() => {
12
15
  return markRaw(useVueTable(initialOptions));
@@ -24,7 +27,6 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
24
27
  super(...args);
25
28
  this.properties = void 0;
26
29
  this.columns = void 0;
27
- this.table = void 0;
28
30
  this.tableMeta = void 0;
29
31
  this.zovaJsx = void 0;
30
32
  this.columnCelEnv = void 0;
@@ -205,7 +207,7 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
205
207
  if (!cellProps) cellProps = columnProps;
206
208
  const cellProps2 = this.zovaJsx.renderJsxProps(cellProps, {}, cellScope, jsxRenderContext);
207
209
  if (cellProps2.class || cellProps2.style) {
208
- cellProps2.class = classes(cellProps2.class, jsxRenderContext.$host.$style(cellProps2.style));
210
+ cellProps2.class = jsxRenderContext.$host.$cssMerge(cellProps2.class, jsxRenderContext.$host.$style(cellProps2.style));
209
211
  delete cellProps2.style;
210
212
  }
211
213
  return beanInstance.render(cellProps2, jsxRenderContext, () => {
@@ -300,6 +302,10 @@ var ScopeModuleATable = (_dec = Scope(), _dec2 = BeanInfo({ module: "a-table" })
300
302
  //#endregion
301
303
  //#region src/lib/beanControllerPageTableBase.ts
302
304
  var BeanControllerPageTableBase = class extends BeanControllerPageBase {
305
+ constructor(...args) {
306
+ super(...args);
307
+ this.table = void 0;
308
+ }
303
309
  $useTable(initialOptions) {
304
310
  return this.ctx.util.instanceScope(() => {
305
311
  return markRaw(useVueTable(initialOptions));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["celEnvBase","isNilOrEmptyString","createColumnHelper","getCoreRowModel","classes","appResource","beanFullNameFromOnionName","cast","deepEqual","deepExtend","objectAssignReactive","isJsxComponent","ZovaJsx","Controller","BeanControllerTableBase","ControllerTable","_dec","_dec2","__z_BeanInfo","module","_class","_ControllerTable","constructor","args","properties","columns","table","tableMeta","zovaJsx","columnCelEnv","__init__","bean","_setBean","_getColumnCelEnv","_newBeanSimple","undefined","_createProperties","refreshMeta","$watch","$props","schema","newValue","oldValue","_createTable","data","_createTableMeta","_createColumns","self","tableOptions","getRowId","row","id","renderFallbackValue","scope","config","manualPagination","$useTable","getColumns","_createColumnsMiddle","key","render","columnScope","getColumnScope","jsxRenderContext","getColumnJsxRenderContext","visible","columnProps","getColumnComponentPropsTop","_createColumnRender","columnHelper","property","push","accessor","header","_props","title","cell","props","renders","$computed","$sdk","loadSchemaProperties","promises","res","Promise","all","filter","_item","index","item","forEach","celScope","app","ctx","$scene","$host","$celScope","$jsx","$$table","getCellJsxRenderContext","cellContext","cellRenderPrepare","Array","isArray","renderProviders","map","getRenderProvider","renderProvider","includes","sys","_getBean","renderContext","beanInstance","beanOptions","getBean","onionOptions","options","checkVisible","_cellRender","cellRender","cellScope","_getBeanSyncOnly","cellProps","setTransientObject","getValue","name","_cellRenderInner","value","fallbackValue","cellProps2","renderJsxProps","class","style","$style","children","length","renderJsxChildrenDirect","getColumnProperty","find","celEnv","clone","registerFunction","transientObject","scopeExtra","tableScope","rest","_getColumnComponentPropsTopByRest","_renderContext","evaluateExpression","Object","assign","$propsDefault","FlexRender","BeanRenderBase","Render","RenderTable","_dec","_dec2","__z_BeanInfo","module","_class","_renderTableDefault","table","_createVNode","getFlatHeaders","map","header","id","column","columnDef","getContext","getRowModel","rows","row","getVisibleCells","cell","render","$slotDefault"],"sources":["../src/lib/beanControllerTableBase.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 type { RowData, Table } from '@tanstack/table-core';\nimport type { TableOptionsWithReactiveData } from '@tanstack/vue-table';\n\nimport { useVueTable } from '@tanstack/vue-table';\nimport { markRaw } from 'vue';\nimport { BeanControllerBase } from 'zova';\n\nexport class BeanControllerTableBase extends BeanControllerBase {\n public $useTable<TData extends RowData>(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData> {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useVueTable(initialOptions));\n });\n }\n\n public async refreshMeta() {\n throw new Error('should implement refreshMeta');\n }\n}\n","import type {\n IResourceTableActionRowOptionsBase,\n ISchemaObjectExtensionField,\n ISchemaObjectExtensionFieldRest,\n TypeTableCellRenderComponent,\n TypeTableCellRenderComponentProvider,\n} from 'zova-module-a-openapi';\n\nimport { celEnvBase, isNilOrEmptyString } from '@cabloy/utils';\nimport { CellContext, createColumnHelper, getCoreRowModel, TableOptionsWithReactiveData } from '@tanstack/vue-table';\nimport { SchemaObject } from 'openapi3-ts/oas31';\nimport { classes } from 'typestyle';\nimport { VNode } from 'vue';\nimport { appResource, beanFullNameFromOnionName, cast, deepEqual, deepExtend, objectAssignReactive } from 'zova';\nimport { isJsxComponent, ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\n\nimport type { ITableMeta, TypeColumn, TypeTable, TypeTableGetColumns } from '../../types/table.js';\nimport type { IDecoratorTableCellOptions, IJsxRenderContextTableCell, ITableCellRender } from '../../types/tableCell.js';\n\nimport { BeanControllerTableBase } from '../../lib/beanControllerTableBase.js';\nimport {\n ITableCellRenderColumnOptions,\n type IJsxRenderContextTableColumn,\n type ITableCellRenderColumnProps,\n type ITableCellScope,\n type ITableColumnScope,\n type ITableScope,\n type TypeTableCellRender,\n} from '../../types/tableColumn.js';\n\nexport interface ControllerTableProps<TData extends {} = {}> {\n data?: TData[];\n schema?: SchemaObject;\n tableScope?: ITableScope;\n getColumns?: TypeTableGetColumns<TData>;\n slotDefault?: (table: ControllerTable<TData>) => VNode;\n}\n\n@Controller()\nexport class ControllerTable<TData extends {} = {}> extends BeanControllerTableBase {\n static $propsDefault = {};\n\n properties: ISchemaObjectExtensionField[] | undefined;\n columns: TypeColumn<TData>[];\n table: TypeTable<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 // table\n this._createTable();\n }\n\n get schema() {\n return this.$props.schema;\n }\n\n get data() {\n return this.$props.data;\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: (row: TData) => cast(row).id,\n getCoreRowModel: getCoreRowModel(),\n renderFallbackValue: this.scope.config.renderFallbackValue,\n manualPagination: true,\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 if (!this.$props.getColumns) return await this._createColumnsMiddle(this.tableMeta.properties);\n return await this.$props.getColumns(\n async properties => {\n return await this._createColumnsMiddle(properties ?? this.tableMeta.properties);\n },\n async (key: string, render: TypeTableCellRenderComponent): 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(key, columnScope, jsxRenderContext);\n // visible\n if (visible === false) return;\n return await this._createColumnRender(render, columnProps, columnScope, jsxRenderContext);\n },\n this,\n );\n }\n\n private async _createColumnsMiddle(properties: ISchemaObjectExtensionField[]): 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 }),\n );\n }\n return columns;\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(key, columnScope, jsxRenderContext);\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(celScope: ITableCellScope, cellContext: CellContext<TData, any>): 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(renders: TypeTableCellRenderComponent | TypeTableCellRenderComponent[]) {\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.sys.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.sys.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 (beanInstance?.checkVisible && !(await beanInstance.checkVisible(columnProps as any, renderContext))) return;\n }\n return cellContext => {\n if (!cellContext) return;\n return this._cellRender(render, columnProps, columnScope, cellContext, renderProvider, beanInstance, undefined, undefined, undefined);\n };\n }\n\n public cellRender(\n render: TypeTableCellRenderComponent,\n columnProps: IResourceTableActionRowOptionsBase,\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.sys.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(cellProps, {}, cellScope, jsxRenderContext) as any;\n if (cellProps2.class || cellProps2.style) {\n cellProps2.class = classes(cellProps2.class, jsxRenderContext.$host.$style(cellProps2.style));\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);\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(name: string, celScope: {}, renderContext: {}): 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(render: TypeTableCellRenderComponent | undefined): 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 { FlexRender } from '@tanstack/vue-table';\nimport { BeanRenderBase } from 'zova';\nimport { Render } from 'zova-module-a-bean';\n\n@Render()\nexport class RenderTable extends BeanRenderBase {\n private _renderTableDefault() {\n const table = this.table;\n return (\n <table class=\"table\">\n <thead>\n <tr>\n {table.getFlatHeaders().map(header => {\n return (\n <th key={header.id}>\n <FlexRender\n render={header.column.columnDef.header}\n props={header.getContext()}\n ></FlexRender>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {table.getRowModel().rows.map(row => {\n return (\n <tr key={row.id}>\n {row.getVisibleCells().map(cell => {\n return (\n <td key={cell.id}>\n <FlexRender\n render={cell.column.columnDef.cell}\n props={cell.getContext()}\n ></FlexRender>\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 type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\n\nimport type { ControllerTableProps } from '../../component/table/controller.jsx';\n\nimport { ControllerTable } from '../../component/table/controller.jsx';\nimport { RenderTable } from '../../component/table/render.jsx';\nexport type TypeControllerTablePublicProps<TData extends {} = {}> = {\n controllerRef?: (ref: ControllerTable<TData>) => void;\n} & ControllerTableProps<TData>;\n\ntype ControllerInnerProps<TData extends {} = {}> = TypeControllerInnerProps<\n ControllerTableProps<TData>,\n keyof typeof ControllerTable.$propsDefault\n>;\ndeclare module 'zova-module-a-table' {\n export interface ControllerTable<TData extends {} = {}> {\n $props: ControllerInnerProps<TData>;\n }\n}\ndeclare module 'zova-module-a-table' {\n export interface RenderTable<TData extends {} = {}> extends ControllerTable<TData> {}\n}\nexport const ZTable = defineComponent(\n <TData extends {} = {}>(_props: TypeControllerTablePublicProps<TData>) => {\n useController(ControllerTable, RenderTable, undefined);\n return () => {};\n },\n prepareComponentOptions(),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-table:table': ControllerTableProps;\n }\n}\n","import type { ZovaSys } from 'zova';\n\nexport const config = (_sys: ZovaSys) => {\n return {\n renderFallbackValue: '--',\n };\n};\n","// eslint-disable\n/** controller: begin */\nexport * from '../component/table/controller.jsx';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-table' {\n \n export interface ControllerTable {\n /** @internal */\n get scope(): ScopeModuleATable;\n } \n}\n/** controller: end */\n/** controller: begin */\nimport { ControllerTable } from '../component/table/controller.jsx';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordLocal {\n 'a-table.controller.table': ControllerTable;\n }\n}\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';\ndeclare module 'zova' {\nexport interface IComponentRecord {\n 'a-table:table': ControllerTable;\n}\nexport interface IZovaComponentRecord {\n 'a-table:table': typeof ZTable;\n}\n}\n/** components: end */\n/** render: begin */\nexport * from '../component/table/render.jsx';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-table' {\n \n export interface RenderTable {\n /** @internal */\n get scope(): ScopeModuleATable;\n } \n}\n/** render: end */\n/** render: begin */\nimport { RenderTable } from '../component/table/render.jsx';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordLocal {\n 'a-table.render.table': RenderTable;\n }\n}\n/** render: end */\n/** config: begin */\nexport * from '../config/config.js';\nimport { config } from '../config/config.js';\n/** config: end */\n/** scope: begin */\nimport { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\n\n@Scope()\nexport class ScopeModuleATable extends BeanScopeBase {}\n\nexport interface ScopeModuleATable {\n util: BeanScopeUtil;\nconfig: TypeModuleConfig<typeof config>;\n}\n\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanScopeRecord {\n 'a-table': ScopeModuleATable;\n }\n \n export interface IBeanScopeConfig {\n 'a-table': ReturnType<typeof config>;\n }\n\n \n\n \n}\n \n/** scope: end */\n","import type { RowData, Table } from '@tanstack/table-core';\nimport type { TableOptionsWithReactiveData } from '@tanstack/vue-table';\n\nimport { useVueTable } from '@tanstack/vue-table';\nimport { markRaw } from 'vue';\nimport { BeanControllerPageBase } from 'zova';\n\nexport class BeanControllerPageTableBase extends BeanControllerPageBase {\n public $useTable<TData extends RowData>(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData> {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useVueTable(initialOptions));\n });\n }\n\n public async refreshMeta() {\n throw new Error('should implement refreshMeta');\n }\n}\n","import { createBeanDecorator } from 'zova';\n\nimport type { IDecoratorTableCellOptions } from '../types/tableCell.js';\n\nexport function TableCell<T extends IDecoratorTableCellOptions>(options?: T): ClassDecorator {\n return createBeanDecorator('tableCell', 'sys', true, options);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["celEnvBase","isNilOrEmptyString","createColumnHelper","getCoreRowModel","appResource","beanFullNameFromOnionName","cast","deepEqual","deepExtend","objectAssignReactive","isJsxComponent","ZovaJsx","Controller","BeanControllerTableBase","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","_createTable","data","_createTableMeta","_createColumns","self","tableOptions","getRowId","row","id","renderFallbackValue","scope","config","manualPagination","table","$useTable","getColumns","_createColumnsMiddle","key","render","columnScope","getColumnScope","jsxRenderContext","getColumnJsxRenderContext","visible","columnProps","getColumnComponentPropsTop","_createColumnRender","columnHelper","property","push","accessor","header","_props","title","cell","props","renders","$computed","$sdk","loadSchemaProperties","promises","res","Promise","all","filter","_item","index","item","forEach","celScope","app","ctx","$scene","$host","$celScope","$jsx","$$table","getCellJsxRenderContext","cellContext","cellRenderPrepare","Array","isArray","renderProviders","map","getRenderProvider","renderProvider","includes","sys","_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","find","celEnv","clone","registerFunction","transientObject","scopeExtra","tableScope","rest","_getColumnComponentPropsTopByRest","_renderContext","evaluateExpression","Object","assign","$propsDefault","FlexRender","BeanRenderBase","Render","RenderTable","_dec","_dec2","__z_BeanInfo","module","_class","_renderTableDefault","table","_createVNode","getFlatHeaders","map","header","id","column","columnDef","getContext","getRowModel","rows","row","getVisibleCells","cell","render","$slotDefault"],"sources":["../src/lib/beanControllerTableBase.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 type { Table } from '@tanstack/table-core';\nimport type { TableOptionsWithReactiveData } from '@tanstack/vue-table';\n\nimport { useVueTable } from '@tanstack/vue-table';\nimport { markRaw } from 'vue';\nimport { BeanControllerBase } from 'zova';\n\nimport { TypeTable } from '../types/table.js';\n\nexport class BeanControllerTableBase<TData extends {} = {}> extends BeanControllerBase {\n table: TypeTable<TData>;\n\n public $useTable(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData> {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useVueTable(initialOptions));\n });\n }\n\n public async refreshMeta() {\n throw new Error('should implement refreshMeta');\n }\n}\n","import type {\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 getCoreRowModel,\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';\n\nimport { BeanControllerTableBase } from '../../lib/beanControllerTableBase.js';\nimport {\n ITableCellRenderColumnOptions,\n type IJsxRenderContextTableColumn,\n type ITableCellRenderColumnProps,\n type ITableCellScope,\n type ITableColumnScope,\n type ITableScope,\n type TypeTableCellRender,\n} from '../../types/tableColumn.js';\n\nexport interface ControllerTableProps<TData extends {} = {}> {\n data?: TData[];\n schema?: SchemaObject;\n tableScope?: ITableScope;\n getColumns?: TypeTableGetColumns<TData>;\n slotDefault?: (table: ControllerTable<TData>) => VNode;\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 // table\n this._createTable();\n }\n\n get schema() {\n return this.$props.schema;\n }\n\n get data() {\n return this.$props.data;\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: (row: TData) => cast(row).id,\n getCoreRowModel: getCoreRowModel(),\n renderFallbackValue: this.scope.config.renderFallbackValue,\n manualPagination: true,\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 if (!this.$props.getColumns) return await this._createColumnsMiddle(this.tableMeta.properties);\n return 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(render, columnProps, columnScope, jsxRenderContext);\n },\n this,\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 }),\n );\n }\n return columns;\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.sys.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.sys.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 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,\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.sys.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);\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 { FlexRender } from '@tanstack/vue-table';\nimport { BeanRenderBase } from 'zova';\nimport { Render } from 'zova-module-a-bean';\n\n@Render()\nexport class RenderTable extends BeanRenderBase {\n private _renderTableDefault() {\n const table = this.table;\n return (\n <table class=\"table\">\n <thead>\n <tr>\n {table.getFlatHeaders().map(header => {\n return (\n <th key={header.id}>\n <FlexRender\n render={header.column.columnDef.header}\n props={header.getContext()}\n ></FlexRender>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {table.getRowModel().rows.map(row => {\n return (\n <tr key={row.id}>\n {row.getVisibleCells().map(cell => {\n return (\n <td key={cell.id}>\n <FlexRender\n render={cell.column.columnDef.cell}\n props={cell.getContext()}\n ></FlexRender>\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 type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\n\nimport type { ControllerTableProps } from '../../component/table/controller.jsx';\n\nimport { ControllerTable } from '../../component/table/controller.jsx';\nimport { RenderTable } from '../../component/table/render.jsx';\nexport type TypeControllerTablePublicProps<TData extends {} = {}> = {\n controllerRef?: (ref: ControllerTable<TData>) => void;\n} & ControllerTableProps<TData>;\n\ntype ControllerInnerProps<TData extends {} = {}> = TypeControllerInnerProps<\n ControllerTableProps<TData>,\n keyof typeof ControllerTable.$propsDefault\n>;\ndeclare module 'zova-module-a-table' {\n export interface ControllerTable<TData extends {} = {}> {\n $props: ControllerInnerProps<TData>;\n }\n}\ndeclare module 'zova-module-a-table' {\n export interface RenderTable<TData extends {} = {}> extends ControllerTable<TData> {}\n}\nexport const ZTable = defineComponent(\n <TData extends {} = {}>(_props: TypeControllerTablePublicProps<TData>) => {\n useController(ControllerTable, RenderTable, undefined);\n return () => {};\n },\n prepareComponentOptions(),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-table:table': ControllerTableProps;\n }\n}\n","import type { ZovaSys } from 'zova';\n\nexport const config = (_sys: ZovaSys) => {\n return {\n renderFallbackValue: '--',\n };\n};\n","// eslint-disable\n/** controller: begin */\nexport * from '../component/table/controller.jsx';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-table' {\n \n export interface ControllerTable {\n /** @internal */\n get scope(): ScopeModuleATable;\n } \n}\n/** controller: end */\n/** controller: begin */\nimport { ControllerTable } from '../component/table/controller.jsx';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordLocal {\n 'a-table.controller.table': ControllerTable;\n }\n}\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';\ndeclare module 'zova' {\nexport interface IComponentRecord {\n 'a-table:table': ControllerTable;\n}\nexport interface IZovaComponentRecord {\n 'a-table:table': typeof ZTable;\n}\n}\n/** components: end */\n/** render: begin */\nexport * from '../component/table/render.jsx';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-table' {\n \n export interface RenderTable {\n /** @internal */\n get scope(): ScopeModuleATable;\n } \n}\n/** render: end */\n/** render: begin */\nimport { RenderTable } from '../component/table/render.jsx';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordLocal {\n 'a-table.render.table': RenderTable;\n }\n}\n/** render: end */\n/** config: begin */\nexport * from '../config/config.js';\nimport { config } from '../config/config.js';\n/** config: end */\n/** scope: begin */\nimport { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\n\n@Scope()\nexport class ScopeModuleATable extends BeanScopeBase {}\n\nexport interface ScopeModuleATable {\n util: BeanScopeUtil;\nconfig: TypeModuleConfig<typeof config>;\n}\n\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanScopeRecord {\n 'a-table': ScopeModuleATable;\n }\n \n export interface IBeanScopeConfig {\n 'a-table': ReturnType<typeof config>;\n }\n\n \n\n \n}\n \n/** scope: end */\n","import type { Table } from '@tanstack/table-core';\nimport type { TableOptionsWithReactiveData } from '@tanstack/vue-table';\n\nimport { useVueTable } from '@tanstack/vue-table';\nimport { markRaw } from 'vue';\nimport { BeanControllerPageBase } from 'zova';\n\nimport { TypeTable } from '../types/table.js';\n\nexport class BeanControllerPageTableBase<TData extends {} = {}> extends BeanControllerPageBase {\n table: TypeTable<TData>;\n\n public $useTable(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData> {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useVueTable(initialOptions));\n });\n }\n\n public async refreshMeta() {\n throw new Error('should implement refreshMeta');\n }\n}\n","import { createBeanDecorator } from 'zova';\n\nimport type { IDecoratorTableCellOptions } from '../types/tableCell.js';\n\nexport function TableCell<T extends IDecoratorTableCellOptions>(options?: T): ClassDecorator {\n return createBeanDecorator('tableCell', 'sys', true, options);\n}\n"],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import type { RowData, Table } from '@tanstack/table-core';
1
+ import type { Table } from '@tanstack/table-core';
2
2
  import type { TableOptionsWithReactiveData } from '@tanstack/vue-table';
3
3
  import { BeanControllerPageBase } from 'zova';
4
- export declare class BeanControllerPageTableBase extends BeanControllerPageBase {
5
- $useTable<TData extends RowData>(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData>;
4
+ import { TypeTable } from '../types/table.js';
5
+ export declare class BeanControllerPageTableBase<TData extends {} = {}> extends BeanControllerPageBase {
6
+ table: TypeTable<TData>;
7
+ $useTable(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData>;
6
8
  refreshMeta(): Promise<void>;
7
9
  }
8
10
  //# sourceMappingURL=beanControllerPageTableBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"beanControllerPageTableBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanControllerPageTableBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAIxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,MAAM,CAAC;AAE9C,qBAAa,2BAA4B,SAAQ,sBAAsB;IAC9D,SAAS,CAAC,KAAK,SAAS,OAAO,EAAE,cAAc,EAAE,4BAA4B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAM7F,WAAW;CAGzB"}
1
+ {"version":3,"file":"beanControllerPageTableBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanControllerPageTableBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAIxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,2BAA2B,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,sBAAsB;IAC5F,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAEjB,SAAS,CAAC,cAAc,EAAE,4BAA4B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAMtE,WAAW;CAGzB"}
@@ -1,8 +1,10 @@
1
- import type { RowData, Table } from '@tanstack/table-core';
1
+ import type { Table } from '@tanstack/table-core';
2
2
  import type { TableOptionsWithReactiveData } from '@tanstack/vue-table';
3
3
  import { BeanControllerBase } from 'zova';
4
- export declare class BeanControllerTableBase extends BeanControllerBase {
5
- $useTable<TData extends RowData>(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData>;
4
+ import { TypeTable } from '../types/table.js';
5
+ export declare class BeanControllerTableBase<TData extends {} = {}> extends BeanControllerBase {
6
+ table: TypeTable<TData>;
7
+ $useTable(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData>;
6
8
  refreshMeta(): Promise<void>;
7
9
  }
8
10
  //# sourceMappingURL=beanControllerTableBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"beanControllerTableBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanControllerTableBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAIxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE1C,qBAAa,uBAAwB,SAAQ,kBAAkB;IACtD,SAAS,CAAC,KAAK,SAAS,OAAO,EAAE,cAAc,EAAE,4BAA4B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAM7F,WAAW;CAGzB"}
1
+ {"version":3,"file":"beanControllerTableBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanControllerTableBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAIxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,uBAAuB,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,kBAAkB;IACpF,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAEjB,SAAS,CAAC,cAAc,EAAE,4BAA4B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAMtE,WAAW;CAGzB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-table",
3
- "version": "5.1.18",
4
- "gitHead": "343c61ad189fe3f0fc997ee9f4c710567657e05c",
3
+ "version": "5.1.20",
4
+ "gitHead": "ef0ca8f10e64815ed940d580c5d0100768e02bd0",
5
5
  "description": "",
6
6
  "keywords": [
7
7
  "Zova Module"
@@ -7,16 +7,31 @@ import type {
7
7
  } from 'zova-module-a-openapi';
8
8
 
9
9
  import { celEnvBase, isNilOrEmptyString } from '@cabloy/utils';
10
- import { CellContext, createColumnHelper, getCoreRowModel, TableOptionsWithReactiveData } from '@tanstack/vue-table';
10
+ import {
11
+ CellContext,
12
+ createColumnHelper,
13
+ getCoreRowModel,
14
+ TableOptionsWithReactiveData,
15
+ } from '@tanstack/vue-table';
11
16
  import { SchemaObject } from 'openapi3-ts/oas31';
12
- import { classes } from 'typestyle';
13
17
  import { VNode } from 'vue';
14
- import { appResource, beanFullNameFromOnionName, cast, deepEqual, deepExtend, objectAssignReactive } from 'zova';
18
+ import {
19
+ appResource,
20
+ beanFullNameFromOnionName,
21
+ cast,
22
+ deepEqual,
23
+ deepExtend,
24
+ objectAssignReactive,
25
+ } from 'zova';
15
26
  import { isJsxComponent, ZovaJsx } from 'zova-jsx';
16
27
  import { Controller } from 'zova-module-a-bean';
17
28
 
18
- import type { ITableMeta, TypeColumn, TypeTable, TypeTableGetColumns } from '../../types/table.js';
19
- import type { IDecoratorTableCellOptions, IJsxRenderContextTableCell, ITableCellRender } from '../../types/tableCell.js';
29
+ import type { ITableMeta, TypeColumn, TypeTableGetColumns } from '../../types/table.js';
30
+ import type {
31
+ IDecoratorTableCellOptions,
32
+ IJsxRenderContextTableCell,
33
+ ITableCellRender,
34
+ } from '../../types/tableCell.js';
20
35
 
21
36
  import { BeanControllerTableBase } from '../../lib/beanControllerTableBase.js';
22
37
  import {
@@ -38,12 +53,13 @@ export interface ControllerTableProps<TData extends {} = {}> {
38
53
  }
39
54
 
40
55
  @Controller()
41
- export class ControllerTable<TData extends {} = {}> extends BeanControllerTableBase {
56
+ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableBase<TData> {
42
57
  static $propsDefault = {};
43
58
 
59
+ // table: TypeTable<TData>; // in BeanControllerTableBase
60
+
44
61
  properties: ISchemaObjectExtensionField[] | undefined;
45
62
  columns: TypeColumn<TData>[];
46
- table: TypeTable<TData>;
47
63
  tableMeta: ITableMeta<TData>;
48
64
  zovaJsx: ZovaJsx;
49
65
  columnCelEnv: typeof celEnvBase;
@@ -107,13 +123,20 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
107
123
  async properties => {
108
124
  return await this._createColumnsMiddle(properties ?? this.tableMeta.properties);
109
125
  },
110
- async (key: string, render: TypeTableCellRenderComponent): Promise<TypeTableCellRender<TData, any> | undefined> => {
126
+ async (
127
+ key: string,
128
+ render: TypeTableCellRenderComponent,
129
+ ): Promise<TypeTableCellRender<TData, any> | undefined> => {
111
130
  // columnScope
112
131
  const columnScope = this.getColumnScope(key);
113
132
  // renderContext
114
133
  const jsxRenderContext = this.getColumnJsxRenderContext(columnScope);
115
134
  // columnProps
116
- const { visible, columnProps } = this.getColumnComponentPropsTop(key, columnScope, jsxRenderContext);
135
+ const { visible, columnProps } = this.getColumnComponentPropsTop(
136
+ key,
137
+ columnScope,
138
+ jsxRenderContext,
139
+ );
117
140
  // visible
118
141
  if (visible === false) return;
119
142
  return await this._createColumnRender(render, columnProps, columnScope, jsxRenderContext);
@@ -122,7 +145,9 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
122
145
  );
123
146
  }
124
147
 
125
- private async _createColumnsMiddle(properties: ISchemaObjectExtensionField[]): Promise<TypeColumn<TData>[]> {
148
+ private async _createColumnsMiddle(
149
+ properties: ISchemaObjectExtensionField[],
150
+ ): Promise<TypeColumn<TData>[]> {
126
151
  const tableMeta = this.tableMeta;
127
152
  const columnHelper = createColumnHelper<TData>();
128
153
  const columns: TypeColumn<TData>[] = [];
@@ -159,7 +184,11 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
159
184
  // renderContext
160
185
  const jsxRenderContext = this.getColumnJsxRenderContext(columnScope);
161
186
  // columnProps
162
- const { visible, render, columnProps } = this.getColumnComponentPropsTop(key, columnScope, jsxRenderContext);
187
+ const { visible, render, columnProps } = this.getColumnComponentPropsTop(
188
+ key,
189
+ columnScope,
190
+ jsxRenderContext,
191
+ );
163
192
  // visible
164
193
  if (visible === false) continue;
165
194
  // property
@@ -188,7 +217,10 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
188
217
  };
189
218
  }
190
219
 
191
- public getCellJsxRenderContext(celScope: ITableCellScope, cellContext: CellContext<TData, any>): IJsxRenderContextTableCell {
220
+ public getCellJsxRenderContext(
221
+ celScope: ITableCellScope,
222
+ cellContext: CellContext<TData, any>,
223
+ ): IJsxRenderContextTableCell {
192
224
  return {
193
225
  app: this.app,
194
226
  ctx: this.ctx,
@@ -201,7 +233,9 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
201
233
  };
202
234
  }
203
235
 
204
- public async cellRenderPrepare(renders: TypeTableCellRenderComponent | TypeTableCellRenderComponent[]) {
236
+ public async cellRenderPrepare(
237
+ renders: TypeTableCellRenderComponent | TypeTableCellRenderComponent[],
238
+ ) {
205
239
  if (!Array.isArray(renders)) renders = [renders];
206
240
  const renderProviders = renders.map(item => this.getRenderProvider(item));
207
241
  const promises: Promise<any>[] = renderProviders.map(renderProvider =>
@@ -231,11 +265,25 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
231
265
  columnProps = deepExtend({}, onionOptions, columnProps);
232
266
  // should not eval jsx columnProps
233
267
  // columnProps = this.zovaJsx.renderJsxProps(columnProps as any, {}, columnScope, renderContext) as any;
234
- if (beanInstance?.checkVisible && !(await beanInstance.checkVisible(columnProps as any, renderContext))) return;
268
+ if (
269
+ beanInstance?.checkVisible &&
270
+ !(await beanInstance.checkVisible(columnProps as any, renderContext))
271
+ )
272
+ return;
235
273
  }
236
274
  return cellContext => {
237
275
  if (!cellContext) return;
238
- return this._cellRender(render, columnProps, columnScope, cellContext, renderProvider, beanInstance, undefined, undefined, undefined);
276
+ return this._cellRender(
277
+ render,
278
+ columnProps,
279
+ columnScope,
280
+ cellContext,
281
+ renderProvider,
282
+ beanInstance,
283
+ undefined,
284
+ undefined,
285
+ undefined,
286
+ );
239
287
  };
240
288
  }
241
289
 
@@ -340,9 +388,17 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
340
388
  // cellProps = isJsxComponent(render) ? Object.assign({}, columnProps, cast(render).props) : columnProps;
341
389
  cellProps = columnProps;
342
390
  }
343
- const cellProps2 = this.zovaJsx.renderJsxProps(cellProps, {}, cellScope, jsxRenderContext) as any;
391
+ const cellProps2 = this.zovaJsx.renderJsxProps(
392
+ cellProps,
393
+ {},
394
+ cellScope,
395
+ jsxRenderContext,
396
+ ) as any;
344
397
  if (cellProps2.class || cellProps2.style) {
345
- cellProps2.class = classes(cellProps2.class, jsxRenderContext.$host.$style(cellProps2.style));
398
+ cellProps2.class = jsxRenderContext.$host.$cssMerge(
399
+ cellProps2.class,
400
+ jsxRenderContext.$host.$style(cellProps2.style),
401
+ );
346
402
  delete cellProps2.style;
347
403
  }
348
404
  return beanInstance.render(cellProps2, jsxRenderContext, () => {
@@ -382,7 +438,11 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
382
438
  });
383
439
  }
384
440
 
385
- public getColumnComponentPropsTop(name: string, celScope: {}, renderContext: {}): ITableCellRenderColumnOptions {
441
+ public getColumnComponentPropsTop(
442
+ name: string,
443
+ celScope: {},
444
+ renderContext: {},
445
+ ): ITableCellRenderColumnOptions {
386
446
  const property = this.getColumnProperty(name);
387
447
  const rest = property?.rest;
388
448
  return this._getColumnComponentPropsTopByRest(rest, name, celScope, renderContext);
@@ -404,7 +464,9 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
404
464
  // return isJsxComponent(render) ? cast(render).type : render;
405
465
  // }
406
466
 
407
- public getRenderProvider(render: TypeTableCellRenderComponent | undefined): TypeTableCellRenderComponentProvider {
467
+ public getRenderProvider(
468
+ render: TypeTableCellRenderComponent | undefined,
469
+ ): TypeTableCellRenderComponentProvider {
408
470
  if (!render) return 'text';
409
471
  if (typeof render === 'string' && render.includes(':')) {
410
472
  return beanFullNameFromOnionName(render, 'tableCell');
@@ -1,12 +1,16 @@
1
- import type { RowData, Table } from '@tanstack/table-core';
1
+ import type { Table } from '@tanstack/table-core';
2
2
  import type { TableOptionsWithReactiveData } from '@tanstack/vue-table';
3
3
 
4
4
  import { useVueTable } from '@tanstack/vue-table';
5
5
  import { markRaw } from 'vue';
6
6
  import { BeanControllerPageBase } from 'zova';
7
7
 
8
- export class BeanControllerPageTableBase extends BeanControllerPageBase {
9
- public $useTable<TData extends RowData>(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData> {
8
+ import { TypeTable } from '../types/table.js';
9
+
10
+ export class BeanControllerPageTableBase<TData extends {} = {}> extends BeanControllerPageBase {
11
+ table: TypeTable<TData>;
12
+
13
+ public $useTable(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData> {
10
14
  return this.ctx.util.instanceScope(() => {
11
15
  return markRaw(useVueTable(initialOptions));
12
16
  });
@@ -1,12 +1,16 @@
1
- import type { RowData, Table } from '@tanstack/table-core';
1
+ import type { Table } from '@tanstack/table-core';
2
2
  import type { TableOptionsWithReactiveData } from '@tanstack/vue-table';
3
3
 
4
4
  import { useVueTable } from '@tanstack/vue-table';
5
5
  import { markRaw } from 'vue';
6
6
  import { BeanControllerBase } from 'zova';
7
7
 
8
- export class BeanControllerTableBase extends BeanControllerBase {
9
- public $useTable<TData extends RowData>(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData> {
8
+ import { TypeTable } from '../types/table.js';
9
+
10
+ export class BeanControllerTableBase<TData extends {} = {}> extends BeanControllerBase {
11
+ table: TypeTable<TData>;
12
+
13
+ public $useTable(initialOptions: TableOptionsWithReactiveData<TData>): Table<TData> {
10
14
  return this.ctx.util.instanceScope(() => {
11
15
  return markRaw(useVueTable(initialOptions));
12
16
  });