@dropins/storefront-quote-management 0.0.1-alpha24 → 0.0.1-alpha26

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 (91) hide show
  1. package/api/initialize/initialize.d.ts +0 -1
  2. package/api.js +15 -15
  3. package/api.js.map +1 -1
  4. package/chunks/ItemsQuoted.js +1 -1
  5. package/chunks/ItemsQuoted.js.map +1 -1
  6. package/chunks/OrderSummaryLine.js +1 -1
  7. package/chunks/OrderSummaryLine.js.map +1 -1
  8. package/chunks/QuoteCommentsList.js +1 -1
  9. package/chunks/QuoteCommentsList.js.map +1 -1
  10. package/chunks/QuoteHistoryLog.js +1 -1
  11. package/chunks/QuoteHistoryLog.js.map +1 -1
  12. package/chunks/dateUtils.js +1 -1
  13. package/chunks/fetch-graphql.js +4 -0
  14. package/chunks/fetch-graphql.js.map +1 -0
  15. package/chunks/getQuoteTemplates.js +2 -2
  16. package/chunks/getQuoteTemplates.js.map +1 -1
  17. package/chunks/negotiableQuotes.js +1 -1
  18. package/chunks/negotiableQuotes.js.map +1 -1
  19. package/chunks/removeNegotiableQuoteItems.js +3 -3
  20. package/chunks/removeNegotiableQuoteItems.js.map +1 -1
  21. package/chunks/renameNegotiableQuote.js +1 -1
  22. package/chunks/renameNegotiableQuote.js.map +1 -1
  23. package/chunks/state.js +1 -1
  24. package/chunks/uploadFile.js +1 -1
  25. package/chunks/uploadFile.js.map +1 -1
  26. package/components/ProductListTable/ProductListTable.d.ts +5 -41
  27. package/components/QuoteHistoryLog/QuoteHistoryLog.d.ts +2 -70
  28. package/components/index.d.ts +0 -1
  29. package/containers/ItemsQuoted.js +1 -1
  30. package/containers/ManageNegotiableQuote.js +1 -1
  31. package/containers/ManageNegotiableQuote.js.map +1 -1
  32. package/containers/OrderSummary.js +1 -1
  33. package/containers/OrderSummary.js.map +1 -1
  34. package/containers/OrderSummaryLine.js +1 -1
  35. package/containers/QuoteCommentsList.js +1 -1
  36. package/containers/QuoteHistoryLog.js +1 -1
  37. package/containers/QuoteSummaryList.js +1 -1
  38. package/containers/QuoteSummaryList.js.map +1 -1
  39. package/containers/QuoteTemplatesListTable/QuoteTemplatesListTable.d.ts +0 -2
  40. package/containers/QuoteTemplatesListTable.js +1 -1
  41. package/containers/QuoteTemplatesListTable.js.map +1 -1
  42. package/containers/QuotesListTable.js +1 -1
  43. package/containers/QuotesListTable.js.map +1 -1
  44. package/containers/RequestNegotiableQuoteForm.js +1 -1
  45. package/containers/RequestNegotiableQuoteForm.js.map +1 -1
  46. package/containers/index.d.ts +0 -4
  47. package/data/models/negotiable-quote-template-model.d.ts +1 -1
  48. package/i18n/en_US.json.d.ts +1 -32
  49. package/package.json +1 -1
  50. package/render.js +3 -2
  51. package/render.js.map +1 -1
  52. package/chunks/ItemsQuotedTemplate.js +0 -4
  53. package/chunks/ItemsQuotedTemplate.js.map +0 -1
  54. package/chunks/QuoteCommentsList3.js +0 -4
  55. package/chunks/QuoteCommentsList3.js.map +0 -1
  56. package/chunks/QuoteHistoryLog3.js +0 -4
  57. package/chunks/QuoteHistoryLog3.js.map +0 -1
  58. package/chunks/QuotePricesSummary.js +0 -4
  59. package/chunks/QuotePricesSummary.js.map +0 -1
  60. package/chunks/QuoteTemplateCommentsList.js +0 -4
  61. package/chunks/QuoteTemplateCommentsList.js.map +0 -1
  62. package/chunks/QuoteTemplateHistoryLog.js +0 -4
  63. package/chunks/QuoteTemplateHistoryLog.js.map +0 -1
  64. package/chunks/TabbedContent.js +0 -4
  65. package/chunks/TabbedContent.js.map +0 -1
  66. package/chunks/transform-quote.js +0 -4
  67. package/chunks/transform-quote.js.map +0 -1
  68. package/components/ManageNegotiableQuoteTemplate/ManageNegotiableQuoteTemplate.d.ts +0 -22
  69. package/components/ManageNegotiableQuoteTemplate/__fixtures__/ManageNegotiableQuoteTemplateProps.d.ts +0 -4
  70. package/components/ManageNegotiableQuoteTemplate/index.d.ts +0 -11
  71. package/containers/ItemsQuotedTemplate/ItemsQuotedTemplate.d.ts +0 -19
  72. package/containers/ItemsQuotedTemplate/index.d.ts +0 -11
  73. package/containers/ItemsQuotedTemplate.d.ts +0 -3
  74. package/containers/ItemsQuotedTemplate.js +0 -4
  75. package/containers/ItemsQuotedTemplate.js.map +0 -1
  76. package/containers/ManageNegotiableQuoteTemplate/ManageNegotiableQuoteTemplate.d.ts +0 -54
  77. package/containers/ManageNegotiableQuoteTemplate/index.d.ts +0 -11
  78. package/containers/ManageNegotiableQuoteTemplate.d.ts +0 -3
  79. package/containers/ManageNegotiableQuoteTemplate.js +0 -4
  80. package/containers/ManageNegotiableQuoteTemplate.js.map +0 -1
  81. package/containers/QuoteTemplateCommentsList/QuoteTemplateCommentsList.d.ts +0 -9
  82. package/containers/QuoteTemplateCommentsList/index.d.ts +0 -11
  83. package/containers/QuoteTemplateCommentsList.d.ts +0 -3
  84. package/containers/QuoteTemplateCommentsList.js +0 -4
  85. package/containers/QuoteTemplateCommentsList.js.map +0 -1
  86. package/containers/QuoteTemplateHistoryLog/QuoteTemplateHistoryLog.d.ts +0 -9
  87. package/containers/QuoteTemplateHistoryLog/index.d.ts +0 -11
  88. package/containers/QuoteTemplateHistoryLog.d.ts +0 -3
  89. package/containers/QuoteTemplateHistoryLog.js +0 -4
  90. package/containers/QuoteTemplateHistoryLog.js.map +0 -1
  91. package/data/models/__fixtures__/negotiableQuoteTemplateModel.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"uploadFile.js","sources":["/@dropins/storefront-quote-management/src/api/requestNegotiableQuote/graphql/RequestNegotiableQuoteMutation.ts","/@dropins/storefront-quote-management/src/api/requestNegotiableQuote/requestNegotiableQuote.ts","/@dropins/storefront-quote-management/src/api/uploadFile/graphql/InitiateUploadMutation.ts","/@dropins/storefront-quote-management/src/api/uploadFile/graphql/FinishUploadMutation.ts","/@dropins/storefront-quote-management/src/api/uploadFile/uploadFile.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_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteFragment';\n\nexport const REQUEST_NEGOTIABLE_QUOTE_MUTATION = `\n mutation REQUEST_NEGOTIABLE_QUOTE_MUTATION(\n $cartId: ID!\n $quoteName: String!\n $comment: NegotiableQuoteCommentInput!\n $isDraft: Boolean\n ) {\n requestNegotiableQuote(\n input: {\n cart_id: $cartId\n quote_name: $quoteName\n comment: $comment\n is_draft: $isDraft\n }\n ) {\n quote {\n ...NegotiableQuoteFragment\n }\n }\n }\n ${NEGOTIABLE_QUOTE_FRAGMENT}\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 { events } from '@adobe-commerce/event-bus';\nimport { REQUEST_NEGOTIABLE_QUOTE_MUTATION } from './graphql/RequestNegotiableQuoteMutation';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { transformQuote } from '@/quote-management/data/transforms';\n\nexport interface RequestNegotiableQuoteInput {\n cartId: string;\n quoteName: string;\n comment: string;\n isDraft?: boolean;\n attachments?: { key: string }[];\n}\n\nexport const requestNegotiableQuote = async (\n input: RequestNegotiableQuoteInput\n): Promise<NegotiableQuoteModel | null> => {\n const { cartId, quoteName, comment, attachments, isDraft } = input;\n\n if (!cartId) {\n throw new Error('Cart ID is required');\n }\n\n if (!quoteName) {\n throw new Error('Quote name is required');\n }\n\n if (!comment) {\n throw new Error('Comment is required');\n }\n\n return fetchGraphQl(REQUEST_NEGOTIABLE_QUOTE_MUTATION, {\n variables: {\n cartId,\n quoteName,\n comment: attachments?.length ? { comment, attachments } : { comment },\n isDraft,\n },\n }).then((response) => {\n const { errors } = response;\n\n if (errors) {\n // Provide more detailed error information\n const errorMessages = errors.map((error) => error.message).join('; ');\n throw new Error(`Failed to request negotiable quote: ${errorMessages}`);\n }\n\n // Transform the quote data\n const quoteData = transformQuote(response.data?.requestNegotiableQuote?.quote);\n\n if (!quoteData) {\n throw new Error(\n 'Failed to transform quote data: Invalid response structure'\n );\n }\n\n // Emit event with transformed quote data on success\n events.emit('quote-management/negotiable-quote-requested', {\n quote: quoteData,\n input: { cartId, quoteName, comment, attachments, isDraft },\n });\n\n return quoteData;\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\nexport const INITIATE_UPLOAD_MUTATION = `\n mutation INITIATE_UPLOAD_MUTATION($input: initiateUploadInput!) {\n initiateUpload(input: $input) {\n upload_url\n key\n expires_at\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\nexport const FINISH_UPLOAD_MUTATION = `\n mutation FINISH_UPLOAD_MUTATION($input: finishUploadInput!) {\n finishUpload(input: $input) {\n success\n key\n message\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 { events } from '@adobe-commerce/event-bus';\nimport { INITIATE_UPLOAD_MUTATION } from '@/quote-management/api/uploadFile/graphql/InitiateUploadMutation';\nimport { FINISH_UPLOAD_MUTATION } from '@/quote-management/api/uploadFile/graphql/FinishUploadMutation';\n\ntype GraphQLError = { message: string };\ntype InitiateUploadData = {\n initiateUpload?: {\n upload_url: string;\n key: string;\n expires_at: string;\n };\n};\ntype FinishUploadData = {\n finishUpload?: {\n success: boolean;\n key: string;\n message?: string;\n };\n};\ntype GraphQLResponse<T> = {\n data?: T;\n errors?: GraphQLError[];\n};\n\nexport const uploadFile = async (file: File): Promise<{ key: string }> => {\n const mediaResourceType = 'NEGOTIABLE_QUOTE_ATTACHMENT';\n\n try {\n const filename = file?.name;\n if (!file || !filename) throw new Error('Invalid file');\n\n const formatGraphQLErrors = (errors: GraphQLError[]): string =>\n errors.map((e) => e.message).join('; ');\n\n const { data: initialData, errors: initialErrors } = (await fetchGraphQl(\n INITIATE_UPLOAD_MUTATION,\n { \n variables: { input: { key: filename, media_resource_type: mediaResourceType } } \n }\n )) as GraphQLResponse<InitiateUploadData>;\n if (initialErrors && initialErrors.length) throw new Error(formatGraphQLErrors(initialErrors));\n\n const { upload_url, key } = initialData?.initiateUpload || {};\n if (!upload_url || !key) throw new Error('Failed to initiate upload');\n\n const put = await fetch(upload_url, { method: 'PUT', body: file });\n if (!put.ok) throw new Error(`Upload failed: ${put.status} ${put.statusText}`);\n\n const { data: finishData, errors: finishErrors } = (await fetchGraphQl(\n FINISH_UPLOAD_MUTATION,\n { \n variables: { input: { key, media_resource_type: mediaResourceType } } \n }\n )) as GraphQLResponse<FinishUploadData>;\n if (finishErrors && finishErrors.length) throw new Error(formatGraphQLErrors(finishErrors));\n\n const { success, key: finalizedKey, message } = finishData?.finishUpload || {};\n if (!success || !finalizedKey) throw new Error(message || 'Failed to finish upload');\n\n return { key: finalizedKey };\n \n } catch (err: any) {\n events.emit('quote-management/file-upload-error', {\n error: err?.message || 'File upload failed',\n fileName: file?.name,\n });\n throw err instanceof Error ? err : new Error('File upload failed');\n }\n};\n"],"names":["REQUEST_NEGOTIABLE_QUOTE_MUTATION","NEGOTIABLE_QUOTE_FRAGMENT","requestNegotiableQuote","input","cartId","quoteName","comment","attachments","isDraft","fetchGraphQl","response","errors","errorMessages","error","quoteData","transformQuote","_b","_a","events","INITIATE_UPLOAD_MUTATION","FINISH_UPLOAD_MUTATION","uploadFile","file","mediaResourceType","filename","formatGraphQLErrors","e","initialData","initialErrors","upload_url","key","put","finishData","finishErrors","success","finalizedKey","message","err"],"mappings":"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"}
1
+ {"version":3,"file":"uploadFile.js","sources":["/@dropins/storefront-quote-management/src/api/requestNegotiableQuote/graphql/RequestNegotiableQuoteMutation.ts","/@dropins/storefront-quote-management/src/api/requestNegotiableQuote/requestNegotiableQuote.ts","/@dropins/storefront-quote-management/src/api/uploadFile/graphql/InitiateUploadMutation.ts","/@dropins/storefront-quote-management/src/api/uploadFile/graphql/FinishUploadMutation.ts","/@dropins/storefront-quote-management/src/api/uploadFile/uploadFile.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_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteFragment';\n\nexport const REQUEST_NEGOTIABLE_QUOTE_MUTATION = `\n mutation REQUEST_NEGOTIABLE_QUOTE_MUTATION(\n $cartId: ID!\n $quoteName: String!\n $comment: NegotiableQuoteCommentInput!\n $isDraft: Boolean\n ) {\n requestNegotiableQuote(\n input: {\n cart_id: $cartId\n quote_name: $quoteName\n comment: $comment\n is_draft: $isDraft\n }\n ) {\n quote {\n ...NegotiableQuoteFragment\n }\n }\n }\n ${NEGOTIABLE_QUOTE_FRAGMENT}\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 { events } from '@adobe-commerce/event-bus';\nimport { REQUEST_NEGOTIABLE_QUOTE_MUTATION } from './graphql/RequestNegotiableQuoteMutation';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { transformQuote } from '@/quote-management/data/transforms';\n\nexport interface RequestNegotiableQuoteInput {\n cartId: string;\n quoteName: string;\n comment: string;\n isDraft?: boolean;\n attachments?: { key: string }[];\n}\n\nexport const requestNegotiableQuote = async (\n input: RequestNegotiableQuoteInput\n): Promise<NegotiableQuoteModel | null> => {\n const { cartId, quoteName, comment, attachments, isDraft } = input;\n\n if (!cartId) {\n throw new Error('Cart ID is required');\n }\n\n if (!quoteName) {\n throw new Error('Quote name is required');\n }\n\n if (!comment) {\n throw new Error('Comment is required');\n }\n\n return fetchGraphQl(REQUEST_NEGOTIABLE_QUOTE_MUTATION, {\n variables: {\n cartId,\n quoteName,\n comment: attachments?.length ? { comment, attachments } : { comment },\n isDraft,\n },\n }).then((response) => {\n const { errors } = response;\n\n if (errors) {\n // Provide more detailed error information\n const errorMessages = errors.map((error) => error.message).join('; ');\n throw new Error(`Failed to request negotiable quote: ${errorMessages}`);\n }\n\n // Transform the quote data\n const quoteData = transformQuote(response.data?.requestNegotiableQuote?.quote);\n\n if (!quoteData) {\n throw new Error(\n 'Failed to transform quote data: Invalid response structure'\n );\n }\n\n // Emit event with transformed quote data on success\n events.emit('quote-management/negotiable-quote-requested', {\n quote: quoteData,\n input: { cartId, quoteName, comment, attachments, isDraft },\n });\n\n return quoteData;\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\nexport const INITIATE_UPLOAD_MUTATION = `\n mutation INITIATE_UPLOAD_MUTATION($input: initiateUploadInput!) {\n initiateUpload(input: $input) {\n upload_url\n key\n expires_at\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\nexport const FINISH_UPLOAD_MUTATION = `\n mutation FINISH_UPLOAD_MUTATION($input: finishUploadInput!) {\n finishUpload(input: $input) {\n success\n key\n message\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 { events } from '@adobe-commerce/event-bus';\nimport { INITIATE_UPLOAD_MUTATION } from '@/quote-management/api/uploadFile/graphql/InitiateUploadMutation';\nimport { FINISH_UPLOAD_MUTATION } from '@/quote-management/api/uploadFile/graphql/FinishUploadMutation';\n\ntype GraphQLError = { message: string };\ntype InitiateUploadData = {\n initiateUpload?: {\n upload_url: string;\n key: string;\n expires_at: string;\n };\n};\ntype FinishUploadData = {\n finishUpload?: {\n success: boolean;\n key: string;\n message?: string;\n };\n};\ntype GraphQLResponse<T> = {\n data?: T;\n errors?: GraphQLError[];\n};\n\nexport const uploadFile = async (file: File): Promise<{ key: string }> => {\n const mediaResourceType = 'NEGOTIABLE_QUOTE_ATTACHMENT';\n\n try {\n const filename = file?.name;\n if (!file || !filename) throw new Error('Invalid file');\n\n const formatGraphQLErrors = (errors: GraphQLError[]): string =>\n errors.map((e) => e.message).join('; ');\n\n const { data: initialData, errors: initialErrors } = (await fetchGraphQl(\n INITIATE_UPLOAD_MUTATION,\n { \n variables: { input: { key: filename, media_resource_type: mediaResourceType } } \n }\n )) as GraphQLResponse<InitiateUploadData>;\n if (initialErrors && initialErrors.length) throw new Error(formatGraphQLErrors(initialErrors));\n\n const { upload_url, key } = initialData?.initiateUpload || {};\n if (!upload_url || !key) throw new Error('Failed to initiate upload');\n\n const put = await fetch(upload_url, { method: 'PUT', body: file });\n if (!put.ok) throw new Error(`Upload failed: ${put.status} ${put.statusText}`);\n\n const { data: finishData, errors: finishErrors } = (await fetchGraphQl(\n FINISH_UPLOAD_MUTATION,\n { \n variables: { input: { key, media_resource_type: mediaResourceType } } \n }\n )) as GraphQLResponse<FinishUploadData>;\n if (finishErrors && finishErrors.length) throw new Error(formatGraphQLErrors(finishErrors));\n\n const { success, key: finalizedKey, message } = finishData?.finishUpload || {};\n if (!success || !finalizedKey) throw new Error(message || 'Failed to finish upload');\n\n return { key: finalizedKey };\n \n } catch (err: any) {\n events.emit('quote-management/file-upload-error', {\n error: err?.message || 'File upload failed',\n fileName: file?.name,\n });\n throw err instanceof Error ? err : new Error('File upload failed');\n }\n};\n"],"names":["REQUEST_NEGOTIABLE_QUOTE_MUTATION","NEGOTIABLE_QUOTE_FRAGMENT","requestNegotiableQuote","input","cartId","quoteName","comment","attachments","isDraft","fetchGraphQl","response","errors","errorMessages","error","quoteData","transformQuote","_b","_a","events","INITIATE_UPLOAD_MUTATION","FINISH_UPLOAD_MUTATION","uploadFile","file","mediaResourceType","filename","formatGraphQLErrors","e","initialData","initialErrors","upload_url","key","put","finishData","finishErrors","success","finalizedKey","message","err"],"mappings":"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"}
@@ -1,50 +1,14 @@
1
1
  import { FunctionComponent } from 'preact';
2
2
  import { HTMLAttributes } from 'preact/compat';
3
+ import { NegotiableQuoteCartItem } from '../../data/models/negotiable-quote-model';
3
4
 
4
- export interface ProductListTableItem {
5
- uid: string;
6
- product: {
7
- name: string;
8
- sku: string;
9
- };
10
- prices: {
11
- originalItemPrice: {
12
- value: number;
13
- currency: string;
14
- };
15
- rowTotal: {
16
- value: number;
17
- currency: string;
18
- };
19
- };
20
- quantity: number;
21
- catalogDiscount?: {
22
- amountOff: number;
23
- percentOff: number;
24
- };
25
- configurableOptions?: Array<{
26
- optionLabel: string;
27
- valueLabel: string;
28
- }>;
29
- bundleOptions?: Array<{
30
- label: string;
31
- values: Array<{
32
- label: string;
33
- quantity: number;
34
- originalPrice: {
35
- value: number;
36
- currency: string;
37
- };
38
- }>;
39
- }>;
40
- }
41
5
  export interface ProductListTableProps extends HTMLAttributes<HTMLDivElement | HTMLFormElement> {
42
- items: ProductListTableItem[];
6
+ items: NegotiableQuoteCartItem[];
43
7
  canEdit: boolean;
44
8
  readOnly?: boolean;
45
- onItemCheckboxChange?: (item: ProductListTableItem, isSelected: boolean) => void;
46
- onItemDropdownChange?: (item: ProductListTableItem, action: string) => void;
47
- onQuantityChange?: (item: ProductListTableItem, newQuantity: number) => void;
9
+ onItemCheckboxChange?: (item: NegotiableQuoteCartItem, isSelected: boolean) => void;
10
+ onItemDropdownChange?: (item: NegotiableQuoteCartItem, action: string) => void;
11
+ onQuantityChange?: (item: NegotiableQuoteCartItem, newQuantity: number) => void;
48
12
  onUpdate?: (e: SubmitEvent) => void;
49
13
  dropdownSelections?: Record<string, string | undefined>;
50
14
  }
@@ -1,77 +1,9 @@
1
1
  import { FunctionComponent } from 'preact';
2
2
  import { HTMLAttributes } from 'preact/compat';
3
+ import { NegotiableQuoteModel } from '../../data/models/negotiable-quote-model';
3
4
 
4
- export interface HistoryEntry {
5
- uid: string;
6
- createdAt: string;
7
- author: {
8
- firstname: string;
9
- lastname: string;
10
- };
11
- changeType: string;
12
- changes: {
13
- commentAdded?: {
14
- comment: string;
15
- };
16
- statuses?: {
17
- changes: Array<{
18
- oldStatus?: string;
19
- newStatus?: string;
20
- }>;
21
- };
22
- expiration?: {
23
- oldExpiration?: string;
24
- newExpiration?: string;
25
- };
26
- total?: {
27
- oldPrice?: {
28
- value: number;
29
- currency: string;
30
- };
31
- newPrice?: {
32
- value: number;
33
- currency: string;
34
- };
35
- };
36
- customChanges?: {
37
- title: string;
38
- old_value: string;
39
- new_value: string;
40
- };
41
- productsRemoved?: {
42
- productsRemovedFromCatalog?: string[];
43
- productsRemovedFromQuote?: Array<{
44
- name?: string;
45
- sku?: string;
46
- uid: string;
47
- }>;
48
- };
49
- };
50
- }
51
- export interface ItemNote {
52
- createdAt: string;
53
- creatorId: number;
54
- creatorType: number;
55
- negotiableQuoteItemUid: string;
56
- note: string;
57
- noteUid: string;
58
- }
59
- export interface QuoteItem {
60
- product: {
61
- name: string;
62
- sku: string;
63
- };
64
- noteFromBuyer?: ItemNote[];
65
- noteFromSeller?: ItemNote[];
66
- }
67
5
  export interface QuoteHistoryLogProps extends HTMLAttributes<HTMLDivElement> {
68
- history?: HistoryEntry[];
69
- items?: QuoteItem[];
70
- buyer: {
71
- firstname: string;
72
- lastname: string;
73
- };
74
- salesRepName: string;
6
+ quoteData?: NegotiableQuoteModel;
75
7
  }
76
8
  export declare const QuoteHistoryLog: FunctionComponent<QuoteHistoryLogProps>;
77
9
  //# sourceMappingURL=QuoteHistoryLog.d.ts.map
@@ -24,5 +24,4 @@ export * from './TabbedContent';
24
24
  export * from './QuoteCommentsList';
25
25
  export * from './ConfirmationModal';
26
26
  export * from './RenameQuoteModal';
27
- export * from './ManageNegotiableQuoteTemplate';
28
27
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{I as k,I as n}from"../chunks/ItemsQuoted.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/lib.js";import"@dropins/tools/event-bus.js";import"@dropins/tools/components.js";/* empty css */import"../chunks/QuotePricesSummary.js";import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/i18n.js";/* empty css *//* empty css *//* empty css */import"../chunks/removeNegotiableQuoteItems.js";import"../chunks/transform-quote.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/state.js";import"../chunks/NegotiableQuoteFragment.js";import"../chunks/WarningFilled.js";export{k as ItemsQuoted,n as default};
3
+ import{I as c,I as g}from"../chunks/ItemsQuoted.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/lib.js";import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/i18n.js";import"@dropins/tools/event-bus.js";import"../chunks/removeNegotiableQuoteItems.js";import"../chunks/fetch-graphql.js";import"../chunks/state.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/NegotiableQuoteFragment.js";import"../chunks/WarningFilled.js";export{c as ItemsQuoted,g as default};
4
4
  //# sourceMappingURL=ItemsQuoted.js.map
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as t,jsxs as s,Fragment as Le}from"@dropins/tools/preact-jsx-runtime.js";import*as we from"@dropins/tools/preact-compat.js";import{useState as c,useRef as ie,useEffect as y,useCallback as d,useMemo as f,createPortal as j}from"@dropins/tools/preact-compat.js";import{classes as l,VComponent as N,Slot as g,getGlobalLocale as ra}from"@dropins/tools/lib.js";/* empty css */import{Picker as ia,Skeleton as ma,SkeletonRow as F,Modal as la,Input as ca,TextArea as xe,Button as $,InLineAlert as L}from"@dropins/tools/components.js";import{events as x}from"@dropins/tools/event-bus.js";import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";import{I as sa,C as me}from"../chunks/ItemsQuoted.js";/* empty css *//* empty css */import{T as da}from"../chunks/TabbedContent.js";/* empty css */import{useText as Re}from"@dropins/tools/i18n.js";import{S as ua}from"../chunks/ShippingAddressDisplay.js";import{Q as ga}from"../chunks/QuoteHistoryLog3.js";import{g as ba,r as fa,c as pa,s as Ma,d as ha}from"../chunks/renameNegotiableQuote.js";import"../chunks/state.js";import{Q as Na}from"../chunks/QuoteCommentsList3.js";import{a as G,S as le}from"../chunks/WarningFilled.js";import"../chunks/QuotePricesSummary.js";import"../chunks/removeNegotiableQuoteItems.js";import"../chunks/transform-quote.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/NegotiableQuoteFragment.js";import"../chunks/QuoteHistoryLog.js";import"../chunks/dateUtils.js";import"../chunks/QuoteCommentsList.js";const qa=p=>we.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"feather feather-edit-2",...p},we.createElement("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})),va=({className:p,dropdownPlaceholder:a,dropdownOptions:m,dropdownValue:q,handleDropdownChange:Q,buttons:e,...u})=>{const v=m&&m.length>0,S=e&&e.length>0,_=(m==null?void 0:m.map(M=>({text:M.label,value:M.value})))||[];return _.unshift({text:a||"",value:""}),t("div",{className:"quote-management-actions-bar__container","data-testid":"actions-bar-container",children:s("div",{className:l(["quote-management-actions-bar",p]),"data-testid":"actions-bar",...u,children:[v&&t(ia,{name:"dropdown",id:"dropdown",handleSelect:Q,className:"quote-management-actions-bar__dropdown","data-testid":"dropdown",options:_,value:q||""},`actions-bar-picker-${q||"empty"}`),S&&t("div",{className:"quote-management-actions-bar__buttons","data-testid":"buttons-container",children:e==null?void 0:e.map((M,C)=>t(N,{node:M,className:l(["quote-management-actions-bar__button"])},C))})]})})},Qa=({className:p,loading:a,quoteName:m,quoteStatus:q,banner:Q,details:e,actionBar:u,quoteContent:v,shippingInformationTitle:S,shippingInformation:_,quoteCommentsTitle:M,quoteComments:C,footer:b,...I})=>a?t(Sa,{}):s("div",{...I,className:l(["quote-management-manage-negotiable-quote",p]),children:[s("div",{className:l(["quote-management-manage-negotiable-quote__header"]),children:[m&&t(N,{node:m,className:l(["quote-management-manage-negotiable-quote__quote-name"])}),q&&t(N,{node:q,className:l(["quote-management-manage-negotiable-quote__quote-status"])})]}),Q&&t(N,{node:Q,className:l(["quote-management-manage-negotiable-quote__banner"])}),e&&t(N,{node:e,className:l(["quote-management-manage-negotiable-quote__details"])}),u&&t(N,{node:u,className:l(["quote-management-manage-negotiable-quote__action-bar"])}),v&&t(N,{node:v,className:l(["quote-management-manage-negotiable-quote__quote-content"])}),s("div",{"data-testid":"quote-shipping-information-container",className:l(["quote-management-manage-negotiable-quote__shipping-information-container"]),children:[S&&t(N,{node:S,className:l(["quote-management-manage-negotiable-quote__shipping-information-title"])}),_&&t(N,{node:_,className:l(["quote-management-manage-negotiable-quote__shipping-information"])})]}),s("div",{"data-testid":"quote-comments-container",className:l(["quote-management-manage-negotiable-quote__quote-comments-container"]),children:[M&&t(N,{node:M,className:l(["quote-management-manage-negotiable-quote__quote-comments-title"])}),C&&t(N,{node:C,className:l(["quote-management-manage-negotiable-quote__quote-comments"])})]}),t(N,{node:b,className:l(["quote-management-manage-negotiable-quote__footer"])})]}),Sa=()=>s(ma,{"data-testid":"manage-negotiable-quote-skeleton",children:[t(F,{variant:"heading",fullWidth:!0,size:"large"}),t(F,{variant:"row",fullWidth:!1,size:"small"}),t(F,{variant:"row",fullWidth:!1,size:"small"}),t(F,{variant:"row",fullWidth:!0}),t(F,{variant:"row",fullWidth:!0,size:"xlarge",lines:2}),t(F,{variant:"row",fullWidth:!1,size:"small"})]}),_a=({className:p,open:a,quoteName:m,renameReason:q,quoteNameError:Q,errorBanner:e,successBanner:u,showCloseButton:v=!0,onQuoteNameChange:S,onRenameReasonChange:_,onSave:M,onClose:C})=>{const b=Re({title:"NegotiableQuote.Manage.rename.title",quoteNameLabel:"NegotiableQuote.Manage.rename.quoteNameLabel",reasonLabel:"NegotiableQuote.Manage.rename.reasonLabel",renameButton:"NegotiableQuote.Manage.rename.renameButton",cancelButton:"NegotiableQuote.Manage.rename.cancelButton"});return a?s(la,{open:a,size:"medium",title:t(Le,{children:b.title}),onClose:C,clickToDismiss:!0,escapeToDismiss:!0,showCloseButton:v,className:l(["quote-management-rename-quote-modal",p]),"data-testid":"rename-quote-modal",children:[e&&t("div",{className:l(["quote-management-rename-quote-modal__error-banner"]),"data-testid":"rename-quote-modal-error-banner",children:e}),u&&t("div",{className:l(["quote-management-rename-quote-modal__success-banner"]),"data-testid":"rename-quote-modal-success-banner",children:u}),s("div",{className:l(["quote-management-rename-quote-modal__content"]),children:[s("div",{children:[t(ca,{name:"quoteName",type:"text",value:m,onInput:I=>S(I.target.value),floatingLabel:b.quoteNameLabel,required:!0,error:!!Q}),Q&&t("span",{className:l(["quote-management-rename-quote-modal__error-text"]),children:Q})]}),t(xe,{name:"quoteComment",value:q,onInput:I=>_(I.target.value),label:b.reasonLabel,rows:3})]}),s("div",{className:l(["quote-management-rename-quote-modal__actions"]),children:[t($,{variant:"secondary",size:"medium",onClick:C,className:l(["quote-management-rename-quote-modal__cancel-button"]),children:b.cancelButton}),t($,{variant:"primary",size:"medium",onClick:M,className:l(["quote-management-rename-quote-modal__save-button"]),children:b.renameButton})]})]}):null},at=({onActionsDropdownChange:p,slots:a,onActionsButtonClick:m,onSendForReview:q,...Q})=>{const[e,u]=c(void 0),[v,S]=c(!0),[_,M]=c(!1),[C,b]=c(null),[I,U]=c(!1),[T,ce]=c(""),[H,X]=c(!1),[se,J]=c(!1),[de,K]=c(!1),[ue,R]=c(""),[ge,B]=c(""),[be,Y]=c(!1),[P,z]=c(""),[Z,W]=c(""),[A,k]=c(""),[Ee,E]=c(""),[ee,O]=c(""),[ae,fe]=c(new Set),pe=ie(ae),te=ie(null),[D,ne]=c(""),V=ie(D),[Me,he]=c(!1);y(()=>{pe.current=ae},[ae]),y(()=>{V.current=D},[D]);const o=Re({createdLabel:"NegotiableQuote.Manage.createdLabel",salesRepLabel:"NegotiableQuote.Manage.salesRepLabel",expiresLabel:"NegotiableQuote.Manage.expiresLabel",actionsLabel:"NegotiableQuote.Manage.actionsLabel",remove:"NegotiableQuote.Manage.actions.remove",close:"NegotiableQuote.Manage.actionButtons.close",delete:"NegotiableQuote.Manage.actionButtons.delete",print:"NegotiableQuote.Manage.actionButtons.print",createTemplate:"NegotiableQuote.Manage.actionButtons.createTemplate",createCopy:"NegotiableQuote.Manage.actionButtons.createCopy",shippingInformationTitle:"NegotiableQuote.Manage.shippingInformation.title",quoteCommentsTitle:"NegotiableQuote.Manage.quoteComments.title",quoteCommentsPlaceholder:"NegotiableQuote.Manage.quoteComments.placeholder",sendForReview:"NegotiableQuote.Manage.actionButtons.sendForReview",bannerTitle:"NegotiableQuote.Manage.bannerTitle",statusSubmitted:"NegotiableQuote.Manage.bannerStatusMessages.submitted",statusPending:"NegotiableQuote.Manage.bannerStatusMessages.pending",statusExpired:"NegotiableQuote.Manage.bannerStatusMessages.expired",errorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",closeSuccessMessage:"NegotiableQuote.Manage.confirmationModal.close.successDescription",closeModalTitle:"NegotiableQuote.Manage.actionButtons.close",closeModalMessage:"NegotiableQuote.Manage.confirmationModal.close.message",closeModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",closeModalConfirm:"NegotiableQuote.Manage.confirmationModal.close.confirm",closeModalConfirmLoading:"NegotiableQuote.Manage.confirmationModal.close.confirmLoading",closeModalSuccessHeading:"NegotiableQuote.Manage.confirmationModal.close.successHeading",renameErrorHeading:"NegotiableQuote.Manage.rename.errorHeading",renameQuoteNameRequired:"NegotiableQuote.Manage.rename.quoteNameRequired",renameErrorDefault:"NegotiableQuote.Manage.rename.errorDefault",renameSuccessHeading:"NegotiableQuote.Manage.rename.successHeading",renameSuccessMessage:"NegotiableQuote.Manage.rename.successMessage",confirmationModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",confirmationModalDeleteTitle:"NegotiableQuote.Manage.confirmationModal.delete.title",confirmationModalDeleteMessage:"NegotiableQuote.Manage.confirmationModal.delete.message",confirmationModalDeleteConfirm:"NegotiableQuote.Manage.confirmationModal.delete.confirm",confirmationModalDeleteErrorHeading:"NegotiableQuote.Manage.confirmationModal.delete.errorHeading",confirmationModalDeleteErrorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",noItemsSelectedModalTitle:"NegotiableQuote.Manage.confirmationModal.noItemsSelected.title",noItemsSelectedModalMessage:"NegotiableQuote.Manage.confirmationModal.noItemsSelected.message",noItemsSelectedModalConfirm:"NegotiableQuote.Manage.confirmationModal.noItemsSelected.confirm",confirmationModalDeleteSuccessHeading:"NegotiableQuote.Manage.confirmationModal.delete.successHeading",confirmationModalDeleteSuccessDescription:"NegotiableQuote.Manage.confirmationModal.delete.successDescription"});y(()=>{const n=x.on("quote-management/quote-data",r=>{const{quote:i}=r;i&&(u(i),S(!1))},{eager:!0});return()=>n==null?void 0:n.off()},[]),y(()=>{const n=x.on("quote-management/shipping-address-set",r=>{const{quote:i}=r;i&&u(i)},{eager:!0});return()=>n==null?void 0:n.off()},[]),y(()=>{const n=x.on("quote-management/quote-sent-for-review",r=>{const{quote:i}=r;u(i),ce(""),X(!1)},{eager:!0});return()=>n==null?void 0:n.off()},[]),y(()=>{const n=x.on("quote-management/quote-items-removed",r=>{const{quote:i,removedItemUids:h}=r;i&&u(i),h&&fe(w=>{const Te=new Set(w);return h.forEach(oa=>Te.delete(oa)),Te})},{eager:!0});return()=>n==null?void 0:n.off()},[]);const Ne=d((n,r)=>{fe(i=>{const h=new Set(i);return r?h.add(n.uid):h.delete(n.uid),h})},[]),qe=d(n=>{const r=n.target.value,i=pe.current;if(r==="remove"){if(ne(r),V.current=r,i.size===0)he(!0);else if(e&&te.current){const h=e.items.filter(w=>i.has(w.uid));te.current(h)}}p==null||p(n)},[p,e]),ve=d(()=>{he(!1),ne(""),V.current=""},[]);y(()=>{const n=x.on("quote-management/negotiable-quote-closed",async r=>{K(!1),B(""),R(o.closeSuccessMessage),u(i=>{var h;return i!=null&&i.uid&&((h=r.closedQuoteUids)!=null&&h.includes(i.uid))&&ba(i.uid).then(w=>{u(w)}).catch(w=>{console.warn("Failed to refresh quote data after closure:",w)}),i}),setTimeout(()=>{J(!1),R("")},2e3)},{eager:!0});return()=>n==null?void 0:n.off()},[o.closeSuccessMessage]),y(()=>{const n=x.on("quote-management/negotiable-quote-close-error",r=>{console.log("Close error event received:",r),K(!1),R("");const i=r.error.message||o.errorFallback;B(i)},{eager:!0});return()=>n==null?void 0:n.off()},[o.errorFallback]),y(()=>{const n=x.on("quote-management/quote-renamed",r=>{const{quote:i}=r;u(i),k(""),E(""),O(o.renameSuccessMessage),setTimeout(()=>{Y(!1),z(""),W(""),O("")},2e3)},{eager:!0});return()=>n==null?void 0:n.off()},[o.renameSuccessMessage]);const Qe=d(()=>{z((e==null?void 0:e.name)||""),W(""),k(""),E(""),O(""),Y(!0)},[e]),De=d(()=>{Y(!1),z(""),W(""),k(""),E(""),O("")},[]),Fe=d(n=>{z(n),n.trim()&&E("")},[]),He=d(async()=>{if(!P.trim()){E(o.renameQuoteNameRequired);return}try{k(""),E(""),await fa({quoteUid:e.uid,quoteName:P,quoteComment:Z.trim()||void 0})}catch(n){k(n.message||o.renameErrorDefault)}},[e,P,Z,o.renameQuoteNameRequired,o.renameErrorDefault]),Be=f(()=>{const n=e&&(e.lockedForEditing===!0||e.lockedForEditing===void 0&&(e.status==="SUBMITTED"||e.status==="PENDING"||e.status==="ORDERED"||e.status==="CLOSED"));return t(g,{name:"QuoteName",slot:a==null?void 0:a.QuoteName,context:{quoteName:e==null?void 0:e.name,quoteData:e},children:s("div",{className:"quote-management-manage-negotiable-quote__quote-name-wrapper",children:[t("h1",{"data-testid":"quote-name",className:"quote-management-manage-negotiable-quote__quote-name-title",children:e==null?void 0:e.name}),t("button",{onClick:Qe,disabled:n,"data-testid":"rename-quote-button",className:"quote-management-manage-negotiable-quote__rename-button","aria-label":"Rename quote",children:t(qa,{})})]})})},[a==null?void 0:a.QuoteName,e,Qe]),ke=f(()=>t(g,{name:"QuoteStatus",slot:a==null?void 0:a.QuoteStatus,context:{quoteStatus:e==null?void 0:e.status,quoteData:e},children:t("div",{"data-testid":"quote-status",children:e==null?void 0:e.status})}),[a==null?void 0:a.QuoteStatus,e]),Se=d(n=>{switch(n){case"SUBMITTED":return o.statusSubmitted;case"PENDING":return o.statusPending;case"EXPIRED":return o.statusExpired;default:return null}},[o])(e==null?void 0:e.status),_e=Se&&t(L,{type:"warning",variant:"secondary",icon:t(G,{}),heading:o.bannerTitle,description:Se}),Ue=_e&&t(g,{name:"Banner","data-testid":"banner",slot:a==null?void 0:a.Banner,context:{quoteData:e},children:_e}),Pe=f(()=>{if(!e)return null;const n=ra()||"en-US",r=new Intl.DateTimeFormat(n,{year:"numeric",month:"long",day:"numeric"});let i;try{i=r.format(new Date(e.expirationDate))}catch{i=e.expirationDate}return s(g,{name:"Details",slot:a==null?void 0:a.Details,context:{quoteData:e},children:[s("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"created-label",children:o.createdLabel}),s("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"created-value",children:[r.format(new Date(e.createdAt))," (",e.buyer.firstname," ",e.buyer.lastname,")"]})]}),s("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"sales-rep-label",children:o.salesRepLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"sales-rep-value",children:e.salesRepName})]}),s("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"expires-label",children:o.expiresLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"expires-value",children:i})]})]})},[a==null?void 0:a.Details,o,e]),Ce=f(()=>[{label:o.close,value:"close",disabled:!(e!=null&&e.canClose)},{label:o.delete,value:"delete",disabled:!(e!=null&&e.canDelete)},{label:o.print,value:"print"},{label:o.createTemplate,value:"createTemplate"},{label:o.createCopy,value:"createCopy"}],[o,e==null?void 0:e.canDelete,e==null?void 0:e.canClose]),ze=f(()=>{const n=r=>{switch(r){case"close":J(!0),B(""),R(""),m==null||m(r);break;case"delete":M(!0),m==null||m(r);break;case"print":m==null||m(r);break;case"createTemplate":m==null||m(r);break;case"createCopy":m==null||m(r);break}};return t(g,{name:"ActionBar",slot:a==null?void 0:a.ActionBar,context:{quoteData:e,actionsBarDropdownValue:D},children:t(va,{dropdownPlaceholder:o.actionsLabel,dropdownOptions:[{label:o.remove,value:"remove"}],dropdownValue:D,handleDropdownChange:qe,buttons:Ce.map(r=>t($,{variant:"tertiary",onClick:()=>n(r.value),"data-testid":`actions-bar-${r.value}-button`,"data-action":r.value,disabled:r.disabled,children:r.label},r.value))})})},[Ce,o,a==null?void 0:a.ActionBar,e,qe,m,D]),We=f(()=>t(g,{name:"QuoteContent",slot:a==null?void 0:a.QuoteContent,context:{quoteData:e},children:t(da,{tabs:new Map([["items-quoted","Items Quoted"],["comments","Comments"],["history-log","History Log"]]),tabsContent:new Map([["items-quoted",t(g,{name:"ItemsQuotedTab",slot:a==null?void 0:a.ItemsQuotedTab,context:{quoteData:e},children:t(sa,{quoteData:e,onItemCheckboxChange:Ne,onRemoveItemsRef:n=>{te.current=n},onRemoveModalStateChange:n=>{!n&&V.current==="remove"&&ne("")}})},"items-quoted")],["comments",t(g,{name:"CommentsTab",slot:a==null?void 0:a.CommentsTab,context:{quoteData:e},children:t(Na,{quoteData:e})},"comments")],["history-log",t(g,{name:"HistoryLogTab",slot:a==null?void 0:a.HistoryLogTab,context:{quoteData:e},children:t(ga,{quoteData:e})},"history-log")]])})}),[a==null?void 0:a.QuoteContent,a==null?void 0:a.HistoryLogTab,a==null?void 0:a.CommentsTab,a==null?void 0:a.ItemsQuotedTab,e,Ne]),Oe=f(()=>t(g,{name:"ShippingInformationTitle",slot:a==null?void 0:a.ShippingInformationTitle,context:{quoteData:e},children:t("h2",{children:o.shippingInformationTitle})}),[a==null?void 0:a.ShippingInformationTitle,e,o]),Ve=f(()=>t(g,{name:"ShippingInformation",slot:a==null?void 0:a.ShippingInformation,context:{quoteData:e,loading:v,setLoading:S},children:t(ua,{quoteData:e,loading:v,"data-testid":"manage-quote-shipping-address"})}),[a==null?void 0:a.ShippingInformation,e,v,S]),je=f(()=>t(g,{name:"QuoteCommentsTitle",slot:a==null?void 0:a.QuoteCommentsTitle,context:{quoteData:e},children:t("h2",{children:o.quoteCommentsTitle})}),[a==null?void 0:a.QuoteCommentsTitle,o,e]),Ge=f(()=>t(g,{name:"QuoteComments",slot:a==null?void 0:a.QuoteComments,context:{quoteData:e},children:t(xe,{name:"quoteComments",placeholder:o.quoteCommentsPlaceholder,rows:3,value:T,onInput:n=>{ce(n.target.value)},disabled:H})}),[a==null?void 0:a.QuoteComments,o,e,T,H]),$e=d(async()=>{if(e!=null&&e.uid){K(!0),B(""),R("");try{await pa({quoteUids:[e.uid]})}catch(n){console.error("Failed to close quote:",n)}}},[e]),Xe=d(()=>{J(!1),B(""),R("")},[]),ye=d(async()=>{if(q){q({quoteData:e,comment:T.trim()||void 0});return}X(!0);try{await Ma({quoteUid:e.uid,comment:T.trim()||void 0})}catch(n){console.error("Failed to send quote for review:",n),X(!1)}},[e,q,T]),Je=f(()=>t(g,{name:"Footer",slot:a==null?void 0:a.Footer,context:{quoteData:e,comment:T,isSubmitting:H},children:t($,{variant:"primary",onClick:ye,"data-testid":"send-for-review-button",disabled:!(e!=null&&e.canSendForReview)||H||!e,children:o.sendForReview})}),[a==null?void 0:a.Footer,o,e,T,H,ye]),Ke=f(()=>A?t(L,{type:"error",variant:"primary",icon:t(G,{color:"var(--color-error)"}),heading:o.renameErrorHeading,description:A}):void 0,[A,o.renameErrorHeading]),Ye=f(()=>ee?t(L,{type:"success",variant:"primary",icon:t(le,{}),heading:o.renameSuccessHeading,description:ee}):void 0,[ee,o.renameSuccessHeading]),oe=d(n=>n.errors&&Array.isArray(n.errors)&&n.errors.length>0?n.errors[0].message||o.confirmationModalDeleteErrorFallback:(n==null?void 0:n.message)||o.confirmationModalDeleteErrorFallback,[o.confirmationModalDeleteErrorFallback]),Ze=d(()=>{M(!1),b(null),U(!1)},[]),Ae=d(async()=>{if(e!=null&&e.uid){b(null),U(!1);try{const{operationResults:n}=await ha(e.uid),r=n.find(i=>i.__typename==="DeleteNegotiableQuoteOperationFailure");if(r){const i=oe(r);b(i);return}U(!0)}catch(n){const r=oe(n);b(r)}}},[e,oe]),ea=d(()=>{b(null)},[]),aa=d(()=>{U(!1)},[]),ta=C?t(L,{type:"error",variant:"primary",icon:t(G,{}),heading:o.confirmationModalDeleteErrorHeading,description:C,onDismiss:ea,"data-testid":"confirmation-modal-error-banner"}):null,Ie=(I?t(L,{type:"success",variant:"primary",icon:t(le,{}),heading:o.confirmationModalDeleteSuccessHeading,description:o.confirmationModalDeleteSuccessDescription,onDismiss:aa,"data-testid":"confirmation-modal-success-banner"}):null)||ta,na={...Q,loading:v,quoteName:Be,quoteStatus:ke,banner:Ue||void 0,details:Pe,actionBar:ze,quoteContent:We,shippingInformationTitle:Oe,shippingInformation:Ve,quoteCommentsTitle:je,quoteComments:Ge,footer:Je};let re=null;return ue?re=t(L,{type:"success",variant:"primary",icon:t(le,{}),heading:o.closeModalSuccessHeading,description:ue,"data-testid":"close-quote-success-banner"}):ge&&(re=t(L,{type:"error",variant:"primary",icon:t(G,{}),heading:o.confirmationModalDeleteErrorHeading,description:ge,"data-testid":"close-quote-error-banner"})),s(Le,{children:[t(Qa,{...na}),be&&j(t(_a,{open:be,quoteName:P,renameReason:Z,quoteNameError:Ee,errorBanner:Ke,successBanner:Ye,onQuoteNameChange:Fe,onRenameReasonChange:W,onSave:He,onClose:De}),document.body),_&&j(t(me,{open:_,title:o.confirmationModalDeleteTitle,message:o.confirmationModalDeleteMessage,cancelLabel:o.confirmationModalCancel,confirmLabel:o.confirmationModalDeleteConfirm,onCancel:Ze,onConfirm:Ae,showCloseButton:!Ie,confirmationBanner:Ie}),document.body),se&&j(t(me,{open:se,title:o.closeModalTitle,message:o.closeModalMessage,cancelLabel:o.closeModalCancel,confirmLabel:de?o.closeModalConfirmLoading:o.closeModalConfirm,onCancel:Xe,onConfirm:de?void 0:$e,showCloseButton:!0,confirmationBanner:re,"data-testid":"close-quote-confirmation-modal"}),document.body),Me&&j(t(me,{open:Me,title:o.noItemsSelectedModalTitle,message:o.noItemsSelectedModalMessage,confirmLabel:o.noItemsSelectedModalConfirm,onConfirm:ve,onClose:ve,showCloseButton:!0,"data-testid":"no-items-selected-modal"}),document.body)]})};export{at as ManageNegotiableQuote,at as default};
3
+ import{jsx as t,jsxs as s,Fragment as Le}from"@dropins/tools/preact-jsx-runtime.js";import*as we from"@dropins/tools/preact-compat.js";import{useState as c,useMemo as M,useRef as ie,useEffect as y,useCallback as g,createPortal as j}from"@dropins/tools/preact-compat.js";import{classes as l,VComponent as Q,Slot as p,getGlobalLocale as ra}from"@dropins/tools/lib.js";/* empty css */import{Picker as ia,Skeleton as ma,SkeletonRow as F,Modal as la,Input as ca,TextArea as xe,Button as $,InLineAlert as L}from"@dropins/tools/components.js";import{events as x}from"@dropins/tools/event-bus.js";/* empty css */import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";import{I as sa,C as me}from"../chunks/ItemsQuoted.js";/* empty css *//* empty css *//* empty css */import{useText as Re}from"@dropins/tools/i18n.js";import{S as da}from"../chunks/ShippingAddressDisplay.js";import{Q as ua}from"../chunks/QuoteHistoryLog.js";import{g as ga,r as ba,c as fa,s as pa,d as Ma}from"../chunks/renameNegotiableQuote.js";import"../chunks/state.js";import{Q as ha}from"../chunks/QuoteCommentsList.js";import{a as G,S as le}from"../chunks/WarningFilled.js";import"../chunks/removeNegotiableQuoteItems.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/NegotiableQuoteFragment.js";import"../chunks/dateUtils.js";const Na=b=>we.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"feather feather-edit-2",...b},we.createElement("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})),qa=({className:b,dropdownPlaceholder:a,dropdownOptions:m,dropdownValue:h,handleDropdownChange:_,buttons:e,...d})=>{const N=m&&m.length>0,q=e&&e.length>0,u=(m==null?void 0:m.map(f=>({text:f.label,value:f.value})))||[];return u.unshift({text:a||"",value:""}),t("div",{className:"quote-management-actions-bar__container","data-testid":"actions-bar-container",children:s("div",{className:l(["quote-management-actions-bar",b]),"data-testid":"actions-bar",...d,children:[N&&t(ia,{name:"dropdown",id:"dropdown",handleSelect:_,className:"quote-management-actions-bar__dropdown","data-testid":"dropdown",options:u,value:h||""},`actions-bar-picker-${h||"empty"}`),q&&t("div",{className:"quote-management-actions-bar__buttons","data-testid":"buttons-container",children:e==null?void 0:e.map((f,C)=>t(Q,{node:f,className:l(["quote-management-actions-bar__button"])},C))})]})})},va=({className:b,loading:a,quoteName:m,quoteStatus:h,banner:_,details:e,actionBar:d,quoteContent:N,shippingInformationTitle:q,shippingInformation:u,quoteCommentsTitle:f,quoteComments:C,footer:v,...I})=>a?t(Qa,{}):s("div",{...I,className:l(["quote-management-manage-negotiable-quote",b]),children:[s("div",{className:l(["quote-management-manage-negotiable-quote__header"]),children:[m&&t(Q,{node:m,className:l(["quote-management-manage-negotiable-quote__quote-name"])}),h&&t(Q,{node:h,className:l(["quote-management-manage-negotiable-quote__quote-status"])})]}),_&&t(Q,{node:_,className:l(["quote-management-manage-negotiable-quote__banner"])}),e&&t(Q,{node:e,className:l(["quote-management-manage-negotiable-quote__details"])}),d&&t(Q,{node:d,className:l(["quote-management-manage-negotiable-quote__action-bar"])}),N&&t(Q,{node:N,className:l(["quote-management-manage-negotiable-quote__quote-content"])}),s("div",{"data-testid":"quote-shipping-information-container",className:l(["quote-management-manage-negotiable-quote__shipping-information-container"]),children:[q&&t(Q,{node:q,className:l(["quote-management-manage-negotiable-quote__shipping-information-title"])}),u&&t(Q,{node:u,className:l(["quote-management-manage-negotiable-quote__shipping-information"])})]}),s("div",{"data-testid":"quote-comments-container",className:l(["quote-management-manage-negotiable-quote__quote-comments-container"]),children:[f&&t(Q,{node:f,className:l(["quote-management-manage-negotiable-quote__quote-comments-title"])}),C&&t(Q,{node:C,className:l(["quote-management-manage-negotiable-quote__quote-comments"])})]}),t(Q,{node:v,className:l(["quote-management-manage-negotiable-quote__footer"])})]}),Qa=()=>s(ma,{"data-testid":"manage-negotiable-quote-skeleton",children:[t(F,{variant:"heading",fullWidth:!0,size:"large"}),t(F,{variant:"row",fullWidth:!1,size:"small"}),t(F,{variant:"row",fullWidth:!1,size:"small"}),t(F,{variant:"row",fullWidth:!0}),t(F,{variant:"row",fullWidth:!0,size:"xlarge",lines:2}),t(F,{variant:"row",fullWidth:!1,size:"small"})]}),_a=({className:b,tabs:a,tabsContent:m,defaultActiveTab:h,..._})=>{const[e,d]=c(h||Array.from(a.keys())[0]),N=u=>{d(u)},q=M(()=>m.get(e),[e,m]);return s("div",{..._,className:l(["quote-management-tabbed-content",b]),children:[a&&t("div",{"data-testid":"tabbed-content-tabs",className:l(["quote-management-tabbed-content__tabs"]),children:Array.from(a.entries()).map(([u,f])=>t("button",{className:l(["quote-management-tabbed-content__tab",["quote-management-tabbed-content__tab--active",u===e]]),onClick:()=>N(u),children:f},u))}),q&&t("div",{className:l(["quote-management-tabbed-content__active-tab-content"]),children:t(Q,{node:q})})]})},Sa=({className:b,open:a,quoteName:m,renameReason:h,quoteNameError:_,errorBanner:e,successBanner:d,showCloseButton:N=!0,onQuoteNameChange:q,onRenameReasonChange:u,onSave:f,onClose:C})=>{const v=Re({title:"NegotiableQuote.Manage.rename.title",quoteNameLabel:"NegotiableQuote.Manage.rename.quoteNameLabel",reasonLabel:"NegotiableQuote.Manage.rename.reasonLabel",renameButton:"NegotiableQuote.Manage.rename.renameButton",cancelButton:"NegotiableQuote.Manage.rename.cancelButton"});return a?s(la,{open:a,size:"medium",title:t(Le,{children:v.title}),onClose:C,clickToDismiss:!0,escapeToDismiss:!0,showCloseButton:N,className:l(["quote-management-rename-quote-modal",b]),"data-testid":"rename-quote-modal",children:[e&&t("div",{className:l(["quote-management-rename-quote-modal__error-banner"]),"data-testid":"rename-quote-modal-error-banner",children:e}),d&&t("div",{className:l(["quote-management-rename-quote-modal__success-banner"]),"data-testid":"rename-quote-modal-success-banner",children:d}),s("div",{className:l(["quote-management-rename-quote-modal__content"]),children:[s("div",{children:[t(ca,{name:"quoteName",type:"text",value:m,onInput:I=>q(I.target.value),floatingLabel:v.quoteNameLabel,required:!0,error:!!_}),_&&t("span",{className:l(["quote-management-rename-quote-modal__error-text"]),children:_})]}),t(xe,{name:"quoteComment",value:h,onInput:I=>u(I.target.value),label:v.reasonLabel,rows:3})]}),s("div",{className:l(["quote-management-rename-quote-modal__actions"]),children:[t($,{variant:"secondary",size:"medium",onClick:C,className:l(["quote-management-rename-quote-modal__cancel-button"]),children:v.cancelButton}),t($,{variant:"primary",size:"medium",onClick:f,className:l(["quote-management-rename-quote-modal__save-button"]),children:v.renameButton})]})]}):null},Za=({onActionsDropdownChange:b,slots:a,onActionsButtonClick:m,onSendForReview:h,..._})=>{const[e,d]=c(void 0),[N,q]=c(!0),[u,f]=c(!1),[C,v]=c(null),[I,U]=c(!1),[T,ce]=c(""),[H,X]=c(!1),[se,J]=c(!1),[de,K]=c(!1),[ue,R]=c(""),[ge,k]=c(""),[be,Y]=c(!1),[P,z]=c(""),[Z,W]=c(""),[A,B]=c(""),[Ee,E]=c(""),[ee,O]=c(""),[ae,fe]=c(new Set),pe=ie(ae),te=ie(null),[D,ne]=c(""),V=ie(D),[Me,he]=c(!1);y(()=>{pe.current=ae},[ae]),y(()=>{V.current=D},[D]);const o=Re({createdLabel:"NegotiableQuote.Manage.createdLabel",salesRepLabel:"NegotiableQuote.Manage.salesRepLabel",expiresLabel:"NegotiableQuote.Manage.expiresLabel",actionsLabel:"NegotiableQuote.Manage.actionsLabel",remove:"NegotiableQuote.Manage.actions.remove",close:"NegotiableQuote.Manage.actionButtons.close",delete:"NegotiableQuote.Manage.actionButtons.delete",print:"NegotiableQuote.Manage.actionButtons.print",createTemplate:"NegotiableQuote.Manage.actionButtons.createTemplate",createCopy:"NegotiableQuote.Manage.actionButtons.createCopy",shippingInformationTitle:"NegotiableQuote.Manage.shippingInformation.title",quoteCommentsTitle:"NegotiableQuote.Manage.quoteComments.title",quoteCommentsPlaceholder:"NegotiableQuote.Manage.quoteComments.placeholder",sendForReview:"NegotiableQuote.Manage.actionButtons.sendForReview",bannerTitle:"NegotiableQuote.Manage.bannerTitle",statusSubmitted:"NegotiableQuote.Manage.bannerStatusMessages.submitted",statusPending:"NegotiableQuote.Manage.bannerStatusMessages.pending",statusExpired:"NegotiableQuote.Manage.bannerStatusMessages.expired",errorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",closeSuccessMessage:"NegotiableQuote.Manage.confirmationModal.close.successDescription",closeModalTitle:"NegotiableQuote.Manage.actionButtons.close",closeModalMessage:"NegotiableQuote.Manage.confirmationModal.close.message",closeModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",closeModalConfirm:"NegotiableQuote.Manage.confirmationModal.close.confirm",closeModalConfirmLoading:"NegotiableQuote.Manage.confirmationModal.close.confirmLoading",closeModalSuccessHeading:"NegotiableQuote.Manage.confirmationModal.close.successHeading",renameErrorHeading:"NegotiableQuote.Manage.rename.errorHeading",renameQuoteNameRequired:"NegotiableQuote.Manage.rename.quoteNameRequired",renameErrorDefault:"NegotiableQuote.Manage.rename.errorDefault",renameSuccessHeading:"NegotiableQuote.Manage.rename.successHeading",renameSuccessMessage:"NegotiableQuote.Manage.rename.successMessage",confirmationModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",confirmationModalDeleteTitle:"NegotiableQuote.Manage.confirmationModal.delete.title",confirmationModalDeleteMessage:"NegotiableQuote.Manage.confirmationModal.delete.message",confirmationModalDeleteConfirm:"NegotiableQuote.Manage.confirmationModal.delete.confirm",confirmationModalDeleteErrorHeading:"NegotiableQuote.Manage.confirmationModal.delete.errorHeading",confirmationModalDeleteErrorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",noItemsSelectedModalTitle:"NegotiableQuote.Manage.confirmationModal.noItemsSelected.title",noItemsSelectedModalMessage:"NegotiableQuote.Manage.confirmationModal.noItemsSelected.message",noItemsSelectedModalConfirm:"NegotiableQuote.Manage.confirmationModal.noItemsSelected.confirm",confirmationModalDeleteSuccessHeading:"NegotiableQuote.Manage.confirmationModal.delete.successHeading",confirmationModalDeleteSuccessDescription:"NegotiableQuote.Manage.confirmationModal.delete.successDescription"});y(()=>{const n=x.on("quote-management/quote-data",r=>{const{quote:i}=r;i&&(d(i),q(!1))},{eager:!0});return()=>n==null?void 0:n.off()},[]),y(()=>{const n=x.on("quote-management/shipping-address-set",r=>{const{quote:i}=r;i&&d(i)},{eager:!0});return()=>n==null?void 0:n.off()},[]),y(()=>{const n=x.on("quote-management/quote-sent-for-review",r=>{const{quote:i}=r;d(i),ce(""),X(!1)},{eager:!0});return()=>n==null?void 0:n.off()},[]),y(()=>{const n=x.on("quote-management/quote-items-removed",r=>{const{quote:i,removedItemUids:S}=r;i&&d(i),S&&fe(w=>{const Te=new Set(w);return S.forEach(oa=>Te.delete(oa)),Te})},{eager:!0});return()=>n==null?void 0:n.off()},[]);const Ne=g((n,r)=>{fe(i=>{const S=new Set(i);return r?S.add(n.uid):S.delete(n.uid),S})},[]),qe=g(n=>{const r=n.target.value,i=pe.current;if(r==="remove"){if(ne(r),V.current=r,i.size===0)he(!0);else if(e&&te.current){const S=e.items.filter(w=>i.has(w.uid));te.current(S)}}b==null||b(n)},[b,e]),ve=g(()=>{he(!1),ne(""),V.current=""},[]);y(()=>{const n=x.on("quote-management/negotiable-quote-closed",async r=>{K(!1),k(""),R(o.closeSuccessMessage),d(i=>{var S;return i!=null&&i.uid&&((S=r.closedQuoteUids)!=null&&S.includes(i.uid))&&ga(i.uid).then(w=>{d(w)}).catch(w=>{console.warn("Failed to refresh quote data after closure:",w)}),i}),setTimeout(()=>{J(!1),R("")},2e3)},{eager:!0});return()=>n==null?void 0:n.off()},[o.closeSuccessMessage]),y(()=>{const n=x.on("quote-management/negotiable-quote-close-error",r=>{console.log("Close error event received:",r),K(!1),R("");const i=r.error.message||o.errorFallback;k(i)},{eager:!0});return()=>n==null?void 0:n.off()},[o.errorFallback]),y(()=>{const n=x.on("quote-management/quote-renamed",r=>{const{quote:i}=r;d(i),B(""),E(""),O(o.renameSuccessMessage),setTimeout(()=>{Y(!1),z(""),W(""),O("")},2e3)},{eager:!0});return()=>n==null?void 0:n.off()},[o.renameSuccessMessage]);const Qe=g(()=>{z((e==null?void 0:e.name)||""),W(""),B(""),E(""),O(""),Y(!0)},[e]),De=g(()=>{Y(!1),z(""),W(""),B(""),E(""),O("")},[]),Fe=g(n=>{z(n),n.trim()&&E("")},[]),He=g(async()=>{if(!P.trim()){E(o.renameQuoteNameRequired);return}try{B(""),E(""),await ba({quoteUid:e.uid,quoteName:P,quoteComment:Z.trim()||void 0})}catch(n){B(n.message||o.renameErrorDefault)}},[e,P,Z,o.renameQuoteNameRequired,o.renameErrorDefault]),ke=M(()=>{const n=e&&(e.lockedForEditing===!0||e.lockedForEditing===void 0&&(e.status==="SUBMITTED"||e.status==="PENDING"||e.status==="ORDERED"||e.status==="CLOSED"));return t(p,{name:"QuoteName",slot:a==null?void 0:a.QuoteName,context:{quoteName:e==null?void 0:e.name,quoteData:e},children:s("div",{className:"quote-management-manage-negotiable-quote__quote-name-wrapper",children:[t("h1",{"data-testid":"quote-name",className:"quote-management-manage-negotiable-quote__quote-name-title",children:e==null?void 0:e.name}),t("button",{onClick:Qe,disabled:n,"data-testid":"rename-quote-button",className:"quote-management-manage-negotiable-quote__rename-button","aria-label":"Rename quote",children:t(Na,{})})]})})},[a==null?void 0:a.QuoteName,e,Qe]),Be=M(()=>t(p,{name:"QuoteStatus",slot:a==null?void 0:a.QuoteStatus,context:{quoteStatus:e==null?void 0:e.status,quoteData:e},children:t("div",{"data-testid":"quote-status",children:e==null?void 0:e.status})}),[a==null?void 0:a.QuoteStatus,e]),_e=g(n=>{switch(n){case"SUBMITTED":return o.statusSubmitted;case"PENDING":return o.statusPending;case"EXPIRED":return o.statusExpired;default:return null}},[o])(e==null?void 0:e.status),Se=_e&&t(L,{type:"warning",variant:"secondary",icon:t(G,{}),heading:o.bannerTitle,description:_e}),Ue=Se&&t(p,{name:"Banner","data-testid":"banner",slot:a==null?void 0:a.Banner,context:{quoteData:e},children:Se}),Pe=M(()=>{if(!e)return null;const n=ra()||"en-US",r=new Intl.DateTimeFormat(n,{year:"numeric",month:"long",day:"numeric"});let i;try{i=r.format(new Date(e.expirationDate))}catch{i=e.expirationDate}return s(p,{name:"Details",slot:a==null?void 0:a.Details,context:{quoteData:e},children:[s("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"created-label",children:o.createdLabel}),s("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"created-value",children:[r.format(new Date(e.createdAt))," (",e.buyer.firstname," ",e.buyer.lastname,")"]})]}),s("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"sales-rep-label",children:o.salesRepLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"sales-rep-value",children:e.salesRepName})]}),s("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"expires-label",children:o.expiresLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"expires-value",children:i})]})]})},[a==null?void 0:a.Details,o,e]),Ce=M(()=>[{label:o.close,value:"close",disabled:!(e!=null&&e.canClose)},{label:o.delete,value:"delete",disabled:!(e!=null&&e.canDelete)},{label:o.print,value:"print"},{label:o.createTemplate,value:"createTemplate"},{label:o.createCopy,value:"createCopy"}],[o,e==null?void 0:e.canDelete,e==null?void 0:e.canClose]),ze=M(()=>{const n=r=>{switch(r){case"close":J(!0),k(""),R(""),m==null||m(r);break;case"delete":f(!0),m==null||m(r);break;case"print":m==null||m(r);break;case"createTemplate":m==null||m(r);break;case"createCopy":m==null||m(r);break}};return t(p,{name:"ActionBar",slot:a==null?void 0:a.ActionBar,context:{quoteData:e,actionsBarDropdownValue:D},children:t(qa,{dropdownPlaceholder:o.actionsLabel,dropdownOptions:[{label:o.remove,value:"remove"}],dropdownValue:D,handleDropdownChange:qe,buttons:Ce.map(r=>t($,{variant:"tertiary",onClick:()=>n(r.value),"data-testid":`actions-bar-${r.value}-button`,"data-action":r.value,disabled:r.disabled,children:r.label},r.value))})})},[Ce,o,a==null?void 0:a.ActionBar,e,qe,m,D]),We=M(()=>t(p,{name:"QuoteContent",slot:a==null?void 0:a.QuoteContent,context:{quoteData:e},children:t(_a,{tabs:new Map([["items-quoted","Items Quoted"],["comments","Comments"],["history-log","History Log"]]),tabsContent:new Map([["items-quoted",t(p,{name:"ItemsQuotedTab",slot:a==null?void 0:a.ItemsQuotedTab,context:{quoteData:e},children:t(sa,{quoteData:e,onItemCheckboxChange:Ne,onRemoveItemsRef:n=>{te.current=n},onRemoveModalStateChange:n=>{!n&&V.current==="remove"&&ne("")}})},"items-quoted")],["comments",t(p,{name:"CommentsTab",slot:a==null?void 0:a.CommentsTab,context:{quoteData:e},children:t(ha,{quoteData:e})},"comments")],["history-log",t(p,{name:"HistoryLogTab",slot:a==null?void 0:a.HistoryLogTab,context:{quoteData:e},children:t(ua,{quoteData:e})},"history-log")]])})}),[a==null?void 0:a.QuoteContent,a==null?void 0:a.HistoryLogTab,a==null?void 0:a.CommentsTab,a==null?void 0:a.ItemsQuotedTab,e,Ne]),Oe=M(()=>t(p,{name:"ShippingInformationTitle",slot:a==null?void 0:a.ShippingInformationTitle,context:{quoteData:e},children:t("h2",{children:o.shippingInformationTitle})}),[a==null?void 0:a.ShippingInformationTitle,e,o]),Ve=M(()=>t(p,{name:"ShippingInformation",slot:a==null?void 0:a.ShippingInformation,context:{quoteData:e,loading:N,setLoading:q},children:t(da,{quoteData:e,loading:N,"data-testid":"manage-quote-shipping-address"})}),[a==null?void 0:a.ShippingInformation,e,N,q]),je=M(()=>t(p,{name:"QuoteCommentsTitle",slot:a==null?void 0:a.QuoteCommentsTitle,context:{quoteData:e},children:t("h2",{children:o.quoteCommentsTitle})}),[a==null?void 0:a.QuoteCommentsTitle,o,e]),Ge=M(()=>t(p,{name:"QuoteComments",slot:a==null?void 0:a.QuoteComments,context:{quoteData:e},children:t(xe,{name:"quoteComments",placeholder:o.quoteCommentsPlaceholder,rows:3,value:T,onInput:n=>{ce(n.target.value)},disabled:H})}),[a==null?void 0:a.QuoteComments,o,e,T,H]),$e=g(async()=>{if(e!=null&&e.uid){K(!0),k(""),R("");try{await fa({quoteUids:[e.uid]})}catch(n){console.error("Failed to close quote:",n)}}},[e]),Xe=g(()=>{J(!1),k(""),R("")},[]),ye=g(async()=>{if(h){h({quoteData:e,comment:T.trim()||void 0});return}X(!0);try{await pa({quoteUid:e.uid,comment:T.trim()||void 0})}catch(n){console.error("Failed to send quote for review:",n),X(!1)}},[e,h,T]),Je=M(()=>t(p,{name:"Footer",slot:a==null?void 0:a.Footer,context:{quoteData:e,comment:T,isSubmitting:H},children:t($,{variant:"primary",onClick:ye,"data-testid":"send-for-review-button",disabled:!(e!=null&&e.canSendForReview)||H||!e,children:o.sendForReview})}),[a==null?void 0:a.Footer,o,e,T,H,ye]),Ke=M(()=>A?t(L,{type:"error",variant:"primary",icon:t(G,{color:"var(--color-error)"}),heading:o.renameErrorHeading,description:A}):void 0,[A,o.renameErrorHeading]),Ye=M(()=>ee?t(L,{type:"success",variant:"primary",icon:t(le,{}),heading:o.renameSuccessHeading,description:ee}):void 0,[ee,o.renameSuccessHeading]),oe=g(n=>n.errors&&Array.isArray(n.errors)&&n.errors.length>0?n.errors[0].message||o.confirmationModalDeleteErrorFallback:(n==null?void 0:n.message)||o.confirmationModalDeleteErrorFallback,[o.confirmationModalDeleteErrorFallback]),Ze=g(()=>{f(!1),v(null),U(!1)},[]),Ae=g(async()=>{if(e!=null&&e.uid){v(null),U(!1);try{const{operationResults:n}=await Ma(e.uid),r=n.find(i=>i.__typename==="DeleteNegotiableQuoteOperationFailure");if(r){const i=oe(r);v(i);return}U(!0)}catch(n){const r=oe(n);v(r)}}},[e,oe]),ea=g(()=>{v(null)},[]),aa=g(()=>{U(!1)},[]),ta=C?t(L,{type:"error",variant:"primary",icon:t(G,{}),heading:o.confirmationModalDeleteErrorHeading,description:C,onDismiss:ea,"data-testid":"confirmation-modal-error-banner"}):null,Ie=(I?t(L,{type:"success",variant:"primary",icon:t(le,{}),heading:o.confirmationModalDeleteSuccessHeading,description:o.confirmationModalDeleteSuccessDescription,onDismiss:aa,"data-testid":"confirmation-modal-success-banner"}):null)||ta,na={..._,loading:N,quoteName:ke,quoteStatus:Be,banner:Ue||void 0,details:Pe,actionBar:ze,quoteContent:We,shippingInformationTitle:Oe,shippingInformation:Ve,quoteCommentsTitle:je,quoteComments:Ge,footer:Je};let re=null;return ue?re=t(L,{type:"success",variant:"primary",icon:t(le,{}),heading:o.closeModalSuccessHeading,description:ue,"data-testid":"close-quote-success-banner"}):ge&&(re=t(L,{type:"error",variant:"primary",icon:t(G,{}),heading:o.confirmationModalDeleteErrorHeading,description:ge,"data-testid":"close-quote-error-banner"})),s(Le,{children:[t(va,{...na}),be&&j(t(Sa,{open:be,quoteName:P,renameReason:Z,quoteNameError:Ee,errorBanner:Ke,successBanner:Ye,onQuoteNameChange:Fe,onRenameReasonChange:W,onSave:He,onClose:De}),document.body),u&&j(t(me,{open:u,title:o.confirmationModalDeleteTitle,message:o.confirmationModalDeleteMessage,cancelLabel:o.confirmationModalCancel,confirmLabel:o.confirmationModalDeleteConfirm,onCancel:Ze,onConfirm:Ae,showCloseButton:!Ie,confirmationBanner:Ie}),document.body),se&&j(t(me,{open:se,title:o.closeModalTitle,message:o.closeModalMessage,cancelLabel:o.closeModalCancel,confirmLabel:de?o.closeModalConfirmLoading:o.closeModalConfirm,onCancel:Xe,onConfirm:de?void 0:$e,showCloseButton:!0,confirmationBanner:re,"data-testid":"close-quote-confirmation-modal"}),document.body),Me&&j(t(me,{open:Me,title:o.noItemsSelectedModalTitle,message:o.noItemsSelectedModalMessage,confirmLabel:o.noItemsSelectedModalConfirm,onConfirm:ve,onClose:ve,showCloseButton:!0,"data-testid":"no-items-selected-modal"}),document.body)]})};export{Za as ManageNegotiableQuote,Za as default};
4
4
  //# sourceMappingURL=ManageNegotiableQuote.js.map