{"version":3,"file":"NumberingPagination.mjs","sources":["../../../lib/components/Grid/NumberingPagination.js"],"sourcesContent":["var __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport IconButton from '../IconButton';\nimport { ChevronLeftIcon, ChevronRightIcon, DoubleArrowLeftIcon, DoubleArrowRightIcon, } from '@radix-ui/react-icons';\nimport Select from '../Select';\nimport { MAIN_COLOR } from '../../../lib/color/constants';\nimport Button from '../Button';\nimport TextField from '../TextField';\nimport Text from '../../Typography/Text';\nfunction NumberingPagination(_a) {\n    var _b, _c, _d;\n    var table = _a.table;\n    var _e = useState('1'), nowPage = _e[0], setNowPage = _e[1];\n    var color = (_b = table.options.color) !== null && _b !== void 0 ? _b : MAIN_COLOR;\n    var radius = (_c = table.options.radius) !== null && _c !== void 0 ? _c : 'medium';\n    var size = table.options.size == 'x-small' ? 'small' : table.options.size;\n    var currentPage = table.options.pagination\n        ? table.options.pagination.pageIndex\n        : table.getState().pagination.pageIndex;\n    var renderPageNumbers = function () {\n        var pageNumbers = [];\n        var currentInx = table.options.pagination\n            ? table.options.pagination.pageIndex\n            : table.getState().pagination.pageIndex;\n        var _loop_1 = function (i) {\n            pageNumbers.push(_jsx(Button, { size: size, appearance: \"ghost\", onClick: function () {\n                    if (currentInx !== i) {\n                        table.setPageIndex(i);\n                        table.options.setPagination &&\n                            table.options.setPagination(__assign(__assign({}, table.options.pagination), { pageIndex: i }));\n                        setNowPage(String(i + 1));\n                    }\n                }, color: currentInx === i ? color : 'slate', radius: radius, children: i + 1 }, i));\n        };\n        for (var i = 0; i < table.getPageCount(); i++) {\n            _loop_1(i);\n        }\n        if (pageNumbers.length > 10) {\n            if (currentInx - 3 > 0 && currentInx + 3 < table.getPageCount()) {\n                pageNumbers = pageNumbers.slice(currentInx - 2, currentInx + 3);\n                pageNumbers.unshift(_jsx(Button, { size: size, appearance: \"ghost\", onClick: function () {\n                        table.setPageIndex(0);\n                        table.options.setPagination &&\n                            table.options.setPagination(__assign(__assign({}, table.options.pagination), { pageIndex: 0 }));\n                        setNowPage('1');\n                    }, color: currentInx === 0 ? color : 'slate', radius: radius, children: 1 }, 0), _jsx(Button, { appearance: \"ghost\", disabled: true, size: size, children: \"...\" }, 'ellipsisButton-1'));\n                pageNumbers.push(_jsx(Button, { appearance: \"ghost\", disabled: true, size: size, children: \"...\" }, 'ellipsisButton-2'), _jsx(Button, { size: size, appearance: \"ghost\", onClick: function () {\n                        table.setPageIndex(table.getPageCount() - 1);\n                        table.options.setPagination &&\n                            table.options.setPagination(__assign(__assign({}, table.options.pagination), { pageIndex: table.getPageCount() - 1 }));\n                        setNowPage(String(table.getPageCount()));\n                    }, color: currentInx === table.getPageCount() - 1 ? color : 'slate', radius: radius, children: table.getPageCount() }, table.getPageCount() - 1));\n            }\n            else if (currentInx - 3 <= 0) {\n                pageNumbers = pageNumbers.slice(0, 7);\n                pageNumbers.push(_jsx(Button, { appearance: \"ghost\", disabled: true, size: size, children: \"...\" }, 'ellipsisButton-3'), _jsx(Button, { size: size, appearance: \"ghost\", onClick: function () {\n                        table.setPageIndex(table.getPageCount() - 1);\n                        table.options.setPagination &&\n                            table.options.setPagination(__assign(__assign({}, table.options.pagination), { pageIndex: table.getPageCount() - 1 }));\n                        setNowPage(String(table.getPageCount()));\n                    }, color: currentInx === table.getPageCount() - 1 ? color : 'slate', radius: radius, children: table.getPageCount() }, table.getPageCount() - 1));\n            }\n            else {\n                pageNumbers = pageNumbers.slice(table.getPageCount() - 7, table.getPageCount());\n                pageNumbers.unshift(_jsx(Button, { size: size, appearance: \"ghost\", onClick: function () {\n                        table.setPageIndex(0);\n                        table.options.setPagination &&\n                            table.options.setPagination(__assign(__assign({}, table.options.pagination), { pageIndex: 0 }));\n                        setNowPage('1');\n                    }, color: currentInx === 0 ? color : 'slate', radius: radius, children: 1 }, 0), _jsx(Button, { appearance: \"ghost\", disabled: true, size: size, children: \"...\" }, 'ellipsisButton-4'));\n            }\n        }\n        return pageNumbers;\n    };\n    return (_jsxs(\"div\", { children: [_jsxs(\"div\", { className: \"flex items-center justify-center gap-2\", children: [_jsxs(Select.Root, { size: size, color: color, radius: radius, value: String(table.getState().pagination.pageSize), defaultValue: String(table.getState().pagination.pageSize), onValueChange: function (e) {\n                            table.options.setPagination &&\n                                table.options.setPagination({\n                                    pageIndex: 0,\n                                    pageSize: Number(e),\n                                });\n                            table.setPageSize(Number(e));\n                            setNowPage('1');\n                            table.setPageIndex(0);\n                        }, children: [_jsx(Select.Trigger, {}), _jsx(Select.Content, { children: [10, 20, 30, 50, 100].map(function (pageSize) { return (_jsx(Select.Item, { value: String(pageSize), children: pageSize }, pageSize)); }) })] }), _jsxs(\"div\", { className: \"flex gap-2\", children: [_jsx(IconButton, { size: size, appearance: \"ghost\", className: \"border p-1\", color: color, radius: radius, onClick: function () {\n                                    table.firstPage();\n                                    table.options.setPagination &&\n                                        table.options.setPagination(__assign(__assign({}, table.options.pagination), { pageIndex: 0 }));\n                                    setNowPage('1');\n                                }, disabled: currentPage === 0, children: _jsx(DoubleArrowLeftIcon, {}) }), _jsx(IconButton, { size: size, appearance: \"ghost\", className: \"border p-1\", color: color, radius: radius, onClick: function () {\n                                    table.previousPage();\n                                    setNowPage(String(table.getState().pagination.pageIndex));\n                                    table.options.setPagination &&\n                                        table.options.setPagination(__assign(__assign({}, table.options.pagination), { pageIndex: table.options.pagination.pageIndex - 1 }));\n                                }, disabled: currentPage === 0, children: _jsx(ChevronLeftIcon, {}) })] }), _jsx(\"div\", { children: renderPageNumbers() }), _jsxs(\"div\", { className: \"flex gap-2\", children: [_jsx(IconButton, { size: size, appearance: \"ghost\", className: \"border p-1\", color: color, radius: radius, onClick: function () {\n                                    table.nextPage();\n                                    setNowPage(String(table.getState().pagination.pageIndex + 2));\n                                    table.options.setPagination &&\n                                        table.options.setPagination(__assign(__assign({}, table.options.pagination), { pageIndex: table.options.pagination.pageIndex + 1 }));\n                                }, disabled: currentPage === table.getPageCount() - 1, children: _jsx(ChevronRightIcon, {}) }), _jsx(IconButton, { size: size, appearance: \"ghost\", className: \"border p-1\", color: color, radius: radius, onClick: function () {\n                                    table.lastPage();\n                                    setNowPage(String(table.getPageCount()));\n                                    table.options.setPagination &&\n                                        table.options.setPagination(__assign(__assign({}, table.options.pagination), { pageIndex: table.getPageCount() - 1 }));\n                                }, disabled: currentPage === table.getPageCount() - 1, children: _jsx(DoubleArrowRightIcon, {}) })] })] }), !((_d = table.options) === null || _d === void 0 ? void 0 : _d.disableInputPagination) && (_jsxs(\"div\", { className: \"mt-4 flex items-center justify-center gap-2\", children: [_jsx(TextField.Root, { size: size, type: \"number\", color: color, radius: radius, min: \"1\", max: table.getPageCount(), value: nowPage, onChange: function (e) {\n                            setNowPage(e.target.value);\n                        }, className: \"w-[50px] border\" }), _jsxs(Text, { children: [\"/ \", table.getPageCount()] }), _jsx(Button, { size: size, onClick: function () { return table.setPageIndex(nowPage ? Number(nowPage) - 1 : 0); }, color: color, radius: radius, children: \"\\uC774\\uB3D9\" })] }))] }));\n}\nexport default NumberingPagination;\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","NumberingPagination","_a","_b","_c","_d","table","_e","useState","nowPage","setNowPage","color","options","MAIN_COLOR","radius","size","currentPage","pagination","pageIndex","getState","_jsxs","children","className","Select","Root","value","String","pageSize","defaultValue","onValueChange","e","setPagination","Number","setPageSize","setPageIndex","_jsx","Trigger","Content","map","Item","IconButton","appearance","onClick","firstPage","disabled","DoubleArrowLeftIcon","previousPage","ChevronLeftIcon","pageNumbers","currentInx","_loop_1","push","Button","getPageCount","slice","unshift","renderPageNumbers","nextPage","ChevronRightIcon","lastPage","DoubleArrowRightIcon","disableInputPagination","TextField","type","min","max","onChange","target","Text"],"mappings":"6eAAA,IAAIA,EAAsC,WAStC,OARAA,EAAWC,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,CACf,EACWH,EAASa,MAAMC,KAAMP,UAChC,EAUA,SAASQ,EAAoBC,GACzB,IAAIC,EAAIC,EAAIC,EACRC,EAAQJ,EAAGI,MACXC,EAAKC,EAAS,KAAMC,EAAUF,EAAG,GAAIG,EAAaH,EAAG,GACrDI,EAAuC,QAA9BR,EAAKG,EAAMM,QAAQD,aAA0B,IAAPR,EAAgBA,EAAKU,EACpEC,EAAyC,QAA/BV,EAAKE,EAAMM,QAAQE,cAA2B,IAAPV,EAAgBA,EAAK,SACtEW,EAA6B,WAAtBT,EAAMM,QAAQG,KAAoB,QAAUT,EAAMM,QAAQG,KACjEC,EAAcV,EAAMM,QAAQK,WAC1BX,EAAMM,QAAQK,WAAWC,UACzBZ,EAAMa,WAAWF,WAAWC,UAwDlC,OAAQE,EAAM,MAAO,CAAEC,SAAU,CAACD,EAAM,MAAO,CAAEE,UAAW,yCAA0CD,SAAU,CAACD,EAAMG,EAAOC,KAAM,CAAET,KAAMA,EAAMJ,MAAOA,EAAOG,OAAQA,EAAQW,MAAOC,OAAOpB,EAAMa,WAAWF,WAAWU,UAAWC,aAAcF,OAAOpB,EAAMa,WAAWF,WAAWU,UAAWE,cAAe,SAAUC,GAClSxB,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc,CACxBb,UAAW,EACXS,SAAUK,OAAOF,KAEzBxB,EAAM2B,YAAYD,OAAOF,IACzBpB,EAAW,KACXJ,EAAM4B,aAAa,EACtB,EAAEb,SAAU,CAACc,EAAKZ,EAAOa,QAAS,CAAE,GAAGD,EAAKZ,EAAOc,QAAS,CAAEhB,SAAU,CAAC,GAAI,GAAI,GAAI,GAAI,KAAKiB,KAAI,SAAUX,GAAY,OAAQQ,EAAKZ,EAAOgB,KAAM,CAAEd,MAAOC,OAAOC,GAAWN,SAAUM,GAAYA,EAAa,SAAUP,EAAM,MAAO,CAAEE,UAAW,aAAcD,SAAU,CAACc,EAAKK,EAAY,CAAEzB,KAAMA,EAAM0B,WAAY,QAASnB,UAAW,aAAcX,MAAOA,EAAOG,OAAQA,EAAQ4B,QAAS,WACtXpC,EAAMqC,YACNrC,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc7C,EAASA,EAAS,CAAA,EAAIoB,EAAMM,QAAQK,YAAa,CAAEC,UAAW,KAC9FR,EAAW,IACd,EAAEkC,SAA0B,IAAhB5B,EAAmBK,SAAUc,EAAKU,EAAqB,MAAQV,EAAKK,EAAY,CAAEzB,KAAMA,EAAM0B,WAAY,QAASnB,UAAW,aAAcX,MAAOA,EAAOG,OAAQA,EAAQ4B,QAAS,WAC5LpC,EAAMwC,eACNpC,EAAWgB,OAAOpB,EAAMa,WAAWF,WAAWC,YAC9CZ,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc7C,EAASA,EAAS,CAAE,EAAEoB,EAAMM,QAAQK,YAAa,CAAEC,UAAWZ,EAAMM,QAAQK,WAAWC,UAAY,IACvK,EAAmC0B,SAA0B,IAAhB5B,EAAmBK,SAAUc,EAAKY,EAAiB,CAAA,QAAYZ,EAAK,MAAO,CAAEd,SA1E9F,WAepB,IAdA,IAAI2B,EAAc,GACdC,EAAa3C,EAAMM,QAAQK,WACzBX,EAAMM,QAAQK,WAAWC,UACzBZ,EAAMa,WAAWF,WAAWC,UAC9BgC,EAAU,SAAU3D,GACpByD,EAAYG,KAAKhB,EAAKiB,EAAQ,CAAErC,KAAMA,EAAM0B,WAAY,QAASC,QAAS,WAC9DO,IAAe1D,IACfe,EAAM4B,aAAa3C,GACnBe,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc7C,EAASA,EAAS,CAAA,EAAIoB,EAAMM,QAAQK,YAAa,CAAEC,UAAW3B,KAC9FmB,EAAWgB,OAAOnC,EAAI,IAE7B,EAAEoB,MAAOsC,IAAe1D,EAAIoB,EAAQ,QAASG,OAAQA,EAAQO,SAAU9B,EAAI,GAAKA,GACjG,EACiBA,EAAI,EAAGA,EAAIe,EAAM+C,eAAgB9D,IACtC2D,EAAQ3D,GAqCZ,OAnCIyD,EAAYtD,OAAS,KACjBuD,EAAa,EAAI,GAAKA,EAAa,EAAI3C,EAAM+C,iBAC7CL,EAAcA,EAAYM,MAAML,EAAa,EAAGA,EAAa,IACjDM,QAAQpB,EAAKiB,EAAQ,CAAErC,KAAMA,EAAM0B,WAAY,QAASC,QAAS,WACrEpC,EAAM4B,aAAa,GACnB5B,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc7C,EAASA,EAAS,CAAA,EAAIoB,EAAMM,QAAQK,YAAa,CAAEC,UAAW,KAC9FR,EAAW,IACd,EAAEC,MAAsB,IAAfsC,EAAmBtC,EAAQ,QAASG,OAAQA,EAAQO,SAAU,GAAK,GAAIc,EAAKiB,EAAQ,CAAEX,WAAY,QAASG,UAAU,EAAM7B,KAAMA,EAAMM,SAAU,OAAS,qBACxK2B,EAAYG,KAAKhB,EAAKiB,EAAQ,CAAEX,WAAY,QAASG,UAAU,EAAM7B,KAAMA,EAAMM,SAAU,OAAS,oBAAqBc,EAAKiB,EAAQ,CAAErC,KAAMA,EAAM0B,WAAY,QAASC,QAAS,WAC1KpC,EAAM4B,aAAa5B,EAAM+C,eAAiB,GAC1C/C,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc7C,EAASA,EAAS,CAAE,EAAEoB,EAAMM,QAAQK,YAAa,CAAEC,UAAWZ,EAAM+C,eAAiB,KACrH3C,EAAWgB,OAAOpB,EAAM+C,gBAChD,EAAuB1C,MAAOsC,IAAe3C,EAAM+C,eAAiB,EAAI1C,EAAQ,QAASG,OAAQA,EAAQO,SAAUf,EAAM+C,gBAAkB/C,EAAM+C,eAAiB,KAE7IJ,EAAa,GAAK,GACvBD,EAAcA,EAAYM,MAAM,EAAG,IACvBH,KAAKhB,EAAKiB,EAAQ,CAAEX,WAAY,QAASG,UAAU,EAAM7B,KAAMA,EAAMM,SAAU,OAAS,oBAAqBc,EAAKiB,EAAQ,CAAErC,KAAMA,EAAM0B,WAAY,QAASC,QAAS,WAC1KpC,EAAM4B,aAAa5B,EAAM+C,eAAiB,GAC1C/C,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc7C,EAASA,EAAS,CAAE,EAAEoB,EAAMM,QAAQK,YAAa,CAAEC,UAAWZ,EAAM+C,eAAiB,KACrH3C,EAAWgB,OAAOpB,EAAM+C,gBAChD,EAAuB1C,MAAOsC,IAAe3C,EAAM+C,eAAiB,EAAI1C,EAAQ,QAASG,OAAQA,EAAQO,SAAUf,EAAM+C,gBAAkB/C,EAAM+C,eAAiB,KAGlJL,EAAcA,EAAYM,MAAMhD,EAAM+C,eAAiB,EAAG/C,EAAM+C,iBACpDE,QAAQpB,EAAKiB,EAAQ,CAAErC,KAAMA,EAAM0B,WAAY,QAASC,QAAS,WACrEpC,EAAM4B,aAAa,GACnB5B,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc7C,EAASA,EAAS,CAAA,EAAIoB,EAAMM,QAAQK,YAAa,CAAEC,UAAW,KAC9FR,EAAW,IACd,EAAEC,MAAsB,IAAfsC,EAAmBtC,EAAQ,QAASG,OAAQA,EAAQO,SAAU,GAAK,GAAIc,EAAKiB,EAAQ,CAAEX,WAAY,QAASG,UAAU,EAAM7B,KAAMA,EAAMM,SAAU,OAAS,sBAGzK2B,CACf,CAoBoIQ,KAAwBpC,EAAM,MAAO,CAAEE,UAAW,aAAcD,SAAU,CAACc,EAAKK,EAAY,CAAEzB,KAAMA,EAAM0B,WAAY,QAASnB,UAAW,aAAcX,MAAOA,EAAOG,OAAQA,EAAQ4B,QAAS,WAC/RpC,EAAMmD,WACN/C,EAAWgB,OAAOpB,EAAMa,WAAWF,WAAWC,UAAY,IAC1DZ,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc7C,EAASA,EAAS,CAAE,EAAEoB,EAAMM,QAAQK,YAAa,CAAEC,UAAWZ,EAAMM,QAAQK,WAAWC,UAAY,IACtI,EAAE0B,SAAU5B,IAAgBV,EAAM+C,eAAiB,EAAGhC,SAAUc,EAAKuB,EAAkB,MAAQvB,EAAKK,EAAY,CAAEzB,KAAMA,EAAM0B,WAAY,QAASnB,UAAW,aAAcX,MAAOA,EAAOG,OAAQA,EAAQ4B,QAAS,WAChNpC,EAAMqD,WACNjD,EAAWgB,OAAOpB,EAAM+C,iBACxB/C,EAAMM,QAAQmB,eACVzB,EAAMM,QAAQmB,cAAc7C,EAASA,EAAS,CAAE,EAAEoB,EAAMM,QAAQK,YAAa,CAAEC,UAAWZ,EAAM+C,eAAiB,IACxH,EAAET,SAAU5B,IAAgBV,EAAM+C,eAAiB,EAAGhC,SAAUc,EAAKyB,EAAsB,cAA2C,QAAxBvD,EAAKC,EAAMM,eAA4B,IAAPP,OAAgB,EAASA,EAAGwD,yBAA4BzC,EAAM,MAAO,CAAEE,UAAW,8CAA+CD,SAAU,CAACc,EAAK2B,EAAUtC,KAAM,CAAET,KAAMA,EAAMgD,KAAM,SAAUpD,MAAOA,EAAOG,OAAQA,EAAQkD,IAAK,IAAKC,IAAK3D,EAAM+C,eAAgB5B,MAAOhB,EAASyD,SAAU,SAAUpC,GACzbpB,EAAWoB,EAAEqC,OAAO1C,MAChD,EAA2BH,UAAW,oBAAsBF,EAAMgD,EAAM,CAAE/C,SAAU,CAAC,KAAMf,EAAM+C,kBAAoBlB,EAAKiB,EAAQ,CAAErC,KAAMA,EAAM2B,QAAS,WAAc,OAAOpC,EAAM4B,aAAazB,EAAUuB,OAAOvB,GAAW,EAAI,IAAOE,MAAOA,EAAOG,OAAQA,EAAQO,SAAU,YAChR"}