@dropins/storefront-quote-management 0.0.1-alpha21 → 0.0.1-alpha23

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.
Files changed (64) hide show
  1. package/api/getStoreConfig/getStoreConfig.d.ts +4 -0
  2. package/api/getStoreConfig/graphql/StoreConfigQuery.d.ts +10 -0
  3. package/api/{getCustomerData → getStoreConfig}/index.d.ts +1 -1
  4. package/api/index.d.ts +1 -1
  5. package/api.js +29 -40
  6. package/api.js.map +1 -1
  7. package/chunks/ChevronDown.js +4 -0
  8. package/chunks/ChevronDown.js.map +1 -0
  9. package/chunks/NegotiableQuoteFragment.js +129 -0
  10. package/chunks/NegotiableQuoteFragment.js.map +1 -1
  11. package/chunks/QuoteHistoryLog.js +1 -1
  12. package/chunks/QuoteHistoryLog.js.map +1 -1
  13. package/chunks/dateUtils.js +4 -0
  14. package/chunks/dateUtils.js.map +1 -0
  15. package/chunks/fetch-graphql.js +1 -1
  16. package/chunks/fetch-graphql.js.map +1 -1
  17. package/chunks/getQuoteTemplates.js +1 -1
  18. package/chunks/negotiableQuotes.js +1 -1
  19. package/chunks/renameNegotiableQuote.js +1 -1
  20. package/chunks/state.js +1 -1
  21. package/chunks/state.js.map +1 -1
  22. package/chunks/updateQuantities.js +2 -2
  23. package/chunks/uploadFile.js +3 -3
  24. package/containers/ManageNegotiableQuote.js +1 -1
  25. package/containers/ManageNegotiableQuote.js.map +1 -1
  26. package/containers/OrderSummary.js +1 -1
  27. package/containers/OrderSummary.js.map +1 -1
  28. package/containers/QuoteHistoryLog.js +1 -1
  29. package/containers/QuoteSummaryList/QuoteSummaryList.d.ts +51 -0
  30. package/{data/transforms/__fixtures__/customerData.d.ts → containers/QuoteSummaryList/index.d.ts} +3 -2
  31. package/containers/QuoteSummaryList.d.ts +3 -0
  32. package/containers/QuoteSummaryList.js +4 -0
  33. package/containers/QuoteSummaryList.js.map +1 -0
  34. package/containers/QuoteTemplatesListTable.js +1 -1
  35. package/containers/QuoteTemplatesListTable.js.map +1 -1
  36. package/containers/RequestNegotiableQuoteForm.js +1 -1
  37. package/containers/index.d.ts +1 -0
  38. package/data/models/__fixtures__/negotiableQuoteModel.d.ts +1 -0
  39. package/data/models/__fixtures__/storeConfigModel.d.ts +5 -0
  40. package/data/models/index.d.ts +0 -1
  41. package/data/models/negotiable-quote-model.d.ts +33 -5
  42. package/data/models/store-config-model.d.ts +5 -2
  43. package/data/transforms/__fixtures__/negotiableQuoteData.d.ts +216 -0
  44. package/data/transforms/__fixtures__/storeConfigData.d.ts +31 -0
  45. package/data/transforms/index.d.ts +1 -1
  46. package/data/transforms/transform-store-config.d.ts +4 -0
  47. package/hooks/useQuoteSummaryData.d.ts +10 -0
  48. package/i18n/en_US.json.d.ts +12 -0
  49. package/lib/configurationTransformers.d.ts +27 -0
  50. package/lib/itemFormatters.d.ts +47 -0
  51. package/lib/priceCalculators.d.ts +41 -0
  52. package/lib/state.d.ts +3 -0
  53. package/package.json +1 -1
  54. package/render.js +1 -1
  55. package/render.js.map +1 -1
  56. package/types/state.types.d.ts +6 -0
  57. package/utils/dateUtils.d.ts +6 -0
  58. package/utils/mapAuthPermissions.d.ts +39 -0
  59. package/api/getCustomerData/getCustomerData.d.ts +0 -10
  60. package/api/getCustomerData/graphql/CustomerQuery.d.ts +0 -2
  61. package/api/graphql/CustomerFragment.d.ts +0 -2
  62. package/data/models/__fixtures__/customerModel.d.ts +0 -4
  63. package/data/models/customer-model.d.ts +0 -18
  64. package/data/transforms/transform-customer.d.ts +0 -15
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as t,jsxs as d,Fragment as pe}from"@dropins/tools/preact-jsx-runtime.js";import*as be from"@dropins/tools/preact-compat.js";import{useState as s,useMemo as h,useEffect as w,useCallback as q,createPortal as ee}from"@dropins/tools/preact-compat.js";import{classes as m,VComponent as v,Slot as p,getGlobalLocale as Ge}from"@dropins/tools/lib.js";/* empty css */import{Picker as Oe,Skeleton as $e,SkeletonRow as E,Modal as Ve,Input as Xe,TextArea as he,Button as U,InLineAlert as T}from"@dropins/tools/components.js";import{events as R}from"@dropins/tools/event-bus.js";/* empty css */import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";import{I as Je,C as fe}from"../chunks/ItemsQuoted.js";/* empty css *//* empty css *//* empty css */import{useText as Me}from"@dropins/tools/i18n.js";import{S as Ke}from"../chunks/ShippingAddressDisplay.js";import{Q as Ye}from"../chunks/QuoteHistoryLog.js";import"../chunks/state.js";import{g as Ze,r as Ae,c as ea,s as aa,d as ta}from"../chunks/renameNegotiableQuote.js";import{Q as na}from"../chunks/QuoteCommentsList.js";import{a as W,S as ae}from"../chunks/WarningFilled.js";import"../chunks/updateQuantities.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/NegotiableQuoteFragment.js";const oa=b=>be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"feather feather-edit-2",...b},be.createElement("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})),ra=({className:b,dropdownPlaceholder:a,dropdownOptions:i,handleDropdownChange:_,buttons:u,...e})=>{const g=i&&i.length>0,M=u&&u.length>0,f=(i==null?void 0:i.map(c=>({text:c.label,value:c.value})))||[];return f.unshift({text:a||"",value:""}),t("div",{className:"quote-management-actions-bar__container","data-testid":"actions-bar-container",children:d("div",{className:m(["quote-management-actions-bar",b]),"data-testid":"actions-bar",...e,children:[g&&t(Oe,{name:"dropdown",id:"dropdown",onInput:_,className:"quote-management-actions-bar__dropdown","data-testid":"dropdown",options:f}),M&&t("div",{className:"quote-management-actions-bar__buttons","data-testid":"buttons-container",children:u==null?void 0:u.map((c,Q)=>t(v,{node:c,className:m(["quote-management-actions-bar__button"])},Q))})]})})},ia=({className:b,loading:a,quoteName:i,quoteStatus:_,banner:u,details:e,actionBar:g,quoteContent:M,shippingInformationTitle:f,shippingInformation:c,quoteCommentsTitle:Q,quoteComments:S,footer:N,...y})=>a?t(ma,{}):d("div",{...y,className:m(["quote-management-manage-negotiable-quote",b]),children:[d("div",{className:m(["quote-management-manage-negotiable-quote__header"]),children:[i&&t(v,{node:i,className:m(["quote-management-manage-negotiable-quote__quote-name"])}),_&&t(v,{node:_,className:m(["quote-management-manage-negotiable-quote__quote-status"])})]}),u&&t(v,{node:u,className:m(["quote-management-manage-negotiable-quote__banner"])}),e&&t(v,{node:e,className:m(["quote-management-manage-negotiable-quote__details"])}),g&&t(v,{node:g,className:m(["quote-management-manage-negotiable-quote__action-bar"])}),M&&t(v,{node:M,className:m(["quote-management-manage-negotiable-quote__quote-content"])}),d("div",{"data-testid":"quote-shipping-information-container",className:m(["quote-management-manage-negotiable-quote__shipping-information-container"]),children:[f&&t(v,{node:f,className:m(["quote-management-manage-negotiable-quote__shipping-information-title"])}),c&&t(v,{node:c,className:m(["quote-management-manage-negotiable-quote__shipping-information"])})]}),d("div",{"data-testid":"quote-comments-container",className:m(["quote-management-manage-negotiable-quote__quote-comments-container"]),children:[Q&&t(v,{node:Q,className:m(["quote-management-manage-negotiable-quote__quote-comments-title"])}),S&&t(v,{node:S,className:m(["quote-management-manage-negotiable-quote__quote-comments"])})]}),t(v,{node:N,className:m(["quote-management-manage-negotiable-quote__footer"])})]}),ma=()=>d($e,{"data-testid":"manage-negotiable-quote-skeleton",children:[t(E,{variant:"heading",fullWidth:!0,size:"large"}),t(E,{variant:"row",fullWidth:!1,size:"small"}),t(E,{variant:"row",fullWidth:!1,size:"small"}),t(E,{variant:"row",fullWidth:!0}),t(E,{variant:"row",fullWidth:!0,size:"xlarge",lines:2}),t(E,{variant:"row",fullWidth:!1,size:"small"})]}),la=({className:b,tabs:a,tabsContent:i,defaultActiveTab:_,...u})=>{const[e,g]=s(_||Array.from(a.keys())[0]),M=c=>{g(c)},f=h(()=>i.get(e),[e,i]);return d("div",{...u,className:m(["quote-management-tabbed-content",b]),children:[a&&t("div",{"data-testid":"tabbed-content-tabs",className:m(["quote-management-tabbed-content__tabs"]),children:Array.from(a.entries()).map(([c,Q])=>t("button",{className:m(["quote-management-tabbed-content__tab",["quote-management-tabbed-content__tab--active",c===e]]),onClick:()=>M(c),children:Q},c))}),f&&t("div",{className:m(["quote-management-tabbed-content__active-tab-content"]),children:t(v,{node:f})})]})},ca=({className:b,open:a,quoteName:i,renameReason:_,quoteNameError:u,errorBanner:e,successBanner:g,showCloseButton:M=!0,onQuoteNameChange:f,onRenameReasonChange:c,onSave:Q,onClose:S})=>{const N=Me({title:"NegotiableQuote.Manage.rename.title",quoteNameLabel:"NegotiableQuote.Manage.rename.quoteNameLabel",reasonLabel:"NegotiableQuote.Manage.rename.reasonLabel",renameButton:"NegotiableQuote.Manage.rename.renameButton",cancelButton:"NegotiableQuote.Manage.rename.cancelButton"});return a?d(Ve,{open:a,size:"medium",title:t(pe,{children:N.title}),onClose:S,clickToDismiss:!0,escapeToDismiss:!0,showCloseButton:M,className:m(["quote-management-rename-quote-modal",b]),"data-testid":"rename-quote-modal",children:[e&&t("div",{className:m(["quote-management-rename-quote-modal__error-banner"]),"data-testid":"rename-quote-modal-error-banner",children:e}),g&&t("div",{className:m(["quote-management-rename-quote-modal__success-banner"]),"data-testid":"rename-quote-modal-success-banner",children:g}),d("div",{className:m(["quote-management-rename-quote-modal__content"]),children:[d("div",{children:[t(Xe,{name:"quoteName",type:"text",value:i,onInput:y=>f(y.target.value),floatingLabel:N.quoteNameLabel,required:!0,error:!!u}),u&&t("span",{className:m(["quote-management-rename-quote-modal__error-text"]),children:u})]}),t(he,{name:"quoteComment",value:_,onInput:y=>c(y.target.value),label:N.reasonLabel,rows:3})]}),d("div",{className:m(["quote-management-rename-quote-modal__actions"]),children:[t(U,{variant:"secondary",size:"medium",onClick:S,className:m(["quote-management-rename-quote-modal__cancel-button"]),children:N.cancelButton}),t(U,{variant:"primary",size:"medium",onClick:Q,className:m(["quote-management-rename-quote-modal__save-button"]),children:N.renameButton})]})]}):null},Ha=({onActionsDropdownChange:b,slots:a,onActionsButtonClick:i,onSendForReview:_,...u})=>{const[e,g]=s(void 0),[M,f]=s(!0),[c,Q]=s(!1),[S,N]=s(null),[y,H]=s(!1),[C,te]=s(""),[I,j]=s(!1),[ne,G]=s(!1),[oe,O]=s(!1),[re,L]=s(""),[ie,D]=s(""),[me,$]=s(!1),[k,B]=s(""),[V,P]=s(""),[X,F]=s(""),[Ne,x]=s(""),[J,z]=s(""),n=Me({createdLabel:"NegotiableQuote.Manage.createdLabel",salesRepLabel:"NegotiableQuote.Manage.salesRepLabel",expiresLabel:"NegotiableQuote.Manage.expiresLabel",actionsLabel:"NegotiableQuote.Manage.actionsLabel",remove:"NegotiableQuote.Manage.actions.remove",close:"NegotiableQuote.Manage.actionButtons.close",delete:"NegotiableQuote.Manage.actionButtons.delete",print:"NegotiableQuote.Manage.actionButtons.print",createTemplate:"NegotiableQuote.Manage.actionButtons.createTemplate",createCopy:"NegotiableQuote.Manage.actionButtons.createCopy",shippingInformationTitle:"NegotiableQuote.Manage.shippingInformation.title",quoteCommentsTitle:"NegotiableQuote.Manage.quoteComments.title",quoteCommentsPlaceholder:"NegotiableQuote.Manage.quoteComments.placeholder",sendForReview:"NegotiableQuote.Manage.actionButtons.sendForReview",bannerTitle:"NegotiableQuote.Manage.bannerTitle",statusSubmitted:"NegotiableQuote.Manage.bannerStatusMessages.submitted",statusPending:"NegotiableQuote.Manage.bannerStatusMessages.pending",statusExpired:"NegotiableQuote.Manage.bannerStatusMessages.expired",errorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",closeSuccessMessage:"NegotiableQuote.Manage.confirmationModal.close.successDescription",closeModalTitle:"NegotiableQuote.Manage.actionButtons.close",closeModalMessage:"NegotiableQuote.Manage.confirmationModal.close.message",closeModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",closeModalConfirm:"NegotiableQuote.Manage.confirmationModal.close.confirm",closeModalConfirmLoading:"NegotiableQuote.Manage.confirmationModal.close.confirmLoading",closeModalSuccessHeading:"NegotiableQuote.Manage.confirmationModal.close.successHeading",renameErrorHeading:"NegotiableQuote.Manage.rename.errorHeading",renameQuoteNameRequired:"NegotiableQuote.Manage.rename.quoteNameRequired",renameErrorDefault:"NegotiableQuote.Manage.rename.errorDefault",renameSuccessHeading:"NegotiableQuote.Manage.rename.successHeading",renameSuccessMessage:"NegotiableQuote.Manage.rename.successMessage",confirmationModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",confirmationModalDeleteTitle:"NegotiableQuote.Manage.confirmationModal.delete.title",confirmationModalDeleteMessage:"NegotiableQuote.Manage.confirmationModal.delete.message",confirmationModalDeleteConfirm:"NegotiableQuote.Manage.confirmationModal.delete.confirm",confirmationModalDeleteErrorHeading:"NegotiableQuote.Manage.confirmationModal.delete.errorHeading",confirmationModalDeleteErrorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",confirmationModalDeleteSuccessHeading:"NegotiableQuote.Manage.confirmationModal.delete.successHeading",confirmationModalDeleteSuccessDescription:"NegotiableQuote.Manage.confirmationModal.delete.successDescription"});w(()=>{const o=R.on("quote-management/quote-data",l=>{const{quote:r}=l;r&&(g(r),f(!1))},{eager:!0});return()=>o==null?void 0:o.off()},[]),w(()=>{const o=R.on("quote-management/shipping-address-set",l=>{const{quote:r}=l;r&&g(r)},{eager:!0});return()=>o==null?void 0:o.off()},[]),w(()=>{const o=R.on("quote-management/quote-sent-for-review",l=>{const{quote:r}=l;g(r),te(""),j(!1)},{eager:!0});return()=>o==null?void 0:o.off()},[]),w(()=>{const o=R.on("quote-management/negotiable-quote-closed",async l=>{O(!1),D(""),L(n.closeSuccessMessage),g(r=>{var Z;return r!=null&&r.uid&&((Z=l.closedQuoteUids)!=null&&Z.includes(r.uid))&&Ze(r.uid).then(A=>{g(A)}).catch(A=>{console.warn("Failed to refresh quote data after closure:",A)}),r}),setTimeout(()=>{G(!1),L("")},2e3)},{eager:!0});return()=>o==null?void 0:o.off()},[n.closeSuccessMessage]),w(()=>{const o=R.on("quote-management/negotiable-quote-close-error",l=>{console.log("Close error event received:",l),O(!1),L("");const r=l.error.message||n.errorFallback;D(r)},{eager:!0});return()=>o==null?void 0:o.off()},[n.errorFallback]),w(()=>{const o=R.on("quote-management/quote-renamed",l=>{const{quote:r}=l;g(r),F(""),x(""),z(n.renameSuccessMessage),setTimeout(()=>{$(!1),B(""),P(""),z("")},2e3)},{eager:!0});return()=>o==null?void 0:o.off()},[n.renameSuccessMessage]);const le=q(()=>{B((e==null?void 0:e.name)||""),P(""),F(""),x(""),z(""),$(!0)},[e]),qe=q(()=>{$(!1),B(""),P(""),F(""),x(""),z("")},[]),ve=q(o=>{B(o),o.trim()&&x("")},[]),_e=q(async()=>{if(!k.trim()){x(n.renameQuoteNameRequired);return}try{F(""),x(""),await Ae({quoteUid:e.uid,quoteName:k,quoteComment:V.trim()||void 0})}catch(o){F(o.message||n.renameErrorDefault)}},[e,k,V,n.renameQuoteNameRequired,n.renameErrorDefault]),Qe=h(()=>{const o=e&&(e.lockedForEditing===!0||e.lockedForEditing===void 0&&(e.status==="SUBMITTED"||e.status==="PENDING"||e.status==="ORDERED"||e.status==="CLOSED"));return t(p,{name:"QuoteName",slot:a==null?void 0:a.QuoteName,context:{quoteName:e==null?void 0:e.name,quoteData:e},children:d("div",{className:"quote-management-manage-negotiable-quote__quote-name-wrapper",children:[t("h1",{"data-testid":"quote-name",className:"quote-management-manage-negotiable-quote__quote-name-title",children:e==null?void 0:e.name}),t("button",{onClick:le,disabled:o,"data-testid":"rename-quote-button",className:"quote-management-manage-negotiable-quote__rename-button","aria-label":"Rename quote",children:t(oa,{})})]})})},[a==null?void 0:a.QuoteName,e,le]),Se=h(()=>t(p,{name:"QuoteStatus",slot:a==null?void 0:a.QuoteStatus,context:{quoteStatus:e==null?void 0:e.status,quoteData:e},children:t("div",{"data-testid":"quote-status",children:e==null?void 0:e.status})}),[a==null?void 0:a.QuoteStatus,e]),ce=q(o=>{switch(o){case"SUBMITTED":return n.statusSubmitted;case"PENDING":return n.statusPending;case"EXPIRED":return n.statusExpired;default:return null}},[n])(e==null?void 0:e.status),se=ce&&t(T,{type:"warning",variant:"secondary",icon:t(W,{}),heading:n.bannerTitle,description:ce}),ye=se&&t(p,{name:"Banner","data-testid":"banner",slot:a==null?void 0:a.Banner,context:{quoteData:e},children:se}),Ce=h(()=>{if(!e)return null;const o=Ge()||"en-US",l=new Intl.DateTimeFormat(o,{year:"numeric",month:"long",day:"numeric"});let r;try{r=l.format(new Date(e.expirationDate))}catch{r=e.expirationDate}return d(p,{name:"Details",slot:a==null?void 0:a.Details,context:{quoteData:e},children:[d("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"created-label",children:n.createdLabel}),d("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"created-value",children:[l.format(new Date(e.createdAt))," (",e.buyer.firstname," ",e.buyer.lastname,")"]})]}),d("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"sales-rep-label",children:n.salesRepLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"sales-rep-value",children:e.salesRepName})]}),d("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"expires-label",children:n.expiresLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"expires-value",children:r})]})]})},[a==null?void 0:a.Details,n,e]),de=h(()=>[{label:n.close,value:"close",disabled:!(e!=null&&e.canClose)},{label:n.delete,value:"delete",disabled:!(e!=null&&e.canDelete)},{label:n.print,value:"print"},{label:n.createTemplate,value:"createTemplate"},{label:n.createCopy,value:"createCopy"}],[n,e==null?void 0:e.canDelete,e==null?void 0:e.canClose]),Te=h(()=>{const o=r=>{b==null||b(r)},l=r=>{switch(r){case"close":G(!0),D(""),L(""),i==null||i(r);break;case"delete":Q(!0),i==null||i(r);break;case"print":i==null||i(r);break;case"createTemplate":i==null||i(r);break;case"createCopy":i==null||i(r);break}};return t(p,{name:"ActionBar",slot:a==null?void 0:a.ActionBar,context:{quoteData:e},children:t(ra,{dropdownPlaceholder:n.actionsLabel,dropdownOptions:[{label:n.remove,value:"remove"}],handleDropdownChange:o,buttons:de.map(r=>t(U,{variant:"tertiary",onClick:()=>l(r.value),"data-testid":`actions-bar-${r.value}-button`,"data-action":r.value,disabled:r.disabled,children:r.label},r.value))})})},[de,n,a==null?void 0:a.ActionBar,e,b,i]),Le=h(()=>t(p,{name:"QuoteContent",slot:a==null?void 0:a.QuoteContent,context:{quoteData:e},children:t(la,{tabs:new Map([["items-quoted","Items Quoted"],["comments","Comments"],["history-log","History Log"]]),tabsContent:new Map([["items-quoted",t(p,{name:"ItemsQuotedTab",slot:a==null?void 0:a.ItemsQuotedTab,context:{quoteData:e},children:t(Je,{quoteData:e})},"items-quoted")],["comments",t(p,{name:"CommentsTab",slot:a==null?void 0:a.CommentsTab,context:{quoteData:e},children:t(na,{quoteData:e})},"comments")],["history-log",t(p,{name:"HistoryLogTab",slot:a==null?void 0:a.HistoryLogTab,context:{quoteData:e},children:t(Ye,{quoteData:e})},"history-log")]])})}),[a==null?void 0:a.QuoteContent,a==null?void 0:a.HistoryLogTab,a==null?void 0:a.CommentsTab,a==null?void 0:a.ItemsQuotedTab,e]),xe=h(()=>t(p,{name:"ShippingInformationTitle",slot:a==null?void 0:a.ShippingInformationTitle,context:{quoteData:e},children:t("h2",{children:n.shippingInformationTitle})}),[a==null?void 0:a.ShippingInformationTitle,e,n]),we=h(()=>t(p,{name:"ShippingInformation",slot:a==null?void 0:a.ShippingInformation,context:{quoteData:e,loading:M,setLoading:f},children:t(Ke,{quoteData:e,loading:M,"data-testid":"manage-quote-shipping-address"})}),[a==null?void 0:a.ShippingInformation,e,M,f]),Ee=h(()=>t(p,{name:"QuoteCommentsTitle",slot:a==null?void 0:a.QuoteCommentsTitle,context:{quoteData:e},children:t("h2",{children:n.quoteCommentsTitle})}),[a==null?void 0:a.QuoteCommentsTitle,n,e]),Re=h(()=>t(p,{name:"QuoteComments",slot:a==null?void 0:a.QuoteComments,context:{quoteData:e},children:t(he,{name:"quoteComments",placeholder:n.quoteCommentsPlaceholder,rows:3,value:C,onInput:o=>{te(o.target.value)},disabled:I})}),[a==null?void 0:a.QuoteComments,n,e,C,I]),Ie=q(async()=>{if(e!=null&&e.uid){O(!0),D(""),L("");try{await ea({quoteUids:[e.uid]})}catch(o){console.error("Failed to close quote:",o)}}},[e]),De=q(()=>{G(!1),D(""),L("")},[]),ue=q(async()=>{if(_){_({quoteData:e,comment:C.trim()||void 0});return}j(!0);try{await aa({quoteUid:e.uid,comment:C.trim()||void 0})}catch(o){console.error("Failed to send quote for review:",o),j(!1)}},[e,_,C]),Fe=h(()=>t(p,{name:"Footer",slot:a==null?void 0:a.Footer,context:{quoteData:e,comment:C,isSubmitting:I},children:t(U,{variant:"primary",onClick:ue,"data-testid":"send-for-review-button",disabled:!(e!=null&&e.canSendForReview)||I||!e,children:n.sendForReview})}),[a==null?void 0:a.Footer,n,e,C,I,ue]),He=h(()=>X?t(T,{type:"error",variant:"primary",icon:t(W,{color:"var(--color-error)"}),heading:n.renameErrorHeading,description:X}):void 0,[X,n.renameErrorHeading]),ke=h(()=>J?t(T,{type:"success",variant:"primary",icon:t(ae,{}),heading:n.renameSuccessHeading,description:J}):void 0,[J,n.renameSuccessHeading]),K=q(o=>o.errors&&Array.isArray(o.errors)&&o.errors.length>0?o.errors[0].message||n.confirmationModalDeleteErrorFallback:(o==null?void 0:o.message)||n.confirmationModalDeleteErrorFallback,[n.confirmationModalDeleteErrorFallback]),Be=q(()=>{Q(!1),N(null),H(!1)},[]),Pe=q(async()=>{if(e!=null&&e.uid){N(null),H(!1);try{const{operationResults:o}=await ta(e.uid),l=o.find(r=>r.__typename==="DeleteNegotiableQuoteOperationFailure");if(l){const r=K(l);N(r);return}H(!0)}catch(o){const l=K(o);N(l)}}},[e,K]),ze=q(()=>{N(null)},[]),We=q(()=>{H(!1)},[]),Ue=S?t(T,{type:"error",variant:"primary",icon:t(W,{}),heading:n.confirmationModalDeleteErrorHeading,description:S,onDismiss:ze,"data-testid":"confirmation-modal-error-banner"}):null,ge=(y?t(T,{type:"success",variant:"primary",icon:t(ae,{}),heading:n.confirmationModalDeleteSuccessHeading,description:n.confirmationModalDeleteSuccessDescription,onDismiss:We,"data-testid":"confirmation-modal-success-banner"}):null)||Ue,je={...u,loading:M,quoteName:Qe,quoteStatus:Se,banner:ye||void 0,details:Ce,actionBar:Te,quoteContent:Le,shippingInformationTitle:xe,shippingInformation:we,quoteCommentsTitle:Ee,quoteComments:Re,footer:Fe};let Y=null;return re?Y=t(T,{type:"success",variant:"primary",icon:t(ae,{}),heading:n.closeModalSuccessHeading,description:re,"data-testid":"close-quote-success-banner"}):ie&&(Y=t(T,{type:"error",variant:"primary",icon:t(W,{}),heading:n.confirmationModalDeleteErrorHeading,description:ie,"data-testid":"close-quote-error-banner"})),d(pe,{children:[t(ia,{...je}),me&&ee(t(ca,{open:me,quoteName:k,renameReason:V,quoteNameError:Ne,errorBanner:He,successBanner:ke,onQuoteNameChange:ve,onRenameReasonChange:P,onSave:_e,onClose:qe}),document.body),c&&ee(t(fe,{open:c,title:n.confirmationModalDeleteTitle,message:n.confirmationModalDeleteMessage,cancelLabel:n.confirmationModalCancel,confirmLabel:n.confirmationModalDeleteConfirm,onCancel:Be,onConfirm:Pe,showCloseButton:!ge,confirmationBanner:ge}),document.body),ne&&ee(t(fe,{open:ne,title:n.closeModalTitle,message:n.closeModalMessage,cancelLabel:n.closeModalCancel,confirmLabel:oe?n.closeModalConfirmLoading:n.closeModalConfirm,onCancel:De,onConfirm:oe?void 0:Ie,showCloseButton:!0,confirmationBanner:Y,"data-testid":"close-quote-confirmation-modal"}),document.body)]})};export{Ha as ManageNegotiableQuote,Ha as default};
3
+ import{jsx as t,jsxs as d,Fragment as pe}from"@dropins/tools/preact-jsx-runtime.js";import*as be from"@dropins/tools/preact-compat.js";import{useState as s,useMemo as h,useEffect as w,useCallback as q,createPortal as ee}from"@dropins/tools/preact-compat.js";import{classes as m,VComponent as v,Slot as p,getGlobalLocale as Ge}from"@dropins/tools/lib.js";/* empty css */import{Picker as Oe,Skeleton as $e,SkeletonRow as E,Modal as Ve,Input as Xe,TextArea as he,Button as U,InLineAlert as T}from"@dropins/tools/components.js";import{events as R}from"@dropins/tools/event-bus.js";/* empty css */import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";import{I as Je,C as fe}from"../chunks/ItemsQuoted.js";/* empty css *//* empty css *//* empty css */import{useText as Me}from"@dropins/tools/i18n.js";import{S as Ke}from"../chunks/ShippingAddressDisplay.js";import{Q as Ye}from"../chunks/QuoteHistoryLog.js";import{g as Ze,r as Ae,c as ea,s as aa,d as ta}from"../chunks/renameNegotiableQuote.js";import"../chunks/state.js";import{Q as na}from"../chunks/QuoteCommentsList.js";import{a as W,S as ae}from"../chunks/WarningFilled.js";import"../chunks/updateQuantities.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/NegotiableQuoteFragment.js";import"../chunks/dateUtils.js";const oa=b=>be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"feather feather-edit-2",...b},be.createElement("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})),ra=({className:b,dropdownPlaceholder:a,dropdownOptions:i,handleDropdownChange:_,buttons:u,...e})=>{const g=i&&i.length>0,M=u&&u.length>0,f=(i==null?void 0:i.map(c=>({text:c.label,value:c.value})))||[];return f.unshift({text:a||"",value:""}),t("div",{className:"quote-management-actions-bar__container","data-testid":"actions-bar-container",children:d("div",{className:m(["quote-management-actions-bar",b]),"data-testid":"actions-bar",...e,children:[g&&t(Oe,{name:"dropdown",id:"dropdown",onInput:_,className:"quote-management-actions-bar__dropdown","data-testid":"dropdown",options:f}),M&&t("div",{className:"quote-management-actions-bar__buttons","data-testid":"buttons-container",children:u==null?void 0:u.map((c,Q)=>t(v,{node:c,className:m(["quote-management-actions-bar__button"])},Q))})]})})},ia=({className:b,loading:a,quoteName:i,quoteStatus:_,banner:u,details:e,actionBar:g,quoteContent:M,shippingInformationTitle:f,shippingInformation:c,quoteCommentsTitle:Q,quoteComments:S,footer:N,...y})=>a?t(ma,{}):d("div",{...y,className:m(["quote-management-manage-negotiable-quote",b]),children:[d("div",{className:m(["quote-management-manage-negotiable-quote__header"]),children:[i&&t(v,{node:i,className:m(["quote-management-manage-negotiable-quote__quote-name"])}),_&&t(v,{node:_,className:m(["quote-management-manage-negotiable-quote__quote-status"])})]}),u&&t(v,{node:u,className:m(["quote-management-manage-negotiable-quote__banner"])}),e&&t(v,{node:e,className:m(["quote-management-manage-negotiable-quote__details"])}),g&&t(v,{node:g,className:m(["quote-management-manage-negotiable-quote__action-bar"])}),M&&t(v,{node:M,className:m(["quote-management-manage-negotiable-quote__quote-content"])}),d("div",{"data-testid":"quote-shipping-information-container",className:m(["quote-management-manage-negotiable-quote__shipping-information-container"]),children:[f&&t(v,{node:f,className:m(["quote-management-manage-negotiable-quote__shipping-information-title"])}),c&&t(v,{node:c,className:m(["quote-management-manage-negotiable-quote__shipping-information"])})]}),d("div",{"data-testid":"quote-comments-container",className:m(["quote-management-manage-negotiable-quote__quote-comments-container"]),children:[Q&&t(v,{node:Q,className:m(["quote-management-manage-negotiable-quote__quote-comments-title"])}),S&&t(v,{node:S,className:m(["quote-management-manage-negotiable-quote__quote-comments"])})]}),t(v,{node:N,className:m(["quote-management-manage-negotiable-quote__footer"])})]}),ma=()=>d($e,{"data-testid":"manage-negotiable-quote-skeleton",children:[t(E,{variant:"heading",fullWidth:!0,size:"large"}),t(E,{variant:"row",fullWidth:!1,size:"small"}),t(E,{variant:"row",fullWidth:!1,size:"small"}),t(E,{variant:"row",fullWidth:!0}),t(E,{variant:"row",fullWidth:!0,size:"xlarge",lines:2}),t(E,{variant:"row",fullWidth:!1,size:"small"})]}),la=({className:b,tabs:a,tabsContent:i,defaultActiveTab:_,...u})=>{const[e,g]=s(_||Array.from(a.keys())[0]),M=c=>{g(c)},f=h(()=>i.get(e),[e,i]);return d("div",{...u,className:m(["quote-management-tabbed-content",b]),children:[a&&t("div",{"data-testid":"tabbed-content-tabs",className:m(["quote-management-tabbed-content__tabs"]),children:Array.from(a.entries()).map(([c,Q])=>t("button",{className:m(["quote-management-tabbed-content__tab",["quote-management-tabbed-content__tab--active",c===e]]),onClick:()=>M(c),children:Q},c))}),f&&t("div",{className:m(["quote-management-tabbed-content__active-tab-content"]),children:t(v,{node:f})})]})},ca=({className:b,open:a,quoteName:i,renameReason:_,quoteNameError:u,errorBanner:e,successBanner:g,showCloseButton:M=!0,onQuoteNameChange:f,onRenameReasonChange:c,onSave:Q,onClose:S})=>{const N=Me({title:"NegotiableQuote.Manage.rename.title",quoteNameLabel:"NegotiableQuote.Manage.rename.quoteNameLabel",reasonLabel:"NegotiableQuote.Manage.rename.reasonLabel",renameButton:"NegotiableQuote.Manage.rename.renameButton",cancelButton:"NegotiableQuote.Manage.rename.cancelButton"});return a?d(Ve,{open:a,size:"medium",title:t(pe,{children:N.title}),onClose:S,clickToDismiss:!0,escapeToDismiss:!0,showCloseButton:M,className:m(["quote-management-rename-quote-modal",b]),"data-testid":"rename-quote-modal",children:[e&&t("div",{className:m(["quote-management-rename-quote-modal__error-banner"]),"data-testid":"rename-quote-modal-error-banner",children:e}),g&&t("div",{className:m(["quote-management-rename-quote-modal__success-banner"]),"data-testid":"rename-quote-modal-success-banner",children:g}),d("div",{className:m(["quote-management-rename-quote-modal__content"]),children:[d("div",{children:[t(Xe,{name:"quoteName",type:"text",value:i,onInput:y=>f(y.target.value),floatingLabel:N.quoteNameLabel,required:!0,error:!!u}),u&&t("span",{className:m(["quote-management-rename-quote-modal__error-text"]),children:u})]}),t(he,{name:"quoteComment",value:_,onInput:y=>c(y.target.value),label:N.reasonLabel,rows:3})]}),d("div",{className:m(["quote-management-rename-quote-modal__actions"]),children:[t(U,{variant:"secondary",size:"medium",onClick:S,className:m(["quote-management-rename-quote-modal__cancel-button"]),children:N.cancelButton}),t(U,{variant:"primary",size:"medium",onClick:Q,className:m(["quote-management-rename-quote-modal__save-button"]),children:N.renameButton})]})]}):null},ka=({onActionsDropdownChange:b,slots:a,onActionsButtonClick:i,onSendForReview:_,...u})=>{const[e,g]=s(void 0),[M,f]=s(!0),[c,Q]=s(!1),[S,N]=s(null),[y,H]=s(!1),[C,te]=s(""),[I,j]=s(!1),[ne,G]=s(!1),[oe,O]=s(!1),[re,L]=s(""),[ie,D]=s(""),[me,$]=s(!1),[k,B]=s(""),[V,P]=s(""),[X,F]=s(""),[Ne,x]=s(""),[J,z]=s(""),n=Me({createdLabel:"NegotiableQuote.Manage.createdLabel",salesRepLabel:"NegotiableQuote.Manage.salesRepLabel",expiresLabel:"NegotiableQuote.Manage.expiresLabel",actionsLabel:"NegotiableQuote.Manage.actionsLabel",remove:"NegotiableQuote.Manage.actions.remove",close:"NegotiableQuote.Manage.actionButtons.close",delete:"NegotiableQuote.Manage.actionButtons.delete",print:"NegotiableQuote.Manage.actionButtons.print",createTemplate:"NegotiableQuote.Manage.actionButtons.createTemplate",createCopy:"NegotiableQuote.Manage.actionButtons.createCopy",shippingInformationTitle:"NegotiableQuote.Manage.shippingInformation.title",quoteCommentsTitle:"NegotiableQuote.Manage.quoteComments.title",quoteCommentsPlaceholder:"NegotiableQuote.Manage.quoteComments.placeholder",sendForReview:"NegotiableQuote.Manage.actionButtons.sendForReview",bannerTitle:"NegotiableQuote.Manage.bannerTitle",statusSubmitted:"NegotiableQuote.Manage.bannerStatusMessages.submitted",statusPending:"NegotiableQuote.Manage.bannerStatusMessages.pending",statusExpired:"NegotiableQuote.Manage.bannerStatusMessages.expired",errorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",closeSuccessMessage:"NegotiableQuote.Manage.confirmationModal.close.successDescription",closeModalTitle:"NegotiableQuote.Manage.actionButtons.close",closeModalMessage:"NegotiableQuote.Manage.confirmationModal.close.message",closeModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",closeModalConfirm:"NegotiableQuote.Manage.confirmationModal.close.confirm",closeModalConfirmLoading:"NegotiableQuote.Manage.confirmationModal.close.confirmLoading",closeModalSuccessHeading:"NegotiableQuote.Manage.confirmationModal.close.successHeading",renameErrorHeading:"NegotiableQuote.Manage.rename.errorHeading",renameQuoteNameRequired:"NegotiableQuote.Manage.rename.quoteNameRequired",renameErrorDefault:"NegotiableQuote.Manage.rename.errorDefault",renameSuccessHeading:"NegotiableQuote.Manage.rename.successHeading",renameSuccessMessage:"NegotiableQuote.Manage.rename.successMessage",confirmationModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",confirmationModalDeleteTitle:"NegotiableQuote.Manage.confirmationModal.delete.title",confirmationModalDeleteMessage:"NegotiableQuote.Manage.confirmationModal.delete.message",confirmationModalDeleteConfirm:"NegotiableQuote.Manage.confirmationModal.delete.confirm",confirmationModalDeleteErrorHeading:"NegotiableQuote.Manage.confirmationModal.delete.errorHeading",confirmationModalDeleteErrorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",confirmationModalDeleteSuccessHeading:"NegotiableQuote.Manage.confirmationModal.delete.successHeading",confirmationModalDeleteSuccessDescription:"NegotiableQuote.Manage.confirmationModal.delete.successDescription"});w(()=>{const o=R.on("quote-management/quote-data",l=>{const{quote:r}=l;r&&(g(r),f(!1))},{eager:!0});return()=>o==null?void 0:o.off()},[]),w(()=>{const o=R.on("quote-management/shipping-address-set",l=>{const{quote:r}=l;r&&g(r)},{eager:!0});return()=>o==null?void 0:o.off()},[]),w(()=>{const o=R.on("quote-management/quote-sent-for-review",l=>{const{quote:r}=l;g(r),te(""),j(!1)},{eager:!0});return()=>o==null?void 0:o.off()},[]),w(()=>{const o=R.on("quote-management/negotiable-quote-closed",async l=>{O(!1),D(""),L(n.closeSuccessMessage),g(r=>{var Z;return r!=null&&r.uid&&((Z=l.closedQuoteUids)!=null&&Z.includes(r.uid))&&Ze(r.uid).then(A=>{g(A)}).catch(A=>{console.warn("Failed to refresh quote data after closure:",A)}),r}),setTimeout(()=>{G(!1),L("")},2e3)},{eager:!0});return()=>o==null?void 0:o.off()},[n.closeSuccessMessage]),w(()=>{const o=R.on("quote-management/negotiable-quote-close-error",l=>{console.log("Close error event received:",l),O(!1),L("");const r=l.error.message||n.errorFallback;D(r)},{eager:!0});return()=>o==null?void 0:o.off()},[n.errorFallback]),w(()=>{const o=R.on("quote-management/quote-renamed",l=>{const{quote:r}=l;g(r),F(""),x(""),z(n.renameSuccessMessage),setTimeout(()=>{$(!1),B(""),P(""),z("")},2e3)},{eager:!0});return()=>o==null?void 0:o.off()},[n.renameSuccessMessage]);const le=q(()=>{B((e==null?void 0:e.name)||""),P(""),F(""),x(""),z(""),$(!0)},[e]),qe=q(()=>{$(!1),B(""),P(""),F(""),x(""),z("")},[]),ve=q(o=>{B(o),o.trim()&&x("")},[]),_e=q(async()=>{if(!k.trim()){x(n.renameQuoteNameRequired);return}try{F(""),x(""),await Ae({quoteUid:e.uid,quoteName:k,quoteComment:V.trim()||void 0})}catch(o){F(o.message||n.renameErrorDefault)}},[e,k,V,n.renameQuoteNameRequired,n.renameErrorDefault]),Qe=h(()=>{const o=e&&(e.lockedForEditing===!0||e.lockedForEditing===void 0&&(e.status==="SUBMITTED"||e.status==="PENDING"||e.status==="ORDERED"||e.status==="CLOSED"));return t(p,{name:"QuoteName",slot:a==null?void 0:a.QuoteName,context:{quoteName:e==null?void 0:e.name,quoteData:e},children:d("div",{className:"quote-management-manage-negotiable-quote__quote-name-wrapper",children:[t("h1",{"data-testid":"quote-name",className:"quote-management-manage-negotiable-quote__quote-name-title",children:e==null?void 0:e.name}),t("button",{onClick:le,disabled:o,"data-testid":"rename-quote-button",className:"quote-management-manage-negotiable-quote__rename-button","aria-label":"Rename quote",children:t(oa,{})})]})})},[a==null?void 0:a.QuoteName,e,le]),Se=h(()=>t(p,{name:"QuoteStatus",slot:a==null?void 0:a.QuoteStatus,context:{quoteStatus:e==null?void 0:e.status,quoteData:e},children:t("div",{"data-testid":"quote-status",children:e==null?void 0:e.status})}),[a==null?void 0:a.QuoteStatus,e]),ce=q(o=>{switch(o){case"SUBMITTED":return n.statusSubmitted;case"PENDING":return n.statusPending;case"EXPIRED":return n.statusExpired;default:return null}},[n])(e==null?void 0:e.status),se=ce&&t(T,{type:"warning",variant:"secondary",icon:t(W,{}),heading:n.bannerTitle,description:ce}),ye=se&&t(p,{name:"Banner","data-testid":"banner",slot:a==null?void 0:a.Banner,context:{quoteData:e},children:se}),Ce=h(()=>{if(!e)return null;const o=Ge()||"en-US",l=new Intl.DateTimeFormat(o,{year:"numeric",month:"long",day:"numeric"});let r;try{r=l.format(new Date(e.expirationDate))}catch{r=e.expirationDate}return d(p,{name:"Details",slot:a==null?void 0:a.Details,context:{quoteData:e},children:[d("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"created-label",children:n.createdLabel}),d("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"created-value",children:[l.format(new Date(e.createdAt))," (",e.buyer.firstname," ",e.buyer.lastname,")"]})]}),d("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"sales-rep-label",children:n.salesRepLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"sales-rep-value",children:e.salesRepName})]}),d("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"expires-label",children:n.expiresLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"expires-value",children:r})]})]})},[a==null?void 0:a.Details,n,e]),de=h(()=>[{label:n.close,value:"close",disabled:!(e!=null&&e.canClose)},{label:n.delete,value:"delete",disabled:!(e!=null&&e.canDelete)},{label:n.print,value:"print"},{label:n.createTemplate,value:"createTemplate"},{label:n.createCopy,value:"createCopy"}],[n,e==null?void 0:e.canDelete,e==null?void 0:e.canClose]),Te=h(()=>{const o=r=>{b==null||b(r)},l=r=>{switch(r){case"close":G(!0),D(""),L(""),i==null||i(r);break;case"delete":Q(!0),i==null||i(r);break;case"print":i==null||i(r);break;case"createTemplate":i==null||i(r);break;case"createCopy":i==null||i(r);break}};return t(p,{name:"ActionBar",slot:a==null?void 0:a.ActionBar,context:{quoteData:e},children:t(ra,{dropdownPlaceholder:n.actionsLabel,dropdownOptions:[{label:n.remove,value:"remove"}],handleDropdownChange:o,buttons:de.map(r=>t(U,{variant:"tertiary",onClick:()=>l(r.value),"data-testid":`actions-bar-${r.value}-button`,"data-action":r.value,disabled:r.disabled,children:r.label},r.value))})})},[de,n,a==null?void 0:a.ActionBar,e,b,i]),Le=h(()=>t(p,{name:"QuoteContent",slot:a==null?void 0:a.QuoteContent,context:{quoteData:e},children:t(la,{tabs:new Map([["items-quoted","Items Quoted"],["comments","Comments"],["history-log","History Log"]]),tabsContent:new Map([["items-quoted",t(p,{name:"ItemsQuotedTab",slot:a==null?void 0:a.ItemsQuotedTab,context:{quoteData:e},children:t(Je,{quoteData:e})},"items-quoted")],["comments",t(p,{name:"CommentsTab",slot:a==null?void 0:a.CommentsTab,context:{quoteData:e},children:t(na,{quoteData:e})},"comments")],["history-log",t(p,{name:"HistoryLogTab",slot:a==null?void 0:a.HistoryLogTab,context:{quoteData:e},children:t(Ye,{quoteData:e})},"history-log")]])})}),[a==null?void 0:a.QuoteContent,a==null?void 0:a.HistoryLogTab,a==null?void 0:a.CommentsTab,a==null?void 0:a.ItemsQuotedTab,e]),xe=h(()=>t(p,{name:"ShippingInformationTitle",slot:a==null?void 0:a.ShippingInformationTitle,context:{quoteData:e},children:t("h2",{children:n.shippingInformationTitle})}),[a==null?void 0:a.ShippingInformationTitle,e,n]),we=h(()=>t(p,{name:"ShippingInformation",slot:a==null?void 0:a.ShippingInformation,context:{quoteData:e,loading:M,setLoading:f},children:t(Ke,{quoteData:e,loading:M,"data-testid":"manage-quote-shipping-address"})}),[a==null?void 0:a.ShippingInformation,e,M,f]),Ee=h(()=>t(p,{name:"QuoteCommentsTitle",slot:a==null?void 0:a.QuoteCommentsTitle,context:{quoteData:e},children:t("h2",{children:n.quoteCommentsTitle})}),[a==null?void 0:a.QuoteCommentsTitle,n,e]),Re=h(()=>t(p,{name:"QuoteComments",slot:a==null?void 0:a.QuoteComments,context:{quoteData:e},children:t(he,{name:"quoteComments",placeholder:n.quoteCommentsPlaceholder,rows:3,value:C,onInput:o=>{te(o.target.value)},disabled:I})}),[a==null?void 0:a.QuoteComments,n,e,C,I]),Ie=q(async()=>{if(e!=null&&e.uid){O(!0),D(""),L("");try{await ea({quoteUids:[e.uid]})}catch(o){console.error("Failed to close quote:",o)}}},[e]),De=q(()=>{G(!1),D(""),L("")},[]),ue=q(async()=>{if(_){_({quoteData:e,comment:C.trim()||void 0});return}j(!0);try{await aa({quoteUid:e.uid,comment:C.trim()||void 0})}catch(o){console.error("Failed to send quote for review:",o),j(!1)}},[e,_,C]),Fe=h(()=>t(p,{name:"Footer",slot:a==null?void 0:a.Footer,context:{quoteData:e,comment:C,isSubmitting:I},children:t(U,{variant:"primary",onClick:ue,"data-testid":"send-for-review-button",disabled:!(e!=null&&e.canSendForReview)||I||!e,children:n.sendForReview})}),[a==null?void 0:a.Footer,n,e,C,I,ue]),He=h(()=>X?t(T,{type:"error",variant:"primary",icon:t(W,{color:"var(--color-error)"}),heading:n.renameErrorHeading,description:X}):void 0,[X,n.renameErrorHeading]),ke=h(()=>J?t(T,{type:"success",variant:"primary",icon:t(ae,{}),heading:n.renameSuccessHeading,description:J}):void 0,[J,n.renameSuccessHeading]),K=q(o=>o.errors&&Array.isArray(o.errors)&&o.errors.length>0?o.errors[0].message||n.confirmationModalDeleteErrorFallback:(o==null?void 0:o.message)||n.confirmationModalDeleteErrorFallback,[n.confirmationModalDeleteErrorFallback]),Be=q(()=>{Q(!1),N(null),H(!1)},[]),Pe=q(async()=>{if(e!=null&&e.uid){N(null),H(!1);try{const{operationResults:o}=await ta(e.uid),l=o.find(r=>r.__typename==="DeleteNegotiableQuoteOperationFailure");if(l){const r=K(l);N(r);return}H(!0)}catch(o){const l=K(o);N(l)}}},[e,K]),ze=q(()=>{N(null)},[]),We=q(()=>{H(!1)},[]),Ue=S?t(T,{type:"error",variant:"primary",icon:t(W,{}),heading:n.confirmationModalDeleteErrorHeading,description:S,onDismiss:ze,"data-testid":"confirmation-modal-error-banner"}):null,ge=(y?t(T,{type:"success",variant:"primary",icon:t(ae,{}),heading:n.confirmationModalDeleteSuccessHeading,description:n.confirmationModalDeleteSuccessDescription,onDismiss:We,"data-testid":"confirmation-modal-success-banner"}):null)||Ue,je={...u,loading:M,quoteName:Qe,quoteStatus:Se,banner:ye||void 0,details:Ce,actionBar:Te,quoteContent:Le,shippingInformationTitle:xe,shippingInformation:we,quoteCommentsTitle:Ee,quoteComments:Re,footer:Fe};let Y=null;return re?Y=t(T,{type:"success",variant:"primary",icon:t(ae,{}),heading:n.closeModalSuccessHeading,description:re,"data-testid":"close-quote-success-banner"}):ie&&(Y=t(T,{type:"error",variant:"primary",icon:t(W,{}),heading:n.confirmationModalDeleteErrorHeading,description:ie,"data-testid":"close-quote-error-banner"})),d(pe,{children:[t(ia,{...je}),me&&ee(t(ca,{open:me,quoteName:k,renameReason:V,quoteNameError:Ne,errorBanner:He,successBanner:ke,onQuoteNameChange:ve,onRenameReasonChange:P,onSave:_e,onClose:qe}),document.body),c&&ee(t(fe,{open:c,title:n.confirmationModalDeleteTitle,message:n.confirmationModalDeleteMessage,cancelLabel:n.confirmationModalCancel,confirmLabel:n.confirmationModalDeleteConfirm,onCancel:Be,onConfirm:Pe,showCloseButton:!ge,confirmationBanner:ge}),document.body),ne&&ee(t(fe,{open:ne,title:n.closeModalTitle,message:n.closeModalMessage,cancelLabel:n.closeModalCancel,confirmLabel:oe?n.closeModalConfirmLoading:n.closeModalConfirm,onCancel:De,onConfirm:oe?void 0:Ie,showCloseButton:!0,confirmationBanner:Y,"data-testid":"close-quote-confirmation-modal"}),document.body)]})};export{ka as ManageNegotiableQuote,ka as default};
4
4
  //# sourceMappingURL=ManageNegotiableQuote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManageNegotiableQuote.js","sources":["../../node_modules/@adobe-commerce/elsie/src/icons/Edit.svg","/@dropins/storefront-quote-management/src/components/ActionsBar/ActionsBar.tsx","/@dropins/storefront-quote-management/src/components/ManageNegotiableQuote/ManageNegotiableQuote.tsx","/@dropins/storefront-quote-management/src/components/TabbedContent/TabbedContent.tsx","/@dropins/storefront-quote-management/src/components/RenameQuoteModal/RenameQuoteModal.tsx","/@dropins/storefront-quote-management/src/containers/ManageNegotiableQuote/ManageNegotiableQuote.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgEdit = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\", className: \"feather feather-edit-2\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\" }));\nexport default SvgEdit;\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes, VComponent } from '@adobe-commerce/elsie/lib';\nimport '@/quote-management/components/ActionsBar/ActionsBar.css';\nimport { Picker } from '@adobe-commerce/elsie/components';\n\nexport interface ActionsBarProps extends HTMLAttributes<HTMLDivElement> {\n dropdownPlaceholder?: string;\n dropdownOptions?: {\n label: string;\n value: string;\n }[];\n handleDropdownChange?: (event: Event) => void;\n buttons?: VNode[];\n}\n\nexport const ActionsBar: FunctionComponent<ActionsBarProps> = ({\n className,\n dropdownPlaceholder,\n dropdownOptions,\n handleDropdownChange,\n buttons,\n ...props\n}) => {\n const hasDropdown = dropdownOptions && dropdownOptions.length > 0;\n const hasButtons = buttons && buttons.length > 0;\n\n const pickerOptions = dropdownOptions?.map((option) => ({\n text: option.label,\n value: option.value,\n })) || [];\n pickerOptions.unshift({\n text: dropdownPlaceholder || '',\n value: '',\n });\n\n return (\n <div className=\"quote-management-actions-bar__container\" data-testid=\"actions-bar-container\">\n <div className={classes(['quote-management-actions-bar', className])} data-testid=\"actions-bar\" {...props}>\n {hasDropdown && (\n <Picker\n name=\"dropdown\"\n id=\"dropdown\"\n onInput={handleDropdownChange}\n className=\"quote-management-actions-bar__dropdown\"\n data-testid=\"dropdown\"\n options={pickerOptions}\n />\n )}\n {hasButtons && (\n <div className=\"quote-management-actions-bar__buttons\" data-testid=\"buttons-container\">\n {buttons?.map((button, index) => (\n <VComponent\n node={button}\n className={classes(['quote-management-actions-bar__button'])}\n key={index}\n />\n ))}\n </div>\n )}\n </div>\n </div>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes, VComponent } from '@adobe-commerce/elsie/lib';\nimport '@/quote-management/components/ManageNegotiableQuote/ManageNegotiableQuote.css';\nimport { Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\n\nexport interface ManageNegotiableQuoteProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n loading?: boolean;\n quoteName: VNode;\n quoteStatus: VNode;\n banner?: VNode;\n details: VNode;\n actionBar?: VNode;\n quoteContent: VNode;\n shippingInformationTitle: VNode;\n shippingInformation: VNode;\n quoteCommentsTitle: VNode;\n quoteComments: VNode;\n footer: VNode;\n}\n\nexport const ManageNegotiableQuote: FunctionComponent<ManageNegotiableQuoteProps> = ({\n className,\n loading,\n quoteName,\n quoteStatus,\n banner,\n details,\n actionBar,\n quoteContent,\n shippingInformationTitle,\n shippingInformation,\n quoteCommentsTitle,\n quoteComments,\n footer,\n ...props\n}) => {\n if (loading) {\n return <ManageNegotiableQuoteSkeleton />;\n }\n\n return (\n <div {...props} className={classes(['quote-management-manage-negotiable-quote', className])}>\n <div className={classes(['quote-management-manage-negotiable-quote__header'])}>\n {quoteName &&\n <VComponent\n node={quoteName}\n className={classes(['quote-management-manage-negotiable-quote__quote-name'])}\n />\n }\n {quoteStatus &&\n <VComponent\n node={quoteStatus}\n className={classes(['quote-management-manage-negotiable-quote__quote-status'])}\n />\n }\n </div>\n {banner &&\n <VComponent\n node={banner}\n className={classes(['quote-management-manage-negotiable-quote__banner'])}\n />\n }\n {details &&\n <VComponent\n node={details}\n className={classes(['quote-management-manage-negotiable-quote__details'])}\n />\n }\n {actionBar &&\n <VComponent\n node={actionBar}\n className={classes(['quote-management-manage-negotiable-quote__action-bar'])}\n />\n }\n {quoteContent &&\n <VComponent\n node={quoteContent}\n className={classes(['quote-management-manage-negotiable-quote__quote-content'])}\n />\n }\n <div data-testid=\"quote-shipping-information-container\" className={classes(['quote-management-manage-negotiable-quote__shipping-information-container'])}>\n {shippingInformationTitle &&\n <VComponent\n node={shippingInformationTitle}\n className={classes(['quote-management-manage-negotiable-quote__shipping-information-title'])}\n />\n }\n {shippingInformation &&\n <VComponent\n node={shippingInformation}\n className={classes(['quote-management-manage-negotiable-quote__shipping-information'])}\n />\n }\n </div>\n <div data-testid=\"quote-comments-container\" className={classes(['quote-management-manage-negotiable-quote__quote-comments-container'])}>\n {quoteCommentsTitle &&\n <VComponent\n node={quoteCommentsTitle}\n className={classes(['quote-management-manage-negotiable-quote__quote-comments-title'])}\n />\n }\n {quoteComments &&\n <VComponent\n node={quoteComments}\n className={classes(['quote-management-manage-negotiable-quote__quote-comments'])}\n />\n }\n </div>\n <VComponent\n node={footer}\n className={classes(['quote-management-manage-negotiable-quote__footer'])}\n />\n </div>\n );\n};\n\nexport const ManageNegotiableQuoteSkeleton: FunctionComponent = () => {\n return (\n <Skeleton data-testid=\"manage-negotiable-quote-skeleton\">\n <SkeletonRow variant=\"heading\" fullWidth={true} size=\"large\" />\n <SkeletonRow variant=\"row\" fullWidth={false} size=\"small\" />\n <SkeletonRow variant=\"row\" fullWidth={false} size=\"small\" />\n <SkeletonRow variant=\"row\" fullWidth={true} />\n <SkeletonRow variant=\"row\" fullWidth={true} size=\"xlarge\" lines={2} />\n <SkeletonRow variant=\"row\" fullWidth={false} size=\"small\" />\n </Skeleton>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes, useMemo, useState } from 'preact/compat';\nimport { classes, VComponent } from '@adobe-commerce/elsie/lib';\nimport '@/quote-management/components/TabbedContent/TabbedContent.css';\n\nexport interface TabbedContentProps extends HTMLAttributes<HTMLDivElement> {\n tabs: Map<string, string>;\n tabsContent: Map<string, VNode>;\n defaultActiveTab?: string;\n}\n\nexport const TabbedContent: FunctionComponent<TabbedContentProps> = ({\n className,\n tabs,\n tabsContent,\n defaultActiveTab,\n ...props\n}) => {\n const [activeTabId, setActiveTabId] = useState<string>(\n defaultActiveTab || Array.from(tabs.keys())[0]\n );\n\n const handleTabClick = (tabId: string) => {\n setActiveTabId(tabId);\n };\n\n const activeTabContent = useMemo(() => {\n return tabsContent.get(activeTabId);\n }, [activeTabId, tabsContent]);\n\n return (\n <div {...props} className={classes(['quote-management-tabbed-content', className])}>\n {tabs &&\n <div data-testid=\"tabbed-content-tabs\" className={classes(['quote-management-tabbed-content__tabs'])}>\n {Array.from(tabs.entries()).map(([tabId, tabLabel]) => (\n <button\n className={\n classes([\n 'quote-management-tabbed-content__tab',\n ['quote-management-tabbed-content__tab--active', tabId === activeTabId]\n ])}\n key={tabId}\n onClick={() => handleTabClick(tabId)}\n >\n {tabLabel}\n </button>\n ))}\n </div>\n }\n {\n activeTabContent &&\n <div className={classes(['quote-management-tabbed-content__active-tab-content'])}>\n <VComponent\n node={activeTabContent as VNode}\n />\n </div>\n }\n </div>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { Button, Input, TextArea, Modal } from '@adobe-commerce/elsie/components';\nimport '@/quote-management/components/RenameQuoteModal/RenameQuoteModal.css';\n\nexport interface RenameQuoteModalProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n open: boolean;\n quoteName: string;\n renameReason: string;\n quoteNameError?: string;\n errorBanner?: VNode;\n successBanner?: VNode;\n showCloseButton?: boolean;\n onQuoteNameChange: (value: string) => void;\n onRenameReasonChange: (value: string) => void;\n onSave: () => void;\n onClose?: () => void;\n}\n\nexport const RenameQuoteModal: FunctionComponent<RenameQuoteModalProps> = ({\n className,\n open,\n quoteName,\n renameReason,\n quoteNameError,\n errorBanner,\n successBanner,\n showCloseButton = true,\n onQuoteNameChange,\n onRenameReasonChange,\n onSave,\n onClose,\n}) => {\n const dictionary = useText({\n title: 'NegotiableQuote.Manage.rename.title',\n quoteNameLabel: 'NegotiableQuote.Manage.rename.quoteNameLabel',\n reasonLabel: 'NegotiableQuote.Manage.rename.reasonLabel',\n renameButton: 'NegotiableQuote.Manage.rename.renameButton',\n cancelButton: 'NegotiableQuote.Manage.rename.cancelButton',\n });\n\n if (!open) {\n return null;\n }\n\n return (\n <Modal\n open={open}\n size=\"medium\"\n title={<>{dictionary.title}</>}\n onClose={onClose}\n clickToDismiss={true}\n escapeToDismiss={true}\n showCloseButton={showCloseButton}\n className={classes(['quote-management-rename-quote-modal', className])}\n data-testid=\"rename-quote-modal\"\n >\n {errorBanner && (\n <div className={classes(['quote-management-rename-quote-modal__error-banner'])} data-testid=\"rename-quote-modal-error-banner\">\n {errorBanner}\n </div>\n )}\n\n {successBanner && (\n <div className={classes(['quote-management-rename-quote-modal__success-banner'])} data-testid=\"rename-quote-modal-success-banner\">\n {successBanner}\n </div>\n )}\n\n <div className={classes(['quote-management-rename-quote-modal__content'])}>\n <div>\n <Input\n name=\"quoteName\"\n type=\"text\"\n value={quoteName}\n onInput={(e: any) => onQuoteNameChange(e.target.value)}\n floatingLabel={dictionary.quoteNameLabel}\n required\n error={!!quoteNameError}\n />\n {quoteNameError && (\n <span className={classes(['quote-management-rename-quote-modal__error-text'])}>\n {quoteNameError}\n </span>\n )}\n </div>\n\n <TextArea\n name=\"quoteComment\"\n value={renameReason}\n onInput={(e: any) => onRenameReasonChange(e.target.value)}\n label={dictionary.reasonLabel}\n rows={3}\n />\n </div>\n\n <div className={classes(['quote-management-rename-quote-modal__actions'])}>\n <Button \n variant=\"secondary\"\n size=\"medium\"\n onClick={onClose}\n className={classes(['quote-management-rename-quote-modal__cancel-button'])}\n >\n {dictionary.cancelButton}\n </Button>\n <Button \n variant=\"primary\"\n size=\"medium\"\n onClick={onSave}\n className={classes(['quote-management-rename-quote-modal__save-button'])}\n >\n {dictionary.renameButton}\n </Button>\n </div>\n </Modal>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport {\n HTMLAttributes,\n useCallback,\n useEffect,\n useMemo,\n useState,\n createPortal,\n} from 'preact/compat';\nimport {\n Container,\n getGlobalLocale,\n Slot,\n SlotProps,\n} from '@adobe-commerce/elsie/lib';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport {\n ManageNegotiableQuote as ManageNegotiableQuoteComponent,\n ManageNegotiableQuoteProps as ManageNegotiableQuoteComponentProps,\n} from '@/quote-management/components/ManageNegotiableQuote';\nimport { events } from '@adobe-commerce/event-bus';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport {\n ActionsBar,\n TabbedContent,\n ConfirmationModal,\n} from '@/quote-management/components';\nimport { ShippingAddressDisplay } from '@/quote-management/containers/ShippingAddressDisplay';\nimport { QuoteHistoryLog } from '@/quote-management/containers/QuoteHistoryLog';\nimport { ItemsQuoted, QuoteCommentsList } from '@/quote-management/containers';\nimport {\n Button,\n InLineAlert,\n TextArea,\n} from '@adobe-commerce/elsie/components';\nimport {\n WarningFilled,\n Edit,\n CheckWithCircle,\n} from '@adobe-commerce/elsie/icons';\nimport {\n deleteQuote,\n sendForReview,\n renameNegotiableQuote,\n closeNegotiableQuote,\n getQuoteData,\n} from '@/quote-management/api';\nimport { RenameQuoteModal } from '@/quote-management/components/RenameQuoteModal';\n\nexport interface ManageNegotiableQuoteProps\n extends HTMLAttributes<HTMLDivElement> {\n onActionsDropdownChange?: (event: Event) => void;\n onActionsButtonClick?: (action: string) => void;\n onSendForReview?: (params: {\n quoteData: NegotiableQuoteModel;\n comment?: string;\n }) => void;\n slots?: {\n QuoteName?: SlotProps<{\n quoteName?: string;\n quoteData?: NegotiableQuoteModel;\n }>;\n QuoteStatus?: SlotProps<{\n quoteStatus?: string;\n quoteData?: NegotiableQuoteModel;\n }>;\n Banner?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n Details?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n ActionBar?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n QuoteContent?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n ItemsQuotedTab?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n CommentsTab?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n HistoryLogTab?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n ShippingInformationTitle?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n ShippingInformation?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n loading?: boolean;\n setLoading?: (loading: boolean) => void;\n }>;\n QuoteCommentsTitle?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n QuoteComments?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n Footer?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n comment?: string;\n isSubmitting?: boolean;\n }>;\n };\n}\n\nexport const ManageNegotiableQuote: Container<ManageNegotiableQuoteProps> = ({\n onActionsDropdownChange,\n slots,\n onActionsButtonClick,\n onSendForReview,\n ...props\n}) => {\n const [quoteData, setQuoteData] = useState<NegotiableQuoteModel | undefined>(\n undefined\n );\n const [loading, setLoading] = useState<boolean>(true);\n const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState<boolean>(false);\n const [deleteError, setDeleteError] = useState<string | null>(null);\n const [deleteSuccess, setDeleteSuccess] = useState<boolean>(false);\n const [comment, setComment] = useState<string>('');\n const [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n const [showCloseModal, setShowCloseModal] = useState<boolean>(false);\n const [isClosing, setIsClosing] = useState<boolean>(false);\n const [modalSuccessMessage, setModalSuccessMessage] = useState<string>('');\n const [modalErrorMessage, setModalErrorMessage] = useState<string>('');\n const [isRenameModalOpen, setIsRenameModalOpen] = useState<boolean>(false);\n const [renameQuoteName, setRenameQuoteName] = useState<string>('');\n const [renameReason, setRenameReason] = useState<string>('');\n const [renameError, setRenameError] = useState<string>('');\n const [renameQuoteNameError, setRenameQuoteNameError] = useState<string>('');\n const [renameSuccess, setRenameSuccess] = useState<string>('');\n\n const dictionary = useText({\n createdLabel: 'NegotiableQuote.Manage.createdLabel',\n salesRepLabel: 'NegotiableQuote.Manage.salesRepLabel',\n expiresLabel: 'NegotiableQuote.Manage.expiresLabel',\n actionsLabel: 'NegotiableQuote.Manage.actionsLabel',\n remove: 'NegotiableQuote.Manage.actions.remove',\n close: 'NegotiableQuote.Manage.actionButtons.close',\n delete: 'NegotiableQuote.Manage.actionButtons.delete',\n print: 'NegotiableQuote.Manage.actionButtons.print',\n createTemplate: 'NegotiableQuote.Manage.actionButtons.createTemplate',\n createCopy: 'NegotiableQuote.Manage.actionButtons.createCopy',\n shippingInformationTitle:\n 'NegotiableQuote.Manage.shippingInformation.title',\n quoteCommentsTitle: 'NegotiableQuote.Manage.quoteComments.title',\n quoteCommentsPlaceholder:\n 'NegotiableQuote.Manage.quoteComments.placeholder',\n sendForReview: 'NegotiableQuote.Manage.actionButtons.sendForReview',\n bannerTitle: 'NegotiableQuote.Manage.bannerTitle',\n statusSubmitted: 'NegotiableQuote.Manage.bannerStatusMessages.submitted',\n statusPending: 'NegotiableQuote.Manage.bannerStatusMessages.pending',\n statusExpired: 'NegotiableQuote.Manage.bannerStatusMessages.expired',\n errorFallback:\n 'NegotiableQuote.Manage.confirmationModal.delete.errorFallback',\n closeSuccessMessage:\n 'NegotiableQuote.Manage.confirmationModal.close.successDescription',\n closeModalTitle: 'NegotiableQuote.Manage.actionButtons.close',\n closeModalMessage: 'NegotiableQuote.Manage.confirmationModal.close.message',\n closeModalCancel: 'NegotiableQuote.Manage.confirmationModal.cancel',\n closeModalConfirm: 'NegotiableQuote.Manage.confirmationModal.close.confirm',\n closeModalConfirmLoading: 'NegotiableQuote.Manage.confirmationModal.close.confirmLoading',\n closeModalSuccessHeading:\n 'NegotiableQuote.Manage.confirmationModal.close.successHeading',\n renameErrorHeading: 'NegotiableQuote.Manage.rename.errorHeading',\n renameQuoteNameRequired: 'NegotiableQuote.Manage.rename.quoteNameRequired',\n renameErrorDefault: 'NegotiableQuote.Manage.rename.errorDefault',\n renameSuccessHeading: 'NegotiableQuote.Manage.rename.successHeading',\n renameSuccessMessage: 'NegotiableQuote.Manage.rename.successMessage',\n confirmationModalCancel: 'NegotiableQuote.Manage.confirmationModal.cancel',\n confirmationModalDeleteTitle:\n 'NegotiableQuote.Manage.confirmationModal.delete.title',\n confirmationModalDeleteMessage:\n 'NegotiableQuote.Manage.confirmationModal.delete.message',\n confirmationModalDeleteConfirm:\n 'NegotiableQuote.Manage.confirmationModal.delete.confirm',\n confirmationModalDeleteErrorHeading:\n 'NegotiableQuote.Manage.confirmationModal.delete.errorHeading',\n confirmationModalDeleteErrorFallback:\n 'NegotiableQuote.Manage.confirmationModal.delete.errorFallback',\n confirmationModalDeleteSuccessHeading:\n 'NegotiableQuote.Manage.confirmationModal.delete.successHeading',\n confirmationModalDeleteSuccessDescription:\n 'NegotiableQuote.Manage.confirmationModal.delete.successDescription',\n });\n /* Event listeners */\n useEffect(() => {\n const quoteDataEvent = events.on(\n 'quote-management/quote-data',\n (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n if (quote) {\n setQuoteData(quote);\n setLoading(false);\n }\n },\n {\n eager: true,\n }\n );\n return () => quoteDataEvent?.off();\n }, []);\n\n // Listen for shipping address set event\n useEffect(() => {\n const shippingAddressSetEvent = events.on(\n 'quote-management/shipping-address-set',\n (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n if (quote) {\n setQuoteData(quote);\n }\n },\n {\n eager: true,\n }\n );\n return () => shippingAddressSetEvent?.off();\n }, []);\n\n // Listen for quote sent for review event\n useEffect(() => {\n const quoteSentForReviewEvent = events.on(\n 'quote-management/quote-sent-for-review',\n (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n setQuoteData(quote);\n setComment(''); // Reset comment after successful submission\n setIsSubmitting(false);\n },\n {\n eager: true,\n }\n );\n return () => quoteSentForReviewEvent?.off();\n }, []);\n\n // Listen for quote closed event\n useEffect(() => {\n const quoteClosedEvent = events.on(\n 'quote-management/negotiable-quote-closed',\n async (data: { closedQuoteUids: string[] }) => {\n setIsClosing(false);\n setModalErrorMessage('');\n // Show success message in modal\n setModalSuccessMessage(dictionary.closeSuccessMessage);\n\n // Refresh quote data if the current quote was closed\n // Use a function to get the current quoteData to avoid stale closure\n setQuoteData((currentQuoteData) => {\n if (currentQuoteData?.uid && data.closedQuoteUids?.includes(currentQuoteData.uid)) {\n // Trigger async refresh\n getQuoteData(currentQuoteData.uid)\n .then((updatedQuoteData) => {\n setQuoteData(updatedQuoteData);\n })\n .catch((error) => {\n console.warn('Failed to refresh quote data after closure:', error);\n });\n }\n return currentQuoteData; // Return current data unchanged for this setter call\n });\n\n // Close modal and redirect after a delay to show success message\n setTimeout(() => {\n setShowCloseModal(false);\n setModalSuccessMessage('');\n }, 2000);\n },\n {\n eager: true,\n }\n );\n return () => quoteClosedEvent?.off();\n }, [dictionary.closeSuccessMessage]);\n\n // Listen for quote close error event\n useEffect(() => {\n const quoteCloseErrorEvent = events.on(\n 'quote-management/negotiable-quote-close-error',\n (data: { error: Error; attemptedQuoteUids: string[] }) => {\n console.log('Close error event received:', data);\n setIsClosing(false);\n setModalSuccessMessage('');\n const errorMsg = data.error.message || dictionary.errorFallback;\n setModalErrorMessage(errorMsg);\n },\n {\n eager: true,\n }\n );\n return () => quoteCloseErrorEvent?.off();\n }, [dictionary.errorFallback]);\n\n // Listen for quote renamed event\n useEffect(() => {\n const quoteRenamedEvent = events.on(\n 'quote-management/quote-renamed',\n (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n setQuoteData(quote);\n setRenameError('');\n setRenameQuoteNameError('');\n setRenameSuccess(dictionary.renameSuccessMessage);\n\n // Wait 2 seconds before closing the modal\n setTimeout(() => {\n setIsRenameModalOpen(false);\n setRenameQuoteName('');\n setRenameReason('');\n setRenameSuccess('');\n }, 2000);\n },\n {\n eager: true,\n }\n );\n return () => quoteRenamedEvent?.off();\n }, [dictionary.renameSuccessMessage]);\n\n /**\n * VNodes for the ManageNegotiableQuote component\n */\n\n // Rename handlers\n const handleRenameClick = useCallback(() => {\n setRenameQuoteName(quoteData?.name || '');\n setRenameReason('');\n setRenameError('');\n setRenameQuoteNameError('');\n setRenameSuccess('');\n setIsRenameModalOpen(true);\n }, [quoteData]);\n\n const handleRenameClose = useCallback(() => {\n setIsRenameModalOpen(false);\n setRenameQuoteName('');\n setRenameReason('');\n setRenameError('');\n setRenameQuoteNameError('');\n setRenameSuccess('');\n }, []);\n\n const handleRenameQuoteNameChange = useCallback((value: string) => {\n setRenameQuoteName(value);\n if (value.trim()) {\n setRenameQuoteNameError('');\n }\n }, []);\n\n const handleRenameSave = useCallback(async () => {\n // Validate quote name\n if (!renameQuoteName.trim()) {\n setRenameQuoteNameError(dictionary.renameQuoteNameRequired);\n return;\n }\n\n try {\n setRenameError('');\n setRenameQuoteNameError('');\n await renameNegotiableQuote({\n quoteUid: quoteData!.uid,\n quoteName: renameQuoteName,\n quoteComment: renameReason.trim() || undefined,\n });\n // The quote-renamed event will handle closing the modal and updating state\n } catch (error) {\n setRenameError((error as Error).message || dictionary.renameErrorDefault);\n }\n }, [\n quoteData,\n renameQuoteName,\n renameReason,\n dictionary.renameQuoteNameRequired,\n dictionary.renameErrorDefault,\n ]);\n\n // Quote name with rename icon\n const quoteName = useMemo(() => {\n // Priority 1: Check lockedForEditing if explicitly set\n // Priority 2: Fall back to status check\n const isLocked =\n quoteData &&\n // If lockedForEditing is explicitly set, use it\n (quoteData.lockedForEditing === true ||\n // Otherwise, lock based on status\n (quoteData.lockedForEditing === undefined &&\n (quoteData.status === 'SUBMITTED' ||\n quoteData.status === 'PENDING' ||\n quoteData.status === 'ORDERED' ||\n quoteData.status === 'CLOSED')));\n\n return (\n <Slot\n name=\"QuoteName\"\n slot={slots?.QuoteName}\n context={{ quoteName: quoteData?.name, quoteData }}\n >\n <div className=\"quote-management-manage-negotiable-quote__quote-name-wrapper\">\n <h1\n data-testid=\"quote-name\"\n className=\"quote-management-manage-negotiable-quote__quote-name-title\"\n >\n {quoteData?.name}\n </h1>\n <button\n onClick={handleRenameClick}\n disabled={isLocked}\n data-testid=\"rename-quote-button\"\n className=\"quote-management-manage-negotiable-quote__rename-button\"\n aria-label=\"Rename quote\"\n >\n <Edit />\n </button>\n </div>\n </Slot>\n );\n }, [slots?.QuoteName, quoteData, handleRenameClick]);\n\n // Quote status\n const quoteStatus = useMemo(() => {\n return (\n <Slot\n name=\"QuoteStatus\"\n slot={slots?.QuoteStatus}\n context={{ quoteStatus: quoteData?.status, quoteData }}\n >\n <div data-testid=\"quote-status\">{quoteData?.status}</div>\n </Slot>\n );\n }, [slots?.QuoteStatus, quoteData]);\n\n // Banner\n const getBannerStatusMessage = useCallback(\n (status: string | undefined) => {\n switch (status) {\n case 'SUBMITTED':\n return dictionary.statusSubmitted;\n case 'PENDING':\n return dictionary.statusPending;\n case 'EXPIRED':\n return dictionary.statusExpired;\n default:\n return null;\n }\n },\n [dictionary]\n );\n\n const bannerMessage = getBannerStatusMessage(quoteData?.status);\n\n const bannerContent = bannerMessage && (\n <InLineAlert\n type=\"warning\"\n variant=\"secondary\"\n icon={<WarningFilled />}\n heading={dictionary.bannerTitle}\n description={bannerMessage}\n />\n );\n\n const banner = bannerContent && (\n <Slot\n name=\"Banner\"\n data-testid=\"banner\"\n slot={slots?.Banner}\n context={{ quoteData }}\n >\n {bannerContent}\n </Slot>\n );\n\n // Details\n const details = useMemo(() => {\n if (!quoteData) {\n return null;\n }\n\n const calculatedLocale = getGlobalLocale() || 'en-US';\n\n const dateFormatter = new Intl.DateTimeFormat(calculatedLocale, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n\n // Some quotes, such as draft quotes, don't have a date formatted expiration date\n let expirationDate;\n try {\n expirationDate = dateFormatter.format(\n new Date(quoteData!.expirationDate)\n );\n } catch (error) {\n expirationDate = quoteData!.expirationDate;\n }\n\n return (\n <Slot name=\"Details\" slot={slots?.Details} context={{ quoteData }}>\n <div className=\"quote-management-manage-negotiable-quote__detail\">\n <span\n className=\"quote-management-manage-negotiable-quote__detail-title\"\n data-testid=\"created-label\"\n >\n {dictionary.createdLabel}\n </span>\n <span\n className=\"quote-management-manage-negotiable-quote__detail-content\"\n data-testid=\"created-value\"\n >\n {dateFormatter.format(new Date(quoteData!.createdAt))} (\n {quoteData!.buyer.firstname} {quoteData!.buyer.lastname})\n </span>\n </div>\n <div className=\"quote-management-manage-negotiable-quote__detail\">\n <span\n className=\"quote-management-manage-negotiable-quote__detail-title\"\n data-testid=\"sales-rep-label\"\n >\n {dictionary.salesRepLabel}\n </span>\n <span\n className=\"quote-management-manage-negotiable-quote__detail-content\"\n data-testid=\"sales-rep-value\"\n >\n {quoteData!.salesRepName}\n </span>\n </div>\n <div className=\"quote-management-manage-negotiable-quote__detail\">\n <span\n className=\"quote-management-manage-negotiable-quote__detail-title\"\n data-testid=\"expires-label\"\n >\n {dictionary.expiresLabel}\n </span>\n <span\n className=\"quote-management-manage-negotiable-quote__detail-content\"\n data-testid=\"expires-value\"\n >\n {expirationDate}\n </span>\n </div>\n </Slot>\n );\n }, [slots?.Details, dictionary, quoteData]);\n\n // Action bar\n const buttons: { label: string; value: string; disabled?: boolean }[] =\n useMemo(() => {\n return [\n {\n label: dictionary.close,\n value: 'close',\n disabled: !quoteData?.canClose,\n },\n {\n label: dictionary.delete,\n value: 'delete',\n disabled: !quoteData?.canDelete,\n },\n {\n label: dictionary.print,\n value: 'print',\n },\n {\n label: dictionary.createTemplate,\n value: 'createTemplate',\n },\n {\n label: dictionary.createCopy,\n value: 'createCopy',\n },\n ];\n }, [dictionary, quoteData?.canDelete, quoteData?.canClose]);\n const actionBar = useMemo(() => {\n const handleActionsDropdownChange = (event: Event) => {\n onActionsDropdownChange?.(event);\n };\n\n const handleActionsButtonClick = (action: string) => {\n switch (action) {\n case 'close':\n setShowCloseModal(true);\n setModalErrorMessage(''); // Clear modal errors\n setModalSuccessMessage(''); // Clear modal success messages\n onActionsButtonClick?.(action);\n break;\n case 'delete':\n setIsDeleteDialogOpen(true);\n onActionsButtonClick?.(action);\n break;\n case 'print':\n onActionsButtonClick?.(action);\n break;\n case 'createTemplate':\n onActionsButtonClick?.(action);\n break;\n case 'createCopy':\n onActionsButtonClick?.(action);\n break;\n }\n };\n return (\n <Slot name=\"ActionBar\" slot={slots?.ActionBar} context={{ quoteData }}>\n <ActionsBar\n dropdownPlaceholder={dictionary.actionsLabel}\n dropdownOptions={[\n {\n label: dictionary.remove,\n value: 'remove',\n },\n ]}\n handleDropdownChange={handleActionsDropdownChange}\n buttons={buttons.map((button) => (\n <Button\n key={button.value}\n variant=\"tertiary\"\n onClick={() => handleActionsButtonClick(button.value)}\n data-testid={`actions-bar-${button.value}-button`}\n data-action={button.value}\n disabled={button.disabled}\n >\n {button.label}\n </Button>\n ))}\n />\n </Slot>\n );\n }, [\n buttons,\n dictionary,\n slots?.ActionBar,\n quoteData,\n onActionsDropdownChange,\n onActionsButtonClick,\n ]);\n\n // Quote content\n const quoteContent = useMemo(() => {\n return (\n <Slot\n name=\"QuoteContent\"\n slot={slots?.QuoteContent}\n context={{ quoteData }}\n >\n <TabbedContent\n tabs={\n new Map([\n ['items-quoted', 'Items Quoted'],\n ['comments', 'Comments'],\n ['history-log', 'History Log'],\n ])\n }\n tabsContent={\n new Map([\n [\n 'items-quoted',\n <Slot\n key=\"items-quoted\"\n name=\"ItemsQuotedTab\"\n slot={slots?.ItemsQuotedTab}\n context={{ quoteData }}\n >\n <ItemsQuoted quoteData={quoteData} />\n </Slot>,\n ],\n [\n 'comments',\n <Slot\n key=\"comments\"\n name=\"CommentsTab\"\n slot={slots?.CommentsTab}\n context={{ quoteData }}\n >\n <QuoteCommentsList quoteData={quoteData} />\n </Slot>,\n ],\n [\n 'history-log',\n <Slot\n key=\"history-log\"\n name=\"HistoryLogTab\"\n slot={slots?.HistoryLogTab}\n context={{ quoteData }}\n >\n <QuoteHistoryLog quoteData={quoteData} />\n </Slot>,\n ],\n ])\n }\n />\n </Slot>\n );\n }, [\n slots?.QuoteContent,\n slots?.HistoryLogTab,\n slots?.CommentsTab,\n slots?.ItemsQuotedTab,\n quoteData,\n ]);\n\n // Shipping information title\n const shippingInformationTitle = useMemo(() => {\n return (\n <Slot\n name=\"ShippingInformationTitle\"\n slot={slots?.ShippingInformationTitle}\n context={{ quoteData }}\n >\n <h2>{dictionary.shippingInformationTitle}</h2>\n </Slot>\n );\n }, [slots?.ShippingInformationTitle, quoteData, dictionary]);\n\n // Shipping information\n const shippingInformation = useMemo(() => {\n return (\n <Slot\n name=\"ShippingInformation\"\n slot={slots?.ShippingInformation}\n context={{ quoteData, loading, setLoading }}\n >\n <ShippingAddressDisplay\n quoteData={quoteData}\n loading={loading}\n data-testid=\"manage-quote-shipping-address\"\n />\n </Slot>\n );\n }, [slots?.ShippingInformation, quoteData, loading, setLoading]);\n\n // Quote comments title\n const quoteCommentsTitle = useMemo(() => {\n return (\n <Slot\n name=\"QuoteCommentsTitle\"\n slot={slots?.QuoteCommentsTitle}\n context={{ quoteData }}\n >\n <h2>{dictionary.quoteCommentsTitle}</h2>\n </Slot>\n );\n }, [slots?.QuoteCommentsTitle, dictionary, quoteData]);\n\n // Quote comments\n const quoteComments = useMemo(() => {\n return (\n <Slot\n name=\"QuoteComments\"\n slot={slots?.QuoteComments}\n context={{ quoteData }}\n >\n <TextArea\n name=\"quoteComments\"\n placeholder={dictionary.quoteCommentsPlaceholder}\n rows={3}\n value={comment}\n onInput={(e) => {\n setComment((e.target as HTMLTextAreaElement).value);\n }}\n disabled={isSubmitting}\n />\n </Slot>\n );\n }, [slots?.QuoteComments, dictionary, quoteData, comment, isSubmitting]);\n\n // Close quote handler - only called when quoteData exists\n const handleCloseQuote = useCallback(async () => {\n if (!quoteData?.uid) {\n return;\n }\n setIsClosing(true);\n setModalErrorMessage('');\n setModalSuccessMessage('');\n try {\n await closeNegotiableQuote({\n quoteUids: [quoteData!.uid],\n });\n } catch (error) {\n console.error('Failed to close quote:', error);\n }\n }, [quoteData]);\n\n const handleCloseModalCancel = useCallback(() => {\n setShowCloseModal(false);\n setModalErrorMessage('');\n setModalSuccessMessage('');\n }, []);\n\n // Footer\n const handleSendForReview = useCallback(async () => {\n // If override prop is provided, use it instead of the API\n if (onSendForReview) {\n onSendForReview({\n quoteData: quoteData!,\n comment: comment.trim() || undefined,\n });\n return;\n }\n\n // Otherwise, use the sendForReview API\n setIsSubmitting(true);\n try {\n await sendForReview({\n quoteUid: quoteData!.uid,\n comment: comment.trim() || undefined,\n });\n // The quote-sent-for-review event will handle updating state\n } catch (error) {\n console.error('Failed to send quote for review:', error);\n setIsSubmitting(false);\n // TODO: Show error notification to user\n }\n }, [quoteData, onSendForReview, comment]);\n\n const footer = useMemo(() => {\n return (\n <Slot\n name=\"Footer\"\n slot={slots?.Footer}\n context={{ quoteData, comment, isSubmitting }}\n >\n <Button\n variant=\"primary\"\n onClick={handleSendForReview}\n data-testid=\"send-for-review-button\"\n disabled={!quoteData?.canSendForReview || isSubmitting || !quoteData}\n >\n {dictionary.sendForReview}\n </Button>\n </Slot>\n );\n }, [\n slots?.Footer,\n dictionary,\n quoteData,\n comment,\n isSubmitting,\n handleSendForReview,\n ]);\n\n // Rename modal error banner\n const renameErrorBanner = useMemo(\n () =>\n renameError ? (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n icon={<WarningFilled color=\"var(--color-error)\" />}\n heading={dictionary.renameErrorHeading}\n description={renameError}\n />\n ) : undefined,\n [renameError, dictionary.renameErrorHeading]\n );\n\n // Rename modal success banner\n const renameSuccessBanner = useMemo(\n () =>\n renameSuccess ? (\n <InLineAlert\n type=\"success\"\n variant=\"primary\"\n icon={<CheckWithCircle />}\n heading={dictionary.renameSuccessHeading}\n description={renameSuccess}\n />\n ) : undefined,\n [renameSuccess, dictionary.renameSuccessHeading]\n );\n\n // Delete quote functionality\n const getDeleteErrorMessage = useCallback(\n (error: any): string => {\n // If it's an operation failure with errors array, get the first error message\n if (\n error.errors &&\n Array.isArray(error.errors) &&\n error.errors.length > 0\n ) {\n return (\n error.errors[0].message ||\n dictionary.confirmationModalDeleteErrorFallback\n );\n }\n // Otherwise use the error message or fallback\n return error?.message || dictionary.confirmationModalDeleteErrorFallback;\n },\n [dictionary.confirmationModalDeleteErrorFallback]\n );\n\n const handleDeleteCancel = useCallback(() => {\n setIsDeleteDialogOpen(false);\n setDeleteError(null);\n setDeleteSuccess(false);\n }, []);\n\n const handleDeleteConfirm = useCallback(async () => {\n if (!quoteData?.uid) {\n return;\n }\n\n setDeleteError(null);\n setDeleteSuccess(false);\n\n try {\n const { operationResults } = await deleteQuote(quoteData.uid);\n\n const failure = operationResults.find(\n (res: any) => res.__typename === 'DeleteNegotiableQuoteOperationFailure'\n ) as any;\n if (failure) {\n const errorMessage = getDeleteErrorMessage(failure);\n setDeleteError(errorMessage);\n return;\n }\n\n setDeleteSuccess(true);\n } catch (error: any) {\n const errorMessage = getDeleteErrorMessage(error);\n setDeleteError(errorMessage);\n }\n }, [quoteData, getDeleteErrorMessage]);\n\n const handleDismissError = useCallback(() => {\n setDeleteError(null);\n }, []);\n\n const handleDismissSuccess = useCallback(() => {\n setDeleteSuccess(false);\n }, []);\n\n const deleteErrorBanner = deleteError ? (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n icon={<WarningFilled />}\n heading={dictionary.confirmationModalDeleteErrorHeading}\n description={deleteError}\n onDismiss={handleDismissError}\n data-testid=\"confirmation-modal-error-banner\"\n />\n ) : null;\n\n const deleteSuccessBanner = deleteSuccess ? (\n <InLineAlert\n type=\"success\"\n variant=\"primary\"\n icon={<CheckWithCircle />}\n heading={dictionary.confirmationModalDeleteSuccessHeading}\n description={dictionary.confirmationModalDeleteSuccessDescription}\n onDismiss={handleDismissSuccess}\n data-testid=\"confirmation-modal-success-banner\"\n />\n ) : null;\n\n const deleteBanner = deleteSuccessBanner || deleteErrorBanner;\n\n const manageNegotiableQuoteProps: ManageNegotiableQuoteComponentProps = {\n ...props,\n loading,\n quoteName,\n quoteStatus,\n banner: banner || undefined,\n details: details!, // Details will always be defined at this point\n actionBar,\n quoteContent,\n shippingInformationTitle,\n shippingInformation,\n quoteCommentsTitle,\n quoteComments,\n footer,\n };\n\n // Create banner for close modal based on success/error state\n let closeModalBanner = null;\n if (modalSuccessMessage) {\n closeModalBanner = (\n <InLineAlert\n type=\"success\"\n variant=\"primary\"\n icon={<CheckWithCircle />}\n heading={dictionary.closeModalSuccessHeading}\n description={modalSuccessMessage}\n data-testid=\"close-quote-success-banner\"\n />\n );\n } else if (modalErrorMessage) {\n closeModalBanner = (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n icon={<WarningFilled />}\n heading={dictionary.confirmationModalDeleteErrorHeading}\n description={modalErrorMessage}\n data-testid=\"close-quote-error-banner\"\n />\n );\n }\n\n return (\n <>\n <ManageNegotiableQuoteComponent {...manageNegotiableQuoteProps} />\n {isRenameModalOpen &&\n createPortal(\n <RenameQuoteModal\n open={isRenameModalOpen}\n quoteName={renameQuoteName}\n renameReason={renameReason}\n quoteNameError={renameQuoteNameError}\n errorBanner={renameErrorBanner}\n successBanner={renameSuccessBanner}\n onQuoteNameChange={handleRenameQuoteNameChange}\n onRenameReasonChange={setRenameReason}\n onSave={handleRenameSave}\n onClose={handleRenameClose}\n />,\n document.body\n )}\n {isDeleteDialogOpen &&\n createPortal(\n <ConfirmationModal\n open={isDeleteDialogOpen}\n title={dictionary.confirmationModalDeleteTitle}\n message={dictionary.confirmationModalDeleteMessage}\n cancelLabel={dictionary.confirmationModalCancel}\n confirmLabel={dictionary.confirmationModalDeleteConfirm}\n onCancel={handleDeleteCancel}\n onConfirm={handleDeleteConfirm}\n showCloseButton={!deleteBanner}\n confirmationBanner={deleteBanner}\n />,\n document.body\n )}\n {showCloseModal &&\n createPortal(\n <ConfirmationModal\n open={showCloseModal}\n title={dictionary.closeModalTitle}\n message={dictionary.closeModalMessage}\n cancelLabel={dictionary.closeModalCancel}\n confirmLabel={\n isClosing ? dictionary.closeModalConfirmLoading : dictionary.closeModalConfirm\n }\n onCancel={handleCloseModalCancel}\n onConfirm={isClosing ? undefined : handleCloseQuote}\n showCloseButton={true}\n confirmationBanner={closeModalBanner}\n data-testid=\"close-quote-confirmation-modal\"\n />,\n document.body\n )}\n </>\n );\n};\n"],"names":["SvgEdit","props","React","ActionsBar","className","dropdownPlaceholder","dropdownOptions","handleDropdownChange","buttons","hasDropdown","hasButtons","pickerOptions","option","classes","jsx","Picker","button","index","VComponent","ManageNegotiableQuote","loading","quoteName","quoteStatus","banner","details","actionBar","quoteContent","shippingInformationTitle","shippingInformation","quoteCommentsTitle","quoteComments","footer","ManageNegotiableQuoteSkeleton","jsxs","Skeleton","SkeletonRow","TabbedContent","tabs","tabsContent","defaultActiveTab","activeTabId","setActiveTabId","useState","handleTabClick","tabId","activeTabContent","useMemo","tabLabel","RenameQuoteModal","open","renameReason","quoteNameError","errorBanner","successBanner","showCloseButton","onQuoteNameChange","onRenameReasonChange","onSave","onClose","dictionary","useText","Modal","Fragment","Input","e","TextArea","Button","onActionsDropdownChange","slots","onActionsButtonClick","onSendForReview","quoteData","setQuoteData","setLoading","isDeleteDialogOpen","setIsDeleteDialogOpen","deleteError","setDeleteError","deleteSuccess","setDeleteSuccess","comment","setComment","isSubmitting","setIsSubmitting","showCloseModal","setShowCloseModal","isClosing","setIsClosing","modalSuccessMessage","setModalSuccessMessage","modalErrorMessage","setModalErrorMessage","isRenameModalOpen","setIsRenameModalOpen","renameQuoteName","setRenameQuoteName","setRenameReason","renameError","setRenameError","renameQuoteNameError","setRenameQuoteNameError","renameSuccess","setRenameSuccess","useEffect","quoteDataEvent","events","data","quote","shippingAddressSetEvent","quoteSentForReviewEvent","quoteClosedEvent","currentQuoteData","_a","getQuoteData","updatedQuoteData","error","quoteCloseErrorEvent","errorMsg","quoteRenamedEvent","handleRenameClick","useCallback","handleRenameClose","handleRenameQuoteNameChange","value","handleRenameSave","renameNegotiableQuote","isLocked","Slot","Edit","bannerMessage","status","bannerContent","InLineAlert","WarningFilled","calculatedLocale","getGlobalLocale","dateFormatter","expirationDate","handleActionsDropdownChange","event","handleActionsButtonClick","action","ItemsQuoted","QuoteCommentsList","QuoteHistoryLog","ShippingAddressDisplay","handleCloseQuote","closeNegotiableQuote","handleCloseModalCancel","handleSendForReview","sendForReview","renameErrorBanner","renameSuccessBanner","CheckWithCircle","getDeleteErrorMessage","handleDeleteCancel","handleDeleteConfirm","operationResults","deleteQuote","failure","res","errorMessage","handleDismissError","handleDismissSuccess","deleteErrorBanner","deleteBanner","manageNegotiableQuoteProps","closeModalBanner","ManageNegotiableQuoteComponent","createPortal","ConfirmationModal"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"ManageNegotiableQuote.js","sources":["../../node_modules/@adobe-commerce/elsie/src/icons/Edit.svg","/@dropins/storefront-quote-management/src/components/ActionsBar/ActionsBar.tsx","/@dropins/storefront-quote-management/src/components/ManageNegotiableQuote/ManageNegotiableQuote.tsx","/@dropins/storefront-quote-management/src/components/TabbedContent/TabbedContent.tsx","/@dropins/storefront-quote-management/src/components/RenameQuoteModal/RenameQuoteModal.tsx","/@dropins/storefront-quote-management/src/containers/ManageNegotiableQuote/ManageNegotiableQuote.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgEdit = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\", className: \"feather feather-edit-2\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\" }));\nexport default SvgEdit;\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes, VComponent } from '@adobe-commerce/elsie/lib';\nimport '@/quote-management/components/ActionsBar/ActionsBar.css';\nimport { Picker } from '@adobe-commerce/elsie/components';\n\nexport interface ActionsBarProps extends HTMLAttributes<HTMLDivElement> {\n dropdownPlaceholder?: string;\n dropdownOptions?: {\n label: string;\n value: string;\n }[];\n handleDropdownChange?: (event: Event) => void;\n buttons?: VNode[];\n}\n\nexport const ActionsBar: FunctionComponent<ActionsBarProps> = ({\n className,\n dropdownPlaceholder,\n dropdownOptions,\n handleDropdownChange,\n buttons,\n ...props\n}) => {\n const hasDropdown = dropdownOptions && dropdownOptions.length > 0;\n const hasButtons = buttons && buttons.length > 0;\n\n const pickerOptions = dropdownOptions?.map((option) => ({\n text: option.label,\n value: option.value,\n })) || [];\n pickerOptions.unshift({\n text: dropdownPlaceholder || '',\n value: '',\n });\n\n return (\n <div className=\"quote-management-actions-bar__container\" data-testid=\"actions-bar-container\">\n <div className={classes(['quote-management-actions-bar', className])} data-testid=\"actions-bar\" {...props}>\n {hasDropdown && (\n <Picker\n name=\"dropdown\"\n id=\"dropdown\"\n onInput={handleDropdownChange}\n className=\"quote-management-actions-bar__dropdown\"\n data-testid=\"dropdown\"\n options={pickerOptions}\n />\n )}\n {hasButtons && (\n <div className=\"quote-management-actions-bar__buttons\" data-testid=\"buttons-container\">\n {buttons?.map((button, index) => (\n <VComponent\n node={button}\n className={classes(['quote-management-actions-bar__button'])}\n key={index}\n />\n ))}\n </div>\n )}\n </div>\n </div>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes, VComponent } from '@adobe-commerce/elsie/lib';\nimport '@/quote-management/components/ManageNegotiableQuote/ManageNegotiableQuote.css';\nimport { Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\n\nexport interface ManageNegotiableQuoteProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n loading?: boolean;\n quoteName: VNode;\n quoteStatus: VNode;\n banner?: VNode;\n details: VNode;\n actionBar?: VNode;\n quoteContent: VNode;\n shippingInformationTitle: VNode;\n shippingInformation: VNode;\n quoteCommentsTitle: VNode;\n quoteComments: VNode;\n footer: VNode;\n}\n\nexport const ManageNegotiableQuote: FunctionComponent<ManageNegotiableQuoteProps> = ({\n className,\n loading,\n quoteName,\n quoteStatus,\n banner,\n details,\n actionBar,\n quoteContent,\n shippingInformationTitle,\n shippingInformation,\n quoteCommentsTitle,\n quoteComments,\n footer,\n ...props\n}) => {\n if (loading) {\n return <ManageNegotiableQuoteSkeleton />;\n }\n\n return (\n <div {...props} className={classes(['quote-management-manage-negotiable-quote', className])}>\n <div className={classes(['quote-management-manage-negotiable-quote__header'])}>\n {quoteName &&\n <VComponent\n node={quoteName}\n className={classes(['quote-management-manage-negotiable-quote__quote-name'])}\n />\n }\n {quoteStatus &&\n <VComponent\n node={quoteStatus}\n className={classes(['quote-management-manage-negotiable-quote__quote-status'])}\n />\n }\n </div>\n {banner &&\n <VComponent\n node={banner}\n className={classes(['quote-management-manage-negotiable-quote__banner'])}\n />\n }\n {details &&\n <VComponent\n node={details}\n className={classes(['quote-management-manage-negotiable-quote__details'])}\n />\n }\n {actionBar &&\n <VComponent\n node={actionBar}\n className={classes(['quote-management-manage-negotiable-quote__action-bar'])}\n />\n }\n {quoteContent &&\n <VComponent\n node={quoteContent}\n className={classes(['quote-management-manage-negotiable-quote__quote-content'])}\n />\n }\n <div data-testid=\"quote-shipping-information-container\" className={classes(['quote-management-manage-negotiable-quote__shipping-information-container'])}>\n {shippingInformationTitle &&\n <VComponent\n node={shippingInformationTitle}\n className={classes(['quote-management-manage-negotiable-quote__shipping-information-title'])}\n />\n }\n {shippingInformation &&\n <VComponent\n node={shippingInformation}\n className={classes(['quote-management-manage-negotiable-quote__shipping-information'])}\n />\n }\n </div>\n <div data-testid=\"quote-comments-container\" className={classes(['quote-management-manage-negotiable-quote__quote-comments-container'])}>\n {quoteCommentsTitle &&\n <VComponent\n node={quoteCommentsTitle}\n className={classes(['quote-management-manage-negotiable-quote__quote-comments-title'])}\n />\n }\n {quoteComments &&\n <VComponent\n node={quoteComments}\n className={classes(['quote-management-manage-negotiable-quote__quote-comments'])}\n />\n }\n </div>\n <VComponent\n node={footer}\n className={classes(['quote-management-manage-negotiable-quote__footer'])}\n />\n </div>\n );\n};\n\nexport const ManageNegotiableQuoteSkeleton: FunctionComponent = () => {\n return (\n <Skeleton data-testid=\"manage-negotiable-quote-skeleton\">\n <SkeletonRow variant=\"heading\" fullWidth={true} size=\"large\" />\n <SkeletonRow variant=\"row\" fullWidth={false} size=\"small\" />\n <SkeletonRow variant=\"row\" fullWidth={false} size=\"small\" />\n <SkeletonRow variant=\"row\" fullWidth={true} />\n <SkeletonRow variant=\"row\" fullWidth={true} size=\"xlarge\" lines={2} />\n <SkeletonRow variant=\"row\" fullWidth={false} size=\"small\" />\n </Skeleton>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes, useMemo, useState } from 'preact/compat';\nimport { classes, VComponent } from '@adobe-commerce/elsie/lib';\nimport '@/quote-management/components/TabbedContent/TabbedContent.css';\n\nexport interface TabbedContentProps extends HTMLAttributes<HTMLDivElement> {\n tabs: Map<string, string>;\n tabsContent: Map<string, VNode>;\n defaultActiveTab?: string;\n}\n\nexport const TabbedContent: FunctionComponent<TabbedContentProps> = ({\n className,\n tabs,\n tabsContent,\n defaultActiveTab,\n ...props\n}) => {\n const [activeTabId, setActiveTabId] = useState<string>(\n defaultActiveTab || Array.from(tabs.keys())[0]\n );\n\n const handleTabClick = (tabId: string) => {\n setActiveTabId(tabId);\n };\n\n const activeTabContent = useMemo(() => {\n return tabsContent.get(activeTabId);\n }, [activeTabId, tabsContent]);\n\n return (\n <div {...props} className={classes(['quote-management-tabbed-content', className])}>\n {tabs &&\n <div data-testid=\"tabbed-content-tabs\" className={classes(['quote-management-tabbed-content__tabs'])}>\n {Array.from(tabs.entries()).map(([tabId, tabLabel]) => (\n <button\n className={\n classes([\n 'quote-management-tabbed-content__tab',\n ['quote-management-tabbed-content__tab--active', tabId === activeTabId]\n ])}\n key={tabId}\n onClick={() => handleTabClick(tabId)}\n >\n {tabLabel}\n </button>\n ))}\n </div>\n }\n {\n activeTabContent &&\n <div className={classes(['quote-management-tabbed-content__active-tab-content'])}>\n <VComponent\n node={activeTabContent as VNode}\n />\n </div>\n }\n </div>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { Button, Input, TextArea, Modal } from '@adobe-commerce/elsie/components';\nimport '@/quote-management/components/RenameQuoteModal/RenameQuoteModal.css';\n\nexport interface RenameQuoteModalProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n open: boolean;\n quoteName: string;\n renameReason: string;\n quoteNameError?: string;\n errorBanner?: VNode;\n successBanner?: VNode;\n showCloseButton?: boolean;\n onQuoteNameChange: (value: string) => void;\n onRenameReasonChange: (value: string) => void;\n onSave: () => void;\n onClose?: () => void;\n}\n\nexport const RenameQuoteModal: FunctionComponent<RenameQuoteModalProps> = ({\n className,\n open,\n quoteName,\n renameReason,\n quoteNameError,\n errorBanner,\n successBanner,\n showCloseButton = true,\n onQuoteNameChange,\n onRenameReasonChange,\n onSave,\n onClose,\n}) => {\n const dictionary = useText({\n title: 'NegotiableQuote.Manage.rename.title',\n quoteNameLabel: 'NegotiableQuote.Manage.rename.quoteNameLabel',\n reasonLabel: 'NegotiableQuote.Manage.rename.reasonLabel',\n renameButton: 'NegotiableQuote.Manage.rename.renameButton',\n cancelButton: 'NegotiableQuote.Manage.rename.cancelButton',\n });\n\n if (!open) {\n return null;\n }\n\n return (\n <Modal\n open={open}\n size=\"medium\"\n title={<>{dictionary.title}</>}\n onClose={onClose}\n clickToDismiss={true}\n escapeToDismiss={true}\n showCloseButton={showCloseButton}\n className={classes(['quote-management-rename-quote-modal', className])}\n data-testid=\"rename-quote-modal\"\n >\n {errorBanner && (\n <div className={classes(['quote-management-rename-quote-modal__error-banner'])} data-testid=\"rename-quote-modal-error-banner\">\n {errorBanner}\n </div>\n )}\n\n {successBanner && (\n <div className={classes(['quote-management-rename-quote-modal__success-banner'])} data-testid=\"rename-quote-modal-success-banner\">\n {successBanner}\n </div>\n )}\n\n <div className={classes(['quote-management-rename-quote-modal__content'])}>\n <div>\n <Input\n name=\"quoteName\"\n type=\"text\"\n value={quoteName}\n onInput={(e: any) => onQuoteNameChange(e.target.value)}\n floatingLabel={dictionary.quoteNameLabel}\n required\n error={!!quoteNameError}\n />\n {quoteNameError && (\n <span className={classes(['quote-management-rename-quote-modal__error-text'])}>\n {quoteNameError}\n </span>\n )}\n </div>\n\n <TextArea\n name=\"quoteComment\"\n value={renameReason}\n onInput={(e: any) => onRenameReasonChange(e.target.value)}\n label={dictionary.reasonLabel}\n rows={3}\n />\n </div>\n\n <div className={classes(['quote-management-rename-quote-modal__actions'])}>\n <Button \n variant=\"secondary\"\n size=\"medium\"\n onClick={onClose}\n className={classes(['quote-management-rename-quote-modal__cancel-button'])}\n >\n {dictionary.cancelButton}\n </Button>\n <Button \n variant=\"primary\"\n size=\"medium\"\n onClick={onSave}\n className={classes(['quote-management-rename-quote-modal__save-button'])}\n >\n {dictionary.renameButton}\n </Button>\n </div>\n </Modal>\n );\n};\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport {\n HTMLAttributes,\n useCallback,\n useEffect,\n useMemo,\n useState,\n createPortal,\n} from 'preact/compat';\nimport {\n Container,\n getGlobalLocale,\n Slot,\n SlotProps,\n} from '@adobe-commerce/elsie/lib';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport {\n ManageNegotiableQuote as ManageNegotiableQuoteComponent,\n ManageNegotiableQuoteProps as ManageNegotiableQuoteComponentProps,\n} from '@/quote-management/components/ManageNegotiableQuote';\nimport { events } from '@adobe-commerce/event-bus';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport {\n ActionsBar,\n TabbedContent,\n ConfirmationModal,\n} from '@/quote-management/components';\nimport { ShippingAddressDisplay } from '@/quote-management/containers/ShippingAddressDisplay';\nimport { QuoteHistoryLog } from '@/quote-management/containers/QuoteHistoryLog';\nimport { ItemsQuoted, QuoteCommentsList } from '@/quote-management/containers';\nimport {\n Button,\n InLineAlert,\n TextArea,\n} from '@adobe-commerce/elsie/components';\nimport {\n WarningFilled,\n Edit,\n CheckWithCircle,\n} from '@adobe-commerce/elsie/icons';\nimport {\n deleteQuote,\n sendForReview,\n renameNegotiableQuote,\n closeNegotiableQuote,\n getQuoteData,\n} from '@/quote-management/api';\nimport { RenameQuoteModal } from '@/quote-management/components/RenameQuoteModal';\n\nexport interface ManageNegotiableQuoteProps\n extends HTMLAttributes<HTMLDivElement> {\n onActionsDropdownChange?: (event: Event) => void;\n onActionsButtonClick?: (action: string) => void;\n onSendForReview?: (params: {\n quoteData: NegotiableQuoteModel;\n comment?: string;\n }) => void;\n slots?: {\n QuoteName?: SlotProps<{\n quoteName?: string;\n quoteData?: NegotiableQuoteModel;\n }>;\n QuoteStatus?: SlotProps<{\n quoteStatus?: string;\n quoteData?: NegotiableQuoteModel;\n }>;\n Banner?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n Details?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n ActionBar?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n QuoteContent?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n ItemsQuotedTab?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n CommentsTab?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n HistoryLogTab?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n ShippingInformationTitle?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n ShippingInformation?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n loading?: boolean;\n setLoading?: (loading: boolean) => void;\n }>;\n QuoteCommentsTitle?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n QuoteComments?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n }>;\n Footer?: SlotProps<{\n quoteData?: NegotiableQuoteModel;\n comment?: string;\n isSubmitting?: boolean;\n }>;\n };\n}\n\nexport const ManageNegotiableQuote: Container<ManageNegotiableQuoteProps> = ({\n onActionsDropdownChange,\n slots,\n onActionsButtonClick,\n onSendForReview,\n ...props\n}) => {\n const [quoteData, setQuoteData] = useState<NegotiableQuoteModel | undefined>(\n undefined\n );\n const [loading, setLoading] = useState<boolean>(true);\n const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState<boolean>(false);\n const [deleteError, setDeleteError] = useState<string | null>(null);\n const [deleteSuccess, setDeleteSuccess] = useState<boolean>(false);\n const [comment, setComment] = useState<string>('');\n const [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n const [showCloseModal, setShowCloseModal] = useState<boolean>(false);\n const [isClosing, setIsClosing] = useState<boolean>(false);\n const [modalSuccessMessage, setModalSuccessMessage] = useState<string>('');\n const [modalErrorMessage, setModalErrorMessage] = useState<string>('');\n const [isRenameModalOpen, setIsRenameModalOpen] = useState<boolean>(false);\n const [renameQuoteName, setRenameQuoteName] = useState<string>('');\n const [renameReason, setRenameReason] = useState<string>('');\n const [renameError, setRenameError] = useState<string>('');\n const [renameQuoteNameError, setRenameQuoteNameError] = useState<string>('');\n const [renameSuccess, setRenameSuccess] = useState<string>('');\n\n const dictionary = useText({\n createdLabel: 'NegotiableQuote.Manage.createdLabel',\n salesRepLabel: 'NegotiableQuote.Manage.salesRepLabel',\n expiresLabel: 'NegotiableQuote.Manage.expiresLabel',\n actionsLabel: 'NegotiableQuote.Manage.actionsLabel',\n remove: 'NegotiableQuote.Manage.actions.remove',\n close: 'NegotiableQuote.Manage.actionButtons.close',\n delete: 'NegotiableQuote.Manage.actionButtons.delete',\n print: 'NegotiableQuote.Manage.actionButtons.print',\n createTemplate: 'NegotiableQuote.Manage.actionButtons.createTemplate',\n createCopy: 'NegotiableQuote.Manage.actionButtons.createCopy',\n shippingInformationTitle:\n 'NegotiableQuote.Manage.shippingInformation.title',\n quoteCommentsTitle: 'NegotiableQuote.Manage.quoteComments.title',\n quoteCommentsPlaceholder:\n 'NegotiableQuote.Manage.quoteComments.placeholder',\n sendForReview: 'NegotiableQuote.Manage.actionButtons.sendForReview',\n bannerTitle: 'NegotiableQuote.Manage.bannerTitle',\n statusSubmitted: 'NegotiableQuote.Manage.bannerStatusMessages.submitted',\n statusPending: 'NegotiableQuote.Manage.bannerStatusMessages.pending',\n statusExpired: 'NegotiableQuote.Manage.bannerStatusMessages.expired',\n errorFallback:\n 'NegotiableQuote.Manage.confirmationModal.delete.errorFallback',\n closeSuccessMessage:\n 'NegotiableQuote.Manage.confirmationModal.close.successDescription',\n closeModalTitle: 'NegotiableQuote.Manage.actionButtons.close',\n closeModalMessage: 'NegotiableQuote.Manage.confirmationModal.close.message',\n closeModalCancel: 'NegotiableQuote.Manage.confirmationModal.cancel',\n closeModalConfirm: 'NegotiableQuote.Manage.confirmationModal.close.confirm',\n closeModalConfirmLoading: 'NegotiableQuote.Manage.confirmationModal.close.confirmLoading',\n closeModalSuccessHeading:\n 'NegotiableQuote.Manage.confirmationModal.close.successHeading',\n renameErrorHeading: 'NegotiableQuote.Manage.rename.errorHeading',\n renameQuoteNameRequired: 'NegotiableQuote.Manage.rename.quoteNameRequired',\n renameErrorDefault: 'NegotiableQuote.Manage.rename.errorDefault',\n renameSuccessHeading: 'NegotiableQuote.Manage.rename.successHeading',\n renameSuccessMessage: 'NegotiableQuote.Manage.rename.successMessage',\n confirmationModalCancel: 'NegotiableQuote.Manage.confirmationModal.cancel',\n confirmationModalDeleteTitle:\n 'NegotiableQuote.Manage.confirmationModal.delete.title',\n confirmationModalDeleteMessage:\n 'NegotiableQuote.Manage.confirmationModal.delete.message',\n confirmationModalDeleteConfirm:\n 'NegotiableQuote.Manage.confirmationModal.delete.confirm',\n confirmationModalDeleteErrorHeading:\n 'NegotiableQuote.Manage.confirmationModal.delete.errorHeading',\n confirmationModalDeleteErrorFallback:\n 'NegotiableQuote.Manage.confirmationModal.delete.errorFallback',\n confirmationModalDeleteSuccessHeading:\n 'NegotiableQuote.Manage.confirmationModal.delete.successHeading',\n confirmationModalDeleteSuccessDescription:\n 'NegotiableQuote.Manage.confirmationModal.delete.successDescription',\n });\n /* Event listeners */\n useEffect(() => {\n const quoteDataEvent = events.on(\n 'quote-management/quote-data',\n (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n if (quote) {\n setQuoteData(quote);\n setLoading(false);\n }\n },\n {\n eager: true,\n }\n );\n return () => quoteDataEvent?.off();\n }, []);\n\n // Listen for shipping address set event\n useEffect(() => {\n const shippingAddressSetEvent = events.on(\n 'quote-management/shipping-address-set',\n (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n if (quote) {\n setQuoteData(quote);\n }\n },\n {\n eager: true,\n }\n );\n return () => shippingAddressSetEvent?.off();\n }, []);\n\n // Listen for quote sent for review event\n useEffect(() => {\n const quoteSentForReviewEvent = events.on(\n 'quote-management/quote-sent-for-review',\n (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n setQuoteData(quote);\n setComment(''); // Reset comment after successful submission\n setIsSubmitting(false);\n },\n {\n eager: true,\n }\n );\n return () => quoteSentForReviewEvent?.off();\n }, []);\n\n // Listen for quote closed event\n useEffect(() => {\n const quoteClosedEvent = events.on(\n 'quote-management/negotiable-quote-closed',\n async (data: { closedQuoteUids: string[] }) => {\n setIsClosing(false);\n setModalErrorMessage('');\n // Show success message in modal\n setModalSuccessMessage(dictionary.closeSuccessMessage);\n\n // Refresh quote data if the current quote was closed\n // Use a function to get the current quoteData to avoid stale closure\n setQuoteData((currentQuoteData) => {\n if (currentQuoteData?.uid && data.closedQuoteUids?.includes(currentQuoteData.uid)) {\n // Trigger async refresh\n getQuoteData(currentQuoteData.uid)\n .then((updatedQuoteData) => {\n setQuoteData(updatedQuoteData);\n })\n .catch((error) => {\n console.warn('Failed to refresh quote data after closure:', error);\n });\n }\n return currentQuoteData; // Return current data unchanged for this setter call\n });\n\n // Close modal and redirect after a delay to show success message\n setTimeout(() => {\n setShowCloseModal(false);\n setModalSuccessMessage('');\n }, 2000);\n },\n {\n eager: true,\n }\n );\n return () => quoteClosedEvent?.off();\n }, [dictionary.closeSuccessMessage]);\n\n // Listen for quote close error event\n useEffect(() => {\n const quoteCloseErrorEvent = events.on(\n 'quote-management/negotiable-quote-close-error',\n (data: { error: Error; attemptedQuoteUids: string[] }) => {\n console.log('Close error event received:', data);\n setIsClosing(false);\n setModalSuccessMessage('');\n const errorMsg = data.error.message || dictionary.errorFallback;\n setModalErrorMessage(errorMsg);\n },\n {\n eager: true,\n }\n );\n return () => quoteCloseErrorEvent?.off();\n }, [dictionary.errorFallback]);\n\n // Listen for quote renamed event\n useEffect(() => {\n const quoteRenamedEvent = events.on(\n 'quote-management/quote-renamed',\n (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n setQuoteData(quote);\n setRenameError('');\n setRenameQuoteNameError('');\n setRenameSuccess(dictionary.renameSuccessMessage);\n\n // Wait 2 seconds before closing the modal\n setTimeout(() => {\n setIsRenameModalOpen(false);\n setRenameQuoteName('');\n setRenameReason('');\n setRenameSuccess('');\n }, 2000);\n },\n {\n eager: true,\n }\n );\n return () => quoteRenamedEvent?.off();\n }, [dictionary.renameSuccessMessage]);\n\n /**\n * VNodes for the ManageNegotiableQuote component\n */\n\n // Rename handlers\n const handleRenameClick = useCallback(() => {\n setRenameQuoteName(quoteData?.name || '');\n setRenameReason('');\n setRenameError('');\n setRenameQuoteNameError('');\n setRenameSuccess('');\n setIsRenameModalOpen(true);\n }, [quoteData]);\n\n const handleRenameClose = useCallback(() => {\n setIsRenameModalOpen(false);\n setRenameQuoteName('');\n setRenameReason('');\n setRenameError('');\n setRenameQuoteNameError('');\n setRenameSuccess('');\n }, []);\n\n const handleRenameQuoteNameChange = useCallback((value: string) => {\n setRenameQuoteName(value);\n if (value.trim()) {\n setRenameQuoteNameError('');\n }\n }, []);\n\n const handleRenameSave = useCallback(async () => {\n // Validate quote name\n if (!renameQuoteName.trim()) {\n setRenameQuoteNameError(dictionary.renameQuoteNameRequired);\n return;\n }\n\n try {\n setRenameError('');\n setRenameQuoteNameError('');\n await renameNegotiableQuote({\n quoteUid: quoteData!.uid,\n quoteName: renameQuoteName,\n quoteComment: renameReason.trim() || undefined,\n });\n // The quote-renamed event will handle closing the modal and updating state\n } catch (error) {\n setRenameError((error as Error).message || dictionary.renameErrorDefault);\n }\n }, [\n quoteData,\n renameQuoteName,\n renameReason,\n dictionary.renameQuoteNameRequired,\n dictionary.renameErrorDefault,\n ]);\n\n // Quote name with rename icon\n const quoteName = useMemo(() => {\n // Priority 1: Check lockedForEditing if explicitly set\n // Priority 2: Fall back to status check\n const isLocked =\n quoteData &&\n // If lockedForEditing is explicitly set, use it\n (quoteData.lockedForEditing === true ||\n // Otherwise, lock based on status\n (quoteData.lockedForEditing === undefined &&\n (quoteData.status === 'SUBMITTED' ||\n quoteData.status === 'PENDING' ||\n quoteData.status === 'ORDERED' ||\n quoteData.status === 'CLOSED')));\n\n return (\n <Slot\n name=\"QuoteName\"\n slot={slots?.QuoteName}\n context={{ quoteName: quoteData?.name, quoteData }}\n >\n <div className=\"quote-management-manage-negotiable-quote__quote-name-wrapper\">\n <h1\n data-testid=\"quote-name\"\n className=\"quote-management-manage-negotiable-quote__quote-name-title\"\n >\n {quoteData?.name}\n </h1>\n <button\n onClick={handleRenameClick}\n disabled={isLocked}\n data-testid=\"rename-quote-button\"\n className=\"quote-management-manage-negotiable-quote__rename-button\"\n aria-label=\"Rename quote\"\n >\n <Edit />\n </button>\n </div>\n </Slot>\n );\n }, [slots?.QuoteName, quoteData, handleRenameClick]);\n\n // Quote status\n const quoteStatus = useMemo(() => {\n return (\n <Slot\n name=\"QuoteStatus\"\n slot={slots?.QuoteStatus}\n context={{ quoteStatus: quoteData?.status, quoteData }}\n >\n <div data-testid=\"quote-status\">{quoteData?.status}</div>\n </Slot>\n );\n }, [slots?.QuoteStatus, quoteData]);\n\n // Banner\n const getBannerStatusMessage = useCallback(\n (status: string | undefined) => {\n switch (status) {\n case 'SUBMITTED':\n return dictionary.statusSubmitted;\n case 'PENDING':\n return dictionary.statusPending;\n case 'EXPIRED':\n return dictionary.statusExpired;\n default:\n return null;\n }\n },\n [dictionary]\n );\n\n const bannerMessage = getBannerStatusMessage(quoteData?.status);\n\n const bannerContent = bannerMessage && (\n <InLineAlert\n type=\"warning\"\n variant=\"secondary\"\n icon={<WarningFilled />}\n heading={dictionary.bannerTitle}\n description={bannerMessage}\n />\n );\n\n const banner = bannerContent && (\n <Slot\n name=\"Banner\"\n data-testid=\"banner\"\n slot={slots?.Banner}\n context={{ quoteData }}\n >\n {bannerContent}\n </Slot>\n );\n\n // Details\n const details = useMemo(() => {\n if (!quoteData) {\n return null;\n }\n\n const calculatedLocale = getGlobalLocale() || 'en-US';\n\n const dateFormatter = new Intl.DateTimeFormat(calculatedLocale, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n\n // Some quotes, such as draft quotes, don't have a date formatted expiration date\n let expirationDate;\n try {\n expirationDate = dateFormatter.format(\n new Date(quoteData!.expirationDate)\n );\n } catch (error) {\n expirationDate = quoteData!.expirationDate;\n }\n\n return (\n <Slot name=\"Details\" slot={slots?.Details} context={{ quoteData }}>\n <div className=\"quote-management-manage-negotiable-quote__detail\">\n <span\n className=\"quote-management-manage-negotiable-quote__detail-title\"\n data-testid=\"created-label\"\n >\n {dictionary.createdLabel}\n </span>\n <span\n className=\"quote-management-manage-negotiable-quote__detail-content\"\n data-testid=\"created-value\"\n >\n {dateFormatter.format(new Date(quoteData!.createdAt))} (\n {quoteData!.buyer.firstname} {quoteData!.buyer.lastname})\n </span>\n </div>\n <div className=\"quote-management-manage-negotiable-quote__detail\">\n <span\n className=\"quote-management-manage-negotiable-quote__detail-title\"\n data-testid=\"sales-rep-label\"\n >\n {dictionary.salesRepLabel}\n </span>\n <span\n className=\"quote-management-manage-negotiable-quote__detail-content\"\n data-testid=\"sales-rep-value\"\n >\n {quoteData!.salesRepName}\n </span>\n </div>\n <div className=\"quote-management-manage-negotiable-quote__detail\">\n <span\n className=\"quote-management-manage-negotiable-quote__detail-title\"\n data-testid=\"expires-label\"\n >\n {dictionary.expiresLabel}\n </span>\n <span\n className=\"quote-management-manage-negotiable-quote__detail-content\"\n data-testid=\"expires-value\"\n >\n {expirationDate}\n </span>\n </div>\n </Slot>\n );\n }, [slots?.Details, dictionary, quoteData]);\n\n // Action bar\n const buttons: { label: string; value: string; disabled?: boolean }[] =\n useMemo(() => {\n return [\n {\n label: dictionary.close,\n value: 'close',\n disabled: !quoteData?.canClose,\n },\n {\n label: dictionary.delete,\n value: 'delete',\n disabled: !quoteData?.canDelete,\n },\n {\n label: dictionary.print,\n value: 'print',\n },\n {\n label: dictionary.createTemplate,\n value: 'createTemplate',\n },\n {\n label: dictionary.createCopy,\n value: 'createCopy',\n },\n ];\n }, [dictionary, quoteData?.canDelete, quoteData?.canClose]);\n const actionBar = useMemo(() => {\n const handleActionsDropdownChange = (event: Event) => {\n onActionsDropdownChange?.(event);\n };\n\n const handleActionsButtonClick = (action: string) => {\n switch (action) {\n case 'close':\n setShowCloseModal(true);\n setModalErrorMessage(''); // Clear modal errors\n setModalSuccessMessage(''); // Clear modal success messages\n onActionsButtonClick?.(action);\n break;\n case 'delete':\n setIsDeleteDialogOpen(true);\n onActionsButtonClick?.(action);\n break;\n case 'print':\n onActionsButtonClick?.(action);\n break;\n case 'createTemplate':\n onActionsButtonClick?.(action);\n break;\n case 'createCopy':\n onActionsButtonClick?.(action);\n break;\n }\n };\n return (\n <Slot name=\"ActionBar\" slot={slots?.ActionBar} context={{ quoteData }}>\n <ActionsBar\n dropdownPlaceholder={dictionary.actionsLabel}\n dropdownOptions={[\n {\n label: dictionary.remove,\n value: 'remove',\n },\n ]}\n handleDropdownChange={handleActionsDropdownChange}\n buttons={buttons.map((button) => (\n <Button\n key={button.value}\n variant=\"tertiary\"\n onClick={() => handleActionsButtonClick(button.value)}\n data-testid={`actions-bar-${button.value}-button`}\n data-action={button.value}\n disabled={button.disabled}\n >\n {button.label}\n </Button>\n ))}\n />\n </Slot>\n );\n }, [\n buttons,\n dictionary,\n slots?.ActionBar,\n quoteData,\n onActionsDropdownChange,\n onActionsButtonClick,\n ]);\n\n // Quote content\n const quoteContent = useMemo(() => {\n return (\n <Slot\n name=\"QuoteContent\"\n slot={slots?.QuoteContent}\n context={{ quoteData }}\n >\n <TabbedContent\n tabs={\n new Map([\n ['items-quoted', 'Items Quoted'],\n ['comments', 'Comments'],\n ['history-log', 'History Log'],\n ])\n }\n tabsContent={\n new Map([\n [\n 'items-quoted',\n <Slot\n key=\"items-quoted\"\n name=\"ItemsQuotedTab\"\n slot={slots?.ItemsQuotedTab}\n context={{ quoteData }}\n >\n <ItemsQuoted quoteData={quoteData} />\n </Slot>,\n ],\n [\n 'comments',\n <Slot\n key=\"comments\"\n name=\"CommentsTab\"\n slot={slots?.CommentsTab}\n context={{ quoteData }}\n >\n <QuoteCommentsList quoteData={quoteData} />\n </Slot>,\n ],\n [\n 'history-log',\n <Slot\n key=\"history-log\"\n name=\"HistoryLogTab\"\n slot={slots?.HistoryLogTab}\n context={{ quoteData }}\n >\n <QuoteHistoryLog quoteData={quoteData} />\n </Slot>,\n ],\n ])\n }\n />\n </Slot>\n );\n }, [\n slots?.QuoteContent,\n slots?.HistoryLogTab,\n slots?.CommentsTab,\n slots?.ItemsQuotedTab,\n quoteData,\n ]);\n\n // Shipping information title\n const shippingInformationTitle = useMemo(() => {\n return (\n <Slot\n name=\"ShippingInformationTitle\"\n slot={slots?.ShippingInformationTitle}\n context={{ quoteData }}\n >\n <h2>{dictionary.shippingInformationTitle}</h2>\n </Slot>\n );\n }, [slots?.ShippingInformationTitle, quoteData, dictionary]);\n\n // Shipping information\n const shippingInformation = useMemo(() => {\n return (\n <Slot\n name=\"ShippingInformation\"\n slot={slots?.ShippingInformation}\n context={{ quoteData, loading, setLoading }}\n >\n <ShippingAddressDisplay\n quoteData={quoteData}\n loading={loading}\n data-testid=\"manage-quote-shipping-address\"\n />\n </Slot>\n );\n }, [slots?.ShippingInformation, quoteData, loading, setLoading]);\n\n // Quote comments title\n const quoteCommentsTitle = useMemo(() => {\n return (\n <Slot\n name=\"QuoteCommentsTitle\"\n slot={slots?.QuoteCommentsTitle}\n context={{ quoteData }}\n >\n <h2>{dictionary.quoteCommentsTitle}</h2>\n </Slot>\n );\n }, [slots?.QuoteCommentsTitle, dictionary, quoteData]);\n\n // Quote comments\n const quoteComments = useMemo(() => {\n return (\n <Slot\n name=\"QuoteComments\"\n slot={slots?.QuoteComments}\n context={{ quoteData }}\n >\n <TextArea\n name=\"quoteComments\"\n placeholder={dictionary.quoteCommentsPlaceholder}\n rows={3}\n value={comment}\n onInput={(e) => {\n setComment((e.target as HTMLTextAreaElement).value);\n }}\n disabled={isSubmitting}\n />\n </Slot>\n );\n }, [slots?.QuoteComments, dictionary, quoteData, comment, isSubmitting]);\n\n // Close quote handler - only called when quoteData exists\n const handleCloseQuote = useCallback(async () => {\n if (!quoteData?.uid) {\n return;\n }\n setIsClosing(true);\n setModalErrorMessage('');\n setModalSuccessMessage('');\n try {\n await closeNegotiableQuote({\n quoteUids: [quoteData!.uid],\n });\n } catch (error) {\n console.error('Failed to close quote:', error);\n }\n }, [quoteData]);\n\n const handleCloseModalCancel = useCallback(() => {\n setShowCloseModal(false);\n setModalErrorMessage('');\n setModalSuccessMessage('');\n }, []);\n\n // Footer\n const handleSendForReview = useCallback(async () => {\n // If override prop is provided, use it instead of the API\n if (onSendForReview) {\n onSendForReview({\n quoteData: quoteData!,\n comment: comment.trim() || undefined,\n });\n return;\n }\n\n // Otherwise, use the sendForReview API\n setIsSubmitting(true);\n try {\n await sendForReview({\n quoteUid: quoteData!.uid,\n comment: comment.trim() || undefined,\n });\n // The quote-sent-for-review event will handle updating state\n } catch (error) {\n console.error('Failed to send quote for review:', error);\n setIsSubmitting(false);\n // TODO: Show error notification to user\n }\n }, [quoteData, onSendForReview, comment]);\n\n const footer = useMemo(() => {\n return (\n <Slot\n name=\"Footer\"\n slot={slots?.Footer}\n context={{ quoteData, comment, isSubmitting }}\n >\n <Button\n variant=\"primary\"\n onClick={handleSendForReview}\n data-testid=\"send-for-review-button\"\n disabled={!quoteData?.canSendForReview || isSubmitting || !quoteData}\n >\n {dictionary.sendForReview}\n </Button>\n </Slot>\n );\n }, [\n slots?.Footer,\n dictionary,\n quoteData,\n comment,\n isSubmitting,\n handleSendForReview,\n ]);\n\n // Rename modal error banner\n const renameErrorBanner = useMemo(\n () =>\n renameError ? (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n icon={<WarningFilled color=\"var(--color-error)\" />}\n heading={dictionary.renameErrorHeading}\n description={renameError}\n />\n ) : undefined,\n [renameError, dictionary.renameErrorHeading]\n );\n\n // Rename modal success banner\n const renameSuccessBanner = useMemo(\n () =>\n renameSuccess ? (\n <InLineAlert\n type=\"success\"\n variant=\"primary\"\n icon={<CheckWithCircle />}\n heading={dictionary.renameSuccessHeading}\n description={renameSuccess}\n />\n ) : undefined,\n [renameSuccess, dictionary.renameSuccessHeading]\n );\n\n // Delete quote functionality\n const getDeleteErrorMessage = useCallback(\n (error: any): string => {\n // If it's an operation failure with errors array, get the first error message\n if (\n error.errors &&\n Array.isArray(error.errors) &&\n error.errors.length > 0\n ) {\n return (\n error.errors[0].message ||\n dictionary.confirmationModalDeleteErrorFallback\n );\n }\n // Otherwise use the error message or fallback\n return error?.message || dictionary.confirmationModalDeleteErrorFallback;\n },\n [dictionary.confirmationModalDeleteErrorFallback]\n );\n\n const handleDeleteCancel = useCallback(() => {\n setIsDeleteDialogOpen(false);\n setDeleteError(null);\n setDeleteSuccess(false);\n }, []);\n\n const handleDeleteConfirm = useCallback(async () => {\n if (!quoteData?.uid) {\n return;\n }\n\n setDeleteError(null);\n setDeleteSuccess(false);\n\n try {\n const { operationResults } = await deleteQuote(quoteData.uid);\n\n const failure = operationResults.find(\n (res: any) => res.__typename === 'DeleteNegotiableQuoteOperationFailure'\n ) as any;\n if (failure) {\n const errorMessage = getDeleteErrorMessage(failure);\n setDeleteError(errorMessage);\n return;\n }\n\n setDeleteSuccess(true);\n } catch (error: any) {\n const errorMessage = getDeleteErrorMessage(error);\n setDeleteError(errorMessage);\n }\n }, [quoteData, getDeleteErrorMessage]);\n\n const handleDismissError = useCallback(() => {\n setDeleteError(null);\n }, []);\n\n const handleDismissSuccess = useCallback(() => {\n setDeleteSuccess(false);\n }, []);\n\n const deleteErrorBanner = deleteError ? (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n icon={<WarningFilled />}\n heading={dictionary.confirmationModalDeleteErrorHeading}\n description={deleteError}\n onDismiss={handleDismissError}\n data-testid=\"confirmation-modal-error-banner\"\n />\n ) : null;\n\n const deleteSuccessBanner = deleteSuccess ? (\n <InLineAlert\n type=\"success\"\n variant=\"primary\"\n icon={<CheckWithCircle />}\n heading={dictionary.confirmationModalDeleteSuccessHeading}\n description={dictionary.confirmationModalDeleteSuccessDescription}\n onDismiss={handleDismissSuccess}\n data-testid=\"confirmation-modal-success-banner\"\n />\n ) : null;\n\n const deleteBanner = deleteSuccessBanner || deleteErrorBanner;\n\n const manageNegotiableQuoteProps: ManageNegotiableQuoteComponentProps = {\n ...props,\n loading,\n quoteName,\n quoteStatus,\n banner: banner || undefined,\n details: details!, // Details will always be defined at this point\n actionBar,\n quoteContent,\n shippingInformationTitle,\n shippingInformation,\n quoteCommentsTitle,\n quoteComments,\n footer,\n };\n\n // Create banner for close modal based on success/error state\n let closeModalBanner = null;\n if (modalSuccessMessage) {\n closeModalBanner = (\n <InLineAlert\n type=\"success\"\n variant=\"primary\"\n icon={<CheckWithCircle />}\n heading={dictionary.closeModalSuccessHeading}\n description={modalSuccessMessage}\n data-testid=\"close-quote-success-banner\"\n />\n );\n } else if (modalErrorMessage) {\n closeModalBanner = (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n icon={<WarningFilled />}\n heading={dictionary.confirmationModalDeleteErrorHeading}\n description={modalErrorMessage}\n data-testid=\"close-quote-error-banner\"\n />\n );\n }\n\n return (\n <>\n <ManageNegotiableQuoteComponent {...manageNegotiableQuoteProps} />\n {isRenameModalOpen &&\n createPortal(\n <RenameQuoteModal\n open={isRenameModalOpen}\n quoteName={renameQuoteName}\n renameReason={renameReason}\n quoteNameError={renameQuoteNameError}\n errorBanner={renameErrorBanner}\n successBanner={renameSuccessBanner}\n onQuoteNameChange={handleRenameQuoteNameChange}\n onRenameReasonChange={setRenameReason}\n onSave={handleRenameSave}\n onClose={handleRenameClose}\n />,\n document.body\n )}\n {isDeleteDialogOpen &&\n createPortal(\n <ConfirmationModal\n open={isDeleteDialogOpen}\n title={dictionary.confirmationModalDeleteTitle}\n message={dictionary.confirmationModalDeleteMessage}\n cancelLabel={dictionary.confirmationModalCancel}\n confirmLabel={dictionary.confirmationModalDeleteConfirm}\n onCancel={handleDeleteCancel}\n onConfirm={handleDeleteConfirm}\n showCloseButton={!deleteBanner}\n confirmationBanner={deleteBanner}\n />,\n document.body\n )}\n {showCloseModal &&\n createPortal(\n <ConfirmationModal\n open={showCloseModal}\n title={dictionary.closeModalTitle}\n message={dictionary.closeModalMessage}\n cancelLabel={dictionary.closeModalCancel}\n confirmLabel={\n isClosing ? dictionary.closeModalConfirmLoading : dictionary.closeModalConfirm\n }\n onCancel={handleCloseModalCancel}\n onConfirm={isClosing ? undefined : handleCloseQuote}\n showCloseButton={true}\n confirmationBanner={closeModalBanner}\n data-testid=\"close-quote-confirmation-modal\"\n />,\n document.body\n )}\n </>\n );\n};\n"],"names":["SvgEdit","props","React","ActionsBar","className","dropdownPlaceholder","dropdownOptions","handleDropdownChange","buttons","hasDropdown","hasButtons","pickerOptions","option","classes","jsx","Picker","button","index","VComponent","ManageNegotiableQuote","loading","quoteName","quoteStatus","banner","details","actionBar","quoteContent","shippingInformationTitle","shippingInformation","quoteCommentsTitle","quoteComments","footer","ManageNegotiableQuoteSkeleton","jsxs","Skeleton","SkeletonRow","TabbedContent","tabs","tabsContent","defaultActiveTab","activeTabId","setActiveTabId","useState","handleTabClick","tabId","activeTabContent","useMemo","tabLabel","RenameQuoteModal","open","renameReason","quoteNameError","errorBanner","successBanner","showCloseButton","onQuoteNameChange","onRenameReasonChange","onSave","onClose","dictionary","useText","Modal","Fragment","Input","e","TextArea","Button","onActionsDropdownChange","slots","onActionsButtonClick","onSendForReview","quoteData","setQuoteData","setLoading","isDeleteDialogOpen","setIsDeleteDialogOpen","deleteError","setDeleteError","deleteSuccess","setDeleteSuccess","comment","setComment","isSubmitting","setIsSubmitting","showCloseModal","setShowCloseModal","isClosing","setIsClosing","modalSuccessMessage","setModalSuccessMessage","modalErrorMessage","setModalErrorMessage","isRenameModalOpen","setIsRenameModalOpen","renameQuoteName","setRenameQuoteName","setRenameReason","renameError","setRenameError","renameQuoteNameError","setRenameQuoteNameError","renameSuccess","setRenameSuccess","useEffect","quoteDataEvent","events","data","quote","shippingAddressSetEvent","quoteSentForReviewEvent","quoteClosedEvent","currentQuoteData","_a","getQuoteData","updatedQuoteData","error","quoteCloseErrorEvent","errorMsg","quoteRenamedEvent","handleRenameClick","useCallback","handleRenameClose","handleRenameQuoteNameChange","value","handleRenameSave","renameNegotiableQuote","isLocked","Slot","Edit","bannerMessage","status","bannerContent","InLineAlert","WarningFilled","calculatedLocale","getGlobalLocale","dateFormatter","expirationDate","handleActionsDropdownChange","event","handleActionsButtonClick","action","ItemsQuoted","QuoteCommentsList","QuoteHistoryLog","ShippingAddressDisplay","handleCloseQuote","closeNegotiableQuote","handleCloseModalCancel","handleSendForReview","sendForReview","renameErrorBanner","renameSuccessBanner","CheckWithCircle","getDeleteErrorMessage","handleDeleteCancel","handleDeleteConfirm","operationResults","deleteQuote","failure","res","errorMessage","handleDismissError","handleDismissSuccess","deleteErrorBanner","deleteBanner","manageNegotiableQuoteProps","closeModalBanner","ManageNegotiableQuoteComponent","createPortal","ConfirmationModal"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsxs as u,jsx as t,Fragment as Ne}from"@dropins/tools/preact-jsx-runtime.js";import{VComponent as Z,classes as _e}from"@dropins/tools/lib.js";/* empty css */import{Accordion as Ce,AccordionSection as fe,Divider as Ee,Price as l,Icon as Me}from"@dropins/tools/components.js";/* empty css */import{O as c}from"../chunks/OrderSummaryLine.js";import*as g from"@dropins/tools/preact-compat.js";import{useState as Se,useEffect as Ze}from"@dropins/tools/preact-compat.js";import{useText as we}from"@dropins/tools/i18n.js";import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";/* empty css *//* empty css *//* empty css */import{s as He,Q as H}from"../chunks/state.js";import{events as ke}from"@dropins/tools/event-bus.js";const ve=d=>g.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...d},g.createElement("path",{d:"M7.74512 9.87701L12.0001 14.132L16.2551 9.87701",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),Le=d=>g.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...d},g.createElement("path",{d:"M7.74512 14.132L12.0001 9.87701L16.2551 14.132",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),Ve=d=>g.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...d},g.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M22 6.25H22.75C22.75 5.83579 22.4142 5.5 22 5.5V6.25ZM22 9.27L22.2514 9.97663C22.5503 9.87029 22.75 9.58731 22.75 9.27H22ZM20.26 12.92L19.5534 13.1714L19.5539 13.1728L20.26 12.92ZM22 14.66H22.75C22.75 14.3433 22.551 14.0607 22.2528 13.9539L22 14.66ZM22 17.68V18.43C22.4142 18.43 22.75 18.0942 22.75 17.68H22ZM2 17.68H1.25C1.25 18.0942 1.58579 18.43 2 18.43V17.68ZM2 14.66L1.74865 13.9534C1.44969 14.0597 1.25 14.3427 1.25 14.66H2ZM3.74 11.01L4.44663 10.7586L4.44611 10.7572L3.74 11.01ZM2 9.27H1.25C1.25 9.58675 1.44899 9.86934 1.7472 9.97611L2 9.27ZM2 6.25V5.5C1.58579 5.5 1.25 5.83579 1.25 6.25H2ZM21.25 6.25V9.27H22.75V6.25H21.25ZM21.7486 8.56337C19.8706 9.23141 18.8838 11.2889 19.5534 13.1714L20.9666 12.6686C20.5762 11.5711 21.1494 10.3686 22.2514 9.97663L21.7486 8.56337ZM19.5539 13.1728C19.9195 14.1941 20.7259 15.0005 21.7472 15.3661L22.2528 13.9539C21.6541 13.7395 21.1805 13.2659 20.9661 12.6672L19.5539 13.1728ZM21.25 14.66V17.68H22.75V14.66H21.25ZM22 16.93H2V18.43H22V16.93ZM2.75 17.68V14.66H1.25V17.68H2.75ZM2.25135 15.3666C4.12941 14.6986 5.11623 12.6411 4.44663 10.7586L3.03337 11.2614C3.42377 12.3589 2.85059 13.5614 1.74865 13.9534L2.25135 15.3666ZM4.44611 10.7572C4.08045 9.73588 3.27412 8.92955 2.2528 8.56389L1.7472 9.97611C2.34588 10.1905 2.81955 10.6641 3.03389 11.2628L4.44611 10.7572ZM2.75 9.27V6.25H1.25V9.27H2.75ZM2 7H22V5.5H2V7ZM7.31 6.74V18.17H8.81V6.74H7.31ZM17.0997 8.39967L11.0397 14.4597L12.1003 15.5203L18.1603 9.46033L17.0997 8.39967ZM12.57 9.67C12.57 9.87231 12.4159 10 12.27 10V11.5C13.2839 11.5 14.07 10.6606 14.07 9.67H12.57ZM12.27 10C12.1241 10 11.97 9.87231 11.97 9.67H10.47C10.47 10.6606 11.2561 11.5 12.27 11.5V10ZM11.97 9.67C11.97 9.46769 12.1241 9.34 12.27 9.34V7.84C11.2561 7.84 10.47 8.67938 10.47 9.67H11.97ZM12.27 9.34C12.4159 9.34 12.57 9.46769 12.57 9.67H14.07C14.07 8.67938 13.2839 7.84 12.27 7.84V9.34ZM17.22 14.32C17.22 14.5223 17.0659 14.65 16.92 14.65V16.15C17.9339 16.15 18.72 15.3106 18.72 14.32H17.22ZM16.92 14.65C16.7741 14.65 16.62 14.5223 16.62 14.32H15.12C15.12 15.3106 15.9061 16.15 16.92 16.15V14.65ZM16.62 14.32C16.62 14.1177 16.7741 13.99 16.92 13.99V12.49C15.9061 12.49 15.12 13.3294 15.12 14.32H16.62ZM16.92 13.99C17.0659 13.99 17.22 14.1177 17.22 14.32H18.72C18.72 13.3294 17.9339 12.49 16.92 12.49V13.99Z",fill:"currentColor"})),Ie=({className:d,children:k,variant:y="primary",heading:C,subTotal:p,shipping:e,discounts:b,taxTotal:s,taxesApplied:a,total:n,totalSaved:T,updateLineItems:f=m=>m,...v})=>{const[m,x]=Se(!1),o=we({taxesBreakdownTitle:"NegotiableQuote.PriceSummary.taxes.breakdown",taxTotal:"NegotiableQuote.PriceSummary.taxes.total",taxTotalOnly:"NegotiableQuote.PriceSummary.taxes.totalOnly",showTaxBreakdown:"NegotiableQuote.PriceSummary.taxes.showBreakdown",hideTaxBreakdown:"NegotiableQuote.PriceSummary.taxes.hideBreakdown",subtotalLabel:"NegotiableQuote.PriceSummary.subTotal.label",subtotalWithTaxes:"NegotiableQuote.PriceSummary.subTotal.withTaxes",subtotalWithoutTaxes:"NegotiableQuote.PriceSummary.subTotal.withoutTaxes",shippingLabel:"NegotiableQuote.PriceSummary.shipping.label",shippingWithTaxes:"NegotiableQuote.PriceSummary.shipping.withTaxes",shippingWithoutTaxes:"NegotiableQuote.PriceSummary.shipping.withoutTaxes",totalLabel:"NegotiableQuote.PriceSummary.total.label",totalWithoutTax:"NegotiableQuote.PriceSummary.total.withoutTax",totalSaved:"NegotiableQuote.PriceSummary.total.saved"}),L=p&&u(c,{label:o.subtotalLabel,price:p.price,classSuffixes:["subTotal"],children:[p.taxIncluded&&t("div",{"data-testid":"sub-total-tax-caption",className:"quote-order-summary__caption",children:t("span",{children:o.subtotalWithTaxes})}),p.taxExcluded?t("div",{"data-testid":"sub-total-tax-caption-excluded",className:"quote-order-summary__caption",children:u("span",{children:[p.priceExcludingTax," ",o.subtotalWithoutTaxes]})}):void 0]},o.subtotalLabel),S=e&&u(c,{label:o.shippingLabel,price:e.price,classSuffixes:["shipping"],children:[e.taxIncluded&&t("div",{"data-testid":"shipping-tax-caption",className:"quote-order-summary__caption",children:t("span",{children:o.shippingWithTaxes})}),e.taxExcluded?t("div",{"data-testid":"shipping-tax-caption-excluded",className:"quote-order-summary__caption",children:u("span",{children:[e.priceExcludingTax," ",o.shippingWithoutTaxes]})}):void 0]},o.shippingLabel),w=b&&b.length>0&&t(Ne,{children:b.map(r=>u(c,{label:r.label,price:r.price,classSuffixes:["discount"],children:[r.coupon&&t(Z,{node:r.coupon,className:"quote-order-summary__coupon__code"}),r.caption&&t(Z,{node:r.caption,className:"quote-order-summary__caption"})]},r.label))}),N=a&&a.length>0?t(Ce,{"data-testid":"tax-breakdown",className:"quote-order-summary__taxes",iconOpen:ve,iconClose:Le,children:u(fe,{ariaLabelTitle:o.taxesBreakdownTitle,title:o.taxesBreakdownTitle,secondaryText:!m&&s?t(Z,{node:s.price,className:"quote-order-summary__price"}):void 0,renderContentWhenClosed:!1,onStateChange:x,children:[t("div",{className:"quote-order-summary__appliedTaxes",children:a.map(r=>t(c,{label:r.label,price:r.price,classSuffixes:["taxEntry"],labelClassSuffix:"muted"},r.label))}),s&&t(c,{label:o.taxTotal,price:s.price,classSuffixes:["taxTotal"],labelClassSuffix:"muted"})]})}):s&&t(c,{label:o.taxTotalOnly,price:s.price,classSuffixes:["taxTotal"],testId:"tax-total-only"}),_=[{key:"subTotalContent",sortOrder:100,content:L},{key:"shippingContent",sortOrder:200,content:S},{key:"discountsContent",sortOrder:600,content:w},{key:"taxContent",sortOrder:800,content:N},...n?[{key:"totalContent",sortOrder:900,content:t(c,{label:o.totalLabel,price:n.price,classSuffixes:["total","total--padded"],testId:"total-content",labelClassSuffix:"bold"})}]:[],...n!=null&&n.priceWithoutTax?[{key:"totalWithoutTaxContent",sortOrder:1e3,content:t(c,{label:o.totalWithoutTax,price:n.priceWithoutTax,classSuffixes:["totalWithoutTax"],testId:"total-without-tax",labelClassSuffix:"muted"})}]:[],...T?[{key:"totalSavedContent",sortOrder:1100,content:t(c,{label:o.totalSaved,price:T,classSuffixes:["saved"],testId:"total-saved",labelClassSuffix:"muted"})}]:[]],E=f(_).sort((r,h)=>r.sortOrder-h.sortOrder);return u("div",{...v,className:_e(["quote-order-summary",[`quote-order-summary__${y}`,y],d]),children:[u("div",{className:"quote-order-summary__heading",children:[C&&t(Z,{node:C,className:"quote-order-summary__heading-text"}),t(Ee,{variant:"primary",className:"quote-order-summary__divider-primary"})]}),t("div",{className:"quote-order-summary__content",children:E.map(r=>Array.isArray(r.content)?t(Ce,{className:r.className,actionIconPosition:"right",iconOpen:ve,iconClose:Le,children:t(fe,{defaultOpen:!1,title:r.title,renderContentWhenClosed:!1,children:r.content.map(h=>h.content)})},r.key):r.content)})]})},Ge=({children:d,initialData:k=null,showTotalSaved:y,updateLineItems:C=e=>e,...p})=>{var o,L,S,w,N,_,E,r,h,V,I,O,P,Q,W,B,D,q,A,U,X,j,z,$,F,R,G,J,K,Y,ee,te,re,ae,oe,ie,ne,le,se,ce,ue,de,pe,me,xe,he,ge,be,Te,ye;const[e,b]=Se(k),s=e==null?void 0:e.isVirtual,{quoteDisplaySettings:a}=He.config,n=!!(a!=null&&a.zeroTax),T=(a==null?void 0:a.subtotal)===H.TAX_INCLUDED,f=a.subtotal===H.TAX_INCLUDED_AND_EXCLUDED,v=(a==null?void 0:a.shipping)===H.TAX_INCLUDED,m=a.shipping===H.TAX_INCLUDED_AND_EXCLUDED;Ze(()=>{const i=ke.on("quote-management/quote-data",M=>{b(M.quote)},{eager:!0});return()=>{i==null||i.off()}},[]);const x=we({free:"NegotiableQuote.PriceSummary.total.free",orderSummary:"NegotiableQuote.PriceSummary.orderSummary",taxToBeDetermined:"NegotiableQuote.PriceSummary.taxToBeDetermined"});return Object.keys(e??{}).length?t(Ie,{...p,"data-testid":"quote-order-summary",heading:t("div",{children:x.orderSummary}),updateLineItems:C,subTotal:{taxIncluded:T&&!n,taxExcluded:f,priceExcludingTax:t(l,{"data-testid":"subtotal",amount:(L=(o=e==null?void 0:e.prices)==null?void 0:o.subtotalExcludingTax)==null?void 0:L.value,currency:(w=(S=e==null?void 0:e.prices)==null?void 0:S.subtotalExcludingTax)==null?void 0:w.currency}),price:!n&&T||!n&&f?t(l,{"data-testid":"subtotal",amount:(_=(N=e==null?void 0:e.prices)==null?void 0:N.subtotalIncludingTax)==null?void 0:_.value,currency:(r=(E=e==null?void 0:e.prices)==null?void 0:E.subtotalIncludingTax)==null?void 0:r.currency}):t(l,{"data-testid":"subtotal",amount:(V=(h=e==null?void 0:e.prices)==null?void 0:h.subtotalExcludingTax)==null?void 0:V.value,currency:(O=(I=e==null?void 0:e.prices)==null?void 0:I.subtotalExcludingTax)==null?void 0:O.currency})},shipping:{taxIncluded:v&&!n,taxExcluded:m,priceExcludingTax:t(l,{"data-testid":"shipping",amount:(Q=(P=e==null?void 0:e.prices)==null?void 0:P.shippingExcludingTax)==null?void 0:Q.value,currency:(B=(W=e==null?void 0:e.prices)==null?void 0:W.shippingExcludingTax)==null?void 0:B.currency}),price:!n&&v||!n&&m?t(l,{"data-testid":"shipping",amount:(q=(D=e==null?void 0:e.prices)==null?void 0:D.shippingIncludingTax)==null?void 0:q.value,currency:(U=(A=e==null?void 0:e.prices)==null?void 0:A.shippingIncludingTax)==null?void 0:U.currency}):t(l,{"data-testid":"shipping",amount:(j=(X=e==null?void 0:e.prices)==null?void 0:X.shippingExcludingTax)==null?void 0:j.value,currency:($=(z=e==null?void 0:e.prices)==null?void 0:z.shippingExcludingTax)==null?void 0:$.currency})},discounts:(R=(F=e==null?void 0:e.prices)==null?void 0:F.appliedDiscounts)==null?void 0:R.map(i=>{var M;return{label:i.label,price:t(l,{"data-testid":"summary-discount-total",amount:-i.amount.value,currency:i.amount.currency,sale:!0}),coupon:i!=null&&i.coupon?u("span",{children:[t(Me,{source:Ve,size:"16"}),(M=i==null?void 0:i.coupon)==null?void 0:M.code]}):void 0}}),taxTotal:s&&!((J=(G=e==null?void 0:e.prices)==null?void 0:G.appliedTaxes)!=null&&J.length)?{price:t("span",{"data-testid":"tax-total-tbd",children:x.taxToBeDetermined})}:{price:t(l,{"data-testid":"tax-total-actual",amount:(Y=(K=e==null?void 0:e.prices)==null?void 0:K.totalTax)==null?void 0:Y.value,currency:(te=(ee=e==null?void 0:e.prices)==null?void 0:ee.totalTax)==null?void 0:te.currency})},taxesApplied:s?void 0:a!=null&&a.fullSummary?(ae=(re=e==null?void 0:e.prices)==null?void 0:re.appliedTaxes)==null?void 0:ae.map(i=>({label:i.label,price:t(l,{"data-testid":"applied-taxes",amount:i.amount.value,currency:i.amount.currency})})):void 0,total:{price:((ie=(oe=e==null?void 0:e.prices)==null?void 0:oe.grandTotal)==null?void 0:ie.value)===0?t("span",{"data-testid":"total-including-tax",children:x.free}):t(l,{"data-testid":"total-including-tax-actual",amount:(le=(ne=e==null?void 0:e.prices)==null?void 0:ne.grandTotal)==null?void 0:le.value,currency:(ce=(se=e==null?void 0:e.prices)==null?void 0:se.grandTotal)==null?void 0:ce.currency}),priceWithoutTax:a!=null&&a.grandTotal?((de=(ue=e==null?void 0:e.prices)==null?void 0:ue.grandTotalExcludingTax)==null?void 0:de.value)===0?t("span",{"data-testid":"total-excluding-tax",children:x.free}):t(l,{"data-testid":"total-excluding-tax",amount:(me=(pe=e==null?void 0:e.prices)==null?void 0:pe.grandTotalExcludingTax)==null?void 0:me.value,currency:(he=(xe=e==null?void 0:e.prices)==null?void 0:xe.grandTotalExcludingTax)==null?void 0:he.currency}):void 0},totalSaved:y?t(l,{amount:(be=(ge=e==null?void 0:e.prices)==null?void 0:ge.discount)==null?void 0:be.value,currency:(ye=(Te=e==null?void 0:e.prices)==null?void 0:Te.grandTotal)==null?void 0:ye.currency}):void 0}):null};export{Ge as OrderSummary,Ge as default};
3
+ import{jsxs as u,jsx as t,Fragment as _e}from"@dropins/tools/preact-jsx-runtime.js";import{VComponent as M,classes as Ee}from"@dropins/tools/lib.js";/* empty css */import{Accordion as Ce,AccordionSection as fe,Divider as we,Price as l,Icon as Me}from"@dropins/tools/components.js";/* empty css */import{O as s}from"../chunks/OrderSummaryLine.js";import*as H from"@dropins/tools/preact-compat.js";import{useState as Se,useEffect as Ze}from"@dropins/tools/preact-compat.js";import{S as ve}from"../chunks/ChevronDown.js";import{useText as Ne}from"@dropins/tools/i18n.js";import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";/* empty css *//* empty css *//* empty css */import{s as He,Q as Z}from"../chunks/state.js";import{events as Ve}from"@dropins/tools/event-bus.js";const Le=m=>H.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...m},H.createElement("path",{d:"M7.74512 14.132L12.0001 9.87701L16.2551 14.132",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),Ie=m=>H.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...m},H.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M22 6.25H22.75C22.75 5.83579 22.4142 5.5 22 5.5V6.25ZM22 9.27L22.2514 9.97663C22.5503 9.87029 22.75 9.58731 22.75 9.27H22ZM20.26 12.92L19.5534 13.1714L19.5539 13.1728L20.26 12.92ZM22 14.66H22.75C22.75 14.3433 22.551 14.0607 22.2528 13.9539L22 14.66ZM22 17.68V18.43C22.4142 18.43 22.75 18.0942 22.75 17.68H22ZM2 17.68H1.25C1.25 18.0942 1.58579 18.43 2 18.43V17.68ZM2 14.66L1.74865 13.9534C1.44969 14.0597 1.25 14.3427 1.25 14.66H2ZM3.74 11.01L4.44663 10.7586L4.44611 10.7572L3.74 11.01ZM2 9.27H1.25C1.25 9.58675 1.44899 9.86934 1.7472 9.97611L2 9.27ZM2 6.25V5.5C1.58579 5.5 1.25 5.83579 1.25 6.25H2ZM21.25 6.25V9.27H22.75V6.25H21.25ZM21.7486 8.56337C19.8706 9.23141 18.8838 11.2889 19.5534 13.1714L20.9666 12.6686C20.5762 11.5711 21.1494 10.3686 22.2514 9.97663L21.7486 8.56337ZM19.5539 13.1728C19.9195 14.1941 20.7259 15.0005 21.7472 15.3661L22.2528 13.9539C21.6541 13.7395 21.1805 13.2659 20.9661 12.6672L19.5539 13.1728ZM21.25 14.66V17.68H22.75V14.66H21.25ZM22 16.93H2V18.43H22V16.93ZM2.75 17.68V14.66H1.25V17.68H2.75ZM2.25135 15.3666C4.12941 14.6986 5.11623 12.6411 4.44663 10.7586L3.03337 11.2614C3.42377 12.3589 2.85059 13.5614 1.74865 13.9534L2.25135 15.3666ZM4.44611 10.7572C4.08045 9.73588 3.27412 8.92955 2.2528 8.56389L1.7472 9.97611C2.34588 10.1905 2.81955 10.6641 3.03389 11.2628L4.44611 10.7572ZM2.75 9.27V6.25H1.25V9.27H2.75ZM2 7H22V5.5H2V7ZM7.31 6.74V18.17H8.81V6.74H7.31ZM17.0997 8.39967L11.0397 14.4597L12.1003 15.5203L18.1603 9.46033L17.0997 8.39967ZM12.57 9.67C12.57 9.87231 12.4159 10 12.27 10V11.5C13.2839 11.5 14.07 10.6606 14.07 9.67H12.57ZM12.27 10C12.1241 10 11.97 9.87231 11.97 9.67H10.47C10.47 10.6606 11.2561 11.5 12.27 11.5V10ZM11.97 9.67C11.97 9.46769 12.1241 9.34 12.27 9.34V7.84C11.2561 7.84 10.47 8.67938 10.47 9.67H11.97ZM12.27 9.34C12.4159 9.34 12.57 9.46769 12.57 9.67H14.07C14.07 8.67938 13.2839 7.84 12.27 7.84V9.34ZM17.22 14.32C17.22 14.5223 17.0659 14.65 16.92 14.65V16.15C17.9339 16.15 18.72 15.3106 18.72 14.32H17.22ZM16.92 14.65C16.7741 14.65 16.62 14.5223 16.62 14.32H15.12C15.12 15.3106 15.9061 16.15 16.92 16.15V14.65ZM16.62 14.32C16.62 14.1177 16.7741 13.99 16.92 13.99V12.49C15.9061 12.49 15.12 13.3294 15.12 14.32H16.62ZM16.92 13.99C17.0659 13.99 17.22 14.1177 17.22 14.32H18.72C18.72 13.3294 17.9339 12.49 16.92 12.49V13.99Z",fill:"currentColor"})),ke=({className:m,children:V,variant:T="primary",heading:y,subTotal:d,shipping:e,discounts:g,taxTotal:c,taxesApplied:r,total:n,totalSaved:b,updateLineItems:C=p=>p,...f})=>{const[p,x]=Se(!1),o=Ne({taxesBreakdownTitle:"NegotiableQuote.PriceSummary.taxes.breakdown",taxTotal:"NegotiableQuote.PriceSummary.taxes.total",taxTotalOnly:"NegotiableQuote.PriceSummary.taxes.totalOnly",showTaxBreakdown:"NegotiableQuote.PriceSummary.taxes.showBreakdown",hideTaxBreakdown:"NegotiableQuote.PriceSummary.taxes.hideBreakdown",subtotalLabel:"NegotiableQuote.PriceSummary.subTotal.label",subtotalWithTaxes:"NegotiableQuote.PriceSummary.subTotal.withTaxes",subtotalWithoutTaxes:"NegotiableQuote.PriceSummary.subTotal.withoutTaxes",shippingLabel:"NegotiableQuote.PriceSummary.shipping.label",shippingWithTaxes:"NegotiableQuote.PriceSummary.shipping.withTaxes",shippingWithoutTaxes:"NegotiableQuote.PriceSummary.shipping.withoutTaxes",totalLabel:"NegotiableQuote.PriceSummary.total.label",totalWithoutTax:"NegotiableQuote.PriceSummary.total.withoutTax",totalSaved:"NegotiableQuote.PriceSummary.total.saved"}),v=d&&u(s,{label:o.subtotalLabel,price:d.price,classSuffixes:["subTotal"],children:[d.taxIncluded&&t("div",{"data-testid":"sub-total-tax-caption",className:"quote-order-summary__caption",children:t("span",{children:o.subtotalWithTaxes})}),d.taxExcluded?t("div",{"data-testid":"sub-total-tax-caption-excluded",className:"quote-order-summary__caption",children:u("span",{children:[d.priceExcludingTax," ",o.subtotalWithoutTaxes]})}):void 0]},o.subtotalLabel),L=e&&u(s,{label:o.shippingLabel,price:e.price,classSuffixes:["shipping"],children:[e.taxIncluded&&t("div",{"data-testid":"shipping-tax-caption",className:"quote-order-summary__caption",children:t("span",{children:o.shippingWithTaxes})}),e.taxExcluded?t("div",{"data-testid":"shipping-tax-caption-excluded",className:"quote-order-summary__caption",children:u("span",{children:[e.priceExcludingTax," ",o.shippingWithoutTaxes]})}):void 0]},o.shippingLabel),S=g&&g.length>0&&t(_e,{children:g.map(a=>u(s,{label:a.label,price:a.price,classSuffixes:["discount"],children:[a.coupon&&t(M,{node:a.coupon,className:"quote-order-summary__coupon__code"}),a.caption&&t(M,{node:a.caption,className:"quote-order-summary__caption"})]},a.label))}),N=r&&r.length>0?t(Ce,{"data-testid":"tax-breakdown",className:"quote-order-summary__taxes",iconOpen:ve,iconClose:Le,children:u(fe,{ariaLabelTitle:o.taxesBreakdownTitle,title:o.taxesBreakdownTitle,secondaryText:!p&&c?t(M,{node:c.price,className:"quote-order-summary__price"}):void 0,renderContentWhenClosed:!1,onStateChange:x,children:[t("div",{className:"quote-order-summary__appliedTaxes",children:r.map(a=>t(s,{label:a.label,price:a.price,classSuffixes:["taxEntry"],labelClassSuffix:"muted"},a.label))}),c&&t(s,{label:o.taxTotal,price:c.price,classSuffixes:["taxTotal"],labelClassSuffix:"muted"})]})}):c&&t(s,{label:o.taxTotalOnly,price:c.price,classSuffixes:["taxTotal"],testId:"tax-total-only"}),_=[{key:"subTotalContent",sortOrder:100,content:v},{key:"shippingContent",sortOrder:200,content:L},{key:"discountsContent",sortOrder:600,content:S},{key:"taxContent",sortOrder:800,content:N},...n?[{key:"totalContent",sortOrder:900,content:t(s,{label:o.totalLabel,price:n.price,classSuffixes:["total","total--padded"],testId:"total-content",labelClassSuffix:"bold"})}]:[],...n!=null&&n.priceWithoutTax?[{key:"totalWithoutTaxContent",sortOrder:1e3,content:t(s,{label:o.totalWithoutTax,price:n.priceWithoutTax,classSuffixes:["totalWithoutTax"],testId:"total-without-tax",labelClassSuffix:"muted"})}]:[],...b?[{key:"totalSavedContent",sortOrder:1100,content:t(s,{label:o.totalSaved,price:b,classSuffixes:["saved"],testId:"total-saved",labelClassSuffix:"muted"})}]:[]],E=C(_).sort((a,h)=>a.sortOrder-h.sortOrder);return u("div",{...f,className:Ee(["quote-order-summary",[`quote-order-summary__${T}`,T],m]),children:[u("div",{className:"quote-order-summary__heading",children:[y&&t(M,{node:y,className:"quote-order-summary__heading-text"}),t(we,{variant:"primary",className:"quote-order-summary__divider-primary"})]}),t("div",{className:"quote-order-summary__content",children:E.map(a=>Array.isArray(a.content)?t(Ce,{className:a.className,actionIconPosition:"right",iconOpen:ve,iconClose:Le,children:t(fe,{defaultOpen:!1,title:a.title,renderContentWhenClosed:!1,children:a.content.map(h=>h.content)})},a.key):a.content)})]})},Je=({children:m,initialData:V=null,showTotalSaved:T,updateLineItems:y=e=>e,...d})=>{var o,v,L,S,N,_,E,a,h,I,k,O,P,Q,W,B,A,D,q,U,X,j,z,$,F,R,G,J,K,Y,ee,te,re,ae,oe,ie,ne,le,ce,se,ue,de,me,pe,xe,he,ge,be,Te,ye;const[e,g]=Se(V),c=e==null?void 0:e.isVirtual,{quoteDisplaySettings:r}=He.config,n=!!(r!=null&&r.zeroTax),b=(r==null?void 0:r.subtotal)===Z.TAX_INCLUDED,C=(r==null?void 0:r.subtotal)===Z.TAX_INCLUDED_AND_EXCLUDED,f=(r==null?void 0:r.shipping)===Z.TAX_INCLUDED,p=(r==null?void 0:r.shipping)===Z.TAX_INCLUDED_AND_EXCLUDED;Ze(()=>{const i=Ve.on("quote-management/quote-data",w=>{g(w.quote)},{eager:!0});return()=>{i==null||i.off()}},[]);const x=Ne({free:"NegotiableQuote.PriceSummary.total.free",orderSummary:"NegotiableQuote.PriceSummary.orderSummary",taxToBeDetermined:"NegotiableQuote.PriceSummary.taxToBeDetermined"});return Object.keys(e??{}).length?t(ke,{...d,"data-testid":"quote-order-summary",heading:t("div",{children:x.orderSummary}),updateLineItems:y,subTotal:{taxIncluded:b&&!n,taxExcluded:C,priceExcludingTax:t(l,{"data-testid":"subtotal",amount:(v=(o=e==null?void 0:e.prices)==null?void 0:o.subtotalExcludingTax)==null?void 0:v.value,currency:(S=(L=e==null?void 0:e.prices)==null?void 0:L.subtotalExcludingTax)==null?void 0:S.currency}),price:!n&&b||!n&&C?t(l,{"data-testid":"subtotal",amount:(_=(N=e==null?void 0:e.prices)==null?void 0:N.subtotalIncludingTax)==null?void 0:_.value,currency:(a=(E=e==null?void 0:e.prices)==null?void 0:E.subtotalIncludingTax)==null?void 0:a.currency}):t(l,{"data-testid":"subtotal",amount:(I=(h=e==null?void 0:e.prices)==null?void 0:h.subtotalExcludingTax)==null?void 0:I.value,currency:(O=(k=e==null?void 0:e.prices)==null?void 0:k.subtotalExcludingTax)==null?void 0:O.currency})},shipping:{taxIncluded:f&&!n,taxExcluded:p,priceExcludingTax:t(l,{"data-testid":"shipping",amount:(Q=(P=e==null?void 0:e.prices)==null?void 0:P.shippingExcludingTax)==null?void 0:Q.value,currency:(B=(W=e==null?void 0:e.prices)==null?void 0:W.shippingExcludingTax)==null?void 0:B.currency}),price:!n&&f||!n&&p?t(l,{"data-testid":"shipping",amount:(D=(A=e==null?void 0:e.prices)==null?void 0:A.shippingIncludingTax)==null?void 0:D.value,currency:(U=(q=e==null?void 0:e.prices)==null?void 0:q.shippingIncludingTax)==null?void 0:U.currency}):t(l,{"data-testid":"shipping",amount:(j=(X=e==null?void 0:e.prices)==null?void 0:X.shippingExcludingTax)==null?void 0:j.value,currency:($=(z=e==null?void 0:e.prices)==null?void 0:z.shippingExcludingTax)==null?void 0:$.currency})},discounts:(R=(F=e==null?void 0:e.prices)==null?void 0:F.appliedDiscounts)==null?void 0:R.map(i=>{var w;return{label:i.label,price:t(l,{"data-testid":"summary-discount-total",amount:-i.amount.value,currency:i.amount.currency,sale:!0}),coupon:i!=null&&i.coupon?u("span",{children:[t(Me,{source:Ie,size:"16"}),(w=i==null?void 0:i.coupon)==null?void 0:w.code]}):void 0}}),taxTotal:c&&!((J=(G=e==null?void 0:e.prices)==null?void 0:G.appliedTaxes)!=null&&J.length)?{price:t("span",{"data-testid":"tax-total-tbd",children:x.taxToBeDetermined})}:{price:t(l,{"data-testid":"tax-total-actual",amount:(Y=(K=e==null?void 0:e.prices)==null?void 0:K.totalTax)==null?void 0:Y.value,currency:(te=(ee=e==null?void 0:e.prices)==null?void 0:ee.totalTax)==null?void 0:te.currency})},taxesApplied:c?void 0:r!=null&&r.fullSummary?(ae=(re=e==null?void 0:e.prices)==null?void 0:re.appliedTaxes)==null?void 0:ae.map(i=>({label:i.label,price:t(l,{"data-testid":"applied-taxes",amount:i.amount.value,currency:i.amount.currency})})):void 0,total:{price:((ie=(oe=e==null?void 0:e.prices)==null?void 0:oe.grandTotal)==null?void 0:ie.value)===0?t("span",{"data-testid":"total-including-tax",children:x.free}):t(l,{"data-testid":"total-including-tax-actual",amount:(le=(ne=e==null?void 0:e.prices)==null?void 0:ne.grandTotal)==null?void 0:le.value,currency:(se=(ce=e==null?void 0:e.prices)==null?void 0:ce.grandTotal)==null?void 0:se.currency}),priceWithoutTax:r!=null&&r.grandTotal?((de=(ue=e==null?void 0:e.prices)==null?void 0:ue.grandTotalExcludingTax)==null?void 0:de.value)===0?t("span",{"data-testid":"total-excluding-tax",children:x.free}):t(l,{"data-testid":"total-excluding-tax",amount:(pe=(me=e==null?void 0:e.prices)==null?void 0:me.grandTotalExcludingTax)==null?void 0:pe.value,currency:(he=(xe=e==null?void 0:e.prices)==null?void 0:xe.grandTotalExcludingTax)==null?void 0:he.currency}):void 0},totalSaved:T?t(l,{amount:(be=(ge=e==null?void 0:e.prices)==null?void 0:ge.discount)==null?void 0:be.value,currency:(ye=(Te=e==null?void 0:e.prices)==null?void 0:Te.grandTotal)==null?void 0:ye.currency}):void 0}):null};export{Je as OrderSummary,Je as default};
4
4
  //# sourceMappingURL=OrderSummary.js.map