master-data-management-react 0.0.1 → 0.1.3
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.
- package/README.md +136 -72
- package/dist/components/ServerSideGrid/styles.d.ts +18 -6
- package/dist/components/ServerSideGrid/styles.d.ts.map +1 -1
- package/dist/hooks/useApiService.d.ts +22 -4
- package/dist/hooks/useApiService.d.ts.map +1 -1
- package/dist/index.cjs +10 -7
- package/dist/index.d.ts +6 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1159 -2604
- package/dist/master-data-management-react.css +1 -1
- package/dist/pages/MasterForm/MasterForm.d.ts +14 -2
- package/dist/pages/MasterForm/MasterForm.d.ts.map +1 -1
- package/dist/pages/MasterView/MasterView.d.ts +11 -2
- package/dist/pages/MasterView/MasterView.d.ts.map +1 -1
- package/package.json +29 -15
- package/dist/App.d.ts +0 -6
- package/dist/App.d.ts.map +0 -1
- package/dist/config/index.d.ts +0 -6
- package/dist/config/index.d.ts.map +0 -1
- package/dist/contexts/MasterDataContext.d.ts +0 -51
- package/dist/contexts/MasterDataContext.d.ts.map +0 -1
- package/dist/main.d.ts +0 -2
- package/dist/main.d.ts.map +0 -1
- package/dist/routes/AppRoutes.d.ts +0 -3
- package/dist/routes/AppRoutes.d.ts.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("react"),a=require("@mui/material"),Vt=require("ag-grid-react"),ye=require("ag-grid-community"),ke=(n,T)=>({getEntities:async()=>{const d=await n.get(T.entities);return{data:d.data.data??d.data}},getMetadata:async d=>{const S=await n.get(T.metadata(d));return{data:S.data.data??S.data}},getRecords:async(d,S)=>{const i=await n.get(T.records(d),{params:S});return{data:i.data.data??i.data,total:i.data.total??i.data.count??0}},getRecord:async(d,S)=>{const i=await n.get(T.recordById(d,S));return{data:i.data.data??i.data}},createRecord:async(d,S)=>{const i=await n.post(T.records(d),S);return{data:i.data.data??i.data}},updateRecord:async(d,S,i)=>{const B=await n.put(T.recordById(d,S),i);return{data:B.data.data??B.data}},deleteRecord:async(d,S)=>{const i=await n.delete(T.recordById(d,S));return{data:i.data.data??i.data}},exportCSV:async(d,S)=>await n.get(T.exportCSV(d),{params:S,responseType:"blob"}),exportExcel:async(d,S)=>await n.get(T.exportExcel(d),{params:S,responseType:"blob"})});var he={exports:{}},Ae={};var nt;function $t(){if(nt)return Ae;nt=1;var n=E,T=Symbol.for("react.element"),d=Symbol.for("react.fragment"),S=Object.prototype.hasOwnProperty,i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,B={key:!0,ref:!0,__self:!0,__source:!0};function z(R,g,Y){var O,D={},x=null,$=null;Y!==void 0&&(x=""+Y),g.key!==void 0&&(x=""+g.key),g.ref!==void 0&&($=g.ref);for(O in g)S.call(g,O)&&!B.hasOwnProperty(O)&&(D[O]=g[O]);if(R&&R.defaultProps)for(O in g=R.defaultProps,g)D[O]===void 0&&(D[O]=g[O]);return{$$typeof:T,type:R,key:x,ref:$,props:D,_owner:i.current}}return Ae.Fragment=d,Ae.jsx=z,Ae.jsxs=z,Ae}var me={};var ot;function Wt(){return ot||(ot=1,process.env.NODE_ENV!=="production"&&(function(){var n=E,T=Symbol.for("react.element"),d=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),B=Symbol.for("react.profiler"),z=Symbol.for("react.provider"),R=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),O=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),$=Symbol.for("react.offscreen"),ee=Symbol.iterator,ie="@@iterator";function K(e){if(e===null||typeof e!="object")return null;var t=ee&&e[ee]||e[ie];return typeof t=="function"?t:null}var k=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function N(e){{for(var t=arguments.length,o=new Array(t>1?t-1:0),c=1;c<t;c++)o[c-1]=arguments[c];M("error",e,o)}}function M(e,t,o){{var c=k.ReactDebugCurrentFrame,h=c.getStackAddendum();h!==""&&(t+="%s",o=o.concat([h]));var C=o.map(function(m){return String(m)});C.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,C)}}var te=!1,w=!1,G=!1,le=!1,J=!1,se;se=Symbol.for("react.module.reference");function A(e){return!!(typeof e=="string"||typeof e=="function"||e===S||e===B||J||e===i||e===Y||e===O||le||e===$||te||w||G||typeof e=="object"&&e!==null&&(e.$$typeof===x||e.$$typeof===D||e.$$typeof===z||e.$$typeof===R||e.$$typeof===g||e.$$typeof===se||e.getModuleId!==void 0))}function f(e,t,o){var c=e.displayName;if(c)return c;var h=t.displayName||t.name||"";return h!==""?o+"("+h+")":o}function l(e){return e.displayName||"Context"}function _(e){if(e==null)return null;if(typeof e.tag=="number"&&N("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case S:return"Fragment";case d:return"Portal";case B:return"Profiler";case i:return"StrictMode";case Y:return"Suspense";case O:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case R:var t=e;return l(t)+".Consumer";case z:var o=e;return l(o._context)+".Provider";case g:return f(e,e.render,"ForwardRef");case D:var c=e.displayName||null;return c!==null?c:_(e.type)||"Memo";case x:{var h=e,C=h._payload,m=h._init;try{return _(m(C))}catch{return null}}}return null}var F=Object.assign,v=0,Q,U,X,ce,de,re,Se;function _e(){}_e.__reactDisabledLog=!0;function Ne(){{if(v===0){Q=console.log,U=console.info,X=console.warn,ce=console.error,de=console.group,re=console.groupCollapsed,Se=console.groupEnd;var e={configurable:!0,enumerable:!0,value:_e,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}v++}}function s(){{if(v--,v===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:F({},e,{value:Q}),info:F({},e,{value:U}),warn:F({},e,{value:X}),error:F({},e,{value:ce}),group:F({},e,{value:de}),groupCollapsed:F({},e,{value:re}),groupEnd:F({},e,{value:Se})})}v<0&&N("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var u=k.ReactCurrentDispatcher,I;function b(e,t,o){{if(I===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);I=c&&c[1]||""}return`
|
|
2
|
+
`+I+e}}var y=!1,L;{var Z=typeof WeakMap=="function"?WeakMap:Map;L=new Z}function Re(e,t){if(!e||y)return"";{var o=L.get(e);if(o!==void 0)return o}var c;y=!0;var h=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var C;C=u.current,u.current=null,Ne();try{if(t){var m=function(){throw Error()};if(Object.defineProperty(m.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(m,[])}catch(W){c=W}Reflect.construct(e,[],m)}else{try{m.call()}catch(W){c=W}e.call(m.prototype)}}else{try{throw Error()}catch(W){c=W}e()}}catch(W){if(W&&c&&typeof W.stack=="string"){for(var p=W.stack.split(`
|
|
3
|
+
`),V=c.stack.split(`
|
|
4
|
+
`),P=p.length-1,j=V.length-1;P>=1&&j>=0&&p[P]!==V[j];)j--;for(;P>=1&&j>=0;P--,j--)if(p[P]!==V[j]){if(P!==1||j!==1)do if(P--,j--,j<0||p[P]!==V[j]){var q=`
|
|
5
|
+
`+p[P].replace(" at new "," at ");return e.displayName&&q.includes("<anonymous>")&&(q=q.replace("<anonymous>",e.displayName)),typeof e=="function"&&L.set(e,q),q}while(P>=1&&j>=0);break}}}finally{y=!1,u.current=C,s(),Error.prepareStackTrace=h}var fe=e?e.displayName||e.name:"",ue=fe?b(fe):"";return typeof e=="function"&&L.set(e,ue),ue}function At(e,t,o){return Re(e,!1)}function mt(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function Oe(e,t,o){if(e==null)return"";if(typeof e=="function")return Re(e,mt(e));if(typeof e=="string")return b(e);switch(e){case Y:return b("Suspense");case O:return b("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case g:return At(e.render);case D:return Oe(e.type,t,o);case x:{var c=e,h=c._payload,C=c._init;try{return Oe(C(h),t,o)}catch{}}}return""}var pe=Object.prototype.hasOwnProperty,$e={},We=k.ReactDebugCurrentFrame;function ve(e){if(e){var t=e._owner,o=Oe(e.type,e._source,t?t.type:null);We.setExtraStackFrame(o)}else We.setExtraStackFrame(null)}function gt(e,t,o,c,h){{var C=Function.call.bind(pe);for(var m in e)if(C(e,m)){var p=void 0;try{if(typeof e[m]!="function"){var V=Error((c||"React class")+": "+o+" type `"+m+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[m]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw V.name="Invariant Violation",V}p=e[m](t,m,c,o,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(P){p=P}p&&!(p instanceof Error)&&(ve(h),N("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",c||"React class",o,m,typeof p),ve(null)),p instanceof Error&&!(p.message in $e)&&($e[p.message]=!0,ve(h),N("Failed %s type: %s",o,p.message),ve(null))}}}var It=Array.isArray;function be(e){return It(e)}function Ot(e){{var t=typeof Symbol=="function"&&Symbol.toStringTag,o=t&&e[Symbol.toStringTag]||e.constructor.name||"Object";return o}}function vt(e){try{return He(e),!1}catch{return!0}}function He(e){return""+e}function Xe(e){if(vt(e))return N("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Ot(e)),He(e)}var ze=k.ReactCurrentOwner,ht={key:!0,ref:!0,__self:!0,__source:!0},qe,Ke;function yt(e){if(pe.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function Dt(e){if(pe.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Ct(e,t){typeof e.ref=="string"&&ze.current}function xt(e,t){{var o=function(){qe||(qe=!0,N("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};o.isReactWarning=!0,Object.defineProperty(e,"key",{get:o,configurable:!0})}}function Nt(e,t){{var o=function(){Ke||(Ke=!0,N("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};o.isReactWarning=!0,Object.defineProperty(e,"ref",{get:o,configurable:!0})}}var bt=function(e,t,o,c,h,C,m){var p={$$typeof:T,type:e,key:t,ref:o,props:m,_owner:C};return p._store={},Object.defineProperty(p._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(p,"_self",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(p,"_source",{configurable:!1,enumerable:!1,writable:!1,value:h}),Object.freeze&&(Object.freeze(p.props),Object.freeze(p)),p};function Lt(e,t,o,c,h){{var C,m={},p=null,V=null;o!==void 0&&(Xe(o),p=""+o),Dt(t)&&(Xe(t.key),p=""+t.key),yt(t)&&(V=t.ref,Ct(t,h));for(C in t)pe.call(t,C)&&!ht.hasOwnProperty(C)&&(m[C]=t[C]);if(e&&e.defaultProps){var P=e.defaultProps;for(C in P)m[C]===void 0&&(m[C]=P[C])}if(p||V){var j=typeof e=="function"?e.displayName||e.name||"Unknown":e;p&&xt(m,j),V&&Nt(m,j)}return bt(e,p,V,h,c,ze.current,m)}}var Le=k.ReactCurrentOwner,Je=k.ReactDebugCurrentFrame;function Ee(e){if(e){var t=e._owner,o=Oe(e.type,e._source,t?t.type:null);Je.setExtraStackFrame(o)}else Je.setExtraStackFrame(null)}var Pe;Pe=!1;function Me(e){return typeof e=="object"&&e!==null&&e.$$typeof===T}function Qe(){{if(Le.current){var e=_(Le.current.type);if(e)return`
|
|
6
|
+
|
|
7
|
+
Check the render method of \``+e+"`."}return""}}function Pt(e){return""}var Ze={};function Mt(e){{var t=Qe();if(!t){var o=typeof e=="string"?e:e.displayName||e.name;o&&(t=`
|
|
8
|
+
|
|
9
|
+
Check the top-level render call using <`+o+">.")}return t}}function et(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var o=Mt(t);if(Ze[o])return;Ze[o]=!0;var c="";e&&e._owner&&e._owner!==Le.current&&(c=" It was passed a child from "+_(e._owner.type)+"."),Ee(e),N('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',o,c),Ee(null)}}function tt(e,t){{if(typeof e!="object")return;if(be(e))for(var o=0;o<e.length;o++){var c=e[o];Me(c)&&et(c,t)}else if(Me(e))e._store&&(e._store.validated=!0);else if(e){var h=K(e);if(typeof h=="function"&&h!==e.entries)for(var C=h.call(e),m;!(m=C.next()).done;)Me(m.value)&&et(m.value,t)}}}function Ft(e){{var t=e.type;if(t==null||typeof t=="string")return;var o;if(typeof t=="function")o=t.propTypes;else if(typeof t=="object"&&(t.$$typeof===g||t.$$typeof===D))o=t.propTypes;else return;if(o){var c=_(t);gt(o,e.props,"prop",c,e)}else if(t.PropTypes!==void 0&&!Pe){Pe=!0;var h=_(t);N("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",h||"Unknown")}typeof t.getDefaultProps=="function"&&!t.getDefaultProps.isReactClassApproved&&N("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function jt(e){{for(var t=Object.keys(e.props),o=0;o<t.length;o++){var c=t[o];if(c!=="children"&&c!=="key"){Ee(e),N("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",c),Ee(null);break}}e.ref!==null&&(Ee(e),N("Invalid attribute `ref` supplied to `React.Fragment`."),Ee(null))}}var rt={};function at(e,t,o,c,h,C){{var m=A(e);if(!m){var p="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(p+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var V=Pt();V?p+=V:p+=Qe();var P;e===null?P="null":be(e)?P="array":e!==void 0&&e.$$typeof===T?(P="<"+(_(e.type)||"Unknown")+" />",p=" Did you accidentally export a JSX literal instead of a component?"):P=typeof e,N("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",P,p)}var j=Lt(e,t,o,h,C);if(j==null)return j;if(m){var q=t.children;if(q!==void 0)if(c)if(be(q)){for(var fe=0;fe<q.length;fe++)tt(q[fe],e);Object.freeze&&Object.freeze(q)}else N("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else tt(q,e)}if(pe.call(t,"key")){var ue=_(e),W=Object.keys(t).filter(function(kt){return kt!=="key"}),Fe=W.length>0?"{key: someKey, "+W.join(": ..., ")+": ...}":"{key: someKey}";if(!rt[ue+Fe]){var Yt=W.length>0?"{"+W.join(": ..., ")+": ...}":"{}";N(`A props object containing a "key" prop is being spread into JSX:
|
|
2
10
|
let props = %s;
|
|
3
11
|
<%s {...props} />
|
|
4
12
|
React keys must be passed directly to JSX without using spread:
|
|
5
13
|
let props = %s;
|
|
6
|
-
<%s key={someKey} {...props} />`,R,b,U,b),ie[b+R]=!0)}if(b=null,E!==void 0&&(n(E),b=""+E),a(_)&&(n(_.key),b=""+_.key),"key"in _){E={};for(var K in _)K!=="key"&&(E[K]=_[K])}else E=_;return b&&l(E,typeof c=="function"?c.displayName||c.name||"Unknown":c),d(c,b,E,s(),N,G)}function S(c){I(c)?c._store&&(c._store.validated=1):typeof c=="object"&&c!==null&&c.$$typeof===y&&(c._payload.status==="fulfilled"?I(c._payload.value)&&c._payload.value._store&&(c._payload.value._store.validated=1):c._store&&(c._store.validated=1))}function I(c){return typeof c=="object"&&c!==null&&c.$$typeof===f}var M=C,f=Symbol.for("react.transitional.element"),A=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),v=Symbol.for("react.profiler"),L=Symbol.for("react.consumer"),P=Symbol.for("react.context"),j=Symbol.for("react.forward_ref"),H=Symbol.for("react.suspense"),B=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),O=Symbol.for("react.activity"),D=Symbol.for("react.client.reference"),$=M.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,F=Object.prototype.hasOwnProperty,Y=Array.isArray,Q=console.createTask?console.createTask:function(){return null};M={react_stack_bottom_frame:function(c){return c()}};var V,ne={},J=M.react_stack_bottom_frame.bind(M,o)(),ae=Q(r(o)),ie={};he.Fragment=T,he.jsx=function(c,_,E){var R=1e4>$.recentlyCreatedOwnerStacks++;return u(c,_,E,!1,R?Error("react-stack-top-frame"):J,R?Q(r(c)):ae)},he.jsxs=function(c,_,E){var R=1e4>$.recentlyCreatedOwnerStacks++;return u(c,_,E,!0,R?Error("react-stack-top-frame"):J,R?Q(r(c)):ae)}})()),he}var dt;function Sn(){return dt||(dt=1,process.env.NODE_ENV==="production"?Ce.exports=hn():Ce.exports=Tn()),Ce.exports}var p=Sn();const Rn={entities:"/master/entities",metadata:e=>`/master/${e}/metadata`,records:e=>`/master/${e}/records`,recordById:(e,t)=>`/master/${e}/records/${t}`,exportCSV:e=>`/master/${e}/export/csv`,exportExcel:e=>`/master/${e}/export/excel`},An={basePath:"/master",entityNew:e=>`/master/${e}/new`,entityView:(e,t)=>`/master/${e}/${t}`,entityEdit:(e,t)=>`/master/${e}/${t}/edit`},Dt=C.createContext(null),_n=({config:e={},children:t})=>{const n={apiClient:e.apiClient,apiEndpoints:{...Rn,...e.apiEndpoints},routes:{...An,...e.routes},apiService:e.apiService};return p.jsx(Dt.Provider,{value:n,children:t})},_e=()=>{const e=C.useContext(Dt);if(!e)throw new Error("useMasterDataConfig must be used within MasterDataProvider");return e};function Lt(e,t){return function(){return e.apply(t,arguments)}}const{toString:yn}=Object.prototype,{getPrototypeOf:nt}=Object,{iterator:ve,toStringTag:Pt}=Symbol,Ue=(e=>t=>{const n=yn.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Z=e=>(e=e.toLowerCase(),t=>Ue(t)===e),Be=e=>t=>typeof t===e,{isArray:Ee}=Array,fe=Be("undefined");function ye(e){return e!==null&&!fe(e)&&e.constructor!==null&&!fe(e.constructor)&&z(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ft=Z("ArrayBuffer");function On(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ft(e.buffer),t}const gn=Be("string"),z=Be("function"),Mt=Be("number"),Oe=e=>e!==null&&typeof e=="object",bn=e=>e===!0||e===!1,Ne=e=>{if(Ue(e)!=="object")return!1;const t=nt(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Pt in e)&&!(ve in e)},xn=e=>{if(!Oe(e)||ye(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Cn=Z("Date"),wn=Z("File"),In=Z("Blob"),Nn=Z("FileList"),Dn=e=>Oe(e)&&z(e.pipe),Ln=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||z(e.append)&&((t=Ue(e))==="formdata"||t==="object"&&z(e.toString)&&e.toString()==="[object FormData]"))},Pn=Z("URLSearchParams"),[Fn,Mn,jn,vn]=["ReadableStream","Request","Response","Headers"].map(Z),Un=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ge(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Ee(e))for(r=0,s=e.length;r<s;r++)t.call(null,e[r],r,e);else{if(ye(e))return;const o=n?Object.getOwnPropertyNames(e):Object.keys(e),a=o.length;let l;for(r=0;r<a;r++)l=o[r],t.call(null,e[l],l,e)}}function jt(e,t){if(ye(e))return null;t=t.toLowerCase();const n=Object.keys(e);let r=n.length,s;for(;r-- >0;)if(s=n[r],t===s.toLowerCase())return s;return null}const le=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,vt=e=>!fe(e)&&e!==le;function Ye(){const{caseless:e,skipUndefined:t}=vt(this)&&this||{},n={},r=(s,o)=>{const a=e&&jt(n,o)||o;Ne(n[a])&&Ne(s)?n[a]=Ye(n[a],s):Ne(s)?n[a]=Ye({},s):Ee(s)?n[a]=s.slice():(!t||!fe(s))&&(n[a]=s)};for(let s=0,o=arguments.length;s<o;s++)arguments[s]&&ge(arguments[s],r);return n}const Bn=(e,t,n,{allOwnKeys:r}={})=>(ge(t,(s,o)=>{n&&z(s)?e[o]=Lt(s,n):e[o]=s},{allOwnKeys:r}),e),kn=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),$n=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Gn=(e,t,n,r)=>{let s,o,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)a=s[o],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&nt(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Hn=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Vn=e=>{if(!e)return null;if(Ee(e))return e;let t=e.length;if(!Mt(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Yn=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&nt(Uint8Array)),qn=(e,t)=>{const r=(e&&e[ve]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},Wn=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},zn=Z("HTMLFormElement"),Xn=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ft=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Jn=Z("RegExp"),Ut=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};ge(n,(s,o)=>{let a;(a=t(s,o,e))!==!1&&(r[o]=a||s)}),Object.defineProperties(e,r)},Kn=e=>{Ut(e,(t,n)=>{if(z(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(z(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Qn=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Ee(e)?r(e):r(String(e).split(t)),n},Zn=()=>{},er=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function tr(e){return!!(e&&z(e.append)&&e[Pt]==="FormData"&&e[ve])}const nr=e=>{const t=new Array(10),n=(r,s)=>{if(Oe(r)){if(t.indexOf(r)>=0)return;if(ye(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Ee(r)?[]:{};return ge(r,(a,l)=>{const m=n(a,s+1);!fe(m)&&(o[l]=m)}),t[s]=void 0,o}}return r};return n(e,0)},rr=Z("AsyncFunction"),sr=e=>e&&(Oe(e)||z(e))&&z(e.then)&&z(e.catch),Bt=((e,t)=>e?setImmediate:t?((n,r)=>(le.addEventListener("message",({source:s,data:o})=>{s===le&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),le.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",z(le.postMessage)),or=typeof queueMicrotask<"u"?queueMicrotask.bind(le):typeof process<"u"&&process.nextTick||Bt,ar=e=>e!=null&&z(e[ve]),i={isArray:Ee,isArrayBuffer:Ft,isBuffer:ye,isFormData:Ln,isArrayBufferView:On,isString:gn,isNumber:Mt,isBoolean:bn,isObject:Oe,isPlainObject:Ne,isEmptyObject:xn,isReadableStream:Fn,isRequest:Mn,isResponse:jn,isHeaders:vn,isUndefined:fe,isDate:Cn,isFile:wn,isBlob:In,isRegExp:Jn,isFunction:z,isStream:Dn,isURLSearchParams:Pn,isTypedArray:Yn,isFileList:Nn,forEach:ge,merge:Ye,extend:Bn,trim:Un,stripBOM:kn,inherits:$n,toFlatObject:Gn,kindOf:Ue,kindOfTest:Z,endsWith:Hn,toArray:Vn,forEachEntry:qn,matchAll:Wn,isHTMLForm:zn,hasOwnProperty:ft,hasOwnProp:ft,reduceDescriptors:Ut,freezeMethods:Kn,toObjectSet:Qn,toCamelCase:Xn,noop:Zn,toFiniteNumber:er,findKey:jt,global:le,isContextDefined:vt,isSpecCompliantForm:tr,toJSONObject:nr,isAsyncFn:rr,isThenable:sr,setImmediate:Bt,asap:or,isIterable:ar};function x(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}i.inherits(x,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:i.toJSONObject(this.config),code:this.code,status:this.status}}});const kt=x.prototype,$t={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{$t[e]={value:e}});Object.defineProperties(x,$t);Object.defineProperty(kt,"isAxiosError",{value:!0});x.from=(e,t,n,r,s,o)=>{const a=Object.create(kt);i.toFlatObject(e,a,function(u){return u!==Error.prototype},d=>d!=="isAxiosError");const l=e&&e.message?e.message:"Error",m=t==null&&e?e.code:t;return x.call(a,l,m,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",o&&Object.assign(a,o),a};const ir=null;function qe(e){return i.isPlainObject(e)||i.isArray(e)}function Gt(e){return i.endsWith(e,"[]")?e.slice(0,-2):e}function Et(e,t,n){return e?e.concat(t).map(function(s,o){return s=Gt(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function lr(e){return i.isArray(e)&&!e.some(qe)}const cr=i.toFlatObject(i,{},null,function(t){return/^is[A-Z]/.test(t)});function ke(e,t,n){if(!i.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=i.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(A,T){return!i.isUndefined(T[A])});const r=n.metaTokens,s=n.visitor||u,o=n.dots,a=n.indexes,m=(n.Blob||typeof Blob<"u"&&Blob)&&i.isSpecCompliantForm(t);if(!i.isFunction(s))throw new TypeError("visitor must be a function");function d(f){if(f===null)return"";if(i.isDate(f))return f.toISOString();if(i.isBoolean(f))return f.toString();if(!m&&i.isBlob(f))throw new x("Blob is not supported. Use a Buffer instead.");return i.isArrayBuffer(f)||i.isTypedArray(f)?m&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function u(f,A,T){let w=f;if(f&&!T&&typeof f=="object"){if(i.endsWith(A,"{}"))A=r?A:A.slice(0,-2),f=JSON.stringify(f);else if(i.isArray(f)&&lr(f)||(i.isFileList(f)||i.endsWith(A,"[]"))&&(w=i.toArray(f)))return A=Gt(A),w.forEach(function(L,P){!(i.isUndefined(L)||L===null)&&t.append(a===!0?Et([A],P,o):a===null?A:A+"[]",d(L))}),!1}return qe(f)?!0:(t.append(Et(T,A,o),d(f)),!1)}const S=[],I=Object.assign(cr,{defaultVisitor:u,convertValue:d,isVisitable:qe});function M(f,A){if(!i.isUndefined(f)){if(S.indexOf(f)!==-1)throw Error("Circular reference detected in "+A.join("."));S.push(f),i.forEach(f,function(w,v){(!(i.isUndefined(w)||w===null)&&s.call(t,w,i.isString(v)?v.trim():v,A,I))===!0&&M(w,A?A.concat(v):[v])}),S.pop()}}if(!i.isObject(e))throw new TypeError("data must be an object");return M(e),t}function pt(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function rt(e,t){this._pairs=[],e&&ke(e,this,t)}const Ht=rt.prototype;Ht.append=function(t,n){this._pairs.push([t,n])};Ht.toString=function(t){const n=t?function(r){return t.call(this,r,pt)}:pt;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function ur(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Vt(e,t,n){if(!t)return e;const r=n&&n.encode||ur;i.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=i.isURLSearchParams(t)?t.toString():new rt(t,n).toString(r),o){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class mt{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){i.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Yt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},dr=typeof URLSearchParams<"u"?URLSearchParams:rt,fr=typeof FormData<"u"?FormData:null,Er=typeof Blob<"u"?Blob:null,pr={isBrowser:!0,classes:{URLSearchParams:dr,FormData:fr,Blob:Er},protocols:["http","https","file","blob","url","data"]},st=typeof window<"u"&&typeof document<"u",We=typeof navigator=="object"&&navigator||void 0,mr=st&&(!We||["ReactNative","NativeScript","NS"].indexOf(We.product)<0),hr=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Tr=st&&window.location.href||"http://localhost",Sr=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:st,hasStandardBrowserEnv:mr,hasStandardBrowserWebWorkerEnv:hr,navigator:We,origin:Tr},Symbol.toStringTag,{value:"Module"})),q={...Sr,...pr};function Rr(e,t){return ke(e,new q.classes.URLSearchParams,{visitor:function(n,r,s,o){return q.isNode&&i.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Ar(e){return i.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function _r(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r<s;r++)o=n[r],t[o]=e[o];return t}function qt(e){function t(n,r,s,o){let a=n[o++];if(a==="__proto__")return!0;const l=Number.isFinite(+a),m=o>=n.length;return a=!a&&i.isArray(s)?s.length:a,m?(i.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!i.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],o)&&i.isArray(s[a])&&(s[a]=_r(s[a])),!l)}if(i.isFormData(e)&&i.isFunction(e.entries)){const n={};return i.forEachEntry(e,(r,s)=>{t(Ar(r),s,n,0)}),n}return null}function yr(e,t,n){if(i.isString(e))try{return(t||JSON.parse)(e),i.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const be={transitional:Yt,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=i.isObject(t);if(o&&i.isHTMLForm(t)&&(t=new FormData(t)),i.isFormData(t))return s?JSON.stringify(qt(t)):t;if(i.isArrayBuffer(t)||i.isBuffer(t)||i.isStream(t)||i.isFile(t)||i.isBlob(t)||i.isReadableStream(t))return t;if(i.isArrayBufferView(t))return t.buffer;if(i.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Rr(t,this.formSerializer).toString();if((l=i.isFileList(t))||r.indexOf("multipart/form-data")>-1){const m=this.env&&this.env.FormData;return ke(l?{"files[]":t}:t,m&&new m,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),yr(t)):t}],transformResponse:[function(t){const n=this.transitional||be.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(i.isResponse(t)||i.isReadableStream(t))return t;if(t&&i.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?x.from(l,x.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:q.classes.FormData,Blob:q.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};i.forEach(["delete","get","head","post","put","patch"],e=>{be.headers[e]={}});const Or=i.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),gr=e=>{const t={};let n,r,s;return e&&e.split(`
|
|
7
|
-
`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&Or[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},ht=Symbol("internals");function Te(e){return e&&String(e).trim().toLowerCase()}function De(e){return e===!1||e==null?e:i.isArray(e)?e.map(De):String(e)}function br(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const xr=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Ge(e,t,n,r,s){if(i.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!i.isString(t)){if(i.isString(r))return t.indexOf(r)!==-1;if(i.isRegExp(r))return r.test(t)}}function Cr(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function wr(e,t){const n=i.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,a){return this[r].call(this,t,s,o,a)},configurable:!0})})}let X=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,m,d){const u=Te(m);if(!u)throw new Error("header name must be a non-empty string");const S=i.findKey(s,u);(!S||s[S]===void 0||d===!0||d===void 0&&s[S]!==!1)&&(s[S||m]=De(l))}const a=(l,m)=>i.forEach(l,(d,u)=>o(d,u,m));if(i.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(i.isString(t)&&(t=t.trim())&&!xr(t))a(gr(t),n);else if(i.isObject(t)&&i.isIterable(t)){let l={},m,d;for(const u of t){if(!i.isArray(u))throw TypeError("Object iterator must return a key-value pair");l[d=u[0]]=(m=l[d])?i.isArray(m)?[...m,u[1]]:[m,u[1]]:u[1]}a(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=Te(t),t){const r=i.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return br(s);if(i.isFunction(n))return n.call(this,s,r);if(i.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Te(t),t){const r=i.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Ge(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(a){if(a=Te(a),a){const l=i.findKey(r,a);l&&(!n||Ge(r,r[l],l,n))&&(delete r[l],s=!0)}}return i.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Ge(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return i.forEach(this,(s,o)=>{const a=i.findKey(r,o);if(a){n[a]=De(s),delete n[o];return}const l=t?Cr(o):String(o).trim();l!==o&&delete n[o],n[l]=De(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return i.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&i.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(`
|
|
8
|
-
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[ht]=this[ht]={accessors:{}}).accessors,s=this.prototype;function o(a){const l=Te(a);r[l]||(wr(s,a),r[l]=!0)}return i.isArray(t)?t.forEach(o):o(t),this}};X.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);i.reduceDescriptors(X.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});i.freezeMethods(X);function He(e,t){const n=this||be,r=t||n,s=X.from(r.headers);let o=r.data;return i.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Wt(e){return!!(e&&e.__CANCEL__)}function pe(e,t,n){x.call(this,e??"canceled",x.ERR_CANCELED,t,n),this.name="CanceledError"}i.inherits(pe,x,{__CANCEL__:!0});function zt(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new x("Request failed with status code "+n.status,[x.ERR_BAD_REQUEST,x.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Ir(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Nr(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,a;return t=t!==void 0?t:1e3,function(m){const d=Date.now(),u=r[o];a||(a=d),n[s]=m,r[s]=d;let S=o,I=0;for(;S!==s;)I+=n[S++],S=S%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),d-a<t)return;const M=u&&d-u;return M?Math.round(I*1e3/M):void 0}}function Dr(e,t){let n=0,r=1e3/t,s,o;const a=(d,u=Date.now())=>{n=u,s=null,o&&(clearTimeout(o),o=null),e(...d)};return[(...d)=>{const u=Date.now(),S=u-n;S>=r?a(d,u):(s=d,o||(o=setTimeout(()=>{o=null,a(s)},r-S)))},()=>s&&a(s)]}const je=(e,t,n=3)=>{let r=0;const s=Nr(50,250);return Dr(o=>{const a=o.loaded,l=o.lengthComputable?o.total:void 0,m=a-r,d=s(m),u=a<=l;r=a;const S={loaded:a,total:l,progress:l?a/l:void 0,bytes:m,rate:d||void 0,estimated:d&&l&&u?(l-a)/d:void 0,event:o,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(S)},n)},Tt=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},St=e=>(...t)=>i.asap(()=>e(...t)),Lr=q.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,q.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(q.origin),q.navigator&&/(msie|trident)/i.test(q.navigator.userAgent)):()=>!0,Pr=q.hasStandardBrowserEnv?{write(e,t,n,r,s,o,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];i.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),i.isString(r)&&l.push(`path=${r}`),i.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),i.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function Fr(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Mr(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Xt(e,t,n){let r=!Fr(t);return e&&(r||n==!1)?Mr(e,t):t}const Rt=e=>e instanceof X?{...e}:e;function ue(e,t){t=t||{};const n={};function r(d,u,S,I){return i.isPlainObject(d)&&i.isPlainObject(u)?i.merge.call({caseless:I},d,u):i.isPlainObject(u)?i.merge({},u):i.isArray(u)?u.slice():u}function s(d,u,S,I){if(i.isUndefined(u)){if(!i.isUndefined(d))return r(void 0,d,S,I)}else return r(d,u,S,I)}function o(d,u){if(!i.isUndefined(u))return r(void 0,u)}function a(d,u){if(i.isUndefined(u)){if(!i.isUndefined(d))return r(void 0,d)}else return r(void 0,u)}function l(d,u,S){if(S in t)return r(d,u);if(S in e)return r(void 0,d)}const m={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(d,u,S)=>s(Rt(d),Rt(u),S,!0)};return i.forEach(Object.keys({...e,...t}),function(u){const S=m[u]||s,I=S(e[u],t[u],u);i.isUndefined(I)&&S!==l||(n[u]=I)}),n}const Jt=e=>{const t=ue({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:a,auth:l}=t;if(t.headers=a=X.from(a),t.url=Vt(Xt(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),i.isFormData(n)){if(q.hasStandardBrowserEnv||q.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(i.isFunction(n.getHeaders)){const m=n.getHeaders(),d=["content-type","content-length"];Object.entries(m).forEach(([u,S])=>{d.includes(u.toLowerCase())&&a.set(u,S)})}}if(q.hasStandardBrowserEnv&&(r&&i.isFunction(r)&&(r=r(t)),r||r!==!1&&Lr(t.url))){const m=s&&o&&Pr.read(o);m&&a.set(s,m)}return t},jr=typeof XMLHttpRequest<"u",vr=jr&&function(e){return new Promise(function(n,r){const s=Jt(e);let o=s.data;const a=X.from(s.headers).normalize();let{responseType:l,onUploadProgress:m,onDownloadProgress:d}=s,u,S,I,M,f;function A(){M&&M(),f&&f(),s.cancelToken&&s.cancelToken.unsubscribe(u),s.signal&&s.signal.removeEventListener("abort",u)}let T=new XMLHttpRequest;T.open(s.method.toUpperCase(),s.url,!0),T.timeout=s.timeout;function w(){if(!T)return;const L=X.from("getAllResponseHeaders"in T&&T.getAllResponseHeaders()),j={data:!l||l==="text"||l==="json"?T.responseText:T.response,status:T.status,statusText:T.statusText,headers:L,config:e,request:T};zt(function(B){n(B),A()},function(B){r(B),A()},j),T=null}"onloadend"in T?T.onloadend=w:T.onreadystatechange=function(){!T||T.readyState!==4||T.status===0&&!(T.responseURL&&T.responseURL.indexOf("file:")===0)||setTimeout(w)},T.onabort=function(){T&&(r(new x("Request aborted",x.ECONNABORTED,e,T)),T=null)},T.onerror=function(P){const j=P&&P.message?P.message:"Network Error",H=new x(j,x.ERR_NETWORK,e,T);H.event=P||null,r(H),T=null},T.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const j=s.transitional||Yt;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new x(P,j.clarifyTimeoutError?x.ETIMEDOUT:x.ECONNABORTED,e,T)),T=null},o===void 0&&a.setContentType(null),"setRequestHeader"in T&&i.forEach(a.toJSON(),function(P,j){T.setRequestHeader(j,P)}),i.isUndefined(s.withCredentials)||(T.withCredentials=!!s.withCredentials),l&&l!=="json"&&(T.responseType=s.responseType),d&&([I,f]=je(d,!0),T.addEventListener("progress",I)),m&&T.upload&&([S,M]=je(m),T.upload.addEventListener("progress",S),T.upload.addEventListener("loadend",M)),(s.cancelToken||s.signal)&&(u=L=>{T&&(r(!L||L.type?new pe(null,e,T):L),T.abort(),T=null)},s.cancelToken&&s.cancelToken.subscribe(u),s.signal&&(s.signal.aborted?u():s.signal.addEventListener("abort",u)));const v=Ir(s.url);if(v&&q.protocols.indexOf(v)===-1){r(new x("Unsupported protocol "+v+":",x.ERR_BAD_REQUEST,e));return}T.send(o||null)})},Ur=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(d){if(!s){s=!0,l();const u=d instanceof Error?d:this.reason;r.abort(u instanceof x?u:new pe(u instanceof Error?u.message:u))}};let a=t&&setTimeout(()=>{a=null,o(new x(`timeout ${t} of ms exceeded`,x.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(d=>{d.unsubscribe?d.unsubscribe(o):d.removeEventListener("abort",o)}),e=null)};e.forEach(d=>d.addEventListener("abort",o));const{signal:m}=r;return m.unsubscribe=()=>i.asap(l),m}},Br=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let r=0,s;for(;r<n;)s=r+t,yield e.slice(r,s),r=s},kr=async function*(e,t){for await(const n of $r(e))yield*Br(n,t)},$r=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},At=(e,t,n,r)=>{const s=kr(e,t);let o=0,a,l=m=>{a||(a=!0,r&&r(m))};return new ReadableStream({async pull(m){try{const{done:d,value:u}=await s.next();if(d){l(),m.close();return}let S=u.byteLength;if(n){let I=o+=S;n(I)}m.enqueue(new Uint8Array(u))}catch(d){throw l(d),d}},cancel(m){return l(m),s.return()}},{highWaterMark:2})},_t=64*1024,{isFunction:we}=i,Gr=(({Request:e,Response:t})=>({Request:e,Response:t}))(i.global),{ReadableStream:yt,TextEncoder:Ot}=i.global,gt=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Hr=e=>{e=i.merge.call({skipUndefined:!0},Gr,e);const{fetch:t,Request:n,Response:r}=e,s=t?we(t):typeof fetch=="function",o=we(n),a=we(r);if(!s)return!1;const l=s&&we(yt),m=s&&(typeof Ot=="function"?(f=>A=>f.encode(A))(new Ot):async f=>new Uint8Array(await new n(f).arrayBuffer())),d=o&&l&>(()=>{let f=!1;const A=new n(q.origin,{body:new yt,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!A}),u=a&&l&>(()=>i.isReadableStream(new r("").body)),S={stream:u&&(f=>f.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!S[f]&&(S[f]=(A,T)=>{let w=A&&A[f];if(w)return w.call(A);throw new x(`Response type '${f}' is not supported`,x.ERR_NOT_SUPPORT,T)})});const I=async f=>{if(f==null)return 0;if(i.isBlob(f))return f.size;if(i.isSpecCompliantForm(f))return(await new n(q.origin,{method:"POST",body:f}).arrayBuffer()).byteLength;if(i.isArrayBufferView(f)||i.isArrayBuffer(f))return f.byteLength;if(i.isURLSearchParams(f)&&(f=f+""),i.isString(f))return(await m(f)).byteLength},M=async(f,A)=>{const T=i.toFiniteNumber(f.getContentLength());return T??I(A)};return async f=>{let{url:A,method:T,data:w,signal:v,cancelToken:L,timeout:P,onDownloadProgress:j,onUploadProgress:H,responseType:B,headers:g,withCredentials:y="same-origin",fetchOptions:O}=Jt(f),D=t||fetch;B=B?(B+"").toLowerCase():"text";let $=Ur([v,L&&L.toAbortSignal()],P),F=null;const Y=$&&$.unsubscribe&&(()=>{$.unsubscribe()});let Q;try{if(H&&d&&T!=="get"&&T!=="head"&&(Q=await M(g,w))!==0){let c=new n(A,{method:"POST",body:w,duplex:"half"}),_;if(i.isFormData(w)&&(_=c.headers.get("content-type"))&&g.setContentType(_),c.body){const[E,R]=Tt(Q,je(St(H)));w=At(c.body,_t,E,R)}}i.isString(y)||(y=y?"include":"omit");const V=o&&"credentials"in n.prototype,ne={...O,signal:$,method:T.toUpperCase(),headers:g.normalize().toJSON(),body:w,duplex:"half",credentials:V?y:void 0};F=o&&new n(A,ne);let J=await(o?D(F,O):D(A,ne));const ae=u&&(B==="stream"||B==="response");if(u&&(j||ae&&Y)){const c={};["status","statusText","headers"].forEach(N=>{c[N]=J[N]});const _=i.toFiniteNumber(J.headers.get("content-length")),[E,R]=j&&Tt(_,je(St(j),!0))||[];J=new r(At(J.body,_t,E,()=>{R&&R(),Y&&Y()}),c)}B=B||"text";let ie=await S[i.findKey(S,B)||"text"](J,f);return!ae&&Y&&Y(),await new Promise((c,_)=>{zt(c,_,{data:ie,headers:X.from(J.headers),status:J.status,statusText:J.statusText,config:f,request:F})})}catch(V){throw Y&&Y(),V&&V.name==="TypeError"&&/Load failed|fetch/i.test(V.message)?Object.assign(new x("Network Error",x.ERR_NETWORK,f,F),{cause:V.cause||V}):x.from(V,V&&V.code,f,F)}}},Vr=new Map,Kt=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let a=o.length,l=a,m,d,u=Vr;for(;l--;)m=o[l],d=u.get(m),d===void 0&&u.set(m,d=l?new Map:Hr(t)),u=d;return d};Kt();const ot={http:ir,xhr:vr,fetch:{get:Kt}};i.forEach(ot,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const bt=e=>`- ${e}`,Yr=e=>i.isFunction(e)||e===null||e===!1;function qr(e,t){e=i.isArray(e)?e:[e];const{length:n}=e;let r,s;const o={};for(let a=0;a<n;a++){r=e[a];let l;if(s=r,!Yr(r)&&(s=ot[(l=String(r)).toLowerCase()],s===void 0))throw new x(`Unknown adapter '${l}'`);if(s&&(i.isFunction(s)||(s=s.get(t))))break;o[l||"#"+a]=s}if(!s){const a=Object.entries(o).map(([m,d])=>`adapter ${m} `+(d===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since :
|
|
9
|
-
`+a.map(bt).join(`
|
|
10
|
-
`):" "+bt(a[0]):"as no adapter specified";throw new x("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Qt={getAdapter:qr,adapters:ot};function Ve(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new pe(null,e)}function xt(e){return Ve(e),e.headers=X.from(e.headers),e.data=He.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Qt.getAdapter(e.adapter||be.adapter,e)(e).then(function(r){return Ve(e),r.data=He.call(e,e.transformResponse,r),r.headers=X.from(r.headers),r},function(r){return Wt(r)||(Ve(e),r&&r.response&&(r.response.data=He.call(e,e.transformResponse,r.response),r.response.headers=X.from(r.response.headers))),Promise.reject(r)})}const Zt="1.13.2",$e={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{$e[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ct={};$e.transitional=function(t,n,r){function s(o,a){return"[Axios v"+Zt+"] Transitional option '"+o+"'"+a+(r?". "+r:"")}return(o,a,l)=>{if(t===!1)throw new x(s(a," has been removed"+(n?" in "+n:"")),x.ERR_DEPRECATED);return n&&!Ct[a]&&(Ct[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,a,l):!0}};$e.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Wr(e,t,n){if(typeof e!="object")throw new x("options must be an object",x.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],a=t[o];if(a){const l=e[o],m=l===void 0||a(l,o,e);if(m!==!0)throw new x("option "+o+" must be "+m,x.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new x("Unknown option "+o,x.ERR_BAD_OPTION)}}const Le={assertOptions:Wr,validators:$e},ee=Le.validators;let ce=class{constructor(t){this.defaults=t||{},this.interceptors={request:new mt,response:new mt}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=`
|
|
11
|
-
`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ue(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Le.assertOptions(r,{silentJSONParsing:ee.transitional(ee.boolean),forcedJSONParsing:ee.transitional(ee.boolean),clarifyTimeoutError:ee.transitional(ee.boolean)},!1),s!=null&&(i.isFunction(s)?n.paramsSerializer={serialize:s}:Le.assertOptions(s,{encode:ee.function,serialize:ee.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Le.assertOptions(n,{baseUrl:ee.spelling("baseURL"),withXsrfToken:ee.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=o&&i.merge(o.common,o[n.method]);o&&i.forEach(["delete","get","head","post","put","patch","common"],f=>{delete o[f]}),n.headers=X.concat(a,o);const l=[];let m=!0;this.interceptors.request.forEach(function(A){typeof A.runWhen=="function"&&A.runWhen(n)===!1||(m=m&&A.synchronous,l.unshift(A.fulfilled,A.rejected))});const d=[];this.interceptors.response.forEach(function(A){d.push(A.fulfilled,A.rejected)});let u,S=0,I;if(!m){const f=[xt.bind(this),void 0];for(f.unshift(...l),f.push(...d),I=f.length,u=Promise.resolve(n);S<I;)u=u.then(f[S++],f[S++]);return u}I=l.length;let M=n;for(;S<I;){const f=l[S++],A=l[S++];try{M=f(M)}catch(T){A.call(this,T);break}}try{u=xt.call(this,M)}catch(f){return Promise.reject(f)}for(S=0,I=d.length;S<I;)u=u.then(d[S++],d[S++]);return u}getUri(t){t=ue(this.defaults,t);const n=Xt(t.baseURL,t.url,t.allowAbsoluteUrls);return Vt(n,t.params,t.paramsSerializer)}};i.forEach(["delete","get","head","options"],function(t){ce.prototype[t]=function(n,r){return this.request(ue(r||{},{method:t,url:n,data:(r||{}).data}))}});i.forEach(["post","put","patch"],function(t){function n(r){return function(o,a,l){return this.request(ue(l||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:a}))}}ce.prototype[t]=n(),ce.prototype[t+"Form"]=n(!0)});let zr=class en{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(o){n=o});const r=this;this.promise.then(s=>{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const a=new Promise(l=>{r.subscribe(l),o=l}).then(s);return a.cancel=function(){r.unsubscribe(o)},a},t(function(o,a,l){r.reason||(r.reason=new pe(o,a,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new en(function(s){t=s}),cancel:t}}};function Xr(e){return function(n){return e.apply(null,n)}}function Jr(e){return i.isObject(e)&&e.isAxiosError===!0}const ze={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(ze).forEach(([e,t])=>{ze[t]=e});function tn(e){const t=new ce(e),n=Lt(ce.prototype.request,t);return i.extend(n,ce.prototype,t,{allOwnKeys:!0}),i.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return tn(ue(e,s))},n}const k=tn(be);k.Axios=ce;k.CanceledError=pe;k.CancelToken=zr;k.isCancel=Wt;k.VERSION=Zt;k.toFormData=ke;k.AxiosError=x;k.Cancel=k.CanceledError;k.all=function(t){return Promise.all(t)};k.spread=Xr;k.isAxiosError=Jr;k.mergeConfig=ue;k.AxiosHeaders=X;k.formToJSON=e=>qt(i.isHTMLForm(e)?new FormData(e):e);k.getAdapter=Qt.getAdapter;k.HttpStatusCode=ze;k.default=k;const{Axios:Ds,AxiosError:Ls,CanceledError:Ps,isCancel:Fs,CancelToken:Ms,VERSION:js,all:vs,Cancel:Us,isAxiosError:Bs,spread:ks,toFormData:$s,AxiosHeaders:Gs,HttpStatusCode:Hs,formToJSON:Vs,getAdapter:Ys,mergeConfig:qs}=k,at=()=>{const{apiClient:e,apiEndpoints:t,apiService:n}=_e(),r=e||k.create();return n?{...wt(r,t),...n}:wt(r,t)};function wt(e,t){return{getEntities:async()=>{const n=await e.get(t.entities);return{data:n.data.data??n.data}},getMetadata:async n=>{const r=await e.get(t.metadata(n));return{data:r.data.data??r.data}},getRecords:async(n,r)=>{const s=await e.get(t.records(n),{params:r});return{data:s.data.data??s.data,total:s.data.total??s.data.count??0}},getRecord:async(n,r)=>{const s=await e.get(t.recordById(n,r));return{data:s.data.data??s.data}},createRecord:async(n,r)=>{const s=await e.post(t.records(n),r);return{data:s.data.data??s.data}},updateRecord:async(n,r,s)=>{const o=await e.put(t.recordById(n,r),s);return{data:o.data.data??o.data}},deleteRecord:async(n,r)=>{const s=await e.delete(t.recordById(n,r));return{data:s.data.data??s.data}},exportCSV:async(n,r)=>(await e.get(t.exportCSV(n),{params:r,responseType:"blob"})).data,exportExcel:async(n,r)=>(await e.get(t.exportExcel(n),{params:r,responseType:"blob"})).data}}const Kr=h.styled(h.Box)(({theme:e})=>({width:"100%",fontFamily:e.typography.fontFamily})),It=h.styled("div")(({theme:e})=>({width:"100%","& .ag-header":{borderRadius:"8px 8px 0 0"},"& .ag-theme-alpine":{fontFamily:e.typography.fontFamily},"& .ag-header-cell-text":{fontSize:"14px",fontWeight:400,color:"#333"},"& .ag-cell":{fontSize:"14px",fontWeight:400,color:"#000",padding:"12px 16px"},"& .right-aligned-cell":{textAlign:"right"},"& .right-aligned-clickable-cell":{textAlign:"right",cursor:"pointer",color:"#1976d2",textDecoration:"underline"},"& .ag-header-cell.right-aligned-header":{justifyContent:"flex-end"},"& .ag-header-cell.right-aligned-header .ag-header-cell-label":{justifyContent:"flex-end",display:"flex",width:"100%"},"& .ag-cell:focus, .ag-cell:focus-within":{border:"1px solid transparent !important"}}));h.styled(h.Box)(()=>({position:"fixed",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:1301,background:"rgba(255, 255, 255, 0.5)"}));const Qr=h.styled(h.Box)(({theme:e})=>({display:"flex",justifyContent:"flex-end",marginTop:"16px",gap:"16px",[e.breakpoints.down("md")]:{flexWrap:"wrap",justifyContent:"center",gap:"12px"},[e.breakpoints.down("sm")]:{flexDirection:"column",alignItems:"center",gap:"16px"}})),Zr=h.styled(h.Select)(()=>({fontSize:"14px",border:"none",boxShadow:"none",".MuiOutlinedInput-notchedOutline":{border:"none"},padding:"0px","& .MuiSelect-icon":{right:0},"& .MuiInputBase-input":{padding:0,paddingLeft:"8px",paddingRight:"32px !important"}})),es=h.styled(h.Box)(({height:e})=>({...e!==void 0&&{height:`${e}px`},"&.ag-theme-alpine":{border:"none !important"},".ag-root-wrapper":{border:"none !important"},".ag-header":{borderBottom:"none !important",backgroundColor:"#f5f5f5"},".ag-body-viewport":{border:"none !important"},".ag-header-cell img[alt='sort']":{display:"none",opacity:0,transition:"opacity 0.2s ease, visibility 0.2s ease"},".ag-header-cell:hover img[alt='sort']":{display:"block",opacity:1},".ag-row.ag-row-pinned":{borderBottom:"2px solid #e0e0e0"},".ag-header-cell":{display:"flex",alignItems:"center",justifyContent:"space-between"}})),ts=h.styled(h.FormControl)(({theme:e})=>({display:"flex",flexDirection:"row",alignItems:"center",[e.breakpoints.down("sm")]:{flexWrap:"wrap",justifyContent:"center",gap:"8px"}})),Nt=h.styled(h.Box)(({theme:e})=>({fontWeight:300,fontSize:"14px",[e.breakpoints.down("sm")]:{fontSize:"12px"}})),nn={DEFAULT_HEIGHT:500,MIN_HEIGHT:300,MAX_HEIGHT:800,DEFAULT_ROW_HEIGHT:50},ns={DEFAULT_PAGE:1,DEFAULT_PAGE_SIZE:10,PAGE_SIZE_OPTIONS:[10,20,50,100],MIN_PAGE:1},rs={ASC:"asc",DESC:"desc"},rn={UI_COLUMN_SORTED:"uiColumnSorted",API:"api",COLUMN_MOVED:"columnMoved"},Xe={NORMAL:"normal",AUTO_HEIGHT:"autoHeight"},it={CLIENT_SIDE:"clientSide",SERVER_SIDE:"serverSide",INFINITE:"infinite",VIEWPORT:"viewport"},ss={DEFAULT_FLEX:1,ACTION_COLUMN_WIDTH:150,SORTABLE:!0,FILTER:!1},sn={NO_DATA:"N/A",LOADING:"Loading...",NO_RECORDS:"No records found"},on={AG_THEME_ALPINE:"ag-theme-alpine",AG_THEME_BALHAM:"ag-theme-balham",AG_THEME_MATERIAL:"ag-theme-material"},an={URL_REVOKE:100};Ie.ModuleRegistry.registerModules([Ie.ClientSideRowModelModule,Ie.AllCommunityModule]);const ln=({rows:e,totalRecords:t,currentPage:n,loading:r,onPageChange:s,columns:o,pageSize:a,pageSizeOptions:l,onPageSizeChange:m,setSort:d,sortModel:u,height:S=nn.DEFAULT_HEIGHT,domLayout:I=Xe.NORMAL,getRowHeight:M,pinnedBottomRowData:f,showLoader:A=!0,emptyDataMessage:T,...w})=>{const v=C.useRef(null),L=C.useRef([]),P=j=>{if(j.source!==rn.UI_COLUMN_SORTED||(console.log("Sort Changed Event (User Initiated):",j),!d))return;const H=j.api.getColumnState().filter(g=>g.sort).map(g=>({colId:g.colId,sort:g.sort}));console.log("New Sort Model:",H),JSON.stringify(H)!==JSON.stringify(L.current)&&(L.current=H,d(H))};return A&&r?p.jsx(It,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:S,minHeight:120},children:p.jsx(h.CircularProgress,{})}):p.jsx(It,{"data-testid":"ServerSideGrid",className:on.AG_THEME_ALPINE,children:p.jsxs(Kr,{children:[p.jsx(es,{height:I===Xe.AUTO_HEIGHT?void 0:S,children:p.jsx(mn.AgGridReact,{ref:v,theme:"legacy",columnDefs:o,rowData:e,pinnedBottomRowData:f,domLayout:I,rowModelType:it.CLIENT_SIDE,modules:[Ie.ClientSideRowModelModule],localeText:{noRowsToShow:T||"No data to show"},...w,enableBrowserTooltips:!0,suppressMovableColumns:!0,suppressMenuHide:!0,onSortChanged:P,multiSortKey:"ctrl",alwaysMultiSort:!0,defaultColDef:{width:170,sortable:!0,unSortIcon:!0,tooltipValueGetter:j=>j.value??sn.NO_DATA},suppressRowTransform:!0,getRowHeight:M??(()=>54),maintainColumnOrder:!0,initialState:u&&u.length>0?{sort:{sortModel:u.map(j=>({colId:j.colId,sort:j.sort}))}}:void 0})}),t===0&&p.jsx(h.Divider,{})]})})},cn=({totalRecords:e,currentPage:t,pageSize:n,onPageChange:r})=>{const s=Math.ceil(e/n);return p.jsxs(h.Box,{sx:{display:"flex",gap:2,alignItems:"center"},children:[p.jsx(h.Button,{size:"small",disabled:t===1,onClick:()=>r(t-1),children:"Previous"}),p.jsxs(h.Typography,{variant:"body2",children:["Page ",t," of ",s||1]}),p.jsx(h.Button,{size:"small",disabled:t>=s,onClick:()=>r(t+1),children:"Next"})]})},Re={MASTER_DATA_MANAGEMENT:"Master Data Management",ADD_NEW_RECORD:"Add New Record",EDIT_RECORD:"Edit Record",VIEW_RECORD:"View Record"},oe={VIEW:"View",ADD_NEW_RECORD:"Add New Record",EDIT:"Edit",CREATE:"Create",UPDATE:"Update",CANCEL:"Cancel",BACK:"Back",EXPORT:"Export"},Pe={SELECT_ENTITY:"Select Entity",ACTIONS:"Actions",FROM:"From",TO:"To"},de={SELECT_ENTITY:"Select Entity",SELECT:e=>`Select ${e}`,FILTER_BY:e=>`Filter by ${e}`},Je={CSV:"CSV Format",EXCEL:"Excel Format"},Ke={CSV:"csv",EXCEL:"xlsx"},se={FAILED_LOAD_ENTITIES:"Failed to load entities",FAILED_LOAD_METADATA:"Failed to load metadata",FAILED_LOAD_RECORD:"Failed to load record",FAILED_FETCH_LIST:"Failed to fetch list",FAILED_SAVE_RECORD:"Failed to save record. Please try again.",FAILED_EXPORT_CSV:"Failed to export CSV",FAILED_EXPORT_EXCEL:"Failed to export Excel",FAILED_LOAD_OPTIONS:e=>`Failed to load options for ${e}`,FAILED_LOAD_FORM_CONFIG:"Failed to load form configuration",FIELD_REQUIRED:e=>`${e} is required`,FIELD_MIN_VALUE:(e,t)=>`${e} must be at least ${t}`,FIELD_MAX_VALUE:(e,t)=>`${e} must be at most ${t}`},os={RECORD_CREATED:"Record created successfully",RECORD_UPDATED:"Record updated successfully",RECORD_DELETED:"Record deleted successfully"},as={REQUIRED:"This field is required",INVALID_FORMAT:"Invalid format"},is={NO_DATA_AVAILABLE:"N/A",NO_RECORDS_FOUND:"No records found"},ls={LOADING:"Loading...",PLEASE_WAIT:"Please wait..."},Fe={SHOWING:"Showing",OF:"of",ENTRIES:"entries"},cs={MASTER_VIEW:"master-view",MASTER_FORM:"master-form",FILTER_SECTION:"filter-section",FORM_SECTION:"form-section",FILTERS:"filters",FILTER_FIELD:"filter-field",FORM_FIELD:"form-field",FIELD_LABEL:"field-label",FIELD_INPUT:"field-input",ACTION_BUTTONS:"action-buttons",FORM_FIELDS:"form-fields",LOADING_CONTAINER:"loading-container"},us={DEFAULT_TABLE_HEIGHT:500,DEFAULT_PAGE_SIZE:10,DEFAULT_COLUMN_WIDTH:150,MIN_HEIGHT_LOADING:"400px",ACTION_BUTTON_GAP:1,FORM_MARGIN_TOP:3,FORM_MARGIN_BOTTOM:2},Qe=[10,20,50,100],un=" *",dn="red",fn="_display",ds={ISO_DATE:"YYYY-MM-DD",DISPLAY_DATE:"DD/MM/YYYY",FILE_DATE:"YYYY-MM-DD"},fs={PAGE_SIZE:"Page size"},Es={BASE_URL:"http://localhost:3000",TIMEOUT:3e4,HEADERS:{CONTENT_TYPE:"application/json"}},ps={MASTER:"/master"},ms={ENTITIES:"/master/entities",ENTITY_METADATA:e=>`/master/${e}/metadata`,ENTITY_RECORDS:e=>`/master/${e}/records`,ENTITY_RECORD_BY_ID:(e,t)=>`/master/${e}/records/${t}`,ENTITY_OPTIONS:e=>`/master/${e}/options`,EXPORT_CSV:e=>`/master/${e}/export/csv`,EXPORT_EXCEL:e=>`/master/${e}/export/excel`},hs={GET:"GET",POST:"POST",PUT:"PUT",DELETE:"DELETE",PATCH:"PATCH"},Ts={PAGE:"page",LIMIT:"limit",SEARCH:"search",SEARCH_BY:"searchBy",SORT_BY:"sortBy",SORT_ORDER:"sortOrder"},Ze={ASC:"ASC",DESC:"DESC"},Ss={JSON:"json",BLOB:"blob",TEXT:"text"},et={CSV:"text/csv;charset=utf-8;",EXCEL:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",JSON:"application/json"},Rs={DATA:"data",COUNT:"count",MESSAGE:"message",ERROR:"error"},W={CREATE:"create",EDIT:"edit",VIEW:"view"},tt={TEXT:"text",DROPDOWN:"dropdown",DATEPICKER:"datepicker",NUMBER:"number",TEXTAREA:"textarea",CHECKBOX:"checkbox",RADIO:"radio"},Se={STRING:"string",NUMBER:"number",FLOAT:"float",DATE:"date",DATERANGE:"daterange",BOOLEAN:"boolean",ARRAY:"array",OBJECT:"object"},As={API:"API",RAW:"Raw",STATIC:"Static"},_s={ID:"id",NAME:"name",LABEL:"label",VALUE:"value",DISPLAY_NAME:"displayName",TABLE_NAME:"tableName"},ys={REQUIRED:"required",MIN:"min",MAX:"max",MIN_LENGTH:"minLength",MAX_LENGTH:"maxLength",PATTERN:"pattern",EMAIL:"email",URL:"url"},re={FROM:"From",TO:"To"},Os={TEXT:"text",NUMBER:"number",DATE:"date",EMAIL:"email",PASSWORD:"password",TEL:"tel",URL:"url"},gs={FLOAT_STEP:.01,INTEGER_STEP:1},bs={ENTITY_MATCH:/\/master\/([^\/]+)\/options/},lt=()=>{const e=te.useNavigate(),{routes:t}=_e(),n=at(),[r,s]=C.useState([]),[o,a]=C.useState(null),[l,m]=C.useState([]),[d,u]=C.useState({}),[S,I]=C.useState([]),[M,f]=C.useState([]),[A,T]=C.useState(0),[w,v]=C.useState(10),[L,P]=C.useState(1),[j,H]=C.useState(!1),[B,g]=C.useState(!1),[y,O]=C.useState({}),[D,$]=C.useState([]),[F,Y]=C.useState(null),Q=C.useRef(!0);C.useEffect(()=>{(async()=>{try{const G=((await n.getEntities()).data||[]).map(b=>({name:b.tableName||b.name,label:b.displayName||b.label}));s(G),G.length>0&&a(G[0])}catch(R){console.error(se.FAILED_LOAD_ENTITIES,R)}})()},[]),C.useEffect(()=>{if(!o)return;(async()=>{try{const N=(await n.getMetadata(o.name)).data||{};m(N.parameterList||[]),I(N.resultsList||[]);const G={};(N.parameterList||[]).forEach(U=>{G[U.name]=null}),u(G);const b={};for(const U of N.parameterList||[])U.options&&Array.isArray(U.options)&&(b[U.name]=U.options);O(b),f([]),g(!1)}catch(R){console.error(se.FAILED_LOAD_METADATA,R)}})()},[o]);const V=C.useMemo(()=>{const E={},R=[],N=[];l.forEach(b=>{if(b.dataType===Se.DATERANGE){const K=d[`${b.name}${re.FROM}`],xe=d[`${b.name}${re.TO}`];K&&(E[`${b.name}${re.FROM}`]=K),xe&&(E[`${b.name}${re.TO}`]=xe);return}const U=d[b.name];U==null||U===""||(b.options?E[b.name]=U:(R.push(b.name),N.push(String(U).trim())))});const G={page:L,limit:w,filters:E};return R.length>0&&(G.search=N.join(","),G.searchBy=R.join(",")),D.length>0&&(G.sortBy=D.map(b=>b.colId).join(","),G.sortOrder=D.map(b=>b.sort==="desc"?Ze.DESC:Ze.ASC).join(",")),G},[l,d,L,w,D]),ne=C.useCallback(async()=>{if(!(!o||!Q.current)){Q.current=!1,H(!0);try{console.log("Fetching with params:",V);const E=await n.getRecords(o.name,V),R=E.data||[],N=E.total||0;f(R),T(N)}catch(E){console.error(se.FAILED_FETCH_LIST,E),f([]),T(0)}finally{H(!1),Q.current=!0}}},[o,V]);C.useEffect(()=>{B&&(L>1||D.length>0)&&ne()},[L,w,D,B,ne]);const J=()=>{P(1),g(!0),setTimeout(()=>{Q.current=!0,ne()},0)},ae=E=>{Y(E.currentTarget)},ie=()=>{Y(null)},c=async E=>{if(o)try{const R=E==="csv"?await n.exportCSV(o.name,V):await n.exportExcel(o.name,V),N=E==="csv"?et.CSV:et.EXCEL,G=E==="csv"?Ke.CSV:Ke.EXCEL,b=new Blob([R.data],{type:N}),U=URL.createObjectURL(b),K=document.createElement("a");K.href=U,K.download=`${o.name}_${new Date().toISOString().split("T")[0]}.${G}`,K.style.visibility="hidden",document.body.appendChild(K),K.click(),document.body.removeChild(K),setTimeout(()=>URL.revokeObjectURL(U),an.URL_REVOKE)}catch(R){console.error(`Failed to export ${E.toUpperCase()}:`,R)}finally{ie()}},_=C.useMemo(()=>{const E=S.map(R=>({field:R.name,headerName:R.label,sortable:!0,filter:!1,flex:1}));return E.push({field:"actions",headerName:Pe.ACTIONS,sortable:!1,filter:!1,width:150,cellRenderer:R=>{const N=R.data;return!N||!o?null:p.jsx(h.Box,{sx:{display:"flex",gap:1,py:1},children:p.jsx(h.Button,{size:"small",variant:"outlined",onClick:()=>e(t.entityEdit(o.name,N.id)),children:oe.EDIT})})}}),E},[S,o,e]);return p.jsxs(h.Box,{className:"master-view",children:[p.jsxs(h.Paper,{className:"filter-section",children:[p.jsx(h.Typography,{variant:"h5",gutterBottom:!0,children:Re.MASTER_DATA_MANAGEMENT}),p.jsxs(h.Box,{className:"filters",children:[p.jsxs(h.Box,{className:"filter-field",children:[p.jsx(h.Typography,{variant:"body2",className:"field-label",children:Pe.SELECT_ENTITY}),p.jsx(h.Autocomplete,{options:r,getOptionLabel:E=>E.label,value:o,onChange:(E,R)=>a(R),renderInput:E=>p.jsx(h.TextField,{...E,size:"small",placeholder:de.SELECT_ENTITY}),className:"field-input"})]}),l.filter(E=>E.name.toLowerCase()!=="id").map(E=>p.jsxs(h.Box,{className:"filter-field",children:[p.jsx(h.Typography,{variant:"body2",className:"field-label",children:E.label}),E.dataType===Se.DATERANGE?p.jsxs(h.Box,{sx:{display:"flex",gap:1,width:"100%"},children:[p.jsx(h.TextField,{type:"date",size:"small",value:d[`${E.name}${re.FROM}`]||"",onChange:R=>u(N=>({...N,[`${E.name}${re.FROM}`]:R.target.value})),sx:{flex:1}}),p.jsx(h.TextField,{type:"date",size:"small",label:Pe.TO,value:d[`${E.name}${re.TO}`]||"",onChange:R=>u(N=>({...N,[`${E.name}${re.TO}`]:R.target.value})),sx:{flex:1}})]}):E.dataType===Se.DATE?p.jsx(h.TextField,{type:"date",size:"small",value:d[E.name]||"",onChange:R=>u(N=>({...N,[E.name]:R.target.value})),className:"field-input"}):E.options?p.jsx(h.Autocomplete,{options:y[E.name]||E.options,getOptionLabel:R=>R.label||String(R.value),value:y[E.name]?.find(R=>R.value===d[E.name])||null,onChange:(R,N)=>u(G=>({...G,[E.name]:N?.value||null})),renderInput:R=>p.jsx(h.TextField,{...R,size:"small",placeholder:de.SELECT(E.label)}),className:"field-input"}):E.dataType===Se.NUMBER?p.jsx(h.TextField,{type:"number",size:"small",value:d[E.name]||"",onChange:R=>u(N=>({...N,[E.name]:R.target.value})),placeholder:de.FILTER_BY(E.label),className:"field-input"}):p.jsx(h.TextField,{size:"small",value:d[E.name]||"",onChange:R=>u(N=>({...N,[E.name]:R.target.value})),placeholder:de.FILTER_BY(E.label),className:"field-input"})]},E.name))]}),p.jsxs(h.Box,{className:"action-buttons",children:[p.jsx(h.Button,{variant:"contained",onClick:J,children:oe.VIEW}),p.jsxs(h.Button,{variant:"contained",disabled:!o,onClick:()=>e(t.entityNew(o?.name||"")),children:[oe.ADD_NEW_RECORD," seeeeee"]})]})]}),B&&p.jsxs(h.Box,{mt:4,width:"100%",children:[p.jsxs(h.Box,{display:"flex",justifyContent:"flex-end",mb:2,children:[p.jsx(h.Button,{variant:"outlined",onClick:ae,disabled:!o,children:oe.EXPORT}),p.jsxs(h.Menu,{anchorEl:F,open:!!F,onClose:ie,children:[p.jsx(h.MenuItem,{onClick:()=>c("csv"),children:Je.CSV}),p.jsx(h.MenuItem,{onClick:()=>c("excel"),children:Je.EXCEL})]})]}),p.jsx(ln,{rows:M,columns:_,totalRecords:A,currentPage:L,loading:j,rowModelType:it.CLIENT_SIDE,onPageChange:P,pageSize:w,pageSizeOptions:[...Qe],onPageSizeChange:E=>{v(E),P(1)},setSort:$,sortModel:D,height:500},o?.name),p.jsxs(Qr,{children:[p.jsx(h.Box,{display:"flex",alignItems:"center",gap:1,children:p.jsxs(ts,{variant:"outlined",size:"small",children:[p.jsxs(Nt,{children:[Fe.SHOWING," "]}),p.jsx(Zr,{value:w,inputProps:{"aria-label":"Page size"},onChange:E=>{v(Number(E.target.value)),P(1)},children:Qe.map(E=>p.jsx(h.MenuItem,{value:E,children:E},E))}),p.jsxs(Nt,{children:[Fe.OF," ",A," ",Fe.ENTRIES]})]})}),p.jsx(cn,{totalRecords:A,currentPage:L,onPageChange:P,pageSize:w})]})]})]})},xs={ROOT:"/",MASTER:"/master",MASTER_ENTITY_NEW:e=>`/master/${e}/new`,MASTER_ENTITY_VIEW:(e,t)=>`/master/${e}/${t}`,MASTER_ENTITY_EDIT:(e,t)=>`/master/${e}/${t}/edit`},Cs={ROOT:"/",MASTER:"/master",MASTER_ENTITY_NEW:"/master/:entity/new",MASTER_ENTITY_VIEW:"/master/:entity/:id",MASTER_ENTITY_EDIT:"/master/:entity/:id/edit"},Me={NEW:"new",EDIT:"edit",VIEW:"view"},ws={ENTITY:"entity",ID:"id"},En={NEW:"/new",EDIT:"/edit"},Ae=()=>{const e=te.useNavigate(),{entity:t,id:n}=te.useParams(),{routes:r}=_e(),s=at(),o=C.useMemo(()=>n?window.location.pathname.endsWith(En.EDIT)?W.EDIT:W.VIEW:W.CREATE,[n]),[a,l]=C.useState({}),[m,d]=C.useState({}),[u,S]=C.useState(!1),[I,M]=C.useState({}),[f,A]=C.useState(!0),[T,w]=C.useState(null),v=C.useMemo(()=>Object.keys(a),[a]),L=C.useMemo(()=>v.sort((g,y)=>{const O=a[g],D=a[y];return O?.validation?.required&&!D?.validation?.required?-1:!O?.validation?.required&&D?.validation?.required?1:g.localeCompare(y)}),[v,a]);C.useEffect(()=>{if(!t)return;let g=!0;return(async()=>{A(!0),w(null);try{const O=await s.getMetadata(t);if(!g)return;const $=(O.data?.data||O.data||{}).formConfig||{};l($),M({})}catch(O){console.error(se.FAILED_LOAD_METADATA,O),g&&w(se.FAILED_LOAD_FORM_CONFIG)}finally{g&&A(!1)}})(),()=>{g=!1}},[t,s]),C.useEffect(()=>{if(!t||!n||o===W.CREATE){d({});return}let g=!0;return(async()=>{S(!0),w(null);try{const O=await s.getRecord(t,n);if(!g)return;const D=O.data||{},$={};for(const[F,Y]of Object.entries(D))F.endsWith(fn)||($[F]=Y);d($)}catch(O){console.error(se.FAILED_LOAD_RECORD,O),g&&w(se.FAILED_LOAD_RECORD)}finally{g&&S(!1)}})(),()=>{g=!1}},[t,n,o]);const P=C.useCallback((g,y)=>{d(O=>({...O,[g]:y}))},[]),j=C.useCallback(()=>{const g=[];for(const[y,O]of Object.entries(a))O.validation?.required&&!m[O.fieldName]&&g.push(se.FIELD_REQUIRED(y)),O.validation?.min!==void 0&&m[O.fieldName]<O.validation.min&&g.push(`${y} must be at least ${O.validation.min}`),O.validation?.max!==void 0&&m[O.fieldName]>O.validation.max&&g.push(`${y} must be at most ${O.validation.max}`);return g},[a,m]),H=C.useCallback(async()=>{if(!t)return;const g=j();if(g.length>0){w(g.join(", "));return}S(!0),w(null);try{const y={};for(const O of Object.values(a)){const D=O.fieldName;D&&m[D]!==void 0&&m[D]!==""&&(y[D]=m[D])}o===W.CREATE?await s.createRecord(t,y):n&&await s.updateRecord(t,n,y),e(r.basePath,{replace:!0})}catch(y){console.error("Failed to save record:",y);const O=y?.response?.data?.message||"Failed to save record. Please try again.";w(O)}finally{S(!1)}},[t,a,m,j,o,n,e]),B=C.useCallback(g=>{const y=a[g],O=y?.fieldName;if(!y||O==="id")return null;const D=m[O]??"",$=o===W.VIEW||u;return p.jsxs(h.Box,{className:"form-field",children:[p.jsxs(h.Typography,{variant:"body2",className:"field-label",children:[g,y.validation?.required&&o!==W.VIEW&&p.jsx("span",{style:{color:dn},children:un})]}),y.fieldType===tt.DROPDOWN?p.jsx(h.Autocomplete,{options:I[O]||[],getOptionLabel:F=>F.label||String(F.value),value:I[O]?.find(F=>F.value===D)||null,onChange:(F,Y)=>P(O,Y?.value??null),disabled:$,renderInput:F=>p.jsx(h.TextField,{...F,size:"small",placeholder:de.SELECT(g),error:y.validation?.required&&!D&&o!==W.VIEW}),className:"field-input"}):y.fieldType===tt.DATEPICKER?p.jsx(h.TextField,{type:"date",size:"small",value:D?String(D).slice(0,10):"",onChange:F=>P(O,F.target.value),disabled:$,error:y.validation?.required&&!D&&o!=="view",className:"field-input",InputLabelProps:{shrink:!0}}):y.dataType==="number"||y.dataType==="float"?p.jsx(h.TextField,{type:"number",size:"small",value:D,onChange:F=>P(O,F.target.value),disabled:$,placeholder:g,error:y.validation?.required&&!D&&o!=="view",inputProps:{max:y.validation?.max,min:y.validation?.min,step:y.dataType==="float"?.01:1},className:"field-input"}):p.jsx(h.TextField,{size:"small",value:D,onChange:F=>P(O,F.target.value),disabled:$,placeholder:g,error:y.validation?.required&&!D&&o!==W.VIEW,inputProps:{maxLength:y.validation?.max},className:"field-input"})]},g)},[a,m,I,P,o,u]);return f?p.jsx(h.Box,{className:"loading-container",display:"flex",justifyContent:"center",alignItems:"center",minHeight:"400px",children:p.jsx(h.CircularProgress,{})}):p.jsx(h.Box,{className:"master-form",children:p.jsxs(h.Paper,{className:"form-section",children:[p.jsxs(h.Typography,{variant:"h5",gutterBottom:!0,children:[o===W.CREATE?Re.ADD_NEW_RECORD:o===W.EDIT?Re.EDIT_RECORD:Re.VIEW_RECORD,t&&` - ${t.charAt(0).toUpperCase()+t.slice(1)}`]}),T&&p.jsx(h.Alert,{severity:"error",onClose:()=>w(null),sx:{mb:2},children:T}),u&&o!=="view"&&p.jsx(h.Box,{display:"flex",justifyContent:"center",my:2,children:p.jsx(h.CircularProgress,{size:24})}),p.jsx(h.Box,{className:"form-fields",children:L.map(B)}),p.jsx(h.Box,{className:"action-buttons",mt:3,children:o!==W.VIEW?p.jsxs(p.Fragment,{children:[p.jsx(h.Button,{variant:"contained",onClick:H,disabled:u,children:u?p.jsx(h.CircularProgress,{size:24}):o===W.CREATE?oe.CREATE:oe.UPDATE}),p.jsx(h.Button,{variant:"outlined",onClick:()=>e(-1),disabled:u,children:oe.CANCEL})]}):p.jsx(h.Button,{variant:"outlined",onClick:()=>e(-1),children:oe.BACK})})]})})},pn=()=>{const{routes:e}=_e(),t=e.basePath;return p.jsxs(te.Routes,{children:[p.jsx(te.Route,{path:"/",element:p.jsx(te.Navigate,{to:t,replace:!0})}),p.jsx(te.Route,{path:t,element:p.jsx(lt,{})}),p.jsx(te.Route,{path:`${t}/:entity/new`,element:p.jsx(Ae,{},Me.NEW)}),p.jsx(te.Route,{path:`${t}/:entity/:id/edit`,element:p.jsx(Ae,{},Me.EDIT)}),p.jsx(te.Route,{path:`${t}/:entity/:id`,element:p.jsx(Ae,{},Me.VIEW)})]})};exports.API_BASE_PATHS=ps;exports.API_CONFIG=Es;exports.API_ENDPOINTS=ms;exports.ARIA_LABELS=fs;exports.AppRoutes=pn;exports.AppRoutesComponent=pn;exports.BUTTON_LABELS=oe;exports.COLUMN_PROPERTIES=ss;exports.CSS_CLASSES=cs;exports.DATA_TYPES=Se;exports.DATE_FORMATS=ds;exports.DATE_RANGE_SUFFIXES=re;exports.DISPLAY_FIELD_SUFFIX=fn;exports.EMPTY_STATE_MESSAGES=is;exports.ERROR_MESSAGES=se;exports.EXPORT_OPTIONS=Je;exports.FIELD_LABELS=Pe;exports.FIELD_NAMES=_s;exports.FIELD_TYPES=tt;exports.FILE_EXTENSIONS=Ke;exports.FORM_MODES=W;exports.GRID_CSS_CLASSES=on;exports.GRID_EVENT_SOURCES=rn;exports.GRID_LAYOUT=Xe;exports.GRID_MESSAGES=sn;exports.GRID_SETTINGS=nn;exports.GRID_TEXT=Fe;exports.GRID_TIMEOUTS=an;exports.HTTP_METHODS=hs;exports.INPUT_TYPES=Os;exports.LOADING_MESSAGES=ls;exports.MIME_TYPES=et;exports.MasterDataProvider=_n;exports.MasterForm=Ae;exports.MasterFormComponent=Ae;exports.MasterView=lt;exports.MasterViewComponent=lt;exports.NUMBER_INPUT=gs;exports.OPTION_TYPES=As;exports.PAGE_SIZE_OPTIONS=Qe;exports.PAGE_TITLES=Re;exports.PAGINATION_SETTINGS=ns;exports.PLACEHOLDERS=de;exports.Pagination=cn;exports.QUERY_PARAMS=Ts;exports.REGEX_PATTERNS=bs;exports.REQUIRED_INDICATOR=un;exports.REQUIRED_INDICATOR_COLOR=dn;exports.RESPONSE_KEYS=Rs;exports.RESPONSE_TYPES=Ss;exports.ROUTES=xs;exports.ROUTE_KEYS=Me;exports.ROUTE_PATTERNS=Cs;exports.ROUTE_SUFFIXES=En;exports.ROW_MODEL_TYPES=it;exports.SORT_ORDER=Ze;exports.SORT_SETTINGS=rs;exports.STYLE_CONSTANTS=us;exports.SUCCESS_MESSAGES=os;exports.ServerSideGrid=ln;exports.URL_PARAMS=ws;exports.VALIDATION_MESSAGES=as;exports.VALIDATION_RULES=ys;exports.useApiService=at;exports.useMasterDataConfig=_e;
|
|
14
|
+
<%s key={someKey} {...props} />`,Fe,ue,Yt,ue),rt[ue+Fe]=!0}}return e===S?jt(j):Ft(j),j}}function wt(e,t,o){return at(e,t,o,!0)}function Ut(e,t,o){return at(e,t,o,!1)}var Gt=Ut,Bt=wt;me.Fragment=S,me.jsx=Gt,me.jsxs=Bt})()),me}var st;function Ht(){return st||(st=1,process.env.NODE_ENV==="production"?he.exports=$t():he.exports=Wt()),he.exports}var r=Ht();const Xt=a.styled(a.Box)(({theme:n})=>({width:"100%",fontFamily:n.typography.fontFamily})),it=a.styled("div")(({theme:n})=>({width:"100%","& .ag-header":{borderRadius:"8px 8px 0 0"},"& .ag-theme-alpine":{fontFamily:n.typography.fontFamily},"& .ag-header-cell-text":{fontSize:"14px",fontWeight:400,color:"#333"},"& .ag-cell":{fontSize:"14px",fontWeight:400,color:"#000",padding:"12px 16px"},"& .right-aligned-cell":{textAlign:"right"},"& .right-aligned-clickable-cell":{textAlign:"right",cursor:"pointer",color:"#1976d2",textDecoration:"underline"},"& .ag-header-cell.right-aligned-header":{justifyContent:"flex-end"},"& .ag-header-cell.right-aligned-header .ag-header-cell-label":{justifyContent:"flex-end",display:"flex",width:"100%"},"& .ag-cell:focus, .ag-cell:focus-within":{border:"1px solid transparent !important"}}));a.styled(a.Box)(()=>({position:"fixed",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:1301,background:"rgba(255, 255, 255, 0.5)"}));const zt=a.styled(a.Box)(({theme:n})=>({display:"flex",justifyContent:"flex-end",marginTop:"16px",gap:"16px",[n.breakpoints.down("md")]:{flexWrap:"wrap",justifyContent:"center",gap:"12px"},[n.breakpoints.down("sm")]:{flexDirection:"column",alignItems:"center",gap:"16px"}})),qt=a.styled(a.Select)(()=>({fontSize:"14px",border:"none",boxShadow:"none",".MuiOutlinedInput-notchedOutline":{border:"none"},padding:"0px","& .MuiSelect-icon":{right:0},"& .MuiInputBase-input":{padding:0,paddingLeft:"8px",paddingRight:"32px !important"}})),Kt=a.styled(a.Box)(({height:n})=>({...n!==void 0&&{height:`${n}px`},"&.ag-theme-alpine":{border:"none !important"},".ag-root-wrapper":{border:"none !important"},".ag-header":{borderBottom:"none !important",backgroundColor:"#f5f5f5"},".ag-body-viewport":{border:"none !important"},".ag-header-cell img[alt='sort']":{display:"none",opacity:0,transition:"opacity 0.2s ease, visibility 0.2s ease"},".ag-header-cell:hover img[alt='sort']":{display:"block",opacity:1},".ag-row.ag-row-pinned":{borderBottom:"2px solid #e0e0e0"},".ag-header-cell":{display:"flex",alignItems:"center",justifyContent:"space-between"}})),Jt=a.styled(a.FormControl)(({theme:n})=>({display:"flex",flexDirection:"row",alignItems:"center",[n.breakpoints.down("sm")]:{flexWrap:"wrap",justifyContent:"center",gap:"8px"}})),lt=a.styled(a.Box)(({theme:n})=>({fontWeight:300,fontSize:"14px",[n.breakpoints.down("sm")]:{fontSize:"12px"}})),ct={DEFAULT_HEIGHT:500,MIN_HEIGHT:300,MAX_HEIGHT:800,DEFAULT_ROW_HEIGHT:50},Qt={DEFAULT_PAGE:1,DEFAULT_PAGE_SIZE:10,PAGE_SIZE_OPTIONS:[10,20,50,100],MIN_PAGE:1},Zt={ASC:"asc",DESC:"desc"},ut={UI_COLUMN_SORTED:"uiColumnSorted",API:"api",COLUMN_MOVED:"columnMoved"},je={NORMAL:"normal",AUTO_HEIGHT:"autoHeight"},Ve={CLIENT_SIDE:"clientSide",SERVER_SIDE:"serverSide",INFINITE:"infinite",VIEWPORT:"viewport"},er={DEFAULT_FLEX:1,ACTION_COLUMN_WIDTH:150,SORTABLE:!0,FILTER:!1},dt={NO_DATA:"N/A",LOADING:"Loading...",NO_RECORDS:"No records found"},Et={AG_THEME_ALPINE:"ag-theme-alpine",AG_THEME_BALHAM:"ag-theme-balham",AG_THEME_MATERIAL:"ag-theme-material"},ft={URL_REVOKE:100};ye.ModuleRegistry.registerModules([ye.ClientSideRowModelModule,ye.AllCommunityModule]);const Tt=({rows:n,totalRecords:T,currentPage:d,loading:S,onPageChange:i,columns:B,pageSize:z,pageSizeOptions:R,onPageSizeChange:g,setSort:Y,sortModel:O,height:D=ct.DEFAULT_HEIGHT,domLayout:x=je.NORMAL,getRowHeight:$,pinnedBottomRowData:ee,showLoader:ie=!0,emptyDataMessage:K,...k})=>{const N=E.useRef(null),M=E.useRef([]),te=w=>{if(w.source!==ut.UI_COLUMN_SORTED||(console.log("Sort Changed Event (User Initiated):",w),!Y))return;const G=w.api.getColumnState().filter(J=>J.sort).map(J=>({colId:J.colId,sort:J.sort}));console.log("New Sort Model:",G),JSON.stringify(G)!==JSON.stringify(M.current)&&(M.current=G,Y(G))};return ie&&S?r.jsx(it,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:D,minHeight:120},children:r.jsx(a.CircularProgress,{})}):r.jsx(it,{"data-testid":"ServerSideGrid",className:Et.AG_THEME_ALPINE,children:r.jsxs(Xt,{children:[r.jsx(Kt,{height:x===je.AUTO_HEIGHT?void 0:D,children:r.jsx(Vt.AgGridReact,{ref:N,theme:"legacy",columnDefs:B,rowData:n,pinnedBottomRowData:ee,domLayout:x,rowModelType:Ve.CLIENT_SIDE,modules:[ye.ClientSideRowModelModule],localeText:{noRowsToShow:K||"No data to show"},...k,enableBrowserTooltips:!0,suppressMovableColumns:!0,suppressMenuHide:!0,onSortChanged:te,multiSortKey:"ctrl",alwaysMultiSort:!0,defaultColDef:{width:170,sortable:!0,unSortIcon:!0,tooltipValueGetter:w=>w.value??dt.NO_DATA},suppressRowTransform:!0,getRowHeight:$??(()=>54),maintainColumnOrder:!0,initialState:O&&O.length>0?{sort:{sortModel:O.map(w=>({colId:w.colId,sort:w.sort}))}}:void 0})}),T===0&&r.jsx(a.Divider,{})]})})},St=({totalRecords:n,currentPage:T,pageSize:d,onPageChange:S})=>{const i=Math.ceil(n/d);return r.jsxs(a.Box,{sx:{display:"flex",gap:2,alignItems:"center"},children:[r.jsx(a.Button,{size:"small",disabled:T===1,onClick:()=>S(T-1),children:"Previous"}),r.jsxs(a.Typography,{variant:"body2",children:["Page ",T," of ",i||1]}),r.jsx(a.Button,{size:"small",disabled:T>=i,onClick:()=>S(T+1),children:"Next"})]})},Ie={MASTER_DATA_MANAGEMENT:"Master Data Management",ADD_NEW_RECORD:"Add New Record",EDIT_RECORD:"Edit Record",VIEW_RECORD:"View Record"},oe={VIEW:"View",ADD_NEW_RECORD:"Add New Record",EDIT:"Edit",CREATE:"Create",UPDATE:"Update",CANCEL:"Cancel",BACK:"Back",EXPORT:"Export"},De={SELECT_ENTITY:"Select Entity",ACTIONS:"Actions",FROM:"From",TO:"To"},Te={SELECT_ENTITY:"Select Entity",SELECT:n=>`Select ${n}`,FILTER_BY:n=>`Filter by ${n}`},we={CSV:"CSV Format",EXCEL:"Excel Format"},Ue={CSV:"csv",EXCEL:"xlsx"},ne={FAILED_LOAD_ENTITIES:"Failed to load entities",FAILED_LOAD_METADATA:"Failed to load metadata",FAILED_LOAD_RECORD:"Failed to load record",FAILED_FETCH_LIST:"Failed to fetch list",FAILED_SAVE_RECORD:"Failed to save record. Please try again.",FAILED_EXPORT_CSV:"Failed to export CSV",FAILED_EXPORT_EXCEL:"Failed to export Excel",FAILED_LOAD_OPTIONS:n=>`Failed to load options for ${n}`,FAILED_LOAD_FORM_CONFIG:"Failed to load form configuration",FIELD_REQUIRED:n=>`${n} is required`,FIELD_MIN_VALUE:(n,T)=>`${n} must be at least ${T}`,FIELD_MAX_VALUE:(n,T)=>`${n} must be at most ${T}`},tr={RECORD_CREATED:"Record created successfully",RECORD_UPDATED:"Record updated successfully",RECORD_DELETED:"Record deleted successfully"},rr={REQUIRED:"This field is required",INVALID_FORMAT:"Invalid format"},ar={NO_DATA_AVAILABLE:"N/A",NO_RECORDS_FOUND:"No records found"},nr={LOADING:"Loading...",PLEASE_WAIT:"Please wait..."},Ce={SHOWING:"Showing",OF:"of",ENTRIES:"entries"},or={MASTER_VIEW:"master-view",MASTER_FORM:"master-form",FILTER_SECTION:"filter-section",FORM_SECTION:"form-section",FILTERS:"filters",FILTER_FIELD:"filter-field",FORM_FIELD:"form-field",FIELD_LABEL:"field-label",FIELD_INPUT:"field-input",ACTION_BUTTONS:"action-buttons",FORM_FIELDS:"form-fields",LOADING_CONTAINER:"loading-container"},sr={DEFAULT_TABLE_HEIGHT:500,DEFAULT_PAGE_SIZE:10,DEFAULT_COLUMN_WIDTH:150,MIN_HEIGHT_LOADING:"400px",ACTION_BUTTON_GAP:1,FORM_MARGIN_TOP:3,FORM_MARGIN_BOTTOM:2},Ge=[10,20,50,100],_t=" *",Rt="red",pt="_display",ir={ISO_DATE:"YYYY-MM-DD",DISPLAY_DATE:"DD/MM/YYYY",FILE_DATE:"YYYY-MM-DD"},lr={PAGE_SIZE:"Page size"},cr={BASE_URL:"http://localhost:3000",TIMEOUT:3e4,HEADERS:{CONTENT_TYPE:"application/json"}},ur={MASTER:"/master"},dr={ENTITIES:"/master/entities",ENTITY_METADATA:n=>`/master/${n}/metadata`,ENTITY_RECORDS:n=>`/master/${n}/records`,ENTITY_RECORD_BY_ID:(n,T)=>`/master/${n}/records/${T}`,ENTITY_OPTIONS:n=>`/master/${n}/options`,EXPORT_CSV:n=>`/master/${n}/export/csv`,EXPORT_EXCEL:n=>`/master/${n}/export/excel`},Er={GET:"GET",POST:"POST",PUT:"PUT",DELETE:"DELETE",PATCH:"PATCH"},fr={PAGE:"page",LIMIT:"limit",SEARCH:"search",SEARCH_BY:"searchBy",SORT_BY:"sortBy",SORT_ORDER:"sortOrder"},Be={ASC:"ASC",DESC:"DESC"},Tr={JSON:"json",BLOB:"blob",TEXT:"text"},Ye={CSV:"text/csv;charset=utf-8;",EXCEL:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",JSON:"application/json"},Sr={DATA:"data",COUNT:"count",MESSAGE:"message",ERROR:"error"},H={CREATE:"create",EDIT:"edit",VIEW:"view"},xe={TEXT:"text",DROPDOWN:"dropdown",DATEPICKER:"datepicker",NUMBER:"number",TEXTAREA:"textarea",CHECKBOX:"checkbox",RADIO:"radio"},ge={STRING:"string",NUMBER:"number",FLOAT:"float",DATE:"date",DATERANGE:"daterange",BOOLEAN:"boolean",ARRAY:"array",OBJECT:"object"},_r={API:"API",RAW:"Raw",STATIC:"Static"},Rr={ID:"id",NAME:"name",LABEL:"label",VALUE:"value",DISPLAY_NAME:"displayName",TABLE_NAME:"tableName"},pr={REQUIRED:"required",MIN:"min",MAX:"max",MIN_LENGTH:"minLength",MAX_LENGTH:"maxLength",PATTERN:"pattern",EMAIL:"email",URL:"url"},ae={FROM:"From",TO:"To"},Ar={TEXT:"text",NUMBER:"number",DATE:"date",EMAIL:"email",PASSWORD:"password",TEL:"tel",URL:"url"},mr={FLOAT_STEP:.01,INTEGER_STEP:1},gr={ENTITY_MATCH:/\/master\/([^\/]+)\/options/},Ir=({apiClient:n,apiEndpoints:T,onNavigateToNew:d,onNavigateToEdit:S})=>{const i=E.useMemo(()=>ke(n,T),[n,T]),[B,z]=E.useState([]),[R,g]=E.useState(null),[Y,O]=E.useState([]),[D,x]=E.useState({}),[$,ee]=E.useState([]),[ie,K]=E.useState([]),[k,N]=E.useState(0),[M,te]=E.useState(10),[w,G]=E.useState(1),[le,J]=E.useState(!1),[se,A]=E.useState(!1),[f,l]=E.useState({}),[_,F]=E.useState([]),[v,Q]=E.useState(null),U=E.useRef(!0);E.useEffect(()=>{(async()=>{try{const b=((await i.getEntities()).data||[]).map(y=>({name:y.tableName||y.name,label:y.displayName||y.label}));z(b),b.length>0&&g(b[0])}catch(u){console.error(ne.FAILED_LOAD_ENTITIES,u)}})()},[]),E.useEffect(()=>{if(!R)return;(async()=>{try{const I=(await i.getMetadata(R.name)).data||{};O(I.parameterList||[]),ee(I.resultsList||[]);const b={};(I.parameterList||[]).forEach(L=>{b[L.name]=null}),x(b);const y={};for(const L of I.parameterList||[])L.options&&Array.isArray(L.options)&&(y[L.name]=L.options);l(y),K([]),A(!1)}catch(u){console.error(ne.FAILED_LOAD_METADATA,u)}})()},[R]);const X=E.useMemo(()=>{const s={},u=[],I=[];Y.forEach(y=>{if(y.dataType===ge.DATERANGE){const Z=D[`${y.name}${ae.FROM}`],Re=D[`${y.name}${ae.TO}`];Z&&(s[`${y.name}${ae.FROM}`]=Z),Re&&(s[`${y.name}${ae.TO}`]=Re);return}const L=D[y.name];L==null||L===""||(y.options?s[y.name]=L:(u.push(y.name),I.push(String(L).trim())))});const b={page:w,limit:M};return Object.keys(s).length>0&&Object.entries(s).forEach(([y,L])=>{b[`filters[${y}]`]=L}),u.length>0&&(b.search=I.join(","),b.searchBy=u.join(",")),_.length>0&&(b.sortBy=_.map(y=>y.colId).join(","),b.sortOrder=_.map(y=>y.sort==="desc"?Be.DESC:Be.ASC).join(",")),console.log("Query params:",b),b},[Y,D,w,M,_]),ce=E.useCallback(async()=>{if(!(!R||!U.current)){U.current=!1,J(!0);try{console.log("Fetching with params:",X);const s=await i.getRecords(R.name,X),u=s.data||[],I=s.total||0;K(u),N(I)}catch(s){console.error(ne.FAILED_FETCH_LIST,s),console.error("Full error:",s),K([]),N(0)}finally{J(!1),U.current=!0}}},[R,X]);E.useEffect(()=>{se&&(w>1||_.length>0)&&ce()},[w,M,_,se,ce]);const de=()=>{G(1),A(!0),setTimeout(()=>{U.current=!0,ce()},0)},re=s=>{Q(s.currentTarget)},Se=()=>{Q(null)},_e=async s=>{if(R)try{const u=s==="csv"?await i.exportCSV(R.name,X):await i.exportExcel(R.name,X),I=s==="csv"?Ye.CSV:Ye.EXCEL,b=s==="csv"?Ue.CSV:Ue.EXCEL,y=new Blob([u.data],{type:I}),L=URL.createObjectURL(y),Z=document.createElement("a");Z.href=L,Z.download=`${R.name}_${new Date().toISOString().split("T")[0]}.${b}`,Z.style.visibility="hidden",document.body.appendChild(Z),Z.click(),document.body.removeChild(Z),setTimeout(()=>URL.revokeObjectURL(L),ft.URL_REVOKE)}catch(u){console.error(`Failed to export ${s.toUpperCase()}:`,u)}finally{Se()}},Ne=E.useMemo(()=>{const s=$.map(u=>({field:u.name,headerName:u.label,sortable:!0,filter:!1,flex:1}));return s.push({field:"actions",headerName:De.ACTIONS,sortable:!1,filter:!1,width:150,cellRenderer:u=>{const I=u.data;return!I||!R?null:r.jsx(a.Box,{sx:{display:"flex",gap:1,py:1},children:r.jsx(a.Button,{size:"small",variant:"outlined",onClick:()=>S?.(R.name,I.id),children:oe.EDIT})})}}),s},[$,R,S]);return r.jsxs(a.Box,{className:"master-view",children:[r.jsxs(a.Paper,{className:"filter-section",children:[r.jsx(a.Typography,{variant:"h5",gutterBottom:!0,children:Ie.MASTER_DATA_MANAGEMENT}),r.jsxs(a.Box,{className:"filters",children:[r.jsxs(a.Box,{className:"filter-field",children:[r.jsx(a.Typography,{variant:"body2",className:"field-label",children:De.SELECT_ENTITY}),r.jsx(a.Autocomplete,{options:B,getOptionLabel:s=>s.label,value:R,onChange:(s,u)=>g(u),renderInput:s=>r.jsx(a.TextField,{...s,size:"small",placeholder:Te.SELECT_ENTITY}),className:"field-input"})]}),Y.filter(s=>s.name.toLowerCase()!=="id").map(s=>r.jsxs(a.Box,{className:"filter-field",children:[r.jsx(a.Typography,{variant:"body2",className:"field-label",children:s.label}),s.dataType===ge.DATERANGE?r.jsxs(a.Box,{sx:{display:"flex",gap:1,width:"100%"},children:[r.jsx(a.TextField,{type:"date",size:"small",value:D[`${s.name}${ae.FROM}`]||"",onChange:u=>x(I=>({...I,[`${s.name}${ae.FROM}`]:u.target.value})),sx:{flex:1}}),r.jsx(a.TextField,{type:"date",size:"small",label:De.TO,value:D[`${s.name}${ae.TO}`]||"",onChange:u=>x(I=>({...I,[`${s.name}${ae.TO}`]:u.target.value})),sx:{flex:1}})]}):s.dataType===ge.DATE?r.jsx(a.TextField,{type:"date",size:"small",value:D[s.name]||"",onChange:u=>x(I=>({...I,[s.name]:u.target.value})),className:"field-input"}):s.options?r.jsx(a.Autocomplete,{options:f[s.name]||s.options,getOptionLabel:u=>u.label||String(u.value),value:f[s.name]?.find(u=>u.value===D[s.name])||null,onChange:(u,I)=>x(b=>({...b,[s.name]:I?.value||null})),renderInput:u=>r.jsx(a.TextField,{...u,size:"small",placeholder:Te.SELECT(s.label)}),className:"field-input"}):s.dataType===ge.NUMBER?r.jsx(a.TextField,{type:"number",size:"small",value:D[s.name]||"",onChange:u=>x(I=>({...I,[s.name]:u.target.value})),placeholder:Te.FILTER_BY(s.label),className:"field-input"}):r.jsx(a.TextField,{size:"small",value:D[s.name]||"",onChange:u=>x(I=>({...I,[s.name]:u.target.value})),placeholder:Te.FILTER_BY(s.label),className:"field-input"})]},s.name))]}),r.jsxs(a.Box,{className:"action-buttons",children:[r.jsx(a.Button,{variant:"contained",onClick:de,children:oe.VIEW}),r.jsx(a.Button,{variant:"contained",disabled:!R,onClick:()=>R&&d?.(R.name),children:oe.ADD_NEW_RECORD})]})]}),se&&r.jsxs(a.Box,{mt:4,width:"100%",children:[r.jsxs(a.Box,{display:"flex",justifyContent:"flex-end",mb:2,children:[r.jsx(a.Button,{variant:"outlined",onClick:re,disabled:!R,children:oe.EXPORT}),r.jsxs(a.Menu,{anchorEl:v,open:!!v,onClose:Se,children:[r.jsx(a.MenuItem,{onClick:()=>_e("csv"),children:we.CSV}),r.jsx(a.MenuItem,{onClick:()=>_e("excel"),children:we.EXCEL})]})]}),r.jsx(Tt,{rows:ie,columns:Ne,totalRecords:k,currentPage:w,loading:le,rowModelType:Ve.CLIENT_SIDE,onPageChange:G,pageSize:M,pageSizeOptions:[...Ge],onPageSizeChange:s=>{te(s),G(1)},setSort:F,sortModel:_,height:500},R?.name),r.jsxs(zt,{children:[r.jsx(a.Box,{display:"flex",alignItems:"center",gap:1,children:r.jsxs(Jt,{variant:"outlined",size:"small",children:[r.jsxs(lt,{children:[Ce.SHOWING," "]}),r.jsx(qt,{value:M,inputProps:{"aria-label":"Page size"},onChange:s=>{te(Number(s.target.value)),G(1)},children:Ge.map(s=>r.jsx(a.MenuItem,{value:s,children:s},s))}),r.jsxs(lt,{children:[Ce.OF," ",k," ",Ce.ENTRIES]})]})}),r.jsx(St,{totalRecords:k,currentPage:w,onPageChange:G,pageSize:M})]})]})]})},Or=({apiClient:n,apiEndpoints:T,entity:d,id:S,mode:i,onBack:B,onSuccess:z})=>{const R=E.useMemo(()=>ke(n,T),[n,T]),[g,Y]=E.useState({}),[O,D]=E.useState({}),[x,$]=E.useState(!1),[ee,ie]=E.useState({}),[K,k]=E.useState(!0),[N,M]=E.useState(null),te=E.useMemo(()=>Object.keys(g),[g]),w=E.useMemo(()=>te.sort((A,f)=>{const l=g[A],_=g[f];return l?.validation?.required&&!_?.validation?.required?-1:!l?.validation?.required&&_?.validation?.required?1:A.localeCompare(f)}),[te,g]);E.useEffect(()=>{if(!d)return;let A=!0;return(async()=>{k(!0),M(null);try{const l=await R.getMetadata(d);if(!A)return;const F=(l.data?.data||l.data||{}).formConfig||{};Y(F);const v={};for(const[Q,U]of Object.entries(F))if(U.fieldType===xe.DROPDOWN)if(U.optionType==="API"&&U.option&&typeof U.option=="string")try{const X=await n.get(U.option),de=(X.data?.data||X.data||[]).map(re=>({value:re.id,label:re.name||re.displayName||String(re.id)}));v[U.fieldName]=de}catch(X){console.error(`Failed to load options for ${Q}:`,X),v[U.fieldName]=[]}else U.optionType==="Raw"&&Array.isArray(U.option)&&(v[U.fieldName]=U.option);A&&ie(v)}catch(l){console.error(ne.FAILED_LOAD_METADATA,l),A&&M(ne.FAILED_LOAD_FORM_CONFIG)}finally{A&&k(!1)}})(),()=>{A=!1}},[d,R,n]),E.useEffect(()=>{if(!d||!S||i===H.CREATE){D({});return}let A=!0;return(async()=>{$(!0),M(null);try{const l=await R.getRecord(d,S);if(!A)return;const _=l.data?.data||l.data||{},F={};for(const[v,Q]of Object.entries(_))v.endsWith(pt)||(F[v]=Q);D(F)}catch(l){console.error(ne.FAILED_LOAD_RECORD,l),A&&M(ne.FAILED_LOAD_RECORD)}finally{A&&$(!1)}})(),()=>{A=!1}},[d,S,i,R]);const G=E.useCallback((A,f)=>{D(l=>({...l,[A]:f}))},[]),le=E.useCallback(()=>{const A=[];for(const[f,l]of Object.entries(g))l.validation?.required&&!O[l.fieldName]&&A.push(ne.FIELD_REQUIRED(f)),l.validation?.min!==void 0&&O[l.fieldName]<l.validation.min&&A.push(`${f} must be at least ${l.validation.min}`),l.validation?.max!==void 0&&O[l.fieldName]>l.validation.max&&A.push(`${f} must be at most ${l.validation.max}`);return A},[g,O]),J=E.useCallback(async()=>{if(!d)return;const A=le();if(A.length>0){M(A.join(", "));return}$(!0),M(null);try{const f={};for(const l of Object.values(g)){const _=l.fieldName;_&&O[_]!==void 0&&O[_]!==""&&(f[_]=O[_])}if(i===H.CREATE){const l=await R.createRecord(d,{data:f});z?.(l)}else if(S){const l=await R.updateRecord(d,S,{data:f});z?.(l)}B?.()}catch(f){console.error("Failed to save record:",f);const l=f?.response?.data?.message||(Array.isArray(f?.response?.data?.message)?f.response.data.message.join(", "):"Failed to save record. Please try again.");M(l)}finally{$(!1)}},[d,g,O,le,i,S,R,B,z]),se=E.useCallback(A=>{const f=g[A],l=f?.fieldName;if(!f||l==="id")return null;const _=O[l]??"",F=i===H.VIEW||x;return r.jsxs(a.Box,{className:"form-field",children:[r.jsxs(a.Typography,{variant:"body2",className:"field-label",children:[A,f.validation?.required&&i!==H.VIEW&&r.jsx("span",{style:{color:Rt},children:_t})]}),f.fieldType===xe.DROPDOWN?r.jsx(a.Autocomplete,{options:ee[l]||[],getOptionLabel:v=>v.label||String(v.value),value:ee[l]?.find(v=>v.value===_)||null,onChange:(v,Q)=>G(l,Q?.value??null),disabled:F,loading:K,renderInput:v=>r.jsx(a.TextField,{...v,size:"small",placeholder:Te.SELECT(A),error:f.validation?.required&&!_&&i!==H.VIEW}),className:"field-input"}):f.fieldType===xe.DATEPICKER?r.jsx(a.TextField,{type:"date",size:"small",value:_?String(_).slice(0,10):"",onChange:v=>G(l,v.target.value),disabled:F,error:f.validation?.required&&!_&&i!==H.VIEW,className:"field-input",InputLabelProps:{shrink:!0}}):f.dataType==="number"||f.dataType==="float"?r.jsx(a.TextField,{type:"number",size:"small",value:_,onChange:v=>G(l,v.target.value),disabled:F,placeholder:A,error:f.validation?.required&&!_&&i!==H.VIEW,inputProps:{max:f.validation?.max,min:f.validation?.min,step:f.dataType==="float"?.01:1},className:"field-input"}):r.jsx(a.TextField,{size:"small",value:_,onChange:v=>G(l,v.target.value),disabled:F,placeholder:A,error:f.validation?.required&&!_&&i!==H.VIEW,inputProps:{maxLength:f.validation?.max},className:"field-input"})]},A)},[g,O,ee,G,i,x,K]);return K?r.jsx(a.Box,{className:"loading-container",display:"flex",justifyContent:"center",alignItems:"center",minHeight:"400px",children:r.jsx(a.CircularProgress,{})}):r.jsx(a.Box,{className:"master-form",children:r.jsxs(a.Paper,{className:"form-section",children:[r.jsxs(a.Typography,{variant:"h5",gutterBottom:!0,children:[i===H.CREATE?Ie.ADD_NEW_RECORD:i===H.EDIT?Ie.EDIT_RECORD:Ie.VIEW_RECORD,d&&` - ${d.charAt(0).toUpperCase()+d.slice(1)}`]}),N&&r.jsx(a.Alert,{severity:"error",onClose:()=>M(null),sx:{mb:2},children:N}),x&&i!==H.VIEW&&r.jsx(a.Box,{display:"flex",justifyContent:"center",my:2,children:r.jsx(a.CircularProgress,{size:24})}),r.jsx(a.Box,{className:"form-fields",children:w.map(se)}),r.jsx(a.Box,{className:"action-buttons",mt:3,children:i!==H.VIEW?r.jsxs(r.Fragment,{children:[r.jsx(a.Button,{variant:"contained",onClick:J,disabled:x,children:x?r.jsx(a.CircularProgress,{size:24}):i===H.CREATE?oe.CREATE:oe.UPDATE}),r.jsx(a.Button,{variant:"outlined",onClick:()=>B?.(),disabled:x,children:oe.CANCEL})]}):r.jsx(a.Button,{variant:"outlined",onClick:()=>B?.(),children:oe.BACK})})]})})},vr={ROOT:"/",MASTER:"/master",MASTER_ENTITY_NEW:n=>`/master/${n}/new`,MASTER_ENTITY_VIEW:(n,T)=>`/master/${n}/${T}`,MASTER_ENTITY_EDIT:(n,T)=>`/master/${n}/${T}/edit`},hr={ROOT:"/",MASTER:"/master",MASTER_ENTITY_NEW:"/master/:entity/new",MASTER_ENTITY_VIEW:"/master/:entity/:id",MASTER_ENTITY_EDIT:"/master/:entity/:id/edit"},yr={NEW:"new",EDIT:"edit",VIEW:"view"},Dr={ENTITY:"entity",ID:"id"},Cr={NEW:"/new",EDIT:"/edit"};exports.API_BASE_PATHS=ur;exports.API_CONFIG=cr;exports.API_ENDPOINTS=dr;exports.ARIA_LABELS=lr;exports.BUTTON_LABELS=oe;exports.COLUMN_PROPERTIES=er;exports.CSS_CLASSES=or;exports.DATA_TYPES=ge;exports.DATE_FORMATS=ir;exports.DATE_RANGE_SUFFIXES=ae;exports.DISPLAY_FIELD_SUFFIX=pt;exports.EMPTY_STATE_MESSAGES=ar;exports.ERROR_MESSAGES=ne;exports.EXPORT_OPTIONS=we;exports.FIELD_LABELS=De;exports.FIELD_NAMES=Rr;exports.FIELD_TYPES=xe;exports.FILE_EXTENSIONS=Ue;exports.FORM_MODES=H;exports.GRID_CSS_CLASSES=Et;exports.GRID_EVENT_SOURCES=ut;exports.GRID_LAYOUT=je;exports.GRID_MESSAGES=dt;exports.GRID_SETTINGS=ct;exports.GRID_TEXT=Ce;exports.GRID_TIMEOUTS=ft;exports.HTTP_METHODS=Er;exports.INPUT_TYPES=Ar;exports.LOADING_MESSAGES=nr;exports.MIME_TYPES=Ye;exports.MasterForm=Or;exports.MasterView=Ir;exports.NUMBER_INPUT=mr;exports.OPTION_TYPES=_r;exports.PAGE_SIZE_OPTIONS=Ge;exports.PAGE_TITLES=Ie;exports.PAGINATION_SETTINGS=Qt;exports.PLACEHOLDERS=Te;exports.Pagination=St;exports.QUERY_PARAMS=fr;exports.REGEX_PATTERNS=gr;exports.REQUIRED_INDICATOR=_t;exports.REQUIRED_INDICATOR_COLOR=Rt;exports.RESPONSE_KEYS=Sr;exports.RESPONSE_TYPES=Tr;exports.ROUTES=vr;exports.ROUTE_KEYS=yr;exports.ROUTE_PATTERNS=hr;exports.ROUTE_SUFFIXES=Cr;exports.ROW_MODEL_TYPES=Ve;exports.SORT_ORDER=Be;exports.SORT_SETTINGS=Zt;exports.STYLE_CONSTANTS=sr;exports.SUCCESS_MESSAGES=tr;exports.ServerSideGrid=Tt;exports.URL_PARAMS=Dr;exports.VALIDATION_MESSAGES=rr;exports.VALIDATION_RULES=pr;exports.createApiService=ke;
|
package/dist/index.d.ts
CHANGED
|
@@ -2,17 +2,15 @@
|
|
|
2
2
|
* Master Data Management Package
|
|
3
3
|
* Main export file for the package
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import './pages/MasterView/index.scss';
|
|
6
|
+
import './pages/MasterForm/index.scss';
|
|
7
|
+
export { createApiService } from './hooks/useApiService';
|
|
8
|
+
export type { ApiService, ApiEndpoints } from './hooks/useApiService';
|
|
7
9
|
export { default as MasterView } from './pages/MasterView/MasterView';
|
|
10
|
+
export type { MasterViewProps } from './pages/MasterView/MasterView';
|
|
8
11
|
export { default as MasterForm } from './pages/MasterForm/MasterForm';
|
|
9
|
-
export {
|
|
12
|
+
export type { MasterFormProps } from './pages/MasterForm/MasterForm';
|
|
10
13
|
export { ServerSideGrid } from './components/ServerSideGrid';
|
|
11
14
|
export { Pagination } from './components/Pagination';
|
|
12
|
-
import MasterViewComponent from './pages/MasterView/MasterView';
|
|
13
|
-
import MasterFormComponent from './pages/MasterForm/MasterForm';
|
|
14
|
-
import AppRoutesComponent from './routes/AppRoutes';
|
|
15
|
-
export { MasterViewComponent, MasterFormComponent, AppRoutesComponent };
|
|
16
|
-
export type { MasterDataConfig, ApiServiceFunctions, ApiEndpointsConfig, RouteConfig, MasterDataContextValue, } from './contexts/MasterDataContext';
|
|
17
15
|
export * from './constants';
|
|
18
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,+BAA+B,CAAC;AACvC,OAAO,+BAA+B,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,cAAc,aAAa,CAAC"}
|