3 lines
25 KiB
JavaScript
3 lines
25 KiB
JavaScript
"use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("@mantine/core"),r=require("@tabler/icons-react"),o=require("@mantine/form"),i=require("@mantine/notifications"),a=require("@mantine/modals"),c=require("axios"),u=require("@mantine/hooks"),s=function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},s.apply(this,arguments)};function l(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function c(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,c)}u((r=r.apply(e,t||[])).next())})}function d(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=c(0),a.throw=c(1),a.return=c(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,r=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}function f(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var p=function(e,t){void 0===t&&(t="Success");var n={title:t,message:e,color:"green"};i.notifications.show(n)},h=function(e,t){void 0===t&&(t="Error");var n={title:t,message:e,color:"red"};i.notifications.show(n)},m={createSuccess:function(e){return"".concat(e," created successfully")},updateSuccess:function(e){return"".concat(e," updated successfully")},deleteSuccess:function(e){return"".concat(e," deleted successfully")},createError:function(e){return"Failed to create ".concat(e)},updateError:function(e){return"Failed to update ".concat(e)},deleteError:function(e){return"Failed to delete ".concat(e)},loadError:function(e){return"Failed to load ".concat(e)},networkError:"Network error occurred. Please try again.",validationError:"Please check the form for errors",requiredFieldError:function(e){return"".concat(e," is required")},authRequired:"Authentication required",permissionDenied:"Permission denied",sessionExpired:"Session expired. Please log in again.",applicationCreated:"Application created successfully",applicationUpdated:"Application updated successfully",applicationDeleted:"Application deleted successfully",tokenCreated:"Token created successfully",tokenRevoked:"Token revoked successfully",userCreated:"User created successfully",userUpdated:"User updated successfully",userDeleted:"User deleted successfully",functionCreated:"Function created successfully",functionUpdated:"Function updated successfully",functionDeleted:"Function deleted successfully",executionStarted:"Function execution started",executionCompleted:"Function execution completed",executionFailed:"Function execution failed"},v={success:function(e,t){var n=m["".concat(e,"Success")](t);p(n)},error:function(e,t,n){var r=n||m["".concat(e,"Error")](t);h(r)}},b={email:/^\S+@\S+\.\S+$/,url:/^https?:\/\/.+/,duration:/^\d+[smhd]$/,token:/^[a-zA-Z0-9_-]+$/,appId:/^[a-zA-Z0-9-_]+$/,uuid:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i},x={required:function(e){return"".concat(e," is required")},email:"Please enter a valid email address",url:"Please enter a valid URL (http:// or https://)",duration:"Duration must be in format like 30s, 5m, 2h, 1d",minLength:function(e,t){return"".concat(e," must be at least ").concat(t," characters")},maxLength:function(e,t){return"".concat(e," must be no more than ").concat(t," characters")},pattern:function(e){return"".concat(e," format is invalid")},token:"Token can only contain letters, numbers, underscores and hyphens",appId:"App ID can only contain letters, numbers, hyphens and underscores",uuid:"Please enter a valid UUID",positiveNumber:"Must be a positive number",range:function(e,t,n){return"".concat(e," must be between ").concat(t," and ").concat(n)}};Object.defineProperty(exports,"ActionIcon",{enumerable:!0,get:function(){return n.ActionIcon}}),Object.defineProperty(exports,"Badge",{enumerable:!0,get:function(){return n.Badge}}),Object.defineProperty(exports,"Box",{enumerable:!0,get:function(){return n.Box}}),Object.defineProperty(exports,"Button",{enumerable:!0,get:function(){return n.Button}}),Object.defineProperty(exports,"Center",{enumerable:!0,get:function(){return n.Center}}),Object.defineProperty(exports,"Divider",{enumerable:!0,get:function(){return n.Divider}}),Object.defineProperty(exports,"Group",{enumerable:!0,get:function(){return n.Group}}),Object.defineProperty(exports,"JsonInput",{enumerable:!0,get:function(){return n.JsonInput}}),Object.defineProperty(exports,"LoadingOverlay",{enumerable:!0,get:function(){return n.LoadingOverlay}}),Object.defineProperty(exports,"Menu",{enumerable:!0,get:function(){return n.Menu}}),Object.defineProperty(exports,"MultiSelect",{enumerable:!0,get:function(){return n.MultiSelect}}),Object.defineProperty(exports,"NumberInput",{enumerable:!0,get:function(){return n.NumberInput}}),Object.defineProperty(exports,"Pagination",{enumerable:!0,get:function(){return n.Pagination}}),Object.defineProperty(exports,"Paper",{enumerable:!0,get:function(){return n.Paper}}),Object.defineProperty(exports,"ScrollArea",{enumerable:!0,get:function(){return n.ScrollArea}}),Object.defineProperty(exports,"Select",{enumerable:!0,get:function(){return n.Select}}),Object.defineProperty(exports,"Stack",{enumerable:!0,get:function(){return n.Stack}}),Object.defineProperty(exports,"Table",{enumerable:!0,get:function(){return n.Table}}),Object.defineProperty(exports,"Text",{enumerable:!0,get:function(){return n.Text}}),Object.defineProperty(exports,"TextInput",{enumerable:!0,get:function(){return n.TextInput}}),Object.defineProperty(exports,"Textarea",{enumerable:!0,get:function(){return n.Textarea}}),Object.defineProperty(exports,"Title",{enumerable:!0,get:function(){return n.Title}}),Object.defineProperty(exports,"IconAlertCircle",{enumerable:!0,get:function(){return r.IconAlertCircle}}),Object.defineProperty(exports,"IconCheck",{enumerable:!0,get:function(){return r.IconCheck}}),Object.defineProperty(exports,"IconChevronDown",{enumerable:!0,get:function(){return r.IconChevronDown}}),Object.defineProperty(exports,"IconChevronRight",{enumerable:!0,get:function(){return r.IconChevronRight}}),Object.defineProperty(exports,"IconCopy",{enumerable:!0,get:function(){return r.IconCopy}}),Object.defineProperty(exports,"IconDots",{enumerable:!0,get:function(){return r.IconDots}}),Object.defineProperty(exports,"IconEdit",{enumerable:!0,get:function(){return r.IconEdit}}),Object.defineProperty(exports,"IconEye",{enumerable:!0,get:function(){return r.IconEye}}),Object.defineProperty(exports,"IconEyeOff",{enumerable:!0,get:function(){return r.IconEyeOff}}),Object.defineProperty(exports,"IconFilter",{enumerable:!0,get:function(){return r.IconFilter}}),Object.defineProperty(exports,"IconInfoCircle",{enumerable:!0,get:function(){return r.IconInfoCircle}}),Object.defineProperty(exports,"IconKey",{enumerable:!0,get:function(){return r.IconKey}}),Object.defineProperty(exports,"IconPlus",{enumerable:!0,get:function(){return r.IconPlus}}),Object.defineProperty(exports,"IconRefresh",{enumerable:!0,get:function(){return r.IconRefresh}}),Object.defineProperty(exports,"IconSearch",{enumerable:!0,get:function(){return r.IconSearch}}),Object.defineProperty(exports,"IconSettings",{enumerable:!0,get:function(){return r.IconSettings}}),Object.defineProperty(exports,"IconTrash",{enumerable:!0,get:function(){return r.IconTrash}}),Object.defineProperty(exports,"IconUser",{enumerable:!0,get:function(){return r.IconUser}}),Object.defineProperty(exports,"IconUsers",{enumerable:!0,get:function(){return r.IconUsers}}),Object.defineProperty(exports,"IconX",{enumerable:!0,get:function(){return r.IconX}}),Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return o.useForm}}),Object.defineProperty(exports,"notifications",{enumerable:!0,get:function(){return i.notifications}}),Object.defineProperty(exports,"modals",{enumerable:!0,get:function(){return a.modals}}),Object.defineProperty(exports,"useDisclosure",{enumerable:!0,get:function(){return u.useDisclosure}}),Object.defineProperty(exports,"useLocalStorage",{enumerable:!0,get:function(){return u.useLocalStorage}}),Object.defineProperty(exports,"useToggle",{enumerable:!0,get:function(){return u.useToggle}}),exports.DataTable=function(o){var c=o.data,u=o.columns,f=o.loading,p=void 0!==f&&f,h=o.error,m=void 0===h?null:h,v=o.title,b=o.total,x=void 0===b?0:b,g=o.page,y=void 0===g?1:g,j=o.pageSize,I=void 0===j?10:j,w=o.onPageChange,P=o.onAdd,S=o.onEdit,O=o.onDelete,C=o.onRefresh,k=o.customActions,T=void 0===k?[]:k,A=o.searchable,E=void 0===A||A,F=o.filterable,L=void 0!==F&&F,D=o.filters,M=void 0===D?{}:D,q=o.onFiltersChange,z=o.withBorder,B=void 0===z||z,U=o.withColumnBorders,R=void 0!==U&&U,N=o.striped,G=void 0===N||N,V=o.highlightOnHover,J=void 0===V||V,$=o.emptyMessage,X=void 0===$?"No data available":$,H=t.useState(M),_=H[0],K=H[1];t.useEffect(function(){K(M)},[M]);var W=function(e){!function(e,t){var n,r=s(s({},_),((n={})[e]=t,n));K(r),null==q||q(r)}("search",e)},Z=function(t,r){var o=r[t.key];if(t.render)return t.render(o,r);if(null==o)return e.jsx(n.Text,{c:"dimmed",children:"-"});if("boolean"==typeof o)return e.jsx(n.Badge,{color:o?"green":"gray",size:"sm",children:o?"Yes":"No"});if("status"===t.key){return e.jsx(n.Badge,{color:{active:"green",inactive:"gray",pending:"yellow",suspended:"red",success:"green",error:"red",warning:"yellow"}[o]||"blue",size:"sm",children:o})}return e.jsx(n.Text,{children:o.toString()})},Y=function(t){var o=[];S&&o.push({key:"edit",label:"Edit",icon:e.jsx(r.IconEdit,{size:14}),onClick:S}),O&&o.push({key:"delete",label:"Delete",icon:e.jsx(r.IconTrash,{size:14}),color:"red",onClick:function(){return function(t){a.modals.openConfirmModal({title:"Confirm Delete",children:e.jsx(n.Text,{size:"sm",children:"Are you sure you want to delete this item? This action cannot be undone."}),labels:{confirm:"Delete",cancel:"Cancel"},confirmProps:{color:"red"},onConfirm:function(){return l(void 0,void 0,void 0,function(){var e;return d(this,function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),O?[4,O(t)]:[3,2];case 1:n.sent(),i.notifications.show({title:"Success",message:"Item deleted successfully",color:"green"}),n.label=2;case 2:return[3,4];case 3:return e=n.sent(),i.notifications.show({title:"Error",message:e.message||"Failed to delete item",color:"red"}),[3,4];case 4:return[2]}})})}})}(t)}}),o.push.apply(o,T);var c=o.filter(function(e){return!e.show||e.show(t)});return 0===c.length?null:e.jsxs(n.Menu,{position:"bottom-end",children:[e.jsx(n.Menu.Target,{children:e.jsx(n.ActionIcon,{variant:"subtle",color:"gray",children:e.jsx(r.IconDots,{size:16})})}),e.jsx(n.Menu.Dropdown,{children:c.map(function(r){return e.jsx(n.Menu.Item,{leftSection:r.icon,color:r.color,onClick:function(){return r.onClick(t)},children:r.label},r.key)})})]})},Q=Math.ceil(x/I);return e.jsxs(n.Stack,{gap:"md",children:[e.jsxs(n.Group,{justify:"space-between",children:[e.jsx(n.Group,{children:v&&e.jsx(n.Text,{size:"xl",fw:600,children:v})}),e.jsxs(n.Group,{children:[C&&e.jsx(n.ActionIcon,{variant:"light",onClick:C,children:e.jsx(r.IconRefresh,{size:16})}),P&&e.jsx(n.Button,{leftSection:e.jsx(r.IconPlus,{size:16}),onClick:P,children:"Add New"})]})]}),(E||L)&&e.jsxs(n.Group,{children:[E&&e.jsx(n.TextInput,{placeholder:"Search...",leftSection:e.jsx(r.IconSearch,{size:16}),value:_.search||"",onChange:function(e){return W(e.currentTarget.value)},style:{flex:1}}),L&&e.jsx(n.Group,{children:e.jsx(n.ActionIcon,{variant:"light",children:e.jsx(r.IconFilter,{size:16})})})]}),e.jsxs(n.Paper,{withBorder:B,pos:"relative",children:[e.jsx(n.LoadingOverlay,{visible:p}),m?e.jsx(n.Center,{p:"xl",children:e.jsxs(n.Stack,{align:"center",gap:"xs",children:[e.jsx(n.Text,{c:"red",fw:500,children:"Error loading data"}),e.jsx(n.Text,{c:"dimmed",size:"sm",children:m}),C&&e.jsx(n.Button,{variant:"light",size:"sm",onClick:C,children:"Try Again"})]})}):0===c.length?e.jsx(n.Center,{p:"xl",children:e.jsxs(n.Stack,{align:"center",gap:"xs",children:[e.jsx(n.Text,{c:"dimmed",children:X}),P&&e.jsx(n.Button,{variant:"light",size:"sm",onClick:P,children:"Add First Item"})]})}):e.jsxs(n.Table,{striped:G,highlightOnHover:J,withColumnBorders:R,children:[e.jsx(n.Table.Thead,{children:e.jsxs(n.Table.Tr,{children:[u.map(function(t){return e.jsx(n.Table.Th,{style:{width:t.width},children:t.label},t.key)}),(S||O||T.length>0)&&e.jsx(n.Table.Th,{style:{width:50},children:"Actions"})]})}),e.jsx(n.Table.Tbody,{children:c.map(function(t){return e.jsxs(n.Table.Tr,{children:[u.map(function(r){return e.jsx(n.Table.Td,{children:Z(r,t)},"".concat(t.id,"-").concat(r.key))}),(S||O||T.length>0)&&e.jsx(n.Table.Td,{children:Y(t)})]},t.id)})})]})]}),Q>1&&e.jsx(n.Group,{justify:"center",children:e.jsx(n.Pagination,{total:Q,value:y,onChange:w,size:"sm"})})]})},exports.FormSidebar=function(a){var c=a.opened,u=a.onClose,f=a.onSuccess,p=a.title,h=a.editMode,m=void 0!==h&&h,v=a.editItem,b=a.fields,x=a.onSubmit,g=a.width,y=void 0===g?450:g,j=a.initialValues,I=void 0===j?{}:j;a.validateOnSubmit;var w,P=m&&!!v,S=function(){var e={};return b.forEach(function(t){var n;e[t.name]=null!==(n=t.defaultValue)&&void 0!==n?n:"multiselect"===t.type?[]:""}),s(s({},e),I)},O=o.useForm({initialValues:S(),validate:(w={},b.forEach(function(e){w[e.name]=function(t){var n,r,o,i,a,c;return e.required&&(!t||"string"==typeof t&&""===t.trim())?"".concat(e.label," is required"):(null===(n=e.validation)||void 0===n?void 0:n.email)&&t&&!/^\S+@\S+$/.test(t)?"Invalid email format":(null===(r=e.validation)||void 0===r?void 0:r.url)&&t&&!/^https?:\/\/.+/.test(t)?"Invalid URL format":(null===(o=e.validation)||void 0===o?void 0:o.minLength)&&t&&t.length<e.validation.minLength?"".concat(e.label," must be at least ").concat(e.validation.minLength," characters"):(null===(i=e.validation)||void 0===i?void 0:i.maxLength)&&t&&t.length>e.validation.maxLength?"".concat(e.label," must be no more than ").concat(e.validation.maxLength," characters"):(null===(a=e.validation)||void 0===a?void 0:a.pattern)&&t&&!e.validation.pattern.test(t)?"".concat(e.label," format is invalid"):(null===(c=e.validation)||void 0===c?void 0:c.custom)?e.validation.custom(t):null}}),w)});t.useEffect(function(){if(P&&v){var e={};b.forEach(function(t){var n,r;e[t.name]=null!==(r=null!==(n=v[t.name])&&void 0!==n?n:t.defaultValue)&&void 0!==r?r:""}),O.setValues(e)}else P||O.setValues(S())},[v,c,P]);return e.jsxs(n.Paper,{style:{position:"fixed",top:60,right:c?0:"-".concat(y,"px"),bottom:0,width:"".concat(y,"px"),zIndex:1e3,borderRadius:0,display:"flex",flexDirection:"column",borderLeft:"1px solid var(--mantine-color-gray-3)",backgroundColor:"var(--mantine-color-body)",transition:"right 0.3s ease"},children:[e.jsxs(n.Group,{justify:"space-between",p:"md",style:{borderBottom:"1px solid var(--mantine-color-gray-3)"},children:[e.jsx(n.Title,{order:4,children:P?"Edit ".concat(p):"Create New ".concat(p)}),e.jsx(n.ActionIcon,{variant:"subtle",color:"gray",onClick:u,children:e.jsx(r.IconX,{size:18})})]}),e.jsx(n.ScrollArea,{style:{flex:1},children:e.jsx(n.Box,{p:"md",children:e.jsx("form",{onSubmit:O.onSubmit(function(e){return l(void 0,void 0,void 0,function(){var t,n,r;return d(this,function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,x(e)];case 1:return o.sent(),t={title:"Success",message:"".concat(p," ").concat(P?"updated":"created"," successfully"),color:"green"},i.notifications.show(t),f(),u(),O.reset(),[3,3];case 2:return n=o.sent(),console.error("Error ".concat(P?"updating":"creating"," ").concat(p.toLowerCase(),":"),n),r={title:"Error",message:n.message||"Failed to ".concat(P?"update":"create"," ").concat(p.toLowerCase()),color:"red"},i.notifications.show(r),[3,3];case 3:return[2]}})})}),children:e.jsxs(n.Stack,{gap:"md",children:[b.map(function(t){var r=O.getInputProps(t.name),o=s({key:t.name,label:t.label,placeholder:t.placeholder,description:t.description,required:t.required,disabled:t.disabled||P&&"id"===t.name},r);switch(t.type){case"email":return e.jsx(n.TextInput,s({},o,{type:"email"}));case"number":return e.jsx(n.NumberInput,s({},o));case"textarea":return e.jsx(n.Textarea,s({},o,{autosize:!0,minRows:3,maxRows:6}));case"select":return e.jsx(n.Select,s({},o,{data:t.options||[]}));case"multiselect":return e.jsx(n.MultiSelect,s({},o,{data:t.options||[]}));case"json":return e.jsx(n.JsonInput,s({},o,{validationError:"Invalid JSON format",formatOnBlur:!0,autosize:!0,minRows:3}));default:return e.jsx(n.TextInput,s({},o))}}),e.jsxs(n.Group,{justify:"flex-end",mt:"md",children:[e.jsx(n.Button,{variant:"light",onClick:u,children:"Cancel"}),e.jsxs(n.Button,{type:"submit",children:[P?"Update":"Create"," ",p]})]})]})})})})]})},exports.NotificationMessages=m,exports.ValidationMessages=x,exports.ValidationPatterns=b,exports.combineValidators=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){for(var n=0,r=e;n<r.length;n++){var o=(0,r[n])(t);if(o)return o}return null}},exports.formatDuration=function(e){return e<60?"".concat(e,"s"):e<3600?"".concat(Math.floor(e/60),"m"):e<86400?"".concat(Math.floor(e/3600),"h"):"".concat(Math.floor(e/86400),"d")},exports.parseDuration=function(e){var t=e.match(/^(\d+)([smhd]?)$/);if(!t)return 86400;var n=parseInt(t[1]);switch(t[2]||"h"){case"s":return n;case"m":return 60*n;case"h":default:return 3600*n;case"d":return 86400*n}},exports.showCrudNotification=v,exports.showErrorNotification=h,exports.showInfoNotification=function(e,t){void 0===t&&(t="Info");var n={title:t,message:e,color:"blue"};i.notifications.show(n)},exports.showSuccessNotification=p,exports.showWarningNotification=function(e,t){void 0===t&&(t="Warning");var n={title:t,message:e,color:"yellow"};i.notifications.show(n)},exports.useApiService=function(e,n){var r=t.useState([]),o=r[0],i=r[1],a=t.useState(!1),u=a[0],p=a[1],h=t.useState(null),m=h[0],v=h[1],b=t.useState(0),x=b[0],g=b[1],y=t.useState(!1),j=y[0],I=y[1],w=c.create({baseURL:e.baseURL,timeout:e.timeout||1e4,headers:s({"Content-Type":"application/json"},e.defaultHeaders)});w.interceptors.request.use(function(e){return e.headers["X-User-Email"]="admin@example.com",e},function(e){return Promise.reject(e)}),w.interceptors.response.use(function(e){return e},function(e){var t,n,r=(null===(n=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===n?void 0:n.message)||e.message||"An error occurred";return v(r),Promise.reject(e)});var P=t.useCallback(function(){v(null)},[]),S=t.useCallback(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return l(void 0,f([],e,!0),void 0,function(e){var t,r,o,a,c,u,s,l;return void 0===e&&(e={}),d(this,function(d){switch(d.label){case 0:p(!0),v(null),d.label=1;case 1:return d.trys.push([1,3,4,5]),t=new URLSearchParams,Object.entries(e).forEach(function(e){var n=e[0],r=e[1];null!=r&&""!==r&&t.append(n,r.toString())}),[4,w.get("".concat(n,"?").concat(t.toString()))];case 2:if("data"in(r=d.sent()).data&&Array.isArray(r.data.data))return o=r.data,i(o.data),g(o.total),I(o.has_more||!1),[2,o.data];if("data"in r.data&&Array.isArray(r.data.data))return a=r.data,i(a.data),g(a.data.length),I(!1),[2,a.data];if(Array.isArray(r.data))return i(r.data),g(r.data.length),I(!1),[2,r.data];throw new Error("Invalid response format");case 3:throw c=d.sent(),u=(null===(l=null===(s=c.response)||void 0===s?void 0:s.data)||void 0===l?void 0:l.message)||c.message||"Failed to fetch data",v(u),c;case 4:return p(!1),[7];case 5:return[2]}})})},[w,n]),O=t.useCallback(function(e){return l(void 0,void 0,void 0,function(){var t,r,o,i,a;return d(this,function(c){switch(c.label){case 0:p(!0),v(null),c.label=1;case 1:return c.trys.push([1,3,4,5]),[4,w.get("".concat(n,"/").concat(e))];case 2:return t=c.sent(),[2,"data"in t.data?t.data.data:t.data];case 3:throw r=c.sent(),o=(null===(a=null===(i=r.response)||void 0===i?void 0:i.data)||void 0===a?void 0:a.message)||r.message||"Failed to fetch item",v(o),r;case 4:return p(!1),[7];case 5:return[2]}})})},[w,n]),C=t.useCallback(function(e){return l(void 0,void 0,void 0,function(){var t,r,o,a,c,u;return d(this,function(s){switch(s.label){case 0:p(!0),v(null),s.label=1;case 1:return s.trys.push([1,3,4,5]),[4,w.post(n,e)];case 2:return t=s.sent(),r="data"in t.data?t.data.data:t.data,i(function(e){return f(f([],e,!0),[r],!1)}),g(function(e){return e+1}),[2,r];case 3:throw o=s.sent(),a=(null===(u=null===(c=o.response)||void 0===c?void 0:c.data)||void 0===u?void 0:u.message)||o.message||"Failed to create item",v(a),o;case 4:return p(!1),[7];case 5:return[2]}})})},[w,n]),k=t.useCallback(function(e,t){return l(void 0,void 0,void 0,function(){var r,o,a,c,u,s;return d(this,function(l){switch(l.label){case 0:p(!0),v(null),l.label=1;case 1:return l.trys.push([1,3,4,5]),[4,w.put("".concat(n,"/").concat(e),t)];case 2:return r=l.sent(),o="data"in r.data?r.data.data:r.data,i(function(t){return t.map(function(t){return t.id===e?o:t})}),[2,o];case 3:throw a=l.sent(),c=(null===(s=null===(u=a.response)||void 0===u?void 0:u.data)||void 0===s?void 0:s.message)||a.message||"Failed to update item",v(c),a;case 4:return p(!1),[7];case 5:return[2]}})})},[w,n]),T=t.useCallback(function(e){return l(void 0,void 0,void 0,function(){var t,r,o,a;return d(this,function(c){switch(c.label){case 0:p(!0),v(null),c.label=1;case 1:return c.trys.push([1,3,4,5]),[4,w.delete("".concat(n,"/").concat(e))];case 2:return c.sent(),i(function(t){return t.filter(function(t){return t.id!==e})}),g(function(e){return e-1}),[3,5];case 3:throw t=c.sent(),r=(null===(a=null===(o=t.response)||void 0===o?void 0:o.data)||void 0===a?void 0:a.message)||t.message||"Failed to delete item",v(r),t;case 4:return p(!1),[7];case 5:return[2]}})})},[w,n]),A=t.useCallback(function(){return l(void 0,void 0,void 0,function(){return d(this,function(e){switch(e.label){case 0:return[4,S()];case 1:return e.sent(),[2]}})})},[S]);return{data:o,loading:u,error:m,total:x,hasMore:j,client:w,getAll:S,getById:O,create:C,update:k,delete:T,clearError:P,refresh:A}},exports.useDataFilter=function(e,n){void 0===n&&(n={});var r=n.searchFields,o=void 0===r?["name","title","email","description"]:r,i=n.defaultFilters,a=void 0===i?{}:i,c=t.useState(a),u=c[0],l=c[1],d=t.useState(""),p=d[0],h=d[1],m=t.useCallback(function(e,t){"search"===e?(h(t),l(function(e){return s(s({},e),{search:t})})):l(function(n){var r;return s(s({},n),((r={})[e]=t,r))})},[]),v=t.useCallback(function(){l({}),h("")},[]),b=t.useCallback(function(){l(a),h("")},[a]),x=t.useMemo(function(){var t=f([],e,!0);if(p.trim()){var n=p.toLowerCase().trim();t=t.filter(function(e){return o.some(function(t){var r=e[t];return!!r&&r.toString().toLowerCase().includes(n)})})}return Object.entries(u).forEach(function(e){var n=e[0],r=e[1];"search"!==n&&null!=r&&""!==r&&(t=Array.isArray(r)&&r.length>0?t.filter(function(e){return r.includes(e[n])}):t.filter(function(e){var t=e[n];return null!=t&&(t.toString().toLowerCase()===r.toString().toLowerCase()||"string"==typeof t&&"string"==typeof r&&t.toLowerCase().includes(r.toLowerCase()))}))}),t},[e,p,u,o]);return{filteredData:x,filters:u,setFilter:m,clearFilters:v,resetFilters:b,searchTerm:p,setSearchTerm:h}},exports.validateAppId=function(e){return e?b.appId.test(e)?null:x.appId:null},exports.validateDuration=function(e){return e?b.duration.test(e)?null:x.duration:null},exports.validateEmail=function(e){return e?b.email.test(e)?null:x.email:null},exports.validateJsonString=function(e){if(!e||""===e.trim())return null;try{return JSON.parse(e),null}catch(e){return"Invalid JSON format"}},exports.validateMaxLength=function(e,t,n){return void 0===n&&(n="Field"),e?e.length<=t?null:x.maxLength(n,t):null},exports.validateMinLength=function(e,t,n){return void 0===n&&(n="Field"),e?e.length>=t?null:x.minLength(n,t):null},exports.validatePattern=function(e,t,n){return void 0===n&&(n="Field"),e?t.test(e)?null:x.pattern(n):null},exports.validateRange=function(e,t,n,r){return void 0===r&&(r="Field"),null==e?null:e<t||e>n?x.range(r,t,n):null},exports.validateRequired=function(e){return null==e||""===e||Array.isArray(e)&&0===e.length?"This field is required":null},exports.validateToken=function(e){return e?b.token.test(e)?null:x.token:null},exports.validateUrl=function(e){return e?b.url.test(e)?null:x.url:null},exports.validateUuid=function(e){return e?b.uuid.test(e)?null:x.uuid:null};
|
|
//# sourceMappingURL=index.js.map
|