@tanstack/vue-table 8.5.1 → 8.5.2

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.
@@ -16,15 +16,18 @@ var index = require('../../table-core/build/esm/index.js');
16
16
  var vue = require('vue');
17
17
  var mergeProxy = require('./merge-proxy.js');
18
18
 
19
- function flexRender(Comp, props) {
20
- if (!Comp) return null;
19
+ const FlexRender = {
20
+ props: ['render', 'props'],
21
+ setup: props => {
22
+ return () => {
23
+ if (typeof props.render === 'function' || typeof props.render === 'object') {
24
+ return vue.h(props.render, props.props);
25
+ }
21
26
 
22
- if (typeof Comp === 'function') {
23
- return vue.h(Comp, props);
27
+ return props.render;
28
+ };
24
29
  }
25
-
26
- return Comp;
27
- }
30
+ };
28
31
  function useVueTable(options) {
29
32
  const resolvedOptions = mergeProxy.mergeProxy({
30
33
  state: {},
@@ -66,10 +69,7 @@ function useVueTable(options) {
66
69
  }
67
70
  });
68
71
  });
69
- }); // onBeforeUpdate(() => {
70
- // table.willUpdate()
71
- // })
72
-
72
+ });
73
73
  return table;
74
74
  }
75
75
 
@@ -117,6 +117,6 @@ exports.reSplitAlphaNumeric = index.reSplitAlphaNumeric;
117
117
  exports.selectRowsFn = index.selectRowsFn;
118
118
  exports.shouldAutoRemoveFilter = index.shouldAutoRemoveFilter;
119
119
  exports.sortingFns = index.sortingFns;
120
- exports.flexRender = flexRender;
120
+ exports.FlexRender = FlexRender;
121
121
  exports.useVueTable = useVueTable;
122
122
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import {\n TableOptions,\n createTable,\n TableOptionsResolved,\n RowData,\n} from '@tanstack/table-core'\nimport { h, watchEffect, ref, VNode } from 'vue'\nimport { mergeProxy } from './merge-proxy'\n\nexport * from '@tanstack/table-core'\n\nexport function flexRender<TProps extends {}>(\n Comp: any,\n props: TProps\n): VNode | string | number | boolean | null {\n if (!Comp) return null\n\n if (typeof Comp === 'function') {\n return h(Comp, props)\n }\n\n return Comp\n}\n\nexport function useVueTable<TData extends RowData>(\n options: TableOptions<TData>\n) {\n const resolvedOptions: TableOptionsResolved<TData> = mergeProxy(\n {\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n renderFallbackValue: null,\n mergeOptions(\n defaultOptions: TableOptions<TData>,\n options: TableOptions<TData>\n ) {\n return mergeProxy(defaultOptions, options)\n },\n },\n options\n )\n\n const table = createTable<TData>(resolvedOptions)\n // can't use `reactive` because update needs to be immutable\n const state = ref(table.initialState)\n\n watchEffect(() => {\n table.setOptions(prev => {\n const stateProxy = new Proxy({} as typeof state.value, {\n get: (_, prop) => state.value[prop as keyof typeof state.value],\n })\n\n return mergeProxy(prev, options, {\n // merge the initialState and `options.state`\n // create a new proxy on each `setOptions` call\n // and get the value from state on each property access\n state: mergeProxy(stateProxy, options.state ?? {}),\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: (updater: any) => {\n if (updater instanceof Function) {\n state.value = updater(state.value)\n } else {\n state.value = updater\n }\n\n options.onStateChange?.(updater)\n },\n })\n })\n })\n\n // onBeforeUpdate(() => {\n // table.willUpdate()\n // })\n\n return table\n}\n"],"names":["flexRender","Comp","props","h","useVueTable","options","resolvedOptions","mergeProxy","state","onStateChange","renderFallbackValue","mergeOptions","defaultOptions","table","createTable","ref","initialState","watchEffect","setOptions","prev","stateProxy","Proxy","get","_","prop","value","updater","Function"],"mappings":";;;;;;;;;;;;;;;;;;AAWO,SAASA,UAAT,CACLC,IADK,EAELC,KAFK,EAGqC;AAC1C,EAAA,IAAI,CAACD,IAAL,EAAW,OAAO,IAAP,CAAA;;AAEX,EAAA,IAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;AAC9B,IAAA,OAAOE,KAAC,CAACF,IAAD,EAAOC,KAAP,CAAR,CAAA;AACD,GAAA;;AAED,EAAA,OAAOD,IAAP,CAAA;AACD,CAAA;AAEM,SAASG,WAAT,CACLC,OADK,EAEL;EACA,MAAMC,eAA4C,GAAGC,qBAAU,CAC7D;AACEC,IAAAA,KAAK,EAAE,EADT;AACa;IACXC,aAAa,EAAE,MAAM,EAFvB;AAE2B;AACzBC,IAAAA,mBAAmB,EAAE,IAHvB;;AAIEC,IAAAA,YAAY,CACVC,cADU,EAEVP,OAFU,EAGV;AACA,MAAA,OAAOE,qBAAU,CAACK,cAAD,EAAiBP,OAAjB,CAAjB,CAAA;AACD,KAAA;;GAV0D,EAY7DA,OAZ6D,CAA/D,CAAA;AAeA,EAAA,MAAMQ,KAAK,GAAGC,iBAAW,CAAQR,eAAR,CAAzB,CAhBA;;AAkBA,EAAA,MAAME,KAAK,GAAGO,OAAG,CAACF,KAAK,CAACG,YAAP,CAAjB,CAAA;AAEAC,EAAAA,eAAW,CAAC,MAAM;AAChBJ,IAAAA,KAAK,CAACK,UAAN,CAAiBC,IAAI,IAAI;AAAA,MAAA,IAAA,cAAA,CAAA;;AACvB,MAAA,MAAMC,UAAU,GAAG,IAAIC,KAAJ,CAAU,EAAV,EAAoC;QACrDC,GAAG,EAAE,CAACC,CAAD,EAAIC,IAAJ,KAAahB,KAAK,CAACiB,KAAN,CAAYD,IAAZ,CAAA;AADmC,OAApC,CAAnB,CAAA;AAIA,MAAA,OAAOjB,qBAAU,CAACY,IAAD,EAAOd,OAAP,EAAgB;AAC/B;AACA;AACA;QACAG,KAAK,EAAED,qBAAU,CAACa,UAAD,EAAA,CAAA,cAAA,GAAaf,OAAO,CAACG,KAArB,KAA8B,IAAA,GAAA,cAAA,GAAA,EAA9B,CAJc;AAK/B;AACA;QACAC,aAAa,EAAGiB,OAAD,IAAkB;UAC/B,IAAIA,OAAO,YAAYC,QAAvB,EAAiC;YAC/BnB,KAAK,CAACiB,KAAN,GAAcC,OAAO,CAAClB,KAAK,CAACiB,KAAP,CAArB,CAAA;AACD,WAFD,MAEO;YACLjB,KAAK,CAACiB,KAAN,GAAcC,OAAd,CAAA;AACD,WAAA;;AAEDrB,UAAAA,OAAO,CAACI,aAAR,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAJ,OAAO,CAACI,aAAR,CAAwBiB,OAAxB,CAAA,CAAA;AACD,SAAA;AAf8B,OAAhB,CAAjB,CAAA;KALF,CAAA,CAAA;GADS,CAAX,CApBA;AA+CA;AACA;;AAEA,EAAA,OAAOb,KAAP,CAAA;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import {\n TableOptions,\n createTable,\n TableOptionsResolved,\n RowData,\n} from '@tanstack/table-core'\nimport { h, watchEffect, ref } from 'vue'\nimport { mergeProxy } from './merge-proxy'\n\nexport * from '@tanstack/table-core'\n\nexport const FlexRender = {\n props: ['render', 'props'],\n setup: (props: { render: any; props: any }) => {\n return () => {\n if (\n typeof props.render === 'function' ||\n typeof props.render === 'object'\n ) {\n return h(props.render, props.props)\n }\n\n return props.render\n }\n },\n}\n\nexport function useVueTable<TData extends RowData>(\n options: TableOptions<TData>\n) {\n const resolvedOptions: TableOptionsResolved<TData> = mergeProxy(\n {\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n renderFallbackValue: null,\n mergeOptions(\n defaultOptions: TableOptions<TData>,\n options: TableOptions<TData>\n ) {\n return mergeProxy(defaultOptions, options)\n },\n },\n options\n )\n\n const table = createTable<TData>(resolvedOptions)\n // can't use `reactive` because update needs to be immutable\n const state = ref(table.initialState)\n\n watchEffect(() => {\n table.setOptions(prev => {\n const stateProxy = new Proxy({} as typeof state.value, {\n get: (_, prop) => state.value[prop as keyof typeof state.value],\n })\n\n return mergeProxy(prev, options, {\n // merge the initialState and `options.state`\n // create a new proxy on each `setOptions` call\n // and get the value from state on each property access\n state: mergeProxy(stateProxy, options.state ?? {}),\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: (updater: any) => {\n if (updater instanceof Function) {\n state.value = updater(state.value)\n } else {\n state.value = updater\n }\n\n options.onStateChange?.(updater)\n },\n })\n })\n })\n\n return table\n}\n"],"names":["FlexRender","props","setup","render","h","useVueTable","options","resolvedOptions","mergeProxy","state","onStateChange","renderFallbackValue","mergeOptions","defaultOptions","table","createTable","ref","initialState","watchEffect","setOptions","prev","stateProxy","Proxy","get","_","prop","value","updater","Function"],"mappings":";;;;;;;;;;;;;;;;;;AAWO,MAAMA,UAAU,GAAG;AACxBC,EAAAA,KAAK,EAAE,CAAC,QAAD,EAAW,OAAX,CADiB;EAExBC,KAAK,EAAGD,KAAD,IAAwC;AAC7C,IAAA,OAAO,MAAM;AACX,MAAA,IACE,OAAOA,KAAK,CAACE,MAAb,KAAwB,UAAxB,IACA,OAAOF,KAAK,CAACE,MAAb,KAAwB,QAF1B,EAGE;QACA,OAAOC,KAAC,CAACH,KAAK,CAACE,MAAP,EAAeF,KAAK,CAACA,KAArB,CAAR,CAAA;AACD,OAAA;;MAED,OAAOA,KAAK,CAACE,MAAb,CAAA;KARF,CAAA;AAUD,GAAA;AAbuB,EAAnB;AAgBA,SAASE,WAAT,CACLC,OADK,EAEL;EACA,MAAMC,eAA4C,GAAGC,qBAAU,CAC7D;AACEC,IAAAA,KAAK,EAAE,EADT;AACa;IACXC,aAAa,EAAE,MAAM,EAFvB;AAE2B;AACzBC,IAAAA,mBAAmB,EAAE,IAHvB;;AAIEC,IAAAA,YAAY,CACVC,cADU,EAEVP,OAFU,EAGV;AACA,MAAA,OAAOE,qBAAU,CAACK,cAAD,EAAiBP,OAAjB,CAAjB,CAAA;AACD,KAAA;;GAV0D,EAY7DA,OAZ6D,CAA/D,CAAA;AAeA,EAAA,MAAMQ,KAAK,GAAGC,iBAAW,CAAQR,eAAR,CAAzB,CAhBA;;AAkBA,EAAA,MAAME,KAAK,GAAGO,OAAG,CAACF,KAAK,CAACG,YAAP,CAAjB,CAAA;AAEAC,EAAAA,eAAW,CAAC,MAAM;AAChBJ,IAAAA,KAAK,CAACK,UAAN,CAAiBC,IAAI,IAAI;AAAA,MAAA,IAAA,cAAA,CAAA;;AACvB,MAAA,MAAMC,UAAU,GAAG,IAAIC,KAAJ,CAAU,EAAV,EAAoC;QACrDC,GAAG,EAAE,CAACC,CAAD,EAAIC,IAAJ,KAAahB,KAAK,CAACiB,KAAN,CAAYD,IAAZ,CAAA;AADmC,OAApC,CAAnB,CAAA;AAIA,MAAA,OAAOjB,qBAAU,CAACY,IAAD,EAAOd,OAAP,EAAgB;AAC/B;AACA;AACA;QACAG,KAAK,EAAED,qBAAU,CAACa,UAAD,EAAA,CAAA,cAAA,GAAaf,OAAO,CAACG,KAArB,KAA8B,IAAA,GAAA,cAAA,GAAA,EAA9B,CAJc;AAK/B;AACA;QACAC,aAAa,EAAGiB,OAAD,IAAkB;UAC/B,IAAIA,OAAO,YAAYC,QAAvB,EAAiC;YAC/BnB,KAAK,CAACiB,KAAN,GAAcC,OAAO,CAAClB,KAAK,CAACiB,KAAP,CAArB,CAAA;AACD,WAFD,MAEO;YACLjB,KAAK,CAACiB,KAAN,GAAcC,OAAd,CAAA;AACD,WAAA;;AAEDrB,UAAAA,OAAO,CAACI,aAAR,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAJ,OAAO,CAACI,aAAR,CAAwBiB,OAAxB,CAAA,CAAA;AACD,SAAA;AAf8B,OAAhB,CAAjB,CAAA;KALF,CAAA,CAAA;AAuBD,GAxBU,CAAX,CAAA;AA0BA,EAAA,OAAOb,KAAP,CAAA;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2935,8 +2935,20 @@ function createTable(options) {
2935
2935
 
2936
2936
  defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};
2937
2937
  return {
2938
- header: props => props.header.column.id,
2939
- footer: props => props.header.column.id,
2938
+ header: props => {
2939
+ const resolvedColumnDef = props.header.column.columnDef;
2940
+
2941
+ if (resolvedColumnDef.accessorKey) {
2942
+ return resolvedColumnDef.accessorKey;
2943
+ }
2944
+
2945
+ if (resolvedColumnDef.accessorFn) {
2946
+ return resolvedColumnDef.id;
2947
+ }
2948
+
2949
+ return null;
2950
+ },
2951
+ // footer: props => props.header.column.id,
2940
2952
  cell: props => {
2941
2953
  var _props$renderValue$to, _props$renderValue;
2942
2954
 
@@ -3948,15 +3960,18 @@ function mergeProxy() {
3948
3960
  }, propTraps);
3949
3961
  }
3950
3962
 
3951
- function flexRender(Comp, props) {
3952
- if (!Comp) return null;
3963
+ const FlexRender = {
3964
+ props: ['render', 'props'],
3965
+ setup: props => {
3966
+ return () => {
3967
+ if (typeof props.render === 'function' || typeof props.render === 'object') {
3968
+ return h(props.render, props.props);
3969
+ }
3953
3970
 
3954
- if (typeof Comp === 'function') {
3955
- return h(Comp, props);
3971
+ return props.render;
3972
+ };
3956
3973
  }
3957
-
3958
- return Comp;
3959
- }
3974
+ };
3960
3975
  function useVueTable(options) {
3961
3976
  const resolvedOptions = mergeProxy({
3962
3977
  state: {},
@@ -3998,12 +4013,9 @@ function useVueTable(options) {
3998
4013
  }
3999
4014
  });
4000
4015
  });
4001
- }); // onBeforeUpdate(() => {
4002
- // table.willUpdate()
4003
- // })
4004
-
4016
+ });
4005
4017
  return table;
4006
4018
  }
4007
4019
 
4008
- export { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, flexRender, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns, useVueTable };
4020
+ export { ColumnSizing, Expanding, Filters, FlexRender, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns, useVueTable };
4009
4021
  //# sourceMappingURL=index.js.map