@simple-table/solid 4.1.9 → 4.2.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.
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("solid-js/web"),r=require("solid-js"),n=require("simple-table-core"),t=require("solid-js/store");function o(e,r){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.indexOf(t)<0&&(n[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(t=Object.getOwnPropertySymbols(e);o<t.length;o++)r.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(e,t[o])&&(n[t[o]]=e[t[o]])}return n}function s(r,n){return t=>{const o=document.createElement("div"),s=e.render(()=>e.createComponent(n,t),o);return r.register(o,s),o}}function i(n,o,s){const i=document.createElement("div"),[c,d]=t.createStore(s),[l,a]=r.createSignal(o()),u=e.render(()=>e.createComponent(e.Dynamic,r.mergeProps(c,{get component(){return l()}})),i);return n.register(i,u),{host:i,setProps:e=>{a(()=>o()),d(t.reconcile(e))}}}function c(r,n,t,o){const s="cell"===t?r.cellRendererCache:r.headerRendererCache,c=s.get(n);if(c)return c.component=o,c.wrapped;const d={component:o,wrapped:null};if("header"===t){let e=null,t=null;const o=n=>{if(e&&r.isRegistered(e)&&t)return t(n),e;const o=i(r,()=>d.component,n);return e=o.host,t=o.setProps,e};return d.wrapped=o,s.set(n,d),o}const l=n=>{const t=document.createElement("div"),o=e.render(()=>e.createComponent(d.component,n),t);return r.register(t,o),t};return d.wrapped=l,s.set(n,d),l}function d(e,r){const n=new Map;return t=>{const o=String(t.accessor),s=n.get(o);if(s&&e.isRegistered(s.host))return s.setProps(t),s.host;const c=i(e,()=>r,t);return n.set(o,c),c.host}}function l(r,n){const t=document.createElement("div"),o=e.render(()=>n,t);return r.register(t,o),t}function a(r){const n=document.createElement("div"),t=e.render(()=>r,n),o=n.innerHTML;return t(),o}function u(e){return"function"==typeof e}function p(e,r){const{cellRenderer:n,headerRenderer:t,children:s,nestedTable:i}=e,d=o(e,["cellRenderer","headerRenderer","children","nestedTable"]),l=String(e.accessor),a=Object.assign({},d);if(n&&(a.cellRenderer=c(r,l,"cell",n)),t&&(a.headerRenderer=c(r,l,"header",t)),s&&(a.children=s.map(e=>p(e,r))),i){const e=Object.assign(Object.assign({},i),{rows:[]});a.nestedTable=m(e,r)}return a}function f(e){const r=e.columns;if(!r)throw new Error("SimpleTable requires `columns`");return r}function m(e,r){const{rows:t,footerRenderer:i,emptyStateRenderer:c,errorStateRenderer:m,loadingStateRenderer:h,tableEmptyStateRenderer:g,headerDropdown:R,columnEditorConfig:b,icons:w,rowButtons:C,onColumnOrderChange:O,onColumnWidthChange:S,onHeaderEdit:v,onColumnSelect:E,enableColumnEditor:y,enableColumnEditorInitOpen:P,enablePagination:j,onTableReady:T,hoverRowBackground:A,oddColumnBackground:B,oddEvenRowBackground:I}=e,_=o(e,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","ref","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),x=f(e);r.pruneRendererCaches(n.collectHeaderAccessors(x));const L=Object.assign(Object.assign({},_),{rows:n.asRows(t),columns:x.map(e=>p(e,r)),enableColumnEditor:y,enableColumnEditorInitOpen:P,enablePagination:j,onTableReady:T,hoverRowBackground:A,oddColumnBackground:B,oddEvenRowBackground:I,onRendererHostDiscard:r.disposeHost});if(O&&(L.onColumnOrderChange=e=>O(e)),S&&(L.onColumnWidthChange=e=>S(e)),v&&(L.onHeaderEdit=(e,r)=>v(e,r)),E&&(L.onColumnSelect=e=>E(e)),void 0!==i&&(L.footerRenderer=s(r,i)),void 0!==c)if(u(c))L.emptyStateRenderer=s(r,c);else{const e=c;L.emptyStateRenderer=()=>l(r,e)}if(void 0!==m)if(u(m))L.errorStateRenderer=s(r,m);else{const e=m;L.errorStateRenderer=()=>l(r,e)}if(void 0!==h)if(u(h))L.loadingStateRenderer=s(r,h);else{const e=h;L.loadingStateRenderer=()=>l(r,e)}return void 0!==g&&(L.tableEmptyStateRenderer=null===g?null:l(r,g)),void 0!==R&&(L.headerDropdown=s(r,R)),void 0!==b&&(L.columnEditorConfig=function(e,r){const{rowRenderer:n,customRenderer:t}=e,i=o(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},i),n?{rowRenderer:d(r,n)}:{}),t?{customRenderer:s(r,t)}:{})}(b,r)),void 0!==w&&(L.icons=function(e){const r={};for(const[n,t]of Object.entries(e))null!=t&&(r[n]="string"==typeof t||t instanceof HTMLElement||t instanceof SVGElement?t:a(t));return r}(w)),void 0!==C&&(L.rowButtons=C.map(e=>s(r,e))),L}"function"==typeof SuppressedError&&SuppressedError;const h="data-st-mount-id";class g{constructor(){this.entries=new Map,this.nextId=0,this.cellRendererCache=new Map,this.headerRendererCache=new Map,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const r=[],n=e.getAttribute(h);null!==n&&r.push(n),e.querySelectorAll(`[${h}]`).forEach(e=>{const n=e.getAttribute(h);null!==n&&r.push(n)});for(const e of r){const r=this.entries.get(e);r&&(this.entries.delete(e),r())}}}register(e,r){const n="st-mount-"+this.nextId++;e.setAttribute(h,n),this.entries.set(n,r)}isRegistered(e){const r=e.getAttribute(h);return null!==r&&this.entries.has(r)}clear(){this.cellRendererCache.clear(),this.headerRendererCache.clear();for(const e of this.entries.values())e();this.entries.clear()}pruneRendererCaches(e){for(const r of this.cellRendererCache.keys())e.has(r)||this.cellRendererCache.delete(r);for(const r of this.headerRendererCache.keys())e.has(r)||this.headerRendererCache.delete(r)}get size(){return this.entries.size}}var R=e.template("<div>");Object.defineProperty(exports,"PIVOT_ACCESSOR_PREFIX",{enumerable:!0,get:function(){return n.PIVOT_ACCESSOR_PREFIX}}),Object.defineProperty(exports,"PIVOT_BLANK_LABEL",{enumerable:!0,get:function(){return n.PIVOT_BLANK_LABEL}}),Object.defineProperty(exports,"PIVOT_IS_TOTAL_KEY",{enumerable:!0,get:function(){return n.PIVOT_IS_TOTAL_KEY}}),Object.defineProperty(exports,"asRows",{enumerable:!0,get:function(){return n.asRows}}),Object.defineProperty(exports,"buildPivotAccessor",{enumerable:!0,get:function(){return n.buildPivotAccessor}}),Object.defineProperty(exports,"buildPivotRowTotalAccessor",{enumerable:!0,get:function(){return n.buildPivotRowTotalAccessor}}),Object.defineProperty(exports,"pivotRows",{enumerable:!0,get:function(){return n.pivotRows}}),exports.SimpleTable=function(t){let o,s=null;const i=new g;let c,d,l=!1,a=!1;function u(e){var r,n;s&&(e?null===(r=s.refitAutoSizeColumns)||void 0===r||r.call(s):!a&&i.size>0&&(a=!0,null===(n=s.refitAutoSizeColumns)||void 0===n||n.call(s)))}return r.onMount(()=>{s=new n.SimpleTableVanilla(o,m(t,i)),s.mount(),c=f(t),d=t.rows,l=Boolean(t.isLoading),u(!1),t.ref&&t.ref(s.getAPI())}),r.createEffect(()=>{if(!s)return;const e=m(t,i),r=Object.assign({},e),o=f(t),a=n.headersStructurallyEqual(c,o);c=o,a&&delete r.columns;const p=n.rowsShallowUnchanged(d,t.rows,t.getRowId);d=t.rows,p&&delete r.rows;const h=Boolean(t.isLoading),g=l&&!h;l=h,s.update(r),u(g)}),r.onCleanup(()=>{null==s||s.destroy(),s=null,c=void 0,d=void 0,i.clear()}),p=R(),"function"==typeof o?e.use(o,p):o=p,p;var p};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("solid-js/web"),r=require("solid-js"),n=require("simple-table-core"),t=require("solid-js/store");function o(e,r){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.indexOf(t)<0&&(n[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(t=Object.getOwnPropertySymbols(e);o<t.length;o++)r.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(e,t[o])&&(n[t[o]]=e[t[o]])}return n}"function"==typeof SuppressedError&&SuppressedError;const s=Symbol.for("simple-table.rendererGeneration");function i(r,n){return t=>{const o=document.createElement("div"),s=e.render(()=>e.createComponent(n,t),o);return r.register(o,s),o}}function c(n,o,s){const i=document.createElement("div"),[c,d]=t.createStore(s),[l,a]=r.createSignal(o()),u=e.render(()=>e.createComponent(e.Dynamic,r.mergeProps(c,{get component(){return l()}})),i);return n.register(i,u),{host:i,setProps:e=>{a(()=>o()),d(t.reconcile(e))}}}function d(r,n,t,o){const i="cell"===t?r.cellRendererCache:r.headerRendererCache,d=i.get(n);if(d){if("cell"===t&&d.component!==o){d.component=o;const e=d.wrapped[s];d.wrapped[s]=("number"==typeof e?e:0)+1}else d.component=o;return d.wrapped}const l={component:o,wrapped:null};if("header"===t){let e=null,t=null;const o=n=>{if(e&&r.isRegistered(e)&&t)return t(n),e;const o=c(r,()=>l.component,n);return e=o.host,t=o.setProps,e};return l.wrapped=o,i.set(n,l),o}const a=n=>{const t=document.createElement("div"),o=e.render(()=>e.createComponent(l.component,n),t);return r.register(t,o),t};return l.wrapped=a,a[s]=0,i.set(n,l),a}function l(e,r){const n=new Map;return t=>{const o=String(t.accessor),s=n.get(o);if(s&&e.isRegistered(s.host))return s.setProps(t),s.host;const i=c(e,()=>r,t);return n.set(o,i),i.host}}function a(r,n){const t=document.createElement("div"),o=e.render(()=>n,t);return r.register(t,o),t}function u(r){const n=document.createElement("div"),t=e.render(()=>r,n),o=n.innerHTML;return t(),o}function p(e){return"function"==typeof e}function f(e,r){const{cellRenderer:n,headerRenderer:t,children:s,nestedTable:i}=e,c=o(e,["cellRenderer","headerRenderer","children","nestedTable"]),l=String(e.accessor),a=Object.assign({},c);if(n&&(a.cellRenderer=d(r,l,"cell",n)),t&&(a.headerRenderer=d(r,l,"header",t)),s&&(a.children=s.map(e=>f(e,r))),i){const e=Object.assign(Object.assign({},i),{rows:[]});a.nestedTable=h(e,r)}return a}function m(e){const r=e.columns;if(!r)throw new Error("SimpleTable requires `columns`");return r}function h(e,r){const{rows:t,footerRenderer:s,emptyStateRenderer:c,errorStateRenderer:d,loadingStateRenderer:h,tableEmptyStateRenderer:g,headerDropdown:b,columnEditorConfig:R,icons:w,rowButtons:C,onColumnOrderChange:O,onColumnWidthChange:S,onHeaderEdit:v,onColumnSelect:y,enableColumnEditor:E,enableColumnEditorInitOpen:P,enablePagination:j,onTableReady:T,hoverRowBackground:A,oddColumnBackground:B,oddEvenRowBackground:I}=e,_=o(e,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","ref","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),x=m(e);r.pruneRendererCaches(n.collectHeaderAccessors(x));const L=Object.assign(Object.assign({},_),{rows:n.asRows(t),columns:x.map(e=>f(e,r)),enableColumnEditor:E,enableColumnEditorInitOpen:P,enablePagination:j,onTableReady:T,hoverRowBackground:A,oddColumnBackground:B,oddEvenRowBackground:I,onRendererHostDiscard:r.disposeHost});if(O&&(L.onColumnOrderChange=e=>O(e)),S&&(L.onColumnWidthChange=e=>S(e)),v&&(L.onHeaderEdit=(e,r)=>v(e,r)),y&&(L.onColumnSelect=e=>y(e)),void 0!==s&&(L.footerRenderer=i(r,s)),void 0!==c)if(p(c))L.emptyStateRenderer=i(r,c);else{const e=c;L.emptyStateRenderer=()=>a(r,e)}if(void 0!==d)if(p(d))L.errorStateRenderer=i(r,d);else{const e=d;L.errorStateRenderer=()=>a(r,e)}if(void 0!==h)if(p(h))L.loadingStateRenderer=i(r,h);else{const e=h;L.loadingStateRenderer=()=>a(r,e)}return void 0!==g&&(L.tableEmptyStateRenderer=null===g?null:a(r,g)),void 0!==b&&(L.headerDropdown=i(r,b)),void 0!==R&&(L.columnEditorConfig=function(e,r){const{rowRenderer:n,customRenderer:t}=e,s=o(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},s),n?{rowRenderer:l(r,n)}:{}),t?{customRenderer:i(r,t)}:{})}(R,r)),void 0!==w&&(L.icons=function(e){const r={};for(const[n,t]of Object.entries(e))null!=t&&(r[n]="string"==typeof t||t instanceof HTMLElement||t instanceof SVGElement?t:u(t));return r}(w)),void 0!==C&&(L.rowButtons=C.map(e=>i(r,e))),L}const g="data-st-mount-id";class b{constructor(){this.entries=new Map,this.nextId=0,this.cellRendererCache=new Map,this.headerRendererCache=new Map,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const r=[],n=e.getAttribute(g);null!==n&&r.push(n),e.querySelectorAll(`[${g}]`).forEach(e=>{const n=e.getAttribute(g);null!==n&&r.push(n)});for(const e of r){const r=this.entries.get(e);r&&(this.entries.delete(e),r())}}}register(e,r){const n="st-mount-"+this.nextId++;e.setAttribute(g,n),this.entries.set(n,r)}isRegistered(e){const r=e.getAttribute(g);return null!==r&&this.entries.has(r)}clear(){this.cellRendererCache.clear(),this.headerRendererCache.clear();for(const e of this.entries.values())e();this.entries.clear()}pruneRendererCaches(e){for(const r of this.cellRendererCache.keys())e.has(r)||this.cellRendererCache.delete(r);for(const r of this.headerRendererCache.keys())e.has(r)||this.headerRendererCache.delete(r)}get size(){return this.entries.size}}var R=e.template("<div>");Object.defineProperty(exports,"PIVOT_ACCESSOR_PREFIX",{enumerable:!0,get:function(){return n.PIVOT_ACCESSOR_PREFIX}}),Object.defineProperty(exports,"PIVOT_BLANK_LABEL",{enumerable:!0,get:function(){return n.PIVOT_BLANK_LABEL}}),Object.defineProperty(exports,"PIVOT_IS_TOTAL_KEY",{enumerable:!0,get:function(){return n.PIVOT_IS_TOTAL_KEY}}),Object.defineProperty(exports,"asRows",{enumerable:!0,get:function(){return n.asRows}}),Object.defineProperty(exports,"buildPivotAccessor",{enumerable:!0,get:function(){return n.buildPivotAccessor}}),Object.defineProperty(exports,"buildPivotRowTotalAccessor",{enumerable:!0,get:function(){return n.buildPivotRowTotalAccessor}}),Object.defineProperty(exports,"pivotRows",{enumerable:!0,get:function(){return n.pivotRows}}),exports.SimpleTable=function(t){let o,s=null;const i=new b;let c,d,l=!1,a=!1;function u(e){var r,n;s&&(e?null===(r=s.refitAutoSizeColumns)||void 0===r||r.call(s):!a&&i.size>0&&(a=!0,null===(n=s.refitAutoSizeColumns)||void 0===n||n.call(s)))}return r.onMount(()=>{s=new n.SimpleTableVanilla(o,h(t,i)),s.mount(),c=m(t),d=t.rows,l=Boolean(t.isLoading),u(!1),t.ref&&t.ref(s.getAPI())}),r.createEffect(()=>{if(!s)return;const e=h(t,i),r=Object.assign({},e),o=m(t),a=n.headersStructurallyEqual(c,o);c=o,a&&delete r.columns;const p=n.rowsShallowUnchanged(d,t.rows,t.getRowId);d=t.rows,p&&delete r.rows;const f=Boolean(t.isLoading),g=l&&!f;l=f,s.update(r),u(g)}),r.onCleanup(()=>{null==s||s.destroy(),s=null,c=void 0,d=void 0,i.clear()}),p=R(),"function"==typeof o?e.use(o,p):o=p,p;var p};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.es.js CHANGED
@@ -1,2 +1,2 @@
1
- import{render as e,createComponent as n,Dynamic as t,use as r,template as o}from"solid-js/web";import{createSignal as s,mergeProps as i,onMount as d,createEffect as c,onCleanup as l}from"solid-js";import{collectHeaderAccessors as a,asRows as u,SimpleTableVanilla as m,headersStructurallyEqual as f,rowsShallowUnchanged as h}from"simple-table-core";export{PIVOT_ACCESSOR_PREFIX,PIVOT_BLANK_LABEL,PIVOT_IS_TOTAL_KEY,asRows,buildPivotAccessor,buildPivotRowTotalAccessor,pivotRows}from"simple-table-core";import{createStore as p,reconcile as g}from"solid-js/store";function R(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]])}return t}function b(t,r){return o=>{const s=document.createElement("div"),i=e(()=>n(r,o),s);return t.register(s,i),s}}function w(r,o,d){const c=document.createElement("div"),[l,a]=p(d),[u,m]=s(o()),f=e(()=>n(t,i(l,{get component(){return u()}})),c);return r.register(c,f),{host:c,setProps:e=>{m(()=>o()),a(g(e))}}}function C(t,r,o,s){const i="cell"===o?t.cellRendererCache:t.headerRendererCache,d=i.get(r);if(d)return d.component=s,d.wrapped;const c={component:s,wrapped:null};if("header"===o){let e=null,n=null;const o=r=>{if(e&&t.isRegistered(e)&&n)return n(r),e;const o=w(t,()=>c.component,r);return e=o.host,n=o.setProps,e};return c.wrapped=o,i.set(r,c),o}const l=r=>{const o=document.createElement("div"),s=e(()=>n(c.component,r),o);return t.register(o,s),o};return c.wrapped=l,i.set(r,c),l}function v(e,n){const t=new Map;return r=>{const o=String(r.accessor),s=t.get(o);if(s&&e.isRegistered(s.host))return s.setProps(r),s.host;const i=w(e,()=>n,r);return t.set(o,i),i.host}}function E(n,t){const r=document.createElement("div"),o=e(()=>t,r);return n.register(r,o),r}function S(n){const t=document.createElement("div"),r=e(()=>n,t),o=t.innerHTML;return r(),o}function O(e){return"function"==typeof e}function y(e,n){const{cellRenderer:t,headerRenderer:r,children:o,nestedTable:s}=e,i=R(e,["cellRenderer","headerRenderer","children","nestedTable"]),d=String(e.accessor),c=Object.assign({},i);if(t&&(c.cellRenderer=C(n,d,"cell",t)),r&&(c.headerRenderer=C(n,d,"header",r)),o&&(c.children=o.map(e=>y(e,n))),s){const e=Object.assign(Object.assign({},s),{rows:[]});c.nestedTable=B(e,n)}return c}function j(e){const n=e.columns;if(!n)throw new Error("SimpleTable requires `columns`");return n}function B(e,n){const{rows:t,footerRenderer:r,emptyStateRenderer:o,errorStateRenderer:s,loadingStateRenderer:i,tableEmptyStateRenderer:d,headerDropdown:c,columnEditorConfig:l,icons:m,rowButtons:f,onColumnOrderChange:h,onColumnWidthChange:p,onHeaderEdit:g,onColumnSelect:w,enableColumnEditor:C,enableColumnEditorInitOpen:B,enablePagination:P,onTableReady:A,hoverRowBackground:T,oddColumnBackground:I,oddEvenRowBackground:k}=e,H=R(e,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","ref","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),L=j(e);n.pruneRendererCaches(a(L));const _=Object.assign(Object.assign({},H),{rows:u(t),columns:L.map(e=>y(e,n)),enableColumnEditor:C,enableColumnEditorInitOpen:B,enablePagination:P,onTableReady:A,hoverRowBackground:T,oddColumnBackground:I,oddEvenRowBackground:k,onRendererHostDiscard:n.disposeHost});if(h&&(_.onColumnOrderChange=e=>h(e)),p&&(_.onColumnWidthChange=e=>p(e)),g&&(_.onHeaderEdit=(e,n)=>g(e,n)),w&&(_.onColumnSelect=e=>w(e)),void 0!==r&&(_.footerRenderer=b(n,r)),void 0!==o)if(O(o))_.emptyStateRenderer=b(n,o);else{const e=o;_.emptyStateRenderer=()=>E(n,e)}if(void 0!==s)if(O(s))_.errorStateRenderer=b(n,s);else{const e=s;_.errorStateRenderer=()=>E(n,e)}if(void 0!==i)if(O(i))_.loadingStateRenderer=b(n,i);else{const e=i;_.loadingStateRenderer=()=>E(n,e)}return void 0!==d&&(_.tableEmptyStateRenderer=null===d?null:E(n,d)),void 0!==c&&(_.headerDropdown=b(n,c)),void 0!==l&&(_.columnEditorConfig=function(e,n){const{rowRenderer:t,customRenderer:r}=e,o=R(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),t?{rowRenderer:v(n,t)}:{}),r?{customRenderer:b(n,r)}:{})}(l,n)),void 0!==m&&(_.icons=function(e){const n={};for(const[t,r]of Object.entries(e))null!=r&&(n[t]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:S(r));return n}(m)),void 0!==f&&(_.rowButtons=f.map(e=>b(n,e))),_}"function"==typeof SuppressedError&&SuppressedError;const P="data-st-mount-id";class A{constructor(){this.entries=new Map,this.nextId=0,this.cellRendererCache=new Map,this.headerRendererCache=new Map,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const n=[],t=e.getAttribute(P);null!==t&&n.push(t),e.querySelectorAll(`[${P}]`).forEach(e=>{const t=e.getAttribute(P);null!==t&&n.push(t)});for(const e of n){const n=this.entries.get(e);n&&(this.entries.delete(e),n())}}}register(e,n){const t="st-mount-"+this.nextId++;e.setAttribute(P,t),this.entries.set(t,n)}isRegistered(e){const n=e.getAttribute(P);return null!==n&&this.entries.has(n)}clear(){this.cellRendererCache.clear(),this.headerRendererCache.clear();for(const e of this.entries.values())e();this.entries.clear()}pruneRendererCaches(e){for(const n of this.cellRendererCache.keys())e.has(n)||this.cellRendererCache.delete(n);for(const n of this.headerRendererCache.keys())e.has(n)||this.headerRendererCache.delete(n)}get size(){return this.entries.size}}var T=o("<div>");function I(e){let n,t=null;const o=new A;let s,i,a=!1,u=!1;function p(e){var n,r;t&&(e?null===(n=t.refitAutoSizeColumns)||void 0===n||n.call(t):!u&&o.size>0&&(u=!0,null===(r=t.refitAutoSizeColumns)||void 0===r||r.call(t)))}return d(()=>{t=new m(n,B(e,o)),t.mount(),s=j(e),i=e.rows,a=Boolean(e.isLoading),p(!1),e.ref&&e.ref(t.getAPI())}),c(()=>{if(!t)return;const n=B(e,o),r=Object.assign({},n),d=j(e),c=f(s,d);s=d,c&&delete r.columns;const l=h(i,e.rows,e.getRowId);i=e.rows,l&&delete r.rows;const u=Boolean(e.isLoading),m=a&&!u;a=u,t.update(r),p(m)}),l(()=>{null==t||t.destroy(),t=null,s=void 0,i=void 0,o.clear()}),g=T(),"function"==typeof n?r(n,g):n=g,g;var g}export{I as SimpleTable};
1
+ import{render as e,createComponent as n,Dynamic as t,use as r,template as o}from"solid-js/web";import{createSignal as s,mergeProps as i,onMount as d,createEffect as c,onCleanup as l}from"solid-js";import{collectHeaderAccessors as a,asRows as u,SimpleTableVanilla as m,headersStructurallyEqual as p,rowsShallowUnchanged as f}from"simple-table-core";export{PIVOT_ACCESSOR_PREFIX,PIVOT_BLANK_LABEL,PIVOT_IS_TOTAL_KEY,asRows,buildPivotAccessor,buildPivotRowTotalAccessor,pivotRows}from"simple-table-core";import{createStore as h,reconcile as g}from"solid-js/store";function R(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]])}return t}"function"==typeof SuppressedError&&SuppressedError;const b=Symbol.for("simple-table.rendererGeneration");function w(t,r){return o=>{const s=document.createElement("div"),i=e(()=>n(r,o),s);return t.register(s,i),s}}function C(r,o,d){const c=document.createElement("div"),[l,a]=h(d),[u,m]=s(o()),p=e(()=>n(t,i(l,{get component(){return u()}})),c);return r.register(c,p),{host:c,setProps:e=>{m(()=>o()),a(g(e))}}}function v(t,r,o,s){const i="cell"===o?t.cellRendererCache:t.headerRendererCache,d=i.get(r);if(d){if("cell"===o&&d.component!==s){d.component=s;const e=d.wrapped[b];d.wrapped[b]=("number"==typeof e?e:0)+1}else d.component=s;return d.wrapped}const c={component:s,wrapped:null};if("header"===o){let e=null,n=null;const o=r=>{if(e&&t.isRegistered(e)&&n)return n(r),e;const o=C(t,()=>c.component,r);return e=o.host,n=o.setProps,e};return c.wrapped=o,i.set(r,c),o}const l=r=>{const o=document.createElement("div"),s=e(()=>n(c.component,r),o);return t.register(o,s),o};return c.wrapped=l,l[b]=0,i.set(r,c),l}function E(e,n){const t=new Map;return r=>{const o=String(r.accessor),s=t.get(o);if(s&&e.isRegistered(s.host))return s.setProps(r),s.host;const i=C(e,()=>n,r);return t.set(o,i),i.host}}function S(n,t){const r=document.createElement("div"),o=e(()=>t,r);return n.register(r,o),r}function y(n){const t=document.createElement("div"),r=e(()=>n,t),o=t.innerHTML;return r(),o}function O(e){return"function"==typeof e}function j(e,n){const{cellRenderer:t,headerRenderer:r,children:o,nestedTable:s}=e,i=R(e,["cellRenderer","headerRenderer","children","nestedTable"]),d=String(e.accessor),c=Object.assign({},i);if(t&&(c.cellRenderer=v(n,d,"cell",t)),r&&(c.headerRenderer=v(n,d,"header",r)),o&&(c.children=o.map(e=>j(e,n))),s){const e=Object.assign(Object.assign({},s),{rows:[]});c.nestedTable=P(e,n)}return c}function B(e){const n=e.columns;if(!n)throw new Error("SimpleTable requires `columns`");return n}function P(e,n){const{rows:t,footerRenderer:r,emptyStateRenderer:o,errorStateRenderer:s,loadingStateRenderer:i,tableEmptyStateRenderer:d,headerDropdown:c,columnEditorConfig:l,icons:m,rowButtons:p,onColumnOrderChange:f,onColumnWidthChange:h,onHeaderEdit:g,onColumnSelect:b,enableColumnEditor:C,enableColumnEditorInitOpen:v,enablePagination:P,onTableReady:A,hoverRowBackground:T,oddColumnBackground:I,oddEvenRowBackground:k}=e,H=R(e,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","ref","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),L=B(e);n.pruneRendererCaches(a(L));const _=Object.assign(Object.assign({},H),{rows:u(t),columns:L.map(e=>j(e,n)),enableColumnEditor:C,enableColumnEditorInitOpen:v,enablePagination:P,onTableReady:A,hoverRowBackground:T,oddColumnBackground:I,oddEvenRowBackground:k,onRendererHostDiscard:n.disposeHost});if(f&&(_.onColumnOrderChange=e=>f(e)),h&&(_.onColumnWidthChange=e=>h(e)),g&&(_.onHeaderEdit=(e,n)=>g(e,n)),b&&(_.onColumnSelect=e=>b(e)),void 0!==r&&(_.footerRenderer=w(n,r)),void 0!==o)if(O(o))_.emptyStateRenderer=w(n,o);else{const e=o;_.emptyStateRenderer=()=>S(n,e)}if(void 0!==s)if(O(s))_.errorStateRenderer=w(n,s);else{const e=s;_.errorStateRenderer=()=>S(n,e)}if(void 0!==i)if(O(i))_.loadingStateRenderer=w(n,i);else{const e=i;_.loadingStateRenderer=()=>S(n,e)}return void 0!==d&&(_.tableEmptyStateRenderer=null===d?null:S(n,d)),void 0!==c&&(_.headerDropdown=w(n,c)),void 0!==l&&(_.columnEditorConfig=function(e,n){const{rowRenderer:t,customRenderer:r}=e,o=R(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),t?{rowRenderer:E(n,t)}:{}),r?{customRenderer:w(n,r)}:{})}(l,n)),void 0!==m&&(_.icons=function(e){const n={};for(const[t,r]of Object.entries(e))null!=r&&(n[t]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:y(r));return n}(m)),void 0!==p&&(_.rowButtons=p.map(e=>w(n,e))),_}const A="data-st-mount-id";class T{constructor(){this.entries=new Map,this.nextId=0,this.cellRendererCache=new Map,this.headerRendererCache=new Map,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const n=[],t=e.getAttribute(A);null!==t&&n.push(t),e.querySelectorAll(`[${A}]`).forEach(e=>{const t=e.getAttribute(A);null!==t&&n.push(t)});for(const e of n){const n=this.entries.get(e);n&&(this.entries.delete(e),n())}}}register(e,n){const t="st-mount-"+this.nextId++;e.setAttribute(A,t),this.entries.set(t,n)}isRegistered(e){const n=e.getAttribute(A);return null!==n&&this.entries.has(n)}clear(){this.cellRendererCache.clear(),this.headerRendererCache.clear();for(const e of this.entries.values())e();this.entries.clear()}pruneRendererCaches(e){for(const n of this.cellRendererCache.keys())e.has(n)||this.cellRendererCache.delete(n);for(const n of this.headerRendererCache.keys())e.has(n)||this.headerRendererCache.delete(n)}get size(){return this.entries.size}}var I=o("<div>");function k(e){let n,t=null;const o=new T;let s,i,a=!1,u=!1;function h(e){var n,r;t&&(e?null===(n=t.refitAutoSizeColumns)||void 0===n||n.call(t):!u&&o.size>0&&(u=!0,null===(r=t.refitAutoSizeColumns)||void 0===r||r.call(t)))}return d(()=>{t=new m(n,P(e,o)),t.mount(),s=B(e),i=e.rows,a=Boolean(e.isLoading),h(!1),e.ref&&e.ref(t.getAPI())}),c(()=>{if(!t)return;const n=P(e,o),r=Object.assign({},n),d=B(e),c=p(s,d);s=d,c&&delete r.columns;const l=f(i,e.rows,e.getRowId);i=e.rows,l&&delete r.rows;const u=Boolean(e.isLoading),m=a&&!u;a=u,t.update(r),h(m)}),l(()=>{null==t||t.destroy(),t=null,s=void 0,i=void 0,o.clear()}),g=I(),"function"==typeof n?r(n,g):n=g,g;var g}export{k as SimpleTable};
2
2
  //# sourceMappingURL=index.es.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simple-table/solid",
3
- "version": "4.1.9",
3
+ "version": "4.2.0",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/index.es.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -32,7 +32,7 @@
32
32
  "solid-js": ">=1.0.0"
33
33
  },
34
34
  "dependencies": {
35
- "simple-table-core": "4.1.9"
35
+ "simple-table-core": "4.2.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@babel/preset-typescript": "^7.28.5",