@erpsquad/common 1.8.146 → 1.8.148

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("moment"),r=require("../languageContext-wDrqMwzj.js"),t=require("lodash"),n=require("libphonenumber-js"),i=require("../useLocationFilter-BizEkzgz.js"),a=require("react"),s=require("react-i18next"),l=require("../translations-1dZqnqOl.js"),o=require("../modules-xSiesxge.js"),u=require("../common-DzWMY4wi.js"),c=require("../apiHelper-CiKMWI2r.js"),d=require("../useLangauge--qqmoWbd.js"),p=require("../all-language-XhvdjcQg.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("react/jsx-runtime"),require("../api-BU2KNfrl.js"),require("../auth-BHeRds0l.js"),require("react-router-dom"),require("../pathname.hrms-BYy3B3SQ.js"),require("socket.io-client"),require("../route-utils-ifjI7_7l.js"),require("../DefaultPropsProvider-DXLRpppW.js"),require("react-is"),require("../custom-styled-icon-CtBVvAxY.js"),require("react-transition-group"),require("../Box-C3settuL.js"),require("../useId-Cl8V2SF-.js"),require("../images-Dwb4un_s.js"),/* empty css */require("../notification-DrpgO56m.js"),require("../contexts/index.js"),require("../route-page-map-DJlBCFU5.js"),require("../hooks-CzoDgYvR.js"),require("react-redux"),require("dayjs"),require("react-dom"),require("dayjs/plugin/utc"),require("moment-timezone"),require("../theme-impl-BliqM73m.js"),require("../Grow-isiVHeFI.js"),require("../CssBaseline-BKvBQY51.js"),require("../store-Va8DfTuN.js"),require("@reduxjs/toolkit"),require("../reducer-BZCFgNcr.js");var v=/* @__PURE__ */m(e),f=/* @__PURE__ */m(t);const g=e=>()=>Promise.resolve([]),h=g(),y=g(),b=g(),_=g(),x=g(),E=g(),k=g(),S=g(),q=g(),C=g(),j=g(),A=g(),$=g(),T=g(),w=g(),L=g(),O=g(),V=g(),F=g(),I=g(),N=g(),R=g(),U=(e,r,t)=>f.default.orderBy(e,r,t);function M(e,r){return r.some(r=>e.includes(r))}const W={company:x,items:j,currency:E,salesperson:F,party:$,department:S,location:A,uom:R,discountedItems:q,taxTemplate:N,paymentTerm:w,incoTerms:C,shippingRules:I,bins:y,agreement:h,accounts:_,invoices:L,purchaseOrderReceipts:O,representatives:V,industry:T,categoryItems:b,customerSegment:k,countries:n.getCountries},D={STEEL_DENSITY:7.85,LENGTH_CONVERSION_FACTOR:1e3,TUBE_CALCULATION_FACTOR:.024662,COIL_WEIGHTS:{GI:2879.95,HR:2356.59}},H=e=>{if(null==e||""===e)return{value:0,isValid:!1,error:"Empty value"};const r="string"==typeof e?parseFloat(e.trim()):Number(e);return isNaN(r)?{value:0,isValid:!1,error:"Invalid number format"}:isFinite(r)?{value:r,isValid:!0}:{value:0,isValid:!1,error:"Number is not finite"}},P=(...e)=>e.every(e=>{const r=H(e);return r.isValid&&r.value>0}),G=e=>e?["face_width","bending","height","total_width","boards_thickness","boards_length","steel_length","steel_width","steel_thickness","steel_type","tube_type","tube_od","shape_width","shape_height","material_thickness","material_length"].map(r=>`${r}:${e[r]??""}`).join("|"):"empty";let B="",z=!1,J=!0;const Y={fallbackOrder:["en","en-US",p.DEFAULT_LANG],enableConsoleWarnings:!0,retryOnError:!1,maxRetries:3};function K(){const[e,r]=a.useState(!1),[t,n]=a.useState(null);return{callApi:a.useCallback(async({apiFunc:e,onSuccess:i,onError:a,successMessage:s,errorMessage:l,loadingState:o,enableLoading:c=!0,showError:d=!0})=>{c&&r(!0),null==o||o(!0);const p=await e();return c&&r(!1),null==o||o(!1),function({res:e,callBack:r,showError:t=!0,errorCallback:n,succsessMessage:i=null}){var a,s;if("rejected"===(null==(a=null==e?void 0:e.meta)?void 0:a.requestStatus)){const r=(()=>{var r;try{return(null==(r=e.error)?void 0:r.message)?JSON.parse(e.error.message):null}catch{return{message:"Something went wrong"}}})(),i=(null==(s=null==r?void 0:r.message)?void 0:s.replace("Error:","").trim())||"Something went wrong";return t&&u.enqueueSnackbar(i,{variant:"error"}),void(n&&"function"==typeof n&&n(i))}i&&u.enqueueSnackbar(i),r&&"function"==typeof r&&r()}({res:p,callBack:()=>{null==i||i(p)},errorCallback:e=>{null==a||a(p),n(l||e)},succsessMessage:s,showError:d}),{response:p,error:t}},[]),loading:e,error:t}}let Q="",X={};const Z=e=>{var r;Q=(r=e).endsWith("/")?r.slice(0,-1):r};u.onApiConfigReady(e=>{const r=e.backendBaseUrl;Z(`${r}/accounting`)});const ee=({control:e,setValue:r,fieldToUpdate:t,transformResponse:n,watch:i,fieldArrayName:s,companyField:l="company_id",locationField:o="location_id",departmentField:c="department_id",customDependencies:d=[]})=>{const{callApi:p}=K(),[m,v]=a.useState(null),f=s?`${s}.${l}`:l,g=s?`${s}.${o}`:o,h=s?`${s}.${c}`:c,y=(null==i?void 0:i(`${s}`))||{},b=(null==y?void 0:y[l])||null,_=(null==y?void 0:y[o])||null,x=(null==y?void 0:y[c])||null;a.useEffect(()=>{if(i&&!m){const e={[l]:b,[o]:_,[c]:x},r={};Object.keys(t).forEach(e=>{const t=s?`${s}.${e}`:e;r[e]=i(t)}),v({filters:e,values:r})}},[i,b,_,x,m,f,g,h]);const E=a.useCallback(e=>{if(!r||!e)return;const i=n?n(e):e;i&&Object.entries(t).forEach(([e,t])=>{const n=null==i?void 0:i.find(e=>(null==e?void 0:e.config_key)==("object"==typeof t?t.key:t));null!=n&&("object"==typeof t?t.value((null==n?void 0:n.reference_id)||(null==n?void 0:n.reference_text)):r(s?`${s}.${e}`:e,(null==n?void 0:n.reference_id)||(null==n?void 0:n.reference_text)))})},[r,t,n,s,...d]),k=a.useCallback(async()=>{var e,t,n;if(!b||!m)return;if(JSON.stringify(null==(e=null==m?void 0:m.filters)?void 0:e[l])===JSON.stringify(b)&&JSON.stringify(null==(t=null==m?void 0:m.filters)?void 0:t[o])===JSON.stringify(_)&&JSON.stringify(null==(n=null==m?void 0:m.filters)?void 0:n[c])===JSON.stringify(x))return void Object.entries(m.values).forEach(([e,t])=>{null==r||r(s?`${s}.${e}`:e,t)});const i=`(company_id.eq=${b||1}&location_id.eq=${_||null}&department_id.eq=${x||null})`;p({apiFunc:()=>(async e=>await(async(e,r)=>{const t=new URLSearchParams;["skip","limit","order","filters","search","select"].forEach(e=>{var n;r[e]&&(Array.isArray(r[e])?r[e].forEach(r=>{t.append(e,r)}):t.append(e,(null==(n=r[e])?void 0:n.toString())||"")),delete r[e]});const n={...X};void 0!==r["x-token"]&&(n["x-token"]=r["x-token"],delete r["x-token"]),void 0!==r["x-timezone"]&&(n["x-timezone"]=r["x-timezone"],delete r["x-timezone"]);const i=await fetch(`${e}/v1/settings/configurations?${t.toString()}`,{headers:n});if(!i.ok)throw new Error(await i.text());return await i.json()})(Q,e))({...u.getToken(),filters:i}),onSuccess:e=>{var r;E(null==(r=null==e?void 0:e.data)?void 0:r.configuration_list)},onError:e=>{}})},[b,_,x,m,p,r]);return a.useEffect(()=>{k()},[k]),{selectedCompany:b,selectedLocation:_,selectedDepartment:x}};exports.useAuth=r.useAuth,exports.useDeepMemo=i.useDeepMemo,exports.useLocationFilter=i.useLocationFilter,exports.useMultipleLocationFilters=i.useMultipleLocationFilters,exports.usePages=i.usePages,exports.usePermissions=i.usePermissions,Object.defineProperty(exports,"useTranslation",{enumerable:!0,get:function(){return s.useTranslation}}),exports.apiHelper=c.apiHelper,exports.useDataFetcher=c.useGenericDataFetcher,exports.useLanguage=d.useLanguage,exports.apiType=W,exports.capitalizeWords=function(e){return e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "):""},exports.convertEmptyToNull=function e(r){return Object.entries(r).reduce((r,[t,n])=>(""===n||Array.isArray(n)&&0===n.length||"object"==typeof n&&null!==n&&!Array.isArray(n)&&0===Object.keys(n).length?r[t]=null:Array.isArray(n)?r[t]=n.map(r=>"object"==typeof r&&null!==r?e(r):r):r[t]="object"==typeof n&&null!==n?e(n):n,r),{})},exports.defaultUserCurrency=()=>{var e;const{user:t}=r.useAuth();return(null==(e=null==t?void 0:t.currency_data)?void 0:e.symbol)||""},exports.formatNumber=(e,r="$")=>e>=1e6?`${r} ${(e/1e6).toFixed(1)} M`:e>=1e5?`${r} ${(e/1e5).toFixed(1)} L`:e>=1e3?`${(e/1e3).toFixed(1)} K`:`${r} ${e.toFixed(2)}`,exports.formatTime=function(e,r="HH:mm:ss"){if(!e)return;const t=new Date(e),n=e=>(e<10?"0":"")+e,i=t.getHours(),a=t.getMinutes(),s=t.getSeconds();if("HH:mm:ss"===r)return`${n(i)}:${n(a)}:${n(s)}`;if("HH:mm"===r)return`${n(i)}:${n(a)}`;if("hh:mm A"===r){const e=i>=12?"PM":"AM";return`${n(i%12||12)}:${n(a)} ${e}`}return t.toTimeString().slice(0,8)},exports.formateDate=function(e,r="DD-MM-YYYY"){if(e)return v.default(e).format(r)},exports.getAvailableSteelTypes=()=>Object.keys(D.COIL_WEIGHTS),exports.getAvailableTubeTypes=()=>["Round","Square","Rectangle"],exports.initializeApiBaseUrls=function(){if(!u.isApiConfigInitialized())return;const e=u.getApiConfig().backendBaseUrl;Z(`${e}/accounting`)},exports.recursiveSort=function e(r,t,n,i){if(!t.length)return U(r,n,i);const[a,...s]=t;return null==r?void 0:r.map(r=>({...r,[a]:e(r[a],s||[],n,i)}))},exports.removeExtraKeys=function e(r,t=[]){const n=["_at","_by","_data","created_user","updated_user",...t];for(const i in r)M(i,n)?delete r[i]:"object"!=typeof r[i]||Array.isArray(r[i])||e(r[i],["_at","_by","_data"]);return r},exports.sortData=U,exports.useAccountingSetting=({fieldToUpdate:e,fieldArrayName:r,companyField:t="company_id",locationField:n="location_id",departmentField:i="department_id",formMethods:a,customDependencies:s=[]})=>{const{setValue:l,control:o,watch:u}=a||{};return ee({control:o,setValue:l,watch:u,companyField:t,locationField:n,departmentField:i,fieldToUpdate:e,fieldArrayName:r,customDependencies:s})},exports.useApi=K,exports.useAppTranslations=()=>{const[e,r]=a.useState(J),t=window.location,{t:n}=s.useTranslation();return a.useEffect(()=>{const e=o.modules(n),i=t.pathname.toLowerCase(),a=e.find(e=>{var r;return e.link.toLowerCase()===i||(null==(r=e.connectedRoutes)?void 0:r.some(e=>i.startsWith(e.toLowerCase())))});let s=[];if((null==a?void 0:a.translationModule)?s=[...a.translationModule,"common"]:a||"/dashboard"!==i||(s=["common"]),s.length>0){const e=[...s].sort().join(",");if(B===e||z)return void(J&&(r(!1),J=!1));z=!0,B=e,r(!0),l.loadModuleTranslations(s).finally(()=>{z=!1,r(!1),J=!1})}else J&&(r(!1),J=!1)},[t.pathname,n]),{isLoading:e}},exports.useFormFieldUpdater=ee,exports.useLanguageFallback=(e={})=>{const r={...Y,...e},[t,n]=a.useState(0),i=(e,r)=>e.some(e=>e.code===r);return{findBestAvailableLanguage:(e,t)=>{if(!e||0===e.length)return r.enableConsoleWarnings,{code:"en",label:"English",direction:"ltr"};if(t){const n=e.find(e=>e.code===t);if(n)return n;r.enableConsoleWarnings}for(const i of r.fallbackOrder){const t=e.find(e=>e.code===i);if(t)return r.enableConsoleWarnings,t}const n=e.find(e=>"en"===e.code);return n?(r.enableConsoleWarnings,n):(r.enableConsoleWarnings,e[0]||{code:"en",label:"English",direction:"ltr"})},createEmergencyFallback:()=>({code:"en",label:"English",direction:"ltr"}),createEnglishFallback:()=>({code:"en",label:"English",direction:"ltr"}),validateLanguageCode:i,getSavedLanguage:e=>{const t=localStorage.getItem("_language");return t?i(e,t)?t:(r.enableConsoleWarnings,null):null},ensureEnglishAvailable:e=>e.some(e=>"en"===e.code)?e:[{code:"en",label:"English",direction:"ltr"},...e],shouldRetry:()=>r.retryOnError&&t<r.maxRetries,incrementRetry:()=>{n(e=>e+1)},resetRetry:()=>{n(0)},retryCount:t,config:r}},exports.useLanguageState=()=>{const[e,r]=a.useState(!1),[t,n]=a.useState(!1),[i,s]=a.useState(null);return{isInitialized:e,hasError:t,errorMessage:i,markInitialized:()=>r(!0),setError:e=>{n(!0),s(e)},clearError:()=>{n(!1),s(null)}}},exports.useMaterialCalculations=e=>a.useMemo(()=>{if(!e)return{totalWidth:0,materialUnit:0,boardsWeight:0,steelWeight:0,materialWeight:0};const r=(e=>{const{face_width:r,bending:t,height:n}=e;if(!P(r,t,n))return{value:0,isValid:!1,error:"Invalid input values for boards total width calculation"};const i=H(r),a=H(t),s=H(n);return[i,a,s].every(e=>e.isValid)?{value:2*(s.value+a.value)+i.value,isValid:!0}:{value:0,isValid:!1,error:"Failed to parse input values"}})(e),t=(e=>{const{steel_type:r}=e;return r?r in D.COIL_WEIGHTS?{value:D.COIL_WEIGHTS[r],isValid:!0}:{value:0,isValid:!1,error:`Unsupported steel type: ${r}`}:{value:0,isValid:!1,error:"Steel type not specified"}})(e),n=(e=>{const{total_width:r,boards_thickness:t,boards_length:n}=e;if(!P(r,t,n))return{value:0,isValid:!1,error:"Invalid input values for boards weight calculation"};const i=H(r),a=H(t),s=H(n);return[i,a,s].every(e=>e.isValid)?{value:i.value*a.value*(s.value/D.LENGTH_CONVERSION_FACTOR)*D.STEEL_DENSITY,isValid:!0}:{value:0,isValid:!1,error:"Failed to parse input values"}})(e),i=(e=>{const{steel_length:r,steel_width:t,steel_thickness:n}=e;if(!P(r,t,n))return{value:0,isValid:!1,error:"Invalid input values for steel weight calculation"};const i=H(r),a=H(t),s=H(n);return[i,a,s].every(e=>e.isValid)?{value:i.value*a.value*s.value*D.STEEL_DENSITY/D.LENGTH_CONVERSION_FACTOR,isValid:!0}:{value:0,isValid:!1,error:"Failed to parse input values"}})(e),a=(e=>{const{tube_type:r,tube_od:t,shape_width:n,shape_height:i,material_thickness:a,material_length:s}=e;if(!r)return{value:0,isValid:!1,error:"Tube type not specified"};const l=H(a),o=H(s);if(!l.isValid||!o.isValid)return{value:0,isValid:!1,error:"Invalid thickness or length values"};let u=0;switch(r){case"Round":{const e=H(t);if(!e.isValid||e.value<=l.value)return{value:0,isValid:!1,error:"Invalid outer diameter for round tube"};u=(e.value-l.value)*l.value*D.TUBE_CALCULATION_FACTOR*o.value;break}case"Square":case"Rectangle":{const e=H(n),r=H(i);if(!e.isValid||!r.isValid)return{value:0,isValid:!1,error:"Invalid width or height for rectangular tube"};u=(2*(e.value+r.value)/Math.PI-l.value)*l.value*D.TUBE_CALCULATION_FACTOR*o.value;break}default:return{value:0,isValid:!1,error:`Unsupported tube type: ${r}`}}return{value:Math.max(0,u),isValid:!0}})(e);return"development"===process.env.NODE_ENV&&[r,t,n,i,a].filter(e=>!e.isValid&&e.error).forEach(e=>{}),{totalWidth:r.value,materialUnit:t.value,boardsWeight:n.value,steelWeight:i.value,materialWeight:a.value}},[G(e)]),exports.useNameSkuUniquenessCheck=({fieldPrefix:e,formMethods:r,data:t})=>{const{watch:n=()=>{},setError:i=()=>{}}=r||{},s=n(e),l=null==t?void 0:t.name,o=null==t?void 0:t.sku;return{checkNameAndSkuUniqueness:a.useCallback(async()=>{let r=!0;try{if(l===(null==s?void 0:s.name)&&o===(null==s?void 0:s.sku))return!0;const n=await u.checkSkuAndItemName({name:null==s?void 0:s.name,sku:null==s?void 0:s.sku,...(null==t?void 0:t.id)&&{id:null==t?void 0:t.id}});return n.name&&(i(`${e}.name`,{message:"Name already exists",type:"manual",ref:`${e}.name`}),r=!1),n.sku&&(i(`${e}.sku`,{message:"SKU already exists",type:"manual",ref:`${e}.sku`}),r=!1),r}catch(n){return r}},[null==s?void 0:s.name,null==s?void 0:s.sku,i])}},exports.useReduxIntegration=()=>{const{useRedux:e,apiClient:r}=c.useERPUI();return{useRedux:e,apiClient:r,useConditionalRedux:(r,t)=>{if(!e)return t;try{return r()}catch(n){return t}},conditionalDispatch:r=>{if(!e)return Promise.resolve();try{const{useAppDispatch:e}=require("../redux/hooks");return e()(r)}catch(t){return Promise.reject(t)}}}},exports.validateFormValues=e=>{const r=[],{tube_type:t,steel_type:n}=e;return n&&!(n in D.COIL_WEIGHTS)&&r.push(`Invalid steel type: ${n}`),t&&!["Round","Square","Rectangle"].includes(t)&&r.push(`Invalid tube type: ${t}`),{isValid:0===r.length,errors:r}},exports.valueWithCurrency=e=>{var t;const{user:n}=r.useAuth();if(e)return`${(null==(t=null==n?void 0:n.currency_data)?void 0:t.symbol)||""} ${e}`};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("moment"),r=require("../languageContext-wDrqMwzj.js"),t=require("lodash"),n=require("libphonenumber-js"),i=require("../useLocationFilter-BizEkzgz.js"),a=require("react"),s=require("react-i18next"),l=require("../translations-1dZqnqOl.js"),o=require("../modules-xSiesxge.js"),u=require("../common-DzWMY4wi.js"),c=require("../apiHelper-CiKMWI2r.js"),d=require("../useLangauge--qqmoWbd.js"),p=require("../all-language-XhvdjcQg.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("react/jsx-runtime"),require("../api-BU2KNfrl.js"),require("../auth-BHeRds0l.js"),require("react-router-dom"),require("../pathname.hrms-BYy3B3SQ.js"),require("socket.io-client"),require("../route-utils-ifjI7_7l.js"),require("../DefaultPropsProvider-DXLRpppW.js"),require("react-is"),require("../custom-styled-icon-CtBVvAxY.js"),require("react-transition-group"),require("../Box-C3settuL.js"),require("../useId-Cl8V2SF-.js"),require("../images-Dwb4un_s.js"),/* empty css */require("../notification-DrpgO56m.js"),require("../contexts/index.js"),require("../route-page-map-DJlBCFU5.js"),require("../hooks-CzoDgYvR.js"),require("react-redux"),require("dayjs"),require("react-dom"),require("dayjs/plugin/utc"),require("moment-timezone"),require("../theme-impl-BliqM73m.js"),require("../Grow-isiVHeFI.js"),require("../CssBaseline-BKvBQY51.js"),require("../store-Va8DfTuN.js"),require("@reduxjs/toolkit"),require("../reducer-BZCFgNcr.js");var v=/* @__PURE__ */m(e),f=/* @__PURE__ */m(t);const g=e=>()=>Promise.resolve([]),h=g(),y=g(),b=g(),_=g(),x=g(),E=g(),k=g(),S=g(),q=g(),C=g(),j=g(),A=g(),$=g(),T=g(),w=g(),I=g(),L=g(),O=g(),V=g(),F=g(),N=g(),R=g(),U=(e,r,t)=>f.default.orderBy(e,r,t);function M(e,r){return r.some(r=>e.includes(r))}const W={company:x,items:j,currency:E,salesperson:V,party:$,department:S,location:A,uom:R,discountedItems:q,taxTemplate:N,paymentTerm:w,incoTerms:C,shippingRules:F,bins:y,agreement:h,accounts:_,invoices:I,purchaseOrderReceipts:L,representatives:O,industry:T,categoryItems:b,customerSegment:k,countries:n.getCountries},D={STEEL_DENSITY:7.85,LENGTH_CONVERSION_FACTOR:1e3,TUBE_CALCULATION_FACTOR:.024662,COIL_WEIGHTS:{GI:2879.95,HR:2356.59}},H=e=>{if(null==e||""===e)return{value:0,isValid:!1,error:"Empty value"};const r="string"==typeof e?parseFloat(e.trim()):Number(e);return isNaN(r)?{value:0,isValid:!1,error:"Invalid number format"}:isFinite(r)?{value:r,isValid:!0}:{value:0,isValid:!1,error:"Number is not finite"}},P=(...e)=>e.every(e=>{const r=H(e);return r.isValid&&r.value>0}),G=e=>e?["face_width","bending","height","total_width","boards_thickness","boards_length","steel_length","steel_width","steel_thickness","steel_type","tube_type","tube_od","shape_width","shape_height","material_thickness","material_length"].map(r=>`${r}:${e[r]??""}`).join("|"):"empty";let B="",z=!1,J=!0;const Y={fallbackOrder:["en","en-US",p.DEFAULT_LANG],enableConsoleWarnings:!0,retryOnError:!1,maxRetries:3};function K(){const[e,r]=a.useState(!1),[t,n]=a.useState(null);return{callApi:a.useCallback(async({apiFunc:e,onSuccess:i,onError:a,successMessage:s,errorMessage:l,loadingState:o,enableLoading:c=!0,showError:d=!0})=>{c&&r(!0),null==o||o(!0);const p=await e();return c&&r(!1),null==o||o(!1),function({res:e,callBack:r,showError:t=!0,errorCallback:n,succsessMessage:i=null}){var a,s;if("rejected"===(null==(a=null==e?void 0:e.meta)?void 0:a.requestStatus)){const r=(()=>{var r;try{return(null==(r=e.error)?void 0:r.message)?JSON.parse(e.error.message):null}catch{return{message:"Something went wrong"}}})(),i=(null==(s=null==r?void 0:r.message)?void 0:s.replace("Error:","").trim())||"Something went wrong";return t&&u.enqueueSnackbar(i,{variant:"error"}),void(n&&"function"==typeof n&&n(i))}i&&u.enqueueSnackbar(i),r&&"function"==typeof r&&r()}({res:p,callBack:()=>{null==i||i(p)},errorCallback:e=>{null==a||a(p),n(l||e)},succsessMessage:s,showError:d}),{response:p,error:t}},[]),loading:e,error:t}}let Q="",X={};const Z=e=>{var r;Q=(r=e).endsWith("/")?r.slice(0,-1):r};u.onApiConfigReady(e=>{const r=e.backendBaseUrl;Z(`${r}/accounting`)});const ee=({control:e,setValue:r,fieldToUpdate:t,transformResponse:n,watch:i,fieldArrayName:s,companyField:l="company_id",locationField:o="location_id",departmentField:c="department_id",customDependencies:d=[]})=>{const{callApi:p}=K(),[m,v]=a.useState(null),f=s?`${s}.${l}`:l,g=s?`${s}.${o}`:o,h=s?`${s}.${c}`:c,y=(null==i?void 0:i(`${s}`))||{},b=(null==y?void 0:y[l])||null,_=(null==y?void 0:y[o])||null,x=(null==y?void 0:y[c])||null;a.useEffect(()=>{if(i&&!m){const e={[l]:b,[o]:_,[c]:x},r={};Object.keys(t).forEach(e=>{const t=s?`${s}.${e}`:e;r[e]=i(t)}),v({filters:e,values:r})}},[i,b,_,x,m,f,g,h]);const E=a.useCallback(e=>{if(!r||!e)return;const i=n?n(e):e;i&&Object.entries(t).forEach(([e,t])=>{const n=null==i?void 0:i.find(e=>(null==e?void 0:e.config_key)==("object"==typeof t?t.key:t));null!=n&&("object"==typeof t?t.value((null==n?void 0:n.reference_id)||(null==n?void 0:n.reference_text)):r(s?`${s}.${e}`:e,(null==n?void 0:n.reference_id)||(null==n?void 0:n.reference_text)))})},[r,t,n,s,...d]),k=a.useCallback(async()=>{var e,t,n;if(!b||!m)return;if(JSON.stringify(null==(e=null==m?void 0:m.filters)?void 0:e[l])===JSON.stringify(b)&&JSON.stringify(null==(t=null==m?void 0:m.filters)?void 0:t[o])===JSON.stringify(_)&&JSON.stringify(null==(n=null==m?void 0:m.filters)?void 0:n[c])===JSON.stringify(x))return void Object.entries(m.values).forEach(([e,t])=>{null==r||r(s?`${s}.${e}`:e,t)});const i=`(company_id.eq=${b||1}&location_id.eq=${_||null}&department_id.eq=${x||null})`;p({apiFunc:()=>(async e=>await(async(e,r)=>{const t=new URLSearchParams;["skip","limit","order","filters","search","select"].forEach(e=>{var n;r[e]&&(Array.isArray(r[e])?r[e].forEach(r=>{t.append(e,r)}):t.append(e,(null==(n=r[e])?void 0:n.toString())||"")),delete r[e]});const n={...X};void 0!==r["x-token"]&&(n["x-token"]=r["x-token"],delete r["x-token"]),void 0!==r["x-timezone"]&&(n["x-timezone"]=r["x-timezone"],delete r["x-timezone"]);const i=await fetch(`${e}/v1/settings/configurations?${t.toString()}`,{headers:n});if(!i.ok)throw new Error(await i.text());return await i.json()})(Q,e))({...u.getToken(),filters:i}),onSuccess:e=>{var r;E(null==(r=null==e?void 0:e.data)?void 0:r.configuration_list)},onError:e=>{}})},[b,_,x,m,p,r]);return a.useEffect(()=>{k()},[k]),{selectedCompany:b,selectedLocation:_,selectedDepartment:x}};exports.useAuth=r.useAuth,exports.useDeepMemo=i.useDeepMemo,exports.useLocationFilter=i.useLocationFilter,exports.useMultipleLocationFilters=i.useMultipleLocationFilters,exports.usePages=i.usePages,exports.usePermissions=i.usePermissions,Object.defineProperty(exports,"useTranslation",{enumerable:!0,get:function(){return s.useTranslation}}),exports.apiHelper=c.apiHelper,exports.useDataFetcher=c.useGenericDataFetcher,exports.useLanguage=d.useLanguage,exports.apiType=W,exports.capitalizeWords=function(e){return e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "):""},exports.convertEmptyToNull=function e(r){return Object.entries(r).reduce((r,[t,n])=>(""===n||Array.isArray(n)&&0===n.length||"object"==typeof n&&null!==n&&!Array.isArray(n)&&0===Object.keys(n).length?r[t]=null:Array.isArray(n)?r[t]=n.map(r=>"object"==typeof r&&null!==r?e(r):r):r[t]="object"==typeof n&&null!==n?e(n):n,r),{})},exports.defaultUserCurrency=()=>{var e;const{user:t}=r.useAuth();return(null==(e=null==t?void 0:t.currency_data)?void 0:e.symbol)||""},exports.formatNumber=(e,r="$")=>e>=1e6?`${r} ${(e/1e6).toFixed(1)} M`:e>=1e5?`${r} ${(e/1e5).toFixed(1)} L`:e>=1e3?`${(e/1e3).toFixed(1)} K`:`${r} ${e.toFixed(2)}`,exports.formatTime=function(e,r="HH:mm:ss"){if(!e)return;const t=new Date(e),n=e=>(e<10?"0":"")+e,i=t.getHours(),a=t.getMinutes(),s=t.getSeconds();if("HH:mm:ss"===r)return`${n(i)}:${n(a)}:${n(s)}`;if("HH:mm"===r)return`${n(i)}:${n(a)}`;if("hh:mm A"===r){const e=i>=12?"PM":"AM";return`${n(i%12||12)}:${n(a)} ${e}`}return t.toTimeString().slice(0,8)},exports.formateDate=function(e,r="DD-MM-YYYY"){if(e)return v.default(e).format(r)},exports.getAvailableSteelTypes=()=>Object.keys(D.COIL_WEIGHTS),exports.getAvailableTubeTypes=()=>["Round","Square","Rectangle"],exports.initializeApiBaseUrls=function(){if(!u.isApiConfigInitialized())return;const e=u.getApiConfig().backendBaseUrl;Z(`${e}/accounting`)},exports.recursiveSort=function e(r,t,n,i){if(!t.length)return U(r,n,i);const[a,...s]=t;return null==r?void 0:r.map(r=>({...r,[a]:e(r[a],s||[],n,i)}))},exports.removeExtraKeys=function e(r,t=[]){const n=["_at","_by","_data","created_user","updated_user",...t];for(const i in r)M(i,n)?delete r[i]:"object"!=typeof r[i]||Array.isArray(r[i])||e(r[i],["_at","_by","_data"]);return r},exports.sortData=U,exports.useAccountingSetting=({fieldToUpdate:e,fieldArrayName:r,companyField:t="company_id",locationField:n="location_id",departmentField:i="department_id",formMethods:a,customDependencies:s=[]})=>{const{setValue:l,control:o,watch:u}=a||{};return ee({control:o,setValue:l,watch:u,companyField:t,locationField:n,departmentField:i,fieldToUpdate:e,fieldArrayName:r,customDependencies:s})},exports.useApi=K,exports.useAppTranslations=()=>{const[e,t]=a.useState(J),n=window.location,i=s.getI18n(),{user:u,loading:c}=r.useAuth(),{t:d}=s.useTranslation();return a.useEffect(()=>{if((null==u?void 0:u.id)&&!c){const e=o.modules(d),r=n.pathname.toLowerCase(),a=e.find(e=>{var t;return e.link.toLowerCase()===r||(null==(t=e.connectedRoutes)?void 0:t.some(e=>r.startsWith(e.toLowerCase())))});let s=[];if((null==a?void 0:a.translationModule)?s=[...a.translationModule,"common"]:a||"/dashboard"!==r||(s=["common"]),s.length>0){const e=[...s].sort().join(",");if(B===e||z)return void(J&&(t(!1),J=!1));z=!0,B=e,t(!0),l.loadModuleTranslations(s,i).finally(()=>{z=!1,t(!1),J=!1})}else J&&(t(!1),J=!1)}},[n.pathname,d,u,c,i]),{isLoading:e}},exports.useFormFieldUpdater=ee,exports.useLanguageFallback=(e={})=>{const r={...Y,...e},[t,n]=a.useState(0),i=(e,r)=>e.some(e=>e.code===r);return{findBestAvailableLanguage:(e,t)=>{if(!e||0===e.length)return r.enableConsoleWarnings,{code:"en",label:"English",direction:"ltr"};if(t){const n=e.find(e=>e.code===t);if(n)return n;r.enableConsoleWarnings}for(const i of r.fallbackOrder){const t=e.find(e=>e.code===i);if(t)return r.enableConsoleWarnings,t}const n=e.find(e=>"en"===e.code);return n?(r.enableConsoleWarnings,n):(r.enableConsoleWarnings,e[0]||{code:"en",label:"English",direction:"ltr"})},createEmergencyFallback:()=>({code:"en",label:"English",direction:"ltr"}),createEnglishFallback:()=>({code:"en",label:"English",direction:"ltr"}),validateLanguageCode:i,getSavedLanguage:e=>{const t=localStorage.getItem("_language");return t?i(e,t)?t:(r.enableConsoleWarnings,null):null},ensureEnglishAvailable:e=>e.some(e=>"en"===e.code)?e:[{code:"en",label:"English",direction:"ltr"},...e],shouldRetry:()=>r.retryOnError&&t<r.maxRetries,incrementRetry:()=>{n(e=>e+1)},resetRetry:()=>{n(0)},retryCount:t,config:r}},exports.useLanguageState=()=>{const[e,r]=a.useState(!1),[t,n]=a.useState(!1),[i,s]=a.useState(null);return{isInitialized:e,hasError:t,errorMessage:i,markInitialized:()=>r(!0),setError:e=>{n(!0),s(e)},clearError:()=>{n(!1),s(null)}}},exports.useMaterialCalculations=e=>a.useMemo(()=>{if(!e)return{totalWidth:0,materialUnit:0,boardsWeight:0,steelWeight:0,materialWeight:0};const r=(e=>{const{face_width:r,bending:t,height:n}=e;if(!P(r,t,n))return{value:0,isValid:!1,error:"Invalid input values for boards total width calculation"};const i=H(r),a=H(t),s=H(n);return[i,a,s].every(e=>e.isValid)?{value:2*(s.value+a.value)+i.value,isValid:!0}:{value:0,isValid:!1,error:"Failed to parse input values"}})(e),t=(e=>{const{steel_type:r}=e;return r?r in D.COIL_WEIGHTS?{value:D.COIL_WEIGHTS[r],isValid:!0}:{value:0,isValid:!1,error:`Unsupported steel type: ${r}`}:{value:0,isValid:!1,error:"Steel type not specified"}})(e),n=(e=>{const{total_width:r,boards_thickness:t,boards_length:n}=e;if(!P(r,t,n))return{value:0,isValid:!1,error:"Invalid input values for boards weight calculation"};const i=H(r),a=H(t),s=H(n);return[i,a,s].every(e=>e.isValid)?{value:i.value*a.value*(s.value/D.LENGTH_CONVERSION_FACTOR)*D.STEEL_DENSITY,isValid:!0}:{value:0,isValid:!1,error:"Failed to parse input values"}})(e),i=(e=>{const{steel_length:r,steel_width:t,steel_thickness:n}=e;if(!P(r,t,n))return{value:0,isValid:!1,error:"Invalid input values for steel weight calculation"};const i=H(r),a=H(t),s=H(n);return[i,a,s].every(e=>e.isValid)?{value:i.value*a.value*s.value*D.STEEL_DENSITY/D.LENGTH_CONVERSION_FACTOR,isValid:!0}:{value:0,isValid:!1,error:"Failed to parse input values"}})(e),a=(e=>{const{tube_type:r,tube_od:t,shape_width:n,shape_height:i,material_thickness:a,material_length:s}=e;if(!r)return{value:0,isValid:!1,error:"Tube type not specified"};const l=H(a),o=H(s);if(!l.isValid||!o.isValid)return{value:0,isValid:!1,error:"Invalid thickness or length values"};let u=0;switch(r){case"Round":{const e=H(t);if(!e.isValid||e.value<=l.value)return{value:0,isValid:!1,error:"Invalid outer diameter for round tube"};u=(e.value-l.value)*l.value*D.TUBE_CALCULATION_FACTOR*o.value;break}case"Square":case"Rectangle":{const e=H(n),r=H(i);if(!e.isValid||!r.isValid)return{value:0,isValid:!1,error:"Invalid width or height for rectangular tube"};u=(2*(e.value+r.value)/Math.PI-l.value)*l.value*D.TUBE_CALCULATION_FACTOR*o.value;break}default:return{value:0,isValid:!1,error:`Unsupported tube type: ${r}`}}return{value:Math.max(0,u),isValid:!0}})(e);return"development"===process.env.NODE_ENV&&[r,t,n,i,a].filter(e=>!e.isValid&&e.error).forEach(e=>{}),{totalWidth:r.value,materialUnit:t.value,boardsWeight:n.value,steelWeight:i.value,materialWeight:a.value}},[G(e)]),exports.useNameSkuUniquenessCheck=({fieldPrefix:e,formMethods:r,data:t})=>{const{watch:n=()=>{},setError:i=()=>{}}=r||{},s=n(e),l=null==t?void 0:t.name,o=null==t?void 0:t.sku;return{checkNameAndSkuUniqueness:a.useCallback(async()=>{let r=!0;try{if(l===(null==s?void 0:s.name)&&o===(null==s?void 0:s.sku))return!0;const n=await u.checkSkuAndItemName({name:null==s?void 0:s.name,sku:null==s?void 0:s.sku,...(null==t?void 0:t.id)&&{id:null==t?void 0:t.id}});return n.name&&(i(`${e}.name`,{message:"Name already exists",type:"manual",ref:`${e}.name`}),r=!1),n.sku&&(i(`${e}.sku`,{message:"SKU already exists",type:"manual",ref:`${e}.sku`}),r=!1),r}catch(n){return r}},[null==s?void 0:s.name,null==s?void 0:s.sku,i])}},exports.useReduxIntegration=()=>{const{useRedux:e,apiClient:r}=c.useERPUI();return{useRedux:e,apiClient:r,useConditionalRedux:(r,t)=>{if(!e)return t;try{return r()}catch(n){return t}},conditionalDispatch:r=>{if(!e)return Promise.resolve();try{const{useAppDispatch:e}=require("../redux/hooks");return e()(r)}catch(t){return Promise.reject(t)}}}},exports.validateFormValues=e=>{const r=[],{tube_type:t,steel_type:n}=e;return n&&!(n in D.COIL_WEIGHTS)&&r.push(`Invalid steel type: ${n}`),t&&!["Round","Square","Rectangle"].includes(t)&&r.push(`Invalid tube type: ${t}`),{isValid:0===r.length,errors:r}},exports.valueWithCurrency=e=>{var t;const{user:n}=r.useAuth();if(e)return`${(null==(t=null==n?void 0:n.currency_data)?void 0:t.symbol)||""} ${e}`};
2
2
  //# sourceMappingURL=index.js.map