zova-module-a-table 5.1.11 → 5.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,5 +40,10 @@ export declare const ZTable: new <TData extends {} = {}>(props: ({
40
40
  } | {
41
41
  [x: `on${Capitalize<string>}`]: ((...args: never) => any) | undefined;
42
42
  })), {}, {}, {}, {}, {}>;
43
+ declare module 'zova-module-a-bean' {
44
+ interface IVonaComponentRecord {
45
+ 'a-table:table': ControllerTableProps;
46
+ }
47
+ }
43
48
  export {};
44
49
  //# sourceMappingURL=table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/.metadata/component/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,MAAM,CAAC;AAKrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,MAAM,MAAM,8BAA8B,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,IAAI;IAClE,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;CACvD,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAEhC,KAAK,oBAAoB,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,IAAI,wBAAwB,CACzE,oBAAoB,CAAC,KAAK,CAAC,EAC3B,MAAM,OAAO,eAAe,CAAC,aAAa,CAC3C,CAAC;AACF,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,eAAe,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE;QACpD,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;KACrC;CACF;AACD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,WAAW,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,eAAe,CAAC,KAAK,CAAC;KAAG;CACtF;AACD,eAAO,MAAM,MAAM,OAChB,KAAK,SAAS,EAAE;sDAhBgC,IAAI;;;;;;sDAAJ,IAAI;;;;;;;;;;;;;sDAAJ,IAAI;;;;;wBAqBtD,CAAC"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/.metadata/component/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,MAAM,CAAC;AAKrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,MAAM,MAAM,8BAA8B,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,IAAI;IAClE,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;CACvD,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAEhC,KAAK,oBAAoB,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,IAAI,wBAAwB,CACzE,oBAAoB,CAAC,KAAK,CAAC,EAC3B,MAAM,OAAO,eAAe,CAAC,aAAa,CAC3C,CAAC;AACF,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,eAAe,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE;QACpD,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;KACrC;CACF;AACD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,WAAW,CAAC,KAAK,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,eAAe,CAAC,KAAK,CAAC;KAAG;CACtF;AACD,eAAO,MAAM,MAAM,OAChB,KAAK,SAAS,EAAE;sDAhBgC,IAAI;;;;;;sDAAJ,IAAI;;;;;;;;;;;;;sDAAJ,IAAI;;;;;wBAqBtD,CAAC;AACF,OAAO,QAAQ,oBAAoB,CAAC;IAClC,UAAiB,oBAAoB;QACnC,eAAe,EAAE,oBAAoB,CAAC;KACvC;CACF"}
@@ -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.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { BeanControllerBase, BeanControllerPageBase, BeanInfo, BeanRenderBase, BeanScopeBase, Use, appResource, 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";
4
5
  import { ZovaJsx, isJsxComponent } from "zova-jsx";
5
6
  import { Controller, Render, Scope } from "zova-module-a-bean";
6
7
  import { createVNode, defineComponent, markRaw } from "vue";
@@ -48,12 +49,12 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
48
49
  }
49
50
  async __init__() {
50
51
  this.bean._setBean("$$table", this);
51
- this.tableProvider = this.$useComputed(() => {
52
+ this.tableProvider = this.$computed(() => {
52
53
  const tableProvider = this.$$beanResourceProviders.tableProvider;
53
54
  return this.$props.tableProvider ? deepExtend({}, tableProvider, this.$props.tableProvider) : tableProvider;
54
55
  });
55
56
  this.columnCelEnv = this._getColumnCelEnv();
56
- this.zovaJsx = this.app.bean._newBeanSimple(ZovaJsx, false, this.tableProvider.components, this.columnCelEnv);
57
+ this.zovaJsx = this.bean._newBeanSimple(ZovaJsx, false, this.tableProvider.components, this.columnCelEnv);
57
58
  this._createProperties();
58
59
  await this.refreshMeta();
59
60
  this.$watch(() => this.$props.schema, async (newValue, oldValue) => {
@@ -118,7 +119,7 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
118
119
  return columns;
119
120
  }
120
121
  _createProperties() {
121
- this.properties = this.$useComputed(() => {
122
+ this.properties = this.$computed(() => {
122
123
  return this.$sdk.loadSchemaProperties(this.schema, "table");
123
124
  });
124
125
  }
@@ -187,7 +188,6 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
187
188
  beanInstance = await this.sys.bean._getBean(renderProvider, true);
188
189
  const onionOptions = appResource.getBean(renderProvider)?.options;
189
190
  columnProps = deepExtend({}, onionOptions, columnProps);
190
- columnProps = this.zovaJsx.renderJsxProps(columnProps, {}, columnScope, renderContext);
191
191
  if (beanInstance?.checkVisible && !await beanInstance.checkVisible(columnProps, renderContext)) return;
192
192
  }
193
193
  return (cellContext) => {
@@ -203,7 +203,6 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
203
203
  beanInstance = this.sys.bean._getBeanSyncOnly(renderProvider);
204
204
  const onionOptions = appResource.getBean(renderProvider)?.options;
205
205
  columnProps = deepExtend({}, onionOptions, columnProps);
206
- columnProps = this.zovaJsx.renderJsxProps(columnProps, {}, renderContext.$celScope, renderContext);
207
206
  }
208
207
  const cellProps = columnProps;
209
208
  return this._cellRender(render, columnProps, void 0, renderContext.cellContext, renderProvider, beanInstance, cellProps, cellScope, renderContext);
@@ -226,7 +225,12 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
226
225
  if (!jsxRenderContext) jsxRenderContext = this.getCellJsxRenderContext(cellScope, cellContext);
227
226
  if (beanInstance) {
228
227
  if (!cellProps) cellProps = columnProps;
229
- return beanInstance.render(cellProps, jsxRenderContext, () => {
228
+ const cellProps2 = this.zovaJsx.renderJsxProps(cellProps, {}, cellScope, jsxRenderContext);
229
+ if (cellProps2.class || cellProps2.style) {
230
+ cellProps2.class = classes(cellProps2.class, jsxRenderContext.$host.$style(cellProps2.style));
231
+ delete cellProps2.style;
232
+ }
233
+ return beanInstance.render(cellProps2, jsxRenderContext, () => {
230
234
  const children = isJsxComponent(render) && cast(render).children;
231
235
  if (children && children.length > 0) return this.zovaJsx.renderJsxChildrenDirect(children, cellScope, jsxRenderContext);
232
236
  else return value;
@@ -267,7 +271,7 @@ var ControllerTable = (_dec$2 = Controller(), _dec2$2 = BeanInfo({ module: "a-ta
267
271
  };
268
272
  }
269
273
  getRenderProvider(render) {
270
- if (!render) return "text";
274
+ if (!render || render === "text") return "text";
271
275
  if (typeof render === "string") {
272
276
  const render2 = this.tableProvider.components?.[render];
273
277
  if (!render2) throw new Error(`not found table cell component of: ${render}`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["celEnvBase","isNilOrEmptyString","createColumnHelper","getCoreRowModel","appResource","cast","deepEqual","deepExtend","objectAssignReactive","Use","isJsxComponent","ZovaJsx","Controller","BeanControllerTableBase","ControllerTable","_dec","_dec2","__z_BeanInfo","module","_dec3","_dec4","Reflect","metadata","BeanResourceProviders","Object","_class","_class2","_ControllerTable","constructor","args","properties","columns","table","tableProvider","tableMeta","zovaJsx","columnCelEnv","_initializerDefineProperty","_descriptor","__init__","bean","_setBean","$useComputed","$$beanResourceProviders","$props","_getColumnCelEnv","app","_newBeanSimple","components","_createProperties","refreshMeta","$watch","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","$sdk","loadSchemaProperties","promises","res","Promise","all","filter","_item","index","item","forEach","celScope","ctx","$scene","$host","$celScope","$jsx","$$table","getCellJsxRenderContext","cellContext","cellRenderPrepare","Array","isArray","renderProviders","map","getRenderProvider","renderProvider","includes","sys","_getBean","renderContext","beanInstance","beanOptions","getBean","onionOptions","options","renderJsxProps","checkVisible","_cellRender","undefined","cellRender","cellScope","_getBeanSyncOnly","cellProps","setTransientObject","getValue","name","_cellRenderInner","value","fallbackValue","children","length","renderJsxChildrenDirect","getColumnProperty","find","celEnv","clone","registerFunction","transientObject","scopeExtra","tableScope","rest","_getColumnComponentPropsTopByRest","_renderContext","evaluateExpression","assign","render2","Error","$propsDefault","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","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 IResourceActionRowOptionsBase,\n ISchemaObjectExtensionFieldRest,\n ITableProvider,\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 { VNode } from 'vue';\nimport { appResource, cast, deepEqual, deepExtend, objectAssignReactive, Use } from 'zova';\nimport { isJsxComponent, ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\nimport { BeanResourceProviders } from 'zova-module-a-openapi';\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 tableProvider?: ITableProvider;\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: SchemaObject[] | undefined;\n columns: TypeColumn<TData>[];\n table: TypeTable<TData>;\n tableProvider: ITableProvider;\n tableMeta: ITableMeta<TData>;\n zovaJsx: ZovaJsx;\n columnCelEnv: typeof celEnvBase;\n\n @Use()\n $$beanResourceProviders: BeanResourceProviders;\n\n protected async __init__() {\n this.bean._setBean('$$table', this);\n this.tableProvider = this.$useComputed(() => {\n const tableProvider = this.$$beanResourceProviders.tableProvider;\n return this.$props.tableProvider ? deepExtend({}, tableProvider, this.$props.tableProvider) : tableProvider;\n });\n // jsx\n this.columnCelEnv = this._getColumnCelEnv();\n this.zovaJsx = this.app.bean._newBeanSimple(ZovaJsx, false, this.tableProvider.components, 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: SchemaObject[]): 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.$useComputed(() => {\n return this.$sdk.loadSchemaProperties(this.schema, 'table');\n });\n }\n\n private async _createTableMeta() {\n let properties: SchemaObject[] = [];\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 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(render: TypeTableCellRenderComponent, columnProps: IResourceActionRowOptionsBase, renderContext: IJsxRenderContextTableCell) {\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 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') {\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);\n return beanInstance.render(cellProps, 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): SchemaObject | 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') {\n const render2 = this.tableProvider.components?.[render];\n if (!render2) throw new Error(`not found table cell component of: ${render}`);\n return render2;\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);\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","classes","appResource","cast","deepEqual","deepExtend","objectAssignReactive","Use","isJsxComponent","ZovaJsx","Controller","BeanControllerTableBase","ControllerTable","_dec","_dec2","__z_BeanInfo","module","_dec3","_dec4","Reflect","metadata","BeanResourceProviders","Object","_class","_class2","_ControllerTable","constructor","args","properties","columns","table","tableProvider","tableMeta","zovaJsx","columnCelEnv","_initializerDefineProperty","_descriptor","__init__","bean","_setBean","$computed","$$beanResourceProviders","$props","_getColumnCelEnv","_newBeanSimple","components","_createProperties","refreshMeta","$watch","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","$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","undefined","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","assign","render2","Error","$propsDefault","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","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 IResourceActionRowOptionsBase,\n ISchemaObjectExtensionFieldRest,\n ITableProvider,\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, cast, deepEqual, deepExtend, objectAssignReactive, Use } from 'zova';\nimport { isJsxComponent, ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\nimport { BeanResourceProviders } from 'zova-module-a-openapi';\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 tableProvider?: ITableProvider;\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: SchemaObject[] | undefined;\n columns: TypeColumn<TData>[];\n table: TypeTable<TData>;\n tableProvider: ITableProvider;\n tableMeta: ITableMeta<TData>;\n zovaJsx: ZovaJsx;\n columnCelEnv: typeof celEnvBase;\n\n @Use()\n $$beanResourceProviders: BeanResourceProviders;\n\n protected async __init__() {\n this.bean._setBean('$$table', this);\n this.tableProvider = this.$computed(() => {\n const tableProvider = this.$$beanResourceProviders.tableProvider;\n return this.$props.tableProvider ? deepExtend({}, tableProvider, this.$props.tableProvider) : tableProvider;\n });\n // jsx\n this.columnCelEnv = this._getColumnCelEnv();\n this.zovaJsx = this.bean._newBeanSimple(ZovaJsx, false, this.tableProvider.components, 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: SchemaObject[]): 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: SchemaObject[] = [];\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(render: TypeTableCellRenderComponent, columnProps: IResourceActionRowOptionsBase, renderContext: IJsxRenderContextTableCell) {\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') {\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): SchemaObject | 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 || render === ('text' as TypeTableCellRenderComponentProvider)) return 'text';\n if (typeof render === 'string') {\n const render2 = this.tableProvider.components?.[render];\n if (!render2) throw new Error(`not found table cell component of: ${render}`);\n return render2;\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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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-table",
3
- "version": "5.1.11",
4
- "gitHead": "da650d644d8851a92a8da4babaebfef74c9e8a5d",
3
+ "version": "5.1.15",
4
+ "gitHead": "6c7a09c8f0a8a0f41c5090b544a1667dbc689f0e",
5
5
  "description": "",
6
6
  "keywords": [
7
7
  "Zova Module"
@@ -14,8 +14,7 @@
14
14
  "rest",
15
15
  "src",
16
16
  "icons",
17
- "assets",
18
- "dist-cli"
17
+ "assets"
19
18
  ],
20
19
  "type": "module",
21
20
  "exports": {
@@ -26,8 +25,8 @@
26
25
  "./*": "./*"
27
26
  },
28
27
  "scripts": {
29
- "clean": "rimraf dist dist-cli tsconfig.build.tsbuildinfo tsconfig.cli.tsbuildinfo",
30
- "tsc:publish": "npm run clean && zova :bin:buildModule --sourcemap && tsc -p tsconfig.build.json && tsc -p tsconfig.cli.json",
28
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
29
+ "tsc:publish": "npm run clean && zova :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
31
30
  "prepublishOnly": "npm run tsc:publish",
32
31
  "prepack": "clean-package",
33
32
  "postpack": "clean-package restore && npm run clean"
@@ -58,8 +57,7 @@
58
57
  "beanGeneral": true,
59
58
  "optionsGlobalInterfaceName": "IDecoratorTableCellOptions",
60
59
  "optionsGlobalInterfaceFrom": "zova-module-a-table",
61
- "boilerplate": "tableCell/boilerplate",
62
- "metadataCustom": "tableCell/metadata/generate.ts"
60
+ "boilerplate": "tableCell/boilerplate"
63
61
  }
64
62
  }
65
63
  }
@@ -1 +1 @@
1
- export * from './component/table.js';
1
+ export * from 'zova-module-a-table';
@@ -30,3 +30,8 @@ export const ZTable = defineComponent(
30
30
  },
31
31
  prepareComponentOptions(),
32
32
  );
33
+ declare module 'zova-module-a-bean' {
34
+ export interface IVonaComponentRecord {
35
+ 'a-table:table': ControllerTableProps;
36
+ }
37
+ }
@@ -9,6 +9,7 @@ import type {
9
9
  import { celEnvBase, isNilOrEmptyString } from '@cabloy/utils';
10
10
  import { CellContext, createColumnHelper, getCoreRowModel, TableOptionsWithReactiveData } from '@tanstack/vue-table';
11
11
  import { SchemaObject } from 'openapi3-ts/oas31';
12
+ import { classes } from 'typestyle';
12
13
  import { VNode } from 'vue';
13
14
  import { appResource, cast, deepEqual, deepExtend, objectAssignReactive, Use } from 'zova';
14
15
  import { isJsxComponent, ZovaJsx } from 'zova-jsx';
@@ -55,13 +56,13 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
55
56
 
56
57
  protected async __init__() {
57
58
  this.bean._setBean('$$table', this);
58
- this.tableProvider = this.$useComputed(() => {
59
+ this.tableProvider = this.$computed(() => {
59
60
  const tableProvider = this.$$beanResourceProviders.tableProvider;
60
61
  return this.$props.tableProvider ? deepExtend({}, tableProvider, this.$props.tableProvider) : tableProvider;
61
62
  });
62
63
  // jsx
63
64
  this.columnCelEnv = this._getColumnCelEnv();
64
- this.zovaJsx = this.app.bean._newBeanSimple(ZovaJsx, false, this.tableProvider.components, this.columnCelEnv);
65
+ this.zovaJsx = this.bean._newBeanSimple(ZovaJsx, false, this.tableProvider.components, this.columnCelEnv);
65
66
  // properties
66
67
  this._createProperties();
67
68
  // tableMeta/columns
@@ -151,7 +152,7 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
151
152
  }
152
153
 
153
154
  private _createProperties() {
154
- this.properties = this.$useComputed(() => {
155
+ this.properties = this.$computed(() => {
155
156
  return this.$sdk.loadSchemaProperties(this.schema, 'table');
156
157
  });
157
158
  }
@@ -238,7 +239,8 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
238
239
  const beanOptions = appResource.getBean(renderProvider as any);
239
240
  const onionOptions = beanOptions?.options as IDecoratorTableCellOptions | undefined;
240
241
  columnProps = deepExtend({}, onionOptions, columnProps);
241
- columnProps = this.zovaJsx.renderJsxProps(columnProps as any, {}, columnScope, renderContext) as any;
242
+ // should not eval jsx columnProps
243
+ // columnProps = this.zovaJsx.renderJsxProps(columnProps as any, {}, columnScope, renderContext) as any;
242
244
  if (beanInstance?.checkVisible && !(await beanInstance.checkVisible(columnProps as any, renderContext))) return;
243
245
  }
244
246
  return cellContext => {
@@ -259,7 +261,8 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
259
261
  const beanOptions = appResource.getBean(renderProvider as any);
260
262
  const onionOptions = beanOptions?.options as IDecoratorTableCellOptions | undefined;
261
263
  columnProps = deepExtend({}, onionOptions, columnProps);
262
- columnProps = this.zovaJsx.renderJsxProps(columnProps as any, {}, renderContext.$celScope, renderContext) as any;
264
+ // should not eval jsx columnProps
265
+ // columnProps = this.zovaJsx.renderJsxProps(columnProps as any, {}, renderContext.$celScope, renderContext) as any;
263
266
  }
264
267
  // const cellProps = isJsxComponent(render) ? Object.assign({}, columnProps, cast(render).props) : columnProps;
265
268
  const cellProps = columnProps;
@@ -343,8 +346,12 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
343
346
  // cellProps = isJsxComponent(render) ? Object.assign({}, columnProps, cast(render).props) : columnProps;
344
347
  cellProps = columnProps;
345
348
  }
346
- // const cellProps2 = this.zovaJsx.renderJsxProps(cellProps, {}, cellScope, jsxRenderContext);
347
- return beanInstance.render(cellProps, jsxRenderContext, () => {
349
+ const cellProps2 = this.zovaJsx.renderJsxProps(cellProps, {}, cellScope, jsxRenderContext) as any;
350
+ if (cellProps2.class || cellProps2.style) {
351
+ cellProps2.class = classes(cellProps2.class, jsxRenderContext.$host.$style(cellProps2.style));
352
+ delete cellProps2.style;
353
+ }
354
+ return beanInstance.render(cellProps2, jsxRenderContext, () => {
348
355
  const children = isJsxComponent(render) && cast(render).children;
349
356
  if (children && children.length > 0) {
350
357
  return this.zovaJsx.renderJsxChildrenDirect(children, cellScope, jsxRenderContext);
@@ -404,7 +411,7 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
404
411
  // }
405
412
 
406
413
  public getRenderProvider(render: TypeTableCellRenderComponent | undefined): TypeTableCellRenderComponentProvider {
407
- if (!render) return 'text';
414
+ if (!render || render === ('text' as TypeTableCellRenderComponentProvider)) return 'text';
408
415
  if (typeof render === 'string') {
409
416
  const render2 = this.tableProvider.components?.[render];
410
417
  if (!render2) throw new Error(`not found table cell component of: ${render}`);
@@ -1,63 +0,0 @@
1
- import type { IMetadataCustomGenerateOptions } from '@cabloy/cli';
2
- import type { IGlobBeanFile } from '@cabloy/module-info';
3
-
4
- import { combineResourceName } from '@cabloy/utils';
5
- import { toUpperCaseFirstChar } from '@cabloy/word-utils';
6
- import fse from 'fs-extra';
7
- import path from 'node:path';
8
-
9
- import { generateRestIndex } from './utils.ts';
10
-
11
- export default async function (options: IMetadataCustomGenerateOptions): Promise<string> {
12
- const { globFiles } = options;
13
- for (const globFile of globFiles) {
14
- if (globFile.isIgnore) continue;
15
- // restComponent
16
- await generateRestTableCell(options, globFile);
17
- }
18
- return '';
19
- }
20
-
21
- async function generateRestTableCell(
22
- options: IMetadataCustomGenerateOptions,
23
- globFile: IGlobBeanFile,
24
- ) {
25
- const { moduleName, modulePath } = options;
26
- const { beanName, beanNameCapitalize, sceneName } = globFile;
27
- // options
28
- const typeOptionsName = `ITableCellOptions${beanNameCapitalize}`;
29
- // import
30
- const contentImports: string[] = [];
31
- contentImports.push(`import type { ${typeOptionsName} } from 'zova-module-${moduleName}';`);
32
- // component
33
- const componentNamePrefix = 'BBT';
34
- const componentName = beanName;
35
- const componentNameFull = `${componentNamePrefix}${toUpperCaseFirstChar(combineResourceName(componentName, moduleName, true, true))}`;
36
- const contentComponent = `export function ${componentNameFull}(
37
- _props: ${typeOptionsName},
38
- ) {
39
- return '${moduleName}.${sceneName}.${beanName}';
40
- }`;
41
- // content
42
- const content = `${contentImports.join('\n')}
43
-
44
- ${contentComponent}
45
- `;
46
- // output
47
- const fileDest = path.join(modulePath, `rest/tableCell/${beanName}.ts`);
48
- await fse.outputFile(fileDest, content);
49
- // tableCells
50
- const fileComponents = path.join(modulePath, 'rest/tableCells.ts');
51
- let contentComponents = '';
52
- if (fse.existsSync(fileComponents)) {
53
- contentComponents = (await fse.readFile(fileComponents)).toString();
54
- }
55
- const exportContent = `export * from './tableCell/${beanName}.js';`;
56
- if (!contentComponents.includes(exportContent)) {
57
- contentComponents = `${contentComponents}${exportContent}\n`;
58
- await fse.outputFile(fileComponents, contentComponents);
59
- }
60
- // index
61
- const exportIndexContent = "export * from './tableCells.js';";
62
- await generateRestIndex(modulePath, exportIndexContent);
63
- }
@@ -1,15 +0,0 @@
1
- import fse from 'fs-extra';
2
- import path from 'node:path';
3
-
4
- export async function generateRestIndex(modulePath: string, append: string) {
5
- // index
6
- const fileIndex = path.join(modulePath, 'rest/index.ts');
7
- let contentIndex = '';
8
- if (fse.existsSync(fileIndex)) {
9
- contentIndex = (await fse.readFile(fileIndex)).toString();
10
- }
11
- if (!contentIndex.includes(append)) {
12
- contentIndex = `${contentIndex}${append}\n`;
13
- await fse.outputFile(fileIndex, contentIndex);
14
- }
15
- }
package/cli/tsconfig.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "extends": "../../../tsconfig.base",
3
- "compilerOptions": {
4
- "allowImportingTsExtensions": true,
5
- "rewriteRelativeImportExtensions": true,
6
- "verbatimModuleSyntax": true
7
- }
8
- }
@@ -1,55 +0,0 @@
1
- import { combineResourceName } from '@cabloy/utils';
2
- import { toUpperCaseFirstChar } from '@cabloy/word-utils';
3
- import fse from 'fs-extra';
4
- import path from 'node:path';
5
- import { generateRestIndex } from "./utils.js";
6
- export default async function (options) {
7
- const { globFiles } = options;
8
- for (const globFile of globFiles) {
9
- if (globFile.isIgnore)
10
- continue;
11
- // restComponent
12
- await generateRestTableCell(options, globFile);
13
- }
14
- return '';
15
- }
16
- async function generateRestTableCell(options, globFile) {
17
- const { moduleName, modulePath } = options;
18
- const { beanName, beanNameCapitalize, sceneName } = globFile;
19
- // options
20
- const typeOptionsName = `ITableCellOptions${beanNameCapitalize}`;
21
- // import
22
- const contentImports = [];
23
- contentImports.push(`import type { ${typeOptionsName} } from 'zova-module-${moduleName}';`);
24
- // component
25
- const componentNamePrefix = 'BBT';
26
- const componentName = beanName;
27
- const componentNameFull = `${componentNamePrefix}${toUpperCaseFirstChar(combineResourceName(componentName, moduleName, true, true))}`;
28
- const contentComponent = `export function ${componentNameFull}(
29
- _props: ${typeOptionsName},
30
- ) {
31
- return '${moduleName}.${sceneName}.${beanName}';
32
- }`;
33
- // content
34
- const content = `${contentImports.join('\n')}
35
-
36
- ${contentComponent}
37
- `;
38
- // output
39
- const fileDest = path.join(modulePath, `rest/tableCell/${beanName}.ts`);
40
- await fse.outputFile(fileDest, content);
41
- // tableCells
42
- const fileComponents = path.join(modulePath, 'rest/tableCells.ts');
43
- let contentComponents = '';
44
- if (fse.existsSync(fileComponents)) {
45
- contentComponents = (await fse.readFile(fileComponents)).toString();
46
- }
47
- const exportContent = `export * from './tableCell/${beanName}.js';`;
48
- if (!contentComponents.includes(exportContent)) {
49
- contentComponents = `${contentComponents}${exportContent}\n`;
50
- await fse.outputFile(fileComponents, contentComponents);
51
- }
52
- // index
53
- const exportIndexContent = "export * from './tableCells.js';";
54
- await generateRestIndex(modulePath, exportIndexContent);
55
- }
@@ -1,14 +0,0 @@
1
- import fse from 'fs-extra';
2
- import path from 'node:path';
3
- export async function generateRestIndex(modulePath, append) {
4
- // index
5
- const fileIndex = path.join(modulePath, 'rest/index.ts');
6
- let contentIndex = '';
7
- if (fse.existsSync(fileIndex)) {
8
- contentIndex = (await fse.readFile(fileIndex)).toString();
9
- }
10
- if (!contentIndex.includes(append)) {
11
- contentIndex = `${contentIndex}${append}\n`;
12
- await fse.outputFile(fileIndex, contentIndex);
13
- }
14
- }
@@ -1,8 +0,0 @@
1
- import type { TypeRenderComponentJsxPropsPublic } from 'zova-jsx';
2
- import type { ControllerTableProps } from 'zova-module-a-table';
3
-
4
- type TypeControllerTablePublicProps<TData extends {} = {}> = TypeRenderComponentJsxPropsPublic &
5
- ControllerTableProps<TData>;
6
- export function BBZTable<TData extends {} = {}>(_props: TypeControllerTablePublicProps<TData>) {
7
- return 'a-table:table';
8
- }