"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;n0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]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.lengthe.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;t0?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:en?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