@dropins/storefront-company-management 1.0.0-alpha2011 → 1.0.0-alpha2012
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/chunks/CompanyLoaders.js +1 -1
- package/chunks/CompanyLoaders.js.map +1 -1
- package/chunks/CompanyUserForm.js +1 -1
- package/chunks/getCompanyCreditHistory.js +1 -1
- package/chunks/getCompanyCreditHistory.js.map +1 -1
- package/containers/CompanyCredit.js +1 -1
- package/containers/CompanyCredit.js.map +1 -1
- package/containers/CompanyProfile.js +1 -1
- package/containers/CompanyStructure.js +1 -1
- package/containers/CompanyUsers.js +1 -1
- package/containers/CompanyUsers.js.map +1 -1
- package/hooks/containers/useCompanyUsers.d.ts +1 -0
- package/i18n/en_US.json.d.ts +10 -10
- package/package.json +1 -1
- package/render.js +4 -4
- package/render.js.map +1 -1
package/chunks/CompanyLoaders.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{
|
|
3
|
+
import{jsxs as t,jsx as e}from"@dropins/tools/preact-jsx-runtime.js";import{Card as s,Skeleton as r,SkeletonRow as a}from"@dropins/tools/components.js";import{classes as o}from"@dropins/tools/lib.js";const u=({testId:i,withCard:n=!0})=>{const l=t(r,{"data-testid":i||"companySkeletonLoader",children:[e(a,{variant:"heading",size:"xlarge",fullWidth:!1,lines:1}),e(a,{variant:"heading",size:"xlarge",fullWidth:!0,lines:1}),e(a,{variant:"heading",size:"xlarge",fullWidth:!0,lines:1})]});return n?l:e(s,{variant:"secondary",className:o(["company-company-loaders","company-company-loaders--card-loader"]),children:l})},h=({testId:i})=>t("div",{className:"company-credit-skeleton-loader","data-testid":i||"companyCreditSkeletonLoader",children:[e(r,{children:e(a,{variant:"row",size:"small",lines:2})}),e(r,{children:e(a,{variant:"row",size:"small",lines:2})}),e(r,{children:e(a,{variant:"row",size:"small",lines:2})})]}),p=({testId:i})=>e("div",{className:"company-credit-history-skeleton-loader","data-testid":i||"companyCreditHistorySkeletonLoader",children:e(r,{children:e(a,{variant:"row",size:"small",fullWidth:!0,lines:3})})}),y=({rows:i=6})=>t(r,{"data-testid":"companyStructureLoader",children:[e(a,{variant:"heading",size:"medium"}),e(a,{variant:"empty",size:"small"}),Array.from({length:i}).map((n,l)=>e(a,{size:"large",fullWidth:!0},l))]}),z=()=>t(r,{"data-testid":"companyUserFormLoader",children:[e(a,{variant:"heading",size:"medium"}),e(a,{variant:"empty",size:"small"}),e(a,{size:"large"}),e(a,{size:"large"}),e(a,{size:"large"}),e(a,{size:"large"}),e(a,{size:"large",fullWidth:!0}),e(a,{size:"large"}),e(a,{size:"large"})]}),g=()=>t(r,{"data-testid":"companyTeamFormLoader",children:[e(a,{variant:"heading",size:"medium"}),e(a,{variant:"empty",size:"small"}),e(a,{size:"large"}),e(a,{size:"large",fullWidth:!0}),e(a,{size:"large"})]});export{g as C,y as a,z as b,u as c,h as d,p as e};
|
|
4
4
|
//# sourceMappingURL=CompanyLoaders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompanyLoaders.js","sources":["/@dropins/storefront-company-management/src/components/CompanyLoaders/CompanyLoaders.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport { Skeleton, SkeletonRow, Card } from '@adobe-commerce/elsie/components';\nimport './CompanyLoaders.css';\nimport { classes } from '@adobe-commerce/elsie/lib';\n\nexport const CompanyCardLoader = ({\n testId,\n withCard = true,\n}: {\n testId?: string;\n withCard?: boolean;\n}) => {\n const defaultSkeleton = (\n <Skeleton data-testid={testId || 'companySkeletonLoader'}>\n <SkeletonRow\n variant=\"heading\"\n size=\"xlarge\"\n fullWidth={false}\n lines={1}\n />\n <SkeletonRow variant=\"heading\" size=\"xlarge\" fullWidth={true} lines={1} />\n <SkeletonRow variant=\"heading\" size=\"xlarge\" fullWidth={true} lines={1} />\n </Skeleton>\n );\n\n if (withCard) {\n return defaultSkeleton;\n }\n\n return (\n <Card\n variant=\"secondary\"\n className={classes([\n 'company-company-loaders',\n 'company-company-loaders--card-loader',\n ])}\n >\n {defaultSkeleton}\n </Card>\n );\n};\n\nexport const CompanyUsersTableLoader = ({ testId }: { testId?: string }) => {\n return (\n <div className=\"company-users-skeleton-loader\" data-testid={testId || 'companyUsersSkeletonLoader'}>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" fullWidth={true} lines={3} />\n </Skeleton>\n </div>\n );\n};\n\nexport const CompanyCreditLoader = ({ testId }: { testId?: string }) => {\n return (\n <div className=\"company-credit-skeleton-loader\" data-testid={testId || 'companyCreditSkeletonLoader'}>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" lines={2} />\n </Skeleton>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" lines={2} />\n </Skeleton>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" lines={2} />\n </Skeleton>\n </div>\n );\n};\n\nexport const CompanyCreditHistoryLoader = ({ testId }: { testId?: string }) => {\n return (\n <div className=\"company-credit-history-skeleton-loader\" data-testid={testId || 'companyCreditHistorySkeletonLoader'}>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" fullWidth={true} lines={3} />\n </Skeleton>\n </div>\n );\n};\n\nexport const CompanyStructureLoader = ({ rows = 6 }: { rows?: number }) => {\n return (\n <Skeleton data-testid=\"companyStructureLoader\">\n <SkeletonRow variant=\"heading\" size=\"medium\" />\n <SkeletonRow variant=\"empty\" size=\"small\" />\n {Array.from({ length: rows }).map((_, i) => (\n <SkeletonRow key={i} size=\"large\" fullWidth={true} />\n ))}\n </Skeleton>\n );\n};\n\nexport const CompanyUserFormLoader = () => {\n return (\n <Skeleton data-testid=\"companyUserFormLoader\">\n <SkeletonRow variant=\"heading\" size=\"medium\" />\n <SkeletonRow variant=\"empty\" size=\"small\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" fullWidth={true} />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" />\n </Skeleton>\n );\n};\n\nexport const CompanyTeamFormLoader = () => {\n return (\n <Skeleton data-testid=\"companyTeamFormLoader\">\n <SkeletonRow variant=\"heading\" size=\"medium\" />\n <SkeletonRow variant=\"empty\" size=\"small\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" fullWidth={true} />\n <SkeletonRow size=\"large\" />\n </Skeleton>\n );\n};\n"],"names":["CompanyCardLoader","testId","withCard","defaultSkeleton","jsxs","Skeleton","jsx","SkeletonRow","Card","classes","
|
|
1
|
+
{"version":3,"file":"CompanyLoaders.js","sources":["/@dropins/storefront-company-management/src/components/CompanyLoaders/CompanyLoaders.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport { Skeleton, SkeletonRow, Card } from '@adobe-commerce/elsie/components';\nimport './CompanyLoaders.css';\nimport { classes } from '@adobe-commerce/elsie/lib';\n\nexport const CompanyCardLoader = ({\n testId,\n withCard = true,\n}: {\n testId?: string;\n withCard?: boolean;\n}) => {\n const defaultSkeleton = (\n <Skeleton data-testid={testId || 'companySkeletonLoader'}>\n <SkeletonRow\n variant=\"heading\"\n size=\"xlarge\"\n fullWidth={false}\n lines={1}\n />\n <SkeletonRow variant=\"heading\" size=\"xlarge\" fullWidth={true} lines={1} />\n <SkeletonRow variant=\"heading\" size=\"xlarge\" fullWidth={true} lines={1} />\n </Skeleton>\n );\n\n if (withCard) {\n return defaultSkeleton;\n }\n\n return (\n <Card\n variant=\"secondary\"\n className={classes([\n 'company-company-loaders',\n 'company-company-loaders--card-loader',\n ])}\n >\n {defaultSkeleton}\n </Card>\n );\n};\n\nexport const CompanyUsersTableLoader = ({ testId }: { testId?: string }) => {\n return (\n <div className=\"company-users-skeleton-loader\" data-testid={testId || 'companyUsersSkeletonLoader'}>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" fullWidth={true} lines={3} />\n </Skeleton>\n </div>\n );\n};\n\nexport const CompanyCreditLoader = ({ testId }: { testId?: string }) => {\n return (\n <div className=\"company-credit-skeleton-loader\" data-testid={testId || 'companyCreditSkeletonLoader'}>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" lines={2} />\n </Skeleton>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" lines={2} />\n </Skeleton>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" lines={2} />\n </Skeleton>\n </div>\n );\n};\n\nexport const CompanyCreditHistoryLoader = ({ testId }: { testId?: string }) => {\n return (\n <div className=\"company-credit-history-skeleton-loader\" data-testid={testId || 'companyCreditHistorySkeletonLoader'}>\n <Skeleton>\n <SkeletonRow variant=\"row\" size=\"small\" fullWidth={true} lines={3} />\n </Skeleton>\n </div>\n );\n};\n\nexport const CompanyStructureLoader = ({ rows = 6 }: { rows?: number }) => {\n return (\n <Skeleton data-testid=\"companyStructureLoader\">\n <SkeletonRow variant=\"heading\" size=\"medium\" />\n <SkeletonRow variant=\"empty\" size=\"small\" />\n {Array.from({ length: rows }).map((_, i) => (\n <SkeletonRow key={i} size=\"large\" fullWidth={true} />\n ))}\n </Skeleton>\n );\n};\n\nexport const CompanyUserFormLoader = () => {\n return (\n <Skeleton data-testid=\"companyUserFormLoader\">\n <SkeletonRow variant=\"heading\" size=\"medium\" />\n <SkeletonRow variant=\"empty\" size=\"small\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" fullWidth={true} />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" />\n </Skeleton>\n );\n};\n\nexport const CompanyTeamFormLoader = () => {\n return (\n <Skeleton data-testid=\"companyTeamFormLoader\">\n <SkeletonRow variant=\"heading\" size=\"medium\" />\n <SkeletonRow variant=\"empty\" size=\"small\" />\n <SkeletonRow size=\"large\" />\n <SkeletonRow size=\"large\" fullWidth={true} />\n <SkeletonRow size=\"large\" />\n </Skeleton>\n );\n};\n"],"names":["CompanyCardLoader","testId","withCard","defaultSkeleton","jsxs","Skeleton","jsx","SkeletonRow","Card","classes","CompanyCreditLoader","CompanyCreditHistoryLoader","CompanyStructureLoader","rows","_","i","CompanyUserFormLoader","CompanyTeamFormLoader"],"mappings":"wMAoBO,MAAMA,EAAoB,CAAC,CAChC,OAAAC,EACA,SAAAC,EAAW,EACb,IAGM,CACJ,MAAMC,EACJC,EAACC,EAAA,CAAS,cAAaJ,GAAU,wBAC/B,SAAA,CAAAK,EAACC,EAAA,CACC,QAAQ,UACR,KAAK,SACL,UAAW,GACX,MAAO,CAAA,CAAA,EAETD,EAACC,GAAY,QAAQ,UAAU,KAAK,SAAS,UAAW,GAAM,MAAO,CAAA,CAAG,EACxED,EAACC,GAAY,QAAQ,UAAU,KAAK,SAAS,UAAW,GAAM,MAAO,CAAA,CAAG,CAAA,EAC1E,EAGF,OAAIL,EACKC,EAIPG,EAACE,EAAA,CACC,QAAQ,YACR,UAAWC,EAAQ,CACjB,0BACA,sCAAA,CACD,EAEA,SAAAN,CAAA,CAAA,CAGP,EAYaO,EAAsB,CAAC,CAAE,OAAAT,OAEjC,MAAA,CAAI,UAAU,iCAAiC,cAAaA,GAAU,8BACrE,SAAA,CAAAK,EAACD,EAAA,CACC,WAACE,EAAA,CAAY,QAAQ,MAAM,KAAK,QAAQ,MAAO,CAAA,CAAG,CAAA,CACpD,EACAD,EAACD,EAAA,CACC,SAAAC,EAACC,EAAA,CAAY,QAAQ,MAAM,KAAK,QAAQ,MAAO,CAAA,CAAG,CAAA,CACpD,EACAD,EAACD,EAAA,CACC,SAAAC,EAACC,EAAA,CAAY,QAAQ,MAAM,KAAK,QAAQ,MAAO,CAAA,CAAG,CAAA,CACpD,CAAA,EACF,EAISI,EAA6B,CAAC,CAAE,OAAAV,KAEzCK,EAAC,OAAI,UAAU,yCAAyC,cAAaL,GAAU,qCAC3E,WAACI,EAAA,CACC,SAAAC,EAACC,GAAY,QAAQ,MAAM,KAAK,QAAQ,UAAW,GAAM,MAAO,EAAG,EACrE,CAAA,CACJ,EAISK,EAAyB,CAAC,CAAE,KAAAC,EAAO,KAE5CT,EAACC,EAAA,CAAS,cAAY,yBACpB,SAAA,CAAAC,EAACC,EAAA,CAAY,QAAQ,UAAU,KAAK,SAAS,EAC7CD,EAACC,EAAA,CAAY,QAAQ,QAAQ,KAAK,QAAQ,EACzC,MAAM,KAAK,CAAE,OAAQM,CAAA,CAAM,EAAE,IAAI,CAACC,EAAGC,MACnCR,EAAA,CAAoB,KAAK,QAAQ,UAAW,EAAA,EAA3BQ,CAAiC,CACpD,CAAA,EACH,EAISC,EAAwB,IAEjCZ,EAACC,EAAA,CAAS,cAAY,wBACpB,SAAA,CAAAC,EAACC,EAAA,CAAY,QAAQ,UAAU,KAAK,SAAS,EAC7CD,EAACC,EAAA,CAAY,QAAQ,QAAQ,KAAK,QAAQ,EAC1CD,EAACC,EAAA,CAAY,KAAK,OAAA,CAAQ,EAC1BD,EAACC,EAAA,CAAY,KAAK,OAAA,CAAQ,EAC1BD,EAACC,EAAA,CAAY,KAAK,OAAA,CAAQ,EAC1BD,EAACC,EAAA,CAAY,KAAK,OAAA,CAAQ,EAC1BD,EAACC,EAAA,CAAY,KAAK,QAAQ,UAAW,GAAM,EAC3CD,EAACC,EAAA,CAAY,KAAK,OAAA,CAAQ,EAC1BD,EAACC,EAAA,CAAY,KAAK,OAAA,CAAQ,CAAA,EAC5B,EAISU,EAAwB,IAEjCb,EAACC,EAAA,CAAS,cAAY,wBACpB,SAAA,CAAAC,EAACC,EAAA,CAAY,QAAQ,UAAU,KAAK,SAAS,EAC7CD,EAACC,EAAA,CAAY,QAAQ,QAAQ,KAAK,QAAQ,EAC1CD,EAACC,EAAA,CAAY,KAAK,OAAA,CAAQ,EAC1BD,EAACC,EAAA,CAAY,KAAK,QAAQ,UAAW,GAAM,EAC3CD,EAACC,EAAA,CAAY,KAAK,OAAA,CAAQ,CAAA,EAC5B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{jsxs as P,jsx as o}from"@dropins/tools/preact-jsx-runtime.js";import{memo as D}from"@dropins/tools/preact-compat.js";import{useState as d,useEffect as H}from"@dropins/tools/preact-hooks.js";import{Card as J,InLineAlert as K,ProgressSpinner as Q,Field as S,Input as A,Picker as z,Button as O}from"@dropins/tools/components.js";import{i as W}from"./company-permissions.js";import{g as X,c as Y,u as Z,i as ee}from"./updateCompanyUser.js";import{useText as G}from"@dropins/tools/i18n.js";import{u as ae}from"./useCompanyRoles.js";import{
|
|
3
|
+
import{jsxs as P,jsx as o}from"@dropins/tools/preact-jsx-runtime.js";import{memo as D}from"@dropins/tools/preact-compat.js";import{useState as d,useEffect as H}from"@dropins/tools/preact-hooks.js";import{Card as J,InLineAlert as K,ProgressSpinner as Q,Field as S,Input as A,Picker as z,Button as O}from"@dropins/tools/components.js";import{i as W}from"./company-permissions.js";import{g as X,c as Y,u as Z,i as ee}from"./updateCompanyUser.js";import{useText as G}from"@dropins/tools/i18n.js";import{u as ae}from"./useCompanyRoles.js";import{b as te}from"./CompanyLoaders.js";function re(q){const{mode:I,entityId:h,parentStructureId:T,onSaved:w,onError:N,onSuccess:v}=q,u=G({firstNameRequired:"Company.CompanyStructure.shared.validation.firstNameRequired",lastNameRequired:"Company.CompanyStructure.shared.validation.lastNameRequired",emailRequired:"Company.CompanyStructure.shared.validation.emailRequired",emailInvalid:"Company.CompanyStructure.shared.validation.emailInvalid",jobTitleRequired:"Company.CompanyStructure.shared.validation.jobTitleRequired",workPhoneRequired:"Company.CompanyStructure.shared.validation.workPhoneRequired",selectRole:"Company.CompanyStructure.shared.validation.selectRole",createUserError:"Company.CompanyStructure.messages.createUserError",saveUserError:"Company.CompanyStructure.messages.saveUserError",createUserSuccess:"Company.CompanyStructure.messages.createUserSuccess",updateUserSuccess:"Company.CompanyStructure.messages.updateUserSuccess"}),[r,U]=d({firstName:"",lastName:"",email:"",jobTitle:"",telephone:"",roleId:"",status:"ACTIVE"}),[x,c]=d({}),[m,p]=d({}),[V,R]=d(!1),[y,j]=d(null),[_,E]=d(null),[b,k]=d(""),[l,a]=d(""),[i,B]=d(!1);H(()=>{I!=="edit"||!h||(R(!0),X(h).then(e=>{var f;if(!e)return;const t=e.email||"";U(g=>({...g,firstName:e.firstName||"",lastName:e.lastName||"",email:t,jobTitle:e.jobTitle||"",telephone:e.telephone||"",status:e.status||"ACTIVE"})),a(t),(f=e==null?void 0:e.role)!=null&&f.id&&U(g=>({...g,roleId:e.role.id})),B((e==null?void 0:e.isCompanyAdmin)??!1)}).finally(()=>R(!1)))},[I,h]);const F=e=>/.+@.+\..+/.test(e),M=(e,t)=>e==="firstName"?t!=null&&t.trim()?null:u.firstNameRequired:e==="lastName"?t!=null&&t.trim()?null:u.lastNameRequired:e==="email"?t!=null&&t.trim()?F(t.trim())?null:u.emailInvalid:u.emailRequired:e==="roleId"?t?null:u.selectRole:null,$=(e,t)=>{U(f=>({...f,[e]:t})),e==="email"&&E(null),y&&j(null)};return{values:r,errors:x,touched:m,loading:V,setValue:$,onBlur:async(e,t)=>{t!==void 0&&$(e,t),p(C=>({...C,[e]:!0}));const f=t!==void 0?t:r[e],g=M(e,f);if(c(g?C=>({...C,[e]:g}):C=>{const s={...C};return delete s[e],s}),e==="email"){const s=(t!==void 0?t:r.email||"").trim();if(I==="edit"&&s.toLowerCase()===(l||"").trim().toLowerCase()){E(null);return}if(F(s)&&s!==b){const n=await ee(s);k(s),E(n),n===!1&&c(L=>({...L,email:"A user with this email address is already a member of your company."}))}}},submit:async()=>{const e=["firstName","lastName","email","roleId"],t={};for(const s of e){const n=M(s,r[s]);n&&(t[s]=n)}if(c(t),p({firstName:!0,lastName:!0,email:!0,roleId:!0}),Object.keys(t).length||_===!1){setTimeout(()=>{const s=document.querySelector(".company-user-form__content .dropin-field__hint--error");if(s){const n=s.closest(".dropin-field");if(n){n.scrollIntoView({behavior:"smooth",block:"center"});const L=n.querySelector("input, select");L&&L.focus()}}},100);return}const f=`${r.firstName||""} ${r.lastName||""}`.trim()||r.email||"",C=i||W({id:r.roleId})?"ACTIVE":r.status;try{if(I==="add"){const s=await Y({email:r.email||"",firstName:r.firstName||"",lastName:r.lastName||"",jobTitle:r.jobTitle||"",telephone:r.telephone||"",roleId:r.roleId,status:C,targetId:T??null});if(!s){const n=u.createUserError;N?N(n):j(n);return}w({label:f,structureId:s.structureId,entityId:s.id,type:"user"}),v&&v(u.createUserSuccess)}else h&&(await Z({id:h,email:r.email||"",firstName:r.firstName||"",lastName:r.lastName||"",jobTitle:r.jobTitle||"",telephone:r.telephone||"",status:C,roleId:r.roleId}),w({label:f,entityId:h,type:"user"}),v&&v(u.updateUserSuccess))}catch(s){const n=s instanceof Error?s.message:u.saveUserError;N?N(n):j(n)}},isCompanyAdmin:i,generalError:y}}const fe=D(({mode:q,entityId:I,parentStructureId:h,permissions:T,onSaved:w,onCancel:N,onError:v,onSuccess:u})=>{const r=(T==null?void 0:T.canEditUsers)??!1,{roles:U,isLoading:x}=ae(),{values:c,errors:m,touched:p,loading:V,setValue:R,onBlur:y,submit:j,isCompanyAdmin:_,generalError:E}=re({mode:q,entityId:I,parentStructureId:h,onSaved:w,onError:v?a=>{v(a),N()}:void 0,onSuccess:u}),[b,k]=d(!1),l=G({addUser:"Company.CompanyStructure.shared.titles.addUser",editUser:"Company.CompanyStructure.shared.titles.editUser",jobTitle:"Company.CompanyStructure.shared.fields.jobTitle",userRole:"Company.CompanyStructure.shared.fields.userRole",firstName:"Company.CompanyStructure.shared.fields.firstName",lastName:"Company.CompanyStructure.shared.fields.lastName",email:"Company.CompanyStructure.shared.fields.email",workPhoneNumber:"Company.CompanyStructure.shared.fields.workPhoneNumber",status:"Company.CompanyStructure.shared.fields.status",selectRole:"Company.CompanyStructure.shared.options.selectRole",active:"Company.CompanyStructure.shared.options.active",inactive:"Company.CompanyStructure.shared.options.inactive",companyAdministrator:"Company.CompanyStructure.shared.options.companyAdministrator",save:"Company.CompanyStructure.shared.buttons.save",cancel:"Company.CompanyStructure.shared.buttons.cancel"});return P("div",{children:[o("h3",{className:"acm-structure-panel__title",children:q==="add"?l.addUser:l.editUser}),P(J,{variant:"secondary",className:`company-user-form__card ${b?"is-working":""}`,children:[!v&&E?o(K,{className:"company-user-form__notification",type:"error",variant:"secondary",heading:E}):null,b?o("div",{className:"company-user-form__overlay","aria-live":"polite",children:o(Q,{size:"small"})}):null,V||x?o(te,{}):P("div",{className:"company-user-form__content",children:[o(S,{label:l.jobTitle,className:"acm-structure-panel__field",error:p.jobTitle&&m.jobTitle?m.jobTitle:void 0,children:o(A,{name:"job_title",type:"text",value:c.jobTitle||"",onBlur:a=>{const i=a.target;y("jobTitle",i.value)},variant:"primary",size:"medium"})}),o(S,{label:l.userRole,required:!0,className:"acm-structure-panel__field",error:!_&&p.roleId&&m.roleId?m.roleId:void 0,disabled:_,children:_?o(z,{name:"role",value:"MA==",options:[{value:"MA==",text:l.companyAdministrator}]}):o(z,{name:"role",value:c.roleId||"placeholder",onChange:a=>{var i,B;return R("roleId",String(((i=a==null?void 0:a.target)==null?void 0:i.value)==="placeholder"?"":((B=a==null?void 0:a.target)==null?void 0:B.value)??""))},onBlur:a=>{const i=a.target;y("roleId",i.value==="placeholder"?"":i.value)},options:[{value:"placeholder",text:l.selectRole,disabled:!0},...U.map(a=>({value:a.id,text:a.name}))]})}),o(S,{label:l.firstName,required:!0,className:"acm-structure-panel__field",error:p.firstName&&m.firstName?m.firstName:void 0,children:o(A,{name:"first_name",type:"text",value:c.firstName,onBlur:a=>{const i=a.target;y("firstName",i.value)},variant:"primary",size:"medium"})}),o(S,{label:l.lastName,required:!0,className:"acm-structure-panel__field",error:p.lastName&&m.lastName?m.lastName:void 0,children:o(A,{name:"last_name",type:"text",value:c.lastName,onBlur:a=>{const i=a.target;y("lastName",i.value)},variant:"primary",size:"medium"})}),o(S,{label:l.email,required:!0,className:"acm-structure-panel__field",error:p.email&&m.email?m.email:void 0,children:o(A,{name:"email",type:"email",value:c.email,onBlur:a=>{const i=a.target;y("email",i.value)},placeholder:"jdoe@example.com",variant:"primary",size:"medium"})}),o(S,{label:l.workPhoneNumber,className:"acm-structure-panel__field",error:p.telephone&&m.telephone?m.telephone:void 0,children:o(A,{name:"telephone",type:"text",value:c.telephone||"",onBlur:a=>{const i=a.target;y("telephone",i.value)},variant:"primary",size:"medium"})}),o(S,{label:l.status,className:"acm-structure-panel__field",disabled:_||!r,children:o(z,{name:"status",value:c.status,onChange:a=>{var i;return R("status",String(((i=a==null?void 0:a.target)==null?void 0:i.value)??"ACTIVE"))},options:[{value:"ACTIVE",text:l.active},{value:"INACTIVE",text:l.inactive}]})})]})]}),V||x?null:P("div",{className:"acm-structure-modal__actions",children:[o(O,{type:"button",variant:"primary",disabled:b||!r,onClick:async()=>{if(!b){k(!0);try{await j()}finally{k(!1)}}},children:l.save}),o(O,{type:"button",variant:"secondary",disabled:b,onClick:N,children:l.cancel})]})]})});export{fe as C};
|
|
4
4
|
//# sourceMappingURL=CompanyUserForm.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{f as R,h as z}from"./network-error.js";const G=c=>{var r,n,l,e,u,d,t,a,_,y,o,g,b,v,f,C,h,p,i,T,E,I,P,D;return{credit:{available_credit:{currency:((e=(l=(n=(r=c==null?void 0:c.data)==null?void 0:r.company)==null?void 0:n.credit)==null?void 0:l.available_credit)==null?void 0:e.currency)||"",value:((a=(t=(d=(u=c==null?void 0:c.data)==null?void 0:u.company)==null?void 0:d.credit)==null?void 0:t.available_credit)==null?void 0:a.value)||0},credit_limit:{currency:((g=(o=(y=(_=c==null?void 0:c.data)==null?void 0:_.company)==null?void 0:y.credit)==null?void 0:o.credit_limit)==null?void 0:g.currency)||"",value:((C=(f=(v=(b=c==null?void 0:c.data)==null?void 0:b.company)==null?void 0:v.credit)==null?void 0:f.credit_limit)==null?void 0:C.value)||0},outstanding_balance:{currency:((T=(i=(p=(h=c==null?void 0:c.data)==null?void 0:h.company)==null?void 0:p.credit)==null?void 0:i.outstanding_balance)==null?void 0:T.currency)||"",value:((D=(P=(I=(E=c==null?void 0:c.data)==null?void 0:E.company)==null?void 0:I.credit)==null?void 0:P.outstanding_balance)==null?void 0:D.value)||0}}}},N=c=>{var n,l,e,u,d,t;const r=(l=(n=c==null?void 0:c.data)==null?void 0:n.company)==null?void 0:l.credit_history;return{items:((e=r==null?void 0:r.items)==null?void 0:e.map(a=>{var _,y,o,g,b,v,f,C,h,p,i,T,E,I,P,D;return{amount:{currency:((_=a==null?void 0:a.amount)==null?void 0:_.currency)||"",value:((y=a==null?void 0:a.amount)==null?void 0:y.value)||0},balance:{availableCredit:{currency:((g=(o=a==null?void 0:a.balance)==null?void 0:o.available_credit)==null?void 0:g.currency)||"",value:((v=(b=a==null?void 0:a.balance)==null?void 0:b.available_credit)==null?void 0:v.value)||0},creditLimit:{currency:((C=(f=a==null?void 0:a.balance)==null?void 0:f.credit_limit)==null?void 0:C.currency)||"",value:((p=(h=a==null?void 0:a.balance)==null?void 0:h.credit_limit)==null?void 0:p.value)||0},outstandingBalance:{currency:((T=(i=a==null?void 0:a.balance)==null?void 0:i.outstanding_balance)==null?void 0:T.currency)||"",value:((I=(E=a==null?void 0:a.balance)==null?void 0:E.outstanding_balance)==null?void 0:I.value)||0}},customReferenceNumber:(a==null?void 0:a.custom_reference_number)||void 0,date:(a==null?void 0:a.date)||"",type:(a==null?void 0:a.
|
|
3
|
+
import{f as R,h as z}from"./network-error.js";const G=c=>{var r,n,l,e,u,d,t,a,_,y,o,g,b,v,f,C,h,p,i,T,E,I,P,D;return{credit:{available_credit:{currency:((e=(l=(n=(r=c==null?void 0:c.data)==null?void 0:r.company)==null?void 0:n.credit)==null?void 0:l.available_credit)==null?void 0:e.currency)||"",value:((a=(t=(d=(u=c==null?void 0:c.data)==null?void 0:u.company)==null?void 0:d.credit)==null?void 0:t.available_credit)==null?void 0:a.value)||0},credit_limit:{currency:((g=(o=(y=(_=c==null?void 0:c.data)==null?void 0:_.company)==null?void 0:y.credit)==null?void 0:o.credit_limit)==null?void 0:g.currency)||"",value:((C=(f=(v=(b=c==null?void 0:c.data)==null?void 0:b.company)==null?void 0:v.credit)==null?void 0:f.credit_limit)==null?void 0:C.value)||0},outstanding_balance:{currency:((T=(i=(p=(h=c==null?void 0:c.data)==null?void 0:h.company)==null?void 0:p.credit)==null?void 0:i.outstanding_balance)==null?void 0:T.currency)||"",value:((D=(P=(I=(E=c==null?void 0:c.data)==null?void 0:E.company)==null?void 0:I.credit)==null?void 0:P.outstanding_balance)==null?void 0:D.value)||0}}}},N=c=>{var n,l,e,u,d,t;const r=(l=(n=c==null?void 0:c.data)==null?void 0:n.company)==null?void 0:l.credit_history;return{items:((e=r==null?void 0:r.items)==null?void 0:e.map(a=>{var _,y,o,g,b,v,f,C,h,p,i,T,E,I,P,D;return{amount:{currency:((_=a==null?void 0:a.amount)==null?void 0:_.currency)||"",value:((y=a==null?void 0:a.amount)==null?void 0:y.value)||0},balance:{availableCredit:{currency:((g=(o=a==null?void 0:a.balance)==null?void 0:o.available_credit)==null?void 0:g.currency)||"",value:((v=(b=a==null?void 0:a.balance)==null?void 0:b.available_credit)==null?void 0:v.value)||0},creditLimit:{currency:((C=(f=a==null?void 0:a.balance)==null?void 0:f.credit_limit)==null?void 0:C.currency)||"",value:((p=(h=a==null?void 0:a.balance)==null?void 0:h.credit_limit)==null?void 0:p.value)||0},outstandingBalance:{currency:((T=(i=a==null?void 0:a.balance)==null?void 0:i.outstanding_balance)==null?void 0:T.currency)||"",value:((I=(E=a==null?void 0:a.balance)==null?void 0:E.outstanding_balance)==null?void 0:I.value)||0}},customReferenceNumber:(a==null?void 0:a.custom_reference_number)||void 0,date:(a==null?void 0:a.date)||"",type:(a==null?void 0:a.type)||"",updatedBy:{name:((P=a==null?void 0:a.updated_by)==null?void 0:P.name)||"",type:((D=a==null?void 0:a.updated_by)==null?void 0:D.type)||""}}}))||[],pageInfo:{currentPage:((u=r==null?void 0:r.page_info)==null?void 0:u.current_page)||1,pageSize:((d=r==null?void 0:r.page_info)==null?void 0:d.page_size)||20,totalPages:((t=r==null?void 0:r.page_info)==null?void 0:t.total_pages)||0},totalCount:(r==null?void 0:r.total_count)||0}},S=`
|
|
4
4
|
query GET_COMPANY_CREDIT
|
|
5
5
|
{
|
|
6
6
|
company {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCompanyCreditHistory.js","sources":["/@dropins/storefront-company-management/src/data/transforms/transform-company-credit.ts","/@dropins/storefront-company-management/src/data/transforms/transform-company-credit-history.ts","/@dropins/storefront-company-management/src/api/getCompanyCredit/graphql/getCompanyCredit.graphql.ts","/@dropins/storefront-company-management/src/api/getCompanyCredit/getCompanyCredit.ts","/@dropins/storefront-company-management/src/api/getCompanyCreditHistory/graphql/getCompanyCreditHistory.graphql.ts","/@dropins/storefront-company-management/src/api/getCompanyCreditHistory/getCompanyCreditHistory.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CompanyCreditResponse } from '@/company-management/types/api/getCompanyCredit.types';\nimport { CompanyCreditInfo } from '@/company-management/data/models/company-credit-info';\n\nexport const transformCompanyCredit = (\n response: CompanyCreditResponse\n): CompanyCreditInfo => {\n return {\n credit: {\n available_credit: {\n currency: response?.data?.company?.credit?.available_credit?.currency || '',\n value: response?.data?.company?.credit?.available_credit?.value || 0,\n },\n credit_limit: {\n currency: response?.data?.company?.credit?.credit_limit?.currency || '',\n value: response?.data?.company?.credit?.credit_limit?.value || 0,\n },\n outstanding_balance: {\n currency: response?.data?.company?.credit?.outstanding_balance?.currency || '',\n value: response?.data?.company?.credit?.outstanding_balance?.value || 0,\n },\n },\n };\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CompanyCreditHistoryResponse } from '@/company-management/types/api/getCompanyCreditHistory.types';\nimport { CompanyCreditHistory } from '@/company-management/data/models/company-credit-history';\n\nexport const transformCompanyCreditHistory = (\n response: CompanyCreditHistoryResponse\n): CompanyCreditHistory => {\n const creditHistory = response?.data?.company?.credit_history;\n\n return {\n items: creditHistory?.items?.map(item => ({\n amount: {\n currency: item?.amount?.currency || '',\n value: item?.amount?.value || 0,\n },\n balance: {\n availableCredit: {\n currency: item?.balance?.available_credit?.currency || '',\n value: item?.balance?.available_credit?.value || 0,\n },\n creditLimit: {\n currency: item?.balance?.credit_limit?.currency || '',\n value: item?.balance?.credit_limit?.value || 0,\n },\n outstandingBalance: {\n currency: item?.balance?.outstanding_balance?.currency || '',\n value: item?.balance?.outstanding_balance?.value || 0,\n },\n },\n customReferenceNumber: item?.custom_reference_number || undefined,\n date: item?.date || '',\n type: item?.operation_type || '',\n updatedBy: {\n name: item?.updated_by?.name || '',\n type: item?.updated_by?.type || '',\n },\n })) || [],\n pageInfo: {\n currentPage: creditHistory?.page_info?.current_page || 1,\n pageSize: creditHistory?.page_info?.page_size || 20,\n totalPages: creditHistory?.page_info?.total_pages || 0,\n },\n totalCount: creditHistory?.total_count || 0,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const GET_COMPANY_CREDIT = /* GraphQL */ `\n query GET_COMPANY_CREDIT \n {\n company {\n credit {\n available_credit {\n currency\n value\n }\n credit_limit {\n currency\n value\n }\n outstanding_balance {\n currency\n value\n }\n }\n }\n }\n`;","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { GET_COMPANY_CREDIT } from \"./graphql/getCompanyCredit.graphql\";\nimport { CompanyCreditResponse } from '@/company-management/types/api/getCompanyCredit.types';\nimport { transformCompanyCredit } from '@/company-management/data/transforms';\nimport { handleNetworkError } from '@/company-management/lib';\nimport { CompanyCreditInfo } from '@/company-management/data/models';\nimport { fetchGraphQl } from '../fetch-graphql';\n\nexport const getCompanyCredit = async (): Promise<CompanyCreditInfo | null> => {\n\n return await fetchGraphQl(GET_COMPANY_CREDIT, {\n method: 'GET',\n cache: 'no-cache',\n })\n .then((response: CompanyCreditResponse) => {\n if (response.errors?.length) {\n return null;\n }\n\n const transformedData = transformCompanyCredit(response);\n\n return transformedData;\n })\n .catch(handleNetworkError);\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const GET_COMPANY_CREDIT_HISTORY = /* GraphQL */ `\n query GET_COMPANY_CREDIT_HISTORY($filter: CompanyCreditHistoryFilterInput, $pageSize: Int, $currentPage: Int) {\n company {\n credit_history(\n filter: $filter\n pageSize: $pageSize\n currentPage: $currentPage\n ) {\n items {\n amount {\n currency\n value\n }\n balance {\n available_credit {\n currency\n value\n }\n credit_limit {\n currency\n value\n }\n outstanding_balance {\n currency\n value\n }\n }\n custom_reference_number\n date\n type\n updated_by {\n name\n type\n }\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n }\n }\n`;","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { GET_COMPANY_CREDIT_HISTORY } from \"./graphql/getCompanyCreditHistory.graphql\";\nimport { CompanyCreditHistoryResponse } from '@/company-management/types/api/getCompanyCreditHistory.types';\nimport { GetCompanyCreditHistoryParams } from '@/company-management/types/api/getCompanyCreditHistoryParams.types';\nimport { transformCompanyCreditHistory } from '@/company-management/data/transforms';\nimport { handleNetworkError } from '@/company-management/lib';\nimport { CompanyCreditHistory } from '@/company-management/data/models';\nimport { fetchGraphQl } from '../fetch-graphql';\n\nexport const getCompanyCreditHistory = async (params: GetCompanyCreditHistoryParams = {}): Promise<CompanyCreditHistory | null> => {\n const { filter, pageSize = 20, currentPage = 1 } = params;\n\n // Transform camelCase filter to snake_case for GraphQL\n const graphqlFilter = filter ? {\n custom_reference_number: filter.customReferenceNumber,\n operation_type: filter.operationType,\n updated_by: filter.updatedBy,\n } : null;\n\n return await fetchGraphQl(GET_COMPANY_CREDIT_HISTORY, {\n method: 'GET',\n cache: 'no-cache',\n variables: {\n filter: graphqlFilter,\n pageSize,\n currentPage,\n },\n })\n .then((response: CompanyCreditHistoryResponse) => {\n if (response.errors?.length) {\n return null;\n }\n\n const transformedData = transformCompanyCreditHistory(response);\n\n return transformedData;\n })\n .catch(handleNetworkError);\n};\n"],"names":["transformCompanyCredit","response","_d","_c","_b","_a","_h","_g","_f","_e","_l","_k","_j","_i","_p","_o","_n","_m","_t","_s","_r","_q","_x","_w","_v","_u","transformCompanyCreditHistory","creditHistory","item","GET_COMPANY_CREDIT","getCompanyCredit","fetchGraphQl","handleNetworkError","GET_COMPANY_CREDIT_HISTORY","getCompanyCreditHistory","params","filter","pageSize","currentPage","graphqlFilter"],"mappings":"8CAoBO,MAAMA,EACXC,GACsB,qDACtB,MAAO,CACL,OAAQ,CACN,iBAAkB,CAChB,WAAUC,GAAAC,GAAAC,GAAAC,EAAAJ,GAAA,YAAAA,EAAU,OAAV,YAAAI,EAAgB,UAAhB,YAAAD,EAAyB,SAAzB,YAAAD,EAAiC,mBAAjC,YAAAD,EAAmD,WAAY,GACzE,QAAOI,GAAAC,GAAAC,GAAAC,EAAAR,GAAA,YAAAA,EAAU,OAAV,YAAAQ,EAAgB,UAAhB,YAAAD,EAAyB,SAAzB,YAAAD,EAAiC,mBAAjC,YAAAD,EAAmD,QAAS,CAAA,EAErE,aAAc,CACZ,WAAUI,GAAAC,GAAAC,GAAAC,EAAAZ,GAAA,YAAAA,EAAU,OAAV,YAAAY,EAAgB,UAAhB,YAAAD,EAAyB,SAAzB,YAAAD,EAAiC,eAAjC,YAAAD,EAA+C,WAAY,GACrE,QAAOI,GAAAC,GAAAC,GAAAC,EAAAhB,GAAA,YAAAA,EAAU,OAAV,YAAAgB,EAAgB,UAAhB,YAAAD,EAAyB,SAAzB,YAAAD,EAAiC,eAAjC,YAAAD,EAA+C,QAAS,CAAA,EAEjE,oBAAqB,CACnB,WAAUI,GAAAC,GAAAC,GAAAC,EAAApB,GAAA,YAAAA,EAAU,OAAV,YAAAoB,EAAgB,UAAhB,YAAAD,EAAyB,SAAzB,YAAAD,EAAiC,sBAAjC,YAAAD,EAAsD,WAAY,GAC5E,QAAOI,GAAAC,GAAAC,GAAAC,EAAAxB,GAAA,YAAAA,EAAU,OAAV,YAAAwB,EAAgB,UAAhB,YAAAD,EAAyB,SAAzB,YAAAD,EAAiC,sBAAjC,YAAAD,EAAsD,QAAS,CAAA,CACxE,CACF,CAEJ,ECnBaI,EACXzB,GACyB,iBACzB,MAAM0B,GAAgBvB,GAAAC,EAAAJ,GAAA,YAAAA,EAAU,OAAV,YAAAI,EAAgB,UAAhB,YAAAD,EAAyB,eAE/C,MAAO,CACL,QAAOD,EAAAwB,GAAA,YAAAA,EAAe,QAAf,YAAAxB,EAAsB,IAAIyB,GAAA,qCAAS,OACxC,OAAQ,CACN,WAAUvB,EAAAuB,GAAA,YAAAA,EAAM,SAAN,YAAAvB,EAAc,WAAY,GACpC,QAAOD,EAAAwB,GAAA,YAAAA,EAAM,SAAN,YAAAxB,EAAc,QAAS,CAAA,EAEhC,QAAS,CACP,gBAAiB,CACf,WAAUF,GAAAC,EAAAyB,GAAA,YAAAA,EAAM,UAAN,YAAAzB,EAAe,mBAAf,YAAAD,EAAiC,WAAY,GACvD,QAAOM,GAAAC,EAAAmB,GAAA,YAAAA,EAAM,UAAN,YAAAnB,EAAe,mBAAf,YAAAD,EAAiC,QAAS,CAAA,EAEnD,YAAa,CACX,WAAUF,GAAAC,EAAAqB,GAAA,YAAAA,EAAM,UAAN,YAAArB,EAAe,eAAf,YAAAD,EAA6B,WAAY,GACnD,QAAOM,GAAAC,EAAAe,GAAA,YAAAA,EAAM,UAAN,YAAAf,EAAe,eAAf,YAAAD,EAA6B,QAAS,CAAA,EAE/C,mBAAoB,CAClB,WAAUF,GAAAC,EAAAiB,GAAA,YAAAA,EAAM,UAAN,YAAAjB,EAAe,sBAAf,YAAAD,EAAoC,WAAY,GAC1D,QAAOM,GAAAC,EAAAW,GAAA,YAAAA,EAAM,UAAN,YAAAX,EAAe,sBAAf,YAAAD,EAAoC,QAAS,CAAA,CACtD,EAEF,uBAAuBY,GAAA,YAAAA,EAAM,0BAA2B,OACxD,MAAMA,GAAA,YAAAA,EAAM,OAAQ,GACpB,MAAMA,GAAA,YAAAA,EAAM,iBAAkB,GAC9B,UAAW,CACT,OAAMb,EAAAa,GAAA,YAAAA,EAAM,aAAN,YAAAb,EAAkB,OAAQ,GAChC,OAAMD,EAAAc,GAAA,YAAAA,EAAM,aAAN,YAAAd,EAAkB,OAAQ,EAAA,CAClC,MACK,CAAA,EACP,SAAU,CACR,cAAaZ,EAAAyB,GAAA,YAAAA,EAAe,YAAf,YAAAzB,EAA0B,eAAgB,EACvD,WAAUO,EAAAkB,GAAA,YAAAA,EAAe,YAAf,YAAAlB,EAA0B,YAAa,GACjD,aAAYD,EAAAmB,GAAA,YAAAA,EAAe,YAAf,YAAAnB,EAA0B,cAAe,CAAA,EAEvD,YAAYmB,GAAA,YAAAA,EAAe,cAAe,CAAA,CAE9C,EC3CaE,EAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECOnCC,EAAmB,SAEvB,MAAMC,EAAaF,EAAoB,CAC5C,OAAQ,MACR,MAAO,UAAA,CACR,EACE,KAAM5B,GAAoC,OACzC,OAAII,EAAAJ,EAAS,SAAT,MAAAI,EAAiB,OACZ,KAGeL,EAAuBC,CAAQ,CAGzD,CAAC,EACA,MAAM+B,CAAkB,ECtBhBC,EAA2C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECQ3CC,EAA0B,MAAOC,EAAwC,KAA6C,CACjI,KAAM,CAAE,OAAAC,EAAQ,SAAAC,EAAW,GAAI,YAAAC,EAAc,GAAMH,EAG7CI,EAAgBH,EAAS,CAC7B,wBAAyBA,EAAO,sBAChC,eAAgBA,EAAO,cACvB,WAAYA,EAAO,SAAA,EACjB,KAEJ,OAAO,MAAML,EAAaE,EAA4B,CACpD,OAAQ,MACR,MAAO,WACP,UAAW,CACT,OAAQM,EACR,SAAAF,EACA,YAAAC,CAAA,CACF,CACD,EACE,KAAMrC,GAA2C,OAChD,OAAII,EAAAJ,EAAS,SAAT,MAAAI,EAAiB,OACZ,KAGeqB,EAA8BzB,CAAQ,CAGhE,CAAC,EACA,MAAM+B,CAAkB,CAC7B"}
|
|
1
|
+
{"version":3,"file":"getCompanyCreditHistory.js","sources":["/@dropins/storefront-company-management/src/data/transforms/transform-company-credit.ts","/@dropins/storefront-company-management/src/data/transforms/transform-company-credit-history.ts","/@dropins/storefront-company-management/src/api/getCompanyCredit/graphql/getCompanyCredit.graphql.ts","/@dropins/storefront-company-management/src/api/getCompanyCredit/getCompanyCredit.ts","/@dropins/storefront-company-management/src/api/getCompanyCreditHistory/graphql/getCompanyCreditHistory.graphql.ts","/@dropins/storefront-company-management/src/api/getCompanyCreditHistory/getCompanyCreditHistory.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CompanyCreditResponse } from '@/company-management/types/api/getCompanyCredit.types';\nimport { CompanyCreditInfo } from '@/company-management/data/models/company-credit-info';\n\nexport const transformCompanyCredit = (\n response: CompanyCreditResponse\n): CompanyCreditInfo => {\n return {\n credit: {\n available_credit: {\n currency: response?.data?.company?.credit?.available_credit?.currency || '',\n value: response?.data?.company?.credit?.available_credit?.value || 0,\n },\n credit_limit: {\n currency: response?.data?.company?.credit?.credit_limit?.currency || '',\n value: response?.data?.company?.credit?.credit_limit?.value || 0,\n },\n outstanding_balance: {\n currency: response?.data?.company?.credit?.outstanding_balance?.currency || '',\n value: response?.data?.company?.credit?.outstanding_balance?.value || 0,\n },\n },\n };\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CompanyCreditHistoryResponse } from '@/company-management/types/api/getCompanyCreditHistory.types';\nimport { CompanyCreditHistory } from '@/company-management/data/models/company-credit-history';\n\nexport const transformCompanyCreditHistory = (\n response: CompanyCreditHistoryResponse\n): CompanyCreditHistory => {\n const creditHistory = response?.data?.company?.credit_history;\n\n return {\n items: creditHistory?.items?.map(item => ({\n amount: {\n currency: item?.amount?.currency || '',\n value: item?.amount?.value || 0,\n },\n balance: {\n availableCredit: {\n currency: item?.balance?.available_credit?.currency || '',\n value: item?.balance?.available_credit?.value || 0,\n },\n creditLimit: {\n currency: item?.balance?.credit_limit?.currency || '',\n value: item?.balance?.credit_limit?.value || 0,\n },\n outstandingBalance: {\n currency: item?.balance?.outstanding_balance?.currency || '',\n value: item?.balance?.outstanding_balance?.value || 0,\n },\n },\n customReferenceNumber: item?.custom_reference_number || undefined,\n date: item?.date || '',\n type: item?.type || '',\n updatedBy: {\n name: item?.updated_by?.name || '',\n type: item?.updated_by?.type || '',\n },\n })) || [],\n pageInfo: {\n currentPage: creditHistory?.page_info?.current_page || 1,\n pageSize: creditHistory?.page_info?.page_size || 20,\n totalPages: creditHistory?.page_info?.total_pages || 0,\n },\n totalCount: creditHistory?.total_count || 0,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const GET_COMPANY_CREDIT = /* GraphQL */ `\n query GET_COMPANY_CREDIT \n {\n company {\n credit {\n available_credit {\n currency\n value\n }\n credit_limit {\n currency\n value\n }\n outstanding_balance {\n currency\n value\n }\n }\n }\n }\n`;","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { GET_COMPANY_CREDIT } from \"./graphql/getCompanyCredit.graphql\";\nimport { CompanyCreditResponse } from '@/company-management/types/api/getCompanyCredit.types';\nimport { transformCompanyCredit } from '@/company-management/data/transforms';\nimport { handleNetworkError } from '@/company-management/lib';\nimport { CompanyCreditInfo } from '@/company-management/data/models';\nimport { fetchGraphQl } from '../fetch-graphql';\n\nexport const getCompanyCredit = async (): Promise<CompanyCreditInfo | null> => {\n\n return await fetchGraphQl(GET_COMPANY_CREDIT, {\n method: 'GET',\n cache: 'no-cache',\n })\n .then((response: CompanyCreditResponse) => {\n if (response.errors?.length) {\n return null;\n }\n\n const transformedData = transformCompanyCredit(response);\n\n return transformedData;\n })\n .catch(handleNetworkError);\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const GET_COMPANY_CREDIT_HISTORY = /* GraphQL */ `\n query GET_COMPANY_CREDIT_HISTORY($filter: CompanyCreditHistoryFilterInput, $pageSize: Int, $currentPage: Int) {\n company {\n credit_history(\n filter: $filter\n pageSize: $pageSize\n currentPage: $currentPage\n ) {\n items {\n amount {\n currency\n value\n }\n balance {\n available_credit {\n currency\n value\n }\n credit_limit {\n currency\n value\n }\n outstanding_balance {\n currency\n value\n }\n }\n custom_reference_number\n date\n type\n updated_by {\n name\n type\n }\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n }\n }\n`;","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { GET_COMPANY_CREDIT_HISTORY } from \"./graphql/getCompanyCreditHistory.graphql\";\nimport { CompanyCreditHistoryResponse } from '@/company-management/types/api/getCompanyCreditHistory.types';\nimport { GetCompanyCreditHistoryParams } from '@/company-management/types/api/getCompanyCreditHistoryParams.types';\nimport { transformCompanyCreditHistory } from '@/company-management/data/transforms';\nimport { handleNetworkError } from '@/company-management/lib';\nimport { CompanyCreditHistory } from '@/company-management/data/models';\nimport { fetchGraphQl } from '../fetch-graphql';\n\nexport const getCompanyCreditHistory = async (params: GetCompanyCreditHistoryParams = {}): Promise<CompanyCreditHistory | null> => {\n const { filter, pageSize = 20, currentPage = 1 } = params;\n\n // Transform camelCase filter to snake_case for GraphQL\n const graphqlFilter = filter ? {\n custom_reference_number: filter.customReferenceNumber,\n operation_type: filter.operationType,\n updated_by: filter.updatedBy,\n } : null;\n\n return await fetchGraphQl(GET_COMPANY_CREDIT_HISTORY, {\n method: 'GET',\n cache: 'no-cache',\n variables: {\n filter: graphqlFilter,\n pageSize,\n currentPage,\n },\n })\n .then((response: CompanyCreditHistoryResponse) => {\n if (response.errors?.length) {\n return null;\n }\n\n const transformedData = transformCompanyCreditHistory(response);\n\n return transformedData;\n })\n .catch(handleNetworkError);\n};\n"],"names":["transformCompanyCredit","response","_d","_c","_b","_a","_h","_g","_f","_e","_l","_k","_j","_i","_p","_o","_n","_m","_t","_s","_r","_q","_x","_w","_v","_u","transformCompanyCreditHistory","creditHistory","item","GET_COMPANY_CREDIT","getCompanyCredit","fetchGraphQl","handleNetworkError","GET_COMPANY_CREDIT_HISTORY","getCompanyCreditHistory","params","filter","pageSize","currentPage","graphqlFilter"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{jsx as e,jsxs as h,Fragment as O}from"@dropins/tools/preact-jsx-runtime.js";import{useState as g,useRef as _,useMemo as k,useCallback as z,useEffect as F}from"@dropins/tools/preact-hooks.js";/* empty css */import{Card as I,InLineAlert as T,Price as D,Table as Z,Button as w,Picker as U}from"@dropins/tools/components.js";import{events as G}from"@dropins/tools/event-bus.js";import{g as $,a as q}from"../chunks/getCompanyCreditHistory.js";import{e as J,f as K}from"../chunks/CompanyLoaders.js";import{useText as j}from"@dropins/tools/i18n.js";import{classes as Q}from"@dropins/tools/lib.js";import"../chunks/network-error.js";import"@dropins/tools/fetch-graphql.js";const V=20,A=1,W=({initialParams:c={},translations:m})=>{const[i,a]=g([]),[o,d]=g(!1),[t,y]=g(c.currentPage||A),[f,v]=g(c.pageSize||V),[H,p]=g(0),[u,P]=g(1),[N,L]=g(""),b=_(m);b.current=m;const n=_(c),s=k(()=>({...n.current,currentPage:t,pageSize:f}),[t,f]),C=z(async()=>{var r;d(!0);try{const l=await $(s);l?(a(l.items),p(l.totalCount||l.items.length),P(((r=l.pageInfo)==null?void 0:r.totalPages)||1),L(b.current.ariaDataLoaded.replace("{count}",l.items.length.toString()))):(a([]),p(0),P(1),L(b.current.ariaDataError))}catch(l){console.error("Failed to load company credit history:",l),a([]),p(0),P(1),L(b.current.ariaDataError)}finally{d(!1)}},[s]);F(()=>{C()},[C]);const B=z(r=>{let l;if(typeof r=="string")l=r;else if("target"in r&&r.target&&"value"in r.target)l=r.target.value;else return;const R=parseInt(l,10);isNaN(R)||(v(R),y(A))},[]),S=z(()=>{t>1&&y(t-1)},[t]),x=z(()=>{t<u&&y(t+1)},[t,u]),E=z(r=>{r>=1&&r<=u&&r!==t&&y(r)},[t,u]),M=z(async()=>{await C()},[C]);return{items:i,currentPage:t,pageSize:f,totalItems:H,totalPages:u,loading:o,announcement:N,handlePageSizeChange:B,handlePreviousPage:S,handleNextPage:x,handlePageChange:E,refreshCreditHistory:M}},X=({className:c,...m})=>{var u,P,N,L,b,n,s,C,B;const i=j({creditAvailable:"Company.CompanyCredit.creditAvailable",creditLimit:"Company.CompanyCredit.creditLimit",outstandingBalance:"Company.CompanyCredit.outstandingBalance",noData:"Company.shared.messages.noData",loading:"Company.shared.messages.loading",loadError:"Company.CompanyCredit.messages.loadError"}),[a,o]=g(null),[d,t]=g(!1),[y,f]=g(null),v=_(!1),H=_(!1),p=z(async()=>{if(!v.current){v.current=!0,t(!0),f(null);try{const S=await q();o(S)}catch(S){console.error("Failed to load company credit:",S),f(i.loadError),o(null)}finally{t(!1),v.current=!1}}},[i.loadError]);return F(()=>{H.current||(H.current=!0,p())},[p]),F(()=>{const S=()=>{o(null),H.current=!1,p()},x=G.on("companyContext/changed",S,{eager:!0});return()=>{var E;(E=x==null?void 0:x.off)==null||E.call(x)}},[p]),d?e("div",{...m,className:c,children:e(I,{variant:"primary",className:"company-management-company-credit-loading",children:e(J,{testId:"companyCreditLoader"})})}):y?e("div",{...m,className:c,children:e(T,{heading:y,type:"error",icon:void 0,variant:"primary",className:"company-management-company-credit-error",children:e("p",{children:y})})}):e("div",{...m,className:c,children:a===null||!a.credit?e(T,{heading:i.noData,type:"error",icon:void 0,variant:"primary",className:"company-management-company-credit-error",children:e("p",{children:i.noData})}):h("div",{className:"company-management-company-credit-grid",children:[e(I,{variant:"secondary",className:"company-management-company-credit-outstanding-balance",children:h("p",{children:[i.outstandingBalance,e("br",{}),e(D,{size:"large",amount:((u=a.credit.outstanding_balance)==null?void 0:u.value)??0,currency:((P=a.credit.outstanding_balance)==null?void 0:P.currency)??"",className:(((N=a.credit.outstanding_balance)==null?void 0:N.value)??0)<0?".company-management-company-credit-grid .company-management-company-credit-negative":void 0})]})}),e(I,{variant:"secondary",className:"company-management-company-credit-available-credit",children:h("p",{children:[i.creditAvailable,e("br",{}),e(D,{size:"large",amount:((L=a.credit.available_credit)==null?void 0:L.value)??0,currency:((b=a.credit.available_credit)==null?void 0:b.currency)??"",className:(((n=a.credit.available_credit)==null?void 0:n.value)??0)<0?".company-management-company-credit-grid .company-management-company-credit-negative":void 0})]})}),e(I,{variant:"secondary",className:"company-management-company-credit-credit-limit",children:h("p",{children:[i.creditLimit,e("br",{}),e(D,{size:"large",amount:((s=a.credit.credit_limit)==null?void 0:s.value)??0,currency:((C=a.credit.credit_limit)==null?void 0:C.currency)??"",className:(((B=a.credit.credit_limit)==null?void 0:B.value)??0)<0?".company-management-company-credit-grid .company-management-company-credit-negative":void 0})]})})]})})},Y=[{text:"20",value:"20"},{text:"30",value:"30"},{text:"50",value:"50"},{text:"100",value:"100"},{text:"200",value:"200"}],aa=({className:c,initialParams:m={},...i})=>{const a=j({loading:"Company.shared.messages.loading",noData:"Company.shared.messages.noData",error:"Company.shared.messages.error",dateColumn:"Company.CompanyCreditHistory.columns.date",operationColumn:"Company.CompanyCreditHistory.columns.operation",amountColumn:"Company.CompanyCreditHistory.columns.amount",outstandingBalanceColumn:"Company.CompanyCreditHistory.columns.outstandingBalance",availableCreditColumn:"Company.CompanyCreditHistory.columns.availableCredit",creditLimitColumn:"Company.CompanyCreditHistory.columns.creditLimit",customReferenceColumn:"Company.CompanyCreditHistory.columns.customReference",updatedByColumn:"Company.CompanyCreditHistory.columns.updatedBy",itemsText:"Company.CompanyCreditHistory.pagination.itemsCount",itemsPerPageLabel:"Company.CompanyCreditHistory.pagination.itemsPerPage",showLabel:"Company.CompanyCreditHistory.pagination.show",perPageLabel:"Company.CompanyCreditHistory.pagination.perPage",previousPage:"Company.CompanyCreditHistory.pagination.previous",nextPage:"Company.CompanyCreditHistory.pagination.next",pageInfo:"Company.CompanyCreditHistory.pagination.pageInfo",ariaDataLoaded:"Company.CompanyCreditHistory.ariaLabels.dataLoaded",ariaDataError:"Company.CompanyCreditHistory.ariaLabels.dataError",ariaLoadingHistory:"Company.CompanyCreditHistory.ariaLabels.loadingHistory",ariaHistoryTable:"Company.CompanyCreditHistory.ariaLabels.historyTable",ariaPaginationNav:"Company.CompanyCreditHistory.ariaLabels.paginationNav",ariaPageSizeSelector:"Company.CompanyCreditHistory.ariaLabels.pageSizeSelector",ariaPreviousPageFull:"Company.CompanyCreditHistory.ariaLabels.previousPageFull",ariaNextPageFull:"Company.CompanyCreditHistory.ariaLabels.nextPageFull",ariaShowingHistory:"Company.CompanyCreditHistory.ariaLabels.showingHistory",ariaPageNavigation:"Company.CompanyCreditHistory.ariaLabels.pageNavigation"}),{items:o,loading:d,currentPage:t,pageSize:y,totalItems:f,totalPages:v,announcement:H,handlePageSizeChange:p,handlePreviousPage:u,handleNextPage:P,refreshCreditHistory:N}=W({initialParams:m,translations:{ariaDataLoaded:a.ariaDataLoaded,ariaDataError:a.ariaDataError}});F(()=>{const n=()=>{N()},s=G.on("companyContext/changed",n,{eager:!0});return()=>{var C;(C=s==null?void 0:s.off)==null||C.call(s)}},[N]);const L=k(()=>[{key:"date",label:a.dateColumn},{key:"operation",label:a.operationColumn},{key:"amount",label:a.amountColumn},{key:"outstandingBalance",label:a.outstandingBalanceColumn},{key:"availableCredit",label:a.availableCreditColumn},{key:"creditLimit",label:a.creditLimitColumn},{key:"customReference",label:a.customReferenceColumn},{key:"updatedBy",label:a.updatedByColumn}],[a.dateColumn,a.operationColumn,a.amountColumn,a.outstandingBalanceColumn,a.availableCreditColumn,a.creditLimitColumn,a.customReferenceColumn,a.updatedByColumn]),b=k(()=>o.map(n=>({date:new Date(n.date).toLocaleDateString(),operation:n.type.replace("_"," "),amount:n.amount.value===0?"":h("span",{className:`company-management-amount ${n.amount.value>=0?"company-management-amount--positive":"company-management-amount--negative"}`,children:[n.amount.value>=0?"+":"",e(D,{amount:Math.abs(n.amount.value),currency:n.amount.currency,size:"small"})]}),outstandingBalance:e(D,{amount:n.balance.outstandingBalance.value,currency:n.balance.outstandingBalance.currency,size:"small"}),availableCredit:e(D,{amount:n.balance.availableCredit.value,currency:n.balance.availableCredit.currency,size:"small"}),creditLimit:e(D,{amount:n.balance.creditLimit.value,currency:n.balance.creditLimit.currency,size:"small"}),customReference:n.customReferenceNumber||"-",updatedBy:n.updatedBy.name})),[o]);return h("section",{...i,className:Q(["company-management-company-credit-history-display",c]),children:[e("div",{className:"sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:H}),e("div",{"aria-busy":d,children:d?e("div",{className:"loadingContainer",role:"status","aria-live":"polite",children:e(K,{testId:"companyCreditHistoryLoader"})}):e(O,{children:o.length?e(Z,{className:"company-management-company-credit-history-table",columns:L,rowData:b,mobileLayout:"stacked","aria-label":a.ariaHistoryTable,summary:a.ariaShowingHistory.replace("{count}",o.length.toString())}):e("div",{className:"company-management-company-credit-history-empty",children:e("p",{children:a.noData})})})}),!d&&o.length>0&&h("nav",{"aria-label":a.ariaPaginationNav,className:"paginationContainer",children:[e("div",{"aria-live":"polite","aria-atomic":"true",children:a.itemsText.replace("{count}",f.toString())}),v>1&&h("div",{className:"paginationButtons",role:"group","aria-label":a.ariaPageNavigation,children:[e(w,{variant:"secondary",onClick:u,disabled:t===1||d,"aria-label":a.ariaPreviousPageFull.replace("{current}",t.toString()),children:a.previousPage}),e("span",{"aria-current":"page","aria-live":"polite",children:a.pageInfo.replace("{current}",t.toString()).replace("{total}",v.toString())}),e(w,{variant:"secondary",onClick:P,disabled:t===v||d,"aria-label":a.ariaNextPageFull.replace("{current}",t.toString()),children:a.nextPage})]}),h("div",{className:"pageSizeSelector",children:[e("label",{htmlFor:"page-size-select",id:"page-size-label",children:e("span",{children:a.showLabel})}),e(U,{id:"page-size-select",name:"pageSize",value:y.toString(),options:Y,handleSelect:p,"aria-labelledby":"page-size-label","aria-describedby":"page-size-description"}),e("span",{id:"page-size-description",children:a.perPageLabel})]})]})]})},ya=({creditHistoryParams:c={},showCreditHistory:m=!0,className:i,children:a,...o})=>h("section",{...o,className:i,children:[e(X,{}),m&&e(aa,{initialParams:c,style:{marginTop:"24px"}}),a]});export{ya as CompanyCredit,ya as default};
|
|
3
|
+
import{jsx as e,jsxs as L,Fragment as M}from"@dropins/tools/preact-jsx-runtime.js";import{useState as h,useRef as T,useMemo as k,useCallback as D,useEffect as R}from"@dropins/tools/preact-hooks.js";/* empty css */import{Card as I,InLineAlert as A,Price as B,Table as U,Button as _,Picker as Z}from"@dropins/tools/components.js";import{events as G}from"@dropins/tools/event-bus.js";import{g as $,a as q}from"../chunks/getCompanyCreditHistory.js";import{d as J,e as K}from"../chunks/CompanyLoaders.js";import{useText as j}from"@dropins/tools/i18n.js";import{classes as Q}from"@dropins/tools/lib.js";import"../chunks/network-error.js";import"@dropins/tools/fetch-graphql.js";const V=20,F=1,W=({initialParams:l={},translations:s})=>{const[c,a]=h([]),[m,p]=h(!1),[t,d]=h(l.currentPage||F),[u,r]=h(l.pageSize||V),[S,C]=h(0),[g,H]=h(1),[N,v]=h(""),b=T(s);b.current=s;const x=T(l),z=k(()=>({...x.current,currentPage:t,pageSize:u}),[t,u]),f=D(async()=>{var o;p(!0);try{const y=await $(z);y?(a(y.items),C(y.totalCount||y.items.length),H(((o=y.pageInfo)==null?void 0:o.totalPages)||1),v(b.current.ariaDataLoaded.replace("{count}",y.items.length.toString()))):(a([]),C(0),H(1),v(b.current.ariaDataError))}catch(y){console.error("Failed to load company credit history:",y),a([]),C(0),H(1),v(b.current.ariaDataError)}finally{p(!1)}},[z]);R(()=>{f()},[f]);const E=D(o=>{let y;if(typeof o=="string")y=o;else if("target"in o&&o.target&&"value"in o.target)y=o.target.value;else return;const w=parseInt(y,10);isNaN(w)||(r(w),d(F))},[]),n=D(()=>{t>1&&d(t-1)},[t]),i=D(()=>{t<g&&d(t+1)},[t,g]),P=D(o=>{o>=1&&o<=g&&o!==t&&d(o)},[t,g]),O=D(async()=>{await f()},[f]);return{items:c,currentPage:t,pageSize:u,totalItems:S,totalPages:g,loading:m,announcement:N,handlePageSizeChange:E,handlePreviousPage:n,handleNextPage:i,handlePageChange:P,refreshCreditHistory:O}},X=({className:l,...s})=>{var g,H,N,v,b,x,z,f,E;const c=j({creditAvailable:"Company.CompanyCredit.creditAvailable",creditLimit:"Company.CompanyCredit.creditLimit",outstandingBalance:"Company.CompanyCredit.outstandingBalance",noData:"Company.shared.messages.noData",loading:"Company.shared.messages.loading",loadError:"Company.CompanyCredit.messages.loadError"}),[a,m]=h(null),[p,t]=h(!1),[d,u]=h(null),r=T(!1),S=T(!1),C=D(async()=>{if(!r.current){r.current=!0,t(!0),u(null);try{const n=await q();m(n)}catch(n){console.error("Failed to load company credit:",n),u(c.loadError),m(null)}finally{t(!1),r.current=!1}}},[c.loadError]);return R(()=>{S.current||(S.current=!0,C())},[C]),R(()=>{const n=()=>{m(null),S.current=!1,C()},i=G.on("companyContext/changed",n,{eager:!0});return()=>{var P;(P=i==null?void 0:i.off)==null||P.call(i)}},[C]),p?e("div",{...s,className:l,children:e(I,{variant:"primary",className:"company-management-company-credit-loading",children:e(J,{testId:"companyCreditLoader"})})}):d?e("div",{...s,className:l,children:e(A,{heading:d,type:"error",icon:void 0,variant:"primary",className:"company-management-company-credit-error",children:e("p",{children:d})})}):e("div",{...s,className:l,children:a===null||!a.credit?e(A,{heading:c.noData,type:"error",icon:void 0,variant:"primary",className:"company-management-company-credit-error",children:e("p",{children:c.noData})}):L("div",{className:"company-management-company-credit-grid",children:[e(I,{variant:"secondary",className:"company-management-company-credit-outstanding-balance",children:L("p",{children:[c.outstandingBalance,e("br",{}),e(B,{size:"large",amount:((g=a.credit.outstanding_balance)==null?void 0:g.value)??0,currency:((H=a.credit.outstanding_balance)==null?void 0:H.currency)??"",className:(((N=a.credit.outstanding_balance)==null?void 0:N.value)??0)<0?"company-management-company-credit-negative":void 0})]})}),e(I,{variant:"secondary",className:"company-management-company-credit-available-credit",children:L("p",{children:[c.creditAvailable,e("br",{}),e(B,{size:"large",amount:((v=a.credit.available_credit)==null?void 0:v.value)??0,currency:((b=a.credit.available_credit)==null?void 0:b.currency)??"",className:(((x=a.credit.available_credit)==null?void 0:x.value)??0)<0?"company-management-company-credit-negative":void 0})]})}),e(I,{variant:"secondary",className:"company-management-company-credit-credit-limit",children:L("p",{children:[c.creditLimit,e("br",{}),e(B,{size:"large",amount:((z=a.credit.credit_limit)==null?void 0:z.value)??0,currency:((f=a.credit.credit_limit)==null?void 0:f.currency)??"",className:(((E=a.credit.credit_limit)==null?void 0:E.value)??0)<0?".company-management-company-credit-grid .company-management-company-credit-negative":void 0})]})})]})})},Y=[{text:"20",value:"20"},{text:"30",value:"30"},{text:"50",value:"50"},{text:"100",value:"100"},{text:"200",value:"200"}],aa=l=>l.split("_").map(s=>s.charAt(0).toUpperCase()+s.slice(1).toLowerCase()).join(" "),ea=({className:l,initialParams:s={},...c})=>{const a=j({loading:"Company.shared.messages.loading",noData:"Company.shared.messages.noData",error:"Company.shared.messages.error",dateColumn:"Company.CompanyCreditHistory.columns.date",operationColumn:"Company.CompanyCreditHistory.columns.operation",amountColumn:"Company.CompanyCreditHistory.columns.amount",outstandingBalanceColumn:"Company.CompanyCreditHistory.columns.outstandingBalance",availableCreditColumn:"Company.CompanyCreditHistory.columns.availableCredit",creditLimitColumn:"Company.CompanyCreditHistory.columns.creditLimit",customReferenceColumn:"Company.CompanyCreditHistory.columns.customReference",updatedByColumn:"Company.CompanyCreditHistory.columns.updatedBy",itemsRangeText:"Company.CompanyCreditHistory.pagination.itemsRange",itemsPerPageLabel:"Company.CompanyCreditHistory.pagination.itemsPerPage",showLabel:"Company.CompanyCreditHistory.pagination.show",perPageLabel:"Company.CompanyCreditHistory.pagination.perPage",ariaDataLoaded:"Company.CompanyCreditHistory.ariaLabels.dataLoaded",ariaDataError:"Company.CompanyCreditHistory.ariaLabels.dataError",ariaLoadingHistory:"Company.CompanyCreditHistory.ariaLabels.loadingHistory",ariaHistoryTable:"Company.CompanyCreditHistory.ariaLabels.historyTable",ariaPaginationNav:"Company.CompanyCreditHistory.ariaLabels.paginationNav",ariaPageSizeSelector:"Company.CompanyCreditHistory.ariaLabels.pageSizeSelector",ariaPreviousPage:"Company.CompanyCreditHistory.ariaLabels.previousPage",ariaNextPage:"Company.CompanyCreditHistory.ariaLabels.nextPage",ariaGoToPage:"Company.CompanyCreditHistory.ariaLabels.goToPage",ariaCurrentPage:"Company.CompanyCreditHistory.ariaLabels.currentPage",ariaShowingHistory:"Company.CompanyCreditHistory.ariaLabels.showingHistory",ariaPageNavigation:"Company.CompanyCreditHistory.ariaLabels.pageNavigation"}),{items:m,loading:p,currentPage:t,pageSize:d,totalItems:u,totalPages:r,announcement:S,handlePageSizeChange:C,handlePreviousPage:g,handleNextPage:H,handlePageChange:N,refreshCreditHistory:v}=W({initialParams:s,translations:{ariaDataLoaded:a.ariaDataLoaded,ariaDataError:a.ariaDataError}}),b=u===0?0:(t-1)*d+1,x=Math.min(t*d,u),z=()=>{if(r<=5)return Array.from({length:r},(i,P)=>P+1);const n=[];return t<=3?n.push(1,2,3,4,"...",r):t>=r-2?n.push(1,"...",r-3,r-2,r-1,r):n.push(1,"...",t-1,t,t+1,"...",r),n};R(()=>{const n=()=>{v()},i=G.on("companyContext/changed",n,{eager:!0});return()=>{var P;(P=i==null?void 0:i.off)==null||P.call(i)}},[v]);const f=k(()=>[{key:"date",label:a.dateColumn},{key:"operation",label:a.operationColumn},{key:"amount",label:a.amountColumn},{key:"outstandingBalance",label:a.outstandingBalanceColumn},{key:"availableCredit",label:a.availableCreditColumn},{key:"creditLimit",label:a.creditLimitColumn},{key:"customReference",label:a.customReferenceColumn},{key:"updatedBy",label:a.updatedByColumn}],[a.dateColumn,a.operationColumn,a.amountColumn,a.outstandingBalanceColumn,a.availableCreditColumn,a.creditLimitColumn,a.customReferenceColumn,a.updatedByColumn]),E=k(()=>m.map(n=>({date:new Date(n.date).toLocaleDateString(),operation:aa(n.type),amount:n.amount.value===0?"":e("span",{children:e(B,{amount:n.amount.value,currency:n.amount.currency,size:"small",className:"company-management-price-normal"})}),outstandingBalance:e(B,{amount:n.balance.outstandingBalance.value,currency:n.balance.outstandingBalance.currency,size:"small",className:"company-management-price-normal"}),availableCredit:e(B,{amount:n.balance.availableCredit.value,currency:n.balance.availableCredit.currency,size:"small",className:"company-management-price-normal"}),creditLimit:e(B,{amount:n.balance.creditLimit.value,currency:n.balance.creditLimit.currency,size:"small",className:"company-management-price-normal"}),customReference:n.customReferenceNumber||"",updatedBy:n.updatedBy.name})),[m]);return L("section",{...c,className:Q(["company-management-company-credit-history-display",l]),children:[e("div",{className:"sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:S}),e("div",{"aria-busy":p,children:p?e("div",{className:"loadingContainer",role:"status","aria-live":"polite",children:e(K,{testId:"companyCreditHistoryLoader"})}):e(M,{children:m.length?e(U,{className:"company-management-company-credit-history-table",columns:f,rowData:E,mobileLayout:"stacked","aria-label":a.ariaHistoryTable,summary:a.ariaShowingHistory.replace("{count}",m.length.toString())}):e("div",{className:"company-management-company-credit-history-empty",children:e("p",{children:a.noData})})})}),!p&&m.length>0&&L("nav",{"aria-label":a.ariaPaginationNav,className:"paginationContainer",children:[e("div",{"aria-live":"polite","aria-atomic":"true",children:a.itemsRangeText.replace("{start}",b.toString()).replace("{end}",x.toString()).replace("{total}",u.toString())}),r>1&&L("div",{className:"paginationButtons",role:"group","aria-label":a.ariaPageNavigation,children:[e(_,{variant:"secondary",onClick:g,disabled:t===1||p,"aria-label":a.ariaPreviousPage,className:"paginationButton",children:"<"}),z().map((n,i)=>n==="..."?e("span",{className:"paginationEllipsis",children:"..."},`ellipsis-${i}`):e(_,{variant:t===n?"primary":"secondary",onClick:()=>N==null?void 0:N(n),disabled:p,"aria-label":t===n?a.ariaCurrentPage.replace("{page}",String(n)):a.ariaGoToPage.replace("{page}",String(n)),"aria-current":t===n?"page":void 0,className:"paginationButton",children:n},n)),e(_,{variant:"secondary",onClick:H,disabled:t===r||p,"aria-label":a.ariaNextPage,className:"paginationButton",children:">"})]}),L("div",{className:"pageSizeSelector",children:[e("label",{htmlFor:"page-size-select",id:"page-size-label",children:e("span",{children:a.showLabel})}),e(Z,{id:"page-size-select",name:"pageSize",value:d.toString(),options:Y,handleSelect:C,"aria-labelledby":"page-size-label","aria-describedby":"page-size-description"}),e("span",{id:"page-size-description",children:a.perPageLabel})]})]})]})},pa=({creditHistoryParams:l={},showCreditHistory:s=!0,className:c,children:a,...m})=>L("section",{...m,className:c,children:[e(X,{}),s&&e(ea,{initialParams:l,style:{marginTop:"24px"}}),a]});export{pa as CompanyCredit,pa as default};
|
|
4
4
|
//# sourceMappingURL=CompanyCredit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompanyCredit.js","sources":["/@dropins/storefront-company-management/src/hooks/containers/useCompanyCreditHistory.tsx","/@dropins/storefront-company-management/src/components/CompanyCreditDisplay/CompanyCreditDisplay.tsx","/@dropins/storefront-company-management/src/components/CompanyCreditHistoryDisplay/CompanyCreditHistoryDisplay.tsx","/@dropins/storefront-company-management/src/containers/CompanyCredit/CompanyCredit.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useEffect, useState, useCallback, useRef, useMemo } from 'preact/hooks';\nimport { getCompanyCreditHistory } from '@/company-management/api';\nimport { CompanyCreditHistoryItem } from '@/company-management/data/models';\nimport { GetCompanyCreditHistoryParams } from '@/company-management/types/api/getCompanyCreditHistoryParams.types';\n\n// Constants\nconst DEFAULT_PAGE_SIZE = 20;\nconst FIRST_PAGE = 1;\n\nexport interface UseCompanyCreditHistoryProps {\n /** Initial parameters for the credit history query */\n initialParams?: GetCompanyCreditHistoryParams;\n /** Translations for accessibility announcements */\n translations: {\n ariaDataLoaded: string;\n ariaDataError: string;\n };\n}\n\nexport interface UseCompanyCreditHistoryReturn {\n // Core data\n items: CompanyCreditHistoryItem[];\n \n // Pagination state\n currentPage: number;\n pageSize: number;\n totalItems: number;\n totalPages: number;\n \n // Loading states\n loading: boolean;\n \n // UI state\n announcement: string;\n \n // Actions\n handlePageSizeChange: (event: Event | { target?: { value: string } } | string) => void;\n handlePreviousPage: () => void;\n handleNextPage: () => void;\n handlePageChange: (page: number) => void;\n refreshCreditHistory: () => Promise<void>;\n}\n\nexport const useCompanyCreditHistory = ({ \n initialParams = {}, \n translations \n}: UseCompanyCreditHistoryProps): UseCompanyCreditHistoryReturn => {\n const [items, setItems] = useState<CompanyCreditHistoryItem[]>([]);\n const [loading, setLoading] = useState(false);\n const [currentPage, setCurrentPage] = useState(initialParams.currentPage || FIRST_PAGE);\n const [pageSize, setPageSize] = useState(initialParams.pageSize || DEFAULT_PAGE_SIZE);\n const [totalItems, setTotalItems] = useState(0);\n const [totalPages, setTotalPages] = useState(1);\n const [announcement, setAnnouncement] = useState('');\n\n // Stable reference to translations to prevent unnecessary re-renders\n const translationsRef = useRef(translations);\n translationsRef.current = translations;\n\n // Keep track of initial params\n const initialParamsRef = useRef(initialParams);\n\n // Memoized params for API call\n const apiParams = useMemo((): GetCompanyCreditHistoryParams => ({\n ...initialParamsRef.current,\n currentPage,\n pageSize,\n }), [currentPage, pageSize]);\n\n // Fetch credit history data\n const fetchCreditHistory = useCallback(async () => {\n setLoading(true);\n try {\n const response = await getCompanyCreditHistory(apiParams);\n \n if (response) {\n // Batch state updates for better performance\n setItems(response.items);\n setTotalItems(response.totalCount || response.items.length);\n setTotalPages(response.pageInfo?.totalPages || 1);\n setAnnouncement(\n translationsRef.current.ariaDataLoaded.replace(\n '{count}', \n response.items.length.toString()\n )\n );\n } else {\n // Handle null response\n setItems([]);\n setTotalItems(0);\n setTotalPages(1);\n setAnnouncement(translationsRef.current.ariaDataError);\n }\n } catch (error) {\n console.error('Failed to load company credit history:', error);\n // Batch error state updates\n setItems([]);\n setTotalItems(0);\n setTotalPages(1);\n setAnnouncement(translationsRef.current.ariaDataError);\n } finally {\n setLoading(false);\n }\n }, [apiParams]);\n\n // Fetch credit history when dependencies change\n useEffect(() => {\n fetchCreditHistory();\n }, [fetchCreditHistory]);\n\n // Handle page size change\n const handlePageSizeChange = useCallback((event: Event | { target?: { value: string } } | string) => {\n let value: string;\n if (typeof event === 'string') {\n value = event;\n } else if ('target' in event && event.target && 'value' in event.target) {\n value = event.target.value;\n } else {\n return;\n }\n const newSize = parseInt(value, 10);\n if (!isNaN(newSize)) {\n setPageSize(newSize);\n setCurrentPage(FIRST_PAGE); // Reset to first page when page size changes\n }\n }, []);\n\n // Handle page navigation\n const handlePreviousPage = useCallback(() => {\n if (currentPage > 1) {\n setCurrentPage(currentPage - 1);\n }\n }, [currentPage]);\n\n const handleNextPage = useCallback(() => {\n if (currentPage < totalPages) {\n setCurrentPage(currentPage + 1);\n }\n }, [currentPage, totalPages]);\n\n // Handle direct page change (for pagination buttons like First, Last)\n const handlePageChange = useCallback((page: number) => {\n if (page >= 1 && page <= totalPages && page !== currentPage) {\n setCurrentPage(page);\n }\n }, [currentPage, totalPages]);\n\n // Expose refresh function for external use (e.g., after company context changes)\n const refreshCreditHistory = useCallback(async () => {\n await fetchCreditHistory();\n }, [fetchCreditHistory]);\n\n return {\n // Core data\n items,\n \n // Pagination state\n currentPage,\n pageSize,\n totalItems,\n totalPages,\n \n // Loading states\n loading,\n \n // UI state\n announcement,\n \n // Actions\n handlePageSizeChange,\n handlePreviousPage,\n handleNextPage,\n handlePageChange,\n refreshCreditHistory,\n };\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n \nimport { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport '@/company-management/components/CompanyCreditDisplay/CompanyCreditDisplay.css';\nimport { Card, InLineAlert, Price } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\nimport { CompanyCreditInfo } from '@/company-management/data/models';\nimport { getCompanyCredit } from '@/company-management/api/getCompanyCredit';\nimport { CompanyCreditLoader } from '@/company-management/components/CompanyLoaders';\n\nexport interface CompanyCreditDisplayProps extends HTMLAttributes<HTMLDivElement> {\n // No props needed - component manages its own data\n}\n\nexport const CompanyCreditDisplay: FunctionComponent<CompanyCreditDisplayProps> = ({\n className,\n ...props\n}) => {\n const translations = useText({\n creditAvailable: 'Company.CompanyCredit.creditAvailable',\n creditLimit: 'Company.CompanyCredit.creditLimit',\n outstandingBalance: 'Company.CompanyCredit.outstandingBalance',\n noData: 'Company.shared.messages.noData',\n loading: 'Company.shared.messages.loading',\n loadError: 'Company.CompanyCredit.messages.loadError',\n });\n\n const [companyCreditData, setCompanyCreditData] = useState<CompanyCreditInfo | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n \n // Keep stable references to avoid re-creating callbacks/effects\n const inFlightRef = useRef<boolean>(false);\n const didInitialFetchRef = useRef<boolean>(false);\n\n const fetchCompanyCredit = useCallback(async () => {\n if (inFlightRef.current) {\n return;\n }\n inFlightRef.current = true;\n setLoading(true);\n setError(null);\n \n try {\n const companyCreditInfo: CompanyCreditInfo | null = await getCompanyCredit();\n setCompanyCreditData(companyCreditInfo);\n } catch (error) {\n console.error('Failed to load company credit:', error);\n setError(translations.loadError);\n setCompanyCreditData(null);\n } finally {\n setLoading(false);\n inFlightRef.current = false;\n }\n }, [translations.loadError]);\n\n // Initial data fetch\n useEffect(() => {\n if (!didInitialFetchRef.current) {\n didInitialFetchRef.current = true;\n fetchCompanyCredit();\n }\n }, [fetchCompanyCredit]);\n\n // Listen to company context changes\n useEffect(() => {\n const handleCompanyContextChange = () => {\n setCompanyCreditData(null);\n didInitialFetchRef.current = false; // Allow re-fetch on context change\n fetchCompanyCredit();\n };\n\n // Use the same event pattern as other company components\n const subscription = events.on(\n 'companyContext/changed',\n handleCompanyContextChange,\n { eager: true }\n );\n \n return () => {\n subscription?.off?.();\n };\n }, [fetchCompanyCredit]);\n\n if (loading) {\n return (\n <div {...props} className={className}>\n <Card\n variant=\"primary\"\n className=\"company-management-company-credit-loading\"\n >\n <CompanyCreditLoader testId=\"companyCreditLoader\"/>\n </Card>\n </div>\n );\n }\n\n if (error) {\n return (\n <div {...props} className={className}>\n <InLineAlert\n heading={error}\n type=\"error\"\n icon={undefined}\n variant=\"primary\"\n className=\"company-management-company-credit-error\"\n >\n <p>{error}</p>\n </InLineAlert>\n </div>\n );\n }\n return (\n <div {...props} className={className}>\n {companyCreditData === null || !companyCreditData.credit ? (\n <InLineAlert\n heading={translations.noData}\n type=\"error\"\n icon={undefined}\n variant=\"primary\"\n className=\"company-management-company-credit-error\"\n >\n <p>{translations.noData}</p>\n </InLineAlert>\n ) : (\n <div className=\"company-management-company-credit-grid\">\n <Card\n variant=\"secondary\"\n className=\"company-management-company-credit-outstanding-balance\"\n >\n <p>{translations.outstandingBalance}<br/>\n <Price \n size='large'\n amount={companyCreditData.credit.outstanding_balance?.value ?? 0} \n currency={companyCreditData.credit.outstanding_balance?.currency ?? ''} \n className={(companyCreditData.credit.outstanding_balance?.value ?? 0) < 0 ? '.company-management-company-credit-grid .company-management-company-credit-negative' : undefined}\n /></p>\n </Card>\n <Card\n variant=\"secondary\"\n className=\"company-management-company-credit-available-credit\"\n >\n <p>{translations.creditAvailable}<br/>\n <Price\n size='large'\n amount={companyCreditData.credit.available_credit?.value ?? 0} \n currency={companyCreditData.credit.available_credit?.currency ?? ''} \n className={(companyCreditData.credit.available_credit?.value ?? 0) < 0 ? '.company-management-company-credit-grid .company-management-company-credit-negative' : undefined}\n /></p>\n </Card>\n <Card\n variant=\"secondary\"\n className=\"company-management-company-credit-credit-limit\"\n >\n <p>{translations.creditLimit}<br/>\n <Price \n size='large'\n amount={companyCreditData.credit.credit_limit?.value ?? 0} \n currency={companyCreditData.credit.credit_limit?.currency ?? ''} \n className={(companyCreditData.credit.credit_limit?.value ?? 0) < 0 ? '.company-management-company-credit-grid .company-management-company-credit-negative' : undefined}\n /></p>\n </Card>\n </div>\n )}\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n \nimport { FunctionComponent } from 'preact';\nimport { useMemo, useEffect } from 'preact/hooks';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { Button, Picker, Price, Table } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\nimport { CompanyCreditHistoryLoader } from '@/company-management/components/CompanyLoaders';\nimport { useCompanyCreditHistory } from '@/company-management/hooks/containers';\nimport './CompanyCreditHistoryDisplay.css';\n\nexport interface CompanyCreditHistoryDisplayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n /**\n * Optional initial parameters for credit history filtering and pagination\n */\n initialParams?: {\n pageSize?: number;\n currentPage?: number;\n filter?: any;\n };\n}\n\n// Constants\nconst PAGE_SIZE_OPTIONS = [\n { text: '20', value: '20' },\n { text: '30', value: '30' },\n { text: '50', value: '50' },\n { text: '100', value: '100' },\n { text: '200', value: '200' }\n];\n\nexport const CompanyCreditHistoryDisplay: FunctionComponent<CompanyCreditHistoryDisplayProps> = ({\n className,\n initialParams = {},\n ...props\n}) => {\n const translations = useText({\n loading: 'Company.shared.messages.loading',\n noData: 'Company.shared.messages.noData',\n error: 'Company.shared.messages.error',\n // Table columns\n dateColumn: 'Company.CompanyCreditHistory.columns.date',\n operationColumn: 'Company.CompanyCreditHistory.columns.operation',\n amountColumn: 'Company.CompanyCreditHistory.columns.amount', \n outstandingBalanceColumn: 'Company.CompanyCreditHistory.columns.outstandingBalance',\n availableCreditColumn: 'Company.CompanyCreditHistory.columns.availableCredit',\n creditLimitColumn: 'Company.CompanyCreditHistory.columns.creditLimit',\n customReferenceColumn: 'Company.CompanyCreditHistory.columns.customReference',\n updatedByColumn: 'Company.CompanyCreditHistory.columns.updatedBy',\n // Pagination\n itemsText: 'Company.CompanyCreditHistory.pagination.itemsCount',\n itemsPerPageLabel: 'Company.CompanyCreditHistory.pagination.itemsPerPage',\n showLabel: 'Company.CompanyCreditHistory.pagination.show',\n perPageLabel: 'Company.CompanyCreditHistory.pagination.perPage',\n previousPage: 'Company.CompanyCreditHistory.pagination.previous',\n nextPage: 'Company.CompanyCreditHistory.pagination.next',\n pageInfo: 'Company.CompanyCreditHistory.pagination.pageInfo',\n // Accessibility labels\n ariaDataLoaded: 'Company.CompanyCreditHistory.ariaLabels.dataLoaded',\n ariaDataError: 'Company.CompanyCreditHistory.ariaLabels.dataError',\n ariaLoadingHistory: 'Company.CompanyCreditHistory.ariaLabels.loadingHistory',\n ariaHistoryTable: 'Company.CompanyCreditHistory.ariaLabels.historyTable',\n ariaPaginationNav: 'Company.CompanyCreditHistory.ariaLabels.paginationNav',\n ariaPageSizeSelector: 'Company.CompanyCreditHistory.ariaLabels.pageSizeSelector',\n ariaPreviousPageFull: 'Company.CompanyCreditHistory.ariaLabels.previousPageFull',\n ariaNextPageFull: 'Company.CompanyCreditHistory.ariaLabels.nextPageFull',\n ariaShowingHistory: 'Company.CompanyCreditHistory.ariaLabels.showingHistory',\n ariaPageNavigation: 'Company.CompanyCreditHistory.ariaLabels.pageNavigation',\n });\n\n // Use the credit history hook - component now manages its own data\n const {\n items,\n loading,\n currentPage,\n pageSize,\n totalItems,\n totalPages,\n announcement,\n handlePageSizeChange,\n handlePreviousPage,\n handleNextPage,\n refreshCreditHistory,\n } = useCompanyCreditHistory({\n initialParams,\n translations: {\n ariaDataLoaded: translations.ariaDataLoaded,\n ariaDataError: translations.ariaDataError\n }\n });\n\n // Listen to company context changes\n useEffect(() => {\n const handleCompanyContextChange = () => {\n refreshCreditHistory();\n };\n\n const subscription = events.on(\n 'companyContext/changed',\n handleCompanyContextChange,\n { eager: true }\n );\n \n return () => {\n subscription?.off?.();\n };\n }, [refreshCreditHistory]);\n\n // Prepare table columns - memoized to prevent unnecessary re-renders\n const columns = useMemo(() => [\n { key: 'date', label: translations.dateColumn },\n { key: 'operation', label: translations.operationColumn },\n { key: 'amount', label: translations.amountColumn },\n { key: 'outstandingBalance', label: translations.outstandingBalanceColumn },\n { key: 'availableCredit', label: translations.availableCreditColumn },\n { key: 'creditLimit', label: translations.creditLimitColumn },\n { key: 'customReference', label: translations.customReferenceColumn },\n { key: 'updatedBy', label: translations.updatedByColumn }\n ], [\n translations.dateColumn,\n translations.operationColumn, \n translations.amountColumn,\n translations.outstandingBalanceColumn,\n translations.availableCreditColumn,\n translations.creditLimitColumn,\n translations.customReferenceColumn,\n translations.updatedByColumn\n ]);\n\n // Prepare table row data - memoized for performance\n const rowData = useMemo(() => items.map((item) => ({\n date: new Date(item.date).toLocaleDateString(),\n operation: item.type.replace('_', ' '),\n amount: item.amount.value === 0 ? '' : (\n <span className={`company-management-amount ${item.amount.value >= 0 ? 'company-management-amount--positive' : 'company-management-amount--negative'}`}>\n {item.amount.value >= 0 ? '+' : ''}\n <Price \n amount={Math.abs(item.amount.value)} \n currency={item.amount.currency}\n size=\"small\"\n />\n </span>\n ),\n outstandingBalance: (\n <Price \n amount={item.balance.outstandingBalance.value} \n currency={item.balance.outstandingBalance.currency}\n size=\"small\"\n />\n ),\n availableCredit: (\n <Price \n amount={item.balance.availableCredit.value} \n currency={item.balance.availableCredit.currency}\n size=\"small\"\n />\n ),\n creditLimit: (\n <Price \n amount={item.balance.creditLimit.value} \n currency={item.balance.creditLimit.currency}\n size=\"small\"\n />\n ),\n customReference: item.customReferenceNumber || '-',\n updatedBy: item.updatedBy.name\n })), [items]);\n\n return (\n <section {...props} className={classes(['company-management-company-credit-history-display', className])}>\n {/* Screen reader announcements */}\n <div className=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {announcement}\n </div>\n\n {/* Table with loading state */}\n <div aria-busy={loading}>\n {loading ? (\n <div className=\"loadingContainer\" role=\"status\" aria-live=\"polite\">\n <CompanyCreditHistoryLoader testId=\"companyCreditHistoryLoader\" />\n </div>\n ) : (\n <>\n {!items.length ? (\n <div className=\"company-management-company-credit-history-empty\">\n <p>{translations.noData}</p>\n </div>\n ) : (\n <Table\n className=\"company-management-company-credit-history-table\"\n columns={columns}\n rowData={rowData}\n mobileLayout=\"stacked\"\n aria-label={translations.ariaHistoryTable}\n summary={translations.ariaShowingHistory.replace('{count}', items.length.toString())}\n />\n )}\n </>\n )}\n </div>\n\n {/* Pagination controls */}\n {!loading && items.length > 0 && (\n <nav aria-label={translations.ariaPaginationNav} className=\"paginationContainer\">\n {/* Items count on the left */}\n <div aria-live=\"polite\" aria-atomic=\"true\">\n {translations.itemsText.replace('{count}', totalItems.toString())}\n </div>\n\n {/* Pagination buttons in the center (only show when multiple pages) */}\n {totalPages > 1 && (\n <div className=\"paginationButtons\" role=\"group\" aria-label={translations.ariaPageNavigation}>\n <Button\n variant=\"secondary\"\n onClick={handlePreviousPage}\n disabled={currentPage === 1 || loading}\n aria-label={translations.ariaPreviousPageFull.replace('{current}', currentPage.toString())}\n >\n {translations.previousPage}\n </Button>\n <span aria-current=\"page\" aria-live=\"polite\">\n {translations.pageInfo.replace('{current}', currentPage.toString()).replace('{total}', totalPages.toString())}\n </span>\n <Button\n variant=\"secondary\"\n onClick={handleNextPage}\n disabled={currentPage === totalPages || loading}\n aria-label={translations.ariaNextPageFull.replace('{current}', currentPage.toString())}\n >\n {translations.nextPage}\n </Button>\n </div>\n )}\n\n {/* Page size picker on the right */}\n <div className=\"pageSizeSelector\">\n <label htmlFor=\"page-size-select\" id=\"page-size-label\">\n <span>{translations.showLabel}</span>\n </label>\n <Picker\n id=\"page-size-select\"\n name=\"pageSize\"\n value={pageSize.toString()}\n options={PAGE_SIZE_OPTIONS}\n handleSelect={handlePageSizeChange}\n aria-labelledby=\"page-size-label\"\n aria-describedby=\"page-size-description\"\n />\n <span id=\"page-size-description\">{translations.perPageLabel}</span>\n </div>\n </nav>\n )}\n </section>\n );\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n \nimport { HTMLAttributes } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { CompanyCreditDisplay } from '@/company-management/components/CompanyCreditDisplay';\nimport { CompanyCreditHistoryDisplay } from '@/company-management/components/CompanyCreditHistoryDisplay';\nimport { GetCompanyCreditHistoryParams } from '@/company-management/types/api/getCompanyCreditHistoryParams.types';\n\nexport interface CompanyCreditProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Optional parameters for credit history filtering and pagination\n */\n creditHistoryParams?: GetCompanyCreditHistoryParams;\n \n /**\n * Whether to show the credit history section\n */\n showCreditHistory?: boolean;\n}\n \nexport const CompanyCredit: Container<CompanyCreditProps> = ({ \n creditHistoryParams = {}, \n showCreditHistory = true,\n className,\n children,\n ...props \n}) => {\n return (\n <section {...props} className={className}>\n <CompanyCreditDisplay />\n \n {showCreditHistory && (\n <CompanyCreditHistoryDisplay\n initialParams={creditHistoryParams}\n style={{ marginTop: '24px' }}\n />\n )}\n\n {children}\n </section>\n );\n};\n"],"names":["DEFAULT_PAGE_SIZE","FIRST_PAGE","useCompanyCreditHistory","initialParams","translations","items","setItems","useState","loading","setLoading","currentPage","setCurrentPage","pageSize","setPageSize","totalItems","setTotalItems","totalPages","setTotalPages","announcement","setAnnouncement","translationsRef","useRef","initialParamsRef","apiParams","useMemo","fetchCreditHistory","useCallback","response","getCompanyCreditHistory","_a","error","useEffect","handlePageSizeChange","event","value","newSize","handlePreviousPage","handleNextPage","handlePageChange","page","refreshCreditHistory","CompanyCreditDisplay","className","props","useText","companyCreditData","setCompanyCreditData","setError","inFlightRef","didInitialFetchRef","fetchCompanyCredit","companyCreditInfo","getCompanyCredit","handleCompanyContextChange","subscription","events","jsx","Card","CompanyCreditLoader","InLineAlert","jsxs","Price","_b","_c","_d","_e","_f","_g","_h","_i","PAGE_SIZE_OPTIONS","CompanyCreditHistoryDisplay","columns","rowData","item","classes","CompanyCreditHistoryLoader","Fragment","Table","Button","Picker","CompanyCredit","creditHistoryParams","showCreditHistory","children"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CompanyCredit.js","sources":["/@dropins/storefront-company-management/src/hooks/containers/useCompanyCreditHistory.tsx","/@dropins/storefront-company-management/src/components/CompanyCreditDisplay/CompanyCreditDisplay.tsx","/@dropins/storefront-company-management/src/components/CompanyCreditHistoryDisplay/CompanyCreditHistoryDisplay.tsx","/@dropins/storefront-company-management/src/containers/CompanyCredit/CompanyCredit.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useEffect, useState, useCallback, useRef, useMemo } from 'preact/hooks';\nimport { getCompanyCreditHistory } from '@/company-management/api';\nimport { CompanyCreditHistoryItem } from '@/company-management/data/models';\nimport { GetCompanyCreditHistoryParams } from '@/company-management/types/api/getCompanyCreditHistoryParams.types';\n\n// Constants\nconst DEFAULT_PAGE_SIZE = 20;\nconst FIRST_PAGE = 1;\n\nexport interface UseCompanyCreditHistoryProps {\n /** Initial parameters for the credit history query */\n initialParams?: GetCompanyCreditHistoryParams;\n /** Translations for accessibility announcements */\n translations: {\n ariaDataLoaded: string;\n ariaDataError: string;\n };\n}\n\nexport interface UseCompanyCreditHistoryReturn {\n // Core data\n items: CompanyCreditHistoryItem[];\n \n // Pagination state\n currentPage: number;\n pageSize: number;\n totalItems: number;\n totalPages: number;\n \n // Loading states\n loading: boolean;\n \n // UI state\n announcement: string;\n \n // Actions\n handlePageSizeChange: (event: Event | { target?: { value: string } } | string) => void;\n handlePreviousPage: () => void;\n handleNextPage: () => void;\n handlePageChange: (page: number) => void;\n refreshCreditHistory: () => Promise<void>;\n}\n\nexport const useCompanyCreditHistory = ({ \n initialParams = {}, \n translations \n}: UseCompanyCreditHistoryProps): UseCompanyCreditHistoryReturn => {\n const [items, setItems] = useState<CompanyCreditHistoryItem[]>([]);\n const [loading, setLoading] = useState(false);\n const [currentPage, setCurrentPage] = useState(initialParams.currentPage || FIRST_PAGE);\n const [pageSize, setPageSize] = useState(initialParams.pageSize || DEFAULT_PAGE_SIZE);\n const [totalItems, setTotalItems] = useState(0);\n const [totalPages, setTotalPages] = useState(1);\n const [announcement, setAnnouncement] = useState('');\n\n // Stable reference to translations to prevent unnecessary re-renders\n const translationsRef = useRef(translations);\n translationsRef.current = translations;\n\n // Keep track of initial params\n const initialParamsRef = useRef(initialParams);\n\n // Memoized params for API call\n const apiParams = useMemo((): GetCompanyCreditHistoryParams => ({\n ...initialParamsRef.current,\n currentPage,\n pageSize,\n }), [currentPage, pageSize]);\n\n // Fetch credit history data\n const fetchCreditHistory = useCallback(async () => {\n setLoading(true);\n try {\n const response = await getCompanyCreditHistory(apiParams);\n \n if (response) {\n // Batch state updates for better performance\n setItems(response.items);\n setTotalItems(response.totalCount || response.items.length);\n setTotalPages(response.pageInfo?.totalPages || 1);\n setAnnouncement(\n translationsRef.current.ariaDataLoaded.replace(\n '{count}', \n response.items.length.toString()\n )\n );\n } else {\n // Handle null response\n setItems([]);\n setTotalItems(0);\n setTotalPages(1);\n setAnnouncement(translationsRef.current.ariaDataError);\n }\n } catch (error) {\n console.error('Failed to load company credit history:', error);\n // Batch error state updates\n setItems([]);\n setTotalItems(0);\n setTotalPages(1);\n setAnnouncement(translationsRef.current.ariaDataError);\n } finally {\n setLoading(false);\n }\n }, [apiParams]);\n\n // Fetch credit history when dependencies change\n useEffect(() => {\n fetchCreditHistory();\n }, [fetchCreditHistory]);\n\n // Handle page size change\n const handlePageSizeChange = useCallback((event: Event | { target?: { value: string } } | string) => {\n let value: string;\n if (typeof event === 'string') {\n value = event;\n } else if ('target' in event && event.target && 'value' in event.target) {\n value = event.target.value;\n } else {\n return;\n }\n const newSize = parseInt(value, 10);\n if (!isNaN(newSize)) {\n setPageSize(newSize);\n setCurrentPage(FIRST_PAGE); // Reset to first page when page size changes\n }\n }, []);\n\n // Handle page navigation\n const handlePreviousPage = useCallback(() => {\n if (currentPage > 1) {\n setCurrentPage(currentPage - 1);\n }\n }, [currentPage]);\n\n const handleNextPage = useCallback(() => {\n if (currentPage < totalPages) {\n setCurrentPage(currentPage + 1);\n }\n }, [currentPage, totalPages]);\n\n // Handle direct page change (for pagination buttons like First, Last)\n const handlePageChange = useCallback((page: number) => {\n if (page >= 1 && page <= totalPages && page !== currentPage) {\n setCurrentPage(page);\n }\n }, [currentPage, totalPages]);\n\n // Expose refresh function for external use (e.g., after company context changes)\n const refreshCreditHistory = useCallback(async () => {\n await fetchCreditHistory();\n }, [fetchCreditHistory]);\n\n return {\n // Core data\n items,\n \n // Pagination state\n currentPage,\n pageSize,\n totalItems,\n totalPages,\n \n // Loading states\n loading,\n \n // UI state\n announcement,\n \n // Actions\n handlePageSizeChange,\n handlePreviousPage,\n handleNextPage,\n handlePageChange,\n refreshCreditHistory,\n };\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n \nimport { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport '@/company-management/components/CompanyCreditDisplay/CompanyCreditDisplay.css';\nimport { Card, InLineAlert, Price } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\nimport { CompanyCreditInfo } from '@/company-management/data/models';\nimport { getCompanyCredit } from '@/company-management/api/getCompanyCredit';\nimport { CompanyCreditLoader } from '@/company-management/components/CompanyLoaders';\n\nexport interface CompanyCreditDisplayProps extends HTMLAttributes<HTMLDivElement> {\n // No props needed - component manages its own data\n}\n\nexport const CompanyCreditDisplay: FunctionComponent<CompanyCreditDisplayProps> = ({\n className,\n ...props\n}) => {\n const translations = useText({\n creditAvailable: 'Company.CompanyCredit.creditAvailable',\n creditLimit: 'Company.CompanyCredit.creditLimit',\n outstandingBalance: 'Company.CompanyCredit.outstandingBalance',\n noData: 'Company.shared.messages.noData',\n loading: 'Company.shared.messages.loading',\n loadError: 'Company.CompanyCredit.messages.loadError',\n });\n\n const [companyCreditData, setCompanyCreditData] = useState<CompanyCreditInfo | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n \n // Keep stable references to avoid re-creating callbacks/effects\n const inFlightRef = useRef<boolean>(false);\n const didInitialFetchRef = useRef<boolean>(false);\n\n const fetchCompanyCredit = useCallback(async () => {\n if (inFlightRef.current) {\n return;\n }\n inFlightRef.current = true;\n setLoading(true);\n setError(null);\n \n try {\n const companyCreditInfo: CompanyCreditInfo | null = await getCompanyCredit();\n setCompanyCreditData(companyCreditInfo);\n } catch (error) {\n console.error('Failed to load company credit:', error);\n setError(translations.loadError);\n setCompanyCreditData(null);\n } finally {\n setLoading(false);\n inFlightRef.current = false;\n }\n }, [translations.loadError]);\n\n // Initial data fetch\n useEffect(() => {\n if (!didInitialFetchRef.current) {\n didInitialFetchRef.current = true;\n fetchCompanyCredit();\n }\n }, [fetchCompanyCredit]);\n\n // Listen to company context changes\n useEffect(() => {\n const handleCompanyContextChange = () => {\n setCompanyCreditData(null);\n didInitialFetchRef.current = false; // Allow re-fetch on context change\n fetchCompanyCredit();\n };\n\n // Use the same event pattern as other company components\n const subscription = events.on(\n 'companyContext/changed',\n handleCompanyContextChange,\n { eager: true }\n );\n \n return () => {\n subscription?.off?.();\n };\n }, [fetchCompanyCredit]);\n\n if (loading) {\n return (\n <div {...props} className={className}>\n <Card\n variant=\"primary\"\n className=\"company-management-company-credit-loading\"\n >\n <CompanyCreditLoader testId=\"companyCreditLoader\"/>\n </Card>\n </div>\n );\n }\n\n if (error) {\n return (\n <div {...props} className={className}>\n <InLineAlert\n heading={error}\n type=\"error\"\n icon={undefined}\n variant=\"primary\"\n className=\"company-management-company-credit-error\"\n >\n <p>{error}</p>\n </InLineAlert>\n </div>\n );\n }\n return (\n <div {...props} className={className}>\n {companyCreditData === null || !companyCreditData.credit ? (\n <InLineAlert\n heading={translations.noData}\n type=\"error\"\n icon={undefined}\n variant=\"primary\"\n className=\"company-management-company-credit-error\"\n >\n <p>{translations.noData}</p>\n </InLineAlert>\n ) : (\n <div className=\"company-management-company-credit-grid\">\n <Card\n variant=\"secondary\"\n className=\"company-management-company-credit-outstanding-balance\"\n >\n <p>{translations.outstandingBalance}<br/>\n <Price \n size='large'\n amount={companyCreditData.credit.outstanding_balance?.value ?? 0} \n currency={companyCreditData.credit.outstanding_balance?.currency ?? ''} \n className={(companyCreditData.credit.outstanding_balance?.value ?? 0) < 0 ? 'company-management-company-credit-negative' : undefined}\n /></p>\n </Card>\n <Card\n variant=\"secondary\"\n className=\"company-management-company-credit-available-credit\"\n >\n <p>{translations.creditAvailable}<br/>\n <Price\n size='large'\n amount={companyCreditData.credit.available_credit?.value ?? 0} \n currency={companyCreditData.credit.available_credit?.currency ?? ''} \n className={(companyCreditData.credit.available_credit?.value ?? 0) < 0 ? 'company-management-company-credit-negative' : undefined}\n /></p>\n </Card>\n <Card\n variant=\"secondary\"\n className=\"company-management-company-credit-credit-limit\"\n >\n <p>{translations.creditLimit}<br/>\n <Price \n size='large'\n amount={companyCreditData.credit.credit_limit?.value ?? 0} \n currency={companyCreditData.credit.credit_limit?.currency ?? ''} \n className={(companyCreditData.credit.credit_limit?.value ?? 0) < 0 ? '.company-management-company-credit-grid .company-management-company-credit-negative' : undefined}\n /></p>\n </Card>\n </div>\n )}\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n \nimport { FunctionComponent } from 'preact';\nimport { useMemo, useEffect } from 'preact/hooks';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { Button, Picker, Price, Table } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\nimport { CompanyCreditHistoryLoader } from '@/company-management/components/CompanyLoaders';\nimport { useCompanyCreditHistory } from '@/company-management/hooks/containers';\nimport './CompanyCreditHistoryDisplay.css';\n\nexport interface CompanyCreditHistoryDisplayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n /**\n * Optional initial parameters for credit history filtering and pagination\n */\n initialParams?: {\n pageSize?: number;\n currentPage?: number;\n filter?: any;\n };\n}\n\n// Constants\nconst PAGE_SIZE_OPTIONS = [\n { text: '20', value: '20' },\n { text: '30', value: '30' },\n { text: '50', value: '50' },\n { text: '100', value: '100' },\n { text: '200', value: '200' }\n];\n\n/**\n * Converts operation type from SCREAMING_SNAKE_CASE to Title Case\n * @param operationType - The operation type string (e.g., \"CREDIT_ADJUSTMENT\", \"PURCHASE\")\n * @returns Formatted string in title case (e.g., \"Credit Adjustment\", \"Purchase\")\n */\nconst formatOperationType = (operationType: string): string => {\n return operationType\n .split('_')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n};\n\nexport const CompanyCreditHistoryDisplay: FunctionComponent<CompanyCreditHistoryDisplayProps> = ({\n className,\n initialParams = {},\n ...props\n}) => {\n const translations = useText({\n loading: 'Company.shared.messages.loading',\n noData: 'Company.shared.messages.noData',\n error: 'Company.shared.messages.error',\n // Table columns\n dateColumn: 'Company.CompanyCreditHistory.columns.date',\n operationColumn: 'Company.CompanyCreditHistory.columns.operation',\n amountColumn: 'Company.CompanyCreditHistory.columns.amount', \n outstandingBalanceColumn: 'Company.CompanyCreditHistory.columns.outstandingBalance',\n availableCreditColumn: 'Company.CompanyCreditHistory.columns.availableCredit',\n creditLimitColumn: 'Company.CompanyCreditHistory.columns.creditLimit',\n customReferenceColumn: 'Company.CompanyCreditHistory.columns.customReference',\n updatedByColumn: 'Company.CompanyCreditHistory.columns.updatedBy',\n // Pagination\n itemsRangeText: 'Company.CompanyCreditHistory.pagination.itemsRange',\n itemsPerPageLabel: 'Company.CompanyCreditHistory.pagination.itemsPerPage',\n showLabel: 'Company.CompanyCreditHistory.pagination.show',\n perPageLabel: 'Company.CompanyCreditHistory.pagination.perPage',\n // Accessibility labels\n ariaDataLoaded: 'Company.CompanyCreditHistory.ariaLabels.dataLoaded',\n ariaDataError: 'Company.CompanyCreditHistory.ariaLabels.dataError',\n ariaLoadingHistory: 'Company.CompanyCreditHistory.ariaLabels.loadingHistory',\n ariaHistoryTable: 'Company.CompanyCreditHistory.ariaLabels.historyTable',\n ariaPaginationNav: 'Company.CompanyCreditHistory.ariaLabels.paginationNav',\n ariaPageSizeSelector: 'Company.CompanyCreditHistory.ariaLabels.pageSizeSelector',\n ariaPreviousPage: 'Company.CompanyCreditHistory.ariaLabels.previousPage',\n ariaNextPage: 'Company.CompanyCreditHistory.ariaLabels.nextPage',\n ariaGoToPage: 'Company.CompanyCreditHistory.ariaLabels.goToPage',\n ariaCurrentPage: 'Company.CompanyCreditHistory.ariaLabels.currentPage',\n ariaShowingHistory: 'Company.CompanyCreditHistory.ariaLabels.showingHistory',\n ariaPageNavigation: 'Company.CompanyCreditHistory.ariaLabels.pageNavigation',\n });\n\n // Use the credit history hook - component now manages its own data\n const {\n items,\n loading,\n currentPage,\n pageSize,\n totalItems,\n totalPages,\n announcement,\n handlePageSizeChange,\n handlePreviousPage,\n handleNextPage,\n handlePageChange,\n refreshCreditHistory,\n } = useCompanyCreditHistory({\n initialParams,\n translations: {\n ariaDataLoaded: translations.ariaDataLoaded,\n ariaDataError: translations.ariaDataError\n }\n });\n\n // Calculate item range for display\n const startItem = totalItems === 0 ? 0 : (currentPage - 1) * pageSize + 1;\n const endItem = Math.min(currentPage * pageSize, totalItems);\n\n // Generate page numbers to display\n const getPageNumbers = (): (number | string)[] => {\n if (totalPages <= 5) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const pages: (number | string)[] = [];\n \n if (currentPage <= 3) {\n pages.push(1, 2, 3, 4, '...', totalPages);\n } else if (currentPage >= totalPages - 2) {\n pages.push(1, '...', totalPages - 3, totalPages - 2, totalPages - 1, totalPages);\n } else {\n pages.push(1, '...', currentPage - 1, currentPage, currentPage + 1, '...', totalPages);\n }\n\n return pages;\n };\n\n // Listen to company context changes\n useEffect(() => {\n const handleCompanyContextChange = () => {\n refreshCreditHistory();\n };\n\n const subscription = events.on(\n 'companyContext/changed',\n handleCompanyContextChange,\n { eager: true }\n );\n \n return () => {\n subscription?.off?.();\n };\n }, [refreshCreditHistory]);\n\n // Prepare table columns - memoized to prevent unnecessary re-renders\n const columns = useMemo(() => [\n { key: 'date', label: translations.dateColumn },\n { key: 'operation', label: translations.operationColumn },\n { key: 'amount', label: translations.amountColumn },\n { key: 'outstandingBalance', label: translations.outstandingBalanceColumn },\n { key: 'availableCredit', label: translations.availableCreditColumn },\n { key: 'creditLimit', label: translations.creditLimitColumn },\n { key: 'customReference', label: translations.customReferenceColumn },\n { key: 'updatedBy', label: translations.updatedByColumn }\n ], [\n translations.dateColumn,\n translations.operationColumn, \n translations.amountColumn,\n translations.outstandingBalanceColumn,\n translations.availableCreditColumn,\n translations.creditLimitColumn,\n translations.customReferenceColumn,\n translations.updatedByColumn\n ]);\n\n // Prepare table row data - memoized for performance\n const rowData = useMemo(() => items.map((item) => ({\n date: new Date(item.date).toLocaleDateString(),\n operation: formatOperationType(item.type),\n amount: item.amount.value === 0 ? '' : (\n <span>\n <Price \n amount={item.amount.value} \n currency={item.amount.currency}\n size=\"small\"\n className=\"company-management-price-normal\"\n />\n </span>\n ),\n outstandingBalance: (\n <Price \n amount={item.balance.outstandingBalance.value} \n currency={item.balance.outstandingBalance.currency}\n size=\"small\"\n className=\"company-management-price-normal\"\n />\n ),\n availableCredit: (\n <Price \n amount={item.balance.availableCredit.value} \n currency={item.balance.availableCredit.currency}\n size=\"small\"\n className=\"company-management-price-normal\"\n />\n ),\n creditLimit: (\n <Price \n amount={item.balance.creditLimit.value} \n currency={item.balance.creditLimit.currency}\n size=\"small\"\n className=\"company-management-price-normal\"\n />\n ),\n customReference: item.customReferenceNumber || '',\n updatedBy: item.updatedBy.name\n })), [items]);\n\n return (\n <section {...props} className={classes(['company-management-company-credit-history-display', className])}>\n {/* Screen reader announcements */}\n <div className=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {announcement}\n </div>\n\n {/* Table with loading state */}\n <div aria-busy={loading}>\n {loading ? (\n <div className=\"loadingContainer\" role=\"status\" aria-live=\"polite\">\n <CompanyCreditHistoryLoader testId=\"companyCreditHistoryLoader\" />\n </div>\n ) : (\n <>\n {!items.length ? (\n <div className=\"company-management-company-credit-history-empty\">\n <p>{translations.noData}</p>\n </div>\n ) : (\n <Table\n className=\"company-management-company-credit-history-table\"\n columns={columns}\n rowData={rowData}\n mobileLayout=\"stacked\"\n aria-label={translations.ariaHistoryTable}\n summary={translations.ariaShowingHistory.replace('{count}', items.length.toString())}\n />\n )}\n </>\n )}\n </div>\n\n {/* Pagination controls */}\n {!loading && items.length > 0 && (\n <nav aria-label={translations.ariaPaginationNav} className=\"paginationContainer\">\n {/* Items range on the left */}\n <div aria-live=\"polite\" aria-atomic=\"true\">\n {translations.itemsRangeText\n .replace('{start}', startItem.toString())\n .replace('{end}', endItem.toString())\n .replace('{total}', totalItems.toString())}\n </div>\n\n {/* Pagination buttons in the center (only show when multiple pages) */}\n {totalPages > 1 && (\n <div className=\"paginationButtons\" role=\"group\" aria-label={translations.ariaPageNavigation}>\n <Button\n variant=\"secondary\"\n onClick={handlePreviousPage}\n disabled={currentPage === 1 || loading}\n aria-label={translations.ariaPreviousPage}\n className=\"paginationButton\"\n >\n <\n </Button>\n \n {getPageNumbers().map((pageNum, index) => (\n pageNum === '...' ? (\n <span key={`ellipsis-${index}`} className=\"paginationEllipsis\">\n ...\n </span>\n ) : (\n <Button\n key={pageNum}\n variant={currentPage === pageNum ? 'primary' : 'secondary'}\n onClick={() => handlePageChange?.(pageNum as number)}\n disabled={loading}\n aria-label={currentPage === pageNum \n ? translations.ariaCurrentPage.replace('{page}', String(pageNum))\n : translations.ariaGoToPage.replace('{page}', String(pageNum))\n }\n aria-current={currentPage === pageNum ? 'page' : undefined}\n className=\"paginationButton\"\n >\n {pageNum}\n </Button>\n )\n ))}\n\n <Button\n variant=\"secondary\"\n onClick={handleNextPage}\n disabled={currentPage === totalPages || loading}\n aria-label={translations.ariaNextPage}\n className=\"paginationButton\"\n >\n >\n </Button>\n </div>\n )}\n\n {/* Page size picker on the right */}\n <div className=\"pageSizeSelector\">\n <label htmlFor=\"page-size-select\" id=\"page-size-label\">\n <span>{translations.showLabel}</span>\n </label>\n <Picker\n id=\"page-size-select\"\n name=\"pageSize\"\n value={pageSize.toString()}\n options={PAGE_SIZE_OPTIONS}\n handleSelect={handlePageSizeChange}\n aria-labelledby=\"page-size-label\"\n aria-describedby=\"page-size-description\"\n />\n <span id=\"page-size-description\">{translations.perPageLabel}</span>\n </div>\n </nav>\n )}\n </section>\n );\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n \nimport { HTMLAttributes } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { CompanyCreditDisplay } from '@/company-management/components/CompanyCreditDisplay';\nimport { CompanyCreditHistoryDisplay } from '@/company-management/components/CompanyCreditHistoryDisplay';\nimport { GetCompanyCreditHistoryParams } from '@/company-management/types/api/getCompanyCreditHistoryParams.types';\n\nexport interface CompanyCreditProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Optional parameters for credit history filtering and pagination\n */\n creditHistoryParams?: GetCompanyCreditHistoryParams;\n \n /**\n * Whether to show the credit history section\n */\n showCreditHistory?: boolean;\n}\n \nexport const CompanyCredit: Container<CompanyCreditProps> = ({ \n creditHistoryParams = {}, \n showCreditHistory = true,\n className,\n children,\n ...props \n}) => {\n return (\n <section {...props} className={className}>\n <CompanyCreditDisplay />\n \n {showCreditHistory && (\n <CompanyCreditHistoryDisplay\n initialParams={creditHistoryParams}\n style={{ marginTop: '24px' }}\n />\n )}\n\n {children}\n </section>\n );\n};\n"],"names":["DEFAULT_PAGE_SIZE","FIRST_PAGE","useCompanyCreditHistory","initialParams","translations","items","setItems","useState","loading","setLoading","currentPage","setCurrentPage","pageSize","setPageSize","totalItems","setTotalItems","totalPages","setTotalPages","announcement","setAnnouncement","translationsRef","useRef","initialParamsRef","apiParams","useMemo","fetchCreditHistory","useCallback","response","getCompanyCreditHistory","_a","error","useEffect","handlePageSizeChange","event","value","newSize","handlePreviousPage","handleNextPage","handlePageChange","page","refreshCreditHistory","CompanyCreditDisplay","className","props","useText","companyCreditData","setCompanyCreditData","setError","inFlightRef","didInitialFetchRef","fetchCompanyCredit","companyCreditInfo","getCompanyCredit","handleCompanyContextChange","subscription","events","jsx","Card","CompanyCreditLoader","InLineAlert","jsxs","Price","_b","_c","_d","_e","_f","_g","_h","_i","PAGE_SIZE_OPTIONS","formatOperationType","operationType","word","CompanyCreditHistoryDisplay","startItem","endItem","getPageNumbers","_","i","pages","columns","rowData","item","classes","CompanyCreditHistoryLoader","Fragment","Table","Button","pageNum","index","Picker","CompanyCredit","creditHistoryParams","showCreditHistory","children"],"mappings":"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"}
|