@niagads/table 1.0.0-alpha.0 → 1.0.1-alpha.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.
Files changed (38) hide show
  1. package/dist/Cell.js +2 -0
  2. package/dist/Cell.js.map +1 -0
  3. package/dist/CellRenderers/Badge.js +2 -0
  4. package/dist/CellRenderers/Badge.js.map +1 -0
  5. package/dist/CellRenderers/BasicText.js +2 -0
  6. package/dist/CellRenderers/BasicText.js.map +1 -0
  7. package/dist/CellRenderers/Link.js +2 -0
  8. package/dist/CellRenderers/Link.js.map +1 -0
  9. package/dist/CellRenderers/Number.js +2 -0
  10. package/dist/CellRenderers/Number.js.map +1 -0
  11. package/dist/CellRenderers/SparkChart.js +2 -0
  12. package/dist/CellRenderers/SparkChart.js.map +1 -0
  13. package/dist/CellRenderers/TextRenderer.js +2 -0
  14. package/dist/CellRenderers/TextRenderer.js.map +1 -0
  15. package/dist/Column.js +2 -0
  16. package/dist/Column.js.map +1 -0
  17. package/dist/ControlElements/ColumnControls.js +2 -0
  18. package/dist/ControlElements/ColumnControls.js.map +1 -0
  19. package/dist/ControlElements/PaginationControls.js +2 -0
  20. package/dist/ControlElements/PaginationControls.js.map +1 -0
  21. package/dist/ControlElements/TableExportControls.js +2 -0
  22. package/dist/ControlElements/TableExportControls.js.map +1 -0
  23. package/dist/ControlElements/TableToolbar.js +2 -0
  24. package/dist/ControlElements/TableToolbar.js.map +1 -0
  25. package/dist/Filter.js +2 -0
  26. package/dist/Filter.js.map +1 -0
  27. package/dist/Table.js +2 -0
  28. package/dist/Table.js.map +1 -0
  29. package/dist/TableColumnHeader.js +2 -0
  30. package/dist/TableColumnHeader.js.map +1 -0
  31. package/dist/TableSortingFunctions.js +2 -0
  32. package/dist/TableSortingFunctions.js.map +1 -0
  33. package/dist/index.d.ts +200 -0
  34. package/dist/index.js +2 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/niagads-table.css +715 -0
  37. package/dist/niagads-table.css.map +1 -0
  38. package/package.json +4 -4
package/dist/Cell.js ADDED
@@ -0,0 +1,2 @@
1
+ import e from"react";import{_get as r,_isNull as t,_isNA as l,_isJSON as a,_deepCopy as n,_hasOwnProperty as s}from"@niagads/common";import{TextList as o,Text as i}from"./CellRenderers/BasicText.js";import{LinkList as c,Link as u}from"./CellRenderers/Link.js";import{Float as p}from"./CellRenderers/Number.js";import{Badge as d,BooleanBadge as m}from"./CellRenderers/Badge.js";import{PercentageBar as f}from"./CellRenderers/SparkChart.js";const y="NA",b=["boolean","abstract","float","p_value","text","annotated_text","badge","link","integer","percentage_bar"],g=e=>{if(void 0===e)return"abstract";if("string"==typeof e&&b.includes(e))return e;throw new Error("Invalid data type `"+e+"`")},k=e=>{const a=r("naValue",e,y),n=r("nullValue",e,a);return t(e.value)?n:l(e.value)?a:r("value",e)},I=e=>{if(Array.isArray(e))return e.map((e=>I(e))).join(" // ");switch(e.type){case"boolean":return r("displayText",t=e)||k(t);case"float":return(e=>{const t=r("displayText",e);return t||+k(e)})(e);case"p_value":return(e=>{const t=r("displayText",e);return t||+k(e)})(e);default:return k(e)}var t},v=e=>{const t=r("value",e),l=r("url",e);return Object.assign(e,{value:t||l,type:"link"}),e},w=e=>({type:"abstract",value:e.map((e=>r("value",e))).join(" // "),items:e}),$=(e,t,l)=>{let o=r("type",t,"abstract"),i={};if(Array.isArray(e)){if("abstract"==o)throw Error("Cell contains an array; must specify either `text` or `link` as the cell `type` in the column defintion: "+JSON.stringify(e));const r=e.map((e=>$(e,t,l)));if("text"==o)i=w(r),o="text_list";else{if("link"!=o)throw Error("Arrays of values are only supported for `text` or `link` table cell types: "+JSON.stringify(e));i=w(r),o="link_list"}}else if(a(e)){if(i=n(e),"link"==o&&(i=v(i)),"abstract"===o&&(s("url",e)?(o="link",i=v(i)):o="text"),null==r("value",i))throw Error("unable to infer `value` for cell: "+JSON.stringify(e))}else Object.assign(i,{value:e});"abstract"===o&&(o="text"),Object.assign(i,{type:o});const c=r("format",t);if(c){if("boolean"==o){const e=r("value",i),t=r("trueValue",c);t&&!0===e&&Object.assign(i,{displayText:t})}if("float"==o){const e=r("precision",c);e&&Object.assign(i,{precision:e})}Object.assign(i,{nullValue:r("nullValue",c),naValue:r("naValue",c,y)})}return Object.assign(i,{columnId:t.id,rowId:l}),i},x=r=>{switch(r.type){case"abstract":case"text":return e.createElement(i,{key:`cell-${r.rowId}-${r.columnId}`,props:r});case"link":return e.createElement(u,{key:`cell-${r.rowId}-${r.columnId}`,props:r});case"boolean":return e.createElement(m,{key:`cell-${r.rowId}-${r.columnId}`,props:r});case"badge":return e.createElement(d,{key:`cell-${r.rowId}-${r.columnId}`,props:r});case"float":case"p_value":case"integer":return e.createElement(p,{key:`cell-${r.rowId}-${r.columnId}`,props:r});case"percentage_bar":return e.createElement(f,{key:`cell-${r.rowId}-${r.columnId}`,props:r});case"text_list":return e.createElement(o,{key:`cell-${r.rowId}-${r.columnId}`,props:r});case"link_list":return e.createElement(c,{key:`cell-${r.rowId}-${r.columnId}`,props:r});default:throw Error(`Unknown cell type for rendering: ${JSON.stringify(r)}`)}};export{y as DEFAULT_NA_VALUE,I as getCellValue,x as renderCell,$ as resolveCell,g as validateCellType};
2
+ //# sourceMappingURL=Cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cell.js","sources":["../src/Cell.tsx"],"sourcesContent":[null],"names":["DEFAULT_NA_VALUE","CELL_TYPE_VALIDATION_REFERENCE","validateCellType","ctype","undefined","includes","Error","__resolveValue","props","naValue","_get","nullValue","_isNull","value","_isNA","getCellValue","cellProps","Array","isArray","map","item","join","type","displayText","__resolveFloatValue","__resolvePValueValue","__resolveLinkCell","cell","url","Object","assign","__resolveListCell","cells","c","items","resolveCell","column","rowId","resolvedCellType","resolvedCell","JSON","stringify","cellList","_isJSON","_deepCopy","_hasOwnProperty","fOptions","trueDisplay","precision","columnId","id","renderCell","React","Text","key","Link","BooleanBadge","Badge","Float","PercentageBar","TextList","LinkList"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import o from"react";import{_get as l,_isNull as e,_isNA as n,_hasOwnProperty as c}from"@niagads/common";import{renderNullValue as t,buildElementStyle as r,renderStyledText as i,renderWithIcon as s,renderWithInfo as a}from"./TextRenderer.js";const p=({props:o})=>{const p=l("value",o);if(e(p))return t(l("nullValue",o));if(n(p))return t();const u=r(o),m=r(o,"color");c("backgroundColor",u)||c("borderColor",u);const d="cell cell-badge";let g=i(p,m,d);if(c("icon",o)){const e=l("iconOnly",o,!1);l("iconStyle",o,!1);const n=e?"cell cell-icon-only-badge":"cell cell-badge-icon";g=s(g,l("icon",o),{iconOnly:e,iconClassName:n,className:d,style:u})}return c("tooltip",o)?a(g,l("tooltip",o),`${l("rowId",o)}-${l("columnId",o)}`,!0):g},u=({props:n})=>{let t=l("displayText",n,l("value",n));e(t)&&(t=l("nullValue",n,"NA"));const i={value:t.toString()};if(!1!==t||c("color",n)||Object.assign(i,{color:"rgb(229, 231, 235)"}),c("icon",n)){const o=r(n,"color");Object.assign(i,{iconOnly:!0,iconStyle:o})}return o.createElement(p,{props:Object.assign(n,i)})};export{p as Badge,u as BooleanBadge};
2
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sources":["../../src/CellRenderers/Badge.tsx"],"sourcesContent":[null],"names":["Badge","props","value","_get","_isNull","renderNullValue","_isNA","badgeStyle","buildElementStyle","textStyle","_hasOwnProperty","className","textElement","renderStyledText","iconOnly","iconClassName","renderWithIcon","style","renderWithInfo","BooleanBadge","displayProps","toString","Object","assign","color","iconStyle","React","createElement"],"mappings":"wPAcaA,EAAQ,EAAOC,YACxB,MAAMC,EAAQC,EAAK,QAASF,GAE5B,GAAIG,EAAQF,GACR,OAAOG,EAAgBF,EAAK,YAAaF,IAG7C,GAAIK,EAAMJ,GACN,OAAOG,IAEX,MAAME,EAAaC,EAAkBP,GAC/BQ,EAAYD,EAAkBP,EAAO,SAEvCS,EAAgB,kBAAmBH,IAAeG,EAAgB,cAAeH,GACrF,MAAMI,EAAY,kBAElB,IAAIC,EAAcC,EAAiBX,EAAOO,EAAWE,GAErD,GAAID,EAAgB,OAAQT,GAAQ,CAChC,MAAMa,EAAWX,EAAK,WAAYF,GAAO,GACvBE,EAAK,YAAaF,GAAO,GAC3C,MAAMc,EAAgBD,EAAW,4BAA8B,uBAC/DF,EAAcI,EAAeJ,EAAaT,EAAK,OAAQF,GAAQ,CAC3Da,SAAUA,EACVC,cAAeA,EACfJ,UAAWA,EACXM,MAAOV,IAKf,OADmBG,EAAgB,UAAWT,GAExCiB,EACIN,EACAT,EAAK,UAAWF,GAChB,GAAGE,EAAK,QAASF,MAAUE,EAAK,WAAYF,MAC5C,GAEJW,GAGGO,EAAe,EAAOlB,YAC/B,IAAIC,EAAQC,EAAK,cAAeF,EAAOE,EAAK,QAASF,IAEjDG,EAAQF,KACRA,EAAQC,EAAK,YAAaF,EAAO,OAGrC,MAAMmB,EAAe,CACjBlB,MAAOA,EAAMmB,YASjB,IANc,IAAVnB,GAAoBQ,EAAgB,QAAST,IAC7CqB,OAAOC,OAAOH,EAAc,CACxBI,MAAO,uBAIXd,EAAgB,OAAQT,GAAQ,CAChC,MAAMwB,EAAYjB,EAAkBP,EAAO,SAC3CqB,OAAOC,OAAOH,EAAc,CAAEN,UAAU,EAAMW,UAAWA,IAG7D,OAAOC,EAACC,cAAA3B,EAAM,CAAAC,MAAOqB,OAAOC,OAAOtB,EAAcmB"}
@@ -0,0 +1,2 @@
1
+ import e,{useState as t}from"react";import{_get as r,_isNull as o,_isNA as n,_hasOwnProperty as l,_deepCopy as s}from"@niagads/common";import{renderNullValue as i,buildElementStyle as c,renderStyledText as a,renderWithInfo as p}from"./TextRenderer.js";const u=({props:t})=>{const o=r("items",t);if(o){const t=o.length-1;return o.map(((r,o)=>e.createElement("div",{key:o},e.createElement(m,{props:r}),o<t?" // ":"")))}return i()},m=({props:t})=>{const s=r("value",t);if(o(s))return i(r("nullValue",t));if(n(s))return i();const u=r("truncateTo",t,100);if(s.length>u)return e.createElement(f,{props:t});const m=l("tooltip",t),d=r("inlineTooltip",t,!1),x=c(t),E=a(s,x,m&&d?"info-link":"");return m?p(E,r("tooltip",t),`${r("rowId",t)}-${r("columnId",t)}`,d):E},f=({props:p})=>{const[u,f]=t(!1),d=r("value",p);if(o(d))return i(r("nullValue",p));if(n(d))return i();const x=l("tooltip",p),E=r("truncateTo",p,100),k=`${d.slice(0,E-3)}...`;if(x){const t=s(p);return t.value=k,e.createElement(m,{props:t})}const v=c(p),w=a(u?d:k,v,""),h=u?"Show Less":"Show More";return e.createElement("div",{className:"max-w-[300px] break-words"},w," ",e.createElement("a",{className:"text-xs ui-info-link",onClick:()=>{f(!u)}},h))};export{f as LargeText,m as Text,u as TextList};
2
+ //# sourceMappingURL=BasicText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasicText.js","sources":["../../src/CellRenderers/BasicText.tsx"],"sourcesContent":[null],"names":["TextList","props","items","_get","numItems","length","map","iProps","index","React","createElement","key","Text","renderNullValue","value","_isNull","_isNA","maxLength","LargeText","hasTooltip","_hasOwnProperty","useInfoLink","style","buildElementStyle","textElement","renderStyledText","renderWithInfo","isExpanded","setIsExpanded","useState","truncatedValue","slice","newProps","_deepCopy","action","className","onClick"],"mappings":"4PAMA,MAEaA,EAAW,EAAOC,YAC3B,MAAMC,EAAQC,EAAK,QAASF,GAC5B,GAAIC,EAAO,CACP,MAAME,EAAWF,EAAMG,OAAS,EAChC,OAAOH,EAAMI,KAAI,CAACC,EAAaC,IAC3BC,EAAKC,cAAA,MAAA,CAAAC,IAAKH,GACNC,EAAAC,cAACE,EAAI,CAACX,MAAOM,IACZC,EAAQJ,EAAW,OAAS,MAIzC,OAAOS,KAGED,EAAO,EAAOX,YACvB,MAAMa,EAAQX,EAAK,QAASF,GAE5B,GAAIc,EAAQD,GACR,OAAOD,EAAgBV,EAAK,YAAaF,IAG7C,GAAIe,EAAMF,GACN,OAAOD,IAGX,MAAMI,EAAYd,EAAK,aAAcF,EA3Bd,KA4BvB,GAAIa,EAAMT,OAASY,EACf,OAAOR,gBAACS,EAAS,CAACjB,MAAOA,IAG7B,MAAMkB,EAAaC,EAAgB,UAAWnB,GACxCoB,EAAclB,EAAK,gBAAiBF,GAAO,GAC3CqB,EAAQC,EAAkBtB,GAE1BuB,EAAcC,EAAiBX,EAAOQ,EAAOH,GAAcE,EAAc,YAAc,IAC7F,OAAOF,EACDO,EACIF,EACArB,EAAK,UAAWF,GAChB,GAAGE,EAAK,QAASF,MAAUE,EAAK,WAAYF,KAC5CoB,GAEJG,GAGGN,EAAY,EAAOjB,YAC5B,MAAO0B,EAAYC,GAAiBC,GAAkB,GAMhDf,EAAQX,EAAK,QAASF,GAE5B,GAAIc,EAAQD,GACR,OAAOD,EAAgBV,EAAK,YAAaF,IAG7C,GAAIe,EAAMF,GACN,OAAOD,IAGX,MAAMM,EAAaC,EAAgB,UAAWnB,GACxCgB,EAAYd,EAAK,aAAcF,EAjEd,KAkEjB6B,EAAiB,GAAGhB,EAAMiB,MAAM,EAAGd,EAAY,QAErD,GAAIE,EAAY,CACZ,MAAMa,EAAWC,EAAUhC,GAE3B,OADA+B,EAASlB,MAAQgB,EACVrB,gBAACG,EAAI,CAACX,MAAO+B,IAGxB,MAAMV,EAAQC,EAAkBtB,GAC1BuB,EAAcC,EAAiBE,EAAab,EAAQgB,EAAgBR,EAAO,IAC3EY,EAASP,EAAa,YAAc,YAC1C,OACIlB,EAAAC,cAAA,MAAA,CAAKyB,UAAU,6BACVX,EACA,MACDf,EAAAC,cAAA,IAAA,CAAGyB,UAAU,uBAAuBC,QA/BnB,KACrBR,GAAeD,KA+BNO"}
@@ -0,0 +1,2 @@
1
+ import e from"react";import{renderWithInfo as r}from"./TextRenderer.js";import{Text as t}from"./BasicText.js";import{_get as o,_isNull as l,_hasOwnProperty as n}from"@niagads/common";const a=({props:r})=>{const l=o("items",r);if(l){const r=l.length-1;return l.map(((t,o)=>e.createElement("div",{key:o},e.createElement(c,{props:t}),o<r?" // ":"")))}return e.createElement(t,{props:{value:null}})},c=({props:a})=>{let c=o("url",a);const s=o("value",a);if(l(c)){if(!s.startsWith("http"))return e.createElement(t,{props:a});c=s}const m=((r,t,o=!1)=>o?e.createElement("a",{className:"cell cell-link",href:t,target:"_blank",rel:"noopener noreferrer"},r):e.createElement("a",{className:"cell cell-link",href:t},r))(s||c,c);if(n("tooltip",a)){const e=`${o("rowId",a)}-${o("columnId",a)}`;return r(m,o("tooltip",a),e,!0)}return m};export{c as Link,a as LinkList};
2
+ //# sourceMappingURL=Link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.js","sources":["../../src/CellRenderers/Link.tsx"],"sourcesContent":[null],"names":["LinkList","props","items","_get","numItems","length","map","iProps","index","React","createElement","key","Link","Text","value","url","_isNull","startsWith","linkElement","displayText","newWindow","className","href","target","rel","_renderLink","_hasOwnProperty","anchorId","renderWithInfo"],"mappings":"uLAOA,MAeaA,EAAW,EAAOC,YAC3B,MAAMC,EAAQC,EAAK,QAASF,GAC5B,GAAIC,EAAO,CACP,MAAME,EAAWF,EAAMG,OAAS,EAChC,OAAOH,EAAMI,KAAI,CAACC,EAAaC,IAC3BC,EAAKC,cAAA,MAAA,CAAAC,IAAKH,GACNC,EAAAC,cAACE,EAAI,CAACX,MAAOM,IACZC,EAAQJ,EAAW,OAAS,MAIzC,OAAOK,EAAAC,cAACG,EAAI,CAACZ,MAAO,CAAEa,MAAO,SAGpBF,EAAO,EAAOX,YACvB,IAAIc,EAAcZ,EAAK,MAAOF,GAC9B,MAAMa,EAAgBX,EAAK,QAASF,GAEpC,GAAIe,EAAQD,GAAM,CACd,IAAID,EAAMG,WAAW,QAIjB,OAAOR,gBAACI,EAAI,CAACZ,MAAOA,IAHpBc,EAAMD,EAOd,MAAMI,EA1CU,EAACC,EAAqBJ,EAAaK,GAAqB,IACpEA,EAEIX,qBAAGY,UAAU,iBAAiBC,KAAMP,EAAKQ,OAAO,SAASC,IAAI,uBACxDL,GAKTV,EAAAC,cAAA,IAAA,CAAGW,UAAU,iBAAiBC,KAAMP,GAC/BI,GAgCWM,CAAYX,GAAgBC,EAAKA,GAErD,GADmBW,EAAgB,UAAWzB,GAC9B,CACZ,MAAM0B,EAAW,GAAGxB,EAAK,QAASF,MAAUE,EAAK,WAAYF,KAC7D,OAAO2B,EAAeV,EAAaf,EAAK,UAAWF,GAAQ0B,GAAU,GAGzE,OAAOT"}
@@ -0,0 +1,2 @@
1
+ import e from"react";import{renderNullValue as r}from"./TextRenderer.js";import{Text as t}from"./BasicText.js";import{toExponential as n,toFixedWithoutZeros as o,_get as i,_isNull as s,_isNA as p}from"@niagads/common";const a=(e,r=2)=>{const t=n(e,r);return r&&!t.toString().includes("e")?o(+t,r):t},c=({props:n})=>{let o=i("value",n);if(s(o))return r(i("nullValue",n));if(p(o))return r();if("integer"==i("type",n))return e.createElement(t,{props:Object.assign(n,{value:o})});const c=i("precision",n,null);return o=a(o,c),e.createElement(t,{props:Object.assign(n,{value:o})})};export{c as Float,a as formatFloat};
2
+ //# sourceMappingURL=Number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Number.js","sources":["../../src/CellRenderers/Number.tsx"],"sourcesContent":[null],"names":["formatFloat","value","precision","formattedValue","toExponential","toString","includes","toFixedWithoutZeros","Float","props","_get","_isNull","renderNullValue","_isNA","React","Text","Object","assign"],"mappings":"0NAOa,MAAAA,EAAc,CAACC,EAAeC,EAAoB,KAC3D,MAAMC,EAAsBC,EAAcH,EAAOC,GACjD,OAAIA,IAAcC,EAAeE,WAAWC,SAAS,KAC1CC,GAAqBJ,EAAgBD,GAEzCC,GAGEK,EAAQ,EAAOC,YACxB,IAAIR,EAAQS,EAAK,QAASD,GAE1B,GAAIE,EAAQV,GACR,OAAOW,EAAgBF,EAAK,YAAaD,IAG7C,GAAII,EAAMZ,GACN,OAAOW,IAIX,GAAgB,WADCF,EAAK,OAAQD,GAE1B,OAAOK,gBAACC,EAAI,CAACN,MAAOO,OAAOC,OAAOR,EAAc,CAAER,MAAOA,MAG7D,MAAMC,EAAYQ,EAAK,YAAaD,EAAO,MAG3C,OAFAR,EAAQD,EAAYC,EAAOC,GAEpBY,gBAACC,EAAI,CAACN,MAAOO,OAAOC,OAAOR,EAAc,CAAER,MAAOA"}
@@ -0,0 +1,2 @@
1
+ import e from"react";import{_get as r,_isNull as l,_isNA as a}from"@niagads/common";import{renderNullValue as t}from"./TextRenderer.js";import{formatFloat as s}from"./Number.js";const c=({props:c})=>{const m=r("value",c);if(l(m))return t(r("nullValue",c));if(a(m))return t();const o=s(m,r("precision",c,2)),i=m>1?m:100*m,n=100-i;return e.createElement("div",{className:"flex flex-row"},e.createElement("div",{className:"cell cell-spark-value"},`${o}`),e.createElement("div",{className:"cell cell-spark tr-spark-bar"},e.createElement("div",{className:"cell cell-spark tr-spark-bar-observed",style:{width:i}}),e.createElement("div",{className:"cell cell-spark tr-spark-bar-remainder",style:{width:n}})))};export{c as PercentageBar};
2
+ //# sourceMappingURL=SparkChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SparkChart.js","sources":["../../src/CellRenderers/SparkChart.tsx"],"sourcesContent":[null],"names":["PercentageBar","props","value","_get","_isNull","renderNullValue","_isNA","formattedValue","formatFloat","observed","remainder","React","createElement","className","style","width"],"mappings":"wLAOaA,EAAgB,EAAOC,YAChC,MAAMC,EAAQC,EAAK,QAASF,GAE5B,GAAIG,EAAQF,GACR,OAAOG,EAAgBF,EAAK,YAAaF,IAG7C,GAAIK,EAAMJ,GACN,OAAOG,IAGX,MAAME,EAAiBC,EAAYN,EAAOC,EAAK,YAAaF,EAAO,IAC7DQ,EAAWP,EAAQ,EAAIA,EAAgB,IAARA,EAC/BQ,EAAY,IAAQD,EAE1B,OACIE,EAAAC,cAAA,MAAA,CAAKC,UAAU,iBACXF,EAAAC,cAAA,MAAA,CAAKC,UAAU,yBAAyB,GAAGN,KAC3CI,EAAKC,cAAA,MAAA,CAAAC,UAAU,gCACXF,EAAKC,cAAA,MAAA,CAAAC,UAAU,wCAAwCC,MAAO,CAAEC,MAAON,KACvEE,EAAAC,cAAA,MAAA,CAAKC,UAAU,yCAAyCC,MAAO,CAAEC,MAAOL"}
@@ -0,0 +1,2 @@
1
+ import o,{useMemo as e}from"react";import{_isNA as t,_get as r,_hasOwnProperty as l}from"@niagads/common";import{renderTooltip as n}from"@niagads/ui/client";import{XCircleIcon as i,UserCircleIcon as c,ExclamationTriangleIcon as s,ExclamationCircleIcon as a,CheckCircleIcon as m,CheckIcon as p}from"@heroicons/react/24/solid";import{InformationCircleIcon as f}from"@heroicons/react/24/outline";const d={check:p,solidCheck:m,info:a,warning:s,user:c,infoOutline:f,xMark:i},u=(e,t,r)=>o.createElement("span",{className:`cell ${r}`,style:t},e),y=(e="n/a")=>o.createElement("span",{className:"cell text-gray-200"},t(e)||!e?"n/a":e),b=(e,t,r,l=!1)=>l?n(r,e,t):h(e,o.createElement(f,{className:"info-bubble size-3 ml-1"}),{prefix:!1,iconOnly:!1,tooltip:t,tooltipAnchor:r}),g=o=>{const e=r(o,d);if(null===e)throw Error("Error rendering field: invalid icon `"+o+"`");return e},h=(t,l,i)=>{const c="string"==typeof l?g(l):void 0,s=r("prefix",i,!0),a=r("iconOnly",i,!1),m=r("className",i,""),p=r("iconClassName",i,""),f=r("style",i,{}),d=r("iconStyle",i),u=e((()=>c?o.createElement(c,{className:p,style:d}):l),[]);return s?o.createElement("div",{className:`flex ${m}`,style:f},i.tooltip?n(i.tooltipAnchor,u,i.tooltip):u,!a&&t):o.createElement("div",{className:`flex ${m}`,style:f},!a&&t,i.tooltip?n(i.tooltipAnchor,u,i.tooltip):u)},x=(o,e=null)=>{const t=e?[e]:["color","backgroundColor","borderColor"],n={};for(const e of t)l(e,o)&&Object.assign(n,{[e]:r(e,o)});return l("borderColor",n)&&Object.assign(n,{border:"1px solid"}),n};export{d as ICONS,x as buildElementStyle,g as getIconElement,y as renderNullValue,u as renderStyledText,h as renderWithIcon,b as renderWithInfo};
2
+ //# sourceMappingURL=TextRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextRenderer.js","sources":["../../src/CellRenderers/TextRenderer.tsx"],"sourcesContent":[null],"names":["ICONS","check","CheckIcon","solidCheck","CheckCircleIcon","info","ExclamationCircleIcon","warning","ExclamationTriangleIcon","user","UserCircleIcon","infoOutline","InformationCircleIcon","xMark","XCircleIcon","renderStyledText","value","style","className","React","createElement","renderNullValue","_isNA","renderWithInfo","textElement","infoMessage","anchorId","useInfoLink","renderTooltip","renderWithIcon","prefix","iconOnly","tooltip","tooltipAnchor","getIconElement","key","icon","_get","Error","options","IconComponent","undefined","iconClassName","iconStyle","renderIcon","useMemo","buildElementStyle","props","property","VALID_STYLES","vStyle","_hasOwnProperty","Object","assign","border"],"mappings":"yYAoBa,MAAAA,EAAQ,CACjBC,MAAOC,EACPC,WAAYC,EACZC,KAAMC,EACNC,QAASC,EACTC,KAAMC,EACNC,YAAaC,EACbC,MAAOC,GAKEC,EAAmB,CAACC,EAAYC,EAAYC,IAEjDC,EAAAC,cAAA,OAAA,CAAMF,UAAW,QAAQA,IAAaD,MAAOA,GACxCD,GAKAK,EAAkB,CAACL,EAVN,QAWfG,EAAAC,cAAA,OAAA,CAAMF,UAAU,sBAAsBI,EAAMN,KAAWA,EAXxC,MAWoEA,GAWjFO,EAAiB,CAC1BC,EACAC,EACAC,EACAC,GAAuB,IAEnBA,EACOC,EAAcF,EAAUF,EAAaC,GAGzCI,EAAeL,EAAaL,EAAAC,cAACR,EAAqB,CAACM,UAAU,4BAA8B,CAC9FY,QAAQ,EACRC,UAAU,EACVC,QAASP,EACTQ,cAAeP,IASVQ,EAAkBC,IAC3B,MAAMC,EAAOC,EAAKF,EAAKnC,GACvB,GAAa,OAAToC,EACA,MAAME,MAAM,wCAA0CH,EAAM,KAEhE,OAAOC,GAuBEP,EAAiB,CAC1BL,EACAY,EACAG,KAEA,MAAMC,EAAgC,iBAATJ,EAAoBF,EAAeE,QAAQK,EAClEX,EAASO,EAAK,SAAUE,GAAS,GACjCR,EAAWM,EAAK,WAAYE,GAAS,GACrCrB,EAAYmB,EAAK,YAAaE,EAAS,IACvCG,EAAgBL,EAAK,gBAAiBE,EAAS,IAC/CtB,EAAQoB,EAAK,QAASE,EAAS,CAAA,GAC/BI,EAAYN,EAAK,YAAaE,GAE9BK,EAAaC,GACf,IAAOL,EAAgBrB,gBAACqB,EAAa,CAACtB,UAAWwB,EAAezB,MAAO0B,IAAgBP,GACvF,IAGJ,OAAON,EACHX,EAAKC,cAAA,MAAA,CAAAF,UAAW,QAAQA,IAAaD,MAAOA,GACvCsB,EAAQP,QAAUJ,EAAcW,EAAQN,cAAgBW,EAAYL,EAAQP,SAAWY,GACtFb,GAAYP,GAGlBL,EAAKC,cAAA,MAAA,CAAAF,UAAW,QAAQA,IAAaD,MAAOA,IACtCc,GAAYP,EACbe,EAAQP,QAAUJ,EAAcW,EAAQN,cAAgBW,EAAYL,EAAQP,SAAWY,IAWvFE,EAAoB,CAACC,EAAYC,EAA0B,QACpE,MAAMC,EAAeD,EAAW,CAACA,GAAY,CAAC,QAAS,kBAAmB,eACpE/B,EAAQ,CAAE,EAChB,IAAK,MAAMiC,KAAUD,EACbE,EAAgBD,EAAQH,IACxBK,OAAOC,OAAOpC,EAAO,CAAEiC,CAACA,GAASb,EAAKa,EAAQH,KAQtD,OAJII,EAAgB,cAAelC,IAC/BmC,OAAOC,OAAOpC,EAAO,CAAEqC,OAAQ,cAG5BrC"}
package/dist/Column.js ADDED
@@ -0,0 +1,2 @@
1
+ const d=(d,i)=>i.find((i=>i.id===d));export{d as getColumn};
2
+ //# sourceMappingURL=Column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.js","sources":["../src/Column.tsx"],"sourcesContent":[null],"names":["getColumn","columnId","columns","find","col","id"],"mappings":"MAiCaA,EAAY,CAACC,EAAkBC,IACjCA,EAAQC,MAAMC,GAAQA,EAAIC,KAAOJ"}
@@ -0,0 +1,2 @@
1
+ import e from"react";import{Button as t,Checkbox as a}from"@niagads/ui";import{ViewColumnsIcon as l}from"@heroicons/react/24/solid";const n=({columns:n,onSelect:o})=>e.createElement("div",{className:"relative inline-block text-left dropdown"},e.createElement(t,{variant:"white"},e.createElement(l,{className:"icon-button"}),e.createElement("span",{className:"ml-2 uppercase"},"Columns")),e.createElement("div",{className:"hidden dropdown-menu"},e.createElement("div",{role:"menu",className:"z-50 absolute left-0 w-56 mt-2 origin-top-left bg-white border border-gray-200 divide-y divide-gray-100 rounded-md shadow-lg outline-none"},e.createElement("div",{className:"flex flex-col px-4 py-3"},n.map((t=>{var l;return t.getCanHide()&&e.createElement(a,{name:"show_columns",variant:"accent",key:`toggle_${t.columnDef.id}`,label:null===(l=t.columnDef.header)||void 0===l?void 0:l.toString(),checked:t.getIsVisible(),onChange:t.getToggleVisibilityHandler()})}))))));export{n as ColumnControls};
2
+ //# sourceMappingURL=ColumnControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnControls.js","sources":["../../src/ControlElements/ColumnControls.tsx"],"sourcesContent":[null],"names":["ColumnControls","columns","onSelect","React","createElement","className","Button","variant","ViewColumnsIcon","role","map","col","getCanHide","Checkbox","name","key","columnDef","id","label","_a","header","toString","checked","getIsVisible","onChange","getToggleVisibilityHandler"],"mappings":"oIAiBa,MAAAA,EAAiB,EAAGC,UAASC,cAElCC,EAAAC,cAAA,MAAA,CAAKC,UAAU,4CACXF,EAAAC,cAACE,EAAM,CAACC,QAAQ,SACZJ,EAAAC,cAACI,EAAe,CAACH,UAAW,gBAC5BF,EAAAC,cAAA,OAAA,CAAMC,UAAU,kBAAgB,YAGpCF,EAAKC,cAAA,MAAA,CAAAC,UAAU,wBACXF,EAAAC,cAAA,MAAA,CACIK,KAAK,OACLJ,UAAU,6IAEVF,EAAKC,cAAA,MAAA,CAAAC,UAAU,2BACVJ,EAAQS,KAAKC,UAEV,OACIA,EAAIC,cACAT,EAACC,cAAAS,EACG,CAAAC,KAAK,eACLP,QAAQ,SACRQ,IAAK,UAAUJ,EAAIK,UAAUC,KAC7BC,MAA2B,QAApBC,EAAAR,EAAIK,UAAUI,cAAM,IAAAD,OAAA,EAAAA,EAAEE,WAC7BC,QAASX,EAAIY,eACbC,SAAUb,EAAIc"}
@@ -0,0 +1,2 @@
1
+ import e,{useState as t,useMemo as a}from"react";import n from"lodash.range";import{ChevronLeftIcon as r,ChevronRightIcon as i}from"@heroicons/react/24/solid";import{Select as l,Button as o}from"@niagads/ui";const s=({table:s})=>{const[g,c]=t(s.getState().pagination.pageSize),m=s.getPrePaginationRowModel().rows.length,u=a((()=>(e=>{const t=10*Math.ceil(e/10);if(t>=500)return[10,20,30,40,50,100,500];if(t>=100)return[10,20,30,40,50,100];if(t>=50)return[10,20,30,40,50,e];if(t>=10&&e>=10){const a=n(10,t+10,10);return a.push(e),a}return[e]})(m)),[m]),d=s.getState().pagination.pageIndex*g+1;let p=d+g-1;p>m&&(p=m);return e.createElement(e.Fragment,null,e.createElement("div",{className:"flex flex-row gap-4","aria-label":"pagination"},e.createElement(l,{defaultValue:g.toString(),fields:u,onChange:e=>{var t;t=Number(e.target.value),s.setPageSize(t),c(t)},label:"Results per page",id:"pages",inline:!0,variant:"plain"}),e.createElement("div",{className:"self-center text-sm text-gray-900 px-2"},d," - ",p," of ",m),e.createElement(o,{variant:"white",onClick:()=>s.previousPage(),disabled:!s.getCanPreviousPage()},e.createElement(r,{className:"icon-button stroke-1 "+(s.getCanPreviousPage()?"stroke-black":"icon-disabled")})),e.createElement(o,{variant:"white",onClick:()=>s.nextPage(),disabled:!s.getCanNextPage()},e.createElement(i,{className:"icon-button stroke-1 "+(s.getCanNextPage()?"stroke-black":"icon-disabled")}))))};export{s as PaginationControls};
2
+ //# sourceMappingURL=PaginationControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginationControls.js","sources":["../../src/ControlElements/PaginationControls.tsx"],"sourcesContent":[null],"names":["PaginationControls","table","pageSize","setPageSize","useState","getState","pagination","nRows","getPrePaginationRowModel","rows","length","pageSizeOptions","useMemo","nearestTenth","Math","ceil","options","range","push","__generatePageSizeOptions","minDisplayedRow","pageIndex","maxDisplayedRow","React","createElement","Fragment","className","Select","defaultValue","toString","fields","onChange","e","pSize","Number","target","value","label","id","inline","variant","Button","onClick","previousPage","disabled","getCanPreviousPage","ChevronLeftIcon","nextPage","getCanNextPage","ChevronRightIcon"],"mappings":"gNAYA,MAgBaA,EAAqB,EAAGC,YACjC,MAAOC,EAAUC,GAAeC,EAAiBH,EAAMI,WAAWC,WAAWJ,UACvEK,EAAQN,EAAMO,2BAA2BC,KAAKC,OAC9CC,EAAkBC,GAAQ,IAnBF,CAACL,IAC/B,MAAMM,EAAuC,GAAxBC,KAAKC,KAAKR,EAAQ,IAEvC,GAAIM,GAAgB,IAAK,MAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KACrD,GAAIA,GAAgB,IAAK,MAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,KACrD,GAAIA,GAAgB,GACrB,MAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAIN,GAC3B,GAAIM,GAAgB,IAAMN,GAAS,GAAI,CACxC,MAAMS,EAAUC,EAAM,GAAIJ,EAAe,GAAI,IAE7C,OADAG,EAAQE,KAAKX,GACNS,EAGX,MAAO,CAACT,IAM8BY,CAA0BZ,IAAQ,CAACA,IAEnEa,EAAkBnB,EAAMI,WAAWC,WAAWe,UAAYnB,EAAW,EAC3E,IAAIoB,EAAkBF,EAAkBlB,EAAW,EAC/CoB,EAAkBf,IAAOe,EAAkBf,GAO/C,OACIgB,EAAAC,cAAAD,EAAAE,SAAA,KACIF,EAAAC,cAAA,MAAA,CAAKE,UAAU,sBAAqB,aAAY,cAC5CH,EAAAC,cAACG,EACG,CAAAC,aAAc1B,EAAS2B,WACvBC,OAAQnB,EACRoB,SAAWC,IAXF,IAACC,IAYWC,OAAOF,EAAEG,OAAOC,OAXjDnC,EAAME,YAAY8B,GAClB9B,EAAY8B,IAYAI,MAAM,mBACNC,GAAG,QACHC,QAAM,EACNC,QAAQ,UAEZjB,EAAKC,cAAA,MAAA,CAAAE,UAAU,0CACVN,QAAoBE,SAAqBf,GAE9CgB,EAACC,cAAAiB,GAAOD,QAAQ,QAAQE,QAAS,IAAMzC,EAAM0C,eAAgBC,UAAW3C,EAAM4C,sBAC1EtB,EAACC,cAAAsB,GACGpB,UAAW,yBAAyBzB,EAAM4C,qBAAyC,eAAlB,oBAGzEtB,EAACC,cAAAiB,GAAOD,QAAQ,QAAQE,QAAS,IAAMzC,EAAM8C,WAAYH,UAAW3C,EAAM+C,kBACtEzB,EAACC,cAAAyB,EACG,CAAAvB,UAAW,yBAAyBzB,EAAM+C,iBAAqC,eAAlB"}
@@ -0,0 +1,2 @@
1
+ import e,{useState as t,useId as r,useEffect as a}from"react";import o from"export-from-json";import{ArrowDownTrayIcon as l}from"@heroicons/react/24/solid";import{Button as i,Checkbox as n,Select as m}from"@niagads/ui";const s=Object.keys(o.types).filter((e=>!["css","html"].includes(e))),d=(e,t,r,a)=>{const l=""!==e.getState().globalFilter,i=e.getVisibleFlatColumns().filter((e=>"select-col"!=e.id)).map((e=>e.id)),n=(l?r?e.getSortedRowModel().rows:e.getPreFilteredRowModel().rows:e.getSortedRowModel().rows).map((e=>Object.fromEntries(i.map((t=>[t,e.getValue(t)])))));o({data:n,fileName:t,withBOM:!0,extension:a,delimiter:"txt"==a?"\t":",",exportType:"txt"==a?"csv":a})},c=({isFiltered:o,onSubmit:d})=>{const[c,p]=t(o),u=r();return a((()=>{p(o)}),[o]),e.createElement("div",{className:"relative inline-block text-left dropdown"},e.createElement(i,{variant:"white"},e.createElement(l,{className:"icon-button"}),e.createElement("span",{className:"ml-2 uppercase"},"Export")),e.createElement("div",{className:"hidden dropdown-menu"},e.createElement("div",{className:"z-50 absolute right-0 w-56 mt-2 origin-top-right bg-white border border-gray-200 divide-y divide-gray-100 rounded-md shadow-lg outline-none","aria-labelledby":`${u}-headlessui-menu-button}`,id:`${u}-headlessui-menu-items`,role:"menu"},e.createElement("div",{className:"px-4 py-3"},e.createElement("form",{id:u,onSubmit:e=>{e.preventDefault();const t=new FormData(e.currentTarget);d(Object.fromEntries(t))}},o&&e.createElement(n,{name:"filtered_only",variant:"accent",value:c.toString(),label:"Filtered Rows Only",checked:c,onChange:()=>p(!c)}),e.createElement(m,{id:`${u}_select_export_format"`,name:"format",fields:s,label:"Export table data as"}),e.createElement("div",{className:"mt-2 flex justify-center"},e.createElement(i,{size:"md"},"Export")))))))};export{c as TableExportControls,d as exportTable};
2
+ //# sourceMappingURL=TableExportControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableExportControls.js","sources":["../../src/ControlElements/TableExportControls.tsx"],"sourcesContent":[null],"names":["EXPORT_FILE_FORMATS","Object","keys","exportFromJSON","types","filter","f","includes","exportTable","table","tableId","filteredRowsOnly","format","isFiltered","getState","globalFilter","columnIds","getVisibleFlatColumns","col","id","map","exportData","getSortedRowModel","rows","getPreFilteredRowModel","r","fromEntries","colId","getValue","data","fileName","withBOM","extension","delimiter","exportType","TableExportControls","onSubmit","filteredOnly","setFilteredOnly","useState","formId","useId","useEffect","React","createElement","className","Button","variant","ArrowDownTrayIcon","role","event","preventDefault","formData","FormData","currentTarget","Checkbox","name","value","toString","label","checked","onChange","Select","fields","size"],"mappings":"2NAOA,MAAMA,EAAsBC,OAAOC,KAAKC,EAAeC,OAAOC,QAAQC,IAAO,CAAC,MAAO,QAAQC,SAASD,KAGzFE,EAAc,CAACC,EAAwBC,EAAiBC,EAA2BC,KAC5F,MAAMC,EAEF,KADAJ,EAAMK,WAAWC,aAEfC,EAAsBP,EACvBQ,wBACAZ,QAAQa,GAAkB,cAAVA,EAAIC,KACpBC,KAAKF,GAAQA,EAAIC,KAchBE,GAbOR,EACPF,EACIF,EAAMa,oBAAoBC,KAC1Bd,EAAMe,yBAAyBD,KACnCd,EAAMa,oBAAoBC,MASHH,KAAKK,GAAMxB,OAAOyB,YAAYV,EAAUI,KAAKO,GAAU,CAACA,EAAOF,EAAEG,SAASD,SAEvGxB,EAAe,CACX0B,KAAMR,EACNS,SAAUpB,EACVqB,SAAS,EACTC,UAAWpB,EACXqB,UAAqB,OAAVrB,EAAkB,KAAO,IACpCsB,WAAsB,OAAVtB,EAAkB,MAAQA,KAYjCuB,EAAsB,EAAGtB,aAAYuB,eAC9C,MAAOC,EAAcC,GAAmBC,EAAkB1B,GACpD2B,EAASC,IAcf,OAJAC,GAAU,KACNJ,EAAgBzB,KACjB,CAACA,IAGA8B,EAAAC,cAAA,MAAA,CAAKC,UAAU,4CACXF,EAAAC,cAACE,EAAM,CAACC,QAAQ,SACZJ,EAAAC,cAACI,EAAiB,CAACH,UAAU,gBAC7BF,EAAAC,cAAA,OAAA,CAAMC,UAAU,kBAAgB,WAGpCF,EAAKC,cAAA,MAAA,CAAAC,UAAU,wBACXF,EAAAC,cAAA,MAAA,CACIC,UAAU,8IACO,kBAAA,GAAGL,4BACpBrB,GAAI,GAAGqB,0BACPS,KAAK,QAELN,EAAKC,cAAA,MAAA,CAAAC,UAAU,aACXF,EAAAC,cAAA,OAAA,CAAMzB,GAAIqB,EAAQJ,SAzBhBc,IAClBA,EAAMC,iBACN,MAAMC,EAAW,IAAIC,SAASH,EAAMI,eACpClB,EAASnC,OAAOyB,YAAY0B,MAuBPvC,GACG8B,EAAAC,cAACW,EAAQ,CACLC,KAAK,gBACLT,QAAQ,SACRU,MAAOpB,EAAaqB,WACpBC,MAAM,qBACNC,QAASvB,EACTwB,SAAU,IAAMvB,GAAiBD,KAIzCM,EAAAC,cAACkB,EACG,CAAA3C,GAAI,GAAGqB,0BACPgB,KAAK,SACLO,OAAQ/D,EACR2D,MAAM,yBAGVhB,EAAKC,cAAA,MAAA,CAAAC,UAAU,4BACXF,EAAAC,cAACE,EAAM,CAACkB,KAAK,MAAI"}
@@ -0,0 +1,2 @@
1
+ import e,{useMemo as t,useCallback as l}from"react";import{TextInput as o}from"@niagads/ui";import{exportTable as r,TableExportControls as a}from"./TableExportControls.js";import{_get as m}from"@niagads/common";import{ColumnControls as n}from"./ColumnControls.js";const i=({table:i,tableId:s,enableExport:c})=>{const g=t((()=>i.getAllColumns().map((e=>!e.getCanHide())).some((e=>!1===e))),[]),f=""!==i.getState().globalFilter,p=l((e=>{r(i,s,m("filtered_only",e,!1),e.format)}),[]);return e.createElement("div",{className:"relative flex justify-end gap-2 m-2"},e.createElement(o,{value:i.getState().globalFilter,onChange:e=>i.setGlobalFilter(e)}),g&&e.createElement(n,{columns:i.getAllLeafColumns(),onSelect:()=>console.log("selected")}),c&&e.createElement(a,{onSubmit:p,isFiltered:f}))};export{i as TableToolbar};
2
+ //# sourceMappingURL=TableToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableToolbar.js","sources":["../../src/ControlElements/TableToolbar.tsx"],"sourcesContent":[null],"names":["TableToolbar","table","tableId","enableExport","canToggleColumns","useMemo","getAllColumns","map","col","getCanHide","some","x","tableIsFiltered","getState","globalFilter","handleTableExport","useCallback","options","exportTable","_get","format","React","createElement","className","TextInput","value","onChange","val","setGlobalFilter","ColumnControls","columns","getAllLeafColumns","onSelect","console","log","TableExportControls","onSubmit","isFiltered"],"mappings":"wQAiBA,MAKaA,EAAe,EAAGC,QAAOC,UAASC,mBAC3C,MAAMC,EAAmBC,GAAQ,IAAyBJ,EAAMK,gBALhCC,KAAKC,IAASA,EAAIC,eAC3BC,MAAMC,IAAY,IAANA,KAI+C,IAC5EC,EAEF,KADAX,EAAMY,WAAWC,aAGfC,EAAoBC,GAAaC,IAEnCC,EAAYjB,EAAOC,EAASiB,EAAK,gBAAiBF,GAAS,GAAQA,EAAQG,UAC5E,IAEH,OACIC,EAAAC,cAAA,MAAA,CAAKC,UAAU,uCACXF,EAACC,cAAAE,EAAU,CAAAC,MAAOxB,EAAMY,WAAWC,aAAcY,SAAWC,GAAQ1B,EAAM2B,gBAAgBD,KACzFvB,GACGiB,EAAAC,cAACO,EAAc,CAACC,QAAS7B,EAAM8B,oBAAqBC,SAAU,IAAMC,QAAQC,IAAI,cAEnF/B,GAAgBkB,EAAAC,cAACa,EAAmB,CAACC,SAAUrB,EAAmBsB,WAAYzB"}
package/dist/Filter.js ADDED
@@ -0,0 +1,2 @@
1
+ import e,{useMemo as l}from"react";import{TextInput as t}from"@niagads/ui";const a=({column:a})=>{var r;const n=a.getFilterValue(),o=null===(r=a.columnDef.meta)||void 0===r?void 0:r.type,u=l((()=>Array.from(a.getFacetedUniqueValues().keys()).sort()),[a.getFacetedUniqueValues()]);return l((()=>u[0]),[u]),l((()=>u.at(-1)),[u]),console.log(u),"float"===o||"p_value"===o||u.length<11?e.createElement("div",null):e.createElement("div",null,e.createElement(t,{onChange:e=>a.setFilterValue(e),placeholder:"Search...",value:null!=n?n:""}))};export{a as Filter};
2
+ //# sourceMappingURL=Filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.js","sources":["../src/Filter.tsx"],"sourcesContent":[null],"names":["Filter","column","columnFilterValue","getFilterValue","colType","_a","columnDef","meta","type","sortedUniqueValues","useMemo","Array","from","getFacetedUniqueValues","keys","sort","at","console","log","length","React","createElement","TextInput","onChange","value","setFilterValue","placeholder"],"mappings":"iFASaA,EAAS,EAAGC,mBACrB,MAAMC,EAAoBD,EAAOE,iBAC3BC,EAAiC,QAAvBC,EAAAJ,EAAOK,UAAUC,YAAM,IAAAF,OAAA,EAAAA,EAAAG,KAEjCC,EAAqBC,GAAQ,IACxBC,MAAMC,KAAKX,EAAOY,yBAAyBC,QAAQC,QAC3D,CAACd,EAAOY,2BAOX,OALiBH,GAAQ,IAAMD,EAAmB,IAAI,CAACA,IACtCC,GAAQ,IAAMD,EAAmBO,IAAG,IAAK,CAACP,IAE3DQ,QAAQC,IAAIT,GAEO,UAAZL,GAaS,YAAZA,GAaAK,EAAmBU,OAAS,GAxB5BC,EAAAC,cAAA,MAAA,MA8CAD,EAAAC,cAAA,MAAA,KACID,EAAAC,cAACC,EAAS,CACNC,SAAWC,GAAUvB,EAAOwB,eAAeD,GAC3CE,YAAa,YACbF,MAAQtB,QAAAA,EAAqB"}
package/dist/Table.js ADDED
@@ -0,0 +1,2 @@
1
+ import e,{useState as t,useRef as l,useMemo as o,useLayoutEffect as n,useEffect as r}from"react";import{createColumnHelper as a,getSortedRowModel as i,getFacetedUniqueValues as c,getFacetedRowModel as d,getFilteredRowModel as s,getPaginationRowModel as m,getCoreRowModel as u,useReactTable as g,flexRender as b}from"@tanstack/react-table";import{TrashIcon as v}from"@heroicons/react/24/outline";import{_get as w,toTitleCase as f}from"@niagads/common";import{validateCellType as h,getCellValue as p,renderCell as E,resolveCell as S}from"./Cell.js";import{getColumn as C}from"./Column.js";import{TableColumnHeader as y}from"./TableColumnHeader.js";import{CustomSortingFunctions as F}from"./TableSortingFunctions.js";import{PaginationControls as R}from"./ControlElements/PaginationControls.js";import{TableToolbar as k}from"./ControlElements/TableToolbar.js";import{Checkbox as j,RadioButton as x,Button as N}from"@niagads/ui";import{Tooltip as I}from"@niagads/ui/client";const M=e=>"boolean"===e.type?"boolean":"float"===e.type?"scientific":"alphanumeric",T=(e,t,l)=>{try{return S(e,t,l)}catch(e){throw Error("Validation Error parsing field value for row "+l+" column `"+t.id+"`.\n"+e.message)}},$=({id:S,columns:$,data:H,options:V})=>{var O,G,q;const[z,L]=t([]),[P,A]=t(""),[D,U]=t([]),[_,B]=t((e=>{const t={};return e&&e.forEach((e=>{t[e]=!0})),t})(null===(O=null==V?void 0:V.rowSelect)||void 0===O?void 0:O.selectedValues)),[J,K]=t(((e,t)=>{const l={};return e&&t.forEach((t=>{l[t.id]=e.includes(t.id)})),l})(null==V?void 0:V.defaultColumns,$)),Q=l(!0),W=!!(null==V?void 0:V.rowSelect),X=!!(null==V?void 0:V.disableColumnFilters),Y=o((()=>{var t,l;const o=a(),n=[];if(W){const o=!!(null===(t=null==V?void 0:V.rowSelect)||void 0===t?void 0:t.enableMultiRowSelect);n.push({id:"select-col",header:({table:t})=>{var l,n;return o?e.createElement("div",{className:"inline-flex"},e.createElement("div",{className:"group relative inline-block bottom-[2px]"},e.createElement(I,{anchorId:`${S}-select-col-button}`,content:"Reset selected rows"},e.createElement(N,{size:"sm",variant:"primary",disabled:0===Object.keys(t.getState().rowSelection).length,onClick:()=>{t.resetRowSelection(!0)}},e.createElement(v,{className:"icon-button"})))),e.createElement("span",{className:"ml-4"},null===(l=null==V?void 0:V.rowSelect)||void 0===l?void 0:l.header)):null===(n=null==V?void 0:V.rowSelect)||void 0===n?void 0:n.header},enableHiding:!1,enableSorting:!0,meta:{description:null===(l=null==V?void 0:V.rowSelect)||void 0===l?void 0:l.description},cell:({row:t})=>o?e.createElement(j,{variant:"default",name:`checkbox_r${t.id}`,checked:t.getIsSelected(),disabled:!t.getCanSelect(),onChange:t.getToggleSelectedHandler(),alignCenter:!0}):e.createElement(x,{variant:"default",name:`radiobox r${t.id}`,checked:t.getIsSelected(),disabled:!t.getCanSelect(),onChange:t.getToggleSelectedHandler(),alignCenter:!0})})}return $.forEach((e=>{try{e.type=h(e.type)}catch(t){throw Error("Error processing column definition for `"+e.id+"`.\n"+t.message)}n.push(o.accessor((t=>p(t[e.id])),{id:e.id,header:w("header",e,f(e.id)),enableColumnFilter:w("canFilter",e,!0)&&!X,enableGlobalFilter:!e.disableGlobalFilter,enableSorting:!e.disableSorting,sortingFn:M(e),enableHiding:!w("required",e,!1),meta:{description:w("description",e),type:w("type",e)},cell:t=>E(t.cell.row.original[e.id])}))})),n}),[]),Z=o((()=>{const e=[],t=$.length;try{H.forEach(((l,o)=>{const n=Object.keys(l).length;if(n>t)throw new Error(`Too many values detected in row ${o}: expected ${t}; found ${n}`);if(n<t)throw new Error(`Missing columns in row ${o}: each row must provide a value for every column`);const r={};for(const[e,t]of Object.entries(l)){const l=C(e,$);if(void 0===l)throw new Error("Invalid column name found in table data definition `"+e+"`");r[e]=T(t,l,o)}e.push(r)}))}catch(e){throw Error(e.message)}return e}),[$]),ee={data:Z,columns:Y,getCoreRowModel:u(),getPaginationRowModel:m(),getFilteredRowModel:s(),getFacetedRowModel:d(),getFacetedUniqueValues:c(),globalFilterFn:"includesString",onGlobalFilterChange:A,state:{sorting:z,rowSelection:_,globalFilter:P,columnFilters:D,columnVisibility:J},onSortingChange:L,onColumnVisibilityChange:K,onColumnFiltersChange:U,getSortedRowModel:i(),sortingFns:F,enableColumnResizing:!0};if(W){const e=!!(null===(G=null==V?void 0:V.rowSelect)||void 0===G?void 0:G.enableMultiRowSelect);Object.assign(ee,{enableMultiRowSelection:e,onRowSelectionChange:B});const t=null===(q=null==V?void 0:V.rowSelect)||void 0===q?void 0:q.rowId;if(t){const e=((e,t)=>{const l=e.map((e=>p(e[t])));return Array.from(new Set(l)).length==e.length})(Z,t);if(!e)throw Error(`The field ${t} does not contain a unique value for each row. It cannot be used as the 'rowId' for the rowSelect callback.`);Object.assign(ee,{getRowId:e=>p(e[t])})}}const te=g(ee);return n((()=>{(null==V?void 0:V.onTableLoad)&&te&&V.onTableLoad(te)}),[te]),r((()=>{var e;Q.current?Q.current=!1:null===(e=null==V?void 0:V.rowSelect)||void 0===e||e.onRowSelect(_)}),[_]),te?e.createElement("div",{className:"table-container"},e.createElement("div",{className:"flex justify-between items-center"},e.createElement(k,{table:te,tableId:S,enableExport:!(null==V?void 0:V.disableExport)}),e.createElement(R,{table:te})),e.createElement("div",{className:"overflow-auto"},e.createElement("table",{className:"table-layout table-border table-text"},(le=te.getHeaderGroups(),oe=S,e.createElement("thead",null,le.map((t=>e.createElement("tr",{key:t.id},t.headers.map((t=>e.createElement(y,{key:t.id,header:t,tableId:oe})))))))),e.createElement("tbody",null,te.getRowModel().rows.map((t=>e.createElement("tr",{key:t.id,className:"table-dtr"},t.getVisibleCells().map((l=>e.createElement("td",{className:"table-td",key:`${t.id}-${l.id}`},b(l.column.columnDef.cell,l.getContext()))))))))))):e.createElement("div",null,"No data");var le,oe};export{$ as default};
2
+ //# sourceMappingURL=Table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.js","sources":["../src/Table.tsx"],"sourcesContent":[null],"names":["__resolveSortingFn","col","type","__resolveCell","userCell","column","rowId","resolveCell","e","Error","id","message","Table","columns","data","options","sorting","setSorting","useState","globalFilter","setGlobalFilter","columnFilters","setColumnFilters","rowSelection","setRowSelection","columnIds","rSelection","forEach","colId","__setInitialRowSelection","_a","rowSelect","selectedValues","columnVisibility","setColumnVisibility","defaultColumns","visibility","includes","__setInitialColumnVisibility","initialRender","useRef","enableRowSelect","disableColumnFilters","resolvedColumns","useMemo","columnHelper","createColumnHelper","columnDefs","multiSelect","enableMultiRowSelect","push","header","table","React","createElement","className","Tooltip","anchorId","content","Button","size","variant","disabled","Object","keys","getState","length","onClick","resetRowSelection","TrashIcon","_b","enableHiding","enableSorting","meta","description","cell","row","Checkbox","name","checked","getIsSelected","getCanSelect","onChange","getToggleSelectedHandler","alignCenter","RadioButton","validateCellType","accessor","getCellValue","_get","toTitleCase","enableColumnFilter","enableGlobalFilter","disableGlobalFilter","disableSorting","sortingFn","props","renderCell","original","resolvedData","tableData","enFields","index","onFields","tableRow","columnId","value","entries","currentColumn","getColumn","undefined","reactTableOptions","getCoreRowModel","getPaginationRowModel","getFilteredRowModel","getFacetedRowModel","getFacetedUniqueValues","globalFilterFn","onGlobalFilterChange","state","onSortingChange","onColumnVisibilityChange","onColumnFiltersChange","getSortedRowModel","sortingFns","CustomSortingFunctions","enableColumnResizing","assign","enableMultiRowSelection","onRowSelectionChange","rowIdColumn","_c","isValidRowId","values","map","Array","from","Set","__isValidRowId","getRowId","useReactTable","useLayoutEffect","onTableLoad","useEffect","current","onRowSelect","TableToolbar","tableId","enableExport","disableExport","PaginationControls","hGroups","getHeaderGroups","headerGroup","key","headers","TableColumnHeader","getRowModel","rows","getVisibleCells","flexRender","columnDef","getContext"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import e,{useState as t}from"react";import{flexRender as o}from"@tanstack/react-table";import{QuestionMarkCircleIcon as n,ArrowDownIcon as l,ArrowUpIcon as r,ArrowsUpDownIcon as a}from"@heroicons/react/24/solid";import{FunnelIcon as m}from"@heroicons/react/24/outline";import{Button as c}from"@niagads/ui";import{renderTooltip as i}from"@niagads/ui/client";import{_get as s}from"@niagads/common";import{Filter as u}from"./Filter.js";const d={sort:a,asc:r,desc:l},p=({header:l,tableId:r})=>{const a=l.column.getIsSorted(),p=d[!1!==a?a:"sort"],f=s("description",l.column.columnDef.meta),[g,E]=t(!1);return e.createElement("th",{key:l.id,scope:"col",className:"column-header column-header-text"},e.createElement("div",{className:"inline-flex"},e.createElement("div",{className:"inline-flex py-1 "+(l.column.getCanSort()?"cursor-pointer":"cursor-default"),onClick:l.column.getToggleSortingHandler()},e.createElement("span",null,o(l.column.columnDef.header,l.getContext())),f&&i(`${r}-${l.column.id}-info`,e.createElement(n,{className:"info-bubble ml-1"}),f),l.column.getCanSort()?p?e.createElement(p,{className:(a?"visible":"invisible")+" column-header-icon"}):e.createElement("div",{className:"h-[19px] w-[20px]"}):null),l.column.getCanFilter()&&e.createElement("div",{className:"ml-5"},e.createElement(c,{variant:"primary",size:"sm",onClick:()=>E(!g)},e.createElement(m,{className:"icon-button stroke-white"})))),g&&e.createElement(u,{column:l.column}))};export{p as TableColumnHeader};
2
+ //# sourceMappingURL=TableColumnHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumnHeader.js","sources":["../src/TableColumnHeader.tsx"],"sourcesContent":[null],"names":["__ICONS","sort","ArrowsUpDownIcon","asc","ArrowUpIcon","desc","ArrowDownIcon","TableColumnHeader","header","tableId","isSorted","column","getIsSorted","SortIcon","description","_get","columnDef","meta","filterOpen","setFilterOpen","useState","React","createElement","key","id","scope","className","getCanSort","onClick","getToggleSortingHandler","flexRender","getContext","renderTooltip","QuestionMarkCircleIcon","getCanFilter","Button","variant","size","FunnelIcon","Filter"],"mappings":"ibAkBA,MAAMA,EAAU,CACZC,KAAMC,EACNC,IAAKC,EACLC,KAAMC,GAGGC,EAAoB,EAAGC,SAAQC,cACxC,MAAMC,EAAWF,EAAOG,OAAOC,cACzBC,EAAWb,GAAqB,IAAbU,EAAqBA,EAAW,QACnDI,EAAcC,EAAK,cAAeP,EAAOG,OAAOK,UAAUC,OACzDC,EAAYC,GAAiBC,GAAS,GAE7C,OACIC,EAAAC,cAAA,KAAA,CAAIC,IAAKf,EAAOgB,GAAIC,MAAM,MAAMC,UAAU,oCACtCL,EAAKC,cAAA,MAAA,CAAAI,UAAU,eACXL,EACIC,cAAA,MAAA,CAAAI,UAAW,qBAAoBlB,EAAOG,OAAOgB,aAAe,iBAAmB,kBAC/EC,QAASpB,EAAOG,OAAOkB,2BAEvBR,EAAAC,cAAA,OAAA,KAAOQ,EAAWtB,EAAOG,OAAOK,UAAUR,OAAQA,EAAOuB,eACxDjB,GACGkB,EACI,GAAGvB,KAAWD,EAAOG,OAAOa,UAC5BH,EAACC,cAAAW,GAAuBP,UAAU,qBAClCZ,GAEPN,EAAOG,OAAOgB,aACXd,EACIQ,EAACC,cAAAT,GAASa,WAAchB,EAAW,UAAY,aAA1B,wBAErBW,uBAAKK,UAAU,sBAEnB,MAGPlB,EAAOG,OAAOuB,gBACXb,EAAAC,cAAA,MAAA,CAAKI,UAAU,QACXL,EAAAC,cAACa,EAAO,CAAAC,QAAQ,UAAUC,KAAK,KAAKT,QAAS,IAAMT,GAAeD,IAC9DG,EAACC,cAAAgB,GAAWZ,UAAU,gCAKrCR,GAAcG,EAAAC,cAACiB,EAAM,CAAC5B,OAAQH,EAAOG"}
@@ -0,0 +1,2 @@
1
+ const e=(e,t)=>{switch(!0){case"NA"==e&&"NA"==t:return 0;case"NA"!=e&&"NA"==t:return-1;case"NA"==e&&"NA"!=t:return 1;default:return null}},t=(t,l)=>{const n=e(t,l);return null!=n?n:t===l?0:t>l?1:-1},l={boolean:(e,l,n)=>t(e.getValue(n),l.getValue(n)),scientific:(t,l,n)=>{let u=t.getValue(n),r=l.getValue(n);const s=e(`${u}`,`${r}`);return null!=s?s:(u=null==u?-1/0:u,r=null==r?-1/0:r,u=/\d(\.\d+)?e-\d+/.test(u)?+u:u,r=/\d(\.\d+)?e-\d+/.test(r)?+r:r,u>r?1:u<r?-1:0)}};export{l as CustomSortingFunctions};
2
+ //# sourceMappingURL=TableSortingFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSortingFunctions.js","sources":["../src/TableSortingFunctions.tsx"],"sourcesContent":[null],"names":["_resolveNAs","aStr","bStr","_compareBasic","a","b","naComparison","CustomSortingFunctions","boolean","rowA","rowB","columnId","getValue","scientific","Infinity","test"],"mappings":"AAIA,MA2BMA,EAAc,CAACC,EAAcC,KAC/B,QAAQ,GACJ,IAAa,MAARD,GAAwB,MAARC,EACjB,OAAO,EACX,IAAa,MAARD,GAAwB,MAARC,EACjB,OAAS,EACb,IAAa,MAARD,GAAwB,MAARC,EACjB,OAAO,EACX,QACI,OAAO,OAIbC,EAAgB,CAACC,EAAQC,KAC3B,MAAMC,EAAeN,EAAYI,EAAGC,GACpC,OAAoB,MAAhBC,EACOA,EAEJF,IAAMC,EAAI,EAAID,EAAIC,EAAI,GAAM,GAG1BE,EAAyB,CAClCC,QAjDqC,CAACC,EAAqBC,EAAqBC,IACzER,EAAcM,EAAKG,SAASD,GAAWD,EAAKE,SAASD,IAiD5DE,WA9CgD,CAACJ,EAAqBC,EAAqBC,KAC3F,IAAIP,EAAIK,EAAKG,SAASD,GAClBN,EAAIK,EAAKE,SAASD,GAEtB,MAAML,EAAeN,EAAY,GAAGI,IAAK,GAAGC,KAC5C,OAAoB,MAAhBC,EACOA,GAGXF,EAAIA,SAAiCU,IAAWV,EAChDC,EAAIA,SAAiCS,IAAWT,EAIhDD,EAAI,kBAAkBW,KAAKX,IAAgBA,EAAIA,EAC/CC,EAAI,kBAAkBU,KAAKV,IAAgBA,EAAIA,EAE3CD,EAAIC,EAAU,EACdD,EAAIC,GAAY,EAEb"}
@@ -0,0 +1,200 @@
1
+ import * as react from 'react';
2
+ import react__default, { ReactNode } from 'react';
3
+ import { BasicType, NAString, TypeMapper, Expand, Modify, Color } from '@niagads/common';
4
+ import { RowData, RowSelectionState } from '@tanstack/react-table';
5
+
6
+ interface ColumnValueFormat {
7
+ nullValue?: BasicType | null;
8
+ naValue?: NAString;
9
+ trueValue?: BasicType;
10
+ precision?: number;
11
+ }
12
+ interface GenericColumn {
13
+ header?: string;
14
+ id: string;
15
+ description?: string;
16
+ type?: CellType;
17
+ canFilter?: boolean;
18
+ disableGlobalFilter?: boolean;
19
+ disableSorting?: boolean;
20
+ required?: boolean;
21
+ format?: ColumnValueFormat;
22
+ }
23
+
24
+ interface TextRenderer<T> {
25
+ props: T;
26
+ }
27
+ declare const ICONS: {
28
+ check: react.ForwardRefExoticComponent<Omit<react.SVGProps<SVGSVGElement>, "ref"> & {
29
+ title?: string;
30
+ titleId?: string;
31
+ } & react.RefAttributes<SVGSVGElement>>;
32
+ solidCheck: react.ForwardRefExoticComponent<Omit<react.SVGProps<SVGSVGElement>, "ref"> & {
33
+ title?: string;
34
+ titleId?: string;
35
+ } & react.RefAttributes<SVGSVGElement>>;
36
+ info: react.ForwardRefExoticComponent<Omit<react.SVGProps<SVGSVGElement>, "ref"> & {
37
+ title?: string;
38
+ titleId?: string;
39
+ } & react.RefAttributes<SVGSVGElement>>;
40
+ warning: react.ForwardRefExoticComponent<Omit<react.SVGProps<SVGSVGElement>, "ref"> & {
41
+ title?: string;
42
+ titleId?: string;
43
+ } & react.RefAttributes<SVGSVGElement>>;
44
+ user: react.ForwardRefExoticComponent<Omit<react.SVGProps<SVGSVGElement>, "ref"> & {
45
+ title?: string;
46
+ titleId?: string;
47
+ } & react.RefAttributes<SVGSVGElement>>;
48
+ infoOutline: react.ForwardRefExoticComponent<Omit<react.SVGProps<SVGSVGElement>, "ref"> & {
49
+ title?: string;
50
+ titleId?: string;
51
+ } & react.RefAttributes<SVGSVGElement>>;
52
+ xMark: react.ForwardRefExoticComponent<Omit<react.SVGProps<SVGSVGElement>, "ref"> & {
53
+ title?: string;
54
+ titleId?: string;
55
+ } & react.RefAttributes<SVGSVGElement>>;
56
+ };
57
+ declare const renderStyledText: (value: any, style: any, className: string) => react__default.JSX.Element;
58
+ declare const renderNullValue: (value?: string) => react__default.JSX.Element;
59
+ declare const renderWithInfo: (textElement: ReactNode | string, infoMessage: string, anchorId: string, useInfoLink?: boolean) => react__default.JSX.Element;
60
+ declare const getIconElement: (key: string) => any;
61
+ interface RenderIconOptions {
62
+ iconOnly?: boolean;
63
+ prefix?: boolean;
64
+ className?: string;
65
+ iconClassName?: string;
66
+ style?: any;
67
+ iconStyle?: any;
68
+ tooltip?: string;
69
+ tooltipAnchor?: string;
70
+ }
71
+ declare const renderWithIcon: (textElement: ReactNode | string, icon: ReactNode | string, options: RenderIconOptions) => react__default.JSX.Element;
72
+ declare const buildElementStyle: (props: any, property?: string | null) => {};
73
+
74
+ type BadgeIconType = keyof typeof ICONS;
75
+ declare const Badge: <T>({ props }: TextRenderer<T>) => react__default.JSX.Element;
76
+ declare const BooleanBadge: <T>({ props }: TextRenderer<T>) => react__default.JSX.Element;
77
+
78
+ type GenericCell = BasicType | Record<string, any> | null;
79
+ type AbstractCell = {
80
+ type: "abstract";
81
+ value: BasicType | null;
82
+ rowId: number;
83
+ columnId: number;
84
+ nullValue?: BasicType | null;
85
+ naValue?: NAString;
86
+ };
87
+ type IntegerCell = Expand<Modify<AbstractCell, {
88
+ type: "integer";
89
+ value: number | null;
90
+ }>>;
91
+ type FloatCell = Expand<Modify<AbstractCell, {
92
+ type: "float";
93
+ value: number | null;
94
+ precision?: number;
95
+ }>>;
96
+ type PValueCell = Expand<Modify<FloatCell, {
97
+ type: "p_value";
98
+ }>>;
99
+ type TextCell = Expand<Modify<AbstractCell, {
100
+ type: "text";
101
+ truncateTo?: number;
102
+ color?: Color;
103
+ tooltip?: string;
104
+ }>>;
105
+ type TextListCell = Expand<Modify<AbstractCell, {
106
+ type: "text_list";
107
+ value: string;
108
+ items: TextCell[];
109
+ }>>;
110
+ type BadgeCell = Expand<Modify<TextCell, {
111
+ type: "badge";
112
+ backgroundColor?: Color;
113
+ borderColor?: Color;
114
+ icon?: BadgeIconType;
115
+ }>>;
116
+ type BooleanCell = Expand<Modify<BadgeCell, {
117
+ type: "boolean";
118
+ value: boolean | null;
119
+ displayText?: BasicType;
120
+ }>>;
121
+ type LinkCell = Expand<Modify<AbstractCell, {
122
+ type: "link";
123
+ url: string;
124
+ tooltip?: string;
125
+ }>>;
126
+ type LinkListCell = Expand<Modify<AbstractCell, {
127
+ type: "link_list";
128
+ value: string;
129
+ items: LinkCell[];
130
+ }>>;
131
+ type PercentageBarCell = Expand<Modify<FloatCell, {
132
+ type: "percentage_bar";
133
+ colors?: [Color, Color];
134
+ }>>;
135
+ type Cell = PercentageBarCell | FloatCell | IntegerCell | PValueCell | AbstractCell | TextCell | TextListCell | BadgeCell | BooleanCell | LinkCell | LinkListCell;
136
+ type CellTypeMapper = TypeMapper<Cell>;
137
+ type CellType = keyof CellTypeMapper;
138
+
139
+ type RowSelectAction = "ACCESS_ROW_DATA" | "UPDATE_GENOME_BROWSER" | "UPDATE_LOCUS_ZOOM";
140
+ interface RowSelectOptions {
141
+ onRowSelect: (rowSelection: RowSelectionState) => void;
142
+ onRowSelectAction?: RowSelectAction;
143
+ header: string;
144
+ description?: string;
145
+ enableMultiRowSelect?: boolean;
146
+ selectedValues?: string[];
147
+ rowId?: string;
148
+ }
149
+ interface SortConfig {
150
+ [column: string]: "asc" | "desc";
151
+ }
152
+ interface FilterConfig {
153
+ [column: string]: BasicType;
154
+ }
155
+ interface InitialTableState {
156
+ sort?: SortConfig;
157
+ filter?: FilterConfig;
158
+ }
159
+ interface TableConfig {
160
+ title?: string;
161
+ initialize?: InitialTableState;
162
+ description?: string;
163
+ disableColumnFilters?: boolean;
164
+ disableExport?: boolean;
165
+ rowSelect?: RowSelectOptions;
166
+ defaultColumns?: string[];
167
+ onTableLoad?: any;
168
+ disableMultiSelect?: boolean;
169
+ }
170
+ type TableRow = Record<string, GenericCell | GenericCell[]>;
171
+ type TableData = TableRow[];
172
+ declare module "@tanstack/react-table" {
173
+ interface ColumnMeta<TData extends RowData, TValue> {
174
+ type?: CellType;
175
+ description?: string;
176
+ }
177
+ }
178
+
179
+ interface TableProps {
180
+ id: string;
181
+ options?: TableConfig;
182
+ columns: GenericColumn[];
183
+ data: TableData;
184
+ }
185
+ declare const Table: react__default.FC<TableProps>;
186
+
187
+ declare const TextList: <T>({ props }: TextRenderer<T>) => any;
188
+ declare const Text: <T>({ props }: TextRenderer<T>) => react__default.JSX.Element;
189
+ declare const LargeText: <T>({ props }: TextRenderer<T>) => react__default.JSX.Element;
190
+
191
+ declare const LinkList: <T>({ props }: TextRenderer<T>) => any;
192
+ declare const Link: <T>({ props }: TextRenderer<T>) => react__default.JSX.Element;
193
+
194
+ declare const formatFloat: (value: number, precision?: number) => any;
195
+ declare const Float: <T>({ props }: TextRenderer<T>) => react__default.JSX.Element;
196
+
197
+ declare const PercentageBar: <T>({ props }: TextRenderer<T>) => react__default.JSX.Element;
198
+
199
+ export { Badge, BooleanBadge, Float, ICONS, LargeText, Link, LinkList, PercentageBar, Text, TextList, buildElementStyle, Table as default, formatFloat, getIconElement, renderNullValue, renderStyledText, renderWithIcon, renderWithInfo };
200
+ export type { BadgeIconType, TableConfig, TableProps, TextRenderer };
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ import e from"./Table.js";export{Badge,BooleanBadge}from"./CellRenderers/Badge.js";export{LargeText,Text,TextList}from"./CellRenderers/BasicText.js";export{Link,LinkList}from"./CellRenderers/Link.js";export{Float,formatFloat}from"./CellRenderers/Number.js";export{PercentageBar}from"./CellRenderers/SparkChart.js";export{ICONS,buildElementStyle,getIconElement,renderNullValue,renderStyledText,renderWithIcon,renderWithInfo}from"./CellRenderers/TextRenderer.js";export{e as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}