@artibet/react-mui-components 2.14.2 → 2.14.4
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +1 -1
- package/tables/index.js +1 -1
package/package.json
CHANGED
package/tables/index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
import{TextField as e,InputAdornment as t,IconButton as n,Typography as r,Tooltip as o,Button as l,Box as i,Select as a,MenuItem as c,Autocomplete as u,TableRow as s,TableCell as f,TableContainer as d,Table as m,TableHead as p,TableBody as g,TablePagination as v}from"@mui/material";import b from"react";import{MdClear as h,MdOutlineAdd as y}from"react-icons/md";import"date-fns";import"date-fns/locale";import C from"nprogress";import{TiArrowSortedUp as E,TiArrowSortedDown as S,TiArrowUnsorted as w}from"react-icons/ti";import x from"react-input-mask";import k from"axios";function F(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?F(Object(n),!0).forEach((function(t){I(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):F(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function I(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(){return P=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},P.apply(this,arguments)}function j(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,l,i,a=[],c=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=l.call(n)).done)&&(a.push(r.value),a.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw o}}return a}}(e,t)||T(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||T(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(e,t){if(e){if("string"==typeof e)return K(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?K(e,t):void 0}}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var R=function(r){var o=r.initialValue,l=r.onChange,i=r.placeholder,a=void 0===i?"":i,c=r.activeColor,u=void 0===c?"#D4F7F4":c,s=r.inactiveColor,f=void 0===s?"white":s,d=r.clearIcon,m=void 0===d||d,p=A(b.useState(o),2),g=p[0],v=p[1];b.useEffect((function(){v(o)}),[o]);return b.createElement(e,{sx:{backgroundColor:g?u:f},placeholder:a,value:g||"",fullWidth:!0,onChange:function(e){v(e.target.value),l(e.target.value)},size:"small",InputProps:{endAdornment:m&&b.createElement(t,{position:"end",disablePointerEvents:!g},b.createElement(n,{onClick:function(){return l("")}},g?b.createElement(h,null):b.createElement(h,{color:"#cccccc"})))}})},D=b.createContext(),B=function(e,t){var n;return function(){for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];n&&clearTimeout(n),n=setTimeout((function(){e.apply(void 0,o)}),t)}},V=function(){var e=b.useContext(D),t=e.state,n=e.props,r=e.api;return n.enableGlobalFilter?b.createElement(R,{initialValue:t.globalFilter,onChange:B(r.handleGlobalFilterChange,300),placeholder:n.globalFilterPlaceholder}):null};!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}("#nprogress {\r\n pointer-events: none;\r\n}\r\n\r\n#nprogress .bar {\r\n background: #29d;\r\n position: fixed;\r\n z-index: 99999;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 4px;\r\n}\r\n\r\n/* Fancy blur effect */\r\n#nprogress .peg {\r\n display: block;\r\n position: absolute;\r\n right: 0px;\r\n width: 100px;\r\n height: 100%;\r\n box-shadow: 0 0 10px #29d, 0 0 5px #29d;\r\n opacity: 1.0;\r\n -webkit-transform: rotate(3deg) translate(0px, -4px);\r\n -ms-transform: rotate(3deg) translate(0px, -4px);\r\n transform: rotate(3deg) translate(0px, -4px);\r\n}\r\n\r\n/* Remove these to get rid of the spinner */\r\n#nprogress .spinner {\r\n display: block;\r\n position: fixed;\r\n z-index: 1031;\r\n top: 15px;\r\n right: 15px;\r\n}\r\n\r\n#nprogress .spinner-icon {\r\n width: 18px;\r\n height: 18px;\r\n box-sizing: border-box;\r\n border: solid 2px transparent;\r\n border-top-color: #29d;\r\n border-left-color: #29d;\r\n border-radius: 50%;\r\n -webkit-animation: nprogress-spinner 400ms linear infinite;\r\n animation: nprogress-spinner 400ms linear infinite;\r\n}\r\n\r\n.nprogress-custom-parent {\r\n overflow: hidden;\r\n position: relative;\r\n}\r\n\r\n.nprogress-custom-parent #nprogress .spinner,\r\n.nprogress-custom-parent #nprogress .bar {\r\n position: absolute;\r\n}\r\n\r\n@-webkit-keyframes nprogress-spinner {\r\n 0% {\r\n -webkit-transform: rotate(0deg);\r\n }\r\n\r\n 100% {\r\n -webkit-transform: rotate(360deg);\r\n }\r\n}\r\n\r\n@keyframes nprogress-spinner {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n}");var M=function(){var e=b.useContext(D).props;return b.createElement(r,{variant:"h5",sx:e.titleStyle},e.title)},N=function(){var e=b.useContext(D).props;return e.enableCreateRow?b.createElement(o,{title:e.createButtonTooltip,arrow:!0,placement:"top"},b.createElement(l,{variant:e.createButtonVariant,onClick:function(){return e.onCreateRow()}},b.createElement(y,{size:24}))):null},L=function(){var e=b.useContext(D).props;return e.globalActions?b.createElement(b.Fragment,null,e.globalActions.map((function(e,t){return b.createElement(i,{key:t},e)}))):null},W=function(e){var t,n=e.column;b.useContext(D).props;var r=b.useContext(D).api;return b.createElement(b.Fragment,null,b.createElement(i,{sx:{dispaly:"flex",flexDirection:"column",justifyContent:"start",alignItems:"start"}},b.createElement(i,{sx:{display:"flex",flexDirection:"row",gap:.5,aligntItems:"center",cursor:n.enableSorting?"pointer":"default",justifyContent:"right"===n.align?"end":"center"===n.align?"center":"start"},onClick:n.enableSorting?function(e){return r.toggleSorting(e,n)}:null},b.createElement(i,null,n.label),b.createElement(i,null,n.enableSorting?null!==(t={asc:b.createElement(E,{size:20}),desc:b.createElement(S,{size:20})}[r.getSortingStatus(n)])&&void 0!==t?t:b.createElement(w,{size:20,color:"#cccccc"}):null))))},G=function(r){var o=r.initialValue,l=r.mask,i=void 0===l?"999999":l,a=r.onChange,c=r.placeholder,u=void 0===c?"":c,s=r.activeColor,f=void 0===s?"#D4F7F4":s,d=r.inactiveColor,m=void 0===d?"white":d,p=r.clearIcon,g=void 0===p||p,v=A(b.useState(o),2),y=v[0],C=v[1];b.useEffect((function(){C(o)}),[o]);return b.createElement(x,{mask:i,value:y,onChange:function(e){C((function(t){return t===e.target.value?t:(a(e.target.value),e.target.value)}))},maskChar:""},(function(){return b.createElement(e,{sx:{backgroundColor:y?f:m},placeholder:u,fullWidth:!0,size:"small",InputProps:{endAdornment:g&&b.createElement(t,{position:"end",disablePointerEvents:!y},b.createElement(n,{onClick:function(){return a("")}},y?b.createElement(h,null):b.createElement(h,{color:"#cccccc"})))}})}))},J=function(e){var r=e.value,o=e.options,l=e.onChange,i=e.valueKey,u=void 0===i?"id":i,s=e.labelKey,f=void 0===s?"label":s,d=e.placeholder,m=void 0===d?"":d,p=e.activeColor,g=void 0===p?"#D4F7F4":p,v=e.inactiveColor,y=void 0===v?"white":v,C=e.clearIcon,E=void 0===C||C,S=A(b.useState(-1),2),w=S[0],x=S[1];b.useEffect((function(){x(null===r||""===r?-1:r)}),[r]);return b.createElement(a,{sx:{backgroundColor:-1!==w?g:y,color:-1==w?"#cccccc":""},value:w,fullWidth:!0,onChange:function(e){var t=e.target.value;l(-1!==t?t:"")},size:"small",endAdornment:E&&b.createElement(t,{position:"end",disablePointerEvents:null===r},b.createElement(n,{onClick:function(){return l("")}},-1!==w?b.createElement(h,null):b.createElement(h,{color:"#cccccc"})))},b.createElement(c,{value:-1},m),o.map((function(e){return b.createElement(c,{key:e[u],value:e[u]},e[f])})))},U=["value","options","valueKey","labelKey","onChange","placeholder","activeColor","inactiveColor"],Q=function(t){var n=t.value,r=t.options,o=void 0===r?[]:r,l=t.valueKey,i=void 0===l?"id":l;t.labelKey;var a=t.onChange,c=t.placeholder,s=void 0===c?"":c,f=t.activeColor,d=void 0===f?"#D4F7F4":f,m=t.inactiveColor,p=void 0===m?"white":m,g=j(t,U),v=A(b.useState(null),2),h=v[0],y=v[1];return b.useEffect((function(){y(o.find((function(e){return e[i]===n}))||null)}),[n]),b.createElement(u,{value:h,onChange:function(e,t){return a(t?t[i]:null)},options:o,isOptionEqualToValue:function(e,t){return e[i]===t[i]},noOptionsText:"Δεν υπάρχουν επιλογές",size:"small",renderInput:function(t){return b.createElement(e,P({variant:"outlined",fullWidth:!0,placeholder:s,sx:{backgroundColor:null!==h?d:p,color:-1==h?"#cccccc":""},size:"small"},t,g))}})},_=function(e){var t=e.column,n=b.useContext(D),r=n.api,o=n.props,l=r.getColumnFilter(t);return"text"===t.filterType?b.createElement(R,{activeColor:o.filterActiveColor,inactiveColor:o.filterInactiveColor,initialValue:l,onChange:B((function(e){return r.handleColumnFilterChange(t,e)}),300),placeholder:t.filterPlaceholder}):"integer"===t.filterType?b.createElement(G,{activeColor:o.filterActiveColor,inactiveColor:o.filterInactiveColor,initialValue:l,mask:t.filterMask,onChange:B((function(e){return r.handleColumnFilterChange(t,e)}),300),placeholder:t.filterPlaceholder}):"autocomplete"===t.filterType?b.createElement(Q,{activeColor:o.filterActiveColor,inactiveColor:o.filterInactiveColor,value:l,valueKey:t.filterValueKey,labelKey:t.filterLabelKey,onChange:function(e){return r.handleColumnFilterChange(t,e)},placeholder:t.filterPlaceholder,options:t.filterOptions}):"select"===t.filterType?b.createElement(J,{activeColor:o.filterActiveColor,inactiveColor:o.filterInactiveColor,value:l,onChange:function(e){return r.handleColumnFilterChange(t,e)},placeholder:t.filterPlaceholder,options:t.filterOptions}):null},q=function(){var e=b.useContext(D),t=e.props,n=e.state;return b.createElement(b.Fragment,null,b.createElement(s,null,n.columns.map((function(e){return b.createElement(f,{key:e.id,width:e.width,sx:{minWidth:e.minWidth}},b.createElement(W,{column:e}))})),t.rowActions.length>0&&b.createElement(f,null)),t.enableColumnFilters&&b.createElement(s,null,n.columns.map((function(e){return b.createElement(f,{key:e.id},e.enableFilter?b.createElement(_,{column:e}):null)})),t.rowActions.length>0&&b.createElement(f,null)))},H=function(e){var t=e.row,n=b.useContext(D).props;return n.rowActions?b.createElement(f,null,b.createElement(i,{sx:{display:"flex",justifyContent:"flex-end",alignItems:"center"}},n.rowActions.map((function(e,n){return b.createElement(i,{key:n},e(t))})))):null},$=function(e){var t=e.row,n=b.useContext(D),r=n.props,o=n.state,l=A(b.useState({}),2),i=l[0],a=l[1],c=A(b.useState({}),2),u=c[0],d=c[1];return b.useEffect((function(){r.rowStyle&&a(r.rowStyle(t)),r.cellStyle&&d(r.cellStyle(t))}),[t]),b.createElement(s,{hover:r.rowsClickable,sx:O({cursor:r.rowsClickable?"pointer":"default"},i),onClick:function(){return r.onRowClick&&r.onRowClick(t)}},o.columns.map((function(e){return b.createElement(f,{key:e.id,sx:O(O({},u),{},{textAlign:e.align})},e.render?e.render(t):t[e.id])})),r.rowActions.length>0&&b.createElement(H,{row:t}))},X={id:"",label:"",enableSorting:!0,enableFilter:!0,filterType:"text",filterValueKey:"id",filterLabelKey:"label",filterMark:"999999",filterPlaceholder:"Αναζήτηση",filterOptions:[],style:null,width:"",minWidth:"",align:"left",render:null},Y={data:[],page:0,page_size:10,total:0},Z=b.forwardRef((function(e,t){var n=e.title,r=e.titleStyle,o=void 0===r?{}:r,l=e.rowStyle,a=void 0===l?null:l,c=e.cellStyle,u=void 0===c?null:c,s=e.tableSize,f=void 0===s?"medium":s,h=e.columns,y=e.dataUrl,E=e.hasQueryParams,S=void 0!==E&&E,w=e.enableGlobalFilter,x=void 0!==w&&w,F=e.enableColumnFilters,I=void 0!==F&&F,P=e.globalFilterPlaceholder,j=void 0===P?"Καθολική Αναζήτηση":P,T=e.enableCreateRow,K=void 0!==T&&T,R=e.createButtonVariant,B=void 0===R?"contained":R,W=e.createButtonTooltip,G=void 0===W?"Νέα Εγγραφή":W,J=e.onCreateRow,U=void 0===J?null:J,Q=e.rowsClickable,_=void 0!==Q&&Q,H=e.onRowClick,Z=void 0===H?null:H,ee=e.globalActions,te=void 0===ee?[]:ee,ne=e.rowActions,re=void 0===ne?[]:ne,oe=e.keepState,le=void 0===oe||oe,ie=e.stateKey,ae=void 0===ie?null:ie,ce=e.filterActiveColor,ue=void 0===ce?"#D4F7F4":ce,se=e.filterInactiveColor,fe=void 0===se?"white":se,de=e.defaultSorting,me=void 0===de?[]:de,pe=e.initialPageSize,ge=void 0===pe?10:pe,ve=b.useMemo((function(){return!(!le||!ae)&&"".concat(ae,".pageIndex")}),[]),be=b.useMemo((function(){return!(!le||!ae)&&"".concat(ae,".pageSize")}),[]),he=b.useMemo((function(){return!(!le||!ae)&&"".concat(ae,".sorting")}),[]),ye=b.useMemo((function(){return!(!le||!ae)&&"".concat(ae,".globalFilter")}),[]),Ce=b.useMemo((function(){return!(!le||!ae)&&"".concat(ae,".columnFilters")}),[]),Ee=b.useMemo((function(){return h.map((function(e){return O(O({},X),e)}))})),Se=A(b.useState(Y),2),we=Se[0],xe=Se[1],ke=A(b.useState(he&&JSON.parse(sessionStorage.getItem(he))||me),2),Fe=ke[0],Oe=ke[1],Ie=A(b.useState(ye&&sessionStorage.getItem(ye)||""),2),Pe=Ie[0],je=Ie[1],Ae=A(b.useState(Ce&&JSON.parse(sessionStorage.getItem(Ce))||[]),2),ze=Ae[0],Te=Ae[1],Ke=A(b.useState(ve&&parseInt(sessionStorage.getItem(ve))||0),2),Re=Ke[0],De=Ke[1],Be=A(b.useState(be&&parseInt(sessionStorage.getItem(be))||ge),2),Ve=Be[0],Me=Be[1],Ne=function(){var e=A(b.useState(!1),2),t=e[0],n=e[1];return{loader:t,startLoader:function(){n(!0),C.start()},stopLoader:function(){n(!1),C.done()}}}(),Le=Ne.startLoader,We=Ne.stopLoader,Ge=function(e,t,n,r,o){Le();var l=S?"&":"?";k.get("".concat(y).concat(l,"page=").concat(e+1,"&pageSize=").concat(t,"&sorting=").concat(JSON.stringify(n),"&globalFilter=").concat(r,"&columnFilters=").concat(JSON.stringify(o))).then((function(e){xe(e.data),We()})).catch((function(e){console.log(e.message),We()}))};b.useImperativeHandle(t,(function(){return{updateRow:function(e){xe((function(t){var n=t.data.map((function(t){return t.id===e.id?e:t}));return O(O({},t),{},{data:n})}))},refresh:function(){return Ge(Re,Ve,Fe,Pe,ze)}}}));var Je={props:{title:n,titleStyle:o,rowStyle:a,cellStyle:u,tableSize:f,columns:h,dataUrl:y,hasQueryParams:S,enableGlobalFilter:x,enableColumnFilters:I,globalFilterPlaceholder:j,enableCreateRow:K,createButtonVariant:B,createButtonTooltip:G,onCreateRow:U,rowsClickable:_,onRowClick:Z,globalActions:te,rowActions:re,keepState:le,stateKey:ae,filterActiveColor:ue,filterInactiveColor:fe,defaultSorting:me},state:{data:we,columns:Ee,setData:xe,sorting:Fe,setSorting:Oe,globalFilter:Pe,setGlobalFilter:je,columnFilters:ze,setColumnFilters:Te,pageIndex:Re,setPageIndex:De,pageSize:Ve,setPageSize:Me},api:{toggleSorting:function(e,t){Oe((function(n){var r=n.find((function(e){return e.id===t.id})),o=[];r?o=!r.desc?e.altKey?[].concat(z(n.filter((function(e){return e.id!==t.id}))),[{id:t.id,desc:!0}]):[{id:t.id,desc:!0}]:e.altKey?z(n.filter((function(e){return e.id!==t.id}))):[]:o=e.altKey?[].concat(z(n),[{id:t.id,desc:!1}]):[{id:t.id,desc:!1}];return De(0),Ge(0,Ve,o,Pe,ze),o}))},getSortingStatus:function(e){var t=Fe.find((function(t){return t.id===e.id}));return t?t.desc?"desc":"asc":null},handleGlobalFilterChange:function(e){je(e),De(0),Ge(0,Ve,Fe,e,ze)},getColumnFilter:function(e){var t=ze.find((function(t){return t.id===e.id}));return t?t.value:""},handleColumnFilterChange:function(e,t){Te((function(n){var r=[];return r=n.find((function(t){return t.id===e.id}))?t?[].concat(z(n.filter((function(t){return t.id!==e.id}))),[{id:e.id,value:t}]):z(n.filter((function(t){return t.id!==e.id}))):[].concat(z(n),[{id:e.id,value:t}]),De(0),Ge(0,Ve,Fe,Pe,r),r}))}}};return b.useEffect((function(){Ge(Re,Ve,Fe,Pe,ze)}),[]),b.useEffect((function(){ve&&sessionStorage.setItem(ve,Re)}),[Re]),b.useEffect((function(){be&&sessionStorage.setItem(be,Ve)}),[Ve]),b.useEffect((function(){he&&sessionStorage.setItem(he,JSON.stringify(Fe))}),[Fe]),b.useEffect((function(){ye&&sessionStorage.setItem(ye,Pe)}),[Pe]),b.useEffect((function(){Ce&&sessionStorage.setItem(Ce,JSON.stringify(ze))}),[ze]),b.createElement(b.Fragment,null,b.createElement(D.Provider,{value:Je},b.createElement(i,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:1}},b.createElement(M,null),b.createElement(i,{sx:{display:"flex",gap:2,justifyContent:"end",alignItems:"center"}},b.createElement(V,null),b.createElement(N,null),b.createElement(L,null))),b.createElement(d,null,b.createElement(m,{size:f},b.createElement(p,null,b.createElement(q,null)),b.createElement(g,null,we.data.map((function(e){return b.createElement($,{key:e.id,row:e})})))))),b.createElement(v,{sx:{marginTop:1,overflow:"hidden"},component:"div",showFirstButton:!0,showLastButton:!0,count:parseInt(we.total),page:0!=we.page?we.page-1:0,rowsPerPage:we.page_size,onPageChange:function(e,t){return De(n=t),void Ge(n,Ve,Fe,Pe,ze);var n},onRowsPerPageChange:function(e){return t=e.target.value,Me(t),De(0),void Ge(0,t,Fe,Pe,ze);var t},labelDisplayedRows:function(e){return"".concat(e.from," έως ").concat(e.to," από ").concat(e.count)},labelRowsPerPage:"Εγγραφές ανά σελίδα"}))}));export{Z as ServerSideTable};
|
1
|
+
import{TextField as e,InputAdornment as t,IconButton as n,Typography as r,Tooltip as o,Button as l,Box as i,Select as a,MenuItem as c,Autocomplete as u,TableRow as s,TableCell as f,TableContainer as d,Table as m,TableHead as p,TableBody as g,TablePagination as v}from"@mui/material";import b from"react";import{MdClear as h,MdOutlineAdd as y}from"react-icons/md";import"date-fns";import"date-fns/locale";import C from"nprogress";import{TiArrowSortedUp as E,TiArrowSortedDown as w,TiArrowUnsorted as S}from"react-icons/ti";import x from"react-input-mask";import k from"axios";function F(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?F(Object(n),!0).forEach((function(t){I(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):F(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function I(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(){return P=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},P.apply(this,arguments)}function j(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,l,i,a=[],c=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=l.call(n)).done)&&(a.push(r.value),a.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw o}}return a}}(e,t)||T(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||T(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(e,t){if(e){if("string"==typeof e)return K(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?K(e,t):void 0}}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var R=function(r){var o=r.initialValue,l=r.onChange,i=r.placeholder,a=void 0===i?"":i,c=r.activeColor,u=void 0===c?"#D4F7F4":c,s=r.inactiveColor,f=void 0===s?"white":s,d=r.clearIcon,m=void 0===d||d,p=A(b.useState(o),2),g=p[0],v=p[1];b.useEffect((function(){v(o)}),[o]);return b.createElement(e,{sx:{backgroundColor:g?u:f},placeholder:a,value:g||"",fullWidth:!0,onChange:function(e){v(e.target.value),l(e.target.value)},size:"small",InputProps:{endAdornment:m&&b.createElement(t,{position:"end",disablePointerEvents:!g},b.createElement(n,{onClick:function(){return l("")}},g?b.createElement(h,null):b.createElement(h,{color:"#cccccc"})))}})},D=b.createContext(),B=function(e,t){var n;return function(){for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];n&&clearTimeout(n),n=setTimeout((function(){e.apply(void 0,o)}),t)}},V=function(){var e=b.useContext(D),t=e.state,n=e.props,r=e.api;return n.enableGlobalFilter?b.createElement(R,{initialValue:t.globalFilter,onChange:B(r.handleGlobalFilterChange,300),placeholder:n.globalFilterPlaceholder}):null};!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}("#nprogress {\r\n pointer-events: none;\r\n}\r\n\r\n#nprogress .bar {\r\n background: #29d;\r\n position: fixed;\r\n z-index: 99999;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 4px;\r\n}\r\n\r\n/* Fancy blur effect */\r\n#nprogress .peg {\r\n display: block;\r\n position: absolute;\r\n right: 0px;\r\n width: 100px;\r\n height: 100%;\r\n box-shadow: 0 0 10px #29d, 0 0 5px #29d;\r\n opacity: 1.0;\r\n -webkit-transform: rotate(3deg) translate(0px, -4px);\r\n -ms-transform: rotate(3deg) translate(0px, -4px);\r\n transform: rotate(3deg) translate(0px, -4px);\r\n}\r\n\r\n/* Remove these to get rid of the spinner */\r\n#nprogress .spinner {\r\n display: block;\r\n position: fixed;\r\n z-index: 1031;\r\n top: 15px;\r\n right: 15px;\r\n}\r\n\r\n#nprogress .spinner-icon {\r\n width: 18px;\r\n height: 18px;\r\n box-sizing: border-box;\r\n border: solid 2px transparent;\r\n border-top-color: #29d;\r\n border-left-color: #29d;\r\n border-radius: 50%;\r\n -webkit-animation: nprogress-spinner 400ms linear infinite;\r\n animation: nprogress-spinner 400ms linear infinite;\r\n}\r\n\r\n.nprogress-custom-parent {\r\n overflow: hidden;\r\n position: relative;\r\n}\r\n\r\n.nprogress-custom-parent #nprogress .spinner,\r\n.nprogress-custom-parent #nprogress .bar {\r\n position: absolute;\r\n}\r\n\r\n@-webkit-keyframes nprogress-spinner {\r\n 0% {\r\n -webkit-transform: rotate(0deg);\r\n }\r\n\r\n 100% {\r\n -webkit-transform: rotate(360deg);\r\n }\r\n}\r\n\r\n@keyframes nprogress-spinner {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n}");var M=function(){var e=b.useContext(D).props;return b.createElement(r,{variant:"h5",sx:e.titleStyle},e.title)},N=function(){var e=b.useContext(D).props;return e.enableCreateRow?b.createElement(o,{title:e.createButtonTooltip,arrow:!0,placement:"top"},b.createElement(l,{variant:e.createButtonVariant,onClick:function(){return e.onCreateRow()}},b.createElement(y,{size:24}))):null},L=function(){var e=b.useContext(D).props;return e.globalActions?b.createElement(b.Fragment,null,e.globalActions.map((function(e,t){return b.createElement(i,{key:t},e)}))):null},W=function(e){var t,n=e.column;b.useContext(D).props;var r=b.useContext(D).api;return b.createElement(b.Fragment,null,b.createElement(i,{sx:{dispaly:"flex",flexDirection:"column",justifyContent:"start",alignItems:"start"}},b.createElement(i,{sx:{display:"flex",flexDirection:"row",gap:.5,aligntItems:"center",cursor:n.enableSorting?"pointer":"default",justifyContent:"right"===n.align?"end":"center"===n.align?"center":"start"},onClick:n.enableSorting?function(e){return r.toggleSorting(e,n)}:null},b.createElement(i,null,n.label),b.createElement(i,null,n.enableSorting?null!==(t={asc:b.createElement(E,{size:20}),desc:b.createElement(w,{size:20})}[r.getSortingStatus(n)])&&void 0!==t?t:b.createElement(S,{size:20,color:"#cccccc"}):null))))},G=function(r){var o=r.initialValue,l=r.mask,i=void 0===l?"999999":l,a=r.onChange,c=r.placeholder,u=void 0===c?"":c,s=r.activeColor,f=void 0===s?"#D4F7F4":s,d=r.inactiveColor,m=void 0===d?"white":d,p=r.clearIcon,g=void 0===p||p,v=A(b.useState(o),2),y=v[0],C=v[1];b.useEffect((function(){C(o)}),[o]);return b.createElement(x,{mask:i,value:y,onChange:function(e){C((function(t){return t===e.target.value?t:(a(e.target.value),e.target.value)}))},maskChar:""},(function(){return b.createElement(e,{sx:{backgroundColor:y?f:m},placeholder:u,fullWidth:!0,size:"small",InputProps:{endAdornment:g&&b.createElement(t,{position:"end",disablePointerEvents:!y},b.createElement(n,{onClick:function(){return a("")}},y?b.createElement(h,null):b.createElement(h,{color:"#cccccc"})))}})}))},J=function(e){var r=e.value,o=e.options,l=e.onChange,i=e.valueKey,u=void 0===i?"id":i,s=e.labelKey,f=void 0===s?"label":s,d=e.placeholder,m=void 0===d?"":d,p=e.activeColor,g=void 0===p?"#D4F7F4":p,v=e.inactiveColor,y=void 0===v?"white":v,C=e.clearIcon,E=void 0===C||C,w=A(b.useState(-1),2),S=w[0],x=w[1];b.useEffect((function(){x(null===r||""===r?-1:r)}),[r]);return b.createElement(a,{sx:{backgroundColor:-1!==S?g:y,color:-1==S?"#cccccc":""},value:S,fullWidth:!0,onChange:function(e){var t=e.target.value;l(-1!==t?t:"")},size:"small",endAdornment:E&&b.createElement(t,{position:"end",disablePointerEvents:null===r},b.createElement(n,{onClick:function(){return l("")}},-1!==S?b.createElement(h,null):b.createElement(h,{color:"#cccccc"})))},b.createElement(c,{value:-1},m),o.map((function(e){return b.createElement(c,{key:e[u],value:e[u]},e[f])})))},_=["value","options","valueKey","labelKey","onChange","placeholder","activeColor","inactiveColor"],U=function(t){var n=t.value,r=t.options,o=void 0===r?[]:r,l=t.valueKey,i=void 0===l?"id":l;t.labelKey;var a=t.onChange,c=t.placeholder,s=void 0===c?"":c,f=t.activeColor,d=void 0===f?"#D4F7F4":f,m=t.inactiveColor,p=void 0===m?"white":m,g=j(t,_),v=A(b.useState(null),2),h=v[0],y=v[1];return b.useEffect((function(){y(o.find((function(e){return e[i]===n}))||null)}),[n]),b.createElement(u,{value:h,onChange:function(e,t){return a(t?t[i]:null)},options:o,isOptionEqualToValue:function(e,t){return e[i]===t[i]},noOptionsText:"Δεν υπάρχουν επιλογές",size:"small",renderInput:function(t){return b.createElement(e,P({variant:"outlined",fullWidth:!0,placeholder:s,sx:{backgroundColor:null!==h?d:p,color:-1==h?"#cccccc":""},size:"small"},t,g))}})},Q=function(e){var t=e.column,n=b.useContext(D),r=n.api,o=n.props,l=r.getColumnFilter(t);return"text"===t.filterType?b.createElement(R,{activeColor:o.filterActiveColor,inactiveColor:o.filterInactiveColor,initialValue:l,onChange:B((function(e){return r.handleColumnFilterChange(t,e)}),300),placeholder:t.filterPlaceholder}):"integer"===t.filterType?b.createElement(G,{activeColor:o.filterActiveColor,inactiveColor:o.filterInactiveColor,initialValue:l,mask:t.filterMask,onChange:B((function(e){return r.handleColumnFilterChange(t,e)}),300),placeholder:t.filterPlaceholder}):"autocomplete"===t.filterType?b.createElement(U,{activeColor:o.filterActiveColor,inactiveColor:o.filterInactiveColor,value:l,valueKey:t.filterValueKey,labelKey:t.filterLabelKey,onChange:function(e){return r.handleColumnFilterChange(t,e)},placeholder:t.filterPlaceholder,options:t.filterOptions}):"select"===t.filterType?b.createElement(J,{activeColor:o.filterActiveColor,inactiveColor:o.filterInactiveColor,value:l,onChange:function(e){return r.handleColumnFilterChange(t,e)},placeholder:t.filterPlaceholder,options:t.filterOptions}):null},q=function(){var e=b.useContext(D),t=e.props,n=e.state;return b.createElement(b.Fragment,null,b.createElement(s,null,n.columns.map((function(e){return b.createElement(f,{key:e.id,width:e.width,sx:{minWidth:e.minWidth}},b.createElement(W,{column:e}))})),t.rowActions.length>0&&b.createElement(f,null)),t.enableColumnFilters&&b.createElement(s,null,n.columns.map((function(e){return b.createElement(f,{key:e.id},e.enableFilter?b.createElement(Q,{column:e}):null)})),t.rowActions.length>0&&b.createElement(f,null)))},H=function(e){var t=e.row,n=b.useContext(D).props;return n.rowActions?b.createElement(f,null,b.createElement(i,{sx:{display:"flex",justifyContent:"flex-end",alignItems:"center"}},n.rowActions.map((function(e,n){return b.createElement(i,{key:n},e(t))})))):null},$=function(e){var t=e.row,n=b.useContext(D),r=n.props,o=n.state,l=A(b.useState({}),2),i=l[0],a=l[1],c=A(b.useState({}),2),u=c[0],d=c[1];return b.useEffect((function(){r.rowStyle&&a(r.rowStyle(t)),r.cellStyle&&d(r.cellStyle(t))}),[t]),b.createElement(s,{hover:r.rowsClickable,sx:O({cursor:r.rowsClickable?"pointer":"default"},i),onClick:function(){return r.onRowClick&&r.onRowClick(t)}},o.columns.map((function(e){return b.createElement(f,{key:e.id,sx:O(O({},u),{},{textAlign:e.align})},e.render?e.render(t):t[e.id])})),r.rowActions.length>0&&b.createElement(H,{row:t}))},X={id:"",label:"",enableSorting:!0,enableFilter:!0,filterType:"text",filterValueKey:"id",filterLabelKey:"label",filterMark:"999999",filterPlaceholder:"Αναζήτηση",filterOptions:[],style:null,width:"",minWidth:"",align:"left",render:null},Y={data:[],page:0,page_size:10,total:0},Z=b.forwardRef((function(e,t){var n=e.title,r=e.titleStyle,o=void 0===r?{}:r,l=e.rowStyle,a=void 0===l?null:l,c=e.cellStyle,u=void 0===c?null:c,s=e.tableSize,f=void 0===s?"medium":s,h=e.columns,y=e.dataUrl,E=e.rowKey,w=void 0===E?"id":E,S=e.hasQueryParams,x=void 0!==S&&S,F=e.enableGlobalFilter,I=void 0!==F&&F,P=e.enableColumnFilters,j=void 0!==P&&P,T=e.globalFilterPlaceholder,K=void 0===T?"Καθολική Αναζήτηση":T,R=e.enableCreateRow,B=void 0!==R&&R,W=e.createButtonVariant,G=void 0===W?"contained":W,J=e.createButtonTooltip,_=void 0===J?"Νέα Εγγραφή":J,U=e.onCreateRow,Q=void 0===U?null:U,H=e.rowsClickable,Z=void 0!==H&&H,ee=e.onRowClick,te=void 0===ee?null:ee,ne=e.globalActions,re=void 0===ne?[]:ne,oe=e.rowActions,le=void 0===oe?[]:oe,ie=e.keepState,ae=void 0===ie||ie,ce=e.stateKey,ue=void 0===ce?null:ce,se=e.filterActiveColor,fe=void 0===se?"#D4F7F4":se,de=e.filterInactiveColor,me=void 0===de?"white":de,pe=e.defaultSorting,ge=void 0===pe?[]:pe,ve=e.initialPageSize,be=void 0===ve?10:ve,he=b.useMemo((function(){return!(!ae||!ue)&&"".concat(ue,".pageIndex")}),[]),ye=b.useMemo((function(){return!(!ae||!ue)&&"".concat(ue,".pageSize")}),[]),Ce=b.useMemo((function(){return!(!ae||!ue)&&"".concat(ue,".sorting")}),[]),Ee=b.useMemo((function(){return!(!ae||!ue)&&"".concat(ue,".globalFilter")}),[]),we=b.useMemo((function(){return!(!ae||!ue)&&"".concat(ue,".columnFilters")}),[]),Se=b.useMemo((function(){return h.map((function(e){return O(O({},X),e)}))})),xe=A(b.useState(Y),2),ke=xe[0],Fe=xe[1],Oe=A(b.useState(Ce&&JSON.parse(sessionStorage.getItem(Ce))||ge),2),Ie=Oe[0],Pe=Oe[1],je=A(b.useState(Ee&&sessionStorage.getItem(Ee)||""),2),Ae=je[0],ze=je[1],Te=A(b.useState(we&&JSON.parse(sessionStorage.getItem(we))||[]),2),Ke=Te[0],Re=Te[1],De=A(b.useState(he&&parseInt(sessionStorage.getItem(he))||0),2),Be=De[0],Ve=De[1],Me=A(b.useState(ye&&parseInt(sessionStorage.getItem(ye))||be),2),Ne=Me[0],Le=Me[1],We=function(){var e=A(b.useState(!1),2),t=e[0],n=e[1];return{loader:t,startLoader:function(){n(!0),C.start()},stopLoader:function(){n(!1),C.done()}}}(),Ge=We.startLoader,Je=We.stopLoader,_e=function(e,t,n,r,o){Ge();var l=x?"&":"?";k.get("".concat(y).concat(l,"page=").concat(e+1,"&pageSize=").concat(t,"&sorting=").concat(JSON.stringify(n),"&globalFilter=").concat(r,"&columnFilters=").concat(JSON.stringify(o))).then((function(e){Fe(e.data),Je()})).catch((function(e){console.log(e.message),Je()}))};b.useImperativeHandle(t,(function(){return{updateRow:function(e){Fe((function(t){var n=t.data.map((function(t){return t.id===e.id?e:t}));return O(O({},t),{},{data:n})}))},refresh:function(){return _e(Be,Ne,Ie,Ae,Ke)}}}));var Ue={props:{title:n,titleStyle:o,rowStyle:a,cellStyle:u,tableSize:f,columns:h,dataUrl:y,hasQueryParams:x,enableGlobalFilter:I,enableColumnFilters:j,globalFilterPlaceholder:K,enableCreateRow:B,createButtonVariant:G,createButtonTooltip:_,onCreateRow:Q,rowsClickable:Z,onRowClick:te,globalActions:re,rowActions:le,keepState:ae,stateKey:ue,filterActiveColor:fe,filterInactiveColor:me,defaultSorting:ge},state:{data:ke,columns:Se,setData:Fe,sorting:Ie,setSorting:Pe,globalFilter:Ae,setGlobalFilter:ze,columnFilters:Ke,setColumnFilters:Re,pageIndex:Be,setPageIndex:Ve,pageSize:Ne,setPageSize:Le},api:{toggleSorting:function(e,t){Pe((function(n){var r=n.find((function(e){return e.id===t.id})),o=[];r?o=!r.desc?e.altKey?[].concat(z(n.filter((function(e){return e.id!==t.id}))),[{id:t.id,desc:!0}]):[{id:t.id,desc:!0}]:e.altKey?z(n.filter((function(e){return e.id!==t.id}))):[]:o=e.altKey?[].concat(z(n),[{id:t.id,desc:!1}]):[{id:t.id,desc:!1}];return Ve(0),_e(0,Ne,o,Ae,Ke),o}))},getSortingStatus:function(e){var t=Ie.find((function(t){return t.id===e.id}));return t?t.desc?"desc":"asc":null},handleGlobalFilterChange:function(e){ze(e),Ve(0),_e(0,Ne,Ie,e,Ke)},getColumnFilter:function(e){var t=Ke.find((function(t){return t.id===e.id}));return t?t.value:""},handleColumnFilterChange:function(e,t){Re((function(n){var r=[];return r=n.find((function(t){return t.id===e.id}))?t?[].concat(z(n.filter((function(t){return t.id!==e.id}))),[{id:e.id,value:t}]):z(n.filter((function(t){return t.id!==e.id}))):[].concat(z(n),[{id:e.id,value:t}]),Ve(0),_e(0,Ne,Ie,Ae,r),r}))}}};return b.useEffect((function(){_e(Be,Ne,Ie,Ae,Ke)}),[]),b.useEffect((function(){he&&sessionStorage.setItem(he,Be)}),[Be]),b.useEffect((function(){ye&&sessionStorage.setItem(ye,Ne)}),[Ne]),b.useEffect((function(){Ce&&sessionStorage.setItem(Ce,JSON.stringify(Ie))}),[Ie]),b.useEffect((function(){Ee&&sessionStorage.setItem(Ee,Ae)}),[Ae]),b.useEffect((function(){we&&sessionStorage.setItem(we,JSON.stringify(Ke))}),[Ke]),b.createElement(b.Fragment,null,b.createElement(D.Provider,{value:Ue},b.createElement(i,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:1}},b.createElement(M,null),b.createElement(i,{sx:{display:"flex",gap:2,justifyContent:"end",alignItems:"center"}},b.createElement(V,null),b.createElement(N,null),b.createElement(L,null))),b.createElement(d,null,b.createElement(m,{size:f},b.createElement(p,null,b.createElement(q,null)),b.createElement(g,null,ke.data.map((function(e,t){return b.createElement($,{key:"__index__"===w?t:e[w],row:e})})))))),b.createElement(v,{sx:{marginTop:1,overflow:"hidden"},component:"div",showFirstButton:!0,showLastButton:!0,count:parseInt(ke.total),page:0!=ke.page?ke.page-1:0,rowsPerPage:ke.page_size,onPageChange:function(e,t){return Ve(n=t),void _e(n,Ne,Ie,Ae,Ke);var n},onRowsPerPageChange:function(e){return t=e.target.value,Le(t),Ve(0),void _e(0,t,Ie,Ae,Ke);var t},labelDisplayedRows:function(e){return"".concat(e.from," έως ").concat(e.to," από ").concat(e.count)},labelRowsPerPage:"Εγγραφές ανά σελίδα"}))}));export{Z as ServerSideTable};
|