@dropins/storefront-quote-management 0.0.1-alpha29 → 0.0.1-alpha30

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 (95) hide show
  1. package/api/graphql/NegotiableQuoteTemplateFragment.d.ts +1 -1
  2. package/api/sendForReview/index.d.ts +1 -1
  3. package/api/sendForReview/sendForReview.d.ts +3 -0
  4. package/api/sendQuoteTemplateForReview/sendQuoteTemplateForReview.d.ts +7 -0
  5. package/api.js +8 -56
  6. package/api.js.map +1 -1
  7. package/chunks/AttachedFilesList.js +4 -0
  8. package/chunks/AttachedFilesList.js.map +1 -0
  9. package/chunks/ChevronDown.js +1 -1
  10. package/chunks/ChevronDown.js.map +1 -1
  11. package/chunks/ConfirmationModal.js +1 -1
  12. package/chunks/ConfirmationModal.js.map +1 -1
  13. package/chunks/ItemsQuoted.js +1 -1
  14. package/chunks/ItemsQuoted.js.map +1 -1
  15. package/chunks/ItemsQuotedTemplate.js +1 -1
  16. package/chunks/ItemsQuotedTemplate.js.map +1 -1
  17. package/chunks/LineItemNoteModal.js +4 -0
  18. package/chunks/LineItemNoteModal.js.map +1 -0
  19. package/chunks/NegotiableQuoteTemplateFragment.js +6 -0
  20. package/chunks/NegotiableQuoteTemplateFragment.js.map +1 -1
  21. package/chunks/OrderSummaryLine.js +1 -1
  22. package/chunks/OrderSummaryLine.js.map +1 -1
  23. package/chunks/QuoteCommentsList.js +1 -1
  24. package/chunks/QuoteCommentsList.js.map +1 -1
  25. package/chunks/QuoteCommentsList3.js +1 -1
  26. package/chunks/QuoteCommentsList3.js.map +1 -1
  27. package/chunks/RenameQuoteModal.js +4 -0
  28. package/chunks/RenameQuoteModal.js.map +1 -0
  29. package/chunks/ShippingAddressDisplay.js +1 -1
  30. package/chunks/ShippingAddressDisplay.js.map +1 -1
  31. package/chunks/addQuoteTemplateLineItemNote.js +33 -0
  32. package/chunks/addQuoteTemplateLineItemNote.js.map +1 -0
  33. package/chunks/duplicateNegotiableQuote.js +8 -8
  34. package/chunks/duplicateNegotiableQuote.js.map +1 -1
  35. package/chunks/openQuoteTemplate.js +28 -8
  36. package/chunks/openQuoteTemplate.js.map +1 -1
  37. package/chunks/requestNegotiableQuote.js +25 -0
  38. package/chunks/requestNegotiableQuote.js.map +1 -0
  39. package/chunks/setLineItemNote.js +1 -1
  40. package/chunks/transform-quote-template.js +1 -1
  41. package/chunks/transform-quote-template.js.map +1 -1
  42. package/chunks/transform-quote.js +1 -1
  43. package/chunks/uploadFile.js +2 -23
  44. package/chunks/uploadFile.js.map +1 -1
  45. package/components/AttachedFilesList/AttachedFilesList.d.ts +16 -0
  46. package/components/AttachedFilesList/index.d.ts +11 -0
  47. package/components/LineItemNoteModal/LineItemNoteModal.d.ts +1 -0
  48. package/components/ManageNegotiableQuote/ManageNegotiableQuote.d.ts +2 -0
  49. package/components/ManageNegotiableQuoteTemplate/ManageNegotiableQuoteTemplate.d.ts +3 -2
  50. package/components/ProductListTable/ProductListTable.d.ts +1 -0
  51. package/components/QuoteCommentsList/QuoteCommentsList.d.ts +4 -0
  52. package/components/ReferenceDocumentFormModal/ReferenceDocumentFormModal.d.ts +30 -0
  53. package/components/ReferenceDocumentFormModal/index.d.ts +11 -0
  54. package/components/ReferenceDocumentsList/ReferenceDocumentsList.d.ts +18 -0
  55. package/components/ReferenceDocumentsList/index.d.ts +11 -0
  56. package/components/RequestNegotiableQuoteForm/RequestNegotiableQuoteForm.d.ts +1 -0
  57. package/components/index.d.ts +3 -0
  58. package/containers/ItemsQuoted.js +1 -1
  59. package/containers/ItemsQuotedTemplate/ItemsQuotedTemplate.d.ts +6 -0
  60. package/containers/ItemsQuotedTemplate.js +1 -1
  61. package/containers/ManageNegotiableQuote/ManageNegotiableQuote.d.ts +22 -0
  62. package/containers/ManageNegotiableQuote.js +1 -1
  63. package/containers/ManageNegotiableQuote.js.map +1 -1
  64. package/containers/ManageNegotiableQuoteTemplate/ManageNegotiableQuoteTemplate.d.ts +28 -5
  65. package/containers/ManageNegotiableQuoteTemplate.js +3 -1
  66. package/containers/ManageNegotiableQuoteTemplate.js.map +1 -1
  67. package/containers/OrderSummary.js +1 -1
  68. package/containers/OrderSummary.js.map +1 -1
  69. package/containers/OrderSummaryLine.js +1 -1
  70. package/containers/QuoteSummaryList.js +1 -1
  71. package/containers/QuoteSummaryList.js.map +1 -1
  72. package/containers/QuoteTemplatesListTable.js +1 -1
  73. package/containers/QuoteTemplatesListTable.js.map +1 -1
  74. package/containers/QuotesListTable.js +1 -1
  75. package/containers/QuotesListTable.js.map +1 -1
  76. package/containers/RequestNegotiableQuoteForm/RequestNegotiableQuoteForm.d.ts +10 -0
  77. package/containers/RequestNegotiableQuoteForm.js +1 -1
  78. package/containers/RequestNegotiableQuoteForm.js.map +1 -1
  79. package/containers/ShippingAddressDisplay/ShippingAddressDisplay.d.ts +2 -2
  80. package/data/models/negotiable-quote-template-model.d.ts +2 -0
  81. package/data/transforms/__fixtures__/negotiableQuoteTemplateData.d.ts +55 -0
  82. package/hooks/useItemsQuotedTemplate.d.ts +16 -0
  83. package/hooks/useReferenceDocumentLinks.d.ts +34 -0
  84. package/hooks/useRemoveTemplateItems.d.ts +25 -0
  85. package/hooks/useRenameTemplate.d.ts +71 -0
  86. package/hooks/useUpdateTemplateQuantities.d.ts +27 -0
  87. package/i18n/en_US.json.d.ts +102 -3
  88. package/package.json +1 -1
  89. package/render.js +5 -5
  90. package/render.js.map +1 -1
  91. package/utils/fileUtils.d.ts +46 -0
  92. package/chunks/QuotePricesSummary.js +0 -4
  93. package/chunks/QuotePricesSummary.js.map +0 -1
  94. package/chunks/TabbedContent.js +0 -4
  95. package/chunks/TabbedContent.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NegotiableQuoteTemplateFragment.js","sources":["/@dropins/storefront-quote-management/src/api/graphql/NegotiableQuoteTemplateFragment.ts"],"sourcesContent":["/********************************************************************\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\nexport const NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT = /* GraphQL */ `\n fragment NegotiableQuoteTemplateFragment on NegotiableQuoteTemplate {\n # uid\n template_id\n name\n # created_at\n # updated_at\n status\n # sales_rep_name\n expiration_date\n buyer {\n firstname\n lastname\n }\n comments {\n uid\n created_at\n author {\n firstname\n lastname\n }\n text\n attachments {\n name\n url\n }\n }\n items {\n uid\n product {\n name\n sku\n uid\n stock_status\n }\n prices {\n price {\n currency\n value\n }\n original_item_price {\n currency\n value\n }\n row_total {\n currency\n value\n }\n catalog_discount {\n amount_off\n percent_off\n }\n discounts {\n label\n value\n amount {\n currency\n value\n }\n }\n }\n quantity\n note_from_buyer {\n created_at\n creator_id\n creator_type\n # negotiable_quote_template_item_uid\n note\n note_uid\n }\n note_from_seller {\n created_at\n creator_id\n creator_type\n # negotiable_quote_template_item_uid\n note\n note_uid\n }\n ... on ConfigurableCartItem {\n configurable_options {\n option_label\n value_label\n }\n }\n ... on BundleCartItem {\n bundle_options {\n label\n values {\n label\n quantity\n original_price {\n currency\n value\n }\n priceV2 {\n currency\n value\n }\n }\n }\n }\n }\n history {\n uid\n created_at\n author {\n firstname\n lastname\n }\n change_type\n changes {\n comment_added {\n comment\n }\n custom_changes {\n new_value\n old_value\n title\n }\n statuses {\n changes {\n new_status\n old_status\n }\n }\n expiration {\n new_expiration\n old_expiration\n }\n total {\n new_price {\n currency\n value\n }\n old_price {\n currency\n value\n }\n }\n }\n }\n prices {\n subtotal_excluding_tax {\n currency\n value\n }\n subtotal_including_tax {\n currency\n value\n }\n subtotal_with_discount_excluding_tax {\n currency\n value\n }\n applied_taxes {\n amount {\n currency\n value\n }\n label\n }\n grand_total {\n currency\n value\n }\n }\n shipping_addresses {\n uid\n firstname\n lastname\n company\n street\n city\n region {\n code\n label\n region_id\n }\n postcode\n country {\n code\n label\n }\n telephone\n }\n }\n`;\n"],"names":["NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT"],"mappings":"AASO,MAAMA,EAAmD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"NegotiableQuoteTemplateFragment.js","sources":["/@dropins/storefront-quote-management/src/api/graphql/NegotiableQuoteTemplateFragment.ts"],"sourcesContent":["/********************************************************************\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\nexport const NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT = /* GraphQL */ `\n fragment NegotiableQuoteTemplateFragment on NegotiableQuoteTemplate {\n # uid\n template_id\n name\n # created_at\n # updated_at\n status\n # sales_rep_name\n expiration_date\n buyer {\n firstname\n lastname\n }\n comments {\n uid\n created_at\n author {\n firstname\n lastname\n }\n text\n attachments {\n name\n url\n }\n }\n items {\n uid\n product {\n name\n sku\n uid\n stock_status\n }\n prices {\n price {\n currency\n value\n }\n original_item_price {\n currency\n value\n }\n row_total {\n currency\n value\n }\n catalog_discount {\n amount_off\n percent_off\n }\n discounts {\n label\n value\n amount {\n currency\n value\n }\n }\n }\n quantity\n note_from_buyer {\n created_at\n creator_id\n creator_type\n # negotiable_quote_template_item_uid\n note\n note_uid\n }\n note_from_seller {\n created_at\n creator_id\n creator_type\n # negotiable_quote_template_item_uid\n note\n note_uid\n }\n ... on ConfigurableCartItem {\n configurable_options {\n option_label\n value_label\n }\n }\n ... on BundleCartItem {\n bundle_options {\n label\n values {\n label\n quantity\n original_price {\n currency\n value\n }\n priceV2 {\n currency\n value\n }\n }\n }\n }\n }\n history {\n uid\n created_at\n author {\n firstname\n lastname\n }\n change_type\n changes {\n comment_added {\n comment\n }\n custom_changes {\n new_value\n old_value\n title\n }\n statuses {\n changes {\n new_status\n old_status\n }\n }\n expiration {\n new_expiration\n old_expiration\n }\n total {\n new_price {\n currency\n value\n }\n old_price {\n currency\n value\n }\n }\n }\n }\n prices {\n subtotal_excluding_tax {\n currency\n value\n }\n subtotal_including_tax {\n currency\n value\n }\n subtotal_with_discount_excluding_tax {\n currency\n value\n }\n applied_taxes {\n amount {\n currency\n value\n }\n label\n }\n grand_total {\n currency\n value\n }\n }\n shipping_addresses {\n uid\n firstname\n lastname\n company\n street\n city\n region {\n code\n label\n region_id\n }\n postcode\n country {\n code\n label\n }\n telephone\n }\n reference_document_links {\n link_id\n document_name\n document_identifier\n reference_document_url\n }\n }\n`;\n"],"names":["NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT"],"mappings":"AASO,MAAMA,EAAmD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as i,jsxs as u}from"@dropins/tools/preact-jsx-runtime.js";import{classes as p,VComponent as _}from"@dropins/tools/lib.js";/* empty css */import"@dropins/tools/components.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";/* empty css *//* empty css *//* empty css */const g=({label:o,price:e,classSuffixes:t=[],labelClassSuffix:r,testId:m,children:s,...a})=>i(y,{...a,label:o,price:e,classSuffixes:t,labelClassSuffix:r,testId:m,children:s}),y=({label:o,price:e,classSuffixes:t=[],labelClassSuffix:r,testId:m,children:s,...a})=>{const n="quote-order-summary__label",c="quote-order-summary__price";return u("div",{...a,...m?{"data-testid":m}:{},className:p(["quote-order-summary__entry",...t.map(d=>`quote-order-summary__${d}`)]),children:[i("span",{className:p([n,...r?[`${n}--${r}`]:[]]),children:o}),i(_,{node:e,className:p([c,...r?[`${c}--${r}`]:[]])}),s]})};export{g as O};
3
+ import{jsx as p,jsxs as u}from"@dropins/tools/preact-jsx-runtime.js";import{classes as n,VComponent as _}from"@dropins/tools/lib.js";/* empty css */import"@dropins/tools/components.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";/* empty css *//* empty css */const V=({label:o,price:e,classSuffixes:t=[],labelClassSuffix:r,testId:m,children:s,...a})=>p(y,{...a,label:o,price:e,classSuffixes:t,labelClassSuffix:r,testId:m,children:s}),y=({label:o,price:e,classSuffixes:t=[],labelClassSuffix:r,testId:m,children:s,...a})=>{const i="quote-order-summary__label",c="quote-order-summary__price";return u("div",{...a,...m?{"data-testid":m}:{},className:n(["quote-order-summary__entry",...t.map(d=>`quote-order-summary__${d}`)]),children:[p("span",{className:n([i,...r?[`${i}--${r}`]:[]]),children:o}),p(_,{node:e,className:n([c,...r?[`${c}--${r}`]:[]])}),s]})};export{V as O};
4
4
  //# sourceMappingURL=OrderSummaryLine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrderSummaryLine.js","sources":["/@dropins/storefront-quote-management/src/containers/OrderSummaryLine/OrderSummaryLine.tsx","/@dropins/storefront-quote-management/src/components/OrderSummaryLine/OrderSummaryLine.tsx"],"sourcesContent":["/********************************************************************\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 { HTMLAttributes } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { VNode } from 'preact';\nimport { OrderSummaryLine as OrderSummaryLineComponent } from '@/quote-management/components';\n\nexport interface OrderSummaryLineProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'label'> {\n label: VNode | string;\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n classSuffixes?: Array<string>;\n labelClassSuffix?: string;\n testId?: string;\n children?: any;\n}\n\nexport const OrderSummaryLine: Container<OrderSummaryLineProps> = ({\n label,\n price,\n classSuffixes = [],\n labelClassSuffix,\n testId,\n children,\n ...props\n}) => {\n return (\n <OrderSummaryLineComponent\n {...props}\n label={label}\n price={price}\n classSuffixes={classSuffixes}\n labelClassSuffix={labelClassSuffix}\n testId={testId}\n >\n {children}\n </OrderSummaryLineComponent>\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 '@/quote-management/components/OrderSummaryLine/OrderSummaryLine.css';\nimport { classes, VComponent } from '@adobe-commerce/elsie/lib';\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nexport interface OrderSummaryLineComponentProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'label'> {\n label: VNode | string;\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n classSuffixes?: Array<string>;\n labelClassSuffix?: string;\n testId?: string;\n children?: any;\n}\n\nexport const OrderSummaryLine: FunctionComponent<\n OrderSummaryLineComponentProps\n> = ({\n label,\n price,\n classSuffixes = [],\n labelClassSuffix,\n testId,\n children,\n ...props\n}) => {\n const labelClass = 'quote-order-summary__label';\n const priceClass = 'quote-order-summary__price';\n return (\n <div\n {...props}\n {...(testId ? { 'data-testid': testId } : {})}\n className={classes([\n 'quote-order-summary__entry',\n ...classSuffixes.map(\n (classSuffix) => `quote-order-summary__${classSuffix}`\n ),\n ])}\n >\n <span\n className={classes([\n labelClass,\n ...(labelClassSuffix ? [`${labelClass}--${labelClassSuffix}`] : []),\n ])}\n >\n {label}\n </span>\n\n <VComponent\n node={price}\n className={classes([\n priceClass,\n ...(labelClassSuffix ? [`${priceClass}--${labelClassSuffix}`] : []),\n ])}\n />\n\n {children}\n </div>\n );\n};\n"],"names":["OrderSummaryLine","label","price","classSuffixes","labelClassSuffix","testId","children","props","jsx","OrderSummaryLineComponent","labelClass","priceClass","jsxs","classes","classSuffix","VComponent"],"mappings":"+ZAwBO,MAAMA,EAAqD,CAAC,CACjE,MAAAC,EACA,MAAAC,EACA,cAAAC,EAAgB,CAAA,EAChB,iBAAAC,EACA,OAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAEIC,EAACC,EAAA,CACE,GAAGF,EACJ,MAAAN,EACA,MAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,OAAAC,EAEC,SAAAC,CAAA,CAAA,ECnBMN,EAET,CAAC,CACH,MAAAC,EACA,MAAAC,EACA,cAAAC,EAAgB,CAAA,EAChB,iBAAAC,EACA,OAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMG,EAAa,6BACbC,EAAa,6BACnB,OACEC,EAAC,MAAA,CACE,GAAGL,EACH,GAAIF,EAAS,CAAE,cAAeA,CAAA,EAAW,CAAA,EAC1C,UAAWQ,EAAQ,CACjB,6BACA,GAAGV,EAAc,IACdW,GAAgB,wBAAwBA,CAAW,EAAA,CACtD,CACD,EAED,SAAA,CAAAN,EAAC,OAAA,CACC,UAAWK,EAAQ,CACjBH,EACA,GAAIN,EAAmB,CAAC,GAAGM,CAAU,KAAKN,CAAgB,EAAE,EAAI,CAAA,CAAC,CAClE,EAEA,SAAAH,CAAA,CAAA,EAGHO,EAACO,EAAA,CACC,KAAMb,EACN,UAAWW,EAAQ,CACjBF,EACA,GAAIP,EAAmB,CAAC,GAAGO,CAAU,KAAKP,CAAgB,EAAE,EAAI,CAAA,CAAC,CAClE,CAAA,CAAA,EAGFE,CAAA,CAAA,CAAA,CAGP"}
1
+ {"version":3,"file":"OrderSummaryLine.js","sources":["/@dropins/storefront-quote-management/src/containers/OrderSummaryLine/OrderSummaryLine.tsx","/@dropins/storefront-quote-management/src/components/OrderSummaryLine/OrderSummaryLine.tsx"],"sourcesContent":["/********************************************************************\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 { HTMLAttributes } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { VNode } from 'preact';\nimport { OrderSummaryLine as OrderSummaryLineComponent } from '@/quote-management/components';\n\nexport interface OrderSummaryLineProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'label'> {\n label: VNode | string;\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n classSuffixes?: Array<string>;\n labelClassSuffix?: string;\n testId?: string;\n children?: any;\n}\n\nexport const OrderSummaryLine: Container<OrderSummaryLineProps> = ({\n label,\n price,\n classSuffixes = [],\n labelClassSuffix,\n testId,\n children,\n ...props\n}) => {\n return (\n <OrderSummaryLineComponent\n {...props}\n label={label}\n price={price}\n classSuffixes={classSuffixes}\n labelClassSuffix={labelClassSuffix}\n testId={testId}\n >\n {children}\n </OrderSummaryLineComponent>\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 '@/quote-management/components/OrderSummaryLine/OrderSummaryLine.css';\nimport { classes, VComponent } from '@adobe-commerce/elsie/lib';\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nexport interface OrderSummaryLineComponentProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'label'> {\n label: VNode | string;\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n classSuffixes?: Array<string>;\n labelClassSuffix?: string;\n testId?: string;\n children?: any;\n}\n\nexport const OrderSummaryLine: FunctionComponent<\n OrderSummaryLineComponentProps\n> = ({\n label,\n price,\n classSuffixes = [],\n labelClassSuffix,\n testId,\n children,\n ...props\n}) => {\n const labelClass = 'quote-order-summary__label';\n const priceClass = 'quote-order-summary__price';\n return (\n <div\n {...props}\n {...(testId ? { 'data-testid': testId } : {})}\n className={classes([\n 'quote-order-summary__entry',\n ...classSuffixes.map(\n (classSuffix) => `quote-order-summary__${classSuffix}`\n ),\n ])}\n >\n <span\n className={classes([\n labelClass,\n ...(labelClassSuffix ? [`${labelClass}--${labelClassSuffix}`] : []),\n ])}\n >\n {label}\n </span>\n\n <VComponent\n node={price}\n className={classes([\n priceClass,\n ...(labelClassSuffix ? [`${priceClass}--${labelClassSuffix}`] : []),\n ])}\n />\n\n {children}\n </div>\n );\n};\n"],"names":["OrderSummaryLine","label","price","classSuffixes","labelClassSuffix","testId","children","props","jsx","OrderSummaryLineComponent","labelClass","priceClass","jsxs","classes","classSuffix","VComponent"],"mappings":"4XAwBO,MAAMA,EAAqD,CAAC,CACjE,MAAAC,EACA,MAAAC,EACA,cAAAC,EAAgB,CAAA,EAChB,iBAAAC,EACA,OAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAEIC,EAACC,EAAA,CACE,GAAGF,EACJ,MAAAN,EACA,MAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,OAAAC,EAEC,SAAAC,CAAA,CAAA,ECnBMN,EAET,CAAC,CACH,MAAAC,EACA,MAAAC,EACA,cAAAC,EAAgB,CAAA,EAChB,iBAAAC,EACA,OAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMG,EAAa,6BACbC,EAAa,6BACnB,OACEC,EAAC,MAAA,CACE,GAAGL,EACH,GAAIF,EAAS,CAAE,cAAeA,CAAA,EAAW,CAAA,EAC1C,UAAWQ,EAAQ,CACjB,6BACA,GAAGV,EAAc,IACdW,GAAgB,wBAAwBA,CAAW,EAAA,CACtD,CACD,EAED,SAAA,CAAAN,EAAC,OAAA,CACC,UAAWK,EAAQ,CACjBH,EACA,GAAIN,EAAmB,CAAC,GAAGM,CAAU,KAAKN,CAAgB,EAAE,EAAI,CAAA,CAAC,CAClE,EAEA,SAAAH,CAAA,CAAA,EAGHO,EAACO,EAAA,CACC,KAAMb,EACN,UAAWW,EAAQ,CACjBF,EACA,GAAIP,EAAmB,CAAC,GAAGO,CAAU,KAAKP,CAAgB,EAAE,EAAI,CAAA,CAAC,CAClE,CAAA,CAAA,EAGFE,CAAA,CAAA,CAAA,CAGP"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as e,jsxs as u}from"@dropins/tools/preact-jsx-runtime.js";import{classes as i,VComponent as m}from"@dropins/tools/lib.js";/* empty css */import{useText as d}from"@dropins/tools/i18n.js";const g=({className:o,comments:a,...s})=>{const n=d({emptyState:"NegotiableQuote.Manage.quoteComments.emptyState",by:"NegotiableQuote.Manage.quoteComments.by"});return!a||a.length===0?e("ul",{...s,className:i(["quote-management-quote-comments-list","quote-management-quote-comments-list--empty",o]),"data-testid":"quote-comments-list",children:e("li",{className:"quote-management-quote-comments-list__empty-state","data-testid":"quote-comments-empty-state",children:n.emptyState})}):e("ul",{...s,className:i(["quote-management-quote-comments-list",o]),"data-testid":"quote-comments-list",children:a.map(t=>u("li",{className:"quote-management-quote-comments-list__item","data-testid":`quote-comment-${t.uid}`,children:[u("div",{className:"quote-management-quote-comments-list__header",children:[e(m,{className:"quote-management-quote-comments-list__date",node:t.createdAt,"data-testid":`quote-comment-date-${t.uid}`}),e("span",{className:"quote-management-quote-comments-list__by",children:n.by}),e(m,{className:"quote-management-quote-comments-list__author",node:t.author,"data-testid":`quote-comment-author-${t.uid}`})]}),e(m,{className:"quote-management-quote-comments-list__text",node:t.text,"data-testid":`quote-comment-text-${t.uid}`})]},t.uid))})};export{g as Q};
3
+ import{jsx as e,jsxs as s}from"@dropins/tools/preact-jsx-runtime.js";import{classes as d,VComponent as n}from"@dropins/tools/lib.js";/* empty css */import{useText as c}from"@dropins/tools/i18n.js";const _=({className:o,comments:a,...u})=>{const m=c({emptyState:"NegotiableQuote.Manage.quoteComments.emptyState",by:"NegotiableQuote.Manage.quoteComments.by",attachments:"NegotiableQuote.Manage.quoteComments.attachments"});return!a||a.length===0?e("ul",{...u,className:d(["quote-management-quote-comments-list","quote-management-quote-comments-list--empty",o]),"data-testid":"quote-comments-list",children:e("li",{className:"quote-management-quote-comments-list__empty-state","data-testid":"quote-comments-empty-state",children:m.emptyState})}):e("ul",{...u,className:d(["quote-management-quote-comments-list",o]),"data-testid":"quote-comments-list",children:a.map(t=>s("li",{className:"quote-management-quote-comments-list__item","data-testid":`quote-comment-${t.uid}`,children:[s("div",{className:"quote-management-quote-comments-list__header",children:[e(n,{className:"quote-management-quote-comments-list__date",node:t.createdAt,"data-testid":`quote-comment-date-${t.uid}`}),e("span",{className:"quote-management-quote-comments-list__by",children:m.by}),e(n,{className:"quote-management-quote-comments-list__author",node:t.author,"data-testid":`quote-comment-author-${t.uid}`})]}),e(n,{className:"quote-management-quote-comments-list__text",node:t.text,"data-testid":`quote-comment-text-${t.uid}`}),t.attachments&&t.attachments.length>0&&s("div",{className:"quote-management-quote-comments-list__attachments","data-testid":`quote-comment-attachments-${t.uid}`,children:[e("span",{className:"quote-management-quote-comments-list__attachments-label",children:m.attachments}),t.attachments.map((i,l)=>e("a",{href:i.url,target:"_blank",rel:"noopener noreferrer",className:"quote-management-quote-comments-list__attachment-link","data-testid":`quote-comment-attachment-${t.uid}-${l}`,children:i.name},`${t.uid}-attachment-${l}`))]})]},t.uid))})};export{_ as Q};
4
4
  //# sourceMappingURL=QuoteCommentsList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuoteCommentsList.js","sources":["/@dropins/storefront-quote-management/src/components/QuoteCommentsList/QuoteCommentsList.tsx"],"sourcesContent":["/********************************************************************\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 { useText } from '@adobe-commerce/elsie/i18n';\nimport '@/quote-management/components/QuoteCommentsList/QuoteCommentsList.css';\n\nexport interface QuoteCommentsListProps\n extends HTMLAttributes<HTMLUListElement> {\n comments: Array<{\n uid: string;\n createdAt: VNode;\n author: VNode;\n text: VNode;\n }>;\n}\n\nexport const QuoteCommentsList: FunctionComponent<QuoteCommentsListProps> = ({\n className,\n comments,\n ...props\n}) => {\n const dictionary = useText({\n emptyState: 'NegotiableQuote.Manage.quoteComments.emptyState',\n by: 'NegotiableQuote.Manage.quoteComments.by',\n });\n\n if (!comments || comments.length === 0) {\n return (\n <ul\n {...props}\n className={classes([\n 'quote-management-quote-comments-list',\n 'quote-management-quote-comments-list--empty',\n className,\n ])}\n data-testid=\"quote-comments-list\"\n >\n <li\n className=\"quote-management-quote-comments-list__empty-state\"\n data-testid=\"quote-comments-empty-state\"\n >\n {dictionary.emptyState}\n </li>\n </ul>\n );\n }\n\n return (\n <ul\n {...props}\n className={classes(['quote-management-quote-comments-list', className])}\n data-testid=\"quote-comments-list\"\n >\n {comments.map((comment) => (\n <li\n key={comment.uid}\n className=\"quote-management-quote-comments-list__item\"\n data-testid={`quote-comment-${comment.uid}`}\n >\n <div className=\"quote-management-quote-comments-list__header\">\n <VComponent\n className=\"quote-management-quote-comments-list__date\"\n node={comment.createdAt}\n data-testid={`quote-comment-date-${comment.uid}`}\n />\n <span className=\"quote-management-quote-comments-list__by\">\n {dictionary.by}\n </span>\n <VComponent\n className=\"quote-management-quote-comments-list__author\"\n node={comment.author}\n data-testid={`quote-comment-author-${comment.uid}`}\n />\n </div>\n <VComponent\n className=\"quote-management-quote-comments-list__text\"\n node={comment.text}\n data-testid={`quote-comment-text-${comment.uid}`}\n />\n </li>\n ))}\n </ul>\n );\n};\n"],"names":["QuoteCommentsList","className","comments","props","dictionary","useText","jsx","classes","comment","jsxs","VComponent"],"mappings":"sNAyBO,MAAMA,EAA+D,CAAC,CAC3E,UAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAaC,EAAQ,CACzB,WAAY,kDACZ,GAAI,yCAAA,CACL,EAED,MAAI,CAACH,GAAYA,EAAS,SAAW,EAEjCI,EAAC,KAAA,CACE,GAAGH,EACJ,UAAWI,EAAQ,CACjB,uCACA,8CACAN,CAAA,CACD,EACD,cAAY,sBAEZ,SAAAK,EAAC,KAAA,CACC,UAAU,oDACV,cAAY,6BAEX,SAAAF,EAAW,UAAA,CAAA,CACd,CAAA,EAMJE,EAAC,KAAA,CACE,GAAGH,EACJ,UAAWI,EAAQ,CAAC,uCAAwCN,CAAS,CAAC,EACtE,cAAY,sBAEX,SAAAC,EAAS,IAAKM,GACbC,EAAC,KAAA,CAEC,UAAU,6CACV,cAAa,iBAAiBD,EAAQ,GAAG,GAEzC,SAAA,CAAAC,EAAC,MAAA,CAAI,UAAU,+CACb,SAAA,CAAAH,EAACI,EAAA,CACC,UAAU,6CACV,KAAMF,EAAQ,UACd,cAAa,sBAAsBA,EAAQ,GAAG,EAAA,CAAA,EAEhDF,EAAC,OAAA,CAAK,UAAU,2CACb,WAAW,GACd,EACAA,EAACI,EAAA,CACC,UAAU,+CACV,KAAMF,EAAQ,OACd,cAAa,wBAAwBA,EAAQ,GAAG,EAAA,CAAA,CAClD,EACF,EACAF,EAACI,EAAA,CACC,UAAU,6CACV,KAAMF,EAAQ,KACd,cAAa,sBAAsBA,EAAQ,GAAG,EAAA,CAAA,CAChD,CAAA,EAvBKA,EAAQ,GAAA,CAyBhB,CAAA,CAAA,CAGP"}
1
+ {"version":3,"file":"QuoteCommentsList.js","sources":["/@dropins/storefront-quote-management/src/components/QuoteCommentsList/QuoteCommentsList.tsx"],"sourcesContent":["/********************************************************************\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 { useText } from '@adobe-commerce/elsie/i18n';\nimport '@/quote-management/components/QuoteCommentsList/QuoteCommentsList.css';\n\nexport interface QuoteCommentsListProps\n extends HTMLAttributes<HTMLUListElement> {\n comments: Array<{\n uid: string;\n createdAt: VNode;\n author: VNode;\n text: VNode;\n attachments?: Array<{\n name: string;\n url: string;\n }>;\n }>;\n}\n\nexport const QuoteCommentsList: FunctionComponent<QuoteCommentsListProps> = ({\n className,\n comments,\n ...props\n}) => {\n const dictionary = useText({\n emptyState: 'NegotiableQuote.Manage.quoteComments.emptyState',\n by: 'NegotiableQuote.Manage.quoteComments.by',\n attachments: 'NegotiableQuote.Manage.quoteComments.attachments',\n });\n\n if (!comments || comments.length === 0) {\n return (\n <ul\n {...props}\n className={classes([\n 'quote-management-quote-comments-list',\n 'quote-management-quote-comments-list--empty',\n className,\n ])}\n data-testid=\"quote-comments-list\"\n >\n <li\n className=\"quote-management-quote-comments-list__empty-state\"\n data-testid=\"quote-comments-empty-state\"\n >\n {dictionary.emptyState}\n </li>\n </ul>\n );\n }\n\n return (\n <ul\n {...props}\n className={classes(['quote-management-quote-comments-list', className])}\n data-testid=\"quote-comments-list\"\n >\n {comments.map((comment) => (\n <li\n key={comment.uid}\n className=\"quote-management-quote-comments-list__item\"\n data-testid={`quote-comment-${comment.uid}`}\n >\n <div className=\"quote-management-quote-comments-list__header\">\n <VComponent\n className=\"quote-management-quote-comments-list__date\"\n node={comment.createdAt}\n data-testid={`quote-comment-date-${comment.uid}`}\n />\n <span className=\"quote-management-quote-comments-list__by\">\n {dictionary.by}\n </span>\n <VComponent\n className=\"quote-management-quote-comments-list__author\"\n node={comment.author}\n data-testid={`quote-comment-author-${comment.uid}`}\n />\n </div>\n <VComponent\n className=\"quote-management-quote-comments-list__text\"\n node={comment.text}\n data-testid={`quote-comment-text-${comment.uid}`}\n />\n {comment.attachments && comment.attachments.length > 0 && (\n <div\n className=\"quote-management-quote-comments-list__attachments\"\n data-testid={`quote-comment-attachments-${comment.uid}`}\n >\n <span className=\"quote-management-quote-comments-list__attachments-label\">\n {dictionary.attachments}\n </span>\n {comment.attachments.map((attachment, index) => (\n <a\n key={`${comment.uid}-attachment-${index}`}\n href={attachment.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"quote-management-quote-comments-list__attachment-link\"\n data-testid={`quote-comment-attachment-${comment.uid}-${index}`}\n >\n {attachment.name}\n </a>\n ))}\n </div>\n )}\n </li>\n ))}\n </ul>\n );\n};\n"],"names":["QuoteCommentsList","className","comments","props","dictionary","useText","jsx","classes","comment","jsxs","VComponent","attachment","index"],"mappings":"sNA6BO,MAAMA,EAA+D,CAAC,CAC3E,UAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAaC,EAAQ,CACzB,WAAY,kDACZ,GAAI,0CACJ,YAAa,kDAAA,CACd,EAED,MAAI,CAACH,GAAYA,EAAS,SAAW,EAEjCI,EAAC,KAAA,CACE,GAAGH,EACJ,UAAWI,EAAQ,CACjB,uCACA,8CACAN,CAAA,CACD,EACD,cAAY,sBAEZ,SAAAK,EAAC,KAAA,CACC,UAAU,oDACV,cAAY,6BAEX,SAAAF,EAAW,UAAA,CAAA,CACd,CAAA,EAMJE,EAAC,KAAA,CACE,GAAGH,EACJ,UAAWI,EAAQ,CAAC,uCAAwCN,CAAS,CAAC,EACtE,cAAY,sBAEX,SAAAC,EAAS,IAAKM,GACbC,EAAC,KAAA,CAEC,UAAU,6CACV,cAAa,iBAAiBD,EAAQ,GAAG,GAEzC,SAAA,CAAAC,EAAC,MAAA,CAAI,UAAU,+CACb,SAAA,CAAAH,EAACI,EAAA,CACC,UAAU,6CACV,KAAMF,EAAQ,UACd,cAAa,sBAAsBA,EAAQ,GAAG,EAAA,CAAA,EAEhDF,EAAC,OAAA,CAAK,UAAU,2CACb,WAAW,GACd,EACAA,EAACI,EAAA,CACC,UAAU,+CACV,KAAMF,EAAQ,OACd,cAAa,wBAAwBA,EAAQ,GAAG,EAAA,CAAA,CAClD,EACF,EACAF,EAACI,EAAA,CACC,UAAU,6CACV,KAAMF,EAAQ,KACd,cAAa,sBAAsBA,EAAQ,GAAG,EAAA,CAAA,EAE/CA,EAAQ,aAAeA,EAAQ,YAAY,OAAS,GACnDC,EAAC,MAAA,CACC,UAAU,oDACV,cAAa,6BAA6BD,EAAQ,GAAG,GAErD,SAAA,CAAAF,EAAC,OAAA,CAAK,UAAU,0DACb,SAAAF,EAAW,YACd,EACCI,EAAQ,YAAY,IAAI,CAACG,EAAYC,IACpCN,EAAC,IAAA,CAEC,KAAMK,EAAW,IACjB,OAAO,SACP,IAAI,sBACJ,UAAU,wDACV,cAAa,4BAA4BH,EAAQ,GAAG,IAAII,CAAK,GAE5D,SAAAD,EAAW,IAAA,EAPP,GAAGH,EAAQ,GAAG,eAAeI,CAAK,EAAA,CAS1C,CAAA,CAAA,CAAA,CACH,CAAA,EA5CGJ,EAAQ,GAAA,CA+ChB,CAAA,CAAA,CAGP"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as o,jsxs as i}from"@dropins/tools/preact-jsx-runtime.js";import{useState as f,useEffect as d}from"@dropins/tools/preact-compat.js";import{Q as c}from"./QuoteCommentsList.js";import{events as p}from"@dropins/tools/event-bus.js";import{f as l}from"./dateUtils.js";const C=({quoteData:s,...a})=>{var r;const[e,n]=f(s);if(d(()=>{const t=p.on("quote-management/quote-data",u=>{n(u.quote)},{eager:!0});return()=>t==null?void 0:t.off()},[]),!e)return null;const m=(r=e==null?void 0:e.comments)==null?void 0:r.map(t=>({uid:t.uid,createdAt:o("span",{children:l(t.createdAt,"long")}),author:i("span",{children:[t.author.firstname," ",t.author.lastname]}),text:o("p",{children:t.text})}));return o(c,{"data-testid":"quote-comments-list-container",...a,comments:m||[]})};export{C as Q};
3
+ import{jsx as o,jsxs as i}from"@dropins/tools/preact-jsx-runtime.js";import{useState as f,useEffect as d}from"@dropins/tools/preact-compat.js";import{Q as c}from"./QuoteCommentsList.js";import{events as p}from"@dropins/tools/event-bus.js";import{f as h}from"./dateUtils.js";const C=({quoteData:a,...s})=>{var r;const[e,n]=f(a);if(d(()=>{const t=p.on("quote-management/quote-data",u=>{n(u.quote)},{eager:!0});return()=>t==null?void 0:t.off()},[]),!e)return null;const m=(r=e==null?void 0:e.comments)==null?void 0:r.map(t=>({uid:t.uid,createdAt:o("span",{children:h(t.createdAt,"long")}),author:i("span",{children:[t.author.firstname," ",t.author.lastname]}),text:o("p",{children:t.text}),attachments:t.attachments}));return o(c,{"data-testid":"quote-comments-list-container",...s,comments:m||[]})};export{C as Q};
4
4
  //# sourceMappingURL=QuoteCommentsList3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuoteCommentsList3.js","sources":["/@dropins/storefront-quote-management/src/containers/QuoteCommentsList/QuoteCommentsList.tsx"],"sourcesContent":["/********************************************************************\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 { HTMLAttributes, useEffect, useState } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { QuoteCommentsList as QuoteCommentsListComponent } from '@/quote-management/components/QuoteCommentsList';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { events } from '@adobe-commerce/event-bus';\nimport { formattedDate } from '@/quote-management/utils/dateUtils';\n\nexport interface QuoteCommentsListProps\n extends HTMLAttributes<HTMLUListElement> {\n quoteData?: NegotiableQuoteModel;\n}\n\nexport const QuoteCommentsList: Container<QuoteCommentsListProps> = ({\n quoteData: initialData,\n ...props\n}) => {\n const [quoteData, setQuoteData] = useState<NegotiableQuoteModel | undefined>(\n initialData\n );\n\n useEffect(() => {\n const quoteDataEvent = events.on(\n 'quote-management/quote-data',\n (data: { quote: NegotiableQuoteModel }) => {\n setQuoteData(data.quote);\n },\n {\n eager: true,\n }\n );\n return () => quoteDataEvent?.off();\n }, []);\n\n if (!quoteData) {\n return null;\n }\n\n // Format comments data\n const formattedComments = quoteData?.comments?.map((comment) => ({\n uid: comment.uid,\n createdAt: <span>{formattedDate(comment.createdAt, 'long')}</span>,\n author: (\n <span>\n {comment.author.firstname} {comment.author.lastname}\n </span>\n ),\n text: <p>{comment.text}</p>,\n }));\n\n return (\n <QuoteCommentsListComponent\n data-testid=\"quote-comments-list-container\"\n {...props}\n comments={formattedComments || []}\n />\n );\n};\n"],"names":["QuoteCommentsList","initialData","props","quoteData","setQuoteData","useState","useEffect","quoteDataEvent","events","data","formattedComments","_a","comment","jsx","QuoteCommentsListComponent"],"mappings":"kRAqBO,MAAMA,EAAuD,CAAC,CACnE,UAAWC,EACX,GAAGC,CACL,IAAM,OACJ,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAChCJ,CAAA,EAgBF,GAbAK,EAAU,IAAM,CACd,MAAMC,EAAiBC,EAAO,GAC5B,8BACCC,GAA0C,CACzCL,EAAaK,EAAK,KAAK,CACzB,EACA,CACE,MAAO,EAAA,CACT,EAEF,MAAO,IAAMF,GAAA,YAAAA,EAAgB,KAC/B,EAAG,CAAA,CAAE,EAED,CAACJ,EACH,OAAO,KAIT,MAAMO,GAAoBC,EAAAR,GAAA,YAAAA,EAAW,WAAX,YAAAQ,EAAqB,IAAKC,IAAa,CAC/D,IAAKA,EAAQ,IACb,UAAWC,EAAC,OAAA,CAAM,WAAcD,EAAQ,UAAW,MAAM,EAAE,EAC3D,SACG,OAAA,CACE,SAAA,CAAAA,EAAQ,OAAO,UAAU,IAAEA,EAAQ,OAAO,QAAA,EAC7C,EAEF,KAAMC,EAAC,IAAA,CAAG,SAAAD,EAAQ,IAAA,CAAK,CAAA,IAGzB,OACEC,EAACC,EAAA,CACC,cAAY,gCACX,GAAGZ,EACJ,SAAUQ,GAAqB,CAAA,CAAC,CAAA,CAGtC"}
1
+ {"version":3,"file":"QuoteCommentsList3.js","sources":["/@dropins/storefront-quote-management/src/containers/QuoteCommentsList/QuoteCommentsList.tsx"],"sourcesContent":["/********************************************************************\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 { HTMLAttributes, useEffect, useState } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { QuoteCommentsList as QuoteCommentsListComponent } from '@/quote-management/components/QuoteCommentsList';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { events } from '@adobe-commerce/event-bus';\nimport { formattedDate } from '@/quote-management/utils/dateUtils';\n\nexport interface QuoteCommentsListProps\n extends HTMLAttributes<HTMLUListElement> {\n quoteData?: NegotiableQuoteModel;\n}\n\nexport const QuoteCommentsList: Container<QuoteCommentsListProps> = ({\n quoteData: initialData,\n ...props\n}) => {\n const [quoteData, setQuoteData] = useState<NegotiableQuoteModel | undefined>(\n initialData\n );\n\n useEffect(() => {\n const quoteDataEvent = events.on(\n 'quote-management/quote-data',\n (data: { quote: NegotiableQuoteModel }) => {\n setQuoteData(data.quote);\n },\n {\n eager: true,\n }\n );\n return () => quoteDataEvent?.off();\n }, []);\n\n if (!quoteData) {\n return null;\n }\n\n // Format comments data\n const formattedComments = quoteData?.comments?.map((comment) => ({\n uid: comment.uid,\n createdAt: <span>{formattedDate(comment.createdAt, 'long')}</span>,\n author: (\n <span>\n {comment.author.firstname} {comment.author.lastname}\n </span>\n ),\n text: <p>{comment.text}</p>,\n attachments: comment.attachments,\n }));\n\n return (\n <QuoteCommentsListComponent\n data-testid=\"quote-comments-list-container\"\n {...props}\n comments={formattedComments || []}\n />\n );\n};\n"],"names":["QuoteCommentsList","initialData","props","quoteData","setQuoteData","useState","useEffect","quoteDataEvent","events","data","formattedComments","_a","comment","jsx","QuoteCommentsListComponent"],"mappings":"kRAqBO,MAAMA,EAAuD,CAAC,CACnE,UAAWC,EACX,GAAGC,CACL,IAAM,OACJ,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAChCJ,CAAA,EAgBF,GAbAK,EAAU,IAAM,CACd,MAAMC,EAAiBC,EAAO,GAC5B,8BACCC,GAA0C,CACzCL,EAAaK,EAAK,KAAK,CACzB,EACA,CACE,MAAO,EAAA,CACT,EAEF,MAAO,IAAMF,GAAA,YAAAA,EAAgB,KAC/B,EAAG,CAAA,CAAE,EAED,CAACJ,EACH,OAAO,KAIT,MAAMO,GAAoBC,EAAAR,GAAA,YAAAA,EAAW,WAAX,YAAAQ,EAAqB,IAAKC,IAAa,CAC/D,IAAKA,EAAQ,IACb,UAAWC,EAAC,OAAA,CAAM,WAAcD,EAAQ,UAAW,MAAM,EAAE,EAC3D,SACG,OAAA,CACE,SAAA,CAAAA,EAAQ,OAAO,UAAU,IAAEA,EAAQ,OAAO,QAAA,EAC7C,EAEF,KAAMC,EAAC,IAAA,CAAG,SAAAD,EAAQ,KAAK,EACvB,YAAaA,EAAQ,WAAA,IAGvB,OACEC,EAACC,EAAA,CACC,cAAY,gCACX,GAAGZ,EACJ,SAAUQ,GAAqB,CAAA,CAAC,CAAA,CAGtC"}
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import*as v from"@dropins/tools/preact-compat.js";import{useState as p,useMemo as f}from"@dropins/tools/preact-compat.js";import{jsx as e,jsxs as d,Fragment as k}from"@dropins/tools/preact-jsx-runtime.js";import{classes as a,VComponent as N}from"@dropins/tools/lib.js";/* empty css */import{Picker as x,Modal as L,Input as T,TextArea as M,Button as _}from"@dropins/tools/components.js";import{useText as y}from"@dropins/tools/i18n.js";const S=i=>v.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round",className:"feather feather-edit-2",...i},v.createElement("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})),j=({className:i,dropdownPlaceholder:m,dropdownOptions:n,dropdownValue:c,handleDropdownChange:s,buttons:t,...l})=>{const b=n&&n.length>0,u=t&&t.length>0,o=(n==null?void 0:n.map(r=>({text:r.label,value:r.value})))||[];return o.unshift({text:m||"",value:""}),e("div",{className:"quote-management-actions-bar__container","data-testid":"actions-bar-container",children:d("div",{className:a(["quote-management-actions-bar",i]),"data-testid":"actions-bar",...l,children:[b&&e(x,{name:"dropdown",id:"dropdown",handleSelect:s,className:"quote-management-actions-bar__dropdown","data-testid":"dropdown",options:o,value:c||""},`actions-bar-picker-${c||"empty"}`),u&&e("div",{className:"quote-management-actions-bar__buttons","data-testid":"buttons-container",children:t==null?void 0:t.map((r,q)=>e(N,{node:r,className:a(["quote-management-actions-bar__button"])},q))})]})})},D=({className:i,tabs:m,tabsContent:n,defaultActiveTab:c,...s})=>{const[t,l]=p(c||Array.from(m.keys())[0]),b=o=>{l(o)},u=f(()=>n.get(t),[t,n]);return d("div",{...s,className:a(["quote-management-tabbed-content",i]),children:[m&&e("div",{"data-testid":"tabbed-content-tabs",className:a(["quote-management-tabbed-content__tabs"]),children:Array.from(m.entries()).map(([o,r])=>e("button",{className:a(["quote-management-tabbed-content__tab",["quote-management-tabbed-content__tab--active",o===t]]),onClick:()=>b(o),children:r},o))}),u&&e("div",{className:a(["quote-management-tabbed-content__active-tab-content"]),children:e(N,{node:u})})]})},I=({className:i,open:m,quoteName:n,renameReason:c,quoteNameError:s,errorBanner:t,successBanner:l,showCloseButton:b=!0,onQuoteNameChange:u,onRenameReasonChange:o,onSave:r,onClose:q})=>{const g=y({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 m?d(L,{open:m,size:"medium",title:e(k,{children:g.title}),onClose:q,clickToDismiss:!0,escapeToDismiss:!0,showCloseButton:b,className:a(["quote-management-rename-quote-modal",i]),"data-testid":"rename-quote-modal",children:[t&&e("div",{className:a(["quote-management-rename-quote-modal__error-banner"]),"data-testid":"rename-quote-modal-error-banner",children:t}),l&&e("div",{className:a(["quote-management-rename-quote-modal__success-banner"]),"data-testid":"rename-quote-modal-success-banner",children:l}),d("div",{className:a(["quote-management-rename-quote-modal__content"]),children:[d("div",{children:[e(T,{name:"quoteName",type:"text",value:n,onInput:h=>u(h.target.value),floatingLabel:g.quoteNameLabel,required:!0,error:!!s}),s&&e("span",{className:a(["quote-management-rename-quote-modal__error-text"]),children:s})]}),e(M,{name:"quoteComment",value:c,onInput:h=>o(h.target.value),label:g.reasonLabel,rows:3})]}),d("div",{className:a(["quote-management-rename-quote-modal__actions"]),children:[e(_,{variant:"secondary",size:"medium",onClick:q,className:a(["quote-management-rename-quote-modal__cancel-button"]),children:g.cancelButton}),e(_,{variant:"primary",size:"medium",onClick:r,className:a(["quote-management-rename-quote-modal__save-button"]),children:g.renameButton})]})]}):null};export{j as A,I as R,S,D as T};
4
+ //# sourceMappingURL=RenameQuoteModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenameQuoteModal.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/TabbedContent/TabbedContent.tsx","/@dropins/storefront-quote-management/src/components/RenameQuoteModal/RenameQuoteModal.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: 1, 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 dropdownValue?: string;\n handleDropdownChange?: (event: Event) => void;\n buttons?: VNode[];\n}\n\nexport const ActionsBar: FunctionComponent<ActionsBarProps> = ({\n className,\n dropdownPlaceholder,\n dropdownOptions,\n dropdownValue,\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 =\n 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\n className=\"quote-management-actions-bar__container\"\n data-testid=\"actions-bar-container\"\n >\n <div\n className={classes(['quote-management-actions-bar', className])}\n data-testid=\"actions-bar\"\n {...props}\n >\n {hasDropdown && (\n <Picker\n key={`actions-bar-picker-${dropdownValue || 'empty'}`}\n name=\"dropdown\"\n id=\"dropdown\"\n handleSelect={handleDropdownChange}\n className=\"quote-management-actions-bar__dropdown\"\n data-testid=\"dropdown\"\n options={pickerOptions}\n value={dropdownValue || ''}\n />\n )}\n {hasButtons && (\n <div\n className=\"quote-management-actions-bar__buttons\"\n data-testid=\"buttons-container\"\n >\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, 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"],"names":["SvgEdit","props","React","ActionsBar","className","dropdownPlaceholder","dropdownOptions","dropdownValue","handleDropdownChange","buttons","hasDropdown","hasButtons","pickerOptions","option","jsx","jsxs","classes","Picker","button","index","VComponent","TabbedContent","tabs","tabsContent","defaultActiveTab","activeTabId","setActiveTabId","useState","handleTabClick","tabId","activeTabContent","useMemo","tabLabel","RenameQuoteModal","open","quoteName","renameReason","quoteNameError","errorBanner","successBanner","showCloseButton","onQuoteNameChange","onRenameReasonChange","onSave","onClose","dictionary","useText","Modal","Fragment","Input","e","TextArea","Button"],"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{jsx as s,jsxs as p}from"@dropins/tools/preact-jsx-runtime.js";import{useState as y,useEffect as c}from"@dropins/tools/preact-compat.js";import{classes as u}from"@dropins/tools/lib.js";import{Skeleton as h,SkeletonRow as f}from"@dropins/tools/components.js";import{useText as _}from"@dropins/tools/i18n.js";import{events as g}from"@dropins/tools/event-bus.js";const q=({className:t,shippingAddress:e,loading:r,noAddressMessage:n,...d})=>{const o=_({noAddress:"NegotiableQuote.Manage.shippingAddress.noAddress"});return r?s(N,{}):e?p("div",{className:u(["quote-management-shipping-address-display",t]),"data-testid":"shipping-address-display",...d,children:[s("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-name",children:p("span",{className:"quote-management-shipping-address-display__name",children:[e.firstname," ",e.lastname]})}),e.company&&s("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-company",children:e.company}),e.street.map((i,a)=>s("div",{className:"quote-management-shipping-address-display__field","data-testid":`address-street-${a}`,children:i},a)),p("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-city-region",children:[e.city,e.region&&`, ${e.region.label}`," ",e.postcode]}),s("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-country",children:e.country.label}),s("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-telephone",children:e.telephone})]}):s("div",{className:u(["quote-management-shipping-address-display","quote-management-shipping-address-display--empty",t]),"data-testid":"shipping-address-display-empty",...d,children:s("p",{className:"quote-management-shipping-address-display__no-address",children:n||o.noAddress})})},N=()=>s(h,{"data-testid":"shipping-address-display-skeleton",children:s(f,{variant:"row",fullWidth:!0,size:"small",lines:5,multilineGap:"xsmall"})}),j=({quoteData:t,loading:e,...r})=>{var i;const[n,d]=y(t);c(()=>{t!==void 0&&d(t)},[t]),c(()=>{const a=g.on("quote-management/quote-data",l=>{const{quote:m}=l;d(m)},{eager:!0});return()=>a==null?void 0:a.off()},[]),c(()=>{const a=g.on("quote-management/shipping-address-set",l=>{const{quote:m}=l;d(m)},{eager:!0});return()=>a==null?void 0:a.off()},[]);const o=(i=n==null?void 0:n.shippingAddresses)==null?void 0:i[0];return s(q,{shippingAddress:o,loading:e,...r})};export{j as S};
3
+ import{jsx as a,jsxs as c}from"@dropins/tools/preact-jsx-runtime.js";import{useState as y,useEffect as l}from"@dropins/tools/preact-compat.js";import{classes as g}from"@dropins/tools/lib.js";import{Skeleton as f,SkeletonRow as h}from"@dropins/tools/components.js";import{useText as q}from"@dropins/tools/i18n.js";import{events as u}from"@dropins/tools/event-bus.js";const _=({className:i,shippingAddress:e,loading:m,noAddressMessage:p,...r})=>{const s=q({noAddress:"NegotiableQuote.Manage.shippingAddress.noAddress"});return m?a(N,{}):e?c("div",{className:g(["quote-management-shipping-address-display",i]),"data-testid":"shipping-address-display",...r,children:[a("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-name",children:c("span",{className:"quote-management-shipping-address-display__name",children:[e.firstname," ",e.lastname]})}),e.company&&a("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-company",children:e.company}),e.street.map((o,t)=>a("div",{className:"quote-management-shipping-address-display__field","data-testid":`address-street-${t}`,children:o},t)),c("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-city-region",children:[e.city,e.region&&`, ${e.region.label}`," ",e.postcode]}),a("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-country",children:e.country.label}),a("div",{className:"quote-management-shipping-address-display__field","data-testid":"address-telephone",children:e.telephone})]}):a("div",{className:g(["quote-management-shipping-address-display","quote-management-shipping-address-display--empty",i]),"data-testid":"shipping-address-display-empty",...r,children:a("p",{className:"quote-management-shipping-address-display__no-address",children:p||s.noAddress})})},N=()=>a(f,{"data-testid":"shipping-address-display-skeleton",children:a(h,{variant:"row",fullWidth:!0,size:"small",lines:5,multilineGap:"xsmall"})}),j=({shippingAddress:i,loading:e,...m})=>{const[p,r]=y(i);return l(()=>{i!==void 0&&r(i)},[i]),l(()=>{const s=u.on("quote-management/quote-data",o=>{var d,n;const t=(n=(d=o.quote)==null?void 0:d.shippingAddresses)==null?void 0:n[0];r(t)},{eager:!0});return()=>s==null?void 0:s.off()},[]),l(()=>{const s=u.on("quote-management/shipping-address-set",o=>{var d,n;const t=(n=(d=o.quote)==null?void 0:d.shippingAddresses)==null?void 0:n[0];r(t)},{eager:!0});return()=>s==null?void 0:s.off()},[]),l(()=>{const s=u.on("quote-management/quote-template-data",o=>{var d,n;const t=(n=(d=o.quoteTemplate)==null?void 0:d.shippingAddresses)==null?void 0:n[0];r(t)},{eager:!0});return()=>s==null?void 0:s.off()},[]),a(_,{shippingAddress:p,loading:e,...m})};export{j as S};
4
4
  //# sourceMappingURL=ShippingAddressDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShippingAddressDisplay.js","sources":["/@dropins/storefront-quote-management/src/components/ShippingAddressDisplay/ShippingAddressDisplay.tsx","/@dropins/storefront-quote-management/src/containers/ShippingAddressDisplay/ShippingAddressDisplay.tsx"],"sourcesContent":["/********************************************************************\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 } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport { ShippingAddress } from '@/quote-management/data/models/negotiable-quote-model';\nimport '@/quote-management/components/ShippingAddressDisplay/ShippingAddressDisplay.css';\n\nexport interface ShippingAddressDisplayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n shippingAddress?: ShippingAddress;\n loading?: boolean;\n noAddressMessage?: string;\n}\n\nexport const ShippingAddressDisplay: FunctionComponent<ShippingAddressDisplayProps> = ({\n className,\n shippingAddress,\n loading,\n noAddressMessage,\n ...props\n}) => {\n const dictionary = useText({\n noAddress: 'NegotiableQuote.Manage.shippingAddress.noAddress',\n });\n\n if (loading) {\n return <ShippingAddressDisplaySkeleton />;\n }\n\n if (!shippingAddress) {\n return (\n <div \n className={classes(['quote-management-shipping-address-display', 'quote-management-shipping-address-display--empty', className])}\n data-testid=\"shipping-address-display-empty\"\n {...props}\n >\n <p className=\"quote-management-shipping-address-display__no-address\">\n {noAddressMessage || dictionary.noAddress}\n </p>\n </div>\n );\n }\n\n return (\n <div \n className={classes(['quote-management-shipping-address-display', className])}\n data-testid=\"shipping-address-display\"\n {...props}\n >\n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-name\">\n <span className=\"quote-management-shipping-address-display__name\">\n {shippingAddress.firstname} {shippingAddress.lastname}\n </span>\n </div>\n \n {shippingAddress.company && (\n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-company\">\n {shippingAddress.company}\n </div>\n )}\n \n {shippingAddress.street.map((line, index) => (\n <div \n key={index} \n className=\"quote-management-shipping-address-display__field\" \n data-testid={`address-street-${index}`}\n >\n {line}\n </div>\n ))}\n \n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-city-region\">\n {shippingAddress.city}\n {shippingAddress.region && `, ${shippingAddress.region.label}`}\n {' '}\n {shippingAddress.postcode}\n </div>\n \n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-country\">\n {shippingAddress.country.label}\n </div>\n \n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-telephone\">\n {shippingAddress.telephone}\n </div>\n </div>\n );\n};\n\nexport const ShippingAddressDisplaySkeleton: FunctionComponent = () => {\n return (\n <Skeleton data-testid=\"shipping-address-display-skeleton\">\n <SkeletonRow variant=\"row\" fullWidth={true} size=\"small\" lines={5} multilineGap='xsmall' />\n </Skeleton>\n );\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 { HTMLAttributes, useEffect, useState } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { ShippingAddressDisplay as ShippingAddressDisplayComponent } from '@/quote-management/components/ShippingAddressDisplay';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport interface ShippingAddressDisplayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n quoteData?: NegotiableQuoteModel;\n loading?: boolean;\n}\n\nexport const ShippingAddressDisplay: Container<ShippingAddressDisplayProps> = ({\n quoteData: initialQuoteData,\n loading,\n ...props\n}) => {\n const [quoteData, setQuoteData] = useState<NegotiableQuoteModel | undefined>(initialQuoteData);\n\n // Sync prop changes to internal state\n useEffect(() => {\n if (initialQuoteData !== undefined) {\n setQuoteData(initialQuoteData);\n }\n }, [initialQuoteData]);\n\n // Listen for quote-data events\n useEffect(() => {\n const quoteDataEvent = events.on('quote-management/quote-data', (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n setQuoteData(quote);\n }, {\n eager: true,\n });\n return () => quoteDataEvent?.off();\n }, []);\n\n // Listen for shipping-address-set events\n useEffect(() => {\n const shippingAddressSetEvent = events.on('quote-management/shipping-address-set', (data: { quote: NegotiableQuoteModel }) => {\n const { quote } = data;\n setQuoteData(quote);\n }, {\n eager: true,\n });\n return () => shippingAddressSetEvent?.off();\n }, []);\n\n const primaryShippingAddress = quoteData?.shippingAddresses?.[0];\n\n return (\n <ShippingAddressDisplayComponent\n shippingAddress={primaryShippingAddress}\n loading={loading}\n {...props}\n />\n );\n};\n\n"],"names":["ShippingAddressDisplay","className","shippingAddress","loading","noAddressMessage","props","dictionary","useText","ShippingAddressDisplaySkeleton","jsxs","classes","jsx","line","index","Skeleton","SkeletonRow","initialQuoteData","quoteData","setQuoteData","useState","useEffect","quoteDataEvent","events","data","quote","shippingAddressSetEvent","primaryShippingAddress","_a","ShippingAddressDisplayComponent"],"mappings":"8WAuBO,MAAMA,EAAyE,CAAC,CACrF,UAAAC,EACA,gBAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAaC,EAAQ,CACzB,UAAW,kDAAA,CACZ,EAED,OAAIJ,IACMK,EAAA,EAA+B,EAGpCN,EAeHO,EAAC,MAAA,CACC,UAAWC,EAAQ,CAAC,4CAA6CT,CAAS,CAAC,EAC3E,cAAY,2BACX,GAAGI,EAEJ,SAAA,CAAAM,EAAC,MAAA,CAAI,UAAU,mDAAmD,cAAY,eAC5E,SAAAF,EAAC,OAAA,CAAK,UAAU,kDACb,SAAA,CAAAP,EAAgB,UAAU,IAAEA,EAAgB,QAAA,CAAA,CAC/C,CAAA,CACF,EAECA,EAAgB,SACfS,EAAC,MAAA,CAAI,UAAU,mDAAmD,cAAY,kBAC3E,SAAAT,EAAgB,OAAA,CACnB,EAGDA,EAAgB,OAAO,IAAI,CAACU,EAAMC,IACjCF,EAAC,MAAA,CAEC,UAAU,mDACV,cAAa,kBAAkBE,CAAK,GAEnC,SAAAD,CAAA,EAJIC,CAAA,CAMR,EAEDJ,EAAC,MAAA,CAAI,UAAU,mDAAmD,cAAY,sBAC3E,SAAA,CAAAP,EAAgB,KAChBA,EAAgB,QAAU,KAAKA,EAAgB,OAAO,KAAK,GAC3D,IACAA,EAAgB,QAAA,EACnB,EAEAS,EAAC,OAAI,UAAU,mDAAmD,cAAY,kBAC3E,SAAAT,EAAgB,QAAQ,KAAA,CAC3B,IAEC,MAAA,CAAI,UAAU,mDAAmD,cAAY,oBAC3E,WAAgB,SAAA,CACnB,CAAA,CAAA,CAAA,EArDAS,EAAC,MAAA,CACC,UAAWD,EAAQ,CAAC,4CAA6C,mDAAoDT,CAAS,CAAC,EAC/H,cAAY,iCACX,GAAGI,EAEJ,WAAC,IAAA,CAAE,UAAU,wDACV,SAAAD,GAAoBE,EAAW,SAAA,CAClC,CAAA,CAAA,CAiDR,EAEaE,EAAoD,MAE5DM,EAAA,CAAS,cAAY,oCACpB,SAAAH,EAACI,GAAY,QAAQ,MAAM,UAAW,GAAM,KAAK,QAAQ,MAAO,EAAG,aAAa,SAAS,EAC3F,EClFSf,EAAiE,CAAC,CAC7E,UAAWgB,EACX,QAAAb,EACA,GAAGE,CACL,IAAM,OACJ,KAAM,CAACY,EAAWC,CAAY,EAAIC,EAA2CH,CAAgB,EAG7FI,EAAU,IAAM,CACVJ,IAAqB,QACvBE,EAAaF,CAAgB,CAEjC,EAAG,CAACA,CAAgB,CAAC,EAGrBI,EAAU,IAAM,CACd,MAAMC,EAAiBC,EAAO,GAAG,8BAAgCC,GAA0C,CACzG,KAAM,CAAE,MAAAC,GAAUD,EAClBL,EAAaM,CAAK,CACpB,EAAG,CACD,MAAO,EAAA,CACR,EACD,MAAO,IAAMH,GAAA,YAAAA,EAAgB,KAC/B,EAAG,CAAA,CAAE,EAGLD,EAAU,IAAM,CACd,MAAMK,EAA0BH,EAAO,GAAG,wCAA0CC,GAA0C,CAC5H,KAAM,CAAE,MAAAC,GAAUD,EAClBL,EAAaM,CAAK,CACpB,EAAG,CACD,MAAO,EAAA,CACR,EACD,MAAO,IAAMC,GAAA,YAAAA,EAAyB,KACxC,EAAG,CAAA,CAAE,EAEL,MAAMC,GAAyBC,EAAAV,GAAA,YAAAA,EAAW,oBAAX,YAAAU,EAA+B,GAE9D,OACEhB,EAACiB,EAAA,CACC,gBAAiBF,EACjB,QAAAvB,EACC,GAAGE,CAAA,CAAA,CAGV"}
1
+ {"version":3,"file":"ShippingAddressDisplay.js","sources":["/@dropins/storefront-quote-management/src/components/ShippingAddressDisplay/ShippingAddressDisplay.tsx","/@dropins/storefront-quote-management/src/containers/ShippingAddressDisplay/ShippingAddressDisplay.tsx"],"sourcesContent":["/********************************************************************\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 } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport { ShippingAddress } from '@/quote-management/data/models/negotiable-quote-model';\nimport '@/quote-management/components/ShippingAddressDisplay/ShippingAddressDisplay.css';\n\nexport interface ShippingAddressDisplayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n shippingAddress?: ShippingAddress;\n loading?: boolean;\n noAddressMessage?: string;\n}\n\nexport const ShippingAddressDisplay: FunctionComponent<ShippingAddressDisplayProps> = ({\n className,\n shippingAddress,\n loading,\n noAddressMessage,\n ...props\n}) => {\n const dictionary = useText({\n noAddress: 'NegotiableQuote.Manage.shippingAddress.noAddress',\n });\n\n if (loading) {\n return <ShippingAddressDisplaySkeleton />;\n }\n\n if (!shippingAddress) {\n return (\n <div \n className={classes(['quote-management-shipping-address-display', 'quote-management-shipping-address-display--empty', className])}\n data-testid=\"shipping-address-display-empty\"\n {...props}\n >\n <p className=\"quote-management-shipping-address-display__no-address\">\n {noAddressMessage || dictionary.noAddress}\n </p>\n </div>\n );\n }\n\n return (\n <div \n className={classes(['quote-management-shipping-address-display', className])}\n data-testid=\"shipping-address-display\"\n {...props}\n >\n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-name\">\n <span className=\"quote-management-shipping-address-display__name\">\n {shippingAddress.firstname} {shippingAddress.lastname}\n </span>\n </div>\n \n {shippingAddress.company && (\n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-company\">\n {shippingAddress.company}\n </div>\n )}\n \n {shippingAddress.street.map((line, index) => (\n <div \n key={index} \n className=\"quote-management-shipping-address-display__field\" \n data-testid={`address-street-${index}`}\n >\n {line}\n </div>\n ))}\n \n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-city-region\">\n {shippingAddress.city}\n {shippingAddress.region && `, ${shippingAddress.region.label}`}\n {' '}\n {shippingAddress.postcode}\n </div>\n \n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-country\">\n {shippingAddress.country.label}\n </div>\n \n <div className=\"quote-management-shipping-address-display__field\" data-testid=\"address-telephone\">\n {shippingAddress.telephone}\n </div>\n </div>\n );\n};\n\nexport const ShippingAddressDisplaySkeleton: FunctionComponent = () => {\n return (\n <Skeleton data-testid=\"shipping-address-display-skeleton\">\n <SkeletonRow variant=\"row\" fullWidth={true} size=\"small\" lines={5} multilineGap='xsmall' />\n </Skeleton>\n );\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 { HTMLAttributes, useEffect, useState } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { ShippingAddress } from '@/quote-management/data/models/negotiable-quote-model';\nimport { NegotiableQuoteTemplateModel } from '@/quote-management/data/models/negotiable-quote-template-model';\nimport { ShippingAddressDisplay as ShippingAddressDisplayComponent } from '@/quote-management/components/ShippingAddressDisplay';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport interface ShippingAddressDisplayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n shippingAddress?: ShippingAddress;\n loading?: boolean;\n}\n\nexport const ShippingAddressDisplay: Container<ShippingAddressDisplayProps> = ({\n shippingAddress: initialShippingAddress,\n loading,\n ...props\n}) => {\n const [shippingAddress, setShippingAddress] = useState<ShippingAddress | undefined>(initialShippingAddress);\n\n // Sync prop changes to internal state\n useEffect(() => {\n if (initialShippingAddress !== undefined) {\n setShippingAddress(initialShippingAddress);\n }\n }, [initialShippingAddress]);\n\n // Listen for quote-data events\n useEffect(() => {\n const quoteDataEvent = events.on('quote-management/quote-data', (data: { quote?: { shippingAddresses?: ShippingAddress[] } | null }) => {\n const address = data.quote?.shippingAddresses?.[0];\n setShippingAddress(address);\n }, {\n eager: true,\n });\n return () => quoteDataEvent?.off();\n }, []);\n\n // Listen for shipping-address-set events\n useEffect(() => {\n const shippingAddressSetEvent = events.on('quote-management/shipping-address-set', (data: { quote?: { shippingAddresses?: ShippingAddress[] } | null }) => {\n const address = data.quote?.shippingAddresses?.[0];\n setShippingAddress(address);\n }, {\n eager: true,\n });\n return () => shippingAddressSetEvent?.off();\n }, []);\n\n // Listen for quote-template-data events\n useEffect(() => {\n const quoteTemplateDataEvent = events.on('quote-management/quote-template-data', (data: { quoteTemplate?: NegotiableQuoteTemplateModel | null }) => {\n const address = data.quoteTemplate?.shippingAddresses?.[0];\n setShippingAddress(address);\n }, {\n eager: true,\n });\n return () => quoteTemplateDataEvent?.off();\n }, []);\n\n return (\n <ShippingAddressDisplayComponent\n shippingAddress={shippingAddress}\n loading={loading}\n {...props}\n />\n );\n};\n\n"],"names":["ShippingAddressDisplay","className","shippingAddress","loading","noAddressMessage","props","dictionary","useText","ShippingAddressDisplaySkeleton","jsxs","classes","jsx","line","index","Skeleton","SkeletonRow","initialShippingAddress","setShippingAddress","useState","useEffect","quoteDataEvent","events","data","address","_b","_a","shippingAddressSetEvent","quoteTemplateDataEvent","ShippingAddressDisplayComponent"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{events as n}from"@dropins/tools/event-bus.js";import{a as u}from"./transform-quote-template.js";import{s as r}from"./state.js";import{N as T}from"./NegotiableQuoteTemplateFragment.js";import{f as p}from"./transform-quote.js";const s=`
4
+ mutation UPDATE_NEGOTIABLE_QUOTE_TEMPLATE_QUANTITIES_MUTATION(
5
+ $input: UpdateNegotiableQuoteTemplateQuantitiesInput!
6
+ ) {
7
+ updateNegotiableQuoteTemplateQuantities(input: $input) {
8
+ quote_template {
9
+ ...NegotiableQuoteTemplateFragment
10
+ }
11
+ }
12
+ }
13
+ ${T}
14
+ `,w=async e=>{var o,t;if(!e.templateId)throw new Error("Template ID is required");if(!e.items||e.items.length===0)throw new Error("Items array is required and must not be empty");if(!r.authenticated)throw new Error("Unauthorized");try{const a=await p(s,{variables:{input:{template_id:e.templateId,items:e.items.map(i=>({item_id:i.itemId,quantity:i.quantity,min_qty:i.minQty,max_qty:i.maxQty}))}}});if(!((t=(o=a==null?void 0:a.data)==null?void 0:o.updateNegotiableQuoteTemplateQuantities)!=null&&t.quote_template))throw new Error("No quote template data received");const m=u(a.data.updateNegotiableQuoteTemplateQuantities.quote_template);if(!m)throw new Error("Failed to transform quote template data");return n.emit("quote-management/quote-template-data",{quoteTemplate:m,permissions:r.permissions}),m}catch(a){return Promise.reject(a)}},E=`
15
+ mutation REMOVE_NEGOTIABLE_QUOTE_TEMPLATE_ITEMS_MUTATION(
16
+ $input: RemoveNegotiableQuoteTemplateItemsInput!
17
+ ) {
18
+ removeNegotiableQuoteTemplateItems(input: $input) {
19
+ ...NegotiableQuoteTemplateFragment
20
+ }
21
+ }
22
+ ${T}
23
+ `,c=async e=>{var o;if(!e.templateId)throw new Error("Template ID is required");if(!e.itemUids||e.itemUids.length===0)throw new Error("Item UIDs array is required and must not be empty");if(!r.authenticated)throw new Error("Unauthorized");try{const t=await p(E,{variables:{input:{template_id:e.templateId,item_uids:e.itemUids}}});if(!((o=t==null?void 0:t.data)!=null&&o.removeNegotiableQuoteTemplateItems))throw new Error("No quote template data received");const a=u(t.data.removeNegotiableQuoteTemplateItems);if(!a)throw new Error("Failed to transform quote template data");return n.emit("quote-management/quote-template-data",{quoteTemplate:a,permissions:r.permissions}),a}catch(t){return Promise.reject(t)}},d=`
24
+ mutation SET_QUOTE_TEMPLATE_LINE_ITEM_NOTE_MUTATION(
25
+ $input: QuoteTemplateLineItemNoteInput!
26
+ ) {
27
+ setQuoteTemplateLineItemNote(input: $input) {
28
+ ...NegotiableQuoteTemplateFragment
29
+ }
30
+ }
31
+ ${T}
32
+ `,f=async e=>{var o;if(!e.templateId)throw new Error("Template ID is required");if(!e.itemId)throw new Error("Item ID is required");if(!r.authenticated)throw new Error("Unauthorized");try{const t=await p(d,{variables:{input:{templateId:e.templateId,item_id:e.itemId,note:e.note}}});if(!((o=t==null?void 0:t.data)!=null&&o.setQuoteTemplateLineItemNote))throw new Error("No quote template data received");const a=u(t.data.setQuoteTemplateLineItemNote);if(!a)throw new Error("Failed to transform quote template data");return n.emit("quote-management/quote-template-data",{quoteTemplate:a,permissions:r.permissions}),a}catch(t){return Promise.reject(t)}};export{f as a,c as r,w as u};
33
+ //# sourceMappingURL=addQuoteTemplateLineItemNote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addQuoteTemplateLineItemNote.js","sources":["/@dropins/storefront-quote-management/src/api/updateQuoteTemplateItemQuantities/graphql/updateNegotiableQuoteTemplateQuantities.ts","/@dropins/storefront-quote-management/src/api/updateQuoteTemplateItemQuantities/updateQuoteTemplateItemQuantities.ts","/@dropins/storefront-quote-management/src/api/removeQuoteTemplateItems/graphql/removeNegotiableQuoteTemplateItems.ts","/@dropins/storefront-quote-management/src/api/removeQuoteTemplateItems/removeQuoteTemplateItems.ts","/@dropins/storefront-quote-management/src/api/addQuoteTemplateLineItemNote/graphql/setQuoteTemplateLineItemNote.ts","/@dropins/storefront-quote-management/src/api/addQuoteTemplateLineItemNote/addQuoteTemplateLineItemNote.ts"],"sourcesContent":["/********************************************************************\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 { NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteTemplateFragment';\n\nexport const UPDATE_NEGOTIABLE_QUOTE_TEMPLATE_QUANTITIES_MUTATION = /* GraphQL */ `\n mutation UPDATE_NEGOTIABLE_QUOTE_TEMPLATE_QUANTITIES_MUTATION(\n $input: UpdateNegotiableQuoteTemplateQuantitiesInput!\n ) {\n updateNegotiableQuoteTemplateQuantities(input: $input) {\n quote_template {\n ...NegotiableQuoteTemplateFragment\n }\n }\n }\n ${NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT}\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 { fetchGraphQl } from '@/quote-management/api';\nimport { UPDATE_NEGOTIABLE_QUOTE_TEMPLATE_QUANTITIES_MUTATION } from './graphql/updateNegotiableQuoteTemplateQuantities';\nimport { transformQuoteTemplate } from '@/quote-management/data/transforms';\nimport { state } from '@/quote-management/lib/state';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport interface NegotiableQuoteTemplateItemQuantityInput {\n itemId: string;\n quantity: number;\n minQty?: number;\n maxQty?: number;\n}\n\nexport interface UpdateQuoteTemplateItemQuantitiesParams {\n templateId: string;\n items: NegotiableQuoteTemplateItemQuantityInput[];\n}\n\nexport const updateQuoteTemplateItemQuantities = async (\n params: UpdateQuoteTemplateItemQuantitiesParams\n) => {\n if (!params.templateId) {\n throw new Error('Template ID is required');\n }\n\n if (!params.items || params.items.length === 0) {\n throw new Error('Items array is required and must not be empty');\n }\n\n if (!state.authenticated) {\n throw new Error('Unauthorized');\n }\n\n try {\n const results: any = await fetchGraphQl(\n UPDATE_NEGOTIABLE_QUOTE_TEMPLATE_QUANTITIES_MUTATION,\n {\n variables: {\n input: {\n template_id: params.templateId,\n items: params.items.map((item) => ({\n item_id: item.itemId,\n quantity: item.quantity,\n min_qty: item.minQty,\n max_qty: item.maxQty,\n })),\n },\n },\n }\n );\n\n if (\n !results?.data?.updateNegotiableQuoteTemplateQuantities?.quote_template\n ) {\n throw new Error('No quote template data received');\n }\n\n const transformedData = transformQuoteTemplate(\n results.data.updateNegotiableQuoteTemplateQuantities.quote_template\n );\n\n if (!transformedData) {\n throw new Error('Failed to transform quote template data');\n }\n\n events.emit('quote-management/quote-template-data', {\n quoteTemplate: transformedData,\n permissions: state.permissions,\n });\n\n return transformedData;\n } catch (error) {\n return Promise.reject(error);\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 { NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteTemplateFragment';\n\nexport const REMOVE_NEGOTIABLE_QUOTE_TEMPLATE_ITEMS_MUTATION = /* GraphQL */ `\n mutation REMOVE_NEGOTIABLE_QUOTE_TEMPLATE_ITEMS_MUTATION(\n $input: RemoveNegotiableQuoteTemplateItemsInput!\n ) {\n removeNegotiableQuoteTemplateItems(input: $input) {\n ...NegotiableQuoteTemplateFragment\n }\n }\n ${NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT}\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 { fetchGraphQl } from '@/quote-management/api';\nimport { REMOVE_NEGOTIABLE_QUOTE_TEMPLATE_ITEMS_MUTATION } from './graphql/removeNegotiableQuoteTemplateItems';\nimport { transformQuoteTemplate } from '@/quote-management/data/transforms';\nimport { state } from '@/quote-management/lib/state';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport interface RemoveQuoteTemplateItemsParams {\n templateId: string;\n itemUids: string[];\n}\n\nexport const removeQuoteTemplateItems = async (\n params: RemoveQuoteTemplateItemsParams\n) => {\n if (!params.templateId) {\n throw new Error('Template ID is required');\n }\n\n if (!params.itemUids || params.itemUids.length === 0) {\n throw new Error('Item UIDs array is required and must not be empty');\n }\n\n if (!state.authenticated) {\n throw new Error('Unauthorized');\n }\n\n try {\n const results: any = await fetchGraphQl(\n REMOVE_NEGOTIABLE_QUOTE_TEMPLATE_ITEMS_MUTATION,\n {\n variables: {\n input: {\n template_id: params.templateId,\n item_uids: params.itemUids,\n },\n },\n }\n );\n\n if (!results?.data?.removeNegotiableQuoteTemplateItems) {\n throw new Error('No quote template data received');\n }\n\n const transformedData = transformQuoteTemplate(\n results.data.removeNegotiableQuoteTemplateItems\n );\n\n if (!transformedData) {\n throw new Error('Failed to transform quote template data');\n }\n\n events.emit('quote-management/quote-template-data', {\n quoteTemplate: transformedData,\n permissions: state.permissions,\n });\n\n return transformedData;\n } catch (error) {\n return Promise.reject(error);\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 { NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteTemplateFragment';\n\nexport const SET_QUOTE_TEMPLATE_LINE_ITEM_NOTE_MUTATION = /* GraphQL */ `\n mutation SET_QUOTE_TEMPLATE_LINE_ITEM_NOTE_MUTATION(\n $input: QuoteTemplateLineItemNoteInput!\n ) {\n setQuoteTemplateLineItemNote(input: $input) {\n ...NegotiableQuoteTemplateFragment\n }\n }\n ${NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT}\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 { fetchGraphQl } from '@/quote-management/api';\nimport { SET_QUOTE_TEMPLATE_LINE_ITEM_NOTE_MUTATION } from './graphql/setQuoteTemplateLineItemNote';\nimport { transformQuoteTemplate } from '@/quote-management/data/transforms';\nimport { state } from '@/quote-management/lib/state';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport interface AddQuoteTemplateLineItemNoteParams {\n templateId: string;\n itemId: string;\n note?: string;\n}\n\nexport const addQuoteTemplateLineItemNote = async (\n params: AddQuoteTemplateLineItemNoteParams\n) => {\n if (!params.templateId) {\n throw new Error('Template ID is required');\n }\n\n if (!params.itemId) {\n throw new Error('Item ID is required');\n }\n\n if (!state.authenticated) {\n throw new Error('Unauthorized');\n }\n\n try {\n const results: any = await fetchGraphQl(\n SET_QUOTE_TEMPLATE_LINE_ITEM_NOTE_MUTATION,\n {\n variables: {\n input: {\n templateId: params.templateId,\n item_id: params.itemId,\n note: params.note,\n },\n },\n }\n );\n\n if (!results?.data?.setQuoteTemplateLineItemNote) {\n throw new Error('No quote template data received');\n }\n\n const transformedData = transformQuoteTemplate(\n results.data.setQuoteTemplateLineItemNote\n );\n\n if (!transformedData) {\n throw new Error('Failed to transform quote template data');\n }\n\n events.emit('quote-management/quote-template-data', {\n quoteTemplate: transformedData,\n permissions: state.permissions,\n });\n\n return transformedData;\n } catch (error) {\n return Promise.reject(error);\n }\n};\n"],"names":["UPDATE_NEGOTIABLE_QUOTE_TEMPLATE_QUANTITIES_MUTATION","NEGOTIABLE_QUOTE_TEMPLATE_FRAGMENT","updateQuoteTemplateItemQuantities","params","state","results","fetchGraphQl","item","_b","_a","transformedData","transformQuoteTemplate","events","error","REMOVE_NEGOTIABLE_QUOTE_TEMPLATE_ITEMS_MUTATION","removeQuoteTemplateItems","SET_QUOTE_TEMPLATE_LINE_ITEM_NOTE_MUTATION","addQuoteTemplateLineItemNote"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{events as p}from"@dropins/tools/event-bus.js";import{f as E,a as q}from"./transform-quote.js";import{N as g}from"./NegotiableQuoteFragment.js";import{s as _}from"./state.js";import{a as Q}from"./transform-quote-template.js";import{N as U}from"./NegotiableQuoteTemplateFragment.js";const N=`
3
+ import{events as p}from"@dropins/tools/event-bus.js";import{f as E,t as q}from"./transform-quote.js";import{N as g}from"./NegotiableQuoteFragment.js";import{s as _}from"./state.js";import{a as Q}from"./transform-quote-template.js";import{N as U}from"./NegotiableQuoteTemplateFragment.js";const T=`
4
4
  query QUOTE_DATA_QUERY(
5
5
  $quoteId: ID!
6
6
  ) {
@@ -12,7 +12,7 @@ import{events as p}from"@dropins/tools/event-bus.js";import{f as E,a as q}from".
12
12
  }
13
13
 
14
14
  ${g}
15
- `,S=async u=>{var r;if(!_.authenticated)return Promise.reject(new Error("Unauthorized"));if(!_.permissions.editQuote)return Promise.reject(new Error("Unauthorized"));try{const o=await E(N,{variables:{quoteId:u}}),t=q((r=o==null?void 0:o.data)==null?void 0:r.negotiableQuote);if(!t)throw new Error("Failed to transform quote data");return p.emit("quote-management/quote-data",{quote:t,permissions:_.permissions}),t}catch(o){return Promise.reject(o)}},T=`
15
+ `,S=async i=>{var r;if(!_.authenticated)return Promise.reject(new Error("Unauthorized"));if(!_.permissions.editQuote)return Promise.reject(new Error("Unauthorized"));try{const o=await E(T,{variables:{quoteId:i}}),e=q((r=o==null?void 0:o.data)==null?void 0:r.negotiableQuote);if(!e)throw new Error("Failed to transform quote data");return p.emit("quote-management/quote-data",{quote:e,permissions:_.permissions}),e}catch(o){return Promise.reject(o)}},N=`
16
16
  mutation DELETE_QUOTE_MUTATION($quoteUids: [ID!]!) {
17
17
  deleteNegotiableQuotes(
18
18
  input: {
@@ -44,7 +44,7 @@ import{events as p}from"@dropins/tools/event-bus.js";import{f as E,a as q}from".
44
44
  }
45
45
  }
46
46
  }
47
- `,M=async u=>{var o;if(!_.authenticated)return Promise.reject(new Error("Unauthorized"));const r=Array.isArray(u)?u:[u];try{const t=await E(T,{variables:{quoteUids:r}}),{errors:c}=t||{};if(c&&c.length){const a=c.map(e=>e==null?void 0:e.message).filter(Boolean).join("; ");throw new Error(a||"Failed to delete negotiable quotes")}const i=(o=t==null?void 0:t.data)==null?void 0:o.deleteNegotiableQuotes;if(!i)throw new Error("No delete result returned");const n={resultStatus:i.result_status,operationResults:(i.operation_results||[]).map(a=>(a==null?void 0:a.__typename)==="NegotiableQuoteUidOperationSuccess"?{__typename:"NegotiableQuoteUidOperationSuccess",quoteUid:a==null?void 0:a.quote_uid}:{__typename:"DeleteNegotiableQuoteOperationFailure",quoteUid:a==null?void 0:a.quote_uid,errors:((a==null?void 0:a.errors)||[]).map(d=>({__typename:d==null?void 0:d.__typename,message:d==null?void 0:d.message,uid:d==null?void 0:d.uid}))})},s=n.operationResults.filter(a=>a.__typename==="NegotiableQuoteUidOperationSuccess").map(a=>a.quoteUid);return s.length>0&&p.emit("quote-management/negotiable-quote-deleted",{deletedQuoteUids:s,resultStatus:n.resultStatus}),n}catch(t){return p.emit("quote-management/negotiable-quote-delete-error",{error:t instanceof Error?t:new Error(String(t)),attemptedQuoteUids:r}),Promise.reject(t)}},f=`
47
+ `,M=async i=>{var o;if(!_.authenticated)return Promise.reject(new Error("Unauthorized"));const r=Array.isArray(i)?i:[i];try{const e=await E(N,{variables:{quoteUids:r}}),{errors:c}=e||{};if(c&&c.length){const a=c.map(t=>t==null?void 0:t.message).filter(Boolean).join("; ");throw new Error(a||"Failed to delete negotiable quotes")}const n=(o=e==null?void 0:e.data)==null?void 0:o.deleteNegotiableQuotes;if(!n)throw new Error("No delete result returned");const u={resultStatus:n.result_status,operationResults:(n.operation_results||[]).map(a=>(a==null?void 0:a.__typename)==="NegotiableQuoteUidOperationSuccess"?{__typename:"NegotiableQuoteUidOperationSuccess",quoteUid:a==null?void 0:a.quote_uid}:{__typename:"DeleteNegotiableQuoteOperationFailure",quoteUid:a==null?void 0:a.quote_uid,errors:((a==null?void 0:a.errors)||[]).map(s=>({__typename:s==null?void 0:s.__typename,message:s==null?void 0:s.message,uid:s==null?void 0:s.uid}))})},m=u.operationResults.filter(a=>a.__typename==="NegotiableQuoteUidOperationSuccess").map(a=>a.quoteUid);return m.length>0&&p.emit("quote-management/negotiable-quote-deleted",{deletedQuoteUids:m,resultStatus:u.resultStatus}),u}catch(e){return p.emit("quote-management/negotiable-quote-delete-error",{error:e instanceof Error?e:new Error(String(e)),attemptedQuoteUids:r}),Promise.reject(e)}},f=`
48
48
  mutation SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION(
49
49
  $quoteUid: ID!
50
50
  $comment: NegotiableQuoteCommentInput
@@ -61,7 +61,7 @@ import{events as p}from"@dropins/tools/event-bus.js";import{f as E,a as q}from".
61
61
  }
62
62
  }
63
63
  ${g}
64
- `,R=async u=>{const{quoteUid:r,comment:o}=u;if(!r)throw new Error("Quote UID is required");return E(f,{variables:{quoteUid:r,comment:o?{comment:o}:null}}).then(c=>{var s,a;const{errors:i}=c;if(i){const e=i.map(m=>m.message).join("; ");throw new Error(`Failed to send quote for review: ${e}`)}const n=q((a=(s=c.data)==null?void 0:s.sendNegotiableQuoteForReview)==null?void 0:a.quote);if(!n)throw new Error("Failed to transform quote data: Invalid response structure");return p.emit("quote-management/quote-sent-for-review",{quote:n,input:{quoteUid:r,comment:o}}),n})},w=`
64
+ `,R=async i=>{const{quoteUid:r,comment:o,attachments:e}=i;if(!r)throw new Error("Quote UID is required");const c=e!=null&&e.length?{comment:o||"",attachments:e}:o?{comment:o}:null;return E(f,{variables:{quoteUid:r,comment:c}}).then(n=>{var a,t;const{errors:u}=n;if(u){const d=u.map(s=>s.message).join("; ");throw new Error(`Failed to send quote for review: ${d}`)}const m=q((t=(a=n.data)==null?void 0:a.sendNegotiableQuoteForReview)==null?void 0:t.quote);if(!m)throw new Error("Failed to transform quote data: Invalid response structure");return p.emit("quote-management/quote-sent-for-review",{quote:m,input:{quoteUid:r,comment:o,attachments:e}}),m})},w=`
65
65
  mutation CLOSE_NEGOTIABLE_QUOTE_MUTATION(
66
66
  $quoteUids: [ID!]!
67
67
  ) {
@@ -91,7 +91,7 @@ import{events as p}from"@dropins/tools/event-bus.js";import{f as E,a as q}from".
91
91
  }
92
92
  }
93
93
  }
94
- `,v=async u=>{var o;if(!_.authenticated)return Promise.reject(new Error("Unauthorized"));const{quoteUids:r}=u;if(!r||r.length===0)throw new Error("Quote UIDs are required");try{const t=await E(w,{variables:{quoteUids:r}}),{errors:c}=t||{};if(c&&c.length){const e=c.map(m=>m==null?void 0:m.message).filter(Boolean).join("; ");throw new Error(e||"Failed to close negotiable quotes")}const i=(o=t==null?void 0:t.data)==null?void 0:o.closeNegotiableQuotes;if(!i)throw new Error("No close result returned");const n={resultStatus:i.result_status,operationResults:(i.operation_results||[]).map(e=>(e==null?void 0:e.__typename)==="NegotiableQuoteUidOperationSuccess"?{__typename:"NegotiableQuoteUidOperationSuccess",quoteUid:e==null?void 0:e.quote_uid}:{__typename:"CloseNegotiableQuoteOperationFailure",quoteUid:e==null?void 0:e.quote_uid,errors:((e==null?void 0:e.errors)||[]).map(l=>({__typename:l==null?void 0:l.__typename,message:l==null?void 0:l.message,uid:l==null?void 0:l.uid}))})},s=n.operationResults.filter(e=>e.__typename==="CloseNegotiableQuoteOperationFailure").map(e=>e);if(s.length>0){const e=s.map(m=>m.errors&&m.errors.length>0?m.errors.map(d=>d.message||`Failed to close quote ${m.quoteUid}`).join(", "):`Failed to close quote ${m.quoteUid}`).join("; ");throw new Error(e)}const a=n.operationResults.filter(e=>e.__typename==="NegotiableQuoteUidOperationSuccess").map(e=>e.quoteUid);return a.length>0&&p.emit("quote-management/negotiable-quote-closed",{closedQuoteUids:a,resultStatus:n.resultStatus}),n}catch(t){return p.emit("quote-management/negotiable-quote-close-error",{error:t instanceof Error?t:new Error(String(t)),attemptedQuoteUids:r}),Promise.reject(t)}},b=`
94
+ `,v=async i=>{var o;if(!_.authenticated)return Promise.reject(new Error("Unauthorized"));const{quoteUids:r}=i;if(!r||r.length===0)throw new Error("Quote UIDs are required");try{const e=await E(w,{variables:{quoteUids:r}}),{errors:c}=e||{};if(c&&c.length){const t=c.map(d=>d==null?void 0:d.message).filter(Boolean).join("; ");throw new Error(t||"Failed to close negotiable quotes")}const n=(o=e==null?void 0:e.data)==null?void 0:o.closeNegotiableQuotes;if(!n)throw new Error("No close result returned");const u={resultStatus:n.result_status,operationResults:(n.operation_results||[]).map(t=>(t==null?void 0:t.__typename)==="NegotiableQuoteUidOperationSuccess"?{__typename:"NegotiableQuoteUidOperationSuccess",quoteUid:t==null?void 0:t.quote_uid}:{__typename:"CloseNegotiableQuoteOperationFailure",quoteUid:t==null?void 0:t.quote_uid,errors:((t==null?void 0:t.errors)||[]).map(l=>({__typename:l==null?void 0:l.__typename,message:l==null?void 0:l.message,uid:l==null?void 0:l.uid}))})},m=u.operationResults.filter(t=>t.__typename==="CloseNegotiableQuoteOperationFailure").map(t=>t);if(m.length>0){const t=m.map(d=>d.errors&&d.errors.length>0?d.errors.map(s=>s.message||`Failed to close quote ${d.quoteUid}`).join(", "):`Failed to close quote ${d.quoteUid}`).join("; ");throw new Error(t)}const a=u.operationResults.filter(t=>t.__typename==="NegotiableQuoteUidOperationSuccess").map(t=>t.quoteUid);return a.length>0&&p.emit("quote-management/negotiable-quote-closed",{closedQuoteUids:a,resultStatus:u.resultStatus}),u}catch(e){return p.emit("quote-management/negotiable-quote-close-error",{error:e instanceof Error?e:new Error(String(e)),attemptedQuoteUids:r}),Promise.reject(e)}},b=`
95
95
  mutation CREATE_QUOTE_TEMPLATE_MUTATION($cartId: ID!) {
96
96
  requestNegotiableQuoteTemplateFromQuote(input: { cart_id: $cartId }) {
97
97
  ...NegotiableQuoteTemplateFragment
@@ -99,7 +99,7 @@ import{events as p}from"@dropins/tools/event-bus.js";import{f as E,a as q}from".
99
99
  }
100
100
 
101
101
  ${U}
102
- `,L=async u=>{var r;if(!_.authenticated)throw new Error("Unauthorized");if(!u)throw new Error("Cart ID is required");try{const o=await E(b,{variables:{cartId:u}});if(!((r=o==null?void 0:o.data)!=null&&r.requestNegotiableQuoteTemplateFromQuote))throw new Error("Failed to create quote template");const t=Q(o.data.requestNegotiableQuoteTemplateFromQuote);if(!t)throw new Error("Failed to transform quote template data");return p.emit("quote-management/quote-template-data",{quoteTemplate:t,permissions:_.permissions}),t}catch(o){return Promise.reject(o)}},I=`
102
+ `,L=async i=>{var r;if(!_.authenticated)throw new Error("Unauthorized");if(!i)throw new Error("Cart ID is required");try{const o=await E(b,{variables:{cartId:i}});if(!((r=o==null?void 0:o.data)!=null&&r.requestNegotiableQuoteTemplateFromQuote))throw new Error("Failed to create quote template");const e=Q(o.data.requestNegotiableQuoteTemplateFromQuote);if(!e)throw new Error("Failed to transform quote template data");return p.emit("quote-management/quote-template-data",{quoteTemplate:e,permissions:_.permissions}),p.emit("quote-management/quote-template-created",{quoteTemplate:e,input:{quoteUid:i}}),e}catch(o){return Promise.reject(o)}},h=`
103
103
  mutation renameNegotiableQuote($input: RenameNegotiableQuoteInput!) {
104
104
  renameNegotiableQuote(input: $input) {
105
105
  quote {
@@ -108,7 +108,7 @@ import{events as p}from"@dropins/tools/event-bus.js";import{f as E,a as q}from".
108
108
  }
109
109
  }
110
110
  ${g}
111
- `,j=async u=>{const{quoteUid:r,quoteName:o,quoteComment:t}=u;if(!r)throw new Error("Quote UID is required");if(!o)throw new Error("Quote name is required");return E(I,{variables:{input:{quote_uid:r,quote_name:o,quote_comment:t||""}}}).then(i=>{var a,e;const{errors:n}=i;if(n){const m=n.map(d=>d.message).join("; ");throw new Error(`Failed to rename quote: ${m}`)}const s=q((e=(a=i.data)==null?void 0:a.renameNegotiableQuote)==null?void 0:e.quote);if(!s)throw new Error("Failed to transform quote data: Invalid response structure");return p.emit("quote-management/quote-renamed",{quote:s,input:{quoteUid:r,quoteName:o,quoteComment:t}}),s})},h=`
111
+ `,j=async i=>{const{quoteUid:r,quoteName:o,quoteComment:e}=i;if(!r)throw new Error("Quote UID is required");if(!o)throw new Error("Quote name is required");return E(h,{variables:{input:{quote_uid:r,quote_name:o,quote_comment:e||""}}}).then(n=>{var a,t;const{errors:u}=n;if(u){const d=u.map(s=>s.message).join("; ");throw new Error(`Failed to rename quote: ${d}`)}const m=q((t=(a=n.data)==null?void 0:a.renameNegotiableQuote)==null?void 0:t.quote);if(!m)throw new Error("Failed to transform quote data: Invalid response structure");return p.emit("quote-management/quote-renamed",{quote:m,input:{quoteUid:r,quoteName:o,quoteComment:e}}),m})},I=`
112
112
  mutation DUPLICATE_NEGOTIABLE_QUOTE_MUTATION($quoteUid: ID!, $duplicatedQuoteUid: ID!) {
113
113
  duplicateNegotiableQuote(input: { quote_uid: $quoteUid, duplicated_quote_uid: $duplicatedQuoteUid }) {
114
114
  quote {
@@ -117,5 +117,5 @@ import{events as p}from"@dropins/tools/event-bus.js";import{f as E,a as q}from".
117
117
  }
118
118
  }
119
119
  ${g}
120
- `,P=async u=>{if(!_.authenticated)throw new Error("Unauthorized");const{quoteUid:r,duplicatedQuoteUid:o}=u;if(!r||!r.trim())throw new Error("Quote UID is required");if(!o||!o.trim())throw new Error("Duplicated Quote UID is required");return E(h,{variables:{quoteUid:r,duplicatedQuoteUid:o}}).then(t=>{var n,s;const{errors:c}=t;if(c){const a=c.map(e=>e.message).join("; ");throw new Error(`Failed to duplicate quote: ${a}`)}const i=q((s=(n=t.data)==null?void 0:n.duplicateNegotiableQuote)==null?void 0:s.quote);if(!i)throw new Error("Failed to transform quote data: Invalid response structure");return p.emit("quote-management/quote-duplicated",{quote:i,input:{quoteUid:r,duplicatedQuoteUid:o}}),i})};export{L as a,P as b,v as c,M as d,S as g,j as r,R as s};
120
+ `,P=async i=>{if(!_.authenticated)throw new Error("Unauthorized");const{quoteUid:r,duplicatedQuoteUid:o}=i;if(!r||!r.trim())throw new Error("Quote UID is required");if(!o||!o.trim())throw new Error("Duplicated Quote UID is required");return E(I,{variables:{quoteUid:r,duplicatedQuoteUid:o}}).then(e=>{var u,m;const{errors:c}=e;if(c){const a=c.map(t=>t.message).join("; ");throw new Error(`Failed to duplicate quote: ${a}`)}const n=q((m=(u=e.data)==null?void 0:u.duplicateNegotiableQuote)==null?void 0:m.quote);if(!n)throw new Error("Failed to transform quote data: Invalid response structure");return p.emit("quote-management/quote-duplicated",{quote:n,input:{quoteUid:r,duplicatedQuoteUid:o}}),n})};export{L as a,P as b,v as c,M as d,S as g,j as r,R as s};
121
121
  //# sourceMappingURL=duplicateNegotiableQuote.js.map