@tanstack/svelte-table 8.2.6 → 8.3.0

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.
@@ -131,6 +131,7 @@ exports.Visibility = index.Visibility;
131
131
  exports.aggregationFns = index.aggregationFns;
132
132
  exports.buildHeaderGroups = index.buildHeaderGroups;
133
133
  exports.createColumn = index.createColumn;
134
+ exports.createColumnHelper = index.createColumnHelper;
134
135
  exports.createRow = index.createRow;
135
136
  exports.createTable = index.createTable;
136
137
  exports.defaultColumnSizing = index.defaultColumnSizing;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import {\n RowData,\n PartialKeys,\n TableGenerics,\n createTable,\n TableOptions,\n TableOptionsResolved,\n} from '@tanstack/table-core'\nimport Placeholder from './placeholder'\nimport { SvelteComponent } from 'svelte/internal'\nimport { readable, writable, derived, Readable, get } from 'svelte/store'\nimport { renderComponent } from './render-component'\n\nexport { renderComponent } from './render-component'\n\nexport * from '@tanstack/table-core'\n\nfunction isSvelteServerComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$render === 'function' &&\n typeof component.render === 'function'\n )\n}\n\nfunction isSvelteClientComponent(component: any) {\n let isHMR = '__SVELTE_HMR' in window\n\n return (\n component.prototype instanceof SvelteComponent ||\n (isHMR &&\n component.name?.startsWith('Proxy<') &&\n component.name?.endsWith('>'))\n )\n}\n\nfunction isSvelteComponent(component: any) {\n if (typeof document === 'undefined') {\n return isSvelteServerComponent(component)\n } else {\n return isSvelteClientComponent(component)\n }\n}\n\nfunction wrapInPlaceholder(content: any) {\n return renderComponent(Placeholder, { content })\n}\n\nexport function flexRender(component: any, props: any) {\n if (!component) return null\n\n if (isSvelteComponent(component)) {\n return renderComponent(component, props)\n }\n\n if (typeof component === 'function') {\n const result = component(props)\n\n if (isSvelteComponent(result)) {\n return result\n }\n\n return wrapInPlaceholder(result)\n }\n\n return wrapInPlaceholder(component)\n}\n\ntype ReadableOrVal<T> = T | Readable<T>\n\nexport function createSvelteTable<TData extends RowData>(\n options: ReadableOrVal<TableOptions<TData>>\n) {\n let optionsStore: Readable<TableOptions<TData>>\n\n if ('subscribe' in options) {\n optionsStore = options\n } else {\n optionsStore = readable(options)\n }\n\n let resolvedOptions: TableOptionsResolved<TData> = {\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n renderFallbackValue: null,\n ...get(optionsStore),\n }\n\n let table = createTable(resolvedOptions)\n\n let stateStore = writable(/** @type {number} */ table.initialState)\n // combine stores\n let stateOptionsStore = derived([stateStore, optionsStore], s => s)\n const tableReadable = readable(table, function start(set) {\n const unsubscribe = stateOptionsStore.subscribe(([state, options]) => {\n table.setOptions(prev => {\n return {\n ...prev,\n ...options,\n state: { ...state, ...options.state },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n if (updater instanceof Function) {\n stateStore.update(updater)\n } else {\n stateStore.set(updater)\n }\n\n resolvedOptions.onStateChange?.(updater)\n },\n }\n })\n\n // it didn't seem to rerender without setting the table\n set(table)\n })\n\n return function stop() {\n unsubscribe()\n }\n })\n\n return tableReadable\n}\n"],"names":["isSvelteServerComponent","component","$$render","render","isSvelteClientComponent","isHMR","window","prototype","SvelteComponent","name","startsWith","endsWith","isSvelteComponent","document","wrapInPlaceholder","content","renderComponent","Placeholder","flexRender","props","result","createSvelteTable","options","optionsStore","readable","resolvedOptions","state","onStateChange","renderFallbackValue","get","table","createTable","stateStore","writable","initialState","stateOptionsStore","derived","s","tableReadable","start","set","unsubscribe","subscribe","setOptions","prev","updater","Function","update","stop"],"mappings":";;;;;;;;;;;;;;;;;;;;AAiBA,SAASA,uBAAT,CAAiCC,SAAjC,EAAiD;AAC/C,EAAA,OACE,OAAOA,SAAP,KAAqB,QAArB,IACA,OAAOA,SAAS,CAACC,QAAjB,KAA8B,UAD9B,IAEA,OAAOD,SAAS,CAACE,MAAjB,KAA4B,UAH9B,CAAA;AAKD,CAAA;;AAED,SAASC,uBAAT,CAAiCH,SAAjC,EAAiD;AAAA,EAAA,IAAA,eAAA,EAAA,gBAAA,CAAA;;AAC/C,EAAA,IAAII,KAAK,IAAG,cAAkBC,IAAAA,MAArB,CAAT,CAAA;AAEA,EAAA,OACEL,SAAS,CAACM,SAAV,YAA+BC,wBAA/B,IACCH,KAAK,KAAA,CAAA,eAAA,GACJJ,SAAS,CAACQ,IADN,KAAA,IAAA,GAAA,KAAA,CAAA,GACJ,eAAgBC,CAAAA,UAAhB,CAA2B,QAA3B,CADI,CAAL,KAECT,CAAAA,gBAAAA,GAAAA,SAAS,CAACQ,IAFX,KAEC,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAgBE,QAAhB,CAAyB,GAAzB,CAFD,CAFH,CAAA;AAMD,CAAA;;AAED,SAASC,iBAAT,CAA2BX,SAA3B,EAA2C;AACzC,EAAA,IAAI,OAAOY,QAAP,KAAoB,WAAxB,EAAqC;IACnC,OAAOb,uBAAuB,CAACC,SAAD,CAA9B,CAAA;AACD,GAFD,MAEO;IACL,OAAOG,uBAAuB,CAACH,SAAD,CAA9B,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASa,iBAAT,CAA2BC,OAA3B,EAAyC;EACvC,OAAOC,+BAAe,CAACC,sBAAD,EAAc;AAAEF,IAAAA,OAAAA;AAAF,GAAd,CAAtB,CAAA;AACD,CAAA;;AAEM,SAASG,UAAT,CAAoBjB,SAApB,EAAoCkB,KAApC,EAAgD;AACrD,EAAA,IAAI,CAAClB,SAAL,EAAgB,OAAO,IAAP,CAAA;;AAEhB,EAAA,IAAIW,iBAAiB,CAACX,SAAD,CAArB,EAAkC;AAChC,IAAA,OAAOe,+BAAe,CAACf,SAAD,EAAYkB,KAAZ,CAAtB,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,OAAOlB,SAAP,KAAqB,UAAzB,EAAqC;AACnC,IAAA,MAAMmB,MAAM,GAAGnB,SAAS,CAACkB,KAAD,CAAxB,CAAA;;AAEA,IAAA,IAAIP,iBAAiB,CAACQ,MAAD,CAArB,EAA+B;AAC7B,MAAA,OAAOA,MAAP,CAAA;AACD,KAAA;;IAED,OAAON,iBAAiB,CAACM,MAAD,CAAxB,CAAA;AACD,GAAA;;EAED,OAAON,iBAAiB,CAACb,SAAD,CAAxB,CAAA;AACD,CAAA;AAIM,SAASoB,iBAAT,CACLC,OADK,EAEL;AACA,EAAA,IAAIC,YAAJ,CAAA;;EAEA,IAAI,WAAA,IAAeD,OAAnB,EAA4B;AAC1BC,IAAAA,YAAY,GAAGD,OAAf,CAAA;AACD,GAFD,MAEO;AACLC,IAAAA,YAAY,GAAGC,cAAQ,CAACF,OAAD,CAAvB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIG,eAA4C,GAAG;AACjDC,IAAAA,KAAK,EAAE,EAD0C;AACtC;IACXC,aAAa,EAAE,MAAM,EAF4B;AAExB;AACzBC,IAAAA,mBAAmB,EAAE,IAH4B;IAIjD,GAAGC,SAAG,CAACN,YAAD,CAAA;GAJR,CAAA;AAOA,EAAA,IAAIO,KAAK,GAAGC,iBAAW,CAACN,eAAD,CAAvB,CAAA;EAEA,IAAIO,UAAU,GAAGC,cAAQ;AAAC;AAAsBH,EAAAA,KAAK,CAACI,YAA7B,CAAzB,CAlBA;;AAoBA,EAAA,IAAIC,iBAAiB,GAAGC,aAAO,CAAC,CAACJ,UAAD,EAAaT,YAAb,CAAD,EAA6Bc,CAAC,IAAIA,CAAlC,CAA/B,CAAA;EACA,MAAMC,aAAa,GAAGd,cAAQ,CAACM,KAAD,EAAQ,SAASS,KAAT,CAAeC,GAAf,EAAoB;AACxD,IAAA,MAAMC,WAAW,GAAGN,iBAAiB,CAACO,SAAlB,CAA4B,IAAsB,IAAA;AAAA,MAAA,IAArB,CAAChB,KAAD,EAAQJ,OAAR,CAAqB,GAAA,IAAA,CAAA;AACpEQ,MAAAA,KAAK,CAACa,UAAN,CAAiBC,IAAI,IAAI;QACvB,OAAO,EACL,GAAGA,IADE;AAEL,UAAA,GAAGtB,OAFE;UAGLI,KAAK,EAAE,EAAE,GAAGA,KAAL;AAAY,YAAA,GAAGJ,OAAO,CAACI,KAAAA;WAHzB;AAIL;AACA;UACAC,aAAa,EAAEkB,OAAO,IAAI;YACxB,IAAIA,OAAO,YAAYC,QAAvB,EAAiC;cAC/Bd,UAAU,CAACe,MAAX,CAAkBF,OAAlB,CAAA,CAAA;AACD,aAFD,MAEO;cACLb,UAAU,CAACQ,GAAX,CAAeK,OAAf,CAAA,CAAA;AACD,aAAA;;AAEDpB,YAAAA,eAAe,CAACE,aAAhB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAF,eAAe,CAACE,aAAhB,CAAgCkB,OAAhC,CAAA,CAAA;AACD,WAAA;SAdH,CAAA;AAgBD,OAjBD,EADoE;;MAqBpEL,GAAG,CAACV,KAAD,CAAH,CAAA;AACD,KAtBmB,CAApB,CAAA;IAwBA,OAAO,SAASkB,IAAT,GAAgB;MACrBP,WAAW,EAAA,CAAA;KADb,CAAA;AAGD,GA5B6B,CAA9B,CAAA;AA8BA,EAAA,OAAOH,aAAP,CAAA;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import {\n RowData,\n PartialKeys,\n TableGenerics,\n createTable,\n TableOptions,\n TableOptionsResolved,\n} from '@tanstack/table-core'\nimport Placeholder from './placeholder'\nimport { SvelteComponent } from 'svelte/internal'\nimport { readable, writable, derived, Readable, get } from 'svelte/store'\nimport { renderComponent } from './render-component'\n\nexport { renderComponent } from './render-component'\n\nexport * from '@tanstack/table-core'\n\nfunction isSvelteServerComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$render === 'function' &&\n typeof component.render === 'function'\n )\n}\n\nfunction isSvelteClientComponent(component: any) {\n let isHMR = '__SVELTE_HMR' in window\n\n return (\n component.prototype instanceof SvelteComponent ||\n (isHMR &&\n component.name?.startsWith('Proxy<') &&\n component.name?.endsWith('>'))\n )\n}\n\nfunction isSvelteComponent(component: any) {\n if (typeof document === 'undefined') {\n return isSvelteServerComponent(component)\n } else {\n return isSvelteClientComponent(component)\n }\n}\n\nfunction wrapInPlaceholder(content: any) {\n return renderComponent(Placeholder, { content })\n}\n\nexport function flexRender(component: any, props: any) {\n if (!component) return null\n\n if (isSvelteComponent(component)) {\n return renderComponent(component, props)\n }\n\n if (typeof component === 'function') {\n const result = component(props)\n\n if (isSvelteComponent(result)) {\n return result\n }\n\n return wrapInPlaceholder(result)\n }\n\n return wrapInPlaceholder(component)\n}\n\ntype ReadableOrVal<T> = T | Readable<T>\n\nexport function createSvelteTable<TData extends RowData>(\n options: ReadableOrVal<TableOptions<TData>>\n) {\n let optionsStore: Readable<TableOptions<TData>>\n\n if ('subscribe' in options) {\n optionsStore = options\n } else {\n optionsStore = readable(options)\n }\n\n let resolvedOptions: TableOptionsResolved<TData> = {\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n renderFallbackValue: null,\n ...get(optionsStore),\n }\n\n let table = createTable(resolvedOptions)\n\n let stateStore = writable(/** @type {number} */ table.initialState)\n // combine stores\n let stateOptionsStore = derived([stateStore, optionsStore], s => s)\n const tableReadable = readable(table, function start(set) {\n const unsubscribe = stateOptionsStore.subscribe(([state, options]) => {\n table.setOptions(prev => {\n return {\n ...prev,\n ...options,\n state: { ...state, ...options.state },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n if (updater instanceof Function) {\n stateStore.update(updater)\n } else {\n stateStore.set(updater)\n }\n\n resolvedOptions.onStateChange?.(updater)\n },\n }\n })\n\n // it didn't seem to rerender without setting the table\n set(table)\n })\n\n return function stop() {\n unsubscribe()\n }\n })\n\n return tableReadable\n}\n"],"names":["isSvelteServerComponent","component","$$render","render","isSvelteClientComponent","isHMR","window","prototype","SvelteComponent","name","startsWith","endsWith","isSvelteComponent","document","wrapInPlaceholder","content","renderComponent","Placeholder","flexRender","props","result","createSvelteTable","options","optionsStore","readable","resolvedOptions","state","onStateChange","renderFallbackValue","get","table","createTable","stateStore","writable","initialState","stateOptionsStore","derived","s","tableReadable","start","set","unsubscribe","subscribe","setOptions","prev","updater","Function","update","stop"],"mappings":"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"}
@@ -22,6 +22,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
22
22
  *
23
23
  * @license MIT
24
24
  */
25
+ // Is this type a tuple?
26
+ // If this type is a tuple, what indices are allowed?
27
+ ///
25
28
  function functionalUpdate(updater, input) {
26
29
  return typeof updater === 'function' ? updater(input) : updater;
27
30
  }
@@ -107,13 +110,27 @@ function createColumn(table, columnDef, depth, parent) {
107
110
  const resolvedColumnDef = { ...defaultColumn,
108
111
  ...columnDef
109
112
  };
110
- let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : resolvedColumnDef.accessorKey) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;
113
+ const accessorKey = resolvedColumnDef.accessorKey;
114
+ let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? accessorKey.replace('.', '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;
111
115
  let accessorFn;
112
116
 
113
117
  if (resolvedColumnDef.accessorFn) {
114
118
  accessorFn = resolvedColumnDef.accessorFn;
115
- } else if (resolvedColumnDef.accessorKey) {
116
- accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];
119
+ } else if (accessorKey) {
120
+ // Support deep accessor keys
121
+ if (accessorKey.includes('.')) {
122
+ accessorFn = originalRow => {
123
+ let result = originalRow;
124
+
125
+ for (const key of accessorKey.split('.')) {
126
+ result = result[key];
127
+ }
128
+
129
+ return result;
130
+ };
131
+ } else {
132
+ accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];
133
+ }
117
134
  }
118
135
 
119
136
  if (!id) {
@@ -3103,6 +3120,52 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
3103
3120
  return row;
3104
3121
  };
3105
3122
 
3123
+ // type Person = {
3124
+ // firstName: string
3125
+ // lastName: string
3126
+ // age: number
3127
+ // visits: number
3128
+ // status: string
3129
+ // progress: number
3130
+ // nested: {
3131
+ // foo: [
3132
+ // {
3133
+ // bar: 'bar'
3134
+ // }
3135
+ // ]
3136
+ // bar: { subBar: boolean }[]
3137
+ // baz: {
3138
+ // foo: 'foo'
3139
+ // bar: {
3140
+ // baz: 'baz'
3141
+ // }
3142
+ // }
3143
+ // }
3144
+ // }
3145
+ // const test: DeepKeys<Person> = 'nested.foo.0.bar'
3146
+ // const test2: DeepKeys<Person> = 'nested.bar'
3147
+ // const helper = createColumnHelper<Person>()
3148
+ // helper.accessor('nested.foo', {
3149
+ // cell: info => info.getValue(),
3150
+ // })
3151
+ // helper.accessor('nested.foo.0.bar', {
3152
+ // cell: info => info.getValue(),
3153
+ // })
3154
+ // helper.accessor('nested.bar', {
3155
+ // cell: info => info.getValue(),
3156
+ // })
3157
+ function createColumnHelper() {
3158
+ return {
3159
+ accessor: (accessor, column) => {
3160
+ return typeof accessor === 'function' ? { ...column,
3161
+ accessorFn: accessor
3162
+ } : { ...column,
3163
+ accessorKey: accessor
3164
+ };
3165
+ }
3166
+ };
3167
+ }
3168
+
3106
3169
  function getCoreRowModel() {
3107
3170
  return table => memo(() => [table.options.data], data => {
3108
3171
  const rowModel = {
@@ -3812,6 +3875,7 @@ exports.Visibility = Visibility;
3812
3875
  exports.aggregationFns = aggregationFns;
3813
3876
  exports.buildHeaderGroups = buildHeaderGroups;
3814
3877
  exports.createColumn = createColumn;
3878
+ exports.createColumnHelper = createColumnHelper;
3815
3879
  exports.createRow = createRow;
3816
3880
  exports.createTable = createTable;
3817
3881
  exports.defaultColumnSizing = defaultColumnSizing;