@dropins/storefront-quote-management 0.0.1-alpha19 → 0.0.1-alpha21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/acceptQuoteTemplate/acceptQuoteTemplate.d.ts +13 -0
- package/api/acceptQuoteTemplate/graphql/acceptQuoteTemplate.d.ts +10 -0
- package/{containers/QuoteSummaryList → api/acceptQuoteTemplate}/index.d.ts +1 -2
- package/api/addQuoteTemplateLineItemNote/addQuoteTemplateLineItemNote.d.ts +15 -0
- package/api/addQuoteTemplateLineItemNote/graphql/setQuoteTemplateLineItemNote.d.ts +10 -0
- package/api/addQuoteTemplateLineItemNote/index.d.ts +10 -0
- package/api/addQuoteTemplateShippingAddress/addQuoteTemplateShippingAddress.d.ts +37 -0
- package/api/addQuoteTemplateShippingAddress/graphql/setNegotiableQuoteTemplateShippingAddress.d.ts +10 -0
- package/api/addQuoteTemplateShippingAddress/index.d.ts +10 -0
- package/api/cancelQuoteTemplate/cancelQuoteTemplate.d.ts +14 -0
- package/api/cancelQuoteTemplate/graphql/cancelQuoteTemplate.d.ts +10 -0
- package/api/cancelQuoteTemplate/index.d.ts +10 -0
- package/api/closeNegotiableQuote/closeNegotiableQuote.d.ts +31 -0
- package/api/closeNegotiableQuote/graphql/CloseNegotiableQuoteMutation.d.ts +2 -0
- package/api/closeNegotiableQuote/index.d.ts +10 -0
- package/api/createQuoteTemplate/createQuoteTemplate.d.ts +4 -0
- package/api/createQuoteTemplate/graphql/createQuoteTemplate.d.ts +10 -0
- package/api/createQuoteTemplate/index.d.ts +10 -0
- package/api/deleteQuoteTemplate/deleteQuoteTemplate.d.ts +15 -0
- package/api/deleteQuoteTemplate/graphql/deleteQuoteTemplate.d.ts +10 -0
- package/api/deleteQuoteTemplate/index.d.ts +10 -0
- package/api/generateQuoteFromTemplate/generateQuoteFromTemplate.d.ts +15 -0
- package/api/generateQuoteFromTemplate/graphql/generateNegotiableQuoteFromTemplate.d.ts +10 -0
- package/api/generateQuoteFromTemplate/index.d.ts +10 -0
- package/api/getQuoteTemplateData/getQuoteTemplateData.d.ts +4 -0
- package/api/getQuoteTemplateData/graphql/getQuoteTemplateData.d.ts +10 -0
- package/api/getQuoteTemplateData/index.d.ts +10 -0
- package/api/getQuoteTemplates/getQuoteTemplates.d.ts +34 -0
- package/api/getQuoteTemplates/graphql/getQuoteTemplates.d.ts +10 -0
- package/api/getQuoteTemplates/index.d.ts +10 -0
- package/api/graphql/NegotiableQuoteFragment.d.ts +4 -12
- package/api/graphql/NegotiableQuoteTemplateFragment.d.ts +10 -0
- package/api/index.d.ts +15 -1
- package/api/openQuoteTemplate/graphql/openQuoteTemplate.d.ts +10 -0
- package/api/openQuoteTemplate/index.d.ts +10 -0
- package/api/openQuoteTemplate/openQuoteTemplate.d.ts +13 -0
- package/api/removeQuoteTemplateItems/graphql/removeNegotiableQuoteTemplateItems.d.ts +10 -0
- package/api/removeQuoteTemplateItems/index.d.ts +10 -0
- package/api/removeQuoteTemplateItems/removeQuoteTemplateItems.d.ts +14 -0
- package/api/requestNegotiableQuote/graphql/RequestNegotiableQuoteMutation.d.ts +4 -12
- package/api/sendForReview/graphql/SendNegotiableQuoteForReviewMutation.d.ts +4 -12
- package/api/sendQuoteTemplateForReview/graphql/sendQuoteTemplateForReview.d.ts +10 -0
- package/api/sendQuoteTemplateForReview/index.d.ts +10 -0
- package/api/sendQuoteTemplateForReview/sendQuoteTemplateForReview.d.ts +15 -0
- package/api/setShippingAddress/graphql/SetNegotiableQuoteShippingAddressMutation.d.ts +4 -12
- package/api/updateQuantities/graphql/UpdateNegotiableQuoteQuantitiesMutation.d.ts +10 -0
- package/api/{getStoreConfig → updateQuantities}/index.d.ts +1 -1
- package/api/updateQuantities/updateQuantities.d.ts +36 -0
- package/api/updateQuoteTemplateItemQuantities/graphql/updateNegotiableQuoteTemplateQuantities.d.ts +10 -0
- package/api/updateQuoteTemplateItemQuantities/index.d.ts +10 -0
- package/api/updateQuoteTemplateItemQuantities/updateQuoteTemplateItemQuantities.d.ts +20 -0
- package/api.js +306 -32
- package/api.js.map +1 -1
- package/chunks/ItemsQuoted.js +1 -1
- package/chunks/ItemsQuoted.js.map +1 -1
- package/chunks/NegotiableQuoteFragment.js +0 -129
- package/chunks/NegotiableQuoteFragment.js.map +1 -1
- package/chunks/OrderSummaryLine.js +1 -1
- package/chunks/OrderSummaryLine.js.map +1 -1
- package/chunks/fetch-graphql.js +4 -0
- package/chunks/fetch-graphql.js.map +1 -0
- package/chunks/getQuoteTemplates.js +50 -0
- package/chunks/getQuoteTemplates.js.map +1 -0
- package/chunks/negotiableQuotes.js +1 -1
- package/chunks/negotiableQuotes.js.map +1 -1
- package/chunks/renameNegotiableQuote.js +46 -4
- package/chunks/renameNegotiableQuote.js.map +1 -1
- package/chunks/state.js +1 -1
- package/chunks/state.js.map +1 -1
- package/chunks/updateQuantities.js +21 -0
- package/chunks/updateQuantities.js.map +1 -0
- package/chunks/uploadFile.js +1 -1
- package/chunks/uploadFile.js.map +1 -1
- package/components/ProductListTable/ProductListTable.d.ts +1 -0
- package/components/QuoteTemplatesListTable/QuoteTemplatesListTable.d.ts +29 -0
- package/components/QuoteTemplatesListTable/index.d.ts +10 -0
- package/components/index.d.ts +2 -0
- package/containers/ItemsQuoted/ItemsQuoted.d.ts +1 -1
- package/containers/ItemsQuoted.js +1 -1
- package/containers/ManageNegotiableQuote.js +1 -1
- package/containers/ManageNegotiableQuote.js.map +1 -1
- package/containers/OrderSummary.js +1 -1
- package/containers/OrderSummary.js.map +1 -1
- package/containers/OrderSummaryLine.js +1 -1
- package/containers/QuoteTemplatesListTable/QuoteTemplatesListTable.d.ts +70 -0
- package/containers/QuoteTemplatesListTable/index.d.ts +11 -0
- package/containers/QuoteTemplatesListTable.d.ts +3 -0
- package/containers/QuoteTemplatesListTable.js +4 -0
- package/containers/QuoteTemplatesListTable.js.map +1 -0
- package/containers/QuotesListTable.js +1 -1
- package/containers/QuotesListTable.js.map +1 -1
- package/containers/RequestNegotiableQuoteForm.js +1 -1
- package/containers/RequestNegotiableQuoteForm.js.map +1 -1
- package/containers/index.d.ts +3 -3
- package/data/models/__fixtures__/negotiableQuoteModel.d.ts +0 -1
- package/data/models/__fixtures__/negotiableQuoteTemplatesListModel.d.ts +5 -0
- package/data/models/index.d.ts +1 -0
- package/data/models/negotiable-quote-model.d.ts +22 -45
- package/data/models/negotiable-quote-template-model.d.ts +136 -0
- package/data/models/store-config-model.d.ts +2 -5
- package/data/transforms/__fixtures__/negotiableQuoteData.d.ts +2 -216
- package/data/transforms/__fixtures__/negotiableQuoteTemplateData.d.ts +1604 -0
- package/data/transforms/index.d.ts +5 -13
- package/data/transforms/transform-quote-template.d.ts +5 -0
- package/i18n/en_US.json.d.ts +24 -12
- package/package.json +1 -1
- package/render.js +3 -3
- package/render.js.map +1 -1
- package/types/state.types.d.ts +1 -1
- package/api/getStoreConfig/getStoreConfig.d.ts +0 -4
- package/api/getStoreConfig/graphql/StoreConfigQuery.d.ts +0 -10
- package/chunks/ChevronDown.js +0 -4
- package/chunks/ChevronDown.js.map +0 -1
- package/chunks/transform-quote.js +0 -4
- package/chunks/transform-quote.js.map +0 -1
- package/containers/QuoteSummaryList/QuoteSummaryList.d.ts +0 -51
- package/containers/QuoteSummaryList.d.ts +0 -3
- package/containers/QuoteSummaryList.js +0 -4
- package/containers/QuoteSummaryList.js.map +0 -1
- package/data/models/__fixtures__/storeConfigModel.d.ts +0 -5
- package/data/transforms/__fixtures__/storeConfigData.d.ts +0 -31
- package/data/transforms/transform-store-config.d.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renameNegotiableQuote.js","sources":["/@dropins/storefront-quote-management/src/api/deleteQuote/graphql/DeleteQuoteMutation.ts","/@dropins/storefront-quote-management/src/api/deleteQuote/deleteQuote.ts","/@dropins/storefront-quote-management/src/api/sendForReview/graphql/SendNegotiableQuoteForReviewMutation.ts","/@dropins/storefront-quote-management/src/api/sendForReview/sendForReview.ts","/@dropins/storefront-quote-management/src/api/renameNegotiableQuote/graphql/RenameNegotiableQuoteMutation.ts","/@dropins/storefront-quote-management/src/api/renameNegotiableQuote/renameNegotiableQuote.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 DELETE_QUOTE_MUTATION = `\n mutation DELETE_QUOTE_MUTATION($quoteUids: [ID!]!) {\n deleteNegotiableQuotes(\n input: {\n quote_uids: $quoteUids\n }\n ) {\n result_status\n operation_results {\n __typename\n ... on NegotiableQuoteUidOperationSuccess {\n quote_uid\n }\n ... on DeleteNegotiableQuoteOperationFailure {\n quote_uid\n errors {\n __typename\n ... on ErrorInterface {\n message\n }\n ... on NoSuchEntityUidError {\n uid\n message\n }\n ... on NegotiableQuoteInvalidStateError {\n message\n }\n }\n }\n }\n }\n }\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 { fetchGraphQl } from '@/quote-management/api';\nimport { state } from '@/quote-management/lib/state';\nimport { DELETE_QUOTE_MUTATION } from '@/quote-management/api/deleteQuote/graphql/DeleteQuoteMutation';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport interface DeleteQuoteSuccessResult {\n __typename: 'NegotiableQuoteUidOperationSuccess';\n quoteUid: string;\n}\n\nexport interface DeleteQuoteFailureError {\n __typename: string;\n message?: string;\n uid?: string;\n}\n\nexport interface DeleteQuoteFailureResult {\n __typename: 'DeleteNegotiableQuoteOperationFailure';\n quoteUid: string;\n errors: DeleteQuoteFailureError[];\n}\n\nexport interface DeleteQuoteOutput {\n resultStatus: string;\n operationResults: Array<DeleteQuoteSuccessResult | DeleteQuoteFailureResult>;\n}\n\nexport const deleteQuote = async ( quoteUids: string[] | string ): Promise<DeleteQuoteOutput> => {\n if (!state.authenticated) {\n return Promise.reject(new Error('Unauthorized'));\n }\n\n const quoteUidsArray = Array.isArray(quoteUids) ? quoteUids : [quoteUids];\n\n try {\n const response: any = await fetchGraphQl(DELETE_QUOTE_MUTATION, {\n variables: {\n quoteUids: quoteUidsArray,\n },\n });\n\n const { errors } = response || {};\n if (errors && errors.length) {\n const errorMessages = errors.map((e: any) => e?.message).filter(Boolean).join('; ');\n throw new Error(errorMessages || 'Failed to delete negotiable quotes');\n }\n\n const raw = response?.data?.deleteNegotiableQuotes;\n if (!raw) {\n throw new Error('No delete result returned');\n }\n\n const transformed: DeleteQuoteOutput = {\n resultStatus: raw.result_status,\n operationResults: (raw.operation_results || []).map((result: any) => {\n const typename = result?.__typename;\n if (typename === 'NegotiableQuoteUidOperationSuccess') {\n const success: DeleteQuoteSuccessResult = {\n __typename: 'NegotiableQuoteUidOperationSuccess',\n quoteUid: result?.quote_uid,\n };\n return success;\n }\n const failure: DeleteQuoteFailureResult = {\n __typename: 'DeleteNegotiableQuoteOperationFailure',\n quoteUid: result?.quote_uid,\n errors: (result?.errors || []).map((err: any) => ({\n __typename: err?.__typename,\n message: err?.message,\n uid: err?.uid,\n })),\n };\n return failure;\n }),\n };\n\n // Emit event with successfully deleted quote UIDs\n const deletedUids = transformed.operationResults\n .filter((res) => res.__typename === 'NegotiableQuoteUidOperationSuccess')\n .map((res) => (res as DeleteQuoteSuccessResult).quoteUid);\n\n if (deletedUids.length > 0) {\n events.emit('quote-management/negotiable-quote-deleted', {\n deletedQuoteUids: deletedUids,\n resultStatus: transformed.resultStatus,\n });\n }\n\n return transformed;\n } catch (error) {\n // Emit error event for integration layer\n events.emit('quote-management/negotiable-quote-delete-error', {\n error: error instanceof Error ? error : new Error(String(error)),\n attemptedQuoteUids: quoteUidsArray,\n });\n return Promise.reject(error);\n }\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { NEGOTIABLE_QUOTE_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteFragment';\n\nexport const SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION = `\n mutation SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION(\n $quoteUid: ID!\n $comment: NegotiableQuoteCommentInput\n ) {\n sendNegotiableQuoteForReview(\n input: {\n quote_uid: $quoteUid\n comment: $comment\n }\n ) {\n quote {\n ...NegotiableQuoteFragment\n }\n }\n }\n ${NEGOTIABLE_QUOTE_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 { events } from '@adobe-commerce/event-bus';\nimport { SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION } from './graphql/SendNegotiableQuoteForReviewMutation';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { transformQuote } from '@/quote-management/data/transforms';\n\nexport interface SendForReviewInput {\n quoteUid: string;\n comment?: string;\n}\n\nexport const sendForReview = async (\n input: SendForReviewInput\n): Promise<NegotiableQuoteModel | null> => {\n const { quoteUid, comment } = input;\n\n if (!quoteUid) {\n throw new Error('Quote UID is required');\n }\n\n // Build the comment object only if a comment is provided\n const commentInput = comment ? { comment } : null;\n\n return fetchGraphQl(SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION, {\n variables: {\n quoteUid,\n comment: commentInput,\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 send quote for review: ${errorMessages}`);\n }\n\n // Transform the quote data\n const quoteData = transformQuote(\n response.data?.sendNegotiableQuoteForReview?.quote\n );\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/quote-sent-for-review', {\n quote: quoteData,\n input: { quoteUid, comment },\n });\n\n return quoteData;\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 { NEGOTIABLE_QUOTE_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteFragment';\n\nexport const RENAME_NEGOTIABLE_QUOTE_MUTATION = `\n mutation renameNegotiableQuote($input: RenameNegotiableQuoteInput!) {\n renameNegotiableQuote(input: $input) {\n quote {\n ...NegotiableQuoteFragment\n }\n }\n }\n ${NEGOTIABLE_QUOTE_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 { events } from '@adobe-commerce/event-bus';\nimport { RENAME_NEGOTIABLE_QUOTE_MUTATION } from './graphql/RenameNegotiableQuoteMutation';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { transformQuote } from '@/quote-management/data/transforms';\n\nexport interface RenameNegotiableQuoteInput {\n quoteUid: string;\n quoteName: string;\n quoteComment?: string;\n}\n\nexport const renameNegotiableQuote = async (\n input: RenameNegotiableQuoteInput\n): Promise<NegotiableQuoteModel | null> => {\n const { quoteUid, quoteName, quoteComment } = input;\n\n if (!quoteUid) {\n throw new Error('Quote UID is required');\n }\n\n if (!quoteName) {\n throw new Error('Quote name is required');\n }\n\n // Backend requires quote_comment to be present (even if empty string)\n const mutationInput = {\n quote_uid: quoteUid,\n quote_name: quoteName,\n quote_comment: quoteComment || '', // Always include, use empty string if not provided\n };\n\n return fetchGraphQl(RENAME_NEGOTIABLE_QUOTE_MUTATION, {\n variables: {\n input: mutationInput,\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 rename quote: ${errorMessages}`);\n }\n\n // Transform the quote data\n const quoteData = transformQuote(\n response.data?.renameNegotiableQuote?.quote\n );\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/quote-renamed', {\n quote: quoteData,\n input: { quoteUid, quoteName, quoteComment },\n });\n\n return quoteData;\n });\n};\n"],"names":["DELETE_QUOTE_MUTATION","deleteQuote","quoteUids","state","quoteUidsArray","response","fetchGraphQl","errors","errorMessages","e","raw","_a","transformed","result","err","deletedUids","res","events","error","SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION","NEGOTIABLE_QUOTE_FRAGMENT","sendForReview","input","quoteUid","comment","quoteData","transformQuote","_b","RENAME_NEGOTIABLE_QUOTE_MUTATION","renameNegotiableQuote","quoteName","quoteComment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renameNegotiableQuote.js","sources":["/@dropins/storefront-quote-management/src/api/getQuoteData/graphql/QuoteDataQuery.ts","/@dropins/storefront-quote-management/src/api/getQuoteData/getQuoteData.ts","/@dropins/storefront-quote-management/src/api/deleteQuote/graphql/DeleteQuoteMutation.ts","/@dropins/storefront-quote-management/src/api/deleteQuote/deleteQuote.ts","/@dropins/storefront-quote-management/src/api/sendForReview/graphql/SendNegotiableQuoteForReviewMutation.ts","/@dropins/storefront-quote-management/src/api/sendForReview/sendForReview.ts","/@dropins/storefront-quote-management/src/api/closeNegotiableQuote/graphql/CloseNegotiableQuoteMutation.ts","/@dropins/storefront-quote-management/src/api/closeNegotiableQuote/closeNegotiableQuote.ts","/@dropins/storefront-quote-management/src/api/renameNegotiableQuote/graphql/RenameNegotiableQuoteMutation.ts","/@dropins/storefront-quote-management/src/api/renameNegotiableQuote/renameNegotiableQuote.ts"],"sourcesContent":["import { NEGOTIABLE_QUOTE_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteFragment';\n\nexport const QUOTE_DATA_QUERY = `\n query QUOTE_DATA_QUERY(\n $quoteId: ID!\n ) {\n negotiableQuote(\n uid: $quoteId\n ) {\n ...NegotiableQuoteFragment\n }\n }\n\n ${NEGOTIABLE_QUOTE_FRAGMENT}\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 { QUOTE_DATA_QUERY } from './graphql/QuoteDataQuery';\nimport { transformQuote } from '@/quote-management/data/transforms';\nimport { state } from '@/quote-management/lib/state';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const getQuoteData = async (quoteId: string) => { \n if (!state.authenticated) {\n return Promise.reject(new Error('Unauthorized'));\n }\n\n if (!state.permissions.editQuote) {\n return Promise.reject(new Error('Unauthorized'));\n }\n\n try {\n const results: any = await fetchGraphQl(QUOTE_DATA_QUERY, {\n variables: {\n quoteId\n }\n });\n\n const transformedQuote = transformQuote(results?.data?.negotiableQuote);\n\n if (!transformedQuote) {\n throw new Error('Failed to transform quote data');\n }\n\n events.emit('quote-management/quote-data', {\n quote: transformedQuote,\n permissions: state.permissions,\n });\n \n return transformedQuote;\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\nexport const DELETE_QUOTE_MUTATION = `\n mutation DELETE_QUOTE_MUTATION($quoteUids: [ID!]!) {\n deleteNegotiableQuotes(\n input: {\n quote_uids: $quoteUids\n }\n ) {\n result_status\n operation_results {\n __typename\n ... on NegotiableQuoteUidOperationSuccess {\n quote_uid\n }\n ... on DeleteNegotiableQuoteOperationFailure {\n quote_uid\n errors {\n __typename\n ... on ErrorInterface {\n message\n }\n ... on NoSuchEntityUidError {\n uid\n message\n }\n ... on NegotiableQuoteInvalidStateError {\n message\n }\n }\n }\n }\n }\n }\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 { fetchGraphQl } from '@/quote-management/api';\nimport { state } from '@/quote-management/lib/state';\nimport { DELETE_QUOTE_MUTATION } from '@/quote-management/api/deleteQuote/graphql/DeleteQuoteMutation';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport interface DeleteQuoteSuccessResult {\n __typename: 'NegotiableQuoteUidOperationSuccess';\n quoteUid: string;\n}\n\nexport interface DeleteQuoteFailureError {\n __typename: string;\n message?: string;\n uid?: string;\n}\n\nexport interface DeleteQuoteFailureResult {\n __typename: 'DeleteNegotiableQuoteOperationFailure';\n quoteUid: string;\n errors: DeleteQuoteFailureError[];\n}\n\nexport interface DeleteQuoteOutput {\n resultStatus: string;\n operationResults: Array<DeleteQuoteSuccessResult | DeleteQuoteFailureResult>;\n}\n\nexport const deleteQuote = async ( quoteUids: string[] | string ): Promise<DeleteQuoteOutput> => {\n if (!state.authenticated) {\n return Promise.reject(new Error('Unauthorized'));\n }\n\n const quoteUidsArray = Array.isArray(quoteUids) ? quoteUids : [quoteUids];\n\n try {\n const response: any = await fetchGraphQl(DELETE_QUOTE_MUTATION, {\n variables: {\n quoteUids: quoteUidsArray,\n },\n });\n\n const { errors } = response || {};\n if (errors && errors.length) {\n const errorMessages = errors.map((e: any) => e?.message).filter(Boolean).join('; ');\n throw new Error(errorMessages || 'Failed to delete negotiable quotes');\n }\n\n const raw = response?.data?.deleteNegotiableQuotes;\n if (!raw) {\n throw new Error('No delete result returned');\n }\n\n const transformed: DeleteQuoteOutput = {\n resultStatus: raw.result_status,\n operationResults: (raw.operation_results || []).map((result: any) => {\n const typename = result?.__typename;\n if (typename === 'NegotiableQuoteUidOperationSuccess') {\n const success: DeleteQuoteSuccessResult = {\n __typename: 'NegotiableQuoteUidOperationSuccess',\n quoteUid: result?.quote_uid,\n };\n return success;\n }\n const failure: DeleteQuoteFailureResult = {\n __typename: 'DeleteNegotiableQuoteOperationFailure',\n quoteUid: result?.quote_uid,\n errors: (result?.errors || []).map((err: any) => ({\n __typename: err?.__typename,\n message: err?.message,\n uid: err?.uid,\n })),\n };\n return failure;\n }),\n };\n\n // Emit event with successfully deleted quote UIDs\n const deletedUids = transformed.operationResults\n .filter((res) => res.__typename === 'NegotiableQuoteUidOperationSuccess')\n .map((res) => (res as DeleteQuoteSuccessResult).quoteUid);\n\n if (deletedUids.length > 0) {\n events.emit('quote-management/negotiable-quote-deleted', {\n deletedQuoteUids: deletedUids,\n resultStatus: transformed.resultStatus,\n });\n }\n\n return transformed;\n } catch (error) {\n // Emit error event for integration layer\n events.emit('quote-management/negotiable-quote-delete-error', {\n error: error instanceof Error ? error : new Error(String(error)),\n attemptedQuoteUids: quoteUidsArray,\n });\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_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteFragment';\n\nexport const SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION = `\n mutation SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION(\n $quoteUid: ID!\n $comment: NegotiableQuoteCommentInput\n ) {\n sendNegotiableQuoteForReview(\n input: {\n quote_uid: $quoteUid\n comment: $comment\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 { SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION } from './graphql/SendNegotiableQuoteForReviewMutation';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { transformQuote } from '@/quote-management/data/transforms';\n\nexport interface SendForReviewInput {\n quoteUid: string;\n comment?: string;\n}\n\nexport const sendForReview = async (\n input: SendForReviewInput\n): Promise<NegotiableQuoteModel | null> => {\n const { quoteUid, comment } = input;\n\n if (!quoteUid) {\n throw new Error('Quote UID is required');\n }\n\n // Build the comment object only if a comment is provided\n const commentInput = comment ? { comment } : null;\n\n return fetchGraphQl(SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION, {\n variables: {\n quoteUid,\n comment: commentInput,\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 send quote for review: ${errorMessages}`);\n }\n\n // Transform the quote data\n const quoteData = transformQuote(\n response.data?.sendNegotiableQuoteForReview?.quote\n );\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/quote-sent-for-review', {\n quote: quoteData,\n input: { quoteUid, comment },\n });\n\n return quoteData;\n });\n};\n\n","export const CLOSE_NEGOTIABLE_QUOTE_MUTATION = `\n mutation CLOSE_NEGOTIABLE_QUOTE_MUTATION(\n $quoteUids: [ID!]!\n ) {\n closeNegotiableQuotes(input: { quote_uids: $quoteUids }) {\n result_status\n operation_results {\n ... on NegotiableQuoteUidOperationSuccess {\n __typename\n quote_uid\n }\n ... on CloseNegotiableQuoteOperationFailure {\n __typename\n quote_uid\n errors {\n __typename\n ... on ErrorInterface {\n message\n }\n ... on NoSuchEntityUidError {\n uid\n }\n ... on NegotiableQuoteInvalidStateError {\n message\n }\n }\n }\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 { fetchGraphQl } from '@/quote-management/api';\nimport { state } from '@/quote-management/lib/state';\nimport { events } from '@adobe-commerce/event-bus';\nimport { CLOSE_NEGOTIABLE_QUOTE_MUTATION } from './graphql/CloseNegotiableQuoteMutation';\n\nexport interface CloseNegotiableQuoteInput {\n quoteUids: string[];\n}\n\nexport interface CloseNegotiableQuoteSuccessResult {\n __typename: 'NegotiableQuoteUidOperationSuccess';\n quoteUid: string;\n}\n\nexport interface CloseNegotiableQuoteFailureError {\n __typename: string;\n message?: string;\n uid?: string;\n}\n\nexport interface CloseNegotiableQuoteFailureResult {\n __typename: 'CloseNegotiableQuoteOperationFailure';\n quoteUid: string;\n errors: CloseNegotiableQuoteFailureError[];\n}\n\nexport interface CloseNegotiableQuoteResult {\n resultStatus: string;\n operationResults: Array<CloseNegotiableQuoteSuccessResult | CloseNegotiableQuoteFailureResult>;\n}\n\nexport const closeNegotiableQuote = async (input: CloseNegotiableQuoteInput): Promise<CloseNegotiableQuoteResult> => { \n if (!state.authenticated) {\n return Promise.reject(new Error('Unauthorized'));\n }\n\n const { quoteUids } = input;\n\n if (!quoteUids || quoteUids.length === 0) {\n throw new Error('Quote UIDs are required');\n }\n\n try {\n const response: any = await fetchGraphQl(CLOSE_NEGOTIABLE_QUOTE_MUTATION, {\n variables: {\n quoteUids,\n },\n });\n\n const { errors } = response || {};\n if (errors && errors.length) {\n const errorMessages = errors\n .map((e: any) => e?.message)\n .filter(Boolean)\n .join('; ');\n throw new Error(errorMessages || 'Failed to close negotiable quotes');\n }\n\n const raw = response?.data?.closeNegotiableQuotes;\n if (!raw) {\n throw new Error('No close result returned');\n }\n\n const transformed: CloseNegotiableQuoteResult = {\n resultStatus: raw.result_status,\n operationResults: (raw.operation_results || []).map((result: any) => {\n const typename = result?.__typename;\n if (typename === 'NegotiableQuoteUidOperationSuccess') {\n const success: CloseNegotiableQuoteSuccessResult = {\n __typename: 'NegotiableQuoteUidOperationSuccess',\n quoteUid: result?.quote_uid,\n };\n return success;\n }\n const failure: CloseNegotiableQuoteFailureResult = {\n __typename: 'CloseNegotiableQuoteOperationFailure',\n quoteUid: result?.quote_uid,\n errors: (result?.errors || []).map((err: any) => ({\n __typename: err?.__typename,\n message: err?.message,\n uid: err?.uid,\n })),\n };\n return failure;\n }),\n };\n\n // Check for operation failures\n const failures = transformed.operationResults\n .filter(\n (res) => res.__typename === 'CloseNegotiableQuoteOperationFailure'\n )\n .map((res) => res as CloseNegotiableQuoteFailureResult);\n\n if (failures.length > 0) {\n // Create error message from failures\n const failureMessages = failures\n .map((failure) => {\n if (failure.errors && failure.errors.length > 0) {\n return failure.errors\n .map(\n (err) =>\n err.message || `Failed to close quote ${failure.quoteUid}`\n )\n .join(', ');\n }\n return `Failed to close quote ${failure.quoteUid}`;\n })\n .join('; ');\n\n throw new Error(failureMessages);\n }\n\n // Emit success event with closed quote UIDs\n const closedUids = transformed.operationResults\n .filter((res) => res.__typename === 'NegotiableQuoteUidOperationSuccess')\n .map((res) => (res as CloseNegotiableQuoteSuccessResult).quoteUid);\n\n if (closedUids.length > 0) {\n events.emit('quote-management/negotiable-quote-closed', {\n closedQuoteUids: closedUids,\n resultStatus: transformed.resultStatus,\n });\n }\n\n return transformed;\n } catch (error) {\n // Emit error event for integration layer\n events.emit('quote-management/negotiable-quote-close-error', {\n error: error instanceof Error ? error : new Error(String(error)),\n attemptedQuoteUids: quoteUids,\n });\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_FRAGMENT } from '@/quote-management/api/graphql/NegotiableQuoteFragment';\n\nexport const RENAME_NEGOTIABLE_QUOTE_MUTATION = `\n mutation renameNegotiableQuote($input: RenameNegotiableQuoteInput!) {\n renameNegotiableQuote(input: $input) {\n quote {\n ...NegotiableQuoteFragment\n }\n }\n }\n ${NEGOTIABLE_QUOTE_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 { events } from '@adobe-commerce/event-bus';\nimport { RENAME_NEGOTIABLE_QUOTE_MUTATION } from './graphql/RenameNegotiableQuoteMutation';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { transformQuote } from '@/quote-management/data/transforms';\n\nexport interface RenameNegotiableQuoteInput {\n quoteUid: string;\n quoteName: string;\n quoteComment?: string;\n}\n\nexport const renameNegotiableQuote = async (\n input: RenameNegotiableQuoteInput\n): Promise<NegotiableQuoteModel | null> => {\n const { quoteUid, quoteName, quoteComment } = input;\n\n if (!quoteUid) {\n throw new Error('Quote UID is required');\n }\n\n if (!quoteName) {\n throw new Error('Quote name is required');\n }\n\n // Backend requires quote_comment to be present (even if empty string)\n const mutationInput = {\n quote_uid: quoteUid,\n quote_name: quoteName,\n quote_comment: quoteComment || '', // Always include, use empty string if not provided\n };\n\n return fetchGraphQl(RENAME_NEGOTIABLE_QUOTE_MUTATION, {\n variables: {\n input: mutationInput,\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 rename quote: ${errorMessages}`);\n }\n\n // Transform the quote data\n const quoteData = transformQuote(\n response.data?.renameNegotiableQuote?.quote\n );\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/quote-renamed', {\n quote: quoteData,\n input: { quoteUid, quoteName, quoteComment },\n });\n\n return quoteData;\n });\n};\n"],"names":["QUOTE_DATA_QUERY","NEGOTIABLE_QUOTE_FRAGMENT","getQuoteData","quoteId","state","results","fetchGraphQl","transformedQuote","transformQuote","_a","events","error","DELETE_QUOTE_MUTATION","deleteQuote","quoteUids","quoteUidsArray","response","errors","errorMessages","raw","transformed","result","err","deletedUids","res","SEND_NEGOTIABLE_QUOTE_FOR_REVIEW_MUTATION","sendForReview","input","quoteUid","comment","quoteData","_b","CLOSE_NEGOTIABLE_QUOTE_MUTATION","closeNegotiableQuote","e","failures","failureMessages","failure","closedUids","RENAME_NEGOTIABLE_QUOTE_MUTATION","renameNegotiableQuote","quoteName","quoteComment"],"mappings":"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"}
|
package/chunks/state.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
var
|
|
3
|
+
var t=(e=>(e[e.TAX_INCLUDED=1]="TAX_INCLUDED",e[e.TAX_EXCLUDED=2]="TAX_EXCLUDED",e[e.TAX_INCLUDED_AND_EXCLUDED=3]="TAX_INCLUDED_AND_EXCLUDED",e))(t||{});const E={requestQuote:!1,editQuote:!1,deleteQuote:!1,checkoutQuote:!1},r={quoteDisplaySettings:{zeroTax:!1,subtotal:t.TAX_INCLUDED,price:t.TAX_INCLUDED,shipping:t.TAX_INCLUDED,fullSummary:!1,grandTotal:!0}},a={authenticated:!1,permissions:E,config:r},_=new Proxy(a,{get:(e,D)=>e[D],set:(e,D,s)=>(e[D]=s,!0)});export{E as D,t as Q,_ as s};
|
|
4
4
|
//# sourceMappingURL=state.js.map
|
package/chunks/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sources":["/@dropins/storefront-quote-management/src/data/models/store-config-model.ts","/@dropins/storefront-quote-management/src/lib/state.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 enum QuoteDisplayAmount {\n
|
|
1
|
+
{"version":3,"file":"state.js","sources":["/@dropins/storefront-quote-management/src/data/models/store-config-model.ts","/@dropins/storefront-quote-management/src/lib/state.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 enum QuoteDisplayAmount {\n TAX_INCLUDED = 1,\n TAX_EXCLUDED = 2,\n TAX_INCLUDED_AND_EXCLUDED = 3,\n}\n\nexport interface StoreConfigModel {\n quoteDisplaySettings: {\n zeroTax: boolean;\n subtotal: QuoteDisplayAmount;\n price: QuoteDisplayAmount;\n shipping: QuoteDisplayAmount;\n fullSummary: boolean;\n grandTotal: boolean;\n };\n}\n","/********************************************************************\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport {\n QuoteDisplayAmount,\n StoreConfigModel,\n} from '@/quote-management/data/models';\nimport { State } from '@/quote-management/types/state.types';\n\nexport const DEFAULT_PERMISSIONS = {\n requestQuote: false,\n editQuote: false,\n deleteQuote: false,\n checkoutQuote: false,\n};\n\nexport const DEFAULT_CONFIG: StoreConfigModel = {\n quoteDisplaySettings: {\n zeroTax: false,\n subtotal: QuoteDisplayAmount.TAX_INCLUDED,\n price: QuoteDisplayAmount.TAX_INCLUDED,\n shipping: QuoteDisplayAmount.TAX_INCLUDED,\n fullSummary: false,\n grandTotal: true,\n },\n};\n\nconst _state: State = {\n authenticated: false,\n permissions: DEFAULT_PERMISSIONS,\n config: DEFAULT_CONFIG,\n};\n\n// Proxy state to make it reactive\nexport const state = new Proxy(_state, {\n get: (target, key) => {\n return target[key as keyof State];\n },\n set: (target, key, value) => {\n target[key as keyof State] = value;\n return true;\n },\n});\n"],"names":["QuoteDisplayAmount","DEFAULT_PERMISSIONS","DEFAULT_CONFIG","_state","state","target","key","value"],"mappings":"AASO,IAAKA,GAAAA,IACVA,EAAAA,EAAA,aAAe,CAAA,EAAf,eACAA,EAAAA,EAAA,aAAe,CAAA,EAAf,eACAA,EAAAA,EAAA,0BAA4B,CAAA,EAA5B,4BAHUA,IAAAA,GAAA,CAAA,CAAA,ECML,MAAMC,EAAsB,CACjC,aAAc,GACd,UAAW,GACX,YAAa,GACb,cAAe,EACjB,EAEaC,EAAmC,CAC9C,qBAAsB,CACpB,QAAS,GACT,SAAUF,EAAmB,aAC7B,MAAOA,EAAmB,aAC1B,SAAUA,EAAmB,aAC7B,YAAa,GACb,WAAY,EAAA,CAEhB,EAEMG,EAAgB,CACpB,cAAe,GACf,YAAaF,EACb,OAAQC,CACV,EAGaE,EAAQ,IAAI,MAAMD,EAAQ,CACrC,IAAK,CAACE,EAAQC,IACLD,EAAOC,CAAkB,EAElC,IAAK,CAACD,EAAQC,EAAKC,KACjBF,EAAOC,CAAkB,EAAIC,EACtB,GAEX,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*! Copyright 2025 Adobe
|
|
2
|
+
All Rights Reserved. */
|
|
3
|
+
import{f as d,t as I}from"./fetch-graphql.js";import{s as E}from"./state.js";import{events as f}from"@dropins/tools/event-bus.js";import{N as p}from"./NegotiableQuoteFragment.js";const U=`
|
|
4
|
+
mutation UPDATE_NEGOTIABLE_QUOTE_QUANTITIES_MUTATION(
|
|
5
|
+
$quoteUid: ID!
|
|
6
|
+
$items: [NegotiableQuoteItemQuantityInput!]!
|
|
7
|
+
) {
|
|
8
|
+
updateNegotiableQuoteQuantities(
|
|
9
|
+
input: {
|
|
10
|
+
quote_uid: $quoteUid
|
|
11
|
+
items: $items
|
|
12
|
+
}
|
|
13
|
+
) {
|
|
14
|
+
quote {
|
|
15
|
+
...NegotiableQuoteFragment
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
${p}
|
|
20
|
+
`,w=async n=>{if(!E.authenticated)return Promise.reject(new Error("Unauthorized"));const{quoteUid:r,items:e}=n;if(!r)throw new Error("Quote UID is required");if(!e||!Array.isArray(e)||e.length===0)throw new Error("Items array is required and must not be empty");for(const t of e){if(!t.quoteItemUid)throw new Error("Each item must have a quoteItemUid");if(typeof t.quantity!="number"||t.quantity<=0)throw new Error(`Invalid quantity for item ${t.quoteItemUid}: quantity must be a positive number`);if(!Number.isInteger(t.quantity))throw new Error(`Invalid quantity for item ${t.quoteItemUid}: quantity must be an integer`)}const s=e.map(t=>({quote_item_uid:t.quoteItemUid,quantity:t.quantity}));return d(U,{variables:{quoteUid:r,items:s}}).then(t=>{var a,u;const{errors:o}=t;if(o){const m=o.map(q=>q.message).join("; ");throw new Error(`Failed to update quote quantities: ${m}`)}const i=I((u=(a=t.data)==null?void 0:a.updateNegotiableQuoteQuantities)==null?void 0:u.quote);if(!i)throw new Error("Failed to transform quote data: Invalid response structure");return f.emit("quote-management/quantities-updated",{quote:i,input:{quoteUid:r,items:e}}),i})};export{w as u};
|
|
21
|
+
//# sourceMappingURL=updateQuantities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateQuantities.js","sources":["/@dropins/storefront-quote-management/src/api/updateQuantities/graphql/UpdateNegotiableQuoteQuantitiesMutation.ts","/@dropins/storefront-quote-management/src/api/updateQuantities/updateQuantities.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 UPDATE_NEGOTIABLE_QUOTE_QUANTITIES_MUTATION = `\n mutation UPDATE_NEGOTIABLE_QUOTE_QUANTITIES_MUTATION(\n $quoteUid: ID!\n $items: [NegotiableQuoteItemQuantityInput!]!\n ) {\n updateNegotiableQuoteQuantities(\n input: {\n quote_uid: $quoteUid\n items: $items\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 { state } from '@/quote-management/lib/state';\nimport { UPDATE_NEGOTIABLE_QUOTE_QUANTITIES_MUTATION } from './graphql/UpdateNegotiableQuoteQuantitiesMutation';\nimport { NegotiableQuoteModel } from '@/quote-management/data/models/negotiable-quote-model';\nimport { transformQuote } from '@/quote-management/data/transforms';\n\nexport interface QuantityItem {\n /** The unique ID of the quote item */\n quoteItemUid: string;\n /** The new quantity for the item (must be greater than 0) */\n quantity: number;\n}\n\nexport interface UpdateQuantitiesInput {\n /** The unique ID of the negotiable quote */\n quoteUid: string;\n /** Array of items with their new quantities */\n items: QuantityItem[];\n}\n\n/**\n * Updates the quantities of items in a negotiable quote.\n *\n * @param input - The input parameters for updating quantities\n * @param input.quoteUid - The unique ID of the negotiable quote\n * @param input.items - Array of items with their new quantities\n * @returns Promise that resolves to the updated quote model\n * @throws Error if validation fails or GraphQL operation fails\n *\n * @example\n * ```ts\n * const quote = await updateQuantities({\n * quoteUid: 'quote-123',\n * items: [\n * { quoteItemUid: 'item-1', quantity: 5 },\n * { quoteItemUid: 'item-2', quantity: 3 }\n * ]\n * });\n * ```\n */\nexport const updateQuantities = async (\n input: UpdateQuantitiesInput\n): Promise<NegotiableQuoteModel | null> => {\n if (!state.authenticated) {\n return Promise.reject(new Error('Unauthorized'));\n }\n\n const { quoteUid, items } = input;\n\n // Validate quoteUid\n if (!quoteUid) {\n throw new Error('Quote UID is required');\n }\n\n // Validate items array\n if (!items || !Array.isArray(items) || items.length === 0) {\n throw new Error('Items array is required and must not be empty');\n }\n\n // Validate each item\n for (const item of items) {\n if (!item.quoteItemUid) {\n throw new Error('Each item must have a quoteItemUid');\n }\n if (typeof item.quantity !== 'number' || item.quantity <= 0) {\n throw new Error(\n `Invalid quantity for item ${item.quoteItemUid}: quantity must be a positive number`\n );\n }\n // Ensure quantity is an integer\n if (!Number.isInteger(item.quantity)) {\n throw new Error(\n `Invalid quantity for item ${item.quoteItemUid}: quantity must be an integer`\n );\n }\n }\n\n // Transform items to snake_case for GraphQL\n const transformedItems = items.map((item) => ({\n quote_item_uid: item.quoteItemUid,\n quantity: item.quantity,\n }));\n\n return fetchGraphQl(UPDATE_NEGOTIABLE_QUOTE_QUANTITIES_MUTATION, {\n variables: {\n quoteUid,\n items: transformedItems,\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 update quote quantities: ${errorMessages}`);\n }\n\n // Transform the quote data\n const quoteData = transformQuote(\n response.data?.updateNegotiableQuoteQuantities?.quote\n );\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/quantities-updated', {\n quote: quoteData,\n input: { quoteUid, items },\n });\n\n return quoteData;\n });\n};\n"],"names":["UPDATE_NEGOTIABLE_QUOTE_QUANTITIES_MUTATION","NEGOTIABLE_QUOTE_FRAGMENT","updateQuantities","input","state","quoteUid","items","item","transformedItems","fetchGraphQl","response","errors","errorMessages","error","quoteData","transformQuote","_b","_a","events"],"mappings":"mLAWO,MAAMA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBvDC,CAAyB;AAAA,ECuBhBC,EAAmB,MAC9BC,GACyC,CACzC,GAAI,CAACC,EAAM,cACT,OAAO,QAAQ,OAAO,IAAI,MAAM,cAAc,CAAC,EAGjD,KAAM,CAAE,SAAAC,EAAU,MAAAC,CAAA,EAAUH,EAG5B,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,uBAAuB,EAIzC,GAAI,CAACC,GAAS,CAAC,MAAM,QAAQA,CAAK,GAAKA,EAAM,SAAW,EACtD,MAAM,IAAI,MAAM,+CAA+C,EAIjE,UAAWC,KAAQD,EAAO,CACxB,GAAI,CAACC,EAAK,aACR,MAAM,IAAI,MAAM,oCAAoC,EAEtD,GAAI,OAAOA,EAAK,UAAa,UAAYA,EAAK,UAAY,EACxD,MAAM,IAAI,MACR,6BAA6BA,EAAK,YAAY,sCAAA,EAIlD,GAAI,CAAC,OAAO,UAAUA,EAAK,QAAQ,EACjC,MAAM,IAAI,MACR,6BAA6BA,EAAK,YAAY,+BAAA,CAGpD,CAGA,MAAMC,EAAmBF,EAAM,IAAKC,IAAU,CAC5C,eAAgBA,EAAK,aACrB,SAAUA,EAAK,QAAA,EACf,EAEF,OAAOE,EAAaT,EAA6C,CAC/D,UAAW,CACT,SAAAK,EACA,MAAOG,CAAA,CACT,CACD,EAAE,KAAME,GAAa,SACpB,KAAM,CAAE,OAAAC,GAAWD,EAEnB,GAAIC,EAAQ,CAEV,MAAMC,EAAgBD,EAAO,IAAKE,GAAUA,EAAM,OAAO,EAAE,KAAK,IAAI,EACpE,MAAM,IAAI,MAAM,sCAAsCD,CAAa,EAAE,CACvE,CAGA,MAAME,EAAYC,GAChBC,GAAAC,EAAAP,EAAS,OAAT,YAAAO,EAAe,kCAAf,YAAAD,EAAgD,KAAA,EAGlD,GAAI,CAACF,EACH,MAAM,IAAI,MACR,4DAAA,EAKJ,OAAAI,EAAO,KAAK,sCAAuC,CACjD,MAAOJ,EACP,MAAO,CAAE,SAAAT,EAAU,MAAAC,CAAA,CAAM,CAC1B,EAEMQ,CACT,CAAC,CACH"}
|
package/chunks/uploadFile.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{f as l,t as w}from"./
|
|
3
|
+
import{f as l,t as w}from"./fetch-graphql.js";import"./state.js";import{events as E}from"@dropins/tools/event-bus.js";import{N as f}from"./NegotiableQuoteFragment.js";const N=`
|
|
4
4
|
mutation REQUEST_NEGOTIABLE_QUOTE_MUTATION(
|
|
5
5
|
$cartId: ID!
|
|
6
6
|
$quoteName: String!
|
package/chunks/uploadFile.js.map
CHANGED
|
@@ -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 * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { 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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"}
|
|
@@ -7,6 +7,7 @@ export interface ProductListTableProps extends HTMLAttributes<HTMLDivElement | H
|
|
|
7
7
|
canEdit: boolean;
|
|
8
8
|
onItemCheckboxChange?: (item: NegotiableQuoteCartItem, isSelected: boolean) => void;
|
|
9
9
|
onItemDropdownChange?: (item: NegotiableQuoteCartItem, action: string) => void;
|
|
10
|
+
onQuantityChange?: (item: NegotiableQuoteCartItem, newQuantity: number) => void;
|
|
10
11
|
onUpdate?: (e: SubmitEvent) => void;
|
|
11
12
|
}
|
|
12
13
|
export declare const ProductListTable: FunctionComponent<ProductListTableProps>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { FunctionComponent, VNode } from 'preact';
|
|
2
|
+
import { HTMLAttributes } from 'preact/compat';
|
|
3
|
+
|
|
4
|
+
export interface QuoteTemplatesListTableProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading' | 'children'> {
|
|
5
|
+
rowData: QuoteTemplateRowData[];
|
|
6
|
+
loading?: boolean;
|
|
7
|
+
className?: string;
|
|
8
|
+
emptyStateMessage?: VNode;
|
|
9
|
+
showItemRange?: boolean;
|
|
10
|
+
itemRangeMessage?: VNode;
|
|
11
|
+
showPageSizePicker?: boolean;
|
|
12
|
+
pageSizePickerMessage?: VNode;
|
|
13
|
+
showPagination?: boolean;
|
|
14
|
+
paginationMessage?: VNode;
|
|
15
|
+
}
|
|
16
|
+
export type QuoteTemplateRowData = {
|
|
17
|
+
id: string;
|
|
18
|
+
name: VNode;
|
|
19
|
+
state: VNode;
|
|
20
|
+
status: VNode;
|
|
21
|
+
validUntil: VNode;
|
|
22
|
+
minQuoteTotal: VNode;
|
|
23
|
+
ordersPlaced: VNode;
|
|
24
|
+
lastOrdered: VNode;
|
|
25
|
+
actions: VNode;
|
|
26
|
+
[key: string]: VNode | string | number | undefined;
|
|
27
|
+
};
|
|
28
|
+
export declare const QuoteTemplatesListTable: FunctionComponent<QuoteTemplatesListTableProps>;
|
|
29
|
+
//# sourceMappingURL=QuoteTemplatesListTable.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/********************************************************************
|
|
2
|
+
* Copyright 2025 Adobe
|
|
3
|
+
* All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* NOTICE: Adobe permits you to use, modify, and distribute this
|
|
6
|
+
* file in accordance with the terms of the Adobe license agreement
|
|
7
|
+
* accompanying it.
|
|
8
|
+
*******************************************************************/
|
|
9
|
+
export * from './QuoteTemplatesListTable';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
package/components/index.d.ts
CHANGED
|
@@ -15,11 +15,13 @@ export * from './ProductListTable';
|
|
|
15
15
|
export * from './QuotePricesSummary';
|
|
16
16
|
export * from './QuoteSummaryList';
|
|
17
17
|
export * from './QuotesListTable';
|
|
18
|
+
export * from './QuoteTemplatesListTable';
|
|
18
19
|
export * from './ConfirmationModal';
|
|
19
20
|
export * from './QuoteHistoryLog';
|
|
20
21
|
export * from './ShippingAddressDisplay';
|
|
21
22
|
export * from './RequestNegotiableQuoteForm';
|
|
22
23
|
export * from './TabbedContent';
|
|
23
24
|
export * from './QuoteCommentsList';
|
|
25
|
+
export * from './ConfirmationModal';
|
|
24
26
|
export * from './RenameQuoteModal';
|
|
25
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -6,13 +6,13 @@ export interface ItemsQuotedProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
6
6
|
quoteData?: NegotiableQuoteModel;
|
|
7
7
|
onItemCheckboxChange?: (item: NegotiableQuoteCartItem, isSelected: boolean) => void;
|
|
8
8
|
onItemDropdownChange?: (item: NegotiableQuoteCartItem, action: string) => void;
|
|
9
|
-
onUpdate?: (e: SubmitEvent) => void;
|
|
10
9
|
slots?: {
|
|
11
10
|
ProductListTable?: SlotProps<{
|
|
12
11
|
items: NegotiableQuoteModel['items'];
|
|
13
12
|
canEdit: boolean;
|
|
14
13
|
onItemCheckboxChange?: (item: NegotiableQuoteCartItem, isSelected: boolean) => void;
|
|
15
14
|
onItemDropdownChange?: (item: NegotiableQuoteCartItem, action: string) => void;
|
|
15
|
+
onQuantityChange?: (item: NegotiableQuoteCartItem, newQuantity: number) => void;
|
|
16
16
|
onUpdate?: (e: SubmitEvent) => void;
|
|
17
17
|
}>;
|
|
18
18
|
QuotePricesSummary?: SlotProps<{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{I as
|
|
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/updateQuantities.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 l,Fragment as re}from"@dropins/tools/preact-jsx-runtime.js";import*as te from"@dropins/tools/preact-compat.js";import{useState as _,useMemo as v,useEffect as P,useCallback as Q,createPortal as ne}from"@dropins/tools/preact-compat.js";import{classes as m,VComponent as M,Slot as q,getGlobalLocale as Ee}from"@dropins/tools/lib.js";/* empty css */import{Picker as Re,Skeleton as we,SkeletonRow as x,Modal as ie,Button as C,Input as Ie,TextArea as me,InLineAlert as R}from"@dropins/tools/components.js";import{events as z}from"@dropins/tools/event-bus.js";/* empty css */import"@dropins/tools/preact.js";import{useText as V}from"@dropins/tools/i18n.js";/* empty css *//* empty css *//* empty css */import{S as Fe}from"../chunks/ShippingAddressDisplay.js";import{Q as He}from"../chunks/QuoteHistoryLog.js";import{I as ke}from"../chunks/ItemsQuoted.js";import"../chunks/state.js";import{r as Pe,s as ze,d as We}from"../chunks/renameNegotiableQuote.js";import{Q as Be}from"../chunks/QuoteCommentsList.js";import{a as $,S as oe}from"../chunks/WarningFilled.js";import"../chunks/transform-quote.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/NegotiableQuoteFragment.js";const Ue=g=>te.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",...g},te.createElement("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})),je=({className:g,dropdownPlaceholder:a,dropdownOptions:r,handleDropdownChange:h,buttons:d,...e})=>{const b=r&&r.length>0,f=d&&d.length>0,u=(r==null?void 0:r.map(c=>({text:c.label,value:c.value})))||[];return u.unshift({text:a||"",value:""}),t("div",{className:"quote-management-actions-bar__container","data-testid":"actions-bar-container",children:l("div",{className:m(["quote-management-actions-bar",g]),"data-testid":"actions-bar",...e,children:[b&&t(Re,{name:"dropdown",id:"dropdown",onInput:h,className:"quote-management-actions-bar__dropdown","data-testid":"dropdown",options:u}),f&&t("div",{className:"quote-management-actions-bar__buttons","data-testid":"buttons-container",children:d==null?void 0:d.map((c,N)=>t(M,{node:c,className:m(["quote-management-actions-bar__button"])},N))})]})})},Ge=({className:g,loading:a,quoteName:r,quoteStatus:h,banner:d,details:e,actionBar:b,quoteContent:f,shippingInformationTitle:u,shippingInformation:c,quoteCommentsTitle:N,quoteComments:y,footer:p,...S})=>a?t(Oe,{}):l("div",{...S,className:m(["quote-management-manage-negotiable-quote",g]),children:[l("div",{className:m(["quote-management-manage-negotiable-quote__header"]),children:[r&&t(M,{node:r,className:m(["quote-management-manage-negotiable-quote__quote-name"])}),h&&t(M,{node:h,className:m(["quote-management-manage-negotiable-quote__quote-status"])})]}),d&&t(M,{node:d,className:m(["quote-management-manage-negotiable-quote__banner"])}),e&&t(M,{node:e,className:m(["quote-management-manage-negotiable-quote__details"])}),b&&t(M,{node:b,className:m(["quote-management-manage-negotiable-quote__action-bar"])}),f&&t(M,{node:f,className:m(["quote-management-manage-negotiable-quote__quote-content"])}),l("div",{"data-testid":"quote-shipping-information-container",className:m(["quote-management-manage-negotiable-quote__shipping-information-container"]),children:[u&&t(M,{node:u,className:m(["quote-management-manage-negotiable-quote__shipping-information-title"])}),c&&t(M,{node:c,className:m(["quote-management-manage-negotiable-quote__shipping-information"])})]}),l("div",{"data-testid":"quote-comments-container",className:m(["quote-management-manage-negotiable-quote__quote-comments-container"]),children:[N&&t(M,{node:N,className:m(["quote-management-manage-negotiable-quote__quote-comments-title"])}),y&&t(M,{node:y,className:m(["quote-management-manage-negotiable-quote__quote-comments"])})]}),t(M,{node:p,className:m(["quote-management-manage-negotiable-quote__footer"])})]}),Oe=()=>l(we,{"data-testid":"manage-negotiable-quote-skeleton",children:[t(x,{variant:"heading",fullWidth:!0,size:"large"}),t(x,{variant:"row",fullWidth:!1,size:"small"}),t(x,{variant:"row",fullWidth:!1,size:"small"}),t(x,{variant:"row",fullWidth:!0}),t(x,{variant:"row",fullWidth:!0,size:"xlarge",lines:2}),t(x,{variant:"row",fullWidth:!1,size:"small"})]}),$e=({open:g=!1,title:a,message:r,cancelLabel:h,confirmLabel:d,onCancel:e,onConfirm:b,showCloseButton:f,confirmationBanner:u,...c})=>{const N=V({cancel:"ConfirmationModal.cancel",confirm:"ConfirmationModal.confirm"});if(!g)return null;const{className:y,...p}=c;return t(ie,{...p,size:"medium",onClose:e,clickToDismiss:!0,escapeToDismiss:!0,showCloseButton:f,"data-testid":"confirmation-modal",className:y,children:l("div",{className:"confirmation-modal__content",children:[u&&t("div",{className:"confirmation-modal__banner","data-testid":"confirmation-modal-banner",children:u}),a&&t("div",{className:"confirmation-modal__title","data-testid":"confirmation-modal-title",children:a}),r&&t("div",{className:"confirmation-modal__message","data-testid":"confirmation-modal-message",children:r}),l("div",{className:"confirmation-modal__actions","data-testid":"confirmation-modal-actions",children:[t(C,{variant:"secondary",onClick:e,"data-testid":"confirmation-modal-cancel",children:h??N.cancel}),t(C,{variant:"primary",onClick:b,"data-testid":"confirmation-modal-confirm",children:d??N.confirm})]})]})})},Ve=({className:g,tabs:a,tabsContent:r,defaultActiveTab:h,...d})=>{const[e,b]=_(h||Array.from(a.keys())[0]),f=c=>{b(c)},u=v(()=>r.get(e),[e,r]);return l("div",{...d,className:m(["quote-management-tabbed-content",g]),children:[a&&t("div",{"data-testid":"tabbed-content-tabs",className:m(["quote-management-tabbed-content__tabs"]),children:Array.from(a.entries()).map(([c,N])=>t("button",{className:m(["quote-management-tabbed-content__tab",["quote-management-tabbed-content__tab--active",c===e]]),onClick:()=>f(c),children:N},c))}),u&&t("div",{className:m(["quote-management-tabbed-content__active-tab-content"]),children:t(M,{node:u})})]})},Xe=({className:g,open:a,quoteName:r,renameReason:h,quoteNameError:d,errorBanner:e,successBanner:b,showCloseButton:f=!0,onQuoteNameChange:u,onRenameReasonChange:c,onSave:N,onClose:y})=>{const p=V({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?l(ie,{open:a,size:"medium",title:t(re,{children:p.title}),onClose:y,clickToDismiss:!0,escapeToDismiss:!0,showCloseButton:f,className:m(["quote-management-rename-quote-modal",g]),"data-testid":"rename-quote-modal",children:[e&&t("div",{className:m(["quote-management-rename-quote-modal__error-banner"]),"data-testid":"rename-quote-modal-error-banner",children:e}),b&&t("div",{className:m(["quote-management-rename-quote-modal__success-banner"]),"data-testid":"rename-quote-modal-success-banner",children:b}),l("div",{className:m(["quote-management-rename-quote-modal__content"]),children:[l("div",{children:[t(Ie,{name:"quoteName",type:"text",value:r,onInput:S=>u(S.target.value),floatingLabel:p.quoteNameLabel,required:!0,error:!!d}),d&&t("span",{className:m(["quote-management-rename-quote-modal__error-text"]),children:d})]}),t(me,{name:"quoteComment",value:h,onInput:S=>c(S.target.value),label:p.reasonLabel,rows:3})]}),l("div",{className:m(["quote-management-rename-quote-modal__actions"]),children:[t(C,{variant:"secondary",size:"medium",onClick:y,className:m(["quote-management-rename-quote-modal__cancel-button"]),children:p.cancelButton}),t(C,{variant:"primary",size:"medium",onClick:N,className:m(["quote-management-rename-quote-modal__save-button"]),children:p.renameButton})]})]}):null},_a=({onActionsDropdownChange:g,slots:a,onActionsButtonClick:r,onSendForReview:h,...d})=>{const[e,b]=_(void 0),[f,u]=_(!0),[c,N]=_(!1),[y,p]=_(null),[S,w]=_(!1),[T,X]=_(""),[L,W]=_(!1),[J,B]=_(!1),[I,F]=_(""),[U,H]=_(""),[j,E]=_(""),[ce,D]=_(""),[G,k]=_(""),n=V({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",renameErrorHeading:"NegotiableQuote.Manage.rename.errorHeading",renameQuoteNameRequired:"NegotiableQuote.Manage.rename.quoteNameRequired",renameErrorDefault:"NegotiableQuote.Manage.rename.errorDefault",renameSuccessHeading:"NegotiableQuote.Manage.rename.successHeading",renameSuccessMessage:"NegotiableQuote.Manage.rename.successMessage",confirmationModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",confirmationModalDeleteTitle:"NegotiableQuote.Manage.confirmationModal.delete.title",confirmationModalDeleteMessage:"NegotiableQuote.Manage.confirmationModal.delete.message",confirmationModalDeleteConfirm:"NegotiableQuote.Manage.confirmationModal.delete.confirm",confirmationModalDeleteErrorHeading:"NegotiableQuote.Manage.confirmationModal.delete.errorHeading",confirmationModalDeleteErrorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",confirmationModalDeleteSuccessHeading:"NegotiableQuote.Manage.confirmationModal.delete.successHeading",confirmationModalDeleteSuccessDescription:"NegotiableQuote.Manage.confirmationModal.delete.successDescription"});P(()=>{const o=z.on("quote-management/quote-data",s=>{const{quote:i}=s;i&&(b(i),u(!1))},{eager:!0});return()=>o==null?void 0:o.off()},[]),P(()=>{const o=z.on("quote-management/shipping-address-set",s=>{const{quote:i}=s;i&&b(i)},{eager:!0});return()=>o==null?void 0:o.off()},[]),P(()=>{const o=z.on("quote-management/quote-sent-for-review",s=>{const{quote:i}=s;b(i),X(""),W(!1)},{eager:!0});return()=>o==null?void 0:o.off()},[]),P(()=>{const o=z.on("quote-management/quote-renamed",s=>{const{quote:i}=s;b(i),E(""),D(""),k(n.renameSuccessMessage),setTimeout(()=>{B(!1),F(""),H(""),k("")},2e3)},{eager:!0});return()=>o==null?void 0:o.off()},[n.renameSuccessMessage]);const K=Q(()=>{F((e==null?void 0:e.name)||""),H(""),E(""),D(""),k(""),B(!0)},[e]),le=Q(()=>{B(!1),F(""),H(""),E(""),D(""),k("")},[]),de=Q(o=>{F(o),o.trim()&&D("")},[]),ue=Q(async()=>{if(!I.trim()){D(n.renameQuoteNameRequired);return}try{E(""),D(""),await Pe({quoteUid:e.uid,quoteName:I,quoteComment:U.trim()||void 0})}catch(o){E(o.message||n.renameErrorDefault)}},[e,I,U,n.renameQuoteNameRequired,n.renameErrorDefault]),se=v(()=>{const o=e&&(e.lockedForEditing===!0||e.lockedForEditing===void 0&&(e.status==="SUBMITTED"||e.status==="PENDING"||e.status==="ORDERED"||e.status==="CLOSED"));return t(q,{name:"QuoteName",slot:a==null?void 0:a.QuoteName,context:{quoteName:e==null?void 0:e.name,quoteData:e},children:l("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:K,disabled:o,"data-testid":"rename-quote-button",className:"quote-management-manage-negotiable-quote__rename-button","aria-label":"Rename quote",children:t(Ue,{})})]})})},[a==null?void 0:a.QuoteName,e,K]),ge=v(()=>t(q,{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]),Y=Q(o=>{switch(o){case"SUBMITTED":return n.statusSubmitted;case"PENDING":return n.statusPending;case"EXPIRED":return n.statusExpired;default:return null}},[n])(e==null?void 0:e.status),Z=Y&&t(R,{type:"warning",variant:"secondary",icon:t($,{}),heading:n.bannerTitle,description:Y}),be=Z&&t(q,{name:"Banner","data-testid":"banner",slot:a==null?void 0:a.Banner,context:{quoteData:e},children:Z}),fe=v(()=>{if(!e)return null;const o=Ee()||"en-US",s=new Intl.DateTimeFormat(o,{year:"numeric",month:"long",day:"numeric"});let i;try{i=s.format(new Date(e.expirationDate))}catch{i=e.expirationDate}return l(q,{name:"Details",slot:a==null?void 0:a.Details,context:{quoteData:e},children:[l("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"created-label",children:n.createdLabel}),l("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"created-value",children:[s.format(new Date(e.createdAt))," (",e.buyer.firstname," ",e.buyer.lastname,")"]})]}),l("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"sales-rep-label",children:n.salesRepLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"sales-rep-value",children:e.salesRepName})]}),l("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"expires-label",children:n.expiresLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"expires-value",children:i})]})]})},[a==null?void 0:a.Details,n,e]),A=v(()=>[{label:n.close,value:"close"},{label:n.delete,value:"delete",disabled:!(e!=null&&e.canDelete)},{label:n.print,value:"print"},{label:n.createTemplate,value:"createTemplate"},{label:n.createCopy,value:"createCopy"}],[n,e==null?void 0:e.canDelete]),pe=v(()=>{const o=i=>{g==null||g(i)},s=i=>{switch(i){case"close":r==null||r(i);break;case"delete":N(!0),r==null||r(i);break;case"print":r==null||r(i);break;case"createTemplate":r==null||r(i);break;case"createCopy":r==null||r(i);break}};return t(q,{name:"ActionBar",slot:a==null?void 0:a.ActionBar,context:{quoteData:e},children:t(je,{dropdownPlaceholder:n.actionsLabel,dropdownOptions:[{label:n.remove,value:"remove"}],handleDropdownChange:o,buttons:A.map(i=>t(C,{variant:"tertiary",onClick:()=>s(i.value),"data-testid":`actions-bar-${i.value}-button`,"data-action":i.value,disabled:i.disabled,children:i.label},i.value))})})},[A,n,a==null?void 0:a.ActionBar,e,g,r]),he=v(()=>t(q,{name:"QuoteContent",slot:a==null?void 0:a.QuoteContent,context:{quoteData:e},children:t(Ve,{tabs:new Map([["items-quoted","Items Quoted"],["comments","Comments"],["history-log","History Log"]]),tabsContent:new Map([["items-quoted",t(q,{name:"ItemsQuotedTab",slot:a==null?void 0:a.ItemsQuotedTab,context:{quoteData:e},children:t(ke,{quoteData:e})},"items-quoted")],["comments",t(q,{name:"CommentsTab",slot:a==null?void 0:a.CommentsTab,context:{quoteData:e},children:t(Be,{quoteData:e})},"comments")],["history-log",t(q,{name:"HistoryLogTab",slot:a==null?void 0:a.HistoryLogTab,context:{quoteData:e},children:t(He,{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=v(()=>t(q,{name:"ShippingInformationTitle",slot:a==null?void 0:a.ShippingInformationTitle,context:{quoteData:e},children:t("h2",{children:n.shippingInformationTitle})}),[a==null?void 0:a.ShippingInformationTitle,e,n]),qe=v(()=>t(q,{name:"ShippingInformation",slot:a==null?void 0:a.ShippingInformation,context:{quoteData:e,loading:f,setLoading:u},children:t(Fe,{quoteData:e,loading:f,"data-testid":"manage-quote-shipping-address"})}),[a==null?void 0:a.ShippingInformation,e,f,u]),_e=v(()=>t(q,{name:"QuoteCommentsTitle",slot:a==null?void 0:a.QuoteCommentsTitle,context:{quoteData:e},children:t("h2",{children:n.quoteCommentsTitle})}),[a==null?void 0:a.QuoteCommentsTitle,n,e]),ve=v(()=>t(q,{name:"QuoteComments",slot:a==null?void 0:a.QuoteComments,context:{quoteData:e},children:t(me,{name:"quoteComments",placeholder:n.quoteCommentsPlaceholder,rows:3,value:T,onInput:o=>{X(o.target.value)},disabled:L})}),[a==null?void 0:a.QuoteComments,n,e,T,L]),ee=Q(async()=>{if(h){h({quoteData:e,comment:T.trim()||void 0});return}W(!0);try{await ze({quoteUid:e.uid,comment:T.trim()||void 0})}catch(o){console.error("Failed to send quote for review:",o),W(!1)}},[e,h,T]),Me=v(()=>t(q,{name:"Footer",slot:a==null?void 0:a.Footer,context:{quoteData:e,comment:T,isSubmitting:L},children:t(C,{variant:"primary",onClick:ee,"data-testid":"send-for-review-button",disabled:!(e!=null&&e.canSendForReview)||L||!e,children:n.sendForReview})}),[a==null?void 0:a.Footer,n,e,T,L,ee]),Qe=v(()=>j?t(R,{type:"error",variant:"primary",icon:t($,{color:"var(--color-error)"}),heading:n.renameErrorHeading,description:j}):void 0,[j,n.renameErrorHeading]),ye=v(()=>G?t(R,{type:"success",variant:"primary",icon:t(oe,{}),heading:n.renameSuccessHeading,description:G}):void 0,[G,n.renameSuccessHeading]),O=Q(o=>o.errors&&Array.isArray(o.errors)&&o.errors.length>0?o.errors[0].message||n.confirmationModalDeleteErrorFallback:(o==null?void 0:o.message)||n.confirmationModalDeleteErrorFallback,[n.confirmationModalDeleteErrorFallback]),Se=Q(()=>{N(!1),p(null),w(!1)},[]),Te=Q(async()=>{if(e!=null&&e.uid){p(null),w(!1);try{const{operationResults:o}=await We(e.uid),s=o.find(i=>i.__typename==="DeleteNegotiableQuoteOperationFailure");if(s){const i=O(s);p(i);return}w(!0)}catch(o){const s=O(o);p(s)}}},[e,O]),De=Q(()=>{p(null)},[]),xe=Q(()=>{w(!1)},[]),Ce=y?t(R,{type:"error",variant:"primary",icon:t($,{}),heading:n.confirmationModalDeleteErrorHeading,description:y,onDismiss:De,"data-testid":"confirmation-modal-error-banner"}):null,ae=(S?t(R,{type:"success",variant:"primary",icon:t(oe,{}),heading:n.confirmationModalDeleteSuccessHeading,description:n.confirmationModalDeleteSuccessDescription,onDismiss:xe,"data-testid":"confirmation-modal-success-banner"}):null)||Ce,Le={...d,loading:f,quoteName:se,quoteStatus:ge,banner:be||void 0,details:fe,actionBar:pe,quoteContent:he,shippingInformationTitle:Ne,shippingInformation:qe,quoteCommentsTitle:_e,quoteComments:ve,footer:Me};return l(re,{children:[t(Ge,{...Le}),J&&ne(t(Xe,{open:J,quoteName:I,renameReason:U,quoteNameError:ce,errorBanner:Qe,successBanner:ye,onQuoteNameChange:de,onRenameReasonChange:H,onSave:ue,onClose:le}),document.body),c&&ne(t($e,{open:c,title:n.confirmationModalDeleteTitle,message:n.confirmationModalDeleteMessage,cancelLabel:n.confirmationModalCancel,confirmLabel:n.confirmationModalDeleteConfirm,onCancel:Se,onConfirm:Te,showCloseButton:!ae,confirmationBanner:ae}),document.body)]})};export{_a as ManageNegotiableQuote,_a as default};
|
|
3
|
+
import{jsx as t,jsxs as d,Fragment as pe}from"@dropins/tools/preact-jsx-runtime.js";import*as be from"@dropins/tools/preact-compat.js";import{useState as s,useMemo as h,useEffect as w,useCallback as q,createPortal as ee}from"@dropins/tools/preact-compat.js";import{classes as m,VComponent as v,Slot as p,getGlobalLocale as Ge}from"@dropins/tools/lib.js";/* empty css */import{Picker as Oe,Skeleton as $e,SkeletonRow as E,Modal as Ve,Input as Xe,TextArea as he,Button as U,InLineAlert as T}from"@dropins/tools/components.js";import{events as R}from"@dropins/tools/event-bus.js";/* empty css */import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";import{I as Je,C as fe}from"../chunks/ItemsQuoted.js";/* empty css *//* empty css *//* empty css */import{useText as Me}from"@dropins/tools/i18n.js";import{S as Ke}from"../chunks/ShippingAddressDisplay.js";import{Q as Ye}from"../chunks/QuoteHistoryLog.js";import"../chunks/state.js";import{g as Ze,r as Ae,c as ea,s as aa,d as ta}from"../chunks/renameNegotiableQuote.js";import{Q as na}from"../chunks/QuoteCommentsList.js";import{a as W,S as ae}from"../chunks/WarningFilled.js";import"../chunks/updateQuantities.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/NegotiableQuoteFragment.js";const oa=b=>be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"feather feather-edit-2",...b},be.createElement("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})),ra=({className:b,dropdownPlaceholder:a,dropdownOptions:i,handleDropdownChange:_,buttons:u,...e})=>{const g=i&&i.length>0,M=u&&u.length>0,f=(i==null?void 0:i.map(c=>({text:c.label,value:c.value})))||[];return f.unshift({text:a||"",value:""}),t("div",{className:"quote-management-actions-bar__container","data-testid":"actions-bar-container",children:d("div",{className:m(["quote-management-actions-bar",b]),"data-testid":"actions-bar",...e,children:[g&&t(Oe,{name:"dropdown",id:"dropdown",onInput:_,className:"quote-management-actions-bar__dropdown","data-testid":"dropdown",options:f}),M&&t("div",{className:"quote-management-actions-bar__buttons","data-testid":"buttons-container",children:u==null?void 0:u.map((c,Q)=>t(v,{node:c,className:m(["quote-management-actions-bar__button"])},Q))})]})})},ia=({className:b,loading:a,quoteName:i,quoteStatus:_,banner:u,details:e,actionBar:g,quoteContent:M,shippingInformationTitle:f,shippingInformation:c,quoteCommentsTitle:Q,quoteComments:S,footer:N,...y})=>a?t(ma,{}):d("div",{...y,className:m(["quote-management-manage-negotiable-quote",b]),children:[d("div",{className:m(["quote-management-manage-negotiable-quote__header"]),children:[i&&t(v,{node:i,className:m(["quote-management-manage-negotiable-quote__quote-name"])}),_&&t(v,{node:_,className:m(["quote-management-manage-negotiable-quote__quote-status"])})]}),u&&t(v,{node:u,className:m(["quote-management-manage-negotiable-quote__banner"])}),e&&t(v,{node:e,className:m(["quote-management-manage-negotiable-quote__details"])}),g&&t(v,{node:g,className:m(["quote-management-manage-negotiable-quote__action-bar"])}),M&&t(v,{node:M,className:m(["quote-management-manage-negotiable-quote__quote-content"])}),d("div",{"data-testid":"quote-shipping-information-container",className:m(["quote-management-manage-negotiable-quote__shipping-information-container"]),children:[f&&t(v,{node:f,className:m(["quote-management-manage-negotiable-quote__shipping-information-title"])}),c&&t(v,{node:c,className:m(["quote-management-manage-negotiable-quote__shipping-information"])})]}),d("div",{"data-testid":"quote-comments-container",className:m(["quote-management-manage-negotiable-quote__quote-comments-container"]),children:[Q&&t(v,{node:Q,className:m(["quote-management-manage-negotiable-quote__quote-comments-title"])}),S&&t(v,{node:S,className:m(["quote-management-manage-negotiable-quote__quote-comments"])})]}),t(v,{node:N,className:m(["quote-management-manage-negotiable-quote__footer"])})]}),ma=()=>d($e,{"data-testid":"manage-negotiable-quote-skeleton",children:[t(E,{variant:"heading",fullWidth:!0,size:"large"}),t(E,{variant:"row",fullWidth:!1,size:"small"}),t(E,{variant:"row",fullWidth:!1,size:"small"}),t(E,{variant:"row",fullWidth:!0}),t(E,{variant:"row",fullWidth:!0,size:"xlarge",lines:2}),t(E,{variant:"row",fullWidth:!1,size:"small"})]}),la=({className:b,tabs:a,tabsContent:i,defaultActiveTab:_,...u})=>{const[e,g]=s(_||Array.from(a.keys())[0]),M=c=>{g(c)},f=h(()=>i.get(e),[e,i]);return d("div",{...u,className:m(["quote-management-tabbed-content",b]),children:[a&&t("div",{"data-testid":"tabbed-content-tabs",className:m(["quote-management-tabbed-content__tabs"]),children:Array.from(a.entries()).map(([c,Q])=>t("button",{className:m(["quote-management-tabbed-content__tab",["quote-management-tabbed-content__tab--active",c===e]]),onClick:()=>M(c),children:Q},c))}),f&&t("div",{className:m(["quote-management-tabbed-content__active-tab-content"]),children:t(v,{node:f})})]})},ca=({className:b,open:a,quoteName:i,renameReason:_,quoteNameError:u,errorBanner:e,successBanner:g,showCloseButton:M=!0,onQuoteNameChange:f,onRenameReasonChange:c,onSave:Q,onClose:S})=>{const N=Me({title:"NegotiableQuote.Manage.rename.title",quoteNameLabel:"NegotiableQuote.Manage.rename.quoteNameLabel",reasonLabel:"NegotiableQuote.Manage.rename.reasonLabel",renameButton:"NegotiableQuote.Manage.rename.renameButton",cancelButton:"NegotiableQuote.Manage.rename.cancelButton"});return a?d(Ve,{open:a,size:"medium",title:t(pe,{children:N.title}),onClose:S,clickToDismiss:!0,escapeToDismiss:!0,showCloseButton:M,className:m(["quote-management-rename-quote-modal",b]),"data-testid":"rename-quote-modal",children:[e&&t("div",{className:m(["quote-management-rename-quote-modal__error-banner"]),"data-testid":"rename-quote-modal-error-banner",children:e}),g&&t("div",{className:m(["quote-management-rename-quote-modal__success-banner"]),"data-testid":"rename-quote-modal-success-banner",children:g}),d("div",{className:m(["quote-management-rename-quote-modal__content"]),children:[d("div",{children:[t(Xe,{name:"quoteName",type:"text",value:i,onInput:y=>f(y.target.value),floatingLabel:N.quoteNameLabel,required:!0,error:!!u}),u&&t("span",{className:m(["quote-management-rename-quote-modal__error-text"]),children:u})]}),t(he,{name:"quoteComment",value:_,onInput:y=>c(y.target.value),label:N.reasonLabel,rows:3})]}),d("div",{className:m(["quote-management-rename-quote-modal__actions"]),children:[t(U,{variant:"secondary",size:"medium",onClick:S,className:m(["quote-management-rename-quote-modal__cancel-button"]),children:N.cancelButton}),t(U,{variant:"primary",size:"medium",onClick:Q,className:m(["quote-management-rename-quote-modal__save-button"]),children:N.renameButton})]})]}):null},Ha=({onActionsDropdownChange:b,slots:a,onActionsButtonClick:i,onSendForReview:_,...u})=>{const[e,g]=s(void 0),[M,f]=s(!0),[c,Q]=s(!1),[S,N]=s(null),[y,H]=s(!1),[C,te]=s(""),[I,j]=s(!1),[ne,G]=s(!1),[oe,O]=s(!1),[re,L]=s(""),[ie,D]=s(""),[me,$]=s(!1),[k,B]=s(""),[V,P]=s(""),[X,F]=s(""),[Ne,x]=s(""),[J,z]=s(""),n=Me({createdLabel:"NegotiableQuote.Manage.createdLabel",salesRepLabel:"NegotiableQuote.Manage.salesRepLabel",expiresLabel:"NegotiableQuote.Manage.expiresLabel",actionsLabel:"NegotiableQuote.Manage.actionsLabel",remove:"NegotiableQuote.Manage.actions.remove",close:"NegotiableQuote.Manage.actionButtons.close",delete:"NegotiableQuote.Manage.actionButtons.delete",print:"NegotiableQuote.Manage.actionButtons.print",createTemplate:"NegotiableQuote.Manage.actionButtons.createTemplate",createCopy:"NegotiableQuote.Manage.actionButtons.createCopy",shippingInformationTitle:"NegotiableQuote.Manage.shippingInformation.title",quoteCommentsTitle:"NegotiableQuote.Manage.quoteComments.title",quoteCommentsPlaceholder:"NegotiableQuote.Manage.quoteComments.placeholder",sendForReview:"NegotiableQuote.Manage.actionButtons.sendForReview",bannerTitle:"NegotiableQuote.Manage.bannerTitle",statusSubmitted:"NegotiableQuote.Manage.bannerStatusMessages.submitted",statusPending:"NegotiableQuote.Manage.bannerStatusMessages.pending",statusExpired:"NegotiableQuote.Manage.bannerStatusMessages.expired",errorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",closeSuccessMessage:"NegotiableQuote.Manage.confirmationModal.close.successDescription",closeModalTitle:"NegotiableQuote.Manage.actionButtons.close",closeModalMessage:"NegotiableQuote.Manage.confirmationModal.close.message",closeModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",closeModalConfirm:"NegotiableQuote.Manage.confirmationModal.close.confirm",closeModalConfirmLoading:"NegotiableQuote.Manage.confirmationModal.close.confirmLoading",closeModalSuccessHeading:"NegotiableQuote.Manage.confirmationModal.close.successHeading",renameErrorHeading:"NegotiableQuote.Manage.rename.errorHeading",renameQuoteNameRequired:"NegotiableQuote.Manage.rename.quoteNameRequired",renameErrorDefault:"NegotiableQuote.Manage.rename.errorDefault",renameSuccessHeading:"NegotiableQuote.Manage.rename.successHeading",renameSuccessMessage:"NegotiableQuote.Manage.rename.successMessage",confirmationModalCancel:"NegotiableQuote.Manage.confirmationModal.cancel",confirmationModalDeleteTitle:"NegotiableQuote.Manage.confirmationModal.delete.title",confirmationModalDeleteMessage:"NegotiableQuote.Manage.confirmationModal.delete.message",confirmationModalDeleteConfirm:"NegotiableQuote.Manage.confirmationModal.delete.confirm",confirmationModalDeleteErrorHeading:"NegotiableQuote.Manage.confirmationModal.delete.errorHeading",confirmationModalDeleteErrorFallback:"NegotiableQuote.Manage.confirmationModal.delete.errorFallback",confirmationModalDeleteSuccessHeading:"NegotiableQuote.Manage.confirmationModal.delete.successHeading",confirmationModalDeleteSuccessDescription:"NegotiableQuote.Manage.confirmationModal.delete.successDescription"});w(()=>{const o=R.on("quote-management/quote-data",l=>{const{quote:r}=l;r&&(g(r),f(!1))},{eager:!0});return()=>o==null?void 0:o.off()},[]),w(()=>{const o=R.on("quote-management/shipping-address-set",l=>{const{quote:r}=l;r&&g(r)},{eager:!0});return()=>o==null?void 0:o.off()},[]),w(()=>{const o=R.on("quote-management/quote-sent-for-review",l=>{const{quote:r}=l;g(r),te(""),j(!1)},{eager:!0});return()=>o==null?void 0:o.off()},[]),w(()=>{const o=R.on("quote-management/negotiable-quote-closed",async l=>{O(!1),D(""),L(n.closeSuccessMessage),g(r=>{var Z;return r!=null&&r.uid&&((Z=l.closedQuoteUids)!=null&&Z.includes(r.uid))&&Ze(r.uid).then(A=>{g(A)}).catch(A=>{console.warn("Failed to refresh quote data after closure:",A)}),r}),setTimeout(()=>{G(!1),L("")},2e3)},{eager:!0});return()=>o==null?void 0:o.off()},[n.closeSuccessMessage]),w(()=>{const o=R.on("quote-management/negotiable-quote-close-error",l=>{console.log("Close error event received:",l),O(!1),L("");const r=l.error.message||n.errorFallback;D(r)},{eager:!0});return()=>o==null?void 0:o.off()},[n.errorFallback]),w(()=>{const o=R.on("quote-management/quote-renamed",l=>{const{quote:r}=l;g(r),F(""),x(""),z(n.renameSuccessMessage),setTimeout(()=>{$(!1),B(""),P(""),z("")},2e3)},{eager:!0});return()=>o==null?void 0:o.off()},[n.renameSuccessMessage]);const le=q(()=>{B((e==null?void 0:e.name)||""),P(""),F(""),x(""),z(""),$(!0)},[e]),qe=q(()=>{$(!1),B(""),P(""),F(""),x(""),z("")},[]),ve=q(o=>{B(o),o.trim()&&x("")},[]),_e=q(async()=>{if(!k.trim()){x(n.renameQuoteNameRequired);return}try{F(""),x(""),await Ae({quoteUid:e.uid,quoteName:k,quoteComment:V.trim()||void 0})}catch(o){F(o.message||n.renameErrorDefault)}},[e,k,V,n.renameQuoteNameRequired,n.renameErrorDefault]),Qe=h(()=>{const o=e&&(e.lockedForEditing===!0||e.lockedForEditing===void 0&&(e.status==="SUBMITTED"||e.status==="PENDING"||e.status==="ORDERED"||e.status==="CLOSED"));return t(p,{name:"QuoteName",slot:a==null?void 0:a.QuoteName,context:{quoteName:e==null?void 0:e.name,quoteData:e},children:d("div",{className:"quote-management-manage-negotiable-quote__quote-name-wrapper",children:[t("h1",{"data-testid":"quote-name",className:"quote-management-manage-negotiable-quote__quote-name-title",children:e==null?void 0:e.name}),t("button",{onClick:le,disabled:o,"data-testid":"rename-quote-button",className:"quote-management-manage-negotiable-quote__rename-button","aria-label":"Rename quote",children:t(oa,{})})]})})},[a==null?void 0:a.QuoteName,e,le]),Se=h(()=>t(p,{name:"QuoteStatus",slot:a==null?void 0:a.QuoteStatus,context:{quoteStatus:e==null?void 0:e.status,quoteData:e},children:t("div",{"data-testid":"quote-status",children:e==null?void 0:e.status})}),[a==null?void 0:a.QuoteStatus,e]),ce=q(o=>{switch(o){case"SUBMITTED":return n.statusSubmitted;case"PENDING":return n.statusPending;case"EXPIRED":return n.statusExpired;default:return null}},[n])(e==null?void 0:e.status),se=ce&&t(T,{type:"warning",variant:"secondary",icon:t(W,{}),heading:n.bannerTitle,description:ce}),ye=se&&t(p,{name:"Banner","data-testid":"banner",slot:a==null?void 0:a.Banner,context:{quoteData:e},children:se}),Ce=h(()=>{if(!e)return null;const o=Ge()||"en-US",l=new Intl.DateTimeFormat(o,{year:"numeric",month:"long",day:"numeric"});let r;try{r=l.format(new Date(e.expirationDate))}catch{r=e.expirationDate}return d(p,{name:"Details",slot:a==null?void 0:a.Details,context:{quoteData:e},children:[d("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"created-label",children:n.createdLabel}),d("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"created-value",children:[l.format(new Date(e.createdAt))," (",e.buyer.firstname," ",e.buyer.lastname,")"]})]}),d("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"sales-rep-label",children:n.salesRepLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"sales-rep-value",children:e.salesRepName})]}),d("div",{className:"quote-management-manage-negotiable-quote__detail",children:[t("span",{className:"quote-management-manage-negotiable-quote__detail-title","data-testid":"expires-label",children:n.expiresLabel}),t("span",{className:"quote-management-manage-negotiable-quote__detail-content","data-testid":"expires-value",children:r})]})]})},[a==null?void 0:a.Details,n,e]),de=h(()=>[{label:n.close,value:"close",disabled:!(e!=null&&e.canClose)},{label:n.delete,value:"delete",disabled:!(e!=null&&e.canDelete)},{label:n.print,value:"print"},{label:n.createTemplate,value:"createTemplate"},{label:n.createCopy,value:"createCopy"}],[n,e==null?void 0:e.canDelete,e==null?void 0:e.canClose]),Te=h(()=>{const o=r=>{b==null||b(r)},l=r=>{switch(r){case"close":G(!0),D(""),L(""),i==null||i(r);break;case"delete":Q(!0),i==null||i(r);break;case"print":i==null||i(r);break;case"createTemplate":i==null||i(r);break;case"createCopy":i==null||i(r);break}};return t(p,{name:"ActionBar",slot:a==null?void 0:a.ActionBar,context:{quoteData:e},children:t(ra,{dropdownPlaceholder:n.actionsLabel,dropdownOptions:[{label:n.remove,value:"remove"}],handleDropdownChange:o,buttons:de.map(r=>t(U,{variant:"tertiary",onClick:()=>l(r.value),"data-testid":`actions-bar-${r.value}-button`,"data-action":r.value,disabled:r.disabled,children:r.label},r.value))})})},[de,n,a==null?void 0:a.ActionBar,e,b,i]),Le=h(()=>t(p,{name:"QuoteContent",slot:a==null?void 0:a.QuoteContent,context:{quoteData:e},children:t(la,{tabs:new Map([["items-quoted","Items Quoted"],["comments","Comments"],["history-log","History Log"]]),tabsContent:new Map([["items-quoted",t(p,{name:"ItemsQuotedTab",slot:a==null?void 0:a.ItemsQuotedTab,context:{quoteData:e},children:t(Je,{quoteData:e})},"items-quoted")],["comments",t(p,{name:"CommentsTab",slot:a==null?void 0:a.CommentsTab,context:{quoteData:e},children:t(na,{quoteData:e})},"comments")],["history-log",t(p,{name:"HistoryLogTab",slot:a==null?void 0:a.HistoryLogTab,context:{quoteData:e},children:t(Ye,{quoteData:e})},"history-log")]])})}),[a==null?void 0:a.QuoteContent,a==null?void 0:a.HistoryLogTab,a==null?void 0:a.CommentsTab,a==null?void 0:a.ItemsQuotedTab,e]),xe=h(()=>t(p,{name:"ShippingInformationTitle",slot:a==null?void 0:a.ShippingInformationTitle,context:{quoteData:e},children:t("h2",{children:n.shippingInformationTitle})}),[a==null?void 0:a.ShippingInformationTitle,e,n]),we=h(()=>t(p,{name:"ShippingInformation",slot:a==null?void 0:a.ShippingInformation,context:{quoteData:e,loading:M,setLoading:f},children:t(Ke,{quoteData:e,loading:M,"data-testid":"manage-quote-shipping-address"})}),[a==null?void 0:a.ShippingInformation,e,M,f]),Ee=h(()=>t(p,{name:"QuoteCommentsTitle",slot:a==null?void 0:a.QuoteCommentsTitle,context:{quoteData:e},children:t("h2",{children:n.quoteCommentsTitle})}),[a==null?void 0:a.QuoteCommentsTitle,n,e]),Re=h(()=>t(p,{name:"QuoteComments",slot:a==null?void 0:a.QuoteComments,context:{quoteData:e},children:t(he,{name:"quoteComments",placeholder:n.quoteCommentsPlaceholder,rows:3,value:C,onInput:o=>{te(o.target.value)},disabled:I})}),[a==null?void 0:a.QuoteComments,n,e,C,I]),Ie=q(async()=>{if(e!=null&&e.uid){O(!0),D(""),L("");try{await ea({quoteUids:[e.uid]})}catch(o){console.error("Failed to close quote:",o)}}},[e]),De=q(()=>{G(!1),D(""),L("")},[]),ue=q(async()=>{if(_){_({quoteData:e,comment:C.trim()||void 0});return}j(!0);try{await aa({quoteUid:e.uid,comment:C.trim()||void 0})}catch(o){console.error("Failed to send quote for review:",o),j(!1)}},[e,_,C]),Fe=h(()=>t(p,{name:"Footer",slot:a==null?void 0:a.Footer,context:{quoteData:e,comment:C,isSubmitting:I},children:t(U,{variant:"primary",onClick:ue,"data-testid":"send-for-review-button",disabled:!(e!=null&&e.canSendForReview)||I||!e,children:n.sendForReview})}),[a==null?void 0:a.Footer,n,e,C,I,ue]),He=h(()=>X?t(T,{type:"error",variant:"primary",icon:t(W,{color:"var(--color-error)"}),heading:n.renameErrorHeading,description:X}):void 0,[X,n.renameErrorHeading]),ke=h(()=>J?t(T,{type:"success",variant:"primary",icon:t(ae,{}),heading:n.renameSuccessHeading,description:J}):void 0,[J,n.renameSuccessHeading]),K=q(o=>o.errors&&Array.isArray(o.errors)&&o.errors.length>0?o.errors[0].message||n.confirmationModalDeleteErrorFallback:(o==null?void 0:o.message)||n.confirmationModalDeleteErrorFallback,[n.confirmationModalDeleteErrorFallback]),Be=q(()=>{Q(!1),N(null),H(!1)},[]),Pe=q(async()=>{if(e!=null&&e.uid){N(null),H(!1);try{const{operationResults:o}=await ta(e.uid),l=o.find(r=>r.__typename==="DeleteNegotiableQuoteOperationFailure");if(l){const r=K(l);N(r);return}H(!0)}catch(o){const l=K(o);N(l)}}},[e,K]),ze=q(()=>{N(null)},[]),We=q(()=>{H(!1)},[]),Ue=S?t(T,{type:"error",variant:"primary",icon:t(W,{}),heading:n.confirmationModalDeleteErrorHeading,description:S,onDismiss:ze,"data-testid":"confirmation-modal-error-banner"}):null,ge=(y?t(T,{type:"success",variant:"primary",icon:t(ae,{}),heading:n.confirmationModalDeleteSuccessHeading,description:n.confirmationModalDeleteSuccessDescription,onDismiss:We,"data-testid":"confirmation-modal-success-banner"}):null)||Ue,je={...u,loading:M,quoteName:Qe,quoteStatus:Se,banner:ye||void 0,details:Ce,actionBar:Te,quoteContent:Le,shippingInformationTitle:xe,shippingInformation:we,quoteCommentsTitle:Ee,quoteComments:Re,footer:Fe};let Y=null;return re?Y=t(T,{type:"success",variant:"primary",icon:t(ae,{}),heading:n.closeModalSuccessHeading,description:re,"data-testid":"close-quote-success-banner"}):ie&&(Y=t(T,{type:"error",variant:"primary",icon:t(W,{}),heading:n.confirmationModalDeleteErrorHeading,description:ie,"data-testid":"close-quote-error-banner"})),d(pe,{children:[t(ia,{...je}),me&&ee(t(ca,{open:me,quoteName:k,renameReason:V,quoteNameError:Ne,errorBanner:He,successBanner:ke,onQuoteNameChange:ve,onRenameReasonChange:P,onSave:_e,onClose:qe}),document.body),c&&ee(t(fe,{open:c,title:n.confirmationModalDeleteTitle,message:n.confirmationModalDeleteMessage,cancelLabel:n.confirmationModalCancel,confirmLabel:n.confirmationModalDeleteConfirm,onCancel:Be,onConfirm:Pe,showCloseButton:!ge,confirmationBanner:ge}),document.body),ne&&ee(t(fe,{open:ne,title:n.closeModalTitle,message:n.closeModalMessage,cancelLabel:n.closeModalCancel,confirmLabel:oe?n.closeModalConfirmLoading:n.closeModalConfirm,onCancel:De,onConfirm:oe?void 0:Ie,showCloseButton:!0,confirmationBanner:Y,"data-testid":"close-quote-confirmation-modal"}),document.body)]})};export{Ha as ManageNegotiableQuote,Ha as default};
|
|
4
4
|
//# sourceMappingURL=ManageNegotiableQuote.js.map
|