@dropins/storefront-purchase-order 0.0.5-alpha6 → 0.0.5-alpha8
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.js +6 -6
- package/api.js.map +1 -1
- package/chunks/usePurchaseOrders.js +1 -1
- package/chunks/usePurchaseOrders.js.map +1 -1
- package/package.json +1 -1
package/api.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{Initializer as
|
|
3
|
+
import{Initializer as D}from"@dropins/tools/lib.js";import{f as y,h as O}from"./chunks/fetch-graphql.js";import{g as m,r as rr,s as er,a as ar,b as tr}from"./chunks/fetch-graphql.js";import{h as R}from"./chunks/fetch-error.js";import{t as v,P as A}from"./chunks/rejectPurchaseOrders.js";import{a as ur,r as sr}from"./chunks/rejectPurchaseOrders.js";import{events as C}from"@dropins/tools/event-bus.js";import{c as _r,p as cr}from"./chunks/placeOrderForPurchaseOrder.js";import{a as nr,c as dr,g as pr,u as hr}from"./chunks/currencyInfo.js";import{d as gr,g as yr}from"./chunks/getPurchaseOrderApprovalRules.js";import{g as Rr}from"./chunks/getPurchaseOrders.js";import{g as Er}from"./chunks/getPurchaseOrderApprovalRule.js";import{P as br}from"./chunks/permissions.js";import"@dropins/tools/fetch-graphql.js";import"./chunks/transform-purchase-order-approval-rule.js";import"./chunks/case-converter.js";const S=`
|
|
4
4
|
fragment PURCHASE_ORDER_QUOTE_FRAGMENT on Cart {
|
|
5
5
|
__typename
|
|
6
6
|
id
|
|
@@ -403,7 +403,7 @@ import{Initializer as w}from"@dropins/tools/lib.js";import{f as y,h as O}from"./
|
|
|
403
403
|
}
|
|
404
404
|
}
|
|
405
405
|
${S}
|
|
406
|
-
`,U=async r=>{if(!r||r.trim()==="")throw new Error("Purchase Order UID is required");return y(I,{variables:{uid:r}}).then(i=>{var t,a,e;(t=i.errors)!=null&&t.length&&R(i.errors);const
|
|
406
|
+
`,U=async r=>{if(!r||r.trim()==="")throw new Error("Purchase Order UID is required");return y(I,{variables:{uid:r}}).then(i=>{var t,a,e;(t=i.errors)!=null&&t.length&&R(i.errors);const l=(e=(a=i.data)==null?void 0:a.customer)==null?void 0:e.purchase_order;if(!l)throw new Error("Failed to get purchase order");return{purchaseOrder:v(l)}}).catch(O)},w=new D({init:async r=>{var t,a;const i={};if(w.config.setConfig({...i,...r}),typeof(r==null?void 0:r.poRef)=="string"&&r.poRef.trim()!==""){const e=await U(r.poRef);(t=e==null?void 0:e.purchaseOrder)!=null&&t.quote&&C.emit("order/data",{...e.purchaseOrder.quote,poNumber:(a=e==null?void 0:e.purchaseOrder)==null?void 0:a.number})}},listeners:()=>[]}),B=w.config,T=`
|
|
407
407
|
mutation VALIDATE_PURCHASE_ORDERS($input: ValidatePurchaseOrdersInput!) {
|
|
408
408
|
validatePurchaseOrders(input: $input) {
|
|
409
409
|
errors {
|
|
@@ -416,7 +416,7 @@ import{Initializer as w}from"@dropins/tools/lib.js";import{f as y,h as O}from"./
|
|
|
416
416
|
}
|
|
417
417
|
}
|
|
418
418
|
${A}
|
|
419
|
-
`,J=async r=>{const i=Array.isArray(r)?r:[r];if(!i||i.length===0)throw new Error("Purchase Order UID(s) are required");if(i.some(t=>!t||t.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return y(T,{variables:{input:{purchase_order_uids:i}}}).then(t=>{var e,
|
|
419
|
+
`,J=async r=>{const i=Array.isArray(r)?r:[r];if(!i||i.length===0)throw new Error("Purchase Order UID(s) are required");if(i.some(t=>!t||t.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return y(T,{variables:{input:{purchase_order_uids:i}}}).then(t=>{var e,_;(e=t.errors)!=null&&e.length&&R(t.errors);const a=(_=t.data)==null?void 0:_.validatePurchaseOrders;return{errors:((a==null?void 0:a.errors)??[]).map(s=>({message:(s==null?void 0:s.message)??"",type:(s==null?void 0:s.type)??""})),purchaseOrders:((a==null?void 0:a.purchase_orders)||[]).map(v)}}).catch(O)},q=`
|
|
420
420
|
mutation ADD_PURCHASE_ORDER_COMMENT(
|
|
421
421
|
$purchaseOrderUid: ID!
|
|
422
422
|
$comment: String!
|
|
@@ -448,7 +448,7 @@ import{Initializer as w}from"@dropins/tools/lib.js";import{f as y,h as O}from"./
|
|
|
448
448
|
}
|
|
449
449
|
}
|
|
450
450
|
}
|
|
451
|
-
`,H=r=>{var
|
|
451
|
+
`,H=r=>{var l,t,a,e,_,s,c,o,n,d,p,h,f,g,E;const i=((t=(l=r==null?void 0:r.cart)==null?void 0:l.itemsV2)==null?void 0:t.items)??[];return{cart:{id:((a=r==null?void 0:r.cart)==null?void 0:a.id)??"",items:i.map(u=>{var P,b,x;return{uid:(u==null?void 0:u.uid)??"",quantity:(u==null?void 0:u.quantity)??0,product:{uid:((P=u==null?void 0:u.product)==null?void 0:P.uid)??"",name:((b=u==null?void 0:u.product)==null?void 0:b.name)??"",sku:((x=u==null?void 0:u.product)==null?void 0:x.sku)??""}}}),pagination:{currentPage:((s=(_=(e=r==null?void 0:r.cart)==null?void 0:e.itemsV2)==null?void 0:_.page_info)==null?void 0:s.current_page)??1,pageSize:((n=(o=(c=r==null?void 0:r.cart)==null?void 0:c.itemsV2)==null?void 0:o.page_info)==null?void 0:n.page_size)??20,totalPages:((h=(p=(d=r==null?void 0:r.cart)==null?void 0:d.itemsV2)==null?void 0:p.page_info)==null?void 0:h.total_pages)??0,totalCount:((g=(f=r==null?void 0:r.cart)==null?void 0:f.itemsV2)==null?void 0:g.total_count)??0}},userErrors:((E=r==null?void 0:r.user_errors)==null?void 0:E.map(u=>({message:(u==null?void 0:u.message)??""})))??[]}},$=r=>{var i,l,t,a,e,_,s,c,o,n,d,p,h,f,g;return{createdAt:(r==null?void 0:r.created_at)??"",text:(r==null?void 0:r.text)??"",uid:(r==null?void 0:r.uid)??"",author:{allowRemoteShoppingAssistance:((i=r==null?void 0:r.author)==null?void 0:i.allow_remote_shopping_assistance)??!1,confirmationStatus:((l=r==null?void 0:r.author)==null?void 0:l.confirmation_status)??"",createdAt:((t=r==null?void 0:r.author)==null?void 0:t.created_at)??"",dateOfBirth:((a=r==null?void 0:r.author)==null?void 0:a.date_of_birth)??"",email:((e=r==null?void 0:r.author)==null?void 0:e.email)??"",firstname:((_=r==null?void 0:r.author)==null?void 0:_.firstname)??"",gender:((s=r==null?void 0:r.author)==null?void 0:s.gender)??0,jobTitle:((c=r==null?void 0:r.author)==null?void 0:c.job_title)??"",lastname:((o=r==null?void 0:r.author)==null?void 0:o.lastname)??"",middlename:((n=r==null?void 0:r.author)==null?void 0:n.middlename)??"",prefix:((d=r==null?void 0:r.author)==null?void 0:d.prefix)??"",status:((p=r==null?void 0:r.author)==null?void 0:p.status)??"",structureId:((h=r==null?void 0:r.author)==null?void 0:h.structure_id)??"",suffix:((f=r==null?void 0:r.author)==null?void 0:f.suffix)??"",telephone:((g=r==null?void 0:r.author)==null?void 0:g.telephone)??""}}},K=async(r,i)=>{if(!r)throw new Error("Purchase Order ID is required");if(!i)throw new Error("Comment text is required");return y(q,{variables:{purchaseOrderUid:r,comment:i}}).then(t=>{var a,e,_;return(a=t.errors)!=null&&a.length&&R(t.errors),$((_=(e=t.data)==null?void 0:e.addPurchaseOrderComment)==null?void 0:_.comment)}).catch(O)},M=`
|
|
452
452
|
mutation ADD_PURCHASE_ORDER_ITEMS_TO_CART(
|
|
453
453
|
$purchaseOrderUid: ID!
|
|
454
454
|
$cartId: String!
|
|
@@ -483,7 +483,7 @@ import{Initializer as w}from"@dropins/tools/lib.js";import{f as y,h as O}from"./
|
|
|
483
483
|
}
|
|
484
484
|
}
|
|
485
485
|
}
|
|
486
|
-
`,W=async(r,i,
|
|
486
|
+
`,W=async(r,i,l=!1)=>{if(!r)throw new Error("Purchase Order UID is required");if(!i)throw new Error("Cart ID is required");return y(M,{variables:{purchaseOrderUid:r,cartId:i,replaceExistingCartItems:l}}).then(a=>{var _,s;(_=a.errors)!=null&&_.length&&R(a.errors);const e=(s=a.data)==null?void 0:s.addPurchaseOrderItemsToCart;if(!(e!=null&&e.cart))throw new Error("Failed to add purchase order items to cart");return H(e)}).catch(O)},F=`
|
|
487
487
|
mutation PLACE_PURCHASE_ORDER($input: PlacePurchaseOrderInput!) {
|
|
488
488
|
placePurchaseOrder(input: $input) {
|
|
489
489
|
purchase_order {
|
|
@@ -492,5 +492,5 @@ import{Initializer as w}from"@dropins/tools/lib.js";import{f as y,h as O}from"./
|
|
|
492
492
|
}
|
|
493
493
|
}
|
|
494
494
|
${A}
|
|
495
|
-
`,X=async r=>{if(!r||r.trim()==="")throw new Error("Cart ID is required");return y(F,{variables:{input:{cart_id:r}}}).then(
|
|
495
|
+
`,X=async r=>{if(!r||r.trim()==="")throw new Error("Cart ID is required");return y(F,{variables:{input:{cart_id:r}}}).then(l=>{var e,_,s;(e=l.errors)!=null&&e.length&&R(l.errors);const t=(s=(_=l.data)==null?void 0:_.placePurchaseOrder)==null?void 0:s.purchase_order,a=v(t);return C.emit("purchase-order/placed",a),{purchaseOrder:a}}).catch(O)};export{br as PO_PERMISSIONS,K as addPurchaseOrderComment,W as addPurchaseOrderItemsToCart,ur as approvePurchaseOrders,_r as cancelPurchaseOrders,B as config,nr as createPurchaseOrderApprovalRule,dr as currencyInfo,gr as deletePurchaseOrderApprovalRule,y as fetchGraphQl,m as getConfig,U as getPurchaseOrder,Er as getPurchaseOrderApprovalRule,pr as getPurchaseOrderApprovalRuleMetadata,yr as getPurchaseOrderApprovalRules,Rr as getPurchaseOrders,w as initialize,cr as placeOrderForPurchaseOrder,X as placePurchaseOrder,sr as rejectPurchaseOrders,rr as removeFetchGraphQlHeader,er as setEndpoint,ar as setFetchGraphQlHeader,tr as setFetchGraphQlHeaders,hr as updatePurchaseOrderApprovalRule,J as validatePurchaseOrders};
|
|
496
496
|
//# sourceMappingURL=api.js.map
|
package/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sources":["/@dropins/storefront-purchase-order/src/api/graphql/PurchaseOrderQuoteFragment.ts","/@dropins/storefront-purchase-order/src/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql.ts","/@dropins/storefront-purchase-order/src/api/getPurchaseOrder/getPurchaseOrder.ts","/@dropins/storefront-purchase-order/src/api/initialize/initialize.ts","/@dropins/storefront-purchase-order/src/api/validatePurchaseOrders/graphql/validatePurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/validatePurchaseOrders/validatePurchaseOrders.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderComment/graphql/addPurchaseOrderComment.graphql.ts","/@dropins/storefront-purchase-order/src/data/transforms/transform-cart.ts","/@dropins/storefront-purchase-order/src/data/transforms/transform-purchase-order-comment.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderComment/addPurchaseOrderComment.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderItemsToCart/graphql/addPurchaseOrderItemsToCart.graphql.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderItemsToCart/addPurchaseOrderItemsToCart.ts","/@dropins/storefront-purchase-order/src/api/placePurchaseOrder/graphql/placePurchaseOrder.graphql.ts","/@dropins/storefront-purchase-order/src/api/placePurchaseOrder/placePurchaseOrder.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\n/**\n * Limited Quote fragment for Purchase Order context\n * Some fields from full Cart type may not be available in purchase_order.quote\n */\nexport const PURCHASE_ORDER_QUOTE_FRAGMENT = /* GraphQL */ `\n fragment PURCHASE_ORDER_QUOTE_FRAGMENT on Cart {\n __typename\n id\n email\n is_virtual\n total_quantity\n applied_coupons {\n code\n }\n applied_gift_cards {\n code\n applied_balance {\n value\n currency\n }\n current_balance {\n value\n currency\n }\n expiration_date\n }\n applied_reward_points {\n money {\n value\n currency\n }\n points\n }\n applied_store_credit {\n applied_balance {\n value\n currency\n }\n current_balance {\n value\n currency\n }\n }\n available_gift_wrappings {\n uid\n design\n price {\n value\n currency\n }\n image {\n url\n label\n }\n }\n gift_message {\n from\n to\n message\n }\n gift_receipt_included\n gift_wrapping {\n uid\n design\n price {\n value\n currency\n }\n image {\n url\n label\n }\n }\n printed_card_included\n available_payment_methods {\n code\n title\n is_deferred\n }\n selected_payment_method {\n code\n title\n }\n billing_address {\n city\n company\n country {\n code\n label\n }\n firstname\n lastname\n postcode\n region {\n code\n label\n }\n street\n telephone\n custom_attributes {\n code\n }\n fax\n id\n middlename\n prefix\n suffix\n uid\n vat_id\n }\n shipping_addresses {\n city\n company\n country {\n code\n label\n }\n firstname\n lastname\n postcode\n region {\n code\n label\n }\n street\n telephone\n custom_attributes {\n code\n }\n fax\n id\n middlename\n prefix\n suffix\n uid\n vat_id\n available_shipping_methods {\n amount {\n value\n currency\n }\n carrier_code\n carrier_title\n method_code\n method_title\n }\n selected_shipping_method {\n amount {\n value\n currency\n }\n carrier_code\n carrier_title\n method_code\n method_title\n }\n }\n rules {\n uid\n }\n itemsV2(pageSize: 100, currentPage: 1) {\n items {\n uid\n quantity\n product {\n __typename\n uid\n name\n sku\n url_key\n canonical_url\n stock_status\n only_x_left_in_stock\n image {\n url\n label\n }\n small_image {\n url\n label\n }\n thumbnail {\n url\n label\n }\n price_range {\n maximum_price {\n regular_price {\n value\n currency\n }\n final_price {\n value\n currency\n }\n }\n }\n }\n prices {\n price {\n value\n currency\n }\n price_including_tax {\n value\n currency\n }\n original_item_price {\n value\n currency\n }\n original_row_total {\n value\n currency\n }\n row_total {\n value\n currency\n }\n row_total_including_tax {\n value\n currency\n }\n total_item_discount {\n value\n currency\n }\n discounts {\n label\n amount {\n value\n currency\n }\n }\n fixed_product_taxes {\n label\n amount {\n value\n currency\n }\n }\n }\n ... on SimpleCartItem {\n customizable_options {\n label\n values {\n label\n value\n }\n }\n }\n ... on ConfigurableCartItem {\n configurable_options {\n option_label\n value_label\n }\n }\n ... on BundleCartItem {\n bundle_options {\n uid\n label\n type\n values {\n uid\n label\n quantity\n }\n }\n }\n ... on DownloadableCartItem {\n links {\n uid\n title\n }\n }\n ... on GiftCardCartItem {\n sender_name\n sender_email\n recipient_name\n recipient_email\n message\n amount {\n value\n currency\n }\n }\n errors {\n code\n message\n }\n is_available\n max_qty\n min_qty\n not_available_message\n note_from_buyer {\n note_uid\n note\n created_at\n }\n note_from_seller {\n note_uid\n note\n created_at\n }\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n prices {\n grand_total {\n value\n currency\n }\n grand_total_excluding_tax {\n value\n currency\n }\n subtotal_excluding_tax {\n value\n currency\n }\n subtotal_including_tax {\n value\n currency\n }\n subtotal_with_discount_excluding_tax {\n value\n currency\n }\n applied_taxes {\n label\n amount {\n value\n currency\n }\n }\n discounts {\n label\n amount {\n value\n currency\n }\n }\n gift_options {\n gift_wrapping_for_items {\n value\n currency\n }\n gift_wrapping_for_items_incl_tax {\n value\n currency\n }\n gift_wrapping_for_order {\n value\n currency\n }\n gift_wrapping_for_order_incl_tax {\n value\n currency\n }\n printed_card {\n value\n currency\n }\n printed_card_incl_tax {\n value\n currency\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDER_QUOTE_FRAGMENT } from '../../graphql/PurchaseOrderQuoteFragment';\n\nexport const GET_PURCHASE_ORDER = /* GraphQL */ `\n query GET_PURCHASE_ORDER($uid: ID!) {\n customer {\n purchase_order(uid: $uid) {\n uid\n number\n created_at\n updated_at\n status\n available_actions\n created_by {\n firstname\n lastname\n email\n }\n order {\n id\n number\n total {\n grand_total {\n value\n currency\n }\n }\n }\n quote {\n ...PURCHASE_ORDER_QUOTE_FRAGMENT\n }\n }\n }\n }\n ${PURCHASE_ORDER_QUOTE_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { GET_PURCHASE_ORDER } from '@/b2b-purchase-order/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const getPurchaseOrder = async (\n uid: string\n): Promise<{\n purchaseOrder: PurchaseOrderModel;\n}> => {\n if (!uid || uid.trim() === '') {\n throw new Error('Purchase Order UID is required');\n }\n\n return fetchGraphQl(GET_PURCHASE_ORDER, {\n variables: { uid },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const result = response.data?.customer?.purchase_order;\n if (!result) {\n throw new Error('Failed to get purchase order');\n }\n\n return {\n purchaseOrder: transformPurchaseOrder(result),\n };\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Initializer } from '@adobe-commerce/elsie/lib';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { getPurchaseOrder } from '../getPurchaseOrder';\nimport { events } from '@adobe-commerce/event-bus';\n\ntype ConfigProps = {\n langDefinitions?: Lang;\n poRef?: string;\n};\n\nexport const initialize = new Initializer<ConfigProps>({\n init: async (config) => {\n const defaultConfig = {};\n\n initialize.config.setConfig({ ...defaultConfig, ...config });\n\n const isValidPoRef =\n typeof config?.poRef === 'string' && config.poRef.trim() !== '';\n\n if (isValidPoRef) {\n const result = await getPurchaseOrder(config!.poRef!);\n\n if (result?.purchaseOrder?.quote) {\n events.emit('order/data', {\n ...result.purchaseOrder.quote,\n // @ts-ignore\n poNumber: result?.purchaseOrder?.number,\n });\n }\n }\n },\n\n listeners: () => [],\n});\n\nexport const config = initialize.config;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const VALIDATE_PURCHASE_ORDERS = /* GraphQL */ `\n mutation VALIDATE_PURCHASE_ORDERS($input: ValidatePurchaseOrdersInput!) {\n validatePurchaseOrders(input: $input) {\n errors {\n message\n type\n }\n purchase_orders {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { VALIDATE_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/validatePurchaseOrders/graphql/validatePurchaseOrders.graphql';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\n\nexport const validatePurchaseOrders = async (\n uids: string | string[]\n): Promise<{\n errors: { message: string; type: string }[];\n purchaseOrders: PurchaseOrderModel[];\n}> => {\n const uidArray = Array.isArray(uids) ? uids : [uids];\n\n if (!uidArray || uidArray.length === 0) {\n throw new Error('Purchase Order UID(s) are required');\n }\n\n if (uidArray.some((uid) => !uid || uid.trim() === '')) {\n throw new Error('All Purchase Order UIDs must be valid');\n }\n\n const input = {\n purchase_order_uids: uidArray,\n };\n\n return fetchGraphQl(VALIDATE_PURCHASE_ORDERS, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const data = response.data?.validatePurchaseOrders;\n\n return {\n errors: (data?.errors ?? []).map((error: any) => ({\n message: error?.message ?? '',\n type: error?.type ?? '',\n })),\n purchaseOrders: (data?.purchase_orders || []).map(\n transformPurchaseOrder\n ),\n };\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const ADD_PURCHASE_ORDER_COMMENT = /* GraphQL */ `\n mutation ADD_PURCHASE_ORDER_COMMENT(\n $purchaseOrderUid: ID!\n $comment: String!\n ) {\n addPurchaseOrderComment(\n input: { purchase_order_uid: $purchaseOrderUid, comment: $comment }\n ) {\n comment {\n created_at\n text\n uid\n author {\n allow_remote_shopping_assistance\n confirmation_status\n created_at\n date_of_birth\n email\n firstname\n gender\n job_title\n lastname\n middlename\n prefix\n status\n structure_id\n suffix\n telephone\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CartModel } from '@/b2b-purchase-order/data/models';\n\nexport const transformCart = (data: any): CartModel => {\n const cartItems = data?.cart?.itemsV2?.items ?? [];\n\n return {\n cart: {\n id: data?.cart?.id ?? '',\n items: cartItems.map((item: any) => ({\n uid: item?.uid ?? '',\n quantity: item?.quantity ?? 0,\n product: {\n uid: item?.product?.uid ?? '',\n name: item?.product?.name ?? '',\n sku: item?.product?.sku ?? '',\n },\n })),\n pagination: {\n currentPage: data?.cart?.itemsV2?.page_info?.current_page ?? 1,\n pageSize: data?.cart?.itemsV2?.page_info?.page_size ?? 20,\n totalPages: data?.cart?.itemsV2?.page_info?.total_pages ?? 0,\n totalCount: data?.cart?.itemsV2?.total_count ?? 0,\n },\n },\n userErrors:\n data?.user_errors?.map((error: any) => ({\n message: error?.message ?? '',\n })) ?? [],\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PurchaseOrderCommentModel } from '@/b2b-purchase-order/data/models';\n\nexport const transformPurchaseOrderComment = (\n comment: any\n): PurchaseOrderCommentModel => {\n return {\n createdAt: comment?.created_at ?? '',\n text: comment?.text ?? '',\n uid: comment?.uid ?? '',\n author: {\n allowRemoteShoppingAssistance:\n comment?.author?.allow_remote_shopping_assistance ?? false,\n confirmationStatus: comment?.author?.confirmation_status ?? '',\n createdAt: comment?.author?.created_at ?? '',\n dateOfBirth: comment?.author?.date_of_birth ?? '',\n email: comment?.author?.email ?? '',\n firstname: comment?.author?.firstname ?? '',\n gender: comment?.author?.gender ?? 0,\n jobTitle: comment?.author?.job_title ?? '',\n lastname: comment?.author?.lastname ?? '',\n middlename: comment?.author?.middlename ?? '',\n prefix: comment?.author?.prefix ?? '',\n status: comment?.author?.status ?? '',\n structureId: comment?.author?.structure_id ?? '',\n suffix: comment?.author?.suffix ?? '',\n telephone: comment?.author?.telephone ?? '',\n },\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { ADD_PURCHASE_ORDER_COMMENT } from '@/b2b-purchase-order/api/addPurchaseOrderComment/graphql/addPurchaseOrderComment.graphql';\nimport { transformPurchaseOrderComment } from '@/b2b-purchase-order/data/transforms';\nimport { PurchaseOrderCommentModel } from '@/b2b-purchase-order/data/models';\n\nexport const addPurchaseOrderComment = async (\n uid: string,\n comment: string\n): Promise<PurchaseOrderCommentModel> => {\n if (!uid) {\n throw new Error('Purchase Order ID is required');\n }\n\n if (!comment) {\n throw new Error('Comment text is required');\n }\n\n const variables = {\n purchaseOrderUid: uid,\n comment,\n };\n\n return fetchGraphQl(ADD_PURCHASE_ORDER_COMMENT, {\n variables,\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n return transformPurchaseOrderComment(\n response.data?.addPurchaseOrderComment?.comment\n );\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const ADD_PURCHASE_ORDER_ITEMS_TO_CART = /* GraphQL */ `\n mutation ADD_PURCHASE_ORDER_ITEMS_TO_CART(\n $purchaseOrderUid: ID!\n $cartId: String!\n $replaceExistingCartItems: Boolean!\n ) {\n addPurchaseOrderItemsToCart(\n input: {\n purchase_order_uid: $purchaseOrderUid\n cart_id: $cartId\n replace_existing_cart_items: $replaceExistingCartItems\n }\n ) {\n cart {\n id\n itemsV2 {\n items {\n uid\n quantity\n product {\n uid\n name\n sku\n }\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { transformCart } from '@/b2b-purchase-order/data/transforms';\nimport { ADD_PURCHASE_ORDER_ITEMS_TO_CART } from '@/b2b-purchase-order/api/addPurchaseOrderItemsToCart/graphql/addPurchaseOrderItemsToCart.graphql';\nimport { CartModel } from '@/b2b-purchase-order/data/models';\n\nexport const addPurchaseOrderItemsToCart = async (\n purchaseOrderUid: string,\n cartId: string,\n replaceExistingCartItems: boolean = false\n): Promise<CartModel> => {\n if (!purchaseOrderUid) {\n throw new Error('Purchase Order UID is required');\n }\n\n if (!cartId) {\n throw new Error('Cart ID is required');\n }\n\n const variables = {\n purchaseOrderUid,\n cartId,\n replaceExistingCartItems,\n };\n\n return fetchGraphQl(ADD_PURCHASE_ORDER_ITEMS_TO_CART, {\n variables,\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const cartData = response.data?.addPurchaseOrderItemsToCart;\n if (!cartData?.cart) {\n throw new Error('Failed to add purchase order items to cart');\n }\n\n return transformCart(cartData);\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const PLACE_PURCHASE_ORDER = /* GraphQL */ `\n mutation PLACE_PURCHASE_ORDER($input: PlacePurchaseOrderInput!) {\n placePurchaseOrder(input: $input) {\n purchase_order {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { PLACE_PURCHASE_ORDER } from '@/b2b-purchase-order/api/placePurchaseOrder/graphql/placePurchaseOrder.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const placePurchaseOrder = async (\n cartId: string\n): Promise<{ purchaseOrder: PurchaseOrderModel }> => {\n if (!cartId || cartId.trim() === '') {\n throw new Error('Cart ID is required');\n }\n\n const input = {\n cart_id: cartId,\n };\n\n return fetchGraphQl(PLACE_PURCHASE_ORDER, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const rawPurchaseOrder =\n response.data?.placePurchaseOrder?.purchase_order;\n return {\n purchaseOrder: transformPurchaseOrder(rawPurchaseOrder),\n };\n })\n .catch(handleNetworkError);\n};\n"],"names":["PURCHASE_ORDER_QUOTE_FRAGMENT","GET_PURCHASE_ORDER","getPurchaseOrder","uid","fetchGraphQl","response","_a","handleFetchError","result","_c","_b","transformPurchaseOrder","handleNetworkError","initialize","Initializer","config","defaultConfig","events","VALIDATE_PURCHASE_ORDERS","PURCHASE_ORDERS_FRAGMENT","validatePurchaseOrders","uids","uidArray","data","error","ADD_PURCHASE_ORDER_COMMENT","transformCart","cartItems","item","_f","_e","_d","_i","_h","_g","_l","_k","_j","_n","_m","_o","transformPurchaseOrderComment","comment","addPurchaseOrderComment","ADD_PURCHASE_ORDER_ITEMS_TO_CART","addPurchaseOrderItemsToCart","purchaseOrderUid","cartId","replaceExistingCartItems","cartData","PLACE_PURCHASE_ORDER","placePurchaseOrder","rawPurchaseOrder"],"mappings":"u4BAqBO,MAAMA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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"}
|
|
1
|
+
{"version":3,"file":"api.js","sources":["/@dropins/storefront-purchase-order/src/api/graphql/PurchaseOrderQuoteFragment.ts","/@dropins/storefront-purchase-order/src/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql.ts","/@dropins/storefront-purchase-order/src/api/getPurchaseOrder/getPurchaseOrder.ts","/@dropins/storefront-purchase-order/src/api/initialize/initialize.ts","/@dropins/storefront-purchase-order/src/api/validatePurchaseOrders/graphql/validatePurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/validatePurchaseOrders/validatePurchaseOrders.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderComment/graphql/addPurchaseOrderComment.graphql.ts","/@dropins/storefront-purchase-order/src/data/transforms/transform-cart.ts","/@dropins/storefront-purchase-order/src/data/transforms/transform-purchase-order-comment.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderComment/addPurchaseOrderComment.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderItemsToCart/graphql/addPurchaseOrderItemsToCart.graphql.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderItemsToCart/addPurchaseOrderItemsToCart.ts","/@dropins/storefront-purchase-order/src/api/placePurchaseOrder/graphql/placePurchaseOrder.graphql.ts","/@dropins/storefront-purchase-order/src/api/placePurchaseOrder/placePurchaseOrder.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\n/**\n * Limited Quote fragment for Purchase Order context\n * Some fields from full Cart type may not be available in purchase_order.quote\n */\nexport const PURCHASE_ORDER_QUOTE_FRAGMENT = /* GraphQL */ `\n fragment PURCHASE_ORDER_QUOTE_FRAGMENT on Cart {\n __typename\n id\n email\n is_virtual\n total_quantity\n applied_coupons {\n code\n }\n applied_gift_cards {\n code\n applied_balance {\n value\n currency\n }\n current_balance {\n value\n currency\n }\n expiration_date\n }\n applied_reward_points {\n money {\n value\n currency\n }\n points\n }\n applied_store_credit {\n applied_balance {\n value\n currency\n }\n current_balance {\n value\n currency\n }\n }\n available_gift_wrappings {\n uid\n design\n price {\n value\n currency\n }\n image {\n url\n label\n }\n }\n gift_message {\n from\n to\n message\n }\n gift_receipt_included\n gift_wrapping {\n uid\n design\n price {\n value\n currency\n }\n image {\n url\n label\n }\n }\n printed_card_included\n available_payment_methods {\n code\n title\n is_deferred\n }\n selected_payment_method {\n code\n title\n }\n billing_address {\n city\n company\n country {\n code\n label\n }\n firstname\n lastname\n postcode\n region {\n code\n label\n }\n street\n telephone\n custom_attributes {\n code\n }\n fax\n id\n middlename\n prefix\n suffix\n uid\n vat_id\n }\n shipping_addresses {\n city\n company\n country {\n code\n label\n }\n firstname\n lastname\n postcode\n region {\n code\n label\n }\n street\n telephone\n custom_attributes {\n code\n }\n fax\n id\n middlename\n prefix\n suffix\n uid\n vat_id\n available_shipping_methods {\n amount {\n value\n currency\n }\n carrier_code\n carrier_title\n method_code\n method_title\n }\n selected_shipping_method {\n amount {\n value\n currency\n }\n carrier_code\n carrier_title\n method_code\n method_title\n }\n }\n rules {\n uid\n }\n itemsV2(pageSize: 100, currentPage: 1) {\n items {\n uid\n quantity\n product {\n __typename\n uid\n name\n sku\n url_key\n canonical_url\n stock_status\n only_x_left_in_stock\n image {\n url\n label\n }\n small_image {\n url\n label\n }\n thumbnail {\n url\n label\n }\n price_range {\n maximum_price {\n regular_price {\n value\n currency\n }\n final_price {\n value\n currency\n }\n }\n }\n }\n prices {\n price {\n value\n currency\n }\n price_including_tax {\n value\n currency\n }\n original_item_price {\n value\n currency\n }\n original_row_total {\n value\n currency\n }\n row_total {\n value\n currency\n }\n row_total_including_tax {\n value\n currency\n }\n total_item_discount {\n value\n currency\n }\n discounts {\n label\n amount {\n value\n currency\n }\n }\n fixed_product_taxes {\n label\n amount {\n value\n currency\n }\n }\n }\n ... on SimpleCartItem {\n customizable_options {\n label\n values {\n label\n value\n }\n }\n }\n ... on ConfigurableCartItem {\n configurable_options {\n option_label\n value_label\n }\n }\n ... on BundleCartItem {\n bundle_options {\n uid\n label\n type\n values {\n uid\n label\n quantity\n }\n }\n }\n ... on DownloadableCartItem {\n links {\n uid\n title\n }\n }\n ... on GiftCardCartItem {\n sender_name\n sender_email\n recipient_name\n recipient_email\n message\n amount {\n value\n currency\n }\n }\n errors {\n code\n message\n }\n is_available\n max_qty\n min_qty\n not_available_message\n note_from_buyer {\n note_uid\n note\n created_at\n }\n note_from_seller {\n note_uid\n note\n created_at\n }\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n prices {\n grand_total {\n value\n currency\n }\n grand_total_excluding_tax {\n value\n currency\n }\n subtotal_excluding_tax {\n value\n currency\n }\n subtotal_including_tax {\n value\n currency\n }\n subtotal_with_discount_excluding_tax {\n value\n currency\n }\n applied_taxes {\n label\n amount {\n value\n currency\n }\n }\n discounts {\n label\n amount {\n value\n currency\n }\n }\n gift_options {\n gift_wrapping_for_items {\n value\n currency\n }\n gift_wrapping_for_items_incl_tax {\n value\n currency\n }\n gift_wrapping_for_order {\n value\n currency\n }\n gift_wrapping_for_order_incl_tax {\n value\n currency\n }\n printed_card {\n value\n currency\n }\n printed_card_incl_tax {\n value\n currency\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDER_QUOTE_FRAGMENT } from '../../graphql/PurchaseOrderQuoteFragment';\n\nexport const GET_PURCHASE_ORDER = /* GraphQL */ `\n query GET_PURCHASE_ORDER($uid: ID!) {\n customer {\n purchase_order(uid: $uid) {\n uid\n number\n created_at\n updated_at\n status\n available_actions\n created_by {\n firstname\n lastname\n email\n }\n order {\n id\n number\n total {\n grand_total {\n value\n currency\n }\n }\n }\n quote {\n ...PURCHASE_ORDER_QUOTE_FRAGMENT\n }\n }\n }\n }\n ${PURCHASE_ORDER_QUOTE_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { GET_PURCHASE_ORDER } from '@/b2b-purchase-order/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const getPurchaseOrder = async (\n uid: string\n): Promise<{\n purchaseOrder: PurchaseOrderModel;\n}> => {\n if (!uid || uid.trim() === '') {\n throw new Error('Purchase Order UID is required');\n }\n\n return fetchGraphQl(GET_PURCHASE_ORDER, {\n variables: { uid },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const result = response.data?.customer?.purchase_order;\n if (!result) {\n throw new Error('Failed to get purchase order');\n }\n\n return {\n purchaseOrder: transformPurchaseOrder(result),\n };\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Initializer } from '@adobe-commerce/elsie/lib';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { getPurchaseOrder } from '../getPurchaseOrder';\nimport { events } from '@adobe-commerce/event-bus';\n\ntype ConfigProps = {\n langDefinitions?: Lang;\n poRef?: string;\n};\n\nexport const initialize = new Initializer<ConfigProps>({\n init: async (config) => {\n const defaultConfig = {};\n\n initialize.config.setConfig({ ...defaultConfig, ...config });\n\n const isValidPoRef =\n typeof config?.poRef === 'string' && config.poRef.trim() !== '';\n\n if (isValidPoRef) {\n const result = await getPurchaseOrder(config!.poRef!);\n\n if (result?.purchaseOrder?.quote) {\n events.emit('order/data', {\n ...result.purchaseOrder.quote,\n // @ts-ignore\n poNumber: result?.purchaseOrder?.number,\n });\n }\n }\n },\n\n listeners: () => [],\n});\n\nexport const config = initialize.config;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const VALIDATE_PURCHASE_ORDERS = /* GraphQL */ `\n mutation VALIDATE_PURCHASE_ORDERS($input: ValidatePurchaseOrdersInput!) {\n validatePurchaseOrders(input: $input) {\n errors {\n message\n type\n }\n purchase_orders {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { VALIDATE_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/validatePurchaseOrders/graphql/validatePurchaseOrders.graphql';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\n\nexport const validatePurchaseOrders = async (\n uids: string | string[]\n): Promise<{\n errors: { message: string; type: string }[];\n purchaseOrders: PurchaseOrderModel[];\n}> => {\n const uidArray = Array.isArray(uids) ? uids : [uids];\n\n if (!uidArray || uidArray.length === 0) {\n throw new Error('Purchase Order UID(s) are required');\n }\n\n if (uidArray.some((uid) => !uid || uid.trim() === '')) {\n throw new Error('All Purchase Order UIDs must be valid');\n }\n\n const input = {\n purchase_order_uids: uidArray,\n };\n\n return fetchGraphQl(VALIDATE_PURCHASE_ORDERS, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const data = response.data?.validatePurchaseOrders;\n\n return {\n errors: (data?.errors ?? []).map((error: any) => ({\n message: error?.message ?? '',\n type: error?.type ?? '',\n })),\n purchaseOrders: (data?.purchase_orders || []).map(\n transformPurchaseOrder\n ),\n };\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const ADD_PURCHASE_ORDER_COMMENT = /* GraphQL */ `\n mutation ADD_PURCHASE_ORDER_COMMENT(\n $purchaseOrderUid: ID!\n $comment: String!\n ) {\n addPurchaseOrderComment(\n input: { purchase_order_uid: $purchaseOrderUid, comment: $comment }\n ) {\n comment {\n created_at\n text\n uid\n author {\n allow_remote_shopping_assistance\n confirmation_status\n created_at\n date_of_birth\n email\n firstname\n gender\n job_title\n lastname\n middlename\n prefix\n status\n structure_id\n suffix\n telephone\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CartModel } from '@/b2b-purchase-order/data/models';\n\nexport const transformCart = (data: any): CartModel => {\n const cartItems = data?.cart?.itemsV2?.items ?? [];\n\n return {\n cart: {\n id: data?.cart?.id ?? '',\n items: cartItems.map((item: any) => ({\n uid: item?.uid ?? '',\n quantity: item?.quantity ?? 0,\n product: {\n uid: item?.product?.uid ?? '',\n name: item?.product?.name ?? '',\n sku: item?.product?.sku ?? '',\n },\n })),\n pagination: {\n currentPage: data?.cart?.itemsV2?.page_info?.current_page ?? 1,\n pageSize: data?.cart?.itemsV2?.page_info?.page_size ?? 20,\n totalPages: data?.cart?.itemsV2?.page_info?.total_pages ?? 0,\n totalCount: data?.cart?.itemsV2?.total_count ?? 0,\n },\n },\n userErrors:\n data?.user_errors?.map((error: any) => ({\n message: error?.message ?? '',\n })) ?? [],\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PurchaseOrderCommentModel } from '@/b2b-purchase-order/data/models';\n\nexport const transformPurchaseOrderComment = (\n comment: any\n): PurchaseOrderCommentModel => {\n return {\n createdAt: comment?.created_at ?? '',\n text: comment?.text ?? '',\n uid: comment?.uid ?? '',\n author: {\n allowRemoteShoppingAssistance:\n comment?.author?.allow_remote_shopping_assistance ?? false,\n confirmationStatus: comment?.author?.confirmation_status ?? '',\n createdAt: comment?.author?.created_at ?? '',\n dateOfBirth: comment?.author?.date_of_birth ?? '',\n email: comment?.author?.email ?? '',\n firstname: comment?.author?.firstname ?? '',\n gender: comment?.author?.gender ?? 0,\n jobTitle: comment?.author?.job_title ?? '',\n lastname: comment?.author?.lastname ?? '',\n middlename: comment?.author?.middlename ?? '',\n prefix: comment?.author?.prefix ?? '',\n status: comment?.author?.status ?? '',\n structureId: comment?.author?.structure_id ?? '',\n suffix: comment?.author?.suffix ?? '',\n telephone: comment?.author?.telephone ?? '',\n },\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { ADD_PURCHASE_ORDER_COMMENT } from '@/b2b-purchase-order/api/addPurchaseOrderComment/graphql/addPurchaseOrderComment.graphql';\nimport { transformPurchaseOrderComment } from '@/b2b-purchase-order/data/transforms';\nimport { PurchaseOrderCommentModel } from '@/b2b-purchase-order/data/models';\n\nexport const addPurchaseOrderComment = async (\n uid: string,\n comment: string\n): Promise<PurchaseOrderCommentModel> => {\n if (!uid) {\n throw new Error('Purchase Order ID is required');\n }\n\n if (!comment) {\n throw new Error('Comment text is required');\n }\n\n const variables = {\n purchaseOrderUid: uid,\n comment,\n };\n\n return fetchGraphQl(ADD_PURCHASE_ORDER_COMMENT, {\n variables,\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n return transformPurchaseOrderComment(\n response.data?.addPurchaseOrderComment?.comment\n );\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const ADD_PURCHASE_ORDER_ITEMS_TO_CART = /* GraphQL */ `\n mutation ADD_PURCHASE_ORDER_ITEMS_TO_CART(\n $purchaseOrderUid: ID!\n $cartId: String!\n $replaceExistingCartItems: Boolean!\n ) {\n addPurchaseOrderItemsToCart(\n input: {\n purchase_order_uid: $purchaseOrderUid\n cart_id: $cartId\n replace_existing_cart_items: $replaceExistingCartItems\n }\n ) {\n cart {\n id\n itemsV2 {\n items {\n uid\n quantity\n product {\n uid\n name\n sku\n }\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { transformCart } from '@/b2b-purchase-order/data/transforms';\nimport { ADD_PURCHASE_ORDER_ITEMS_TO_CART } from '@/b2b-purchase-order/api/addPurchaseOrderItemsToCart/graphql/addPurchaseOrderItemsToCart.graphql';\nimport { CartModel } from '@/b2b-purchase-order/data/models';\n\nexport const addPurchaseOrderItemsToCart = async (\n purchaseOrderUid: string,\n cartId: string,\n replaceExistingCartItems: boolean = false\n): Promise<CartModel> => {\n if (!purchaseOrderUid) {\n throw new Error('Purchase Order UID is required');\n }\n\n if (!cartId) {\n throw new Error('Cart ID is required');\n }\n\n const variables = {\n purchaseOrderUid,\n cartId,\n replaceExistingCartItems,\n };\n\n return fetchGraphQl(ADD_PURCHASE_ORDER_ITEMS_TO_CART, {\n variables,\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const cartData = response.data?.addPurchaseOrderItemsToCart;\n if (!cartData?.cart) {\n throw new Error('Failed to add purchase order items to cart');\n }\n\n return transformCart(cartData);\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const PLACE_PURCHASE_ORDER = /* GraphQL */ `\n mutation PLACE_PURCHASE_ORDER($input: PlacePurchaseOrderInput!) {\n placePurchaseOrder(input: $input) {\n purchase_order {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { PLACE_PURCHASE_ORDER } from '@/b2b-purchase-order/api/placePurchaseOrder/graphql/placePurchaseOrder.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const placePurchaseOrder = async (\n cartId: string\n): Promise<{ purchaseOrder: PurchaseOrderModel }> => {\n if (!cartId || cartId.trim() === '') {\n throw new Error('Cart ID is required');\n }\n\n const input = {\n cart_id: cartId,\n };\n\n return fetchGraphQl(PLACE_PURCHASE_ORDER, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const rawPurchaseOrder =\n response.data?.placePurchaseOrder?.purchase_order;\n\n const purchaseOrder = transformPurchaseOrder(rawPurchaseOrder);\n\n events.emit('purchase-order/placed', purchaseOrder);\n\n return {\n purchaseOrder,\n };\n })\n .catch(handleNetworkError);\n};\n"],"names":["PURCHASE_ORDER_QUOTE_FRAGMENT","GET_PURCHASE_ORDER","getPurchaseOrder","uid","fetchGraphQl","response","_a","handleFetchError","result","_c","_b","transformPurchaseOrder","handleNetworkError","initialize","Initializer","config","defaultConfig","events","VALIDATE_PURCHASE_ORDERS","PURCHASE_ORDERS_FRAGMENT","validatePurchaseOrders","uids","uidArray","data","error","ADD_PURCHASE_ORDER_COMMENT","transformCart","cartItems","item","_f","_e","_d","_i","_h","_g","_l","_k","_j","_n","_m","_o","transformPurchaseOrderComment","comment","addPurchaseOrderComment","ADD_PURCHASE_ORDER_ITEMS_TO_CART","addPurchaseOrderItemsToCart","purchaseOrderUid","cartId","replaceExistingCartItems","cartData","PLACE_PURCHASE_ORDER","placePurchaseOrder","rawPurchaseOrder","purchaseOrder"],"mappings":"u4BAqBO,MAAMA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{jsx as _}from"@dropins/tools/preact-jsx-runtime.js";import{useState as g,useEffect as $,useCallback as l,useMemo as N}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import{i as X}from"./pageSize.config.js";import{r as ee,a as re}from"./rejectPurchaseOrders.js";import{g as te}from"./getPurchaseOrders.js";import{d as ne,a as se}from"./FormLoader.js";import{Text as ce}from"@dropins/tools/i18n.js";const j=(c,I="en-US")=>{try{const a=new Date(c);return isNaN(a.getTime())?c:a.toLocaleString(I,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!0})}catch{return c}};var T=(c=>(c.CUSTOMER_PURCHASE_ORDERS="customerPurchaseOrders",c.COMPANY_PURCHASE_ORDERS="companyPurchaseOrders",c.CUSTOMER_APPROVAL_PURCHASE_ORDERS="customerApprovalPurchaseOrders",c))(T||{});const ae=20,fe=({view:c,initialPageSize:I,routePurchaseOrderDetails:a,setColumns:y,setRowsData:k,t:s,permissions:D,loadingPermissions:L})=>{const C=c===T.COMPANY_PURCHASE_ORDERS,o=c===T.CUSTOMER_APPROVAL_PURCHASE_ORDERS,[d,E]=g([]),[h,U]=g([]),[p,z]=g(I),[
|
|
3
|
+
import{jsx as _}from"@dropins/tools/preact-jsx-runtime.js";import{useState as g,useEffect as $,useCallback as l,useMemo as N}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import{i as X}from"./pageSize.config.js";import{r as ee,a as re}from"./rejectPurchaseOrders.js";import{g as te}from"./getPurchaseOrders.js";import{d as ne,a as se}from"./FormLoader.js";import{Text as ce}from"@dropins/tools/i18n.js";const j=(c,I="en-US")=>{try{const a=new Date(c);return isNaN(a.getTime())?c:a.toLocaleString(I,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!0})}catch{return c}};var T=(c=>(c.CUSTOMER_PURCHASE_ORDERS="customerPurchaseOrders",c.COMPANY_PURCHASE_ORDERS="companyPurchaseOrders",c.CUSTOMER_APPROVAL_PURCHASE_ORDERS="customerApprovalPurchaseOrders",c))(T||{});const ae=20,fe=({view:c,initialPageSize:I,routePurchaseOrderDetails:a,setColumns:y,setRowsData:k,t:s,permissions:D,loadingPermissions:L})=>{const C=c===T.COMPANY_PURCHASE_ORDERS,o=c===T.CUSTOMER_APPROVAL_PURCHASE_ORDERS,[d,E]=g([]),[h,U]=g([]),[p,z]=g(I),[G,f]=g(!0),[q,V]=g({currentPage:1,totalPages:1,totalCount:0}),[P,m]=g({heading:"",description:"",type:"success"});$(()=>{if(P.heading||P.description){const r=setTimeout(()=>{m({heading:"",description:"",type:"success"})},7e3);return()=>clearTimeout(r)}},[P.heading,P.description]);const{currentPage:v,totalPages:B,totalCount:Q}=q,F=l(r=>{const n=r.target.value;z(e=>e.map(t=>({...t,selected:t.value===n})))},[]),A=(D==null?void 0:D.isAdmin)??!1,H=N(()=>{let r={};return C&&(r={companyPurchaseOrders:!0}),o&&(r={myApprovals:!0}),r},[C,o]);$(()=>{var e;if(L)return;f(!0);const r=(e=p==null?void 0:p.find(t=>t.selected))==null?void 0:e.value,n=parseInt(r??ae.toString(),10);te(H,n,v).then(t=>{var O,R;const i=(t==null?void 0:t.purchaseOrderItems)??[],u=(O=t==null?void 0:t.pageInfo)==null?void 0:O.currentPage,S=(R=t==null?void 0:t.pageInfo)==null?void 0:R.totalPages,b=t==null?void 0:t.totalCount;V({currentPage:u,totalPages:S,totalCount:b}),U(i)}).catch(t=>{console.error("Failed to fetch purchase orders:",t)}).finally(()=>{f(!1)})},[v,p,H,L]);const M=l(r=>{const n=a==null?void 0:a(r);return X(n??"")?n:"#"},[a]),Y=l(r=>{V(n=>({...n,currentPage:r}))},[]),w=l(r=>{const n=r.target.value,e=r.target.checked;E(t=>e?[...t,n]:t.filter(i=>i!==n))},[]),x=l(r=>{const n=r.target.checked;E(()=>n?h.filter(e=>["PENDING","APPROVAL_REQUIRED"].includes(e.status)).map(e=>e.uid??""):[])},[h]),Z=l(()=>{ee(d).then(r=>{const n=(r==null?void 0:r.purchaseOrders)??[];U(e=>e.map(t=>n.find(u=>u.uid===t.uid)??t)),m({heading:s.alertHeaderReject,description:s.alertDescriptionReject,type:"success"}),E([])}).catch(r=>{m({heading:s.alertHeaderError,description:s.alertDescriptionError,type:"error"}),console.error(r)}).finally(()=>{f(!1)})},[d,s]),J=l(()=>{f(!0),re(d).then(r=>{const n=(r==null?void 0:r.purchaseOrders)??[];U(e=>e.map(t=>n.find(u=>u.uid===t.uid)??t)),m({heading:s.alertHeaderApprove,description:s.alertDescriptionApprove,type:"success"}),E([])}).catch(r=>{m({heading:s.alertHeaderError,description:s.alertDescriptionError,type:"error"}),console.error(r)}).finally(()=>{f(!1)})},[d,s]),K=N(()=>{const r=C||o?ne:se;return(y==null?void 0:y(r))??r.map(n=>n.key==="checkboxView"&&(A||o)?{key:n.key,label:_("input",{type:"checkbox",name:"selectAll",disabled:h.every(e=>!["PENDING","APPROVAL_REQUIRED"].includes(e.status)),onChange:x}),ariaLabel:s.selectAllAriaLabel}:{...n,label:s[n.key]||n.label})},[s,A,C,o,y,h,x]),W=N(()=>{const r=h.map(e=>{var i,u,S,b,O,R;const t=e.number??"";return{...A||o?{checkboxView:_("input",{type:"checkbox",name:t,value:e.uid,checked:d.includes(e.uid),onChange:w,disabled:!["PENDING","APPROVAL_REQUIRED"].includes(e.status)})}:{},poNumber:t,orderNumber:e.order.orderNumber,createdDate:j(e.createdAt),updatedDate:j(e.updatedAt),createdBy:`${((i=e.createdBy)==null?void 0:i.firstname)??""} ${((u=e.createdBy)==null?void 0:u.lastname)??""}`.trim(),status:_(ce,{id:`PurchaseOrders.purchaseOrdersTable.statusOrder.${e.status.toLowerCase()}`}),total:`${(b=(S=e==null?void 0:e.quote)==null?void 0:S.grandTotal)==null?void 0:b.value} ${(R=(O=e==null?void 0:e.quote)==null?void 0:O.grandTotal)==null?void 0:R.currency}`,action:_("a",{href:M(e.uid??""),"aria-label":`View purchase order ${t}`,children:s.actionView})}});let n=r;if(k){const e=k(r);e!==void 0&&Array.isArray(e)&&(n=e)}return n},[h,k,A,o,d,w,M,s.actionView]);return{tableConfig:{columns:K,rows:W},paginationConfig:{currentPage:v,totalPages:B,handlePageChange:Y},pageSizeConfig:{pageSizeOptionsList:p,onChange:F},totalCount:Q,loading:G,selectedOrderIds:d,handleRejectSelected:Z,handleApproveSelected:J,isAdmin:A,isRequireApprovalPOsView:o,alertMessageConfig:P}};export{T as E,fe as u};
|
|
4
4
|
//# sourceMappingURL=usePurchaseOrders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/lib/formatDate.ts","/@dropins/storefront-purchase-order/src/types/api/api.enums.types.ts","/@dropins/storefront-purchase-order/src/hooks/usePurchaseOrders.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\n/**\n * Format a date string to a localized format like \"Sep 8, 2025 6:32:13 AM\"\n * @param dateString - ISO date string or date string\n * @param locale - Locale for formatting (defaults to 'en-US')\n * @returns Formatted date string\n */\nexport const formatDate = (\n dateString: string,\n locale: string = 'en-US'\n): string => {\n try {\n const date = new Date(dateString);\n\n if (isNaN(date.getTime())) {\n return dateString; // Return original if invalid\n }\n\n return date.toLocaleString(locale, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n second: '2-digit',\n hour12: true,\n });\n } catch (error) {\n return dateString; // Return original on error\n }\n};\n","export enum PurchaseOrderApprovalRuleStatus {\n ENABLED = 'ENABLED',\n DISABLED = 'DISABLED',\n}\n\nexport enum PurchaseOrderApprovalRuleType {\n GRAND_TOTAL = 'GRAND_TOTAL',\n SHIPPING_INCL_TAX = 'SHIPPING_INCL_TAX',\n NUMBER_OF_SKUS = 'NUMBER_OF_SKUS',\n}\n\nexport enum PurchaseOrderApprovalRuleConditionOperator {\n MORE_THAN = 'MORE_THAN',\n LESS_THAN = 'LESS_THAN',\n MORE_THAN_OR_EQUAL_TO = 'MORE_THAN_OR_EQUAL_TO',\n LESS_THAN_OR_EQUAL_TO = 'LESS_THAN_OR_EQUAL_TO',\n}\n\nexport enum EnumPurchaseOrdersView {\n CUSTOMER_PURCHASE_ORDERS = 'customerPurchaseOrders',\n COMPANY_PURCHASE_ORDERS = 'companyPurchaseOrders',\n CUSTOMER_APPROVAL_PURCHASE_ORDERS = 'customerApprovalPurchaseOrders',\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport React from 'preact/compat';\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport { formatDate, isValidUrl } from '@/b2b-purchase-order/lib';\nimport {\n AlertMessageConfigType,\n UsePurchaseOrdersParams,\n UsePurchaseOrdersReturn,\n} from '@/b2b-purchase-order/types/hooks';\nimport { EnumPurchaseOrdersView } from '@/b2b-purchase-order/types/api';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { Column } from '@/b2b-purchase-order/types/components';\nimport {\n approvePurchaseOrders,\n getPurchaseOrders,\n rejectPurchaseOrders,\n} from '@/b2b-purchase-order/api';\nimport {\n defaultColumns,\n defaultCompanyColumns,\n} from '@/b2b-purchase-order/configs';\nimport { Text } from '@adobe-commerce/elsie/i18n';\n\nconst DEFAULT_PAGE_SIZE = 20;\n\nexport const usePurchaseOrders = ({\n view,\n initialPageSize,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n t,\n permissions,\n loadingPermissions,\n}: UsePurchaseOrdersParams): UsePurchaseOrdersReturn => {\n const isCompanyPOsView =\n view === EnumPurchaseOrdersView.COMPANY_PURCHASE_ORDERS;\n const isRequireApprovalPOsView =\n view === EnumPurchaseOrdersView.CUSTOMER_APPROVAL_PURCHASE_ORDERS;\n const [selectedOrderIds, setSelectedOrderIds] = useState<string[]>([]);\n const [purchaseOrders, setPurchaseOrders] = useState<PurchaseOrderModel[]>(\n []\n );\n const [pageSizeOptionsList, setPageSizeOptionsList] =\n useState(initialPageSize);\n const [loading, setLoading] = useState<boolean>(true);\n const [pagination, setPagination] = useState({\n currentPage: 1,\n totalPages: 1,\n totalCount: 0,\n });\n const [alertMessageConfig, setAlertMessageConfig] =\n useState<AlertMessageConfigType>({\n heading: '',\n description: '',\n type: 'success',\n });\n\n // Auto-clear alert message after 7 seconds\n useEffect(() => {\n if (alertMessageConfig.heading || alertMessageConfig.description) {\n const timer = setTimeout(() => {\n setAlertMessageConfig({\n heading: '',\n description: '',\n type: 'success',\n });\n }, 7000);\n\n return () => clearTimeout(timer);\n }\n }, [alertMessageConfig.heading, alertMessageConfig.description]);\n\n // Derive pagination values\n const { currentPage, totalPages, totalCount } = pagination;\n\n const handleChangePageSize = useCallback((event: Event) => {\n const size = (event.target as HTMLSelectElement).value;\n\n setPageSizeOptionsList((prev) => {\n return prev.map((option) => ({\n ...option,\n selected: option.value === size,\n }));\n });\n }, []);\n\n const isAdmin = permissions?.isAdmin ?? false;\n\n const filterConfig = useMemo(() => {\n let config = {};\n\n if (isCompanyPOsView) {\n config = { companyPurchaseOrders: true };\n }\n\n if (isRequireApprovalPOsView) {\n config = { requireMyApproval: true };\n }\n\n return config;\n }, [isCompanyPOsView, isRequireApprovalPOsView]);\n\n useEffect(() => {\n // Don't fetch purchase orders until permissions are loaded\n if (loadingPermissions) {\n return;\n }\n\n setLoading(true);\n const pageSize = pageSizeOptionsList?.find(\n (option) => option.selected\n )?.value;\n const selectedPageSize = parseInt(\n pageSize ?? DEFAULT_PAGE_SIZE.toString(),\n 10\n );\n\n getPurchaseOrders(filterConfig, selectedPageSize, currentPage)\n .then((data) => {\n const purchaseOrders = data?.purchaseOrderItems ?? [];\n const responsePage = data?.pageInfo?.currentPage;\n const responseTotalPages = data?.pageInfo?.totalPages;\n const responseTotalCount = data?.totalCount;\n\n setPagination({\n currentPage: responsePage,\n totalPages: responseTotalPages,\n totalCount: responseTotalCount,\n });\n setPurchaseOrders(purchaseOrders);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error('Failed to fetch purchase orders:', error);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [currentPage, pageSizeOptionsList, filterConfig, loadingPermissions]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handlePurchaseOrderDetailsRedirect = useCallback(\n (poNumber: string): string => {\n const url = routePurchaseOrderDetails?.(poNumber) as string;\n\n if (!isValidUrl(url ?? '')) return '#';\n\n return url;\n },\n [routePurchaseOrderDetails]\n );\n\n const handlePageChange = useCallback((page: number) => {\n setPagination((prev) => ({ ...prev, currentPage: page }));\n }, []);\n\n const handleSelectedOrderId = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const uid = (event.target as HTMLInputElement).value;\n const isChecked = (event.target as HTMLInputElement).checked;\n\n setSelectedOrderIds((prevSelected) => {\n if (isChecked) {\n return [...prevSelected, uid];\n }\n return prevSelected.filter((po) => po !== uid);\n });\n },\n []\n );\n\n const handleSelectedOrderIds = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = (event.target as HTMLInputElement).checked;\n setSelectedOrderIds(() =>\n isChecked\n ? purchaseOrders\n .filter((po) =>\n ['PENDING', 'APPROVAL_REQUIRED'].includes(po.status)\n )\n .map((po) => po.uid ?? '')\n : []\n );\n },\n [purchaseOrders]\n );\n\n const handleRejectSelected = useCallback(() => {\n rejectPurchaseOrders(selectedOrderIds)\n .then((data) => {\n const purchaseOrders = data?.purchaseOrders ?? [];\n setPurchaseOrders((prev) => {\n return prev.map((po) => {\n const updatedPo = purchaseOrders.find(\n (updated) => updated.uid === po.uid\n );\n return updatedPo ?? po;\n });\n });\n setAlertMessageConfig({\n heading: t.alertHeaderReject,\n description: t.alertDescriptionReject,\n type: 'success',\n });\n setSelectedOrderIds([]);\n })\n .catch((err) => {\n // eslint-disable-next-line no-console\n setAlertMessageConfig({\n heading: t.alertHeaderError,\n description: t.alertDescriptionError,\n type: 'error',\n });\n console.error(err);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [selectedOrderIds, t]);\n\n const handleApproveSelected = useCallback(() => {\n setLoading(true);\n approvePurchaseOrders(selectedOrderIds)\n .then((data) => {\n const purchaseOrders = data?.purchaseOrders ?? [];\n setPurchaseOrders((prev) => {\n return prev.map((po) => {\n const updatedPo = purchaseOrders.find(\n (updated) => updated.uid === po.uid\n );\n return updatedPo ?? po;\n });\n });\n setAlertMessageConfig({\n heading: t.alertHeaderApprove,\n description: t.alertDescriptionApprove,\n type: 'success',\n });\n setSelectedOrderIds([]);\n })\n .catch((err) => {\n setAlertMessageConfig({\n heading: t.alertHeaderError,\n description: t.alertDescriptionError,\n type: 'error',\n });\n console.error(err);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [selectedOrderIds, t]);\n\n const columns = useMemo(() => {\n const currentColumns =\n isCompanyPOsView || isRequireApprovalPOsView\n ? defaultCompanyColumns\n : defaultColumns;\n\n return (\n setColumns?.(currentColumns) ??\n currentColumns.map((col) => {\n if (\n col.key === 'checkboxView' &&\n (isAdmin || isRequireApprovalPOsView)\n ) {\n return {\n key: col.key,\n label: (\n <input\n type=\"checkbox\"\n name={'selectAll'}\n disabled={purchaseOrders.every(\n (po) => !['PENDING', 'APPROVAL_REQUIRED'].includes(po.status)\n )}\n onChange={handleSelectedOrderIds}\n />\n ),\n ariaLabel: t.selectAllAriaLabel,\n } as Column;\n }\n\n return {\n ...col,\n label: t[col.key as keyof typeof t] || col.label,\n } as Column;\n })\n );\n }, [\n t,\n isAdmin,\n isCompanyPOsView,\n isRequireApprovalPOsView,\n setColumns,\n purchaseOrders,\n handleSelectedOrderIds,\n ]);\n\n const rows = useMemo(() => {\n const formattedPurchaseOrders = purchaseOrders.map((po) => {\n const poNumber = po.number ?? '';\n\n return {\n ...(isAdmin || isRequireApprovalPOsView\n ? {\n checkboxView: (\n <input\n type=\"checkbox\"\n name={poNumber}\n value={po.uid}\n checked={selectedOrderIds.includes(po.uid)}\n onChange={handleSelectedOrderId}\n disabled={\n !['PENDING', 'APPROVAL_REQUIRED'].includes(po.status)\n }\n />\n ),\n }\n : {}),\n poNumber,\n orderNumber: po.order.orderNumber,\n createdDate: formatDate(po.createdAt),\n updatedDate: formatDate(po.updatedAt),\n createdBy: `${po.createdBy?.firstname ?? ''} ${\n po.createdBy?.lastname ?? ''\n }`.trim(),\n status: (\n <Text\n id={`PurchaseOrders.purchaseOrdersTable.statusOrder.${po.status.toLowerCase()}`}\n />\n ),\n total: `${po?.quote?.grandTotal?.value} ${po?.quote?.grandTotal?.currency}`,\n action: (\n <a\n href={handlePurchaseOrderDetailsRedirect(po.uid ?? '')}\n aria-label={`View purchase order ${poNumber}`}\n >\n {t.actionView}\n </a>\n ),\n };\n });\n\n let finalRows = formattedPurchaseOrders;\n\n if (setRowsData) {\n const customRows = setRowsData(formattedPurchaseOrders);\n // If setRowsData returns something, use it, otherwise keep original data\n if (customRows !== undefined && Array.isArray(customRows)) {\n finalRows = customRows as typeof formattedPurchaseOrders;\n }\n }\n\n return finalRows;\n }, [\n purchaseOrders,\n setRowsData,\n isAdmin,\n isRequireApprovalPOsView,\n selectedOrderIds,\n handleSelectedOrderId,\n handlePurchaseOrderDetailsRedirect,\n t.actionView,\n ]);\n\n return {\n tableConfig: {\n columns,\n rows,\n },\n paginationConfig: {\n currentPage,\n totalPages,\n handlePageChange,\n },\n pageSizeConfig: {\n pageSizeOptionsList,\n onChange: handleChangePageSize,\n },\n totalCount,\n loading,\n selectedOrderIds,\n handleRejectSelected,\n handleApproveSelected,\n isAdmin,\n isRequireApprovalPOsView,\n alertMessageConfig,\n };\n};\n"],"names":["formatDate","dateString","locale","date","EnumPurchaseOrdersView","DEFAULT_PAGE_SIZE","usePurchaseOrders","view","initialPageSize","routePurchaseOrderDetails","setColumns","setRowsData","t","permissions","loadingPermissions","isCompanyPOsView","isRequireApprovalPOsView","selectedOrderIds","setSelectedOrderIds","useState","purchaseOrders","setPurchaseOrders","pageSizeOptionsList","setPageSizeOptionsList","loading","setLoading","pagination","setPagination","alertMessageConfig","setAlertMessageConfig","useEffect","timer","currentPage","totalPages","totalCount","handleChangePageSize","useCallback","event","size","prev","option","isAdmin","filterConfig","useMemo","config","pageSize","_a","selectedPageSize","getPurchaseOrders","data","responsePage","responseTotalPages","_b","responseTotalCount","error","handlePurchaseOrderDetailsRedirect","poNumber","url","isValidUrl","handlePageChange","page","handleSelectedOrderId","uid","isChecked","prevSelected","po","handleSelectedOrderIds","handleRejectSelected","rejectPurchaseOrders","updated","err","handleApproveSelected","approvePurchaseOrders","columns","currentColumns","defaultCompanyColumns","defaultColumns","col","jsx","rows","formattedPurchaseOrders","Text","_d","_c","_f","_e","finalRows","customRows"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/lib/formatDate.ts","/@dropins/storefront-purchase-order/src/types/api/api.enums.types.ts","/@dropins/storefront-purchase-order/src/hooks/usePurchaseOrders.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\n/**\n * Format a date string to a localized format like \"Sep 8, 2025 6:32:13 AM\"\n * @param dateString - ISO date string or date string\n * @param locale - Locale for formatting (defaults to 'en-US')\n * @returns Formatted date string\n */\nexport const formatDate = (\n dateString: string,\n locale: string = 'en-US'\n): string => {\n try {\n const date = new Date(dateString);\n\n if (isNaN(date.getTime())) {\n return dateString; // Return original if invalid\n }\n\n return date.toLocaleString(locale, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n second: '2-digit',\n hour12: true,\n });\n } catch (error) {\n return dateString; // Return original on error\n }\n};\n","export enum PurchaseOrderApprovalRuleStatus {\n ENABLED = 'ENABLED',\n DISABLED = 'DISABLED',\n}\n\nexport enum PurchaseOrderApprovalRuleType {\n GRAND_TOTAL = 'GRAND_TOTAL',\n SHIPPING_INCL_TAX = 'SHIPPING_INCL_TAX',\n NUMBER_OF_SKUS = 'NUMBER_OF_SKUS',\n}\n\nexport enum PurchaseOrderApprovalRuleConditionOperator {\n MORE_THAN = 'MORE_THAN',\n LESS_THAN = 'LESS_THAN',\n MORE_THAN_OR_EQUAL_TO = 'MORE_THAN_OR_EQUAL_TO',\n LESS_THAN_OR_EQUAL_TO = 'LESS_THAN_OR_EQUAL_TO',\n}\n\nexport enum EnumPurchaseOrdersView {\n CUSTOMER_PURCHASE_ORDERS = 'customerPurchaseOrders',\n COMPANY_PURCHASE_ORDERS = 'companyPurchaseOrders',\n CUSTOMER_APPROVAL_PURCHASE_ORDERS = 'customerApprovalPurchaseOrders',\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport React from 'preact/compat';\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport { formatDate, isValidUrl } from '@/b2b-purchase-order/lib';\nimport {\n AlertMessageConfigType,\n UsePurchaseOrdersParams,\n UsePurchaseOrdersReturn,\n} from '@/b2b-purchase-order/types/hooks';\nimport { EnumPurchaseOrdersView } from '@/b2b-purchase-order/types/api';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { Column } from '@/b2b-purchase-order/types/components';\nimport {\n approvePurchaseOrders,\n getPurchaseOrders,\n rejectPurchaseOrders,\n} from '@/b2b-purchase-order/api';\nimport {\n defaultColumns,\n defaultCompanyColumns,\n} from '@/b2b-purchase-order/configs';\nimport { Text } from '@adobe-commerce/elsie/i18n';\n\nconst DEFAULT_PAGE_SIZE = 20;\n\nexport const usePurchaseOrders = ({\n view,\n initialPageSize,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n t,\n permissions,\n loadingPermissions,\n}: UsePurchaseOrdersParams): UsePurchaseOrdersReturn => {\n const isCompanyPOsView =\n view === EnumPurchaseOrdersView.COMPANY_PURCHASE_ORDERS;\n const isRequireApprovalPOsView =\n view === EnumPurchaseOrdersView.CUSTOMER_APPROVAL_PURCHASE_ORDERS;\n const [selectedOrderIds, setSelectedOrderIds] = useState<string[]>([]);\n const [purchaseOrders, setPurchaseOrders] = useState<PurchaseOrderModel[]>(\n []\n );\n const [pageSizeOptionsList, setPageSizeOptionsList] =\n useState(initialPageSize);\n const [loading, setLoading] = useState<boolean>(true);\n const [pagination, setPagination] = useState({\n currentPage: 1,\n totalPages: 1,\n totalCount: 0,\n });\n const [alertMessageConfig, setAlertMessageConfig] =\n useState<AlertMessageConfigType>({\n heading: '',\n description: '',\n type: 'success',\n });\n\n // Auto-clear alert message after 7 seconds\n useEffect(() => {\n if (alertMessageConfig.heading || alertMessageConfig.description) {\n const timer = setTimeout(() => {\n setAlertMessageConfig({\n heading: '',\n description: '',\n type: 'success',\n });\n }, 7000);\n\n return () => clearTimeout(timer);\n }\n }, [alertMessageConfig.heading, alertMessageConfig.description]);\n\n // Derive pagination values\n const { currentPage, totalPages, totalCount } = pagination;\n\n const handleChangePageSize = useCallback((event: Event) => {\n const size = (event.target as HTMLSelectElement).value;\n\n setPageSizeOptionsList((prev) => {\n return prev.map((option) => ({\n ...option,\n selected: option.value === size,\n }));\n });\n }, []);\n\n const isAdmin = permissions?.isAdmin ?? false;\n\n const filterConfig = useMemo(() => {\n let config = {};\n\n if (isCompanyPOsView) {\n config = { companyPurchaseOrders: true };\n }\n\n if (isRequireApprovalPOsView) {\n config = { myApprovals: true };\n }\n\n return config;\n }, [isCompanyPOsView, isRequireApprovalPOsView]);\n\n useEffect(() => {\n // Don't fetch purchase orders until permissions are loaded\n if (loadingPermissions) {\n return;\n }\n\n setLoading(true);\n const pageSize = pageSizeOptionsList?.find(\n (option) => option.selected\n )?.value;\n const selectedPageSize = parseInt(\n pageSize ?? DEFAULT_PAGE_SIZE.toString(),\n 10\n );\n\n getPurchaseOrders(filterConfig, selectedPageSize, currentPage)\n .then((data) => {\n const purchaseOrders = data?.purchaseOrderItems ?? [];\n const responsePage = data?.pageInfo?.currentPage;\n const responseTotalPages = data?.pageInfo?.totalPages;\n const responseTotalCount = data?.totalCount;\n\n setPagination({\n currentPage: responsePage,\n totalPages: responseTotalPages,\n totalCount: responseTotalCount,\n });\n setPurchaseOrders(purchaseOrders);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error('Failed to fetch purchase orders:', error);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [currentPage, pageSizeOptionsList, filterConfig, loadingPermissions]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handlePurchaseOrderDetailsRedirect = useCallback(\n (poNumber: string): string => {\n const url = routePurchaseOrderDetails?.(poNumber) as string;\n\n if (!isValidUrl(url ?? '')) return '#';\n\n return url;\n },\n [routePurchaseOrderDetails]\n );\n\n const handlePageChange = useCallback((page: number) => {\n setPagination((prev) => ({ ...prev, currentPage: page }));\n }, []);\n\n const handleSelectedOrderId = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const uid = (event.target as HTMLInputElement).value;\n const isChecked = (event.target as HTMLInputElement).checked;\n\n setSelectedOrderIds((prevSelected) => {\n if (isChecked) {\n return [...prevSelected, uid];\n }\n return prevSelected.filter((po) => po !== uid);\n });\n },\n []\n );\n\n const handleSelectedOrderIds = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = (event.target as HTMLInputElement).checked;\n setSelectedOrderIds(() =>\n isChecked\n ? purchaseOrders\n .filter((po) =>\n ['PENDING', 'APPROVAL_REQUIRED'].includes(po.status)\n )\n .map((po) => po.uid ?? '')\n : []\n );\n },\n [purchaseOrders]\n );\n\n const handleRejectSelected = useCallback(() => {\n rejectPurchaseOrders(selectedOrderIds)\n .then((data) => {\n const purchaseOrders = data?.purchaseOrders ?? [];\n setPurchaseOrders((prev) => {\n return prev.map((po) => {\n const updatedPo = purchaseOrders.find(\n (updated) => updated.uid === po.uid\n );\n return updatedPo ?? po;\n });\n });\n setAlertMessageConfig({\n heading: t.alertHeaderReject,\n description: t.alertDescriptionReject,\n type: 'success',\n });\n setSelectedOrderIds([]);\n })\n .catch((err) => {\n // eslint-disable-next-line no-console\n setAlertMessageConfig({\n heading: t.alertHeaderError,\n description: t.alertDescriptionError,\n type: 'error',\n });\n console.error(err);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [selectedOrderIds, t]);\n\n const handleApproveSelected = useCallback(() => {\n setLoading(true);\n approvePurchaseOrders(selectedOrderIds)\n .then((data) => {\n const purchaseOrders = data?.purchaseOrders ?? [];\n setPurchaseOrders((prev) => {\n return prev.map((po) => {\n const updatedPo = purchaseOrders.find(\n (updated) => updated.uid === po.uid\n );\n return updatedPo ?? po;\n });\n });\n setAlertMessageConfig({\n heading: t.alertHeaderApprove,\n description: t.alertDescriptionApprove,\n type: 'success',\n });\n setSelectedOrderIds([]);\n })\n .catch((err) => {\n setAlertMessageConfig({\n heading: t.alertHeaderError,\n description: t.alertDescriptionError,\n type: 'error',\n });\n console.error(err);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [selectedOrderIds, t]);\n\n const columns = useMemo(() => {\n const currentColumns =\n isCompanyPOsView || isRequireApprovalPOsView\n ? defaultCompanyColumns\n : defaultColumns;\n\n return (\n setColumns?.(currentColumns) ??\n currentColumns.map((col) => {\n if (\n col.key === 'checkboxView' &&\n (isAdmin || isRequireApprovalPOsView)\n ) {\n return {\n key: col.key,\n label: (\n <input\n type=\"checkbox\"\n name={'selectAll'}\n disabled={purchaseOrders.every(\n (po) => !['PENDING', 'APPROVAL_REQUIRED'].includes(po.status)\n )}\n onChange={handleSelectedOrderIds}\n />\n ),\n ariaLabel: t.selectAllAriaLabel,\n } as Column;\n }\n\n return {\n ...col,\n label: t[col.key as keyof typeof t] || col.label,\n } as Column;\n })\n );\n }, [\n t,\n isAdmin,\n isCompanyPOsView,\n isRequireApprovalPOsView,\n setColumns,\n purchaseOrders,\n handleSelectedOrderIds,\n ]);\n\n const rows = useMemo(() => {\n const formattedPurchaseOrders = purchaseOrders.map((po) => {\n const poNumber = po.number ?? '';\n\n return {\n ...(isAdmin || isRequireApprovalPOsView\n ? {\n checkboxView: (\n <input\n type=\"checkbox\"\n name={poNumber}\n value={po.uid}\n checked={selectedOrderIds.includes(po.uid)}\n onChange={handleSelectedOrderId}\n disabled={\n !['PENDING', 'APPROVAL_REQUIRED'].includes(po.status)\n }\n />\n ),\n }\n : {}),\n poNumber,\n orderNumber: po.order.orderNumber,\n createdDate: formatDate(po.createdAt),\n updatedDate: formatDate(po.updatedAt),\n createdBy: `${po.createdBy?.firstname ?? ''} ${\n po.createdBy?.lastname ?? ''\n }`.trim(),\n status: (\n <Text\n id={`PurchaseOrders.purchaseOrdersTable.statusOrder.${po.status.toLowerCase()}`}\n />\n ),\n total: `${po?.quote?.grandTotal?.value} ${po?.quote?.grandTotal?.currency}`,\n action: (\n <a\n href={handlePurchaseOrderDetailsRedirect(po.uid ?? '')}\n aria-label={`View purchase order ${poNumber}`}\n >\n {t.actionView}\n </a>\n ),\n };\n });\n\n let finalRows = formattedPurchaseOrders;\n\n if (setRowsData) {\n const customRows = setRowsData(formattedPurchaseOrders);\n // If setRowsData returns something, use it, otherwise keep original data\n if (customRows !== undefined && Array.isArray(customRows)) {\n finalRows = customRows as typeof formattedPurchaseOrders;\n }\n }\n\n return finalRows;\n }, [\n purchaseOrders,\n setRowsData,\n isAdmin,\n isRequireApprovalPOsView,\n selectedOrderIds,\n handleSelectedOrderId,\n handlePurchaseOrderDetailsRedirect,\n t.actionView,\n ]);\n\n return {\n tableConfig: {\n columns,\n rows,\n },\n paginationConfig: {\n currentPage,\n totalPages,\n handlePageChange,\n },\n pageSizeConfig: {\n pageSizeOptionsList,\n onChange: handleChangePageSize,\n },\n totalCount,\n loading,\n selectedOrderIds,\n handleRejectSelected,\n handleApproveSelected,\n isAdmin,\n isRequireApprovalPOsView,\n alertMessageConfig,\n };\n};\n"],"names":["formatDate","dateString","locale","date","EnumPurchaseOrdersView","DEFAULT_PAGE_SIZE","usePurchaseOrders","view","initialPageSize","routePurchaseOrderDetails","setColumns","setRowsData","t","permissions","loadingPermissions","isCompanyPOsView","isRequireApprovalPOsView","selectedOrderIds","setSelectedOrderIds","useState","purchaseOrders","setPurchaseOrders","pageSizeOptionsList","setPageSizeOptionsList","loading","setLoading","pagination","setPagination","alertMessageConfig","setAlertMessageConfig","useEffect","timer","currentPage","totalPages","totalCount","handleChangePageSize","useCallback","event","size","prev","option","isAdmin","filterConfig","useMemo","config","pageSize","_a","selectedPageSize","getPurchaseOrders","data","responsePage","responseTotalPages","_b","responseTotalCount","error","handlePurchaseOrderDetailsRedirect","poNumber","url","isValidUrl","handlePageChange","page","handleSelectedOrderId","uid","isChecked","prevSelected","po","handleSelectedOrderIds","handleRejectSelected","rejectPurchaseOrders","updated","err","handleApproveSelected","approvePurchaseOrders","columns","currentColumns","defaultCompanyColumns","defaultColumns","col","jsx","rows","formattedPurchaseOrders","Text","_d","_c","_f","_e","finalRows","customRows"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "@dropins/storefront-purchase-order", "version": "0.0.5-
|
|
1
|
+
{"name": "@dropins/storefront-purchase-order", "version": "0.0.5-alpha8", "@dropins/tools": "^1.6.0-alpha2", "license": "SEE LICENSE IN LICENSE.md"}
|