@anoki/fse-marche-ui
Version:
FSE UI components library
3 lines (2 loc) • 7.18 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./components/ui/Table/Table.css');const t=require("./index.cjs137.js"),G=require("react"),c=require("./index.cjs139.js");;/* empty css */const J=require("./index.cjs59.js"),Q=require("./index.cjs113.js"),W=require("./index.cjs114.js"),X=require("./index.cjs106.js"),Y=require("./index.cjs115.js");function Z(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,i.get?i:{enumerable:!0,get:()=>e[n]})}}return s.default=e,Object.freeze(s)}const b=Z(G),D=b.forwardRef(({className:e,columns:s,data:n,pagination:i,initialCurrentPage:_=1,resultsPerPage:u=10,defaultSortDirection:r="desc",...p},T)=>{const[x,h]=b.useState({key:s[0].key||s[0].label,direction:r}),[v,q]=b.useState(_),E=b.useMemo(()=>[...n].sort((o,m)=>{const l=o[x.key],a=m[x.key],d=s.find(j=>(j.key||j.label)===x.key);if(typeof l=="string"&&typeof a=="string"){if((d==null?void 0:d.type)==="date"){const j=O=>{const[H,I]=O.split(" - "),[F,z,V]=H.split("/").map(Number),[P,U]=I.split(":").map(Number);return new Date(V,z-1,F,P,U)},R=j(l),L=j(a);return x.direction==="asc"?R.getTime()-L.getTime():L.getTime()-R.getTime()}if((d==null?void 0:d.type)==="number"){const j=parseFloat(l),R=parseFloat(a);return x.direction==="asc"?j-R:R-j}return x.direction==="asc"?l.localeCompare(a):a.localeCompare(l)}return y(l)&&y(a)?x.direction==="asc"?l.firstLine.localeCompare(a.firstLine):a.firstLine.localeCompare(l.firstLine):0}),[n,x,s]),A=o=>{h(m=>({key:o,direction:m.key===o&&m.direction==="asc"?"desc":"asc"}))},C=i?(v-1)*u:0,B=i?Math.min(C+u,E.length):E.length,M=E.slice(C,B);return t.jsxRuntimeExports.jsxs("div",{className:"position-relative w-full",children:[t.jsxRuntimeExports.jsxs("table",{ref:T,className:c.clsx("table",e),role:"table",...p,children:[t.jsxRuntimeExports.jsx(g,{className:"table__header",children:t.jsxRuntimeExports.jsx(N,{children:s.map((o,m)=>t.jsxRuntimeExports.jsx(k,{config:o,sortConfig:x,onSort:()=>o.sortable&&A(o.key||o.label)},`${o.label}-${m}`))})}),t.jsxRuntimeExports.jsx(w,{className:"table__body",children:M.map((o,m)=>t.jsxRuntimeExports.jsx(N,{className:"table__row",children:Object.entries(o).map(([l,a],d)=>a?l==="actionData"&&$(a)?t.jsxRuntimeExports.jsx(f,{content:a,type:"action"},`${l}-${d}`):y(a)?t.jsxRuntimeExports.jsx(f,{content:a,type:"double-line"},`${l}-${d}`):typeof a=="string"?t.jsxRuntimeExports.jsx(f,{content:a},`${l}-${d}`):null:null)},m))})]}),i&&t.jsxRuntimeExports.jsx(S,{currentPage:v,totalResults:E.length,resultsPerPage:u,setCurrentPage:q})]})});D.displayName="Table";const g=b.forwardRef(({className:e,children:s,...n},i)=>t.jsxRuntimeExports.jsx("thead",{ref:i,className:c.clsx("[&_tr]:border-b-0",e),...n,children:s}));g.displayName="TableHeader";const w=b.forwardRef(({className:e,children:s,...n},i)=>t.jsxRuntimeExports.jsx("tbody",{ref:i,className:c.clsx("[&_tr:last-child]:border-0",e),...n,children:s}));w.displayName="TableBody";const N=b.forwardRef(({className:e,children:s,...n},i)=>t.jsxRuntimeExports.jsx("tr",{ref:i,className:c.clsx("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...n,children:s}));N.displayName="TableRow";const k=b.forwardRef(({className:e,config:s,sortConfig:n,onSort:i,..._},u)=>{const r=n.key===(s.key||s.label),p=r?n.direction:null,T=()=>p==="asc"?"ascending":"descending",x=h=>{switch(h){case"info":return t.jsxRuntimeExports.jsx(Y.Info,{});case"download":return t.jsxRuntimeExports.jsx(X.Download,{});default:return h}};return t.jsxRuntimeExports.jsx("th",{ref:u,className:c.clsx("table__cell table__cell--header",{"table__cell--sortable":s.sortable,"table__cell--action":s.action},e),onClick:s.sortable?i:s.action,"aria-label":s.ariaLabel,"aria-sort":r?T():void 0,..._,children:t.jsxRuntimeExports.jsxs("div",{className:"table__cell--header--content",children:[t.jsxRuntimeExports.jsx("div",{children:t.jsxRuntimeExports.jsx(J.ActionIconText,{icon:x(s.icon),textLabel:s.label,iconPosition:s.iconPosition,handleIconAction:()=>{s.iconAction},popupInfo:s.popupInfo})}),s.sortable&&t.jsxRuntimeExports.jsxs("span",{className:"sort-indicator",children:[t.jsxRuntimeExports.jsx(Q.TriangleUp,{filled:r&&p==="desc",className:c.clsx("sort-indicator__triangle",{active:r&&p==="desc"})}),t.jsxRuntimeExports.jsx(W.TriangleDown,{filled:r&&p==="asc",className:c.clsx("sort-indicator__triangle",{active:r&&p==="asc"})})]})]})})});k.displayName="TableHead";const K=({data:e})=>t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx("div",{className:"table__cell--firstLine",children:e.firstLine}),t.jsxRuntimeExports.jsx("div",{className:"table__cell--secondLine",children:e.secondLine})]}),ee=({data:e})=>e.type==="link"&&e.link?t.jsxRuntimeExports.jsx("a",{href:e.link,"aria-label":e.ariaLabel,children:e.label}):t.jsxRuntimeExports.jsx("button",{onClick:e.action,"aria-label":e.ariaLabel,children:e.label}),y=e=>typeof e=="object"&&e!==null&&"firstLine"in e&&"secondLine"in e,$=e=>typeof e=="object"&&e!==null&&"label"in e&&"type"in e,te=({content:e})=>typeof e=="string"?t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:e}):y(e)?t.jsxRuntimeExports.jsx(K,{data:e}):$(e)?t.jsxRuntimeExports.jsx(ee,{data:e}):null,f=b.forwardRef(({className:e,content:s,type:n,...i},_)=>t.jsxRuntimeExports.jsx("td",{ref:_,className:c.clsx("table__cell",{"table__cell--double-line":n==="double-line","table__cell--action":n==="action"},e),...i,children:t.jsxRuntimeExports.jsx(te,{content:s})}));f.displayName="TableCell";const S=({currentPage:e=1,totalResults:s,resultsPerPage:n,setCurrentPage:i,className:_})=>{const u=Math.ceil(s/n);return t.jsxRuntimeExports.jsxs("div",{className:c.clsx("pagination",_),children:[t.jsxRuntimeExports.jsxs("div",{className:"pagination__info",children:["Stai visualizzando"," ",t.jsxRuntimeExports.jsx("span",{className:"pagination__info__resultsPerPage",children:n})," ","di ",s," risultati"]}),t.jsxRuntimeExports.jsxs("div",{className:"pagination__nav",children:[t.jsxRuntimeExports.jsx("button",{className:c.clsx("pagination__button",e===1&&"pagination__button--disabled"),onClick:()=>i(e-1),disabled:e===1,"aria-label":"Previous page",children:t.jsxRuntimeExports.jsx("svg",{className:"pagination__button-arrow",viewBox:"0 0 24 24",children:t.jsxRuntimeExports.jsx("path",{d:"M15 18l-6-6 6-6"})})}),Array.from({length:u},(r,p)=>p+1).map(r=>t.jsxRuntimeExports.jsx("button",{className:c.clsx("pagination__button",e===r&&"pagination__button--active"),onClick:()=>i(r),children:r},r)),t.jsxRuntimeExports.jsx("button",{className:c.clsx("pagination__button",e===u&&"pagination__button--disabled"),onClick:()=>i(e+1),disabled:e===u,"aria-label":"Next page",children:t.jsxRuntimeExports.jsx("svg",{className:"pagination__button-arrow",viewBox:"0 0 24 24",children:t.jsxRuntimeExports.jsx("path",{d:"M9 6l6 6-6 6"})})})]})]})};exports.Pagination=S;exports.Table=D;exports.TableBody=w;exports.TableCell=f;exports.TableHead=k;exports.TableHeader=g;exports.TableRow=N;
//# sourceMappingURL=index.cjs65.js.map