@tanstack/svelte-table 8.0.0-alpha.74 → 8.0.0-alpha.78

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.
@@ -14,21 +14,50 @@ Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
15
  var index = require('../../table-core/build/esm/index.js');
16
16
  var placeholder = require('./placeholder.svelte.js');
17
+ var internal = require('svelte/internal');
17
18
  var store = require('svelte/store');
18
19
  var renderComponent = require('./render-component.js');
19
20
 
20
- function render(Comp, props) {
21
- if (!Comp) return null;
21
+ function isSvelteServerComponent(component) {
22
+ return typeof component === 'object' && typeof component.$$render === 'function' && typeof component.render === 'function';
23
+ }
24
+
25
+ function isSvelteClientComponent(component) {
26
+ return component.prototype instanceof internal.SvelteComponent;
27
+ }
22
28
 
23
- if (Comp instanceof Function) {
24
- let res = Comp(props);
25
- return res;
29
+ function isSvelteComponent(component) {
30
+ if (typeof document === 'undefined') {
31
+ return isSvelteServerComponent(component);
26
32
  } else {
27
- return renderComponent.renderComponent(placeholder["default"], {
28
- content: Comp
29
- });
30
- } // return Comp
33
+ return isSvelteClientComponent(component);
34
+ }
35
+ }
36
+
37
+ function wrapInPlaceholder(content) {
38
+ return renderComponent.renderComponent(placeholder["default"], {
39
+ content
40
+ });
41
+ }
42
+
43
+ function render(component, props) {
44
+ if (!component) return null;
45
+
46
+ if (isSvelteComponent(component)) {
47
+ return renderComponent.renderComponent(component, props);
48
+ }
49
+
50
+ if (typeof component === 'function') {
51
+ const result = component(props);
52
+
53
+ if (isSvelteComponent(result)) {
54
+ return result;
55
+ }
56
+
57
+ return wrapInPlaceholder(result);
58
+ }
31
59
 
60
+ return wrapInPlaceholder(component);
32
61
  }
33
62
  const createTable = index.createTableFactory({
34
63
  render
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import {\n createTableFactory,\n createTableInstance as coreCreateTableInstance,\n PartialKeys,\n Table,\n TableGenerics,\n TableOptions,\n} from '@tanstack/table-core'\nimport Placeholder from './placeholder.svelte'\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\nexport function render(Comp: any, props: any) {\n if (!Comp) return null\n\n if (Comp instanceof Function) {\n let res = Comp(props)\n return res\n } else {\n return renderComponent(Placeholder, { content: Comp })\n }\n\n // return Comp\n}\n\nexport const createTable = createTableFactory({ render })\n\ntype ReadableOrVal<T> = T | Readable<T>\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n table: Table<TGenerics>,\n options: ReadableOrVal<\n PartialKeys<\n Omit<TableOptions<TGenerics>, 'render'>,\n 'state' | 'onStateChange'\n >\n >\n) {\n let optionsStore: Readable<\n PartialKeys<\n Omit<TableOptions<TGenerics>, 'render'>,\n 'state' | 'onStateChange'\n >\n >\n\n if ('subscribe' in options) {\n optionsStore = options\n } else {\n optionsStore = readable(options)\n }\n\n let resolvedOptions: TableOptions<TGenerics> = {\n ...table.options,\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n render,\n ...get(optionsStore),\n }\n\n let instance = coreCreateTableInstance(resolvedOptions)\n\n let stateStore = writable(/** @type {number} */ instance.initialState)\n // combine stores\n let stateOptionsStore = derived([stateStore, optionsStore], s => s)\n const instanceReadable = readable(instance, function start(set) {\n const unsubscribe = stateOptionsStore.subscribe(([state, options]) => {\n instance.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 instance\n set(instance)\n })\n\n return function stop() {\n unsubscribe()\n }\n })\n\n return instanceReadable\n}\n"],"names":["render","Comp","props","Function","res","renderComponent","Placeholder","content","createTable","createTableFactory","createTableInstance","table","options","optionsStore","readable","resolvedOptions","state","onStateChange","get","instance","coreCreateTableInstance","stateStore","writable","initialState","stateOptionsStore","derived","s","instanceReadable","start","set","unsubscribe","subscribe","setOptions","prev","updater","update","stop"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBO,SAASA,MAAT,CAAgBC,IAAhB,EAA2BC,KAA3B,EAAuC;AAC5C,EAAA,IAAI,CAACD,IAAL,EAAW,OAAO,IAAP,CAAA;;AAEX,EAAIA,IAAAA,IAAI,YAAYE,QAApB,EAA8B;AAC5B,IAAA,IAAIC,GAAG,GAAGH,IAAI,CAACC,KAAD,CAAd,CAAA;AACA,IAAA,OAAOE,GAAP,CAAA;AACD,GAHD,MAGO;AACL,IAAOC,OAAAA,+BAAe,CAACC,sBAAD,EAAc;AAAEC,MAAAA,OAAO,EAAEN,IAAAA;AAAX,KAAd,CAAtB,CAAA;AACD,GAR2C;;AAW7C,CAAA;AAEYO,MAAAA,WAAW,GAAGC,wBAAkB,CAAC;AAAET,EAAAA,MAAAA;AAAF,CAAD,EAAtC;AAIA,SAASU,mBAAT,CACLC,KADK,EAELC,OAFK,EAQL;AACA,EAAA,IAAIC,YAAJ,CAAA;;AAOA,EAAI,IAAA,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,eAAwC,GAAG,EAC7C,GAAGJ,KAAK,CAACC,OADoC;AAE7CI,IAAAA,KAAK,EAAE,EAFsC;AAElC;AACXC,IAAAA,aAAa,EAAE,MAAM,EAHwB;AAGpB;AACzBjB,IAAAA,MAJ6C;AAK7C,IAAGkB,GAAAA,SAAG,CAACL,YAAD,CAAA;AALuC,GAA/C,CAAA;AAQA,EAAA,IAAIM,QAAQ,GAAGC,yBAAuB,CAACL,eAAD,CAAtC,CAAA;AAEA,EAAIM,IAAAA,UAAU,GAAGC,cAAQ;AAAC;AAAsBH,EAAAA,QAAQ,CAACI,YAAhC,CAAzB,CAxBA;;AA0BA,EAAA,IAAIC,iBAAiB,GAAGC,aAAO,CAAC,CAACJ,UAAD,EAAaR,YAAb,CAAD,EAA6Ba,CAAC,IAAIA,CAAlC,CAA/B,CAAA;AACA,EAAMC,MAAAA,gBAAgB,GAAGb,cAAQ,CAACK,QAAD,EAAW,SAASS,KAAT,CAAeC,GAAf,EAAoB;AAC9D,IAAA,MAAMC,WAAW,GAAGN,iBAAiB,CAACO,SAAlB,CAA4B,IAAsB,IAAA;AAAA,MAAA,IAArB,CAACf,KAAD,EAAQJ,OAAR,CAAqB,GAAA,IAAA,CAAA;AACpEO,MAAAA,QAAQ,CAACa,UAAT,CAAoBC,IAAI,IAAI;AAC1B,QAAO,OAAA,EACL,GAAGA,IADE;AAEL,UAAA,GAAGrB,OAFE;AAGLI,UAAAA,KAAK,EAAE,EAAE,GAAGA,KAAL;AAAY,YAAA,GAAGJ,OAAO,CAACI,KAAAA;AAAvB,WAHF;AAIL;AACA;AACAC,UAAAA,aAAa,EAAEiB,OAAO,IAAI;AACxB,YAAIA,IAAAA,OAAO,YAAY/B,QAAvB,EAAiC;AAC/BkB,cAAAA,UAAU,CAACc,MAAX,CAAkBD,OAAlB,CAAA,CAAA;AACD,aAFD,MAEO;AACLb,cAAAA,UAAU,CAACQ,GAAX,CAAeK,OAAf,CAAA,CAAA;AACD,aAAA;;AAEDnB,YAAAA,eAAe,CAACE,aAAhB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAF,eAAe,CAACE,aAAhB,CAAgCiB,OAAhC,CAAA,CAAA;AACD,WAAA;AAdI,SAAP,CAAA;AAgBD,OAjBD,EADoE;;AAqBpEL,MAAAA,GAAG,CAACV,QAAD,CAAH,CAAA;AACD,KAtBmB,CAApB,CAAA;AAwBA,IAAO,OAAA,SAASiB,IAAT,GAAgB;AACrBN,MAAAA,WAAW,EAAA,CAAA;AACZ,KAFD,CAAA;AAGD,GA5BgC,CAAjC,CAAA;AA8BA,EAAA,OAAOH,gBAAP,CAAA;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import {\n createTableFactory,\n createTableInstance as coreCreateTableInstance,\n PartialKeys,\n Table,\n TableGenerics,\n TableOptions,\n} from '@tanstack/table-core'\nimport Placeholder from './placeholder.svelte'\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 return component.prototype instanceof SvelteComponent\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 render(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\nexport const createTable = createTableFactory({ render })\n\ntype ReadableOrVal<T> = T | Readable<T>\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n table: Table<TGenerics>,\n options: ReadableOrVal<\n PartialKeys<\n Omit<TableOptions<TGenerics>, 'render'>,\n 'state' | 'onStateChange'\n >\n >\n) {\n let optionsStore: Readable<\n PartialKeys<\n Omit<TableOptions<TGenerics>, 'render'>,\n 'state' | 'onStateChange'\n >\n >\n\n if ('subscribe' in options) {\n optionsStore = options\n } else {\n optionsStore = readable(options)\n }\n\n let resolvedOptions: TableOptions<TGenerics> = {\n ...table.options,\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n render,\n ...get(optionsStore),\n }\n\n let instance = coreCreateTableInstance(resolvedOptions)\n\n let stateStore = writable(/** @type {number} */ instance.initialState)\n // combine stores\n let stateOptionsStore = derived([stateStore, optionsStore], s => s)\n const instanceReadable = readable(instance, function start(set) {\n const unsubscribe = stateOptionsStore.subscribe(([state, options]) => {\n instance.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 instance\n set(instance)\n })\n\n return function stop() {\n unsubscribe()\n }\n })\n\n return instanceReadable\n}\n"],"names":["isSvelteServerComponent","component","$$render","render","isSvelteClientComponent","prototype","SvelteComponent","isSvelteComponent","document","wrapInPlaceholder","content","renderComponent","Placeholder","props","result","createTable","createTableFactory","createTableInstance","table","options","optionsStore","readable","resolvedOptions","state","onStateChange","get","instance","coreCreateTableInstance","stateStore","writable","initialState","stateOptionsStore","derived","s","instanceReadable","start","set","unsubscribe","subscribe","setOptions","prev","updater","Function","update","stop"],"mappings":"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"}
@@ -2690,8 +2690,10 @@ const Headers = {
2690
2690
  },
2691
2691
  // Header Groups
2692
2692
  getHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {
2693
- const leftColumns = leafColumns.filter(column => left == null ? void 0 : left.includes(column.id));
2694
- const rightColumns = leafColumns.filter(column => right == null ? void 0 : right.includes(column.id));
2693
+ var _left$map$filter, _right$map$filter;
2694
+
2695
+ const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];
2696
+ const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];
2695
2697
  const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));
2696
2698
  const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], instance);
2697
2699
  return headerGroups;
@@ -2715,8 +2717,10 @@ const Headers = {
2715
2717
  }
2716
2718
  }),
2717
2719
  getLeftHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left], (allColumns, leafColumns, left) => {
2718
- leafColumns = leafColumns.filter(column => left == null ? void 0 : left.includes(column.id));
2719
- return buildHeaderGroups(allColumns, leafColumns, instance, 'left');
2720
+ var _left$map$filter2;
2721
+
2722
+ const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];
2723
+ return buildHeaderGroups(allColumns, orderedLeafColumns, instance, 'left');
2720
2724
  }, {
2721
2725
  key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',
2722
2726
  debug: () => {
@@ -2726,8 +2730,10 @@ const Headers = {
2726
2730
  }
2727
2731
  }),
2728
2732
  getRightHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.right], (allColumns, leafColumns, right) => {
2729
- leafColumns = leafColumns.filter(column => right == null ? void 0 : right.includes(column.id));
2730
- return buildHeaderGroups(allColumns, leafColumns, instance, 'right');
2733
+ var _right$map$filter2;
2734
+
2735
+ const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];
2736
+ return buildHeaderGroups(allColumns, orderedLeafColumns, instance, 'right');
2731
2737
  }, {
2732
2738
  key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',
2733
2739
  debug: () => {