@simple-table/solid 4.0.3 → 4.0.5

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"),n=require("solid-js"),r=require("simple-table-core");function t(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(t=Object.getOwnPropertySymbols(e);o<t.length;o++)n.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(e,t[o])&&(r[t[o]]=e[t[o]])}return r}function o(n,r){return t=>{const o=document.createElement("div"),d=e.render(()=>e.createComponent(r,t),o);return n.register(o,d),o}}function d(n,r,t,o){const d="cell"===t?n.cellRendererCache:n.headerRendererCache,s=d.get(r);if(s)return s.component=o,s.wrapped;const i={component:o,wrapped:null},a=r=>{const t=document.createElement("div"),o=e.render(()=>e.createComponent(i.component,r),t);return n.register(t,o),t};return i.wrapped=a,d.set(r,i),a}function s(n,r){const t=document.createElement("div"),o=e.render(()=>r,t);return n.register(t,o),t}function i(n){const r=document.createElement("div"),t=e.render(()=>n,r),o=r.innerHTML;return t(),o}function a(e){return"function"==typeof e}function l(e,n){const{cellRenderer:r,headerRenderer:o,children:s,nestedTable:i}=e,a=t(e,["cellRenderer","headerRenderer","children","nestedTable"]),c=String(e.accessor),f=Object.assign({},a);if(r&&(f.cellRenderer=d(n,c,"cell",r)),o&&(f.headerRenderer=d(n,c,"header",o)),s&&(f.children=s.map(e=>l(e,n))),i){const e=Object.assign(Object.assign({},i),{rows:[]});f.nestedTable=u(e,n)}return f}function c(e){var n;const r=null!==(n=e.columns)&&void 0!==n?n:e.defaultHeaders;if(!r)throw new Error("SimpleTable requires `columns` or `defaultHeaders`");return r}function u(e,n){const{rows:d,footerRenderer:u,emptyStateRenderer:f,errorStateRenderer:p,loadingStateRenderer:m,tableEmptyStateRenderer:g,headerDropdown:R,columnEditorConfig:h,icons:b,rowButtons:O,onColumnOrderChange:C,onColumnWidthChange:w,onHeaderEdit:E,onColumnSelect:v,enableColumnEditor:y,editColumns:S,enableColumnEditorInitOpen:P,editColumnsInitOpen:j,enablePagination:I,shouldPaginate:T,onTableReady:B,onGridReady:_,hoverRowBackground:A,useHoverRowBackground:H,oddColumnBackground:k,useOddColumnBackground:x,oddEvenRowBackground:L,useOddEvenRowBackground:V}=e,M=t(e,["defaultHeaders","columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","ref","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","editColumns","enableColumnEditorInitOpen","editColumnsInitOpen","enablePagination","shouldPaginate","onTableReady","onGridReady","hoverRowBackground","useHoverRowBackground","oddColumnBackground","useOddColumnBackground","oddEvenRowBackground","useOddEvenRowBackground"]),q=c(e);n.pruneRendererCaches(r.collectHeaderAccessors(q));const D=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},M),{rows:d,defaultHeaders:q.map(e=>l(e,n)),editColumns:null!=y?y:S,editColumnsInitOpen:null!=P?P:j,shouldPaginate:null!=I?I:T,onGridReady:null!=B?B:_,useHoverRowBackground:null!=A?A:H,useOddColumnBackground:null!=k?k:x,useOddEvenRowBackground:null!=L?L:V,onRendererHostDiscard:n.disposeHost}),C?{onColumnOrderChange:e=>C(e)}:{}),w?{onColumnWidthChange:e=>w(e)}:{}),E?{onHeaderEdit:(e,n)=>E(e,n)}:{}),v?{onColumnSelect:e=>v(e)}:{});if(void 0!==u&&(D.footerRenderer=o(n,u)),void 0!==f)if(a(f))D.emptyStateRenderer=o(n,f);else{const e=f;D.emptyStateRenderer=()=>s(n,e)}if(void 0!==p)if(a(p))D.errorStateRenderer=o(n,p);else{const e=p;D.errorStateRenderer=()=>s(n,e)}if(void 0!==m)if(a(m))D.loadingStateRenderer=o(n,m);else{const e=m;D.loadingStateRenderer=()=>s(n,e)}return void 0!==g&&(D.tableEmptyStateRenderer=null===g?null:s(n,g)),void 0!==R&&(D.headerDropdown=o(n,R)),void 0!==h&&(D.columnEditorConfig=function(e,n){const{rowRenderer:r,customRenderer:d}=e,s=t(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},s),r?{rowRenderer:o(n,r)}:{}),d?{customRenderer:o(n,d)}:{})}(h,n)),void 0!==b&&(D.icons=function(e){const n={};for(const[r,t]of Object.entries(e))null!=t&&(n[r]="string"==typeof t||t instanceof HTMLElement||t instanceof SVGElement?t:i(t));return n}(b)),void 0!==O&&(D.rowButtons=O.map(e=>o(n,e))),D}"function"==typeof SuppressedError&&SuppressedError;const f="data-st-mount-id";class p{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=[],r=e.getAttribute(f);null!==r&&n.push(r),e.querySelectorAll(`[${f}]`).forEach(e=>{const r=e.getAttribute(f);null!==r&&n.push(r)});for(const e of n){const n=this.entries.get(e);n&&(this.entries.delete(e),n())}}}register(e,n){const r="st-mount-"+this.nextId++;e.setAttribute(f,r),this.entries.set(r,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 m=e.template("<div>");Object.defineProperty(exports,"PIVOT_ACCESSOR_PREFIX",{enumerable:!0,get:function(){return r.PIVOT_ACCESSOR_PREFIX}}),Object.defineProperty(exports,"PIVOT_BLANK_LABEL",{enumerable:!0,get:function(){return r.PIVOT_BLANK_LABEL}}),Object.defineProperty(exports,"PIVOT_CHILDREN_KEY",{enumerable:!0,get:function(){return r.PIVOT_CHILDREN_KEY}}),Object.defineProperty(exports,"PIVOT_IS_TOTAL_KEY",{enumerable:!0,get:function(){return r.PIVOT_IS_TOTAL_KEY}}),Object.defineProperty(exports,"asRows",{enumerable:!0,get:function(){return r.asRows}}),Object.defineProperty(exports,"buildPivotAccessor",{enumerable:!0,get:function(){return r.buildPivotAccessor}}),Object.defineProperty(exports,"buildPivotRowTotalAccessor",{enumerable:!0,get:function(){return r.buildPivotRowTotalAccessor}}),Object.defineProperty(exports,"pivotRows",{enumerable:!0,get:function(){return r.pivotRows}}),exports.SimpleTable=function(t){let o,d=null;const s=new p;let i,a;return n.onMount(()=>{d=new r.SimpleTableVanilla(o,u(t,s)),d.mount(),i=c(t),a=t.rows,t.ref&&t.ref(d.getAPI())}),n.createEffect(()=>{if(!d)return;const e=u(t,s),n=Object.assign({},e),o=c(t),l=r.headersStructurallyEqual(i,o);i=o,l&&delete n.defaultHeaders;const f=r.rowsShallowUnchanged(a,t.rows,t.getRowId);a=t.rows,f&&delete n.rows,d.update(n)}),n.onCleanup(()=>{null==d||d.destroy(),d=null,i=void 0,a=void 0,s.clear()}),l=m(),"function"==typeof o?e.use(o,l):o=l,l;var l};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("solid-js/web"),r=require("solid-js"),n=require("simple-table-core");function t(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 o(r,n){return t=>{const o=document.createElement("div"),s=e.render(()=>e.createComponent(n,t),o);return r.register(o,s),o}}function s(r,n,t,o){const s="cell"===t?r.cellRendererCache:r.headerRendererCache,i=s.get(n);if(i)return i.component=o,i.wrapped;const c={component:o,wrapped:null},d=n=>{const t=document.createElement("div"),o=e.render(()=>e.createComponent(c.component,n),t);return r.register(t,o),t};return c.wrapped=d,s.set(n,c),d}function i(r,n){const t=document.createElement("div"),o=e.render(()=>n,t);return r.register(t,o),t}function c(r){const n=document.createElement("div"),t=e.render(()=>r,n),o=n.innerHTML;return t(),o}function d(e){return"function"==typeof e}function a(e,r){const{cellRenderer:n,headerRenderer:o,children:i,nestedTable:c}=e,d=t(e,["cellRenderer","headerRenderer","children","nestedTable"]),l=String(e.accessor),p=Object.assign({},d);if(n&&(p.cellRenderer=s(r,l,"cell",n)),o&&(p.headerRenderer=s(r,l,"header",o)),i&&(p.children=i.map(e=>a(e,r))),c){const e=Object.assign(Object.assign({},c),{rows:[]});p.nestedTable=u(e,r)}return p}function l(e){const r=e.columns;if(!r)throw new Error("SimpleTable requires `columns`");return r}function u(e,r){const{rows:s,footerRenderer:u,emptyStateRenderer:p,errorStateRenderer:f,loadingStateRenderer:m,tableEmptyStateRenderer:b,headerDropdown:h,columnEditorConfig:R,icons:g,rowButtons:O,onColumnOrderChange:C,onColumnWidthChange:w,onHeaderEdit:E,onColumnSelect:y,enableColumnEditor:v,enableColumnEditorInitOpen:S,enablePagination:P,onTableReady:j,hoverRowBackground:T,oddColumnBackground:I,oddEvenRowBackground:_}=e,A=t(e,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","ref","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),B=l(e);r.pruneRendererCaches(n.collectHeaderAccessors(B));const x=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},A),{rows:s,columns:B.map(e=>a(e,r)),enableColumnEditor:v,enableColumnEditorInitOpen:S,enablePagination:P,onTableReady:j,hoverRowBackground:T,oddColumnBackground:I,oddEvenRowBackground:_,onRendererHostDiscard:r.disposeHost}),C?{onColumnOrderChange:e=>C(e)}:{}),w?{onColumnWidthChange:e=>w(e)}:{}),E?{onHeaderEdit:(e,r)=>E(e,r)}:{}),y?{onColumnSelect:e=>y(e)}:{});if(void 0!==u&&(x.footerRenderer=o(r,u)),void 0!==p)if(d(p))x.emptyStateRenderer=o(r,p);else{const e=p;x.emptyStateRenderer=()=>i(r,e)}if(void 0!==f)if(d(f))x.errorStateRenderer=o(r,f);else{const e=f;x.errorStateRenderer=()=>i(r,e)}if(void 0!==m)if(d(m))x.loadingStateRenderer=o(r,m);else{const e=m;x.loadingStateRenderer=()=>i(r,e)}return void 0!==b&&(x.tableEmptyStateRenderer=null===b?null:i(r,b)),void 0!==h&&(x.headerDropdown=o(r,h)),void 0!==R&&(x.columnEditorConfig=function(e,r){const{rowRenderer:n,customRenderer:s}=e,i=t(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},i),n?{rowRenderer:o(r,n)}:{}),s?{customRenderer:o(r,s)}:{})}(R,r)),void 0!==g&&(x.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:c(t));return r}(g)),void 0!==O&&(x.rowButtons=O.map(e=>o(r,e))),x}"function"==typeof SuppressedError&&SuppressedError;const p="data-st-mount-id";class f{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(p);null!==n&&r.push(n),e.querySelectorAll(`[${p}]`).forEach(e=>{const n=e.getAttribute(p);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(p,n),this.entries.set(n,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 m=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_CHILDREN_KEY",{enumerable:!0,get:function(){return n.PIVOT_CHILDREN_KEY}}),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 f;let c,d;return r.onMount(()=>{s=new n.SimpleTableVanilla(o,u(t,i)),s.mount(),c=l(t),d=t.rows,t.ref&&t.ref(s.getAPI())}),r.createEffect(()=>{if(!s)return;const e=u(t,i),r=Object.assign({},e),o=l(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,s.update(r)}),r.onCleanup(()=>{null==s||s.destroy(),s=null,c=void 0,d=void 0,i.clear()}),a=m(),"function"==typeof o?e.use(o,a):o=a,a;var a};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.es.js CHANGED
@@ -1,2 +1,2 @@
1
- import{render as e,createComponent as n,use as r,template as t}from"solid-js/web";import{onMount as o,createEffect as d,onCleanup as s}from"solid-js";import{collectHeaderAccessors as i,SimpleTableVanilla as a,headersStructurallyEqual as l,rowsShallowUnchanged as c}from"simple-table-core";export{PIVOT_ACCESSOR_PREFIX,PIVOT_BLANK_LABEL,PIVOT_CHILDREN_KEY,PIVOT_IS_TOTAL_KEY,asRows,buildPivotAccessor,buildPivotRowTotalAccessor,pivotRows}from"simple-table-core";function u(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(t=Object.getOwnPropertySymbols(e);o<t.length;o++)n.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(e,t[o])&&(r[t[o]]=e[t[o]])}return r}function m(r,t){return o=>{const d=document.createElement("div"),s=e(()=>n(t,o),d);return r.register(d,s),d}}function f(r,t,o,d){const s="cell"===o?r.cellRendererCache:r.headerRendererCache,i=s.get(t);if(i)return i.component=d,i.wrapped;const a={component:d,wrapped:null},l=t=>{const o=document.createElement("div"),d=e(()=>n(a.component,t),o);return r.register(o,d),o};return a.wrapped=l,s.set(t,a),l}function h(n,r){const t=document.createElement("div"),o=e(()=>r,t);return n.register(t,o),t}function p(n){const r=document.createElement("div"),t=e(()=>n,r),o=r.innerHTML;return t(),o}function R(e){return"function"==typeof e}function g(e,n){const{cellRenderer:r,headerRenderer:t,children:o,nestedTable:d}=e,s=u(e,["cellRenderer","headerRenderer","children","nestedTable"]),i=String(e.accessor),a=Object.assign({},s);if(r&&(a.cellRenderer=f(n,i,"cell",r)),t&&(a.headerRenderer=f(n,i,"header",t)),o&&(a.children=o.map(e=>g(e,n))),d){const e=Object.assign(Object.assign({},d),{rows:[]});a.nestedTable=b(e,n)}return a}function C(e){var n;const r=null!==(n=e.columns)&&void 0!==n?n:e.defaultHeaders;if(!r)throw new Error("SimpleTable requires `columns` or `defaultHeaders`");return r}function b(e,n){const{rows:r,footerRenderer:t,emptyStateRenderer:o,errorStateRenderer:d,loadingStateRenderer:s,tableEmptyStateRenderer:a,headerDropdown:l,columnEditorConfig:c,icons:f,rowButtons:b,onColumnOrderChange:w,onColumnWidthChange:O,onHeaderEdit:v,onColumnSelect:E,enableColumnEditor:y,editColumns:S,enableColumnEditorInitOpen:j,editColumnsInitOpen:B,enablePagination:k,shouldPaginate:H,onTableReady:I,onGridReady:P,hoverRowBackground:T,useHoverRowBackground:A,oddColumnBackground:_,useOddColumnBackground:L,oddEvenRowBackground:x,useOddEvenRowBackground:D}=e,M=u(e,["defaultHeaders","columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","ref","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","editColumns","enableColumnEditorInitOpen","editColumnsInitOpen","enablePagination","shouldPaginate","onTableReady","onGridReady","hoverRowBackground","useHoverRowBackground","oddColumnBackground","useOddColumnBackground","oddEvenRowBackground","useOddEvenRowBackground"]),V=C(e);n.pruneRendererCaches(i(V));const G=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},M),{rows:r,defaultHeaders:V.map(e=>g(e,n)),editColumns:null!=y?y:S,editColumnsInitOpen:null!=j?j:B,shouldPaginate:null!=k?k:H,onGridReady:null!=I?I:P,useHoverRowBackground:null!=T?T:A,useOddColumnBackground:null!=_?_:L,useOddEvenRowBackground:null!=x?x:D,onRendererHostDiscard:n.disposeHost}),w?{onColumnOrderChange:e=>w(e)}:{}),O?{onColumnWidthChange:e=>O(e)}:{}),v?{onHeaderEdit:(e,n)=>v(e,n)}:{}),E?{onColumnSelect:e=>E(e)}:{});if(void 0!==t&&(G.footerRenderer=m(n,t)),void 0!==o)if(R(o))G.emptyStateRenderer=m(n,o);else{const e=o;G.emptyStateRenderer=()=>h(n,e)}if(void 0!==d)if(R(d))G.errorStateRenderer=m(n,d);else{const e=d;G.errorStateRenderer=()=>h(n,e)}if(void 0!==s)if(R(s))G.loadingStateRenderer=m(n,s);else{const e=s;G.loadingStateRenderer=()=>h(n,e)}return void 0!==a&&(G.tableEmptyStateRenderer=null===a?null:h(n,a)),void 0!==l&&(G.headerDropdown=m(n,l)),void 0!==c&&(G.columnEditorConfig=function(e,n){const{rowRenderer:r,customRenderer:t}=e,o=u(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),r?{rowRenderer:m(n,r)}:{}),t?{customRenderer:m(n,t)}:{})}(c,n)),void 0!==f&&(G.icons=function(e){const n={};for(const[r,t]of Object.entries(e))null!=t&&(n[r]="string"==typeof t||t instanceof HTMLElement||t instanceof SVGElement?t:p(t));return n}(f)),void 0!==b&&(G.rowButtons=b.map(e=>m(n,e))),G}"function"==typeof SuppressedError&&SuppressedError;const w="data-st-mount-id";class O{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=[],r=e.getAttribute(w);null!==r&&n.push(r),e.querySelectorAll(`[${w}]`).forEach(e=>{const r=e.getAttribute(w);null!==r&&n.push(r)});for(const e of n){const n=this.entries.get(e);n&&(this.entries.delete(e),n())}}}register(e,n){const r="st-mount-"+this.nextId++;e.setAttribute(w,r),this.entries.set(r,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 v=t("<div>");function E(e){let n,t=null;const i=new O;let u,m;return o(()=>{t=new a(n,b(e,i)),t.mount(),u=C(e),m=e.rows,e.ref&&e.ref(t.getAPI())}),d(()=>{if(!t)return;const n=b(e,i),r=Object.assign({},n),o=C(e),d=l(u,o);u=o,d&&delete r.defaultHeaders;const s=c(m,e.rows,e.getRowId);m=e.rows,s&&delete r.rows,t.update(r)}),s(()=>{null==t||t.destroy(),t=null,u=void 0,m=void 0,i.clear()}),f=v(),"function"==typeof n?r(n,f):n=f,f;var f}export{E as SimpleTable};
1
+ import{render as e,createComponent as n,use as r,template as t}from"solid-js/web";import{onMount as o,createEffect as s,onCleanup as d}from"solid-js";import{collectHeaderAccessors as i,SimpleTableVanilla as c,headersStructurallyEqual as a,rowsShallowUnchanged as l}from"simple-table-core";export{PIVOT_ACCESSOR_PREFIX,PIVOT_BLANK_LABEL,PIVOT_CHILDREN_KEY,PIVOT_IS_TOTAL_KEY,asRows,buildPivotAccessor,buildPivotRowTotalAccessor,pivotRows}from"simple-table-core";function u(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(t=Object.getOwnPropertySymbols(e);o<t.length;o++)n.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(e,t[o])&&(r[t[o]]=e[t[o]])}return r}function m(r,t){return o=>{const s=document.createElement("div"),d=e(()=>n(t,o),s);return r.register(s,d),s}}function f(r,t,o,s){const d="cell"===o?r.cellRendererCache:r.headerRendererCache,i=d.get(t);if(i)return i.component=s,i.wrapped;const c={component:s,wrapped:null},a=t=>{const o=document.createElement("div"),s=e(()=>n(c.component,t),o);return r.register(o,s),o};return c.wrapped=a,d.set(t,c),a}function h(n,r){const t=document.createElement("div"),o=e(()=>r,t);return n.register(t,o),t}function p(n){const r=document.createElement("div"),t=e(()=>n,r),o=r.innerHTML;return t(),o}function R(e){return"function"==typeof e}function g(e,n){const{cellRenderer:r,headerRenderer:t,children:o,nestedTable:s}=e,d=u(e,["cellRenderer","headerRenderer","children","nestedTable"]),i=String(e.accessor),c=Object.assign({},d);if(r&&(c.cellRenderer=f(n,i,"cell",r)),t&&(c.headerRenderer=f(n,i,"header",t)),o&&(c.children=o.map(e=>g(e,n))),s){const e=Object.assign(Object.assign({},s),{rows:[]});c.nestedTable=C(e,n)}return c}function b(e){const n=e.columns;if(!n)throw new Error("SimpleTable requires `columns`");return n}function C(e,n){const{rows:r,footerRenderer:t,emptyStateRenderer:o,errorStateRenderer:s,loadingStateRenderer:d,tableEmptyStateRenderer:c,headerDropdown:a,columnEditorConfig:l,icons:f,rowButtons:C,onColumnOrderChange:w,onColumnWidthChange:E,onHeaderEdit:O,onColumnSelect:v,enableColumnEditor:S,enableColumnEditorInitOpen:y,enablePagination:j,onTableReady:T,hoverRowBackground:I,oddColumnBackground:B,oddEvenRowBackground:P}=e,A=u(e,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","ref","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),k=b(e);n.pruneRendererCaches(i(k));const H=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},A),{rows:r,columns:k.map(e=>g(e,n)),enableColumnEditor:S,enableColumnEditorInitOpen:y,enablePagination:j,onTableReady:T,hoverRowBackground:I,oddColumnBackground:B,oddEvenRowBackground:P,onRendererHostDiscard:n.disposeHost}),w?{onColumnOrderChange:e=>w(e)}:{}),E?{onColumnWidthChange:e=>E(e)}:{}),O?{onHeaderEdit:(e,n)=>O(e,n)}:{}),v?{onColumnSelect:e=>v(e)}:{});if(void 0!==t&&(H.footerRenderer=m(n,t)),void 0!==o)if(R(o))H.emptyStateRenderer=m(n,o);else{const e=o;H.emptyStateRenderer=()=>h(n,e)}if(void 0!==s)if(R(s))H.errorStateRenderer=m(n,s);else{const e=s;H.errorStateRenderer=()=>h(n,e)}if(void 0!==d)if(R(d))H.loadingStateRenderer=m(n,d);else{const e=d;H.loadingStateRenderer=()=>h(n,e)}return void 0!==c&&(H.tableEmptyStateRenderer=null===c?null:h(n,c)),void 0!==a&&(H.headerDropdown=m(n,a)),void 0!==l&&(H.columnEditorConfig=function(e,n){const{rowRenderer:r,customRenderer:t}=e,o=u(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),r?{rowRenderer:m(n,r)}:{}),t?{customRenderer:m(n,t)}:{})}(l,n)),void 0!==f&&(H.icons=function(e){const n={};for(const[r,t]of Object.entries(e))null!=t&&(n[r]="string"==typeof t||t instanceof HTMLElement||t instanceof SVGElement?t:p(t));return n}(f)),void 0!==C&&(H.rowButtons=C.map(e=>m(n,e))),H}"function"==typeof SuppressedError&&SuppressedError;const w="data-st-mount-id";class E{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=[],r=e.getAttribute(w);null!==r&&n.push(r),e.querySelectorAll(`[${w}]`).forEach(e=>{const r=e.getAttribute(w);null!==r&&n.push(r)});for(const e of n){const n=this.entries.get(e);n&&(this.entries.delete(e),n())}}}register(e,n){const r="st-mount-"+this.nextId++;e.setAttribute(w,r),this.entries.set(r,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 O=t("<div>");function v(e){let n,t=null;const i=new E;let u,m;return o(()=>{t=new c(n,C(e,i)),t.mount(),u=b(e),m=e.rows,e.ref&&e.ref(t.getAPI())}),s(()=>{if(!t)return;const n=C(e,i),r=Object.assign({},n),o=b(e),s=a(u,o);u=o,s&&delete r.columns;const d=l(m,e.rows,e.getRowId);m=e.rows,d&&delete r.rows,t.update(r)}),d(()=>{null==t||t.destroy(),t=null,u=void 0,m=void 0,i.clear()}),f=O(),"function"==typeof n?r(n,f):n=f,f;var f}export{v as SimpleTable};
2
2
  //# sourceMappingURL=index.es.js.map
@@ -1,6 +1,6 @@
1
- import type { SimpleTableConfig, HeaderObject } from "simple-table-core";
2
- import type { SimpleTableSolidProps, SolidHeaderObject } from "./types";
1
+ import type { SimpleTableConfig, ColumnDef } from "simple-table-core";
2
+ import type { SimpleTableSolidProps, SolidColumnDef } from "./types";
3
3
  import type { MountRegistry } from "./MountRegistry";
4
- /** Resolve preferred `columns` or legacy `defaultHeaders`. */
5
- export declare function resolveSolidColumns(config: Pick<SimpleTableSolidProps, "columns" | "defaultHeaders">): ReadonlyArray<HeaderObject | SolidHeaderObject>;
4
+ /** Resolve column definitions. */
5
+ export declare function resolveSolidColumns(config: Pick<SimpleTableSolidProps, "columns">): ReadonlyArray<ColumnDef | SolidColumnDef>;
6
6
  export declare function buildVanillaConfig(config: SimpleTableSolidProps, registry: MountRegistry): SimpleTableConfig;
@@ -1,5 +1,5 @@
1
1
  export { SimpleTable } from "./SimpleTable";
2
2
  export { asRows } from "simple-table-core";
3
- export type { SimpleTableSolidProps, TableInstance, SolidHeaderObject, SolidColumnDef, SolidColumnEditorConfig, SolidIconsConfig, SolidIconElement, SolidCellRenderer, SolidHeaderRenderer, SolidFooterRenderer, SolidHeaderDropdown, SolidColumnEditorRowRenderer, SolidColumnEditorCustomRenderer, SolidRowButton, SolidLoadingStateRenderer, SolidErrorStateRenderer, SolidEmptyStateRenderer, } from "./types";
4
- export type { Accessor, AggregationConfig, AggregationType, AnimationsConfig, AutoSizeMode, ColumnDef, Cell, CellChangeProps, CellClickProps, CellRenderer, CellRendererProps, CellValue, ChartOptions, ColumnEditorConfig, ColumnEditorRowRenderer, ColumnEditorRowRendererComponents, ColumnEditorCustomRenderer, ColumnEditorCustomRendererProps, ColumnEditorRowRendererProps, ColumnEditorSearchFunction, ColumnType, ColumnVisibilityState, Comparator, ComparatorProps, CustomTheme, CustomThemeProps, EmptyStateRenderer, EmptyStateRendererProps, EnumOption, ErrorStateRenderer, ErrorStateRendererProps, ExportToCSVProps, ExportValueGetter, ExportValueProps, FilterCondition, FilterOperator, StringFilterOperator, NumberFilterOperator, BooleanFilterOperator, DateFilterOperator, EnumFilterOperator, FooterRendererProps, FooterPosition, GetRowId, GetRowIdParams, HeaderDropdown, HeaderDropdownProps, HeaderObject, HeaderRenderer, HeaderRendererComponents, HeaderRendererProps, IconsConfig, LoadingStateRenderer, LoadingStateRendererProps, OnRowGroupExpandProps, Pinned, PinnedSectionsState, PivotConfig, PivotValueConfig, PivotResult, QuickFilterConfig, QuickFilterGetter, QuickFilterGetterProps, QuickFilterMode, Row, RowButtonProps, RowId, RowSelectionChangeProps, RowSelectionMode, RowState, SetHeaderRenameProps, ShowWhen, SimpleTableConfig, SimpleTableProps, SortColumn, TableAPI, TableFilterState, TableRow, Theme, UpdateDataProps, ValueFormatter, ValueFormatterProps, ValueGetter, ValueGetterProps, } from "simple-table-core";
3
+ export type { SimpleTableSolidProps, TableInstance, SolidColumnDef, SolidColumnEditorConfig, SolidIconsConfig, SolidIconElement, SolidCellRenderer, SolidHeaderRenderer, SolidFooterRenderer, SolidHeaderDropdown, SolidColumnEditorRowRenderer, SolidColumnEditorCustomRenderer, SolidRowButton, SolidLoadingStateRenderer, SolidErrorStateRenderer, SolidEmptyStateRenderer, } from "./types";
4
+ export type { Accessor, AggregationConfig, AggregationType, AnimationsConfig, AutoSizeMode, ColumnDef, Cell, CellChangeProps, CellClickProps, CellRenderer, CellRendererProps, CellValue, ChartOptions, ColumnEditorConfig, ColumnEditorRowRenderer, ColumnEditorRowRendererComponents, ColumnEditorCustomRenderer, ColumnEditorCustomRendererProps, ColumnEditorRowRendererProps, ColumnEditorSearchFunction, ColumnType, ColumnVisibilityState, Comparator, ComparatorProps, CustomTheme, CustomThemeProps, EmptyStateRenderer, EmptyStateRendererProps, EnumOption, ErrorStateRenderer, ErrorStateRendererProps, ExportToCSVProps, ExportValueGetter, ExportValueProps, FilterCondition, FilterOperator, StringFilterOperator, NumberFilterOperator, BooleanFilterOperator, DateFilterOperator, EnumFilterOperator, FooterRendererProps, FooterPosition, GetRowId, GetRowIdParams, HeaderDropdown, HeaderDropdownProps, HeaderRenderer, HeaderRendererComponents, HeaderRendererProps, IconsConfig, LoadingStateRenderer, LoadingStateRendererProps, OnRowGroupExpandProps, Pinned, PinnedSectionsState, PivotConfig, PivotValueConfig, PivotResult, QuickFilterConfig, QuickFilterGetter, QuickFilterGetterProps, QuickFilterMode, Row, RowButtonProps, RowId, RowSelectionChangeProps, RowSelectionMode, RowState, SetHeaderRenameProps, ShowWhen, SimpleTableConfig, SimpleTableProps, SortColumn, TableAPI, TableFilterState, TableRow, Theme, UpdateDataProps, ValueFormatter, ValueFormatterProps, ValueGetter, ValueGetterProps, } from "simple-table-core";
5
5
  export { pivotRows, buildPivotAccessor, buildPivotRowTotalAccessor, PIVOT_CHILDREN_KEY, PIVOT_IS_TOTAL_KEY, PIVOT_ACCESSOR_PREFIX, PIVOT_BLANK_LABEL, } from "simple-table-core";
@@ -1,5 +1,5 @@
1
1
  import type { Component, JSX } from "solid-js";
2
- import type { SimpleTableProps, SimpleTableConfig, HeaderObject, Row, TableAPI, CellRendererProps, HeaderRendererProps, FooterRendererProps, LoadingStateRendererProps, ErrorStateRendererProps, EmptyStateRendererProps, HeaderDropdownProps, ColumnEditorRowRendererProps, ColumnEditorCustomRendererProps, ColumnEditorConfig, RowButtonProps } from "simple-table-core";
2
+ import type { SimpleTableProps, SimpleTableConfig, ColumnDef, Row, TableAPI, CellRendererProps, HeaderRendererProps, FooterRendererProps, LoadingStateRendererProps, ErrorStateRendererProps, EmptyStateRendererProps, HeaderDropdownProps, ColumnEditorRowRendererProps, ColumnEditorCustomRendererProps, ColumnEditorConfig, RowButtonProps } from "simple-table-core";
3
3
  export interface TableInstance {
4
4
  mount(): void;
5
5
  update(config: Partial<SimpleTableConfig>): void;
@@ -35,32 +35,25 @@ export interface SolidColumnEditorConfig extends Omit<ColumnEditorConfig, "rowRe
35
35
  customRenderer?: SolidColumnEditorCustomRenderer;
36
36
  }
37
37
  /**
38
- * Column definition for `columns` / `defaultHeaders`: core column metadata with
39
- * Solid-only renderer fields. `columns` / `defaultHeaders` also accept plain
40
- * `HeaderObject[]` from shared configs.
38
+ * Column definition for `columns`: core column metadata with
39
+ * Solid-only renderer fields. `columns` also accept plain
40
+ * `ColumnDef[]` from shared configs.
41
41
  */
42
- export interface SolidHeaderObject extends Omit<HeaderObject, "cellRenderer" | "headerRenderer" | "children" | "nestedTable"> {
42
+ export interface SolidColumnDef extends Omit<ColumnDef, "cellRenderer" | "headerRenderer" | "children" | "nestedTable"> {
43
43
  cellRenderer?: SolidCellRenderer;
44
44
  headerRenderer?: SolidHeaderRenderer;
45
- children?: SolidHeaderObject[];
45
+ children?: SolidColumnDef[];
46
46
  nestedTable?: Omit<SimpleTableSolidProps, "rows" | "loadingStateRenderer" | "errorStateRenderer" | "emptyStateRenderer" | "tableEmptyStateRenderer">;
47
47
  }
48
- /** Preferred name for Solid column definitions. Alias of {@link SolidHeaderObject}. */
49
- export type SolidColumnDef = SolidHeaderObject;
50
- export interface SimpleTableSolidProps extends Omit<SimpleTableProps, "rows" | "defaultHeaders" | "columns" | "footerRenderer" | "emptyStateRenderer" | "errorStateRenderer" | "loadingStateRenderer" | "tableEmptyStateRenderer" | "headerDropdown" | "columnEditorConfig" | "icons" | "rowButtons" | "onColumnOrderChange" | "onColumnWidthChange" | "onHeaderEdit" | "onColumnSelect"> {
51
- /**
52
- * Column definitions.
53
- * @deprecated Prefer {@link columns}
54
- */
55
- defaultHeaders?: ReadonlyArray<HeaderObject | SolidHeaderObject>;
56
- /** Column definitions. Preferred over `defaultHeaders`. */
57
- columns?: ReadonlyArray<HeaderObject | SolidHeaderObject>;
48
+ export interface SimpleTableSolidProps extends Omit<SimpleTableProps, "rows" | "columns" | "footerRenderer" | "emptyStateRenderer" | "errorStateRenderer" | "loadingStateRenderer" | "tableEmptyStateRenderer" | "headerDropdown" | "columnEditorConfig" | "icons" | "rowButtons" | "onColumnOrderChange" | "onColumnWidthChange" | "onHeaderEdit" | "onColumnSelect"> {
49
+ /** Column definitions. */
50
+ columns?: ReadonlyArray<ColumnDef | SolidColumnDef>;
58
51
  /** Row data: domain objects or core `Row[]`; cast inside the adapter. */
59
52
  rows: ReadonlyArray<Row> | ReadonlyArray<object>;
60
- onColumnOrderChange?: (newHeaders: SolidHeaderObject[]) => void;
61
- onColumnWidthChange?: (headers: SolidHeaderObject[]) => void;
62
- onHeaderEdit?: (header: SolidHeaderObject, newLabel: string) => void;
63
- onColumnSelect?: (header: SolidHeaderObject) => void;
53
+ onColumnOrderChange?: (newHeaders: SolidColumnDef[]) => void;
54
+ onColumnWidthChange?: (headers: SolidColumnDef[]) => void;
55
+ onHeaderEdit?: (header: SolidColumnDef, newLabel: string) => void;
56
+ onColumnSelect?: (header: SolidColumnDef) => void;
64
57
  footerRenderer?: SolidFooterRenderer;
65
58
  loadingStateRenderer?: SolidLoadingStateRenderer;
66
59
  errorStateRenderer?: SolidErrorStateRenderer;
@@ -11,7 +11,7 @@ import type { MountRegistry } from "../MountRegistry";
11
11
  export declare function wrapSolidRenderer<P extends object>(registry: MountRegistry, component: Component<P>): (props: P) => HTMLElement;
12
12
  /**
13
13
  * Like {@link wrapSolidRenderer}, but reuses one wrapper per accessor so
14
- * unstable column rebuilds keep a stable function identity on HeaderObject.
14
+ * unstable column rebuilds keep a stable function identity on ColumnDef.
15
15
  */
16
16
  export declare function wrapCachedSolidRenderer<P extends object>(registry: MountRegistry, accessor: string, kind: "cell" | "header", component: Component<P>): (props: P) => HTMLElement;
17
17
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simple-table/solid",
3
- "version": "4.0.3",
3
+ "version": "4.0.5",
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.0.3"
35
+ "simple-table-core": "4.0.5"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@babel/preset-typescript": "^7.28.5",