lizaui 3.0.33 → 3.0.34

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.
@@ -7,6 +7,11 @@ export interface PaginationProps extends Partial<Omit<PaginationValueProps, "tot
7
7
  onChange?: (value: Pick<PaginationValueProps, "page" | "limit">) => void;
8
8
  isLimitSelect?: boolean;
9
9
  dataLimit?: number[];
10
+ translate?: {
11
+ selectLimit?: string;
12
+ rowPerPage?: string;
13
+ of?: string;
14
+ };
10
15
  }
11
16
  export interface PaginationItemProps {
12
17
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.interface.d.ts","sourceRoot":"","sources":["../../../../src/components/pagination/interface/pagination.interface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,WAAW,eAChB,SAAQ,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,EACnD,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;IAEzE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAChB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC;IACpD,mBAAmB,EAAE,CACpB,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,KACnD,IAAI,CAAC;CACV"}
1
+ {"version":3,"file":"pagination.interface.d.ts","sourceRoot":"","sources":["../../../../src/components/pagination/interface/pagination.interface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,WAAW,eAChB,SAAQ,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,EACnD,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;IAEzE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,EAAE,CAAC,EAAE,MAAM,CAAC;KACf,CAAA;CACJ;AAED,MAAM,WAAW,mBAAmB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAChB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC;IACpD,mBAAmB,EAAE,CACpB,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,KACnD,IAAI,CAAC;CACV"}
@@ -1,3 +1,3 @@
1
1
  import { PaginationItemProps } from './interface/pagination.interface';
2
- export declare const PaginationItem: ({ className, color, active, children, text, onClick, }: PaginationItemProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const PaginationItem: ({ className, color, active, children, text, onClick }: PaginationItemProps) => import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=pagination-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination-item.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/pagination-item.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG5E,eAAO,MAAM,cAAc,GAAI,wDAO5B,mBAAmB,4CAqCrB,CAAC"}
1
+ {"version":3,"file":"pagination-item.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/pagination-item.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG5E,eAAO,MAAM,cAAc,GAAI,uDAAmE,mBAAmB,4CAgCpH,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { PaginationProps } from './interface/pagination.interface';
2
- export declare const Pagination: ({ className, color, total, limit, page, siblings, isLimitSelect, dataLimit, onChange, }: PaginationProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const Pagination: ({ className, color, total, limit, page, siblings, isLimitSelect, dataLimit, onChange, translate, }: PaginationProps) => import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=pagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/pagination.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKxE,eAAO,MAAM,UAAU,GAAI,yFAWxB,eAAe,4CAqGjB,CAAC"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/pagination.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKxE,eAAO,MAAM,UAAU,GAAI,oGAgBxB,eAAe,4CAyGjB,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../chunks/jsx-runtime-DFswc9zO.js"),p=require("../chunks/bundle-mjs-Bta93uUH.js"),y=require("../chunks/index-CeBD7F1N.js"),h=require("react"),d=require("../chunks/clsx-C11secjj.js"),m=require("../chunks/index-CZu0BZjG.js");require("../chunks/button-CPPU0FsH.js");const R=({className:o,color:e="primary",active:t,children:a,text:r,onClick:c})=>{const l=d.clsx({"bg-primary":e==="primary"&&t,"bg-success":e==="success"&&t,"bg-danger":e==="danger"&&t,"bg-warning":e==="warning"&&t,"bg-default":e==="default"&&t}),u=p.twMerge(d.clsx("text-sm",{"group-hover:text-primary-500":e==="primary"&&!t,"group-hover:text-success-500":e==="success"&&!t,"group-hover:text-danger-500":e==="danger"&&!t,"group-hover:text-warning-500":e==="warning"&&!t,"group-hover:text-default-500":e==="default"&&!t,"text-default-foreground":t&&e==="default","text-primary-foreground":t&&e==="primary","text-success-foreground":t&&e==="success","text-danger-foreground":t&&e==="danger","text-warning-foreground":t&&e==="warning"}));return s.jsxRuntimeExports.jsx("div",{className:p.twMerge("w-[33px] h-[32px] flex items-center justify-center group",l,o),onClick:c,children:a||s.jsxRuntimeExports.jsx("p",{className:u,children:r})})},b=({page:o,total:e,siblings:t=1})=>{if(7+t>=e)return Array.from({length:e},(n,x)=>x+1);const r=Math.max(o-t,1),c=Math.min(o+t,e),l=r>2,u=c<e-2;if(!l&&u){const n=3+2*t;return[...Array.from({length:n},(g,j)=>j+1),"...",e]}else if(l&&!u){const n=3+2*t;return[1,"...",...Array.from({length:n},(g,j)=>e-n+j+1)]}else return[1,"...",...Array.from({length:c-r+1},(x,g)=>r+g),"...",e]},P=o=>o.map(e=>({id:e,name:e})),I=({className:o,color:e="primary",total:t,limit:a=20,page:r=1,siblings:c=1,isLimitSelect:l=!0,dataLimit:u=[10,15,20,50,100,200],onChange:n})=>{const x=Math.ceil(t/a),g=b({page:r,siblings:c,total:x}),j=P(u),E=i=>{i!=="..."&&n&&n({limit:a,page:Number(i)})},N=()=>{r!==1&&n&&n({limit:a,page:r-1})},w=()=>{r===x||x===0||n&&n({limit:a,page:r+1})},S=i=>{n&&n({page:r,limit:i?Number(i):20})};return s.jsxRuntimeExports.jsxs("div",{className:p.twMerge("flex justify-between gap-x-2 items-center",o),children:[l?s.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-2.5",children:[s.jsxRuntimeExports.jsx("div",{children:s.jsxRuntimeExports.jsx("span",{className:"text-sm text-gray-500",children:"Filas por pagina"})}),s.jsxRuntimeExports.jsxs(m.Select,{value:a==null?void 0:a.toString(),onValueChange:S,children:[s.jsxRuntimeExports.jsx(m.SelectTrigger,{className:"min-w-20",children:s.jsxRuntimeExports.jsx(m.SelectValue,{placeholder:"Select a fruit"})}),s.jsxRuntimeExports.jsx(m.SelectContent,{children:s.jsxRuntimeExports.jsxs(m.SelectGroup,{children:[s.jsxRuntimeExports.jsx(m.SelectLabel,{children:"Limites"}),j.map(i=>{var f;return s.jsxRuntimeExports.jsx(m.SelectItem,{value:(f=i.id)==null?void 0:f.toString(),children:i.name},i.id)})]})})]}),s.jsxRuntimeExports.jsxs("div",{className:"text-sm text-gray-500",children:[s.jsxRuntimeExports.jsx("span",{className:"text-gray-900",children:`${r} - ${a}`})," de ",s.jsxRuntimeExports.jsx("span",{className:"text-gray-900",children:t})]})]}):null,s.jsxRuntimeExports.jsxs("div",{className:"flex items-center border border-gray-300 bg-white rounded-lg cursor-pointer",children:[s.jsxRuntimeExports.jsx(R,{className:d.clsx(r===1&&"cursor-no-drop"),onClick:N,children:s.jsxRuntimeExports.jsx(y.IoIosArrowBack,{className:p.twMerge("fill-gray-500",d.clsx(r===1&&"fill-gray-300"))})}),g.map((i,f)=>s.jsxRuntimeExports.jsx(R,{text:i,active:r===i,color:e,onClick:()=>E(i),className:"border-l"},f)),s.jsxRuntimeExports.jsx(R,{className:d.clsx("border-l",(r===x||x===0)&&"cursor-no-drop"),onClick:w,children:s.jsxRuntimeExports.jsx(y.IoIosArrowBack,{className:p.twMerge("fill-gray-500 transform rotate-180",d.clsx((r===x||x===0)&&"fill-gray-300"))})})]})]})},M=({initialPage:o=1,initialLimit:e=20})=>{const[t,a]=h.useState(o),[r,c]=h.useState(e);return{handleSetPagination:h.useCallback(({page:u,limit:n})=>{u!==t&&a(u),n!==r&&c(n)},[r,t]),page:t,limit:r}};exports.Pagination=I;exports.usePagination=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../chunks/jsx-runtime-DFswc9zO.js"),p=require("../chunks/bundle-mjs-Bta93uUH.js"),b=require("../chunks/index-CeBD7F1N.js"),j=require("react"),g=require("../chunks/clsx-C11secjj.js"),m=require("../chunks/index-CZu0BZjG.js");require("../chunks/button-CPPU0FsH.js");const R=({className:d,color:e="primary",active:r,children:o,text:t,onClick:l})=>{const c=g.clsx({"bg-primary":e==="primary"&&r,"bg-success":e==="success"&&r,"bg-danger":e==="danger"&&r,"bg-warning":e==="warning"&&r,"bg-default":e==="default"&&r,"dark:hover:bg-default-200 dark:hover:text-default-800":!r}),x=p.twMerge(g.clsx("text-sm",{"group-hover:text-primary-500 dark:group-hover:text-default-800":e==="primary"&&!r,"group-hover:text-success-500 dark:group-hover:text-default-800":e==="success"&&!r,"group-hover:text-danger-500 dark:group-hover:text-default-800":e==="danger"&&!r,"group-hover:text-warning-500 dark:group-hover:text-default-800":e==="warning"&&!r,"group-hover:text-default-500 dark:group-hover:text-default-800":e==="default"&&!r,"text-default-foreground":r&&e==="default","text-primary-foreground":r&&e==="primary","text-success-foreground":r&&e==="success","text-danger-foreground":r&&e==="danger","text-warning-foreground":r&&e==="warning"}));return s.jsxRuntimeExports.jsx("div",{className:p.twMerge("w-[33px] h-[32px] flex items-center justify-center group ",c,d),onClick:l,children:o||s.jsxRuntimeExports.jsx("p",{className:x,children:t})})},y=({page:d,total:e,siblings:r=1})=>{if(7+r>=e)return Array.from({length:e},(n,i)=>i+1);const t=Math.max(d-r,1),l=Math.min(d+r,e),c=t>2,x=l<e-2;if(!c&&x){const n=3+2*r;return[...Array.from({length:n},(a,f)=>f+1),"...",e]}else if(c&&!x){const n=3+2*r;return[1,"...",...Array.from({length:n},(a,f)=>e-n+f+1)]}else return[1,"...",...Array.from({length:l-t+1},(i,a)=>t+a),"...",e]},k=d=>d.map(e=>({id:e,name:e})),v=({className:d,color:e="primary",total:r,limit:o=20,page:t=1,siblings:l=1,isLimitSelect:c=!0,dataLimit:x=[10,15,20,50,100,200],onChange:n,translate:i={selectLimit:"Limites",rowPerPage:"Filas por pagina",of:"de"}})=>{const a=Math.ceil(r/o),f=y({page:t,siblings:l,total:a}),w=k(x),E=u=>{u!=="..."&&n&&n({limit:o,page:Number(u)})},P=()=>{t!==1&&n&&n({limit:o,page:t-1})},N=()=>{t===a||a===0||n&&n({limit:o,page:t+1})},S=u=>{n&&n({page:t,limit:u?Number(u):20})};return s.jsxRuntimeExports.jsxs("div",{className:p.twMerge("flex justify-between gap-x-2 items-center",d),children:[c?s.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-2.5",children:[s.jsxRuntimeExports.jsx("div",{children:s.jsxRuntimeExports.jsxs("span",{className:"text-sm text-default-500",children:[(i==null?void 0:i.rowPerPage)||"Filas por pagina",":"]})}),s.jsxRuntimeExports.jsxs(m.Select,{value:o==null?void 0:o.toString(),onValueChange:S,children:[s.jsxRuntimeExports.jsx(m.SelectTrigger,{className:"min-w-20",children:s.jsxRuntimeExports.jsx(m.SelectValue,{placeholder:"Select a fruit"})}),s.jsxRuntimeExports.jsx(m.SelectContent,{children:s.jsxRuntimeExports.jsxs(m.SelectGroup,{children:[s.jsxRuntimeExports.jsx(m.SelectLabel,{children:(i==null?void 0:i.selectLimit)||"Limites"}),w.map(u=>{var h;return s.jsxRuntimeExports.jsx(m.SelectItem,{value:(h=u.id)==null?void 0:h.toString(),children:u.name},u.id)})]})})]}),s.jsxRuntimeExports.jsxs("div",{className:"text-sm text-default-500",children:[s.jsxRuntimeExports.jsx("span",{className:"text-default-500",children:`${t} - ${o}`})," ",(i==null?void 0:i.of)||"de"," ",s.jsxRuntimeExports.jsx("span",{className:"text-default-500",children:r})]})]}):null,s.jsxRuntimeExports.jsxs("div",{className:"flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100",children:[s.jsxRuntimeExports.jsx(R,{className:g.clsx(t===1&&"cursor-no-drop","rounded-tl-lg rounded-bl-lg "),onClick:P,children:s.jsxRuntimeExports.jsx(b.IoIosArrowBack,{className:p.twMerge("fill-default-500",g.clsx(t===1&&"fill-default-300"))})}),f.map((u,h)=>s.jsxRuntimeExports.jsx(R,{text:u,active:t===u,color:e,onClick:()=>E(u),className:"border-l border-divider "},h)),s.jsxRuntimeExports.jsx(R,{className:g.clsx("border-l border-divider rounded-tr-lg rounded-br-lg ",(t===a||a===0)&&"cursor-no-drop"),onClick:N,children:s.jsxRuntimeExports.jsx(b.IoIosArrowBack,{className:p.twMerge("fill-default-500 transform rotate-180 ",g.clsx((t===a||a===0)&&"fill-default-300"))})})]})]})},I=({initialPage:d=1,initialLimit:e=20})=>{const[r,o]=j.useState(d),[t,l]=j.useState(e);return{handleSetPagination:j.useCallback(({page:x,limit:n})=>{x!==r&&o(x),n!==t&&l(n)},[t,r]),page:r,limit:t}};exports.Pagination=v;exports.usePagination=I;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/components/pagination/pagination-item.tsx","../../src/components/pagination/function/index.ts","../../src/components/pagination/pagination.tsx","../../src/components/pagination/hook/use-pagination.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { type PaginationItemProps } from \"./interface/pagination.interface\";\nimport clsx from \"clsx\";\n\nexport const PaginationItem = ({\n\tclassName,\n\tcolor = \"primary\",\n\tactive,\n\tchildren,\n\ttext,\n\tonClick,\n}: PaginationItemProps) => {\n\tconst bgClass = clsx({\n\t\t\"bg-primary\": color === \"primary\" && active,\n\t\t\"bg-success\": color === \"success\" && active,\n \"bg-danger\": color === \"danger\" && active,\n \"bg-warning\": color === \"warning\" && active,\n \"bg-default\": color === \"default\" && active,\n\t});\n\tconst colorClass = twMerge(\n\t\tclsx(\"text-sm\", {\n\t\t\t\"group-hover:text-primary-500\": color === \"primary\" && !active,\n\t\t\t\"group-hover:text-success-500\": color === \"success\" && !active,\n \"group-hover:text-danger-500\": color === \"danger\" && !active,\n \"group-hover:text-warning-500\": color === \"warning\" && !active,\n \"group-hover:text-default-500\": color === \"default\" && !active,\n\n\t\t\t\"text-default-foreground\": active && color === \"default\",\n\t\t\t\"text-primary-foreground\": active && color === \"primary\",\n \"text-success-foreground\": active && color === \"success\",\n \"text-danger-foreground\": active && color === \"danger\",\n \"text-warning-foreground\": active && color === \"warning\",\n\t\t})\n\t);\n\n\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(\n\t\t\t\t\"w-[33px] h-[32px] flex items-center justify-center group\",\n\t\t\t\tbgClass,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t{children || <p className={colorClass}>{text}</p>}\n\t\t</div>\n\t);\n};\n","import { type PaginationValueProps } from \"../interface/pagination-share.interface\";\n\nexport const FormatPagePagination = ({\n\tpage,\n\ttotal,\n\tsiblings = 1,\n}: PaginationValueProps) => {\n\tconst totalPageNoInArray = 7 + siblings;\n\n\tif (totalPageNoInArray >= total) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst leftSiblingsIndex = Math.max(page - siblings, 1);\n\tconst rightSiblingsIndex = Math.min(page + siblings, total);\n\n\tconst showLeftDots = leftSiblingsIndex > 2;\n\tconst showRightDots = rightSiblingsIndex < total - 2;\n\n\tif (!showLeftDots && showRightDots) {\n\t\tconst leftItemsCount = 3 + 2 * siblings;\n\t\tconst leftRange = Array.from({ length: leftItemsCount }, (_, i) => i + 1);\n\t\treturn [...leftRange, \"...\", total];\n\t} else if (showLeftDots && !showRightDots) {\n\t\tconst rightItemsCount = 3 + 2 * siblings;\n\t\tconst rightRange = Array.from(\n\t\t\t{ length: rightItemsCount },\n\t\t\t(_, i) => total - rightItemsCount + i + 1\n\t\t);\n\t\treturn [1, \"...\", ...rightRange];\n\t} else {\n\t\tconst middleRange = Array.from(\n\t\t\t{ length: rightSiblingsIndex - leftSiblingsIndex + 1 },\n\t\t\t(_, i) => leftSiblingsIndex + i\n\t\t);\n\t\treturn [1, \"...\", ...middleRange, \"...\", total];\n\t}\n};\n\nexport const FormatLimitPagination = (data: number[]) => {\n\treturn data.map((el) => {\n\t\treturn {\n\t\t\tid: el,\n\t\t\tname: el,\n\t\t};\n\t});\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { IoIosArrowBack } from \"react-icons/io\";\nimport { PaginationItem } from \"./pagination-item\";\nimport { type PaginationProps } from \"./interface/pagination.interface\";\nimport { FormatLimitPagination, FormatPagePagination } from \"./function\";\nimport clsx from \"clsx\";\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from \"../ui\";\n\nexport const Pagination = ({\n\tclassName,\n\tcolor = \"primary\",\n\n\ttotal,\n\tlimit = 20,\n\tpage = 1,\n\tsiblings = 1,\n\tisLimitSelect = true,\n\tdataLimit = [10, 15, 20, 50, 100, 200],\n\tonChange,\n}: PaginationProps) => {\n\tconst totalPagination = Math.ceil(total / limit);\n\n\tconst dataPageFormat = FormatPagePagination({\n\t\tlimit,\n\t\tpage,\n\t\tsiblings,\n\t\ttotal: totalPagination,\n\t});\n\tconst dataLimitFormat = FormatLimitPagination(dataLimit);\n\n\tconst handleChange = (value: number | string | null) => {\n\t\tif (value === \"...\") return;\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: Number(value),\n\t\t\t});\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (page === 1) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page - 1,\n\t\t\t});\n\t};\n\n\tconst handleNext = () => {\n\t\tif (page === totalPagination || totalPagination === 0) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page + 1,\n\t\t\t});\n\t};\n\n\tconst handleChangeSelect = (value: string) => {\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tpage,\n\t\t\t\tlimit: value ? Number(value) : 20,\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"flex justify-between gap-x-2 items-center\", className)}>\n\t\t\t{isLimitSelect ? (\n\t\t\t\t<div className=\"flex items-center gap-x-2.5\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span className=\"text-sm text-gray-500\">Filas por pagina</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Select value={limit?.toString()} onValueChange={handleChangeSelect}>\n\t\t\t\t\t\t<SelectTrigger className=\"min-w-20\">\n\t\t\t\t\t\t\t<SelectValue placeholder=\"Select a fruit\" />\n\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t<SelectGroup>\n\t\t\t\t\t\t\t\t<SelectLabel>Limites</SelectLabel>\n\t\t\t\t\t\t\t\t{dataLimitFormat.map((item) => (\n\t\t\t\t\t\t\t\t\t<SelectItem key={item.id} value={item.id?.toString()}>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SelectGroup>\n\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t</Select>\n\n\t\t\t\t\t<div className=\"text-sm text-gray-500\">\n\t\t\t\t\t\t<span className=\"text-gray-900\">{`${page} - ${limit}`}</span> de <span className=\"text-gray-900\">{total}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t<div className=\"flex items-center border border-gray-300 bg-white rounded-lg cursor-pointer\">\n\t\t\t\t<PaginationItem className={clsx(page === 1 && \"cursor-no-drop\")} onClick={handlePrev}>\n\t\t\t\t\t<IoIosArrowBack className={twMerge(\"fill-gray-500\", clsx(page === 1 && \"fill-gray-300\"))} />\n\t\t\t\t</PaginationItem>\n\n\t\t\t\t{dataPageFormat.map((el, i) => (\n\t\t\t\t\t<PaginationItem key={i} text={el} active={page === el} color={color} onClick={() => handleChange(el)} className=\"border-l\" />\n\t\t\t\t))}\n\n\t\t\t\t<PaginationItem\n\t\t\t\t\tclassName={clsx(\"border-l\", (page === totalPagination || totalPagination === 0) && \"cursor-no-drop\")}\n\t\t\t\t\tonClick={handleNext}\n\t\t\t\t>\n\t\t\t\t\t<IoIosArrowBack\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"fill-gray-500 transform rotate-180\",\n\t\t\t\t\t\t\tclsx((page === totalPagination || totalPagination === 0) && \"fill-gray-300\"),\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</PaginationItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { useCallback, useState } from \"react\";\nimport { type PaginationHookProps, type UsePaginationProps } from \"../interface/pagination.interface\";\nimport { type PaginationSetValueProps } from \"../interface/pagination-share.interface\";\n\nexport const usePagination = ({ initialPage = 1, initialLimit = 20 }: UsePaginationProps): PaginationHookProps => {\n\tconst [pageCurrent, setPageCurrent] = useState<number>(initialPage);\n\tconst [limitCurrent, setLimitCurrent] = useState<number>(initialLimit);\n\n\tconst handleSetPagination = useCallback(\n\t\t({ page, limit }: PaginationSetValueProps) => {\n\t\t\tif (page !== pageCurrent) setPageCurrent(page);\n\t\t\tif (limit !== limitCurrent) setLimitCurrent(limit);\n\t\t},\n\t\t[limitCurrent, pageCurrent],\n\t);\n\n\treturn {\n\t\thandleSetPagination,\n\t\tpage: pageCurrent,\n\t\tlimit: limitCurrent,\n\t};\n};\n"],"names":["PaginationItem","className","color","active","children","text","onClick","bgClass","clsx","colorClass","twMerge","jsx","FormatPagePagination","page","total","siblings","_","i","leftSiblingsIndex","rightSiblingsIndex","showLeftDots","showRightDots","leftItemsCount","rightItemsCount","FormatLimitPagination","data","el","Pagination","limit","isLimitSelect","dataLimit","onChange","totalPagination","dataPageFormat","dataLimitFormat","handleChange","value","handlePrev","handleNext","handleChangeSelect","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","SelectLabel","item","SelectItem","_a","IoIosArrowBack","usePagination","initialPage","initialLimit","pageCurrent","setPageCurrent","useState","limitCurrent","setLimitCurrent","useCallback"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/components/pagination/pagination-item.tsx","../../src/components/pagination/function/index.ts","../../src/components/pagination/pagination.tsx","../../src/components/pagination/hook/use-pagination.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { type PaginationItemProps } from \"./interface/pagination.interface\";\nimport clsx from \"clsx\";\n\nexport const PaginationItem = ({ className, color = \"primary\", active, children, text, onClick }: PaginationItemProps) => {\n\tconst bgClass = clsx(\n\t\t{\n\t\t\t\"bg-primary\": color === \"primary\" && active,\n\t\t\t\"bg-success\": color === \"success\" && active,\n\t\t\t\"bg-danger\": color === \"danger\" && active,\n\t\t\t\"bg-warning\": color === \"warning\" && active,\n\t\t\t\"bg-default\": color === \"default\" && active,\n \"dark:hover:bg-default-200 dark:hover:text-default-800\": !active,\n\t\t},\n\t);\n\tconst colorClass = twMerge(\n\t\tclsx(\"text-sm\", {\n\t\t\t\"group-hover:text-primary-500 dark:group-hover:text-default-800\": color === \"primary\" && !active,\n\t\t\t\"group-hover:text-success-500 dark:group-hover:text-default-800\": color === \"success\" && !active,\n\t\t\t\"group-hover:text-danger-500 dark:group-hover:text-default-800\": color === \"danger\" && !active,\n\t\t\t\"group-hover:text-warning-500 dark:group-hover:text-default-800\": color === \"warning\" && !active,\n\t\t\t\"group-hover:text-default-500 dark:group-hover:text-default-800\": color === \"default\" && !active,\n\n\t\t\t\"text-default-foreground\": active && color === \"default\",\n\t\t\t\"text-primary-foreground\": active && color === \"primary\",\n\t\t\t\"text-success-foreground\": active && color === \"success\",\n\t\t\t\"text-danger-foreground\": active && color === \"danger\",\n\t\t\t\"text-warning-foreground\": active && color === \"warning\",\n\t\t}),\n\t);\n\n\treturn (\n\t\t<div className={twMerge(\"w-[33px] h-[32px] flex items-center justify-center group \", bgClass, className)} onClick={onClick}>\n\t\t\t{children || <p className={colorClass}>{text}</p>}\n\t\t</div>\n\t);\n};\n","import { type PaginationValueProps } from \"../interface/pagination-share.interface\";\n\nexport const FormatPagePagination = ({\n\tpage,\n\ttotal,\n\tsiblings = 1,\n}: PaginationValueProps) => {\n\tconst totalPageNoInArray = 7 + siblings;\n\n\tif (totalPageNoInArray >= total) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst leftSiblingsIndex = Math.max(page - siblings, 1);\n\tconst rightSiblingsIndex = Math.min(page + siblings, total);\n\n\tconst showLeftDots = leftSiblingsIndex > 2;\n\tconst showRightDots = rightSiblingsIndex < total - 2;\n\n\tif (!showLeftDots && showRightDots) {\n\t\tconst leftItemsCount = 3 + 2 * siblings;\n\t\tconst leftRange = Array.from({ length: leftItemsCount }, (_, i) => i + 1);\n\t\treturn [...leftRange, \"...\", total];\n\t} else if (showLeftDots && !showRightDots) {\n\t\tconst rightItemsCount = 3 + 2 * siblings;\n\t\tconst rightRange = Array.from(\n\t\t\t{ length: rightItemsCount },\n\t\t\t(_, i) => total - rightItemsCount + i + 1\n\t\t);\n\t\treturn [1, \"...\", ...rightRange];\n\t} else {\n\t\tconst middleRange = Array.from(\n\t\t\t{ length: rightSiblingsIndex - leftSiblingsIndex + 1 },\n\t\t\t(_, i) => leftSiblingsIndex + i\n\t\t);\n\t\treturn [1, \"...\", ...middleRange, \"...\", total];\n\t}\n};\n\nexport const FormatLimitPagination = (data: number[]) => {\n\treturn data.map((el) => {\n\t\treturn {\n\t\t\tid: el,\n\t\t\tname: el,\n\t\t};\n\t});\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { IoIosArrowBack } from \"react-icons/io\";\nimport { PaginationItem } from \"./pagination-item\";\nimport { type PaginationProps } from \"./interface/pagination.interface\";\nimport { FormatLimitPagination, FormatPagePagination } from \"./function\";\nimport clsx from \"clsx\";\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from \"../ui\";\n\nexport const Pagination = ({\n\tclassName,\n\tcolor = \"primary\",\n\n\ttotal,\n\tlimit = 20,\n\tpage = 1,\n\tsiblings = 1,\n\tisLimitSelect = true,\n\tdataLimit = [10, 15, 20, 50, 100, 200],\n\tonChange,\n translate = {\n selectLimit: \"Limites\",\n rowPerPage: \"Filas por pagina\",\n of: \"de\",\n },\n}: PaginationProps) => {\n\tconst totalPagination = Math.ceil(total / limit);\n\n\tconst dataPageFormat = FormatPagePagination({\n\t\tlimit,\n\t\tpage,\n\t\tsiblings,\n\t\ttotal: totalPagination,\n\t});\n\tconst dataLimitFormat = FormatLimitPagination(dataLimit);\n\n\tconst handleChange = (value: number | string | null) => {\n\t\tif (value === \"...\") return;\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: Number(value),\n\t\t\t});\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (page === 1) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page - 1,\n\t\t\t});\n\t};\n\n\tconst handleNext = () => {\n\t\tif (page === totalPagination || totalPagination === 0) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page + 1,\n\t\t\t});\n\t};\n\n\tconst handleChangeSelect = (value: string) => {\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tpage,\n\t\t\t\tlimit: value ? Number(value) : 20,\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"flex justify-between gap-x-2 items-center\", className)}>\n\t\t\t{isLimitSelect ? (\n\t\t\t\t<div className=\"flex items-center gap-x-2.5\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span className=\"text-sm text-default-500\">\n {translate?.rowPerPage || \"Filas por pagina\"}:\n </span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Select value={limit?.toString()} onValueChange={handleChangeSelect}>\n\t\t\t\t\t\t<SelectTrigger className=\"min-w-20\">\n\t\t\t\t\t\t\t<SelectValue placeholder=\"Select a fruit\" />\n\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t<SelectGroup>\n\t\t\t\t\t\t\t\t<SelectLabel>\n {translate?.selectLimit || \"Limites\"}\n </SelectLabel>\n\t\t\t\t\t\t\t\t{dataLimitFormat.map((item) => (\n\t\t\t\t\t\t\t\t\t<SelectItem key={item.id} value={item.id?.toString()}>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SelectGroup>\n\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t</Select>\n\n\t\t\t\t\t<div className=\"text-sm text-default-500\">\n\t\t\t\t\t\t<span className=\"text-default-500\" >{`${page} - ${limit}`}</span> {translate?.of || \"de\"} <span className=\"text-default-500\">{total}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t<div className=\"flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100\">\n\t\t\t\t<PaginationItem className={clsx(page === 1 && \"cursor-no-drop\", \"rounded-tl-lg rounded-bl-lg \")} onClick={handlePrev}>\n\t\t\t\t\t<IoIosArrowBack className={twMerge(\"fill-default-500\", clsx(page === 1 && \"fill-default-300\"))} />\n\t\t\t\t</PaginationItem>\n\n\t\t\t\t{dataPageFormat.map((el, i) => (\n\t\t\t\t\t<PaginationItem key={i} text={el} active={page === el} color={color} onClick={() => handleChange(el)} className=\"border-l border-divider \" />\n\t\t\t\t))}\n\n\t\t\t\t<PaginationItem\n\t\t\t\t\tclassName={clsx(\"border-l border-divider rounded-tr-lg rounded-br-lg \", (page === totalPagination || totalPagination === 0) && \"cursor-no-drop\")}\n\t\t\t\t\tonClick={handleNext}\n\t\t\t\t>\n\t\t\t\t\t<IoIosArrowBack\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"fill-default-500 transform rotate-180 \",\n\t\t\t\t\t\t\tclsx((page === totalPagination || totalPagination === 0) && \"fill-default-300\"),\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</PaginationItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { useCallback, useState } from \"react\";\nimport { type PaginationHookProps, type UsePaginationProps } from \"../interface/pagination.interface\";\nimport { type PaginationSetValueProps } from \"../interface/pagination-share.interface\";\n\nexport const usePagination = ({ initialPage = 1, initialLimit = 20 }: UsePaginationProps): PaginationHookProps => {\n\tconst [pageCurrent, setPageCurrent] = useState<number>(initialPage);\n\tconst [limitCurrent, setLimitCurrent] = useState<number>(initialLimit);\n\n\tconst handleSetPagination = useCallback(\n\t\t({ page, limit }: PaginationSetValueProps) => {\n\t\t\tif (page !== pageCurrent) setPageCurrent(page);\n\t\t\tif (limit !== limitCurrent) setLimitCurrent(limit);\n\t\t},\n\t\t[limitCurrent, pageCurrent],\n\t);\n\n\treturn {\n\t\thandleSetPagination,\n\t\tpage: pageCurrent,\n\t\tlimit: limitCurrent,\n\t};\n};\n"],"names":["PaginationItem","className","color","active","children","text","onClick","bgClass","clsx","colorClass","twMerge","jsx","FormatPagePagination","page","total","siblings","_","leftSiblingsIndex","rightSiblingsIndex","showLeftDots","showRightDots","leftItemsCount","i","rightItemsCount","FormatLimitPagination","data","el","Pagination","limit","isLimitSelect","dataLimit","onChange","translate","totalPagination","dataPageFormat","dataLimitFormat","handleChange","value","handlePrev","handleNext","handleChangeSelect","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","SelectLabel","item","SelectItem","_a","IoIosArrowBack","usePagination","initialPage","initialLimit","pageCurrent","setPageCurrent","useState","limitCurrent","setLimitCurrent","useCallback"],"mappings":"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"}
@@ -1,31 +1,27 @@
1
1
  import { j as s } from "../chunks/jsx-runtime-BYq8_R6m.js";
2
- import { t as f } from "../chunks/bundle-mjs-kGHm2Pod.js";
2
+ import { t as x } from "../chunks/bundle-mjs-kGHm2Pod.js";
3
3
  import { I as j } from "../chunks/index-DK44x_HP.js";
4
- import { useState as y, useCallback as P } from "react";
5
- import { c as g } from "../chunks/clsx-OuTLNxxd.js";
6
- import { S as I, a as C, b as R, c as A, d as L, e as k, f as F } from "../chunks/index-BGRkNpAy.js";
4
+ import { useState as b, useCallback as k } from "react";
5
+ import { c as m } from "../chunks/clsx-OuTLNxxd.js";
6
+ import { S as v, a as I, b as C, c as L, d as R, e as A, f as F } from "../chunks/index-BGRkNpAy.js";
7
7
  import "../chunks/button-C6LoJycL.js";
8
- const p = ({
9
- className: c,
10
- color: e = "primary",
11
- active: r,
12
- children: a,
13
- text: t,
14
- onClick: d
15
- }) => {
16
- const m = g({
17
- "bg-primary": e === "primary" && r,
18
- "bg-success": e === "success" && r,
19
- "bg-danger": e === "danger" && r,
20
- "bg-warning": e === "warning" && r,
21
- "bg-default": e === "default" && r
22
- }), l = f(
23
- g("text-sm", {
24
- "group-hover:text-primary-500": e === "primary" && !r,
25
- "group-hover:text-success-500": e === "success" && !r,
26
- "group-hover:text-danger-500": e === "danger" && !r,
27
- "group-hover:text-warning-500": e === "warning" && !r,
28
- "group-hover:text-default-500": e === "default" && !r,
8
+ const p = ({ className: l, color: e = "primary", active: r, children: d, text: t, onClick: c }) => {
9
+ const f = m(
10
+ {
11
+ "bg-primary": e === "primary" && r,
12
+ "bg-success": e === "success" && r,
13
+ "bg-danger": e === "danger" && r,
14
+ "bg-warning": e === "warning" && r,
15
+ "bg-default": e === "default" && r,
16
+ "dark:hover:bg-default-200 dark:hover:text-default-800": !r
17
+ }
18
+ ), u = x(
19
+ m("text-sm", {
20
+ "group-hover:text-primary-500 dark:group-hover:text-default-800": e === "primary" && !r,
21
+ "group-hover:text-success-500 dark:group-hover:text-default-800": e === "success" && !r,
22
+ "group-hover:text-danger-500 dark:group-hover:text-default-800": e === "danger" && !r,
23
+ "group-hover:text-warning-500 dark:group-hover:text-default-800": e === "warning" && !r,
24
+ "group-hover:text-default-500 dark:group-hover:text-default-800": e === "default" && !r,
29
25
  "text-default-foreground": r && e === "default",
30
26
  "text-primary-foreground": r && e === "primary",
31
27
  "text-success-foreground": r && e === "success",
@@ -33,112 +29,111 @@ const p = ({
33
29
  "text-warning-foreground": r && e === "warning"
34
30
  })
35
31
  );
36
- return /* @__PURE__ */ s.jsx(
37
- "div",
38
- {
39
- className: f(
40
- "w-[33px] h-[32px] flex items-center justify-center group",
41
- m,
42
- c
43
- ),
44
- onClick: d,
45
- children: a || /* @__PURE__ */ s.jsx("p", { className: l, children: t })
46
- }
47
- );
32
+ return /* @__PURE__ */ s.jsx("div", { className: x("w-[33px] h-[32px] flex items-center justify-center group ", f, l), onClick: c, children: d || /* @__PURE__ */ s.jsx("p", { className: u, children: t }) });
48
33
  }, M = ({
49
- page: c,
34
+ page: l,
50
35
  total: e,
51
36
  siblings: r = 1
52
37
  }) => {
53
38
  if (7 + r >= e)
54
- return Array.from({ length: e }, (n, o) => o + 1);
55
- const t = Math.max(c - r, 1), d = Math.min(c + r, e), m = t > 2, l = d < e - 2;
56
- if (!m && l) {
39
+ return Array.from({ length: e }, (n, a) => a + 1);
40
+ const t = Math.max(l - r, 1), c = Math.min(l + r, e), f = t > 2, u = c < e - 2;
41
+ if (!f && u) {
57
42
  const n = 3 + 2 * r;
58
- return [...Array.from({ length: n }, (u, x) => x + 1), "...", e];
59
- } else if (m && !l) {
43
+ return [...Array.from({ length: n }, (i, g) => g + 1), "...", e];
44
+ } else if (f && !u) {
60
45
  const n = 3 + 2 * r;
61
46
  return [1, "...", ...Array.from(
62
47
  { length: n },
63
- (u, x) => e - n + x + 1
48
+ (i, g) => e - n + g + 1
64
49
  )];
65
50
  } else
66
51
  return [1, "...", ...Array.from(
67
- { length: d - t + 1 },
68
- (o, u) => t + u
52
+ { length: c - t + 1 },
53
+ (a, i) => t + i
69
54
  ), "...", e];
70
- }, _ = (c) => c.map((e) => ({
55
+ }, _ = (l) => l.map((e) => ({
71
56
  id: e,
72
57
  name: e
73
58
  })), q = ({
74
- className: c,
59
+ className: l,
75
60
  color: e = "primary",
76
61
  total: r,
77
- limit: a = 20,
62
+ limit: d = 20,
78
63
  page: t = 1,
79
- siblings: d = 1,
80
- isLimitSelect: m = !0,
81
- dataLimit: l = [10, 15, 20, 50, 100, 200],
82
- onChange: n
64
+ siblings: c = 1,
65
+ isLimitSelect: f = !0,
66
+ dataLimit: u = [10, 15, 20, 50, 100, 200],
67
+ onChange: n,
68
+ translate: a = {
69
+ selectLimit: "Limites",
70
+ rowPerPage: "Filas por pagina",
71
+ of: "de"
72
+ }
83
73
  }) => {
84
- const o = Math.ceil(r / a), u = M({
74
+ const i = Math.ceil(r / d), g = M({
85
75
  page: t,
86
- siblings: d,
87
- total: o
88
- }), x = _(l), N = (i) => {
89
- i !== "..." && n && n({
90
- limit: a,
91
- page: Number(i)
76
+ siblings: c,
77
+ total: i
78
+ }), N = _(u), w = (o) => {
79
+ o !== "..." && n && n({
80
+ limit: d,
81
+ page: Number(o)
92
82
  });
93
- }, S = () => {
83
+ }, P = () => {
94
84
  t !== 1 && n && n({
95
- limit: a,
85
+ limit: d,
96
86
  page: t - 1
97
87
  });
98
- }, b = () => {
99
- t === o || o === 0 || n && n({
100
- limit: a,
88
+ }, S = () => {
89
+ t === i || i === 0 || n && n({
90
+ limit: d,
101
91
  page: t + 1
102
92
  });
103
- }, w = (i) => {
93
+ }, y = (o) => {
104
94
  n && n({
105
95
  page: t,
106
- limit: i ? Number(i) : 20
96
+ limit: o ? Number(o) : 20
107
97
  });
108
98
  };
109
- return /* @__PURE__ */ s.jsxs("div", { className: f("flex justify-between gap-x-2 items-center", c), children: [
110
- m ? /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-x-2.5", children: [
111
- /* @__PURE__ */ s.jsx("div", { children: /* @__PURE__ */ s.jsx("span", { className: "text-sm text-gray-500", children: "Filas por pagina" }) }),
112
- /* @__PURE__ */ s.jsxs(I, { value: a == null ? void 0 : a.toString(), onValueChange: w, children: [
113
- /* @__PURE__ */ s.jsx(C, { className: "min-w-20", children: /* @__PURE__ */ s.jsx(R, { placeholder: "Select a fruit" }) }),
114
- /* @__PURE__ */ s.jsx(A, { children: /* @__PURE__ */ s.jsxs(L, { children: [
115
- /* @__PURE__ */ s.jsx(k, { children: "Limites" }),
116
- x.map((i) => {
99
+ return /* @__PURE__ */ s.jsxs("div", { className: x("flex justify-between gap-x-2 items-center", l), children: [
100
+ f ? /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-x-2.5", children: [
101
+ /* @__PURE__ */ s.jsx("div", { children: /* @__PURE__ */ s.jsxs("span", { className: "text-sm text-default-500", children: [
102
+ (a == null ? void 0 : a.rowPerPage) || "Filas por pagina",
103
+ ":"
104
+ ] }) }),
105
+ /* @__PURE__ */ s.jsxs(v, { value: d == null ? void 0 : d.toString(), onValueChange: y, children: [
106
+ /* @__PURE__ */ s.jsx(I, { className: "min-w-20", children: /* @__PURE__ */ s.jsx(C, { placeholder: "Select a fruit" }) }),
107
+ /* @__PURE__ */ s.jsx(L, { children: /* @__PURE__ */ s.jsxs(R, { children: [
108
+ /* @__PURE__ */ s.jsx(A, { children: (a == null ? void 0 : a.selectLimit) || "Limites" }),
109
+ N.map((o) => {
117
110
  var h;
118
- return /* @__PURE__ */ s.jsx(F, { value: (h = i.id) == null ? void 0 : h.toString(), children: i.name }, i.id);
111
+ return /* @__PURE__ */ s.jsx(F, { value: (h = o.id) == null ? void 0 : h.toString(), children: o.name }, o.id);
119
112
  })
120
113
  ] }) })
121
114
  ] }),
122
- /* @__PURE__ */ s.jsxs("div", { className: "text-sm text-gray-500", children: [
123
- /* @__PURE__ */ s.jsx("span", { className: "text-gray-900", children: `${t} - ${a}` }),
124
- " de ",
125
- /* @__PURE__ */ s.jsx("span", { className: "text-gray-900", children: r })
115
+ /* @__PURE__ */ s.jsxs("div", { className: "text-sm text-default-500", children: [
116
+ /* @__PURE__ */ s.jsx("span", { className: "text-default-500", children: `${t} - ${d}` }),
117
+ " ",
118
+ (a == null ? void 0 : a.of) || "de",
119
+ " ",
120
+ /* @__PURE__ */ s.jsx("span", { className: "text-default-500", children: r })
126
121
  ] })
127
122
  ] }) : null,
128
- /* @__PURE__ */ s.jsxs("div", { className: "flex items-center border border-gray-300 bg-white rounded-lg cursor-pointer", children: [
129
- /* @__PURE__ */ s.jsx(p, { className: g(t === 1 && "cursor-no-drop"), onClick: S, children: /* @__PURE__ */ s.jsx(j, { className: f("fill-gray-500", g(t === 1 && "fill-gray-300")) }) }),
130
- u.map((i, h) => /* @__PURE__ */ s.jsx(p, { text: i, active: t === i, color: e, onClick: () => N(i), className: "border-l" }, h)),
123
+ /* @__PURE__ */ s.jsxs("div", { className: "flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100", children: [
124
+ /* @__PURE__ */ s.jsx(p, { className: m(t === 1 && "cursor-no-drop", "rounded-tl-lg rounded-bl-lg "), onClick: P, children: /* @__PURE__ */ s.jsx(j, { className: x("fill-default-500", m(t === 1 && "fill-default-300")) }) }),
125
+ g.map((o, h) => /* @__PURE__ */ s.jsx(p, { text: o, active: t === o, color: e, onClick: () => w(o), className: "border-l border-divider " }, h)),
131
126
  /* @__PURE__ */ s.jsx(
132
127
  p,
133
128
  {
134
- className: g("border-l", (t === o || o === 0) && "cursor-no-drop"),
135
- onClick: b,
129
+ className: m("border-l border-divider rounded-tr-lg rounded-br-lg ", (t === i || i === 0) && "cursor-no-drop"),
130
+ onClick: S,
136
131
  children: /* @__PURE__ */ s.jsx(
137
132
  j,
138
133
  {
139
- className: f(
140
- "fill-gray-500 transform rotate-180",
141
- g((t === o || o === 0) && "fill-gray-300")
134
+ className: x(
135
+ "fill-default-500 transform rotate-180 ",
136
+ m((t === i || i === 0) && "fill-default-300")
142
137
  )
143
138
  }
144
139
  )
@@ -146,12 +141,12 @@ const p = ({
146
141
  )
147
142
  ] })
148
143
  ] });
149
- }, z = ({ initialPage: c = 1, initialLimit: e = 20 }) => {
150
- const [r, a] = y(c), [t, d] = y(e);
144
+ }, z = ({ initialPage: l = 1, initialLimit: e = 20 }) => {
145
+ const [r, d] = b(l), [t, c] = b(e);
151
146
  return {
152
- handleSetPagination: P(
153
- ({ page: l, limit: n }) => {
154
- l !== r && a(l), n !== t && d(n);
147
+ handleSetPagination: k(
148
+ ({ page: u, limit: n }) => {
149
+ u !== r && d(u), n !== t && c(n);
155
150
  },
156
151
  [t, r]
157
152
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../src/components/pagination/pagination-item.tsx","../../src/components/pagination/function/index.ts","../../src/components/pagination/pagination.tsx","../../src/components/pagination/hook/use-pagination.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { type PaginationItemProps } from \"./interface/pagination.interface\";\nimport clsx from \"clsx\";\n\nexport const PaginationItem = ({\n\tclassName,\n\tcolor = \"primary\",\n\tactive,\n\tchildren,\n\ttext,\n\tonClick,\n}: PaginationItemProps) => {\n\tconst bgClass = clsx({\n\t\t\"bg-primary\": color === \"primary\" && active,\n\t\t\"bg-success\": color === \"success\" && active,\n \"bg-danger\": color === \"danger\" && active,\n \"bg-warning\": color === \"warning\" && active,\n \"bg-default\": color === \"default\" && active,\n\t});\n\tconst colorClass = twMerge(\n\t\tclsx(\"text-sm\", {\n\t\t\t\"group-hover:text-primary-500\": color === \"primary\" && !active,\n\t\t\t\"group-hover:text-success-500\": color === \"success\" && !active,\n \"group-hover:text-danger-500\": color === \"danger\" && !active,\n \"group-hover:text-warning-500\": color === \"warning\" && !active,\n \"group-hover:text-default-500\": color === \"default\" && !active,\n\n\t\t\t\"text-default-foreground\": active && color === \"default\",\n\t\t\t\"text-primary-foreground\": active && color === \"primary\",\n \"text-success-foreground\": active && color === \"success\",\n \"text-danger-foreground\": active && color === \"danger\",\n \"text-warning-foreground\": active && color === \"warning\",\n\t\t})\n\t);\n\n\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(\n\t\t\t\t\"w-[33px] h-[32px] flex items-center justify-center group\",\n\t\t\t\tbgClass,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t{children || <p className={colorClass}>{text}</p>}\n\t\t</div>\n\t);\n};\n","import { type PaginationValueProps } from \"../interface/pagination-share.interface\";\n\nexport const FormatPagePagination = ({\n\tpage,\n\ttotal,\n\tsiblings = 1,\n}: PaginationValueProps) => {\n\tconst totalPageNoInArray = 7 + siblings;\n\n\tif (totalPageNoInArray >= total) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst leftSiblingsIndex = Math.max(page - siblings, 1);\n\tconst rightSiblingsIndex = Math.min(page + siblings, total);\n\n\tconst showLeftDots = leftSiblingsIndex > 2;\n\tconst showRightDots = rightSiblingsIndex < total - 2;\n\n\tif (!showLeftDots && showRightDots) {\n\t\tconst leftItemsCount = 3 + 2 * siblings;\n\t\tconst leftRange = Array.from({ length: leftItemsCount }, (_, i) => i + 1);\n\t\treturn [...leftRange, \"...\", total];\n\t} else if (showLeftDots && !showRightDots) {\n\t\tconst rightItemsCount = 3 + 2 * siblings;\n\t\tconst rightRange = Array.from(\n\t\t\t{ length: rightItemsCount },\n\t\t\t(_, i) => total - rightItemsCount + i + 1\n\t\t);\n\t\treturn [1, \"...\", ...rightRange];\n\t} else {\n\t\tconst middleRange = Array.from(\n\t\t\t{ length: rightSiblingsIndex - leftSiblingsIndex + 1 },\n\t\t\t(_, i) => leftSiblingsIndex + i\n\t\t);\n\t\treturn [1, \"...\", ...middleRange, \"...\", total];\n\t}\n};\n\nexport const FormatLimitPagination = (data: number[]) => {\n\treturn data.map((el) => {\n\t\treturn {\n\t\t\tid: el,\n\t\t\tname: el,\n\t\t};\n\t});\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { IoIosArrowBack } from \"react-icons/io\";\nimport { PaginationItem } from \"./pagination-item\";\nimport { type PaginationProps } from \"./interface/pagination.interface\";\nimport { FormatLimitPagination, FormatPagePagination } from \"./function\";\nimport clsx from \"clsx\";\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from \"../ui\";\n\nexport const Pagination = ({\n\tclassName,\n\tcolor = \"primary\",\n\n\ttotal,\n\tlimit = 20,\n\tpage = 1,\n\tsiblings = 1,\n\tisLimitSelect = true,\n\tdataLimit = [10, 15, 20, 50, 100, 200],\n\tonChange,\n}: PaginationProps) => {\n\tconst totalPagination = Math.ceil(total / limit);\n\n\tconst dataPageFormat = FormatPagePagination({\n\t\tlimit,\n\t\tpage,\n\t\tsiblings,\n\t\ttotal: totalPagination,\n\t});\n\tconst dataLimitFormat = FormatLimitPagination(dataLimit);\n\n\tconst handleChange = (value: number | string | null) => {\n\t\tif (value === \"...\") return;\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: Number(value),\n\t\t\t});\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (page === 1) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page - 1,\n\t\t\t});\n\t};\n\n\tconst handleNext = () => {\n\t\tif (page === totalPagination || totalPagination === 0) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page + 1,\n\t\t\t});\n\t};\n\n\tconst handleChangeSelect = (value: string) => {\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tpage,\n\t\t\t\tlimit: value ? Number(value) : 20,\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"flex justify-between gap-x-2 items-center\", className)}>\n\t\t\t{isLimitSelect ? (\n\t\t\t\t<div className=\"flex items-center gap-x-2.5\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span className=\"text-sm text-gray-500\">Filas por pagina</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Select value={limit?.toString()} onValueChange={handleChangeSelect}>\n\t\t\t\t\t\t<SelectTrigger className=\"min-w-20\">\n\t\t\t\t\t\t\t<SelectValue placeholder=\"Select a fruit\" />\n\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t<SelectGroup>\n\t\t\t\t\t\t\t\t<SelectLabel>Limites</SelectLabel>\n\t\t\t\t\t\t\t\t{dataLimitFormat.map((item) => (\n\t\t\t\t\t\t\t\t\t<SelectItem key={item.id} value={item.id?.toString()}>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SelectGroup>\n\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t</Select>\n\n\t\t\t\t\t<div className=\"text-sm text-gray-500\">\n\t\t\t\t\t\t<span className=\"text-gray-900\">{`${page} - ${limit}`}</span> de <span className=\"text-gray-900\">{total}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t<div className=\"flex items-center border border-gray-300 bg-white rounded-lg cursor-pointer\">\n\t\t\t\t<PaginationItem className={clsx(page === 1 && \"cursor-no-drop\")} onClick={handlePrev}>\n\t\t\t\t\t<IoIosArrowBack className={twMerge(\"fill-gray-500\", clsx(page === 1 && \"fill-gray-300\"))} />\n\t\t\t\t</PaginationItem>\n\n\t\t\t\t{dataPageFormat.map((el, i) => (\n\t\t\t\t\t<PaginationItem key={i} text={el} active={page === el} color={color} onClick={() => handleChange(el)} className=\"border-l\" />\n\t\t\t\t))}\n\n\t\t\t\t<PaginationItem\n\t\t\t\t\tclassName={clsx(\"border-l\", (page === totalPagination || totalPagination === 0) && \"cursor-no-drop\")}\n\t\t\t\t\tonClick={handleNext}\n\t\t\t\t>\n\t\t\t\t\t<IoIosArrowBack\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"fill-gray-500 transform rotate-180\",\n\t\t\t\t\t\t\tclsx((page === totalPagination || totalPagination === 0) && \"fill-gray-300\"),\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</PaginationItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { useCallback, useState } from \"react\";\nimport { type PaginationHookProps, type UsePaginationProps } from \"../interface/pagination.interface\";\nimport { type PaginationSetValueProps } from \"../interface/pagination-share.interface\";\n\nexport const usePagination = ({ initialPage = 1, initialLimit = 20 }: UsePaginationProps): PaginationHookProps => {\n\tconst [pageCurrent, setPageCurrent] = useState<number>(initialPage);\n\tconst [limitCurrent, setLimitCurrent] = useState<number>(initialLimit);\n\n\tconst handleSetPagination = useCallback(\n\t\t({ page, limit }: PaginationSetValueProps) => {\n\t\t\tif (page !== pageCurrent) setPageCurrent(page);\n\t\t\tif (limit !== limitCurrent) setLimitCurrent(limit);\n\t\t},\n\t\t[limitCurrent, pageCurrent],\n\t);\n\n\treturn {\n\t\thandleSetPagination,\n\t\tpage: pageCurrent,\n\t\tlimit: limitCurrent,\n\t};\n};\n"],"names":["PaginationItem","className","color","active","children","text","onClick","bgClass","clsx","colorClass","twMerge","jsx","FormatPagePagination","page","total","siblings","_","i","leftSiblingsIndex","rightSiblingsIndex","showLeftDots","showRightDots","leftItemsCount","rightItemsCount","FormatLimitPagination","data","el","Pagination","limit","isLimitSelect","dataLimit","onChange","totalPagination","dataPageFormat","dataLimitFormat","handleChange","value","handlePrev","handleNext","handleChangeSelect","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","SelectLabel","item","SelectItem","_a","IoIosArrowBack","usePagination","initialPage","initialLimit","pageCurrent","setPageCurrent","useState","limitCurrent","setLimitCurrent","useCallback"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../src/components/pagination/pagination-item.tsx","../../src/components/pagination/function/index.ts","../../src/components/pagination/pagination.tsx","../../src/components/pagination/hook/use-pagination.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { type PaginationItemProps } from \"./interface/pagination.interface\";\nimport clsx from \"clsx\";\n\nexport const PaginationItem = ({ className, color = \"primary\", active, children, text, onClick }: PaginationItemProps) => {\n\tconst bgClass = clsx(\n\t\t{\n\t\t\t\"bg-primary\": color === \"primary\" && active,\n\t\t\t\"bg-success\": color === \"success\" && active,\n\t\t\t\"bg-danger\": color === \"danger\" && active,\n\t\t\t\"bg-warning\": color === \"warning\" && active,\n\t\t\t\"bg-default\": color === \"default\" && active,\n \"dark:hover:bg-default-200 dark:hover:text-default-800\": !active,\n\t\t},\n\t);\n\tconst colorClass = twMerge(\n\t\tclsx(\"text-sm\", {\n\t\t\t\"group-hover:text-primary-500 dark:group-hover:text-default-800\": color === \"primary\" && !active,\n\t\t\t\"group-hover:text-success-500 dark:group-hover:text-default-800\": color === \"success\" && !active,\n\t\t\t\"group-hover:text-danger-500 dark:group-hover:text-default-800\": color === \"danger\" && !active,\n\t\t\t\"group-hover:text-warning-500 dark:group-hover:text-default-800\": color === \"warning\" && !active,\n\t\t\t\"group-hover:text-default-500 dark:group-hover:text-default-800\": color === \"default\" && !active,\n\n\t\t\t\"text-default-foreground\": active && color === \"default\",\n\t\t\t\"text-primary-foreground\": active && color === \"primary\",\n\t\t\t\"text-success-foreground\": active && color === \"success\",\n\t\t\t\"text-danger-foreground\": active && color === \"danger\",\n\t\t\t\"text-warning-foreground\": active && color === \"warning\",\n\t\t}),\n\t);\n\n\treturn (\n\t\t<div className={twMerge(\"w-[33px] h-[32px] flex items-center justify-center group \", bgClass, className)} onClick={onClick}>\n\t\t\t{children || <p className={colorClass}>{text}</p>}\n\t\t</div>\n\t);\n};\n","import { type PaginationValueProps } from \"../interface/pagination-share.interface\";\n\nexport const FormatPagePagination = ({\n\tpage,\n\ttotal,\n\tsiblings = 1,\n}: PaginationValueProps) => {\n\tconst totalPageNoInArray = 7 + siblings;\n\n\tif (totalPageNoInArray >= total) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst leftSiblingsIndex = Math.max(page - siblings, 1);\n\tconst rightSiblingsIndex = Math.min(page + siblings, total);\n\n\tconst showLeftDots = leftSiblingsIndex > 2;\n\tconst showRightDots = rightSiblingsIndex < total - 2;\n\n\tif (!showLeftDots && showRightDots) {\n\t\tconst leftItemsCount = 3 + 2 * siblings;\n\t\tconst leftRange = Array.from({ length: leftItemsCount }, (_, i) => i + 1);\n\t\treturn [...leftRange, \"...\", total];\n\t} else if (showLeftDots && !showRightDots) {\n\t\tconst rightItemsCount = 3 + 2 * siblings;\n\t\tconst rightRange = Array.from(\n\t\t\t{ length: rightItemsCount },\n\t\t\t(_, i) => total - rightItemsCount + i + 1\n\t\t);\n\t\treturn [1, \"...\", ...rightRange];\n\t} else {\n\t\tconst middleRange = Array.from(\n\t\t\t{ length: rightSiblingsIndex - leftSiblingsIndex + 1 },\n\t\t\t(_, i) => leftSiblingsIndex + i\n\t\t);\n\t\treturn [1, \"...\", ...middleRange, \"...\", total];\n\t}\n};\n\nexport const FormatLimitPagination = (data: number[]) => {\n\treturn data.map((el) => {\n\t\treturn {\n\t\t\tid: el,\n\t\t\tname: el,\n\t\t};\n\t});\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { IoIosArrowBack } from \"react-icons/io\";\nimport { PaginationItem } from \"./pagination-item\";\nimport { type PaginationProps } from \"./interface/pagination.interface\";\nimport { FormatLimitPagination, FormatPagePagination } from \"./function\";\nimport clsx from \"clsx\";\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from \"../ui\";\n\nexport const Pagination = ({\n\tclassName,\n\tcolor = \"primary\",\n\n\ttotal,\n\tlimit = 20,\n\tpage = 1,\n\tsiblings = 1,\n\tisLimitSelect = true,\n\tdataLimit = [10, 15, 20, 50, 100, 200],\n\tonChange,\n translate = {\n selectLimit: \"Limites\",\n rowPerPage: \"Filas por pagina\",\n of: \"de\",\n },\n}: PaginationProps) => {\n\tconst totalPagination = Math.ceil(total / limit);\n\n\tconst dataPageFormat = FormatPagePagination({\n\t\tlimit,\n\t\tpage,\n\t\tsiblings,\n\t\ttotal: totalPagination,\n\t});\n\tconst dataLimitFormat = FormatLimitPagination(dataLimit);\n\n\tconst handleChange = (value: number | string | null) => {\n\t\tif (value === \"...\") return;\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: Number(value),\n\t\t\t});\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (page === 1) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page - 1,\n\t\t\t});\n\t};\n\n\tconst handleNext = () => {\n\t\tif (page === totalPagination || totalPagination === 0) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page + 1,\n\t\t\t});\n\t};\n\n\tconst handleChangeSelect = (value: string) => {\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tpage,\n\t\t\t\tlimit: value ? Number(value) : 20,\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"flex justify-between gap-x-2 items-center\", className)}>\n\t\t\t{isLimitSelect ? (\n\t\t\t\t<div className=\"flex items-center gap-x-2.5\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span className=\"text-sm text-default-500\">\n {translate?.rowPerPage || \"Filas por pagina\"}:\n </span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Select value={limit?.toString()} onValueChange={handleChangeSelect}>\n\t\t\t\t\t\t<SelectTrigger className=\"min-w-20\">\n\t\t\t\t\t\t\t<SelectValue placeholder=\"Select a fruit\" />\n\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t<SelectGroup>\n\t\t\t\t\t\t\t\t<SelectLabel>\n {translate?.selectLimit || \"Limites\"}\n </SelectLabel>\n\t\t\t\t\t\t\t\t{dataLimitFormat.map((item) => (\n\t\t\t\t\t\t\t\t\t<SelectItem key={item.id} value={item.id?.toString()}>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SelectGroup>\n\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t</Select>\n\n\t\t\t\t\t<div className=\"text-sm text-default-500\">\n\t\t\t\t\t\t<span className=\"text-default-500\" >{`${page} - ${limit}`}</span> {translate?.of || \"de\"} <span className=\"text-default-500\">{total}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t<div className=\"flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100\">\n\t\t\t\t<PaginationItem className={clsx(page === 1 && \"cursor-no-drop\", \"rounded-tl-lg rounded-bl-lg \")} onClick={handlePrev}>\n\t\t\t\t\t<IoIosArrowBack className={twMerge(\"fill-default-500\", clsx(page === 1 && \"fill-default-300\"))} />\n\t\t\t\t</PaginationItem>\n\n\t\t\t\t{dataPageFormat.map((el, i) => (\n\t\t\t\t\t<PaginationItem key={i} text={el} active={page === el} color={color} onClick={() => handleChange(el)} className=\"border-l border-divider \" />\n\t\t\t\t))}\n\n\t\t\t\t<PaginationItem\n\t\t\t\t\tclassName={clsx(\"border-l border-divider rounded-tr-lg rounded-br-lg \", (page === totalPagination || totalPagination === 0) && \"cursor-no-drop\")}\n\t\t\t\t\tonClick={handleNext}\n\t\t\t\t>\n\t\t\t\t\t<IoIosArrowBack\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"fill-default-500 transform rotate-180 \",\n\t\t\t\t\t\t\tclsx((page === totalPagination || totalPagination === 0) && \"fill-default-300\"),\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</PaginationItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { useCallback, useState } from \"react\";\nimport { type PaginationHookProps, type UsePaginationProps } from \"../interface/pagination.interface\";\nimport { type PaginationSetValueProps } from \"../interface/pagination-share.interface\";\n\nexport const usePagination = ({ initialPage = 1, initialLimit = 20 }: UsePaginationProps): PaginationHookProps => {\n\tconst [pageCurrent, setPageCurrent] = useState<number>(initialPage);\n\tconst [limitCurrent, setLimitCurrent] = useState<number>(initialLimit);\n\n\tconst handleSetPagination = useCallback(\n\t\t({ page, limit }: PaginationSetValueProps) => {\n\t\t\tif (page !== pageCurrent) setPageCurrent(page);\n\t\t\tif (limit !== limitCurrent) setLimitCurrent(limit);\n\t\t},\n\t\t[limitCurrent, pageCurrent],\n\t);\n\n\treturn {\n\t\thandleSetPagination,\n\t\tpage: pageCurrent,\n\t\tlimit: limitCurrent,\n\t};\n};\n"],"names":["PaginationItem","className","color","active","children","text","onClick","bgClass","clsx","colorClass","twMerge","jsx","FormatPagePagination","page","total","siblings","_","i","leftSiblingsIndex","rightSiblingsIndex","showLeftDots","showRightDots","leftItemsCount","rightItemsCount","FormatLimitPagination","data","el","Pagination","limit","isLimitSelect","dataLimit","onChange","translate","totalPagination","dataPageFormat","dataLimitFormat","handleChange","value","handlePrev","handleNext","handleChangeSelect","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","SelectLabel","item","SelectItem","_a","IoIosArrowBack","usePagination","initialPage","initialLimit","pageCurrent","setPageCurrent","useState","limitCurrent","setLimitCurrent","useCallback"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "lizaui",
3
3
  "private": false,
4
4
  "license": "ISC",
5
- "version": "3.0.33",
5
+ "version": "3.0.34",
6
6
  "type": "module",
7
7
  "main": "dist/index.cjs.js",
8
8
  "module": "dist/index.es.js",