@dropins/storefront-purchase-order 0.0.4-alpha3 → 0.0.5-alpha10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql.d.ts +1 -1
  2. package/api/graphql/PurchaseOrderQuoteFragment.d.ts +22 -0
  3. package/api/index.d.ts +1 -0
  4. package/api/initialize/initialize.d.ts +1 -0
  5. package/api/permissions.d.ts +11 -0
  6. package/api.js +406 -74
  7. package/api.js.map +1 -1
  8. package/chunks/currencyInfo.js +1 -1
  9. package/chunks/currencyInfo.js.map +1 -1
  10. package/chunks/getPurchaseOrders.js +3 -77
  11. package/chunks/getPurchaseOrders.js.map +1 -1
  12. package/chunks/pageSize.config.js +1 -1
  13. package/chunks/pageSize.config.js.map +1 -1
  14. package/chunks/permissions.js +4 -0
  15. package/chunks/permissions.js.map +1 -0
  16. package/chunks/placeOrderForPurchaseOrder.js +39 -0
  17. package/chunks/placeOrderForPurchaseOrder.js.map +1 -0
  18. package/chunks/rejectPurchaseOrders.js +78 -0
  19. package/chunks/rejectPurchaseOrders.js.map +1 -0
  20. package/chunks/useCustomerRolePermissions.js +1 -1
  21. package/chunks/useCustomerRolePermissions.js.map +1 -1
  22. package/chunks/usePurchaseOrders.js +1 -1
  23. package/chunks/usePurchaseOrders.js.map +1 -1
  24. package/components/PurchaseOrderStatusContent/PurchaseOrderStatusContent.d.ts +5 -0
  25. package/components/PurchaseOrderStatusContent/index.d.ts +19 -0
  26. package/components/index.d.ts +1 -0
  27. package/containers/ApprovalRuleDetails.js +1 -1
  28. package/containers/ApprovalRuleDetails.js.map +1 -1
  29. package/containers/ApprovalRuleForm.js +1 -1
  30. package/containers/ApprovalRuleForm.js.map +1 -1
  31. package/containers/ApprovalRulesList.js +1 -1
  32. package/containers/ApprovalRulesList.js.map +1 -1
  33. package/containers/CompanyPurchaseOrders.js +1 -1
  34. package/containers/CompanyPurchaseOrders.js.map +1 -1
  35. package/containers/CustomerPurchaseOrders.js +1 -1
  36. package/containers/CustomerPurchaseOrders.js.map +1 -1
  37. package/containers/PurchaseOrderStatus/PurchaseOrderStatus.d.ts +5 -0
  38. package/containers/PurchaseOrderStatus/index.d.ts +19 -0
  39. package/containers/PurchaseOrderStatus.d.ts +3 -0
  40. package/containers/PurchaseOrderStatus.js +4 -0
  41. package/containers/PurchaseOrderStatus.js.map +1 -0
  42. package/containers/RequireApprovalPurchaseOrders.js +1 -1
  43. package/containers/RequireApprovalPurchaseOrders.js.map +1 -1
  44. package/containers/index.d.ts +1 -0
  45. package/data/models/customer-order-model.d.ts +0 -1
  46. package/data/models/purchase-order-model.d.ts +228 -14
  47. package/hooks/index.d.ts +1 -0
  48. package/hooks/usePurchaseOrderStatus.d.ts +4 -0
  49. package/i18n/en_US.json.d.ts +64 -4
  50. package/mocks/storybook/events-data.d.ts +1 -5
  51. package/package.json +1 -1
  52. package/render.js +2 -2
  53. package/render.js.map +1 -1
  54. package/types/components/index.d.ts +1 -0
  55. package/types/components/purchaseOrderStatusContent.types.d.ts +17 -0
  56. package/types/containers/index.d.ts +1 -0
  57. package/types/containers/purchaseOrderStatus.types.d.ts +18 -0
  58. package/types/hooks/index.d.ts +1 -0
  59. package/types/hooks/usePurchaseOrderStatus.types.d.ts +19 -0
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ const r={PO_ALL:"Magento_PurchaseOrder::all",VIEW_CUSTOMER:"Magento_PurchaseOrder::view_purchase_orders",VIEW_SUBORDINATES:"Magento_PurchaseOrder::view_purchase_orders_for_subordinates",VIEW_COMPANY:"Magento_PurchaseOrder::view_purchase_orders_for_company",AUTO_APPROVE:"Magento_PurchaseOrder::autoapprove_purchase_order",SUPER_APPROVE:"Magento_PurchaseOrderRule::super_approve_purchase_order",VIEW_RULES:"Magento_PurchaseOrderRule::view_approval_rules",MANAGE_RULES:"Magento_PurchaseOrderRule::manage_approval_rules"};export{r as P};
4
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sources":["/@dropins/storefront-purchase-order/src/api/permissions.ts"],"sourcesContent":["export const PO_PERMISSIONS = {\n PO_ALL: 'Magento_PurchaseOrder::all',\n VIEW_CUSTOMER: 'Magento_PurchaseOrder::view_purchase_orders',\n VIEW_SUBORDINATES:\n 'Magento_PurchaseOrder::view_purchase_orders_for_subordinates',\n VIEW_COMPANY: 'Magento_PurchaseOrder::view_purchase_orders_for_company',\n AUTO_APPROVE: 'Magento_PurchaseOrder::autoapprove_purchase_order',\n SUPER_APPROVE: 'Magento_PurchaseOrderRule::super_approve_purchase_order',\n VIEW_RULES: 'Magento_PurchaseOrderRule::view_approval_rules',\n MANAGE_RULES: 'Magento_PurchaseOrderRule::manage_approval_rules',\n};\n"],"names":["PO_PERMISSIONS"],"mappings":"AAAO,MAAMA,EAAiB,CAC5B,OAAQ,6BACR,cAAe,8CACf,kBACE,+DACF,aAAc,0DACd,aAAc,oDACd,cAAe,0DACf,WAAY,iDACZ,aAAc,kDAChB"}
@@ -0,0 +1,39 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{f as b,h as R}from"./fetch-graphql.js";import{h as E}from"./fetch-error.js";import{P as y,t as v}from"./rejectPurchaseOrders.js";const q=`
4
+ mutation CANCEL_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {
5
+ cancelPurchaseOrders(input: $input) {
6
+ purchase_orders {
7
+ ...PURCHASE_ORDERS_FRAGMENT
8
+ }
9
+ errors {
10
+ message
11
+ type
12
+ }
13
+ }
14
+ }
15
+ ${y}
16
+ `,G=async c=>{const o=Array.isArray(c)?c:[c];if(!o||o.length===0)throw new Error("Purchase Order UID(s) are required");if(o.some(n=>!n||n.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return b(q,{variables:{input:{purchase_order_uids:o}}}).then(n=>{var s,_,p;(s=n.errors)!=null&&s.length&&E(n.errors);const u=(_=n.data)==null?void 0:_.cancelPurchaseOrders;if(!u)throw new Error("Failed to cancel purchase orders");return{errors:((u==null?void 0:u.errors)??[]).map(l=>({message:(l==null?void 0:l.message)??"",type:(l==null?void 0:l.type)??""})),purchaseOrders:((p=u==null?void 0:u.purchase_orders)==null?void 0:p.map(l=>v(l)))??[]}}).catch(R)},w=c=>{var h,O;const o=(O=(h=c.data)==null?void 0:h.placeOrderForPurchaseOrder)==null?void 0:O.order,e=r=>({value:(r==null?void 0:r.value)||0,currency:(r==null?void 0:r.currency)||""}),n=r=>({code:(r==null?void 0:r.code)||"",label:(r==null?void 0:r.label)||""}),u=r=>({code:(r==null?void 0:r.code)||"",appliedBalance:e(r==null?void 0:r.applied_balance),currentBalance:e(r==null?void 0:r.current_balance)}),s=r=>({firstname:(r==null?void 0:r.firstname)||"",lastname:(r==null?void 0:r.lastname)||"",street:(r==null?void 0:r.street)||[],city:(r==null?void 0:r.city)||"",region:(r==null?void 0:r.region)||"",postcode:(r==null?void 0:r.postcode)||"",countryCode:(r==null?void 0:r.country_code)||"",telephone:(r==null?void 0:r.telephone)||"",company:(r==null?void 0:r.company)||""}),_=r=>({name:(r==null?void 0:r.name)||"",type:(r==null?void 0:r.type)||"",additionalData:(r==null?void 0:r.additional_data)||{}}),p=r=>({id:(r==null?void 0:r.id)||"",productName:(r==null?void 0:r.product_name)||"",productSku:(r==null?void 0:r.product_sku)||"",quantityOrdered:(r==null?void 0:r.quantity_ordered)||0,quantityShipped:(r==null?void 0:r.quantity_shipped)||0,quantityInvoiced:(r==null?void 0:r.quantity_invoiced)||0,quantityRefunded:(r==null?void 0:r.quantity_refunded)||0,price:e(r==null?void 0:r.price),total:e(r==null?void 0:r.total)}),l=r=>({number:(r==null?void 0:r.number)||"",carrier:(r==null?void 0:r.carrier)||"",title:(r==null?void 0:r.title)||""}),f=r=>({message:(r==null?void 0:r.message)||"",timestamp:(r==null?void 0:r.timestamp)||""}),P=r=>({id:(r==null?void 0:r.id)||"",productName:(r==null?void 0:r.product_name)||"",productSku:(r==null?void 0:r.product_sku)||"",quantityShipped:(r==null?void 0:r.quantity_shipped)||0}),A=r=>({id:(r==null?void 0:r.id)||"",number:(r==null?void 0:r.number)||"",tracking:((r==null?void 0:r.tracking)||[]).map(l),comments:((r==null?void 0:r.comments)||[]).map(f),items:((r==null?void 0:r.items)||[]).map(P)}),S=r=>({firstname:(r==null?void 0:r.firstname)||"",lastname:(r==null?void 0:r.lastname)||"",email:(r==null?void 0:r.email)||""}),g=r=>({label:(r==null?void 0:r.label)||"",amount:e(r==null?void 0:r.amount)}),D=r=>({baseGrandTotal:e(r==null?void 0:r.base_grand_total),grandTotal:e(r==null?void 0:r.grand_total),subtotal:e(r==null?void 0:r.subtotal),totalTax:e(r==null?void 0:r.total_tax),totalShipping:e(r==null?void 0:r.total_shipping),discounts:((r==null?void 0:r.discounts)||[]).map(g)}),i=r=>({appliedCoupons:((r==null?void 0:r.applied_coupons)||[]).map(n),appliedGiftCards:((r==null?void 0:r.applied_gift_cards)||[]).map(u),availableActions:(r==null?void 0:r.available_actions)||[],billingAddress:r!=null&&r.billing_address?s(r.billing_address):{firstname:"",lastname:"",street:[],city:"",region:"",postcode:"",countryCode:"",telephone:"",company:""},carrier:(r==null?void 0:r.carrier)||"",comments:(r==null?void 0:r.comments)||[],creditMemos:(r==null?void 0:r.credit_memos)||[],customerInfo:r!=null&&r.customer_info?S(r.customer_info):{firstname:"",lastname:"",email:""},email:(r==null?void 0:r.email)||"",giftMessage:(r==null?void 0:r.gift_message)||"",giftReceiptIncluded:(r==null?void 0:r.gift_receipt_included)||!1,giftWrapping:(r==null?void 0:r.gift_wrapping)||null,id:(r==null?void 0:r.id)||"",invoices:(r==null?void 0:r.invoices)||[],isVirtual:(r==null?void 0:r.is_virtual)||!1,items:((r==null?void 0:r.items)||[]).map(p),itemsEligibleForReturn:(r==null?void 0:r.items_eligible_for_return)||[],number:(r==null?void 0:r.number)||"",orderDate:(r==null?void 0:r.order_date)||"",orderStatusChangeDate:(r==null?void 0:r.order_status_change_date)||"",paymentMethods:((r==null?void 0:r.payment_methods)||[]).map(_),printedCardIncluded:(r==null?void 0:r.printed_card_included)||!1,returns:(r==null?void 0:r.returns)||null,shipments:((r==null?void 0:r.shipments)||[]).map(A),shippingAddress:r!=null&&r.shipping_address?s(r.shipping_address):{firstname:"",lastname:"",street:[],city:"",region:"",postcode:"",countryCode:"",telephone:"",company:""},shippingMethod:(r==null?void 0:r.shipping_method)||"",status:(r==null?void 0:r.status)||"",token:(r==null?void 0:r.token)||"",total:r!=null&&r.total?D(r.total):{baseGrandTotal:e(null),grandTotal:e(null),subtotal:e(null),totalTax:e(null),totalShipping:e(null),discounts:[]}});return i(o||null)},F=`
17
+ mutation PLACE_ORDER_FOR_PURCHASE_ORDER(
18
+ $input: PlaceOrderForPurchaseOrderInput!
19
+ ) {
20
+ placeOrderForPurchaseOrder(input: $input) {
21
+ order {
22
+ available_actions
23
+ carrier
24
+ email
25
+ gift_receipt_included
26
+ id
27
+ is_virtual
28
+ number
29
+ order_date
30
+ order_status_change_date
31
+ printed_card_included
32
+ shipping_method
33
+ status
34
+ token
35
+ }
36
+ }
37
+ }
38
+ `,N=async c=>{var e;if(!c||c.trim()==="")throw new Error("Purchase Order UID is required");const o={purchase_order_uid:c};try{const n=await b(F,{variables:{input:o}});return(e=n.errors)!=null&&e.length&&E(n.errors),w(n)}catch(n){throw R(n)}};export{G as c,N as p};
39
+ //# sourceMappingURL=placeOrderForPurchaseOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeOrderForPurchaseOrder.js","sources":["/@dropins/storefront-purchase-order/src/api/cancelPurchaseOrders/graphql/cancelPurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/cancelPurchaseOrders/cancelPurchaseOrders.ts","/@dropins/storefront-purchase-order/src/data/transforms/transform-customer-order.ts","/@dropins/storefront-purchase-order/src/api/placeOrderForPurchaseOrder/graphql/placeOrderForPurchaseOrder.graphql.ts","/@dropins/storefront-purchase-order/src/api/placeOrderForPurchaseOrder/placeOrderForPurchaseOrder.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\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const CANCEL_PURCHASE_ORDERS = /* GraphQL */ `\n mutation CANCEL_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {\n cancelPurchaseOrders(input: $input) {\n purchase_orders {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n errors {\n message\n type\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 { CANCEL_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/cancelPurchaseOrders/graphql/cancelPurchaseOrders.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const cancelPurchaseOrders = 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(CANCEL_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?.cancelPurchaseOrders;\n if (!data) {\n throw new Error('Failed to cancel purchase orders');\n }\n\n return {\n errors: (data?.errors ?? []).map((error: any) => ({\n message: error?.message ?? '',\n type: error?.type ?? '',\n })),\n purchaseOrders:\n data?.purchase_orders?.map((order: any) =>\n transformPurchaseOrder(order)\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\nimport {\n CustomerOrderModel,\n Money,\n Coupon,\n GiftCard,\n CustomerAddress,\n PaymentMethod,\n OrderItem,\n Shipment,\n ShipmentTracking,\n ShipmentComment,\n ShipmentItem,\n CustomerInfo,\n OrderTotal,\n OrderDiscount,\n} from '@/b2b-purchase-order/data/models/customer-order-model';\n\nexport const transformCustomerOrder = (response: any): CustomerOrderModel => {\n const orderData = response.data?.placeOrderForPurchaseOrder?.order;\n\n const transformMoney = (money: any): Money => ({\n value: money?.value || 0,\n currency: money?.currency || '',\n });\n\n const transformCoupon = (coupon: any): Coupon => ({\n code: coupon?.code || '',\n label: coupon?.label || '',\n });\n\n const transformGiftCard = (giftCard: any): GiftCard => ({\n code: giftCard?.code || '',\n appliedBalance: transformMoney(giftCard?.applied_balance),\n currentBalance: transformMoney(giftCard?.current_balance),\n });\n\n const transformAddress = (address: any): CustomerAddress => ({\n firstname: address?.firstname || '',\n lastname: address?.lastname || '',\n street: address?.street || [],\n city: address?.city || '',\n region: address?.region || '',\n postcode: address?.postcode || '',\n countryCode: address?.country_code || '',\n telephone: address?.telephone || '',\n company: address?.company || '',\n });\n\n const transformPaymentMethod = (payment: any): PaymentMethod => ({\n name: payment?.name || '',\n type: payment?.type || '',\n additionalData: payment?.additional_data || {},\n });\n\n const transformOrderItem = (item: any): OrderItem => ({\n id: item?.id || '',\n productName: item?.product_name || '',\n productSku: item?.product_sku || '',\n quantityOrdered: item?.quantity_ordered || 0,\n quantityShipped: item?.quantity_shipped || 0,\n quantityInvoiced: item?.quantity_invoiced || 0,\n quantityRefunded: item?.quantity_refunded || 0,\n price: transformMoney(item?.price),\n total: transformMoney(item?.total),\n });\n\n const transformShipmentTracking = (tracking: any): ShipmentTracking => ({\n number: tracking?.number || '',\n carrier: tracking?.carrier || '',\n title: tracking?.title || '',\n });\n\n const transformShipmentComment = (comment: any): ShipmentComment => ({\n message: comment?.message || '',\n timestamp: comment?.timestamp || '',\n });\n\n const transformShipmentItem = (item: any): ShipmentItem => ({\n id: item?.id || '',\n productName: item?.product_name || '',\n productSku: item?.product_sku || '',\n quantityShipped: item?.quantity_shipped || 0,\n });\n\n const transformShipment = (shipment: any): Shipment => ({\n id: shipment?.id || '',\n number: shipment?.number || '',\n tracking: (shipment?.tracking || []).map(transformShipmentTracking),\n comments: (shipment?.comments || []).map(transformShipmentComment),\n items: (shipment?.items || []).map(transformShipmentItem),\n });\n\n const transformCustomerInfo = (customerInfo: any): CustomerInfo => ({\n firstname: customerInfo?.firstname || '',\n lastname: customerInfo?.lastname || '',\n email: customerInfo?.email || '',\n });\n\n const transformOrderDiscount = (discount: any): OrderDiscount => ({\n label: discount?.label || '',\n amount: transformMoney(discount?.amount),\n });\n\n const transformOrderTotal = (total: any): OrderTotal => ({\n baseGrandTotal: transformMoney(total?.base_grand_total),\n grandTotal: transformMoney(total?.grand_total),\n subtotal: transformMoney(total?.subtotal),\n totalTax: transformMoney(total?.total_tax),\n totalShipping: transformMoney(total?.total_shipping),\n discounts: (total?.discounts || []).map(transformOrderDiscount),\n });\n\n const transformOrderData = (data: any): CustomerOrderModel => ({\n appliedCoupons: (data?.applied_coupons || []).map(transformCoupon),\n appliedGiftCards: (data?.applied_gift_cards || []).map(transformGiftCard),\n availableActions: data?.available_actions || [],\n billingAddress: data?.billing_address\n ? transformAddress(data.billing_address)\n : {\n firstname: '',\n lastname: '',\n street: [],\n city: '',\n region: '',\n postcode: '',\n countryCode: '',\n telephone: '',\n company: '',\n },\n carrier: data?.carrier || '',\n comments: data?.comments || [],\n creditMemos: data?.credit_memos || [],\n customerInfo: data?.customer_info\n ? transformCustomerInfo(data.customer_info)\n : {\n firstname: '',\n lastname: '',\n email: '',\n },\n email: data?.email || '',\n giftMessage: data?.gift_message || '',\n giftReceiptIncluded: data?.gift_receipt_included || false,\n giftWrapping: data?.gift_wrapping || null,\n id: data?.id || '',\n invoices: data?.invoices || [],\n isVirtual: data?.is_virtual || false,\n items: (data?.items || []).map(transformOrderItem),\n itemsEligibleForReturn: data?.items_eligible_for_return || [],\n number: data?.number || '',\n orderDate: data?.order_date || '',\n orderStatusChangeDate: data?.order_status_change_date || '',\n paymentMethods: (data?.payment_methods || []).map(transformPaymentMethod),\n printedCardIncluded: data?.printed_card_included || false,\n returns: data?.returns || null,\n shipments: (data?.shipments || []).map(transformShipment),\n shippingAddress: data?.shipping_address\n ? transformAddress(data.shipping_address)\n : {\n firstname: '',\n lastname: '',\n street: [],\n city: '',\n region: '',\n postcode: '',\n countryCode: '',\n telephone: '',\n company: '',\n },\n shippingMethod: data?.shipping_method || '',\n status: data?.status || '',\n token: data?.token || '',\n total: data?.total\n ? transformOrderTotal(data.total)\n : {\n baseGrandTotal: transformMoney(null),\n grandTotal: transformMoney(null),\n subtotal: transformMoney(null),\n totalTax: transformMoney(null),\n totalShipping: transformMoney(null),\n discounts: [],\n },\n });\n\n return orderData ? transformOrderData(orderData) : transformOrderData(null);\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 PLACE_ORDER_FOR_PURCHASE_ORDER = /* GraphQL */ `\n mutation PLACE_ORDER_FOR_PURCHASE_ORDER(\n $input: PlaceOrderForPurchaseOrderInput!\n ) {\n placeOrderForPurchaseOrder(input: $input) {\n order {\n available_actions\n carrier\n email\n gift_receipt_included\n id\n is_virtual\n number\n order_date\n order_status_change_date\n printed_card_included\n shipping_method\n status\n token\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 { PLACE_ORDER_FOR_PURCHASE_ORDER } from '@/b2b-purchase-order/api/placeOrderForPurchaseOrder/graphql/placeOrderForPurchaseOrder.graphql';\nimport { transformCustomerOrder } from '@/b2b-purchase-order/data/transforms/transform-customer-order';\nimport { CustomerOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const placeOrderForPurchaseOrder = async (\n purchaseOrderUid: string\n): Promise<CustomerOrderModel> => {\n if (!purchaseOrderUid || purchaseOrderUid.trim() === '') {\n throw new Error('Purchase Order UID is required');\n }\n\n const input = {\n purchase_order_uid: purchaseOrderUid,\n };\n\n try {\n const response: any = await fetchGraphQl(PLACE_ORDER_FOR_PURCHASE_ORDER, {\n variables: { input },\n });\n\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n return transformCustomerOrder(response);\n } catch (error) {\n throw handleNetworkError(error as Error);\n }\n};\n"],"names":["CANCEL_PURCHASE_ORDERS","PURCHASE_ORDERS_FRAGMENT","cancelPurchaseOrders","uids","uidArray","uid","fetchGraphQl","response","_a","handleFetchError","data","_b","error","_c","order","transformPurchaseOrder","handleNetworkError","transformCustomerOrder","orderData","transformMoney","money","transformCoupon","coupon","transformGiftCard","giftCard","transformAddress","address","transformPaymentMethod","payment","transformOrderItem","item","transformShipmentTracking","tracking","transformShipmentComment","comment","transformShipmentItem","transformShipment","shipment","transformCustomerInfo","customerInfo","transformOrderDiscount","discount","transformOrderTotal","total","transformOrderData","PLACE_ORDER_FOR_PURCHASE_ORDER","placeOrderForPurchaseOrder","purchaseOrderUid","input"],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{f as nn,h as ln}from"./fetch-graphql.js";import{h as an}from"./fetch-error.js";const _n=l=>{var A,c,g,o,S,v,m,I,N,T;return{typename:(l==null?void 0:l.__typename)??"",uid:(l==null?void 0:l.uid)??"",number:(l==null?void 0:l.number)??"",status:(l==null?void 0:l.status)??"",availableActions:(l==null?void 0:l.available_actions)??[],approvalFlow:l!=null&&l.approval_flow?{ruleName:((A=l==null?void 0:l.approval_flow)==null?void 0:A.rule_name)??"",events:((g=(c=l==null?void 0:l.approval_flow)==null?void 0:c.events)==null?void 0:g.map(y=>({message:(y==null?void 0:y.message)??"",name:(y==null?void 0:y.name)??"",role:(y==null?void 0:y.role)??"",status:(y==null?void 0:y.status)??"",updatedAt:(y==null?void 0:y.updated_at)??""})))??[]}:null,comments:((o=l==null?void 0:l.comments)==null?void 0:o.map(y=>{var G,F,k;return{createdAt:(y==null?void 0:y.created_at)??"",author:{firstname:((G=y==null?void 0:y.author)==null?void 0:G.firstname)??"",lastname:((F=y==null?void 0:y.author)==null?void 0:F.lastname)??"",email:((k=y==null?void 0:y.author)==null?void 0:k.email)??""},text:(y==null?void 0:y.text)??""}}))??[],createdAt:(l==null?void 0:l.created_at)??"",updatedAt:(l==null?void 0:l.updated_at)??"",createdBy:{firstname:((S=l==null?void 0:l.created_by)==null?void 0:S.firstname)??"",lastname:((v=l==null?void 0:l.created_by)==null?void 0:v.lastname)??"",email:((m=l==null?void 0:l.created_by)==null?void 0:m.email)??""},historyLog:((I=l==null?void 0:l.history_log)==null?void 0:I.map(y=>({activity:(y==null?void 0:y.activity)??"",createdAt:(y==null?void 0:y.created_at)??"",message:(y==null?void 0:y.message)??"",uid:(y==null?void 0:y.uid)??""})))??[],quote:cn(l==null?void 0:l.quote),order:{id:((N=l==null?void 0:l.order)==null?void 0:N.id)??"",orderNumber:((T=l==null?void 0:l.order)==null?void 0:T.number)??""}}};function cn(l){var W,H,$,j,V,B,L,J,K,z,X,Y,Z;if(!l)return null;const D=n=>n||0,A=n=>({firstName:(n==null?void 0:n.firstname)??"",lastName:(n==null?void 0:n.lastname)??"",middleName:(n==null?void 0:n.middlename)??""}),c=n=>{var e,b,f,t;const{firstName:a,lastName:_,middleName:i}=A(n);return{firstName:a,lastName:_,middleName:i,city:(n==null?void 0:n.city)??"",company:(n==null?void 0:n.company)??"",country:((e=n==null?void 0:n.country)==null?void 0:e.label)??"",countryCode:((b=n==null?void 0:n.country)==null?void 0:b.code)??"",fax:(n==null?void 0:n.fax)??"",postCode:(n==null?void 0:n.postcode)??"",prefix:(n==null?void 0:n.prefix)??"",region:((f=n==null?void 0:n.region)==null?void 0:f.label)??"",regionId:((t=n==null?void 0:n.region)==null?void 0:t.code)??"",street:(n==null?void 0:n.street)??[],suffix:(n==null?void 0:n.suffix)??"",telephone:(n==null?void 0:n.telephone)??"",vatId:(n==null?void 0:n.vat_id)??"",customAttributes:(n==null?void 0:n.custom_attributes)??[]}},g=n=>{var a,_,i,e,b,f,t,U,E,R;return{__typename:(n==null?void 0:n.__typename)||"",uid:(n==null?void 0:n.uid)||"",onlyXLeftInStock:(n==null?void 0:n.only_x_left_in_stock)??0,stockStatus:(n==null?void 0:n.stock_status)??"",priceRange:{maximumPrice:{regularPrice:{currency:((i=(_=(a=n==null?void 0:n.price_range)==null?void 0:a.maximum_price)==null?void 0:_.regular_price)==null?void 0:i.currency)??"",value:((f=(b=(e=n==null?void 0:n.price_range)==null?void 0:e.maximum_price)==null?void 0:b.regular_price)==null?void 0:f.value)??0}}},canonicalUrl:(n==null?void 0:n.canonical_url)??"",urlKey:(n==null?void 0:n.url_key)||"",id:(n==null?void 0:n.uid)??"",name:(n==null?void 0:n.name)||"",sku:(n==null?void 0:n.sku)||"",image:((t=n==null?void 0:n.image)==null?void 0:t.url)||"",imageAlt:((U=n==null?void 0:n.image)==null?void 0:U.label)||"",productType:(n==null?void 0:n.__typename)||"",thumbnail:{label:((E=n==null?void 0:n.thumbnail)==null?void 0:E.label)||"",url:((R=n==null?void 0:n.thumbnail)==null?void 0:R.url)||""}}},o=n=>{if(!n||!("configurable_options"in n))return;const a={};for(const _ of n.configurable_options)a[_.option_label]=_.value_label;return a},S=n=>{const a=n==null?void 0:n.map(i=>({uid:i.uid,label:i.label,values:i.values.map(e=>e.product_name).join(", ")})),_={};return a==null||a.forEach(i=>{_[i.label]=i.values}),Object.keys(_).length>0?_:null},v=n=>(n==null?void 0:n.length)>0?{count:n.length,result:n.map(a=>a.title).join(", ")}:null,m=n=>{var a,_,i,e,b;return{senderName:((a=n==null?void 0:n.gift_card)==null?void 0:a.sender_name)||"",senderEmail:((_=n==null?void 0:n.gift_card)==null?void 0:_.sender_email)||"",recipientEmail:((i=n==null?void 0:n.gift_card)==null?void 0:i.recipient_email)||"",recipientName:((e=n==null?void 0:n.gift_card)==null?void 0:e.recipient_name)||"",message:((b=n==null?void 0:n.gift_card)==null?void 0:b.message)||""}},I=n=>{var a,_,i;return{senderName:((a=n==null?void 0:n.gift_message)==null?void 0:a.from)??"",recipientName:((_=n==null?void 0:n.gift_message)==null?void 0:_.to)??"",message:((i=n==null?void 0:n.gift_message)==null?void 0:i.message)??""}},N=n=>{var a,_,i,e,b,f,t,U,E,R,x;return{design:((a=n==null?void 0:n.gift_wrapping)==null?void 0:a.design)??"",uid:((_=n==null?void 0:n.gift_wrapping)==null?void 0:_.uid)??"",selected:!!((i=n==null?void 0:n.gift_wrapping)!=null&&i.uid),image:{url:((b=(e=n==null?void 0:n.gift_wrapping)==null?void 0:e.image)==null?void 0:b.url)??"",label:((t=(f=n==null?void 0:n.gift_wrapping)==null?void 0:f.image)==null?void 0:t.label)??""},price:{currency:((E=(U=n==null?void 0:n.gift_wrapping)==null?void 0:U.price)==null?void 0:E.currency)??"USD",value:((x=(R=n==null?void 0:n.gift_wrapping)==null?void 0:R.price)==null?void 0:x.value)??0}}},T=n=>({currency:(n==null?void 0:n.currency)??"USD",value:(n==null?void 0:n.value)??0}),y=(n,a)=>{const _=n==null?void 0:n.price,i=n==null?void 0:n.priceIncludingTax,e=n==null?void 0:n.originalPrice,b=!1,f=b?e==null?void 0:e.value:i==null?void 0:i.value,t={originalPrice:e,baseOriginalPrice:{value:f,currency:e==null?void 0:e.currency},baseDiscountedPrice:{value:i==null?void 0:i.value,currency:i==null?void 0:i.currency},baseExcludingTax:{value:_==null?void 0:_.value,currency:_==null?void 0:_.currency}},U={originalPrice:e,baseOriginalPrice:{value:e==null?void 0:e.value,currency:i==null?void 0:i.currency},baseDiscountedPrice:{value:a==null?void 0:a.value,currency:_==null?void 0:_.currency},baseExcludingTax:{value:_==null?void 0:_.value,currency:_==null?void 0:_.currency}},E={singleItemPrice:{value:b?e.value:i.value,currency:i.currency},baseOriginalPrice:{value:f,currency:i.currency},baseDiscountedPrice:{value:i.value,currency:i.currency}};return{includeAndExcludeTax:t,excludeTax:U,includeTax:E}},G=n=>{var t,U,E,R,x,M,h,p,q,O,d;const a=n==null?void 0:n.product,_=n==null?void 0:n.prices,i=D(n==null?void 0:n.quantity),e={price:(_==null?void 0:_.price)??{value:0,currency:"USD"},priceIncludingTax:(_==null?void 0:_.price_including_tax)??{value:0,currency:"USD"},originalPrice:(_==null?void 0:_.original_item_price)??{value:0,currency:"USD"},originalPriceIncludingTax:(_==null?void 0:_.original_item_price)??{value:0,currency:"USD"},discounts:(_==null?void 0:_.discounts)??[]},b=(((t=_==null?void 0:_.original_item_price)==null?void 0:t.value)??0)>(((U=_==null?void 0:_.price)==null?void 0:U.value)??0),f=(_==null?void 0:_.price)??{value:0,currency:"USD"};return{giftMessage:I(n),giftWrappingPrice:T((E=n==null?void 0:n.gift_wrapping)==null?void 0:E.price),productGiftWrapping:[N(n)],taxCalculations:y(e,f),productSalePrice:f,status:n!=null&&n.is_available?"available":"unavailable",currentReturnOrderQuantity:0,eligibleForReturn:!1,productSku:(a==null?void 0:a.sku)??"",type:(a==null?void 0:a.__typename)??"",discounted:b,id:(n==null?void 0:n.uid)??"",productName:(a==null?void 0:a.name)??"",productUrlKey:(a==null?void 0:a.url_key)??"",regularPrice:{value:((M=(x=(R=a==null?void 0:a.price_range)==null?void 0:R.maximum_price)==null?void 0:x.regular_price)==null?void 0:M.value)??0,currency:((q=(p=(h=a==null?void 0:a.price_range)==null?void 0:h.maximum_price)==null?void 0:p.regular_price)==null?void 0:q.currency)??"USD"},price:f,product:g(a),selectedOptions:(n==null?void 0:n.customizable_options)??[],thumbnail:{label:((O=a==null?void 0:a.thumbnail)==null?void 0:O.label)||"",url:((d=a==null?void 0:a.thumbnail)==null?void 0:d.url)||""},downloadableLinks:(a==null?void 0:a.__typename)==="DownloadableProduct"&&(n!=null&&n.downloadable_links)?v(n.downloadable_links):null,prices:e,itemPrices:e,bundleOptions:(a==null?void 0:a.__typename)==="BundleProduct"&&(n!=null&&n.bundle_options)?S(n.bundle_options):null,totalInclTax:(_==null?void 0:_.row_total_including_tax)??{value:0,currency:"USD"},priceInclTax:(_==null?void 0:_.price_including_tax)??{value:0,currency:"USD"},total:(_==null?void 0:_.row_total)??{value:0,currency:"USD"},configurableOptions:(a==null?void 0:a.__typename)==="ConfigurableProduct"?o(n):void 0,giftCard:(a==null?void 0:a.__typename)==="GiftCardProduct"?m(n):void 0,quantityCanceled:0,quantityInvoiced:0,quantityOrdered:i,quantityRefunded:0,quantityReturned:0,quantityShipped:0,requestQuantity:0,totalQuantity:i,returnableQuantity:0,quantityReturnRequested:0}},F=n=>({giftWrappingForItems:(n==null?void 0:n.gift_wrapping_for_items)??{value:0,currency:"USD"},giftWrappingForItemsInclTax:(n==null?void 0:n.gift_wrapping_for_items_incl_tax)??{value:0,currency:"USD"},giftWrappingForOrder:(n==null?void 0:n.gift_wrapping_for_order)??{value:0,currency:"USD"},giftWrappingForOrderInclTax:(n==null?void 0:n.gift_wrapping_for_order_incl_tax)??{value:0,currency:"USD"},printedCard:(n==null?void 0:n.printed_card)??{value:0,currency:"USD"},printedCardInclTax:(n==null?void 0:n.printed_card_incl_tax)??{value:0,currency:"USD"}}),k=(n=[])=>!n||n.length===0?[]:n.map(a=>{var _,i;return{code:(a==null?void 0:a.code)??"",appliedBalance:{value:((_=a==null?void 0:a.applied_balance)==null?void 0:_.value)??0,currency:((i=a==null?void 0:a.applied_balance)==null?void 0:i.currency)??"USD"}}}),en=(n=[])=>!n||n.length===0?[]:n.map(a=>{var _,i;return{amount:{value:((_=a==null?void 0:a.amount)==null?void 0:_.value)??0,currency:((i=a==null?void 0:a.amount)==null?void 0:i.currency)??"USD"},rate:(a==null?void 0:a.rate)??0,title:(a==null?void 0:a.title)??(a==null?void 0:a.label)??""}}),P=(W=l==null?void 0:l.shipping_addresses)==null?void 0:W[0],s=l==null?void 0:l.billing_address,r=P==null?void 0:P.selected_shipping_method,w=l==null?void 0:l.selected_payment_method,u=l==null?void 0:l.prices,C=(($=(H=l==null?void 0:l.itemsV2)==null?void 0:H.items)==null?void 0:$.map(G))??[],un=C.reduce((n,a)=>n+a.totalQuantity,0),Q=r?`${r.carrier_title??""} - ${r.method_title??""}`.trim():"";return{giftReceiptIncluded:(l==null?void 0:l.gift_receipt_included)??!1,printedCardIncluded:(l==null?void 0:l.printed_card_included)??!1,giftWrappingOrder:{price:{value:((V=(j=l==null?void 0:l.gift_wrapping)==null?void 0:j.price)==null?void 0:V.value)??0,currency:((L=(B=l==null?void 0:l.gift_wrapping)==null?void 0:B.price)==null?void 0:L.currency)??"USD"},uid:((J=l==null?void 0:l.gift_wrapping)==null?void 0:J.uid)??""},placeholderImage:"",returnNumber:void 0,id:(l==null?void 0:l.id)??"",orderStatusChangeDate:void 0,number:"",email:(l==null?void 0:l.email)??"",token:void 0,status:"pending",isVirtual:(l==null?void 0:l.is_virtual)??!1,totalQuantity:un,shippingMethod:Q,carrier:(r==null?void 0:r.carrier_code)??"",orderDate:"",returns:[],discounts:(u==null?void 0:u.discounts)??[],coupons:(l==null?void 0:l.applied_coupons)??[],payments:[{code:(w==null?void 0:w.code)??"",name:(w==null?void 0:w.title)??""}],shipping:{code:Q,amount:((K=r==null?void 0:r.amount)==null?void 0:K.value)??0,currency:((z=r==null?void 0:r.amount)==null?void 0:z.currency)??"USD"},shipments:[],items:C,totalGiftCard:{value:0,currency:"USD"},grandTotal:(u==null?void 0:u.grand_total)??{value:0,currency:"USD"},totalShipping:(r==null?void 0:r.amount)??{value:0,currency:"USD"},subtotalExclTax:(u==null?void 0:u.subtotal_excluding_tax)??{value:0,currency:"USD"},subtotalInclTax:(u==null?void 0:u.subtotal_including_tax)??{value:0,currency:"USD"},totalTax:{value:(((X=u==null?void 0:u.grand_total)==null?void 0:X.value)??0)-(((Y=u==null?void 0:u.grand_total_excluding_tax)==null?void 0:Y.value)??0),currency:((Z=u==null?void 0:u.grand_total)==null?void 0:Z.currency)??"USD"},shippingAddress:P?c(P):null,totalGiftOptions:F(u==null?void 0:u.gift_options),billingAddress:s?c(s):null,availableActions:[],taxes:en(u==null?void 0:u.applied_taxes),appliedGiftCards:k(l==null?void 0:l.applied_gift_cards)}}const yn=`
4
+ fragment PURCHASE_ORDERS_FRAGMENT on PurchaseOrder {
5
+ __typename
6
+ uid
7
+ number
8
+ status
9
+ available_actions
10
+ comments {
11
+ created_at
12
+ author {
13
+ firstname
14
+ lastname
15
+ email
16
+ }
17
+ text
18
+ }
19
+ created_at
20
+ updated_at
21
+ created_by {
22
+ firstname
23
+ lastname
24
+ email
25
+ }
26
+ history_log {
27
+ activity
28
+ created_at
29
+ message
30
+ uid
31
+ }
32
+ order {
33
+ number
34
+ }
35
+ quote {
36
+ id
37
+ prices {
38
+ grand_total {
39
+ value
40
+ currency
41
+ }
42
+ }
43
+ itemsV2 {
44
+ items {
45
+ uid
46
+ quantity
47
+ }
48
+ }
49
+ }
50
+ }
51
+ `,gn=`
52
+ mutation APPROVE_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {
53
+ approvePurchaseOrders(input: $input) {
54
+ purchase_orders {
55
+ ...PURCHASE_ORDERS_FRAGMENT
56
+ }
57
+ errors {
58
+ message
59
+ type
60
+ }
61
+ }
62
+ }
63
+ ${yn}
64
+ `,vn=async l=>{const D=Array.isArray(l)?l:[l];if(!D||D.length===0)throw new Error("Purchase Order UID(s) are required");if(D.some(c=>!c||c.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return nn(gn,{variables:{input:{purchase_order_uids:D}}}).then(c=>{var o,S,v;(o=c.errors)!=null&&o.length&&an(c.errors);const g=(S=c.data)==null?void 0:S.approvePurchaseOrders;if(!g)throw new Error("Failed to approve purchase orders");return{errors:((g==null?void 0:g.errors)??[]).map(m=>({message:(m==null?void 0:m.message)??"",type:(m==null?void 0:m.type)??""})),purchaseOrders:((v=g==null?void 0:g.purchase_orders)==null?void 0:v.map(m=>_n(m)))??[]}}).catch(ln)},bn=`
65
+ mutation REJECT_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {
66
+ rejectPurchaseOrders(input: $input) {
67
+ purchase_orders {
68
+ ...PURCHASE_ORDERS_FRAGMENT
69
+ }
70
+ errors {
71
+ message
72
+ type
73
+ }
74
+ }
75
+ }
76
+ ${yn}
77
+ `,mn=async l=>{const D=Array.isArray(l)?l:[l];if(!D||D.length===0)throw new Error("Purchase Order UID(s) are required");if(D.some(c=>!c||c.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return nn(bn,{variables:{input:{purchase_order_uids:D}}}).then(c=>{var o,S;(o=c.errors)!=null&&o.length&&an(c.errors);const g=(S=c.data)==null?void 0:S.rejectPurchaseOrders;return{errors:((g==null?void 0:g.errors)??[]).map(v=>({message:(v==null?void 0:v.message)??"",type:(v==null?void 0:v.type)??""})),purchaseOrders:((g==null?void 0:g.purchase_orders)??[]).map(_n)}}).catch(ln)};export{yn as P,vn as a,mn as r,_n as t};
78
+ //# sourceMappingURL=rejectPurchaseOrders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejectPurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/data/transforms/transform-purchase-order.ts","/@dropins/storefront-purchase-order/src/api/graphql/PurchaseOrdersFragment.graphql.ts","/@dropins/storefront-purchase-order/src/api/approvePurchaseOrders/graphql/approvePurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/approvePurchaseOrders/approvePurchaseOrders.ts","/@dropins/storefront-purchase-order/src/api/rejectPurchaseOrders/graphql/rejectPurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/rejectPurchaseOrders/rejectPurchaseOrders.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\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const transformPurchaseOrder = (\n purchaseOrder: any\n): PurchaseOrderModel => {\n const order = {\n typename: purchaseOrder?.__typename ?? '',\n uid: purchaseOrder?.uid ?? '',\n number: purchaseOrder?.number ?? '',\n status: purchaseOrder?.status ?? '',\n availableActions: purchaseOrder?.available_actions ?? [],\n approvalFlow: purchaseOrder?.approval_flow\n ? {\n ruleName: purchaseOrder?.approval_flow?.rule_name ?? '',\n events:\n purchaseOrder?.approval_flow?.events?.map((event: any) => ({\n message: event?.message ?? '',\n name: event?.name ?? '',\n role: event?.role ?? '',\n status: event?.status ?? '',\n updatedAt: event?.updated_at ?? '',\n })) ?? [],\n }\n : null,\n comments:\n purchaseOrder?.comments?.map((comment: any) => ({\n createdAt: comment?.created_at ?? '',\n author: {\n firstname: comment?.author?.firstname ?? '',\n lastname: comment?.author?.lastname ?? '',\n email: comment?.author?.email ?? '',\n },\n text: comment?.text ?? '',\n })) ?? [],\n createdAt: purchaseOrder?.created_at ?? '',\n updatedAt: purchaseOrder?.updated_at ?? '',\n createdBy: {\n firstname: purchaseOrder?.created_by?.firstname ?? '',\n lastname: purchaseOrder?.created_by?.lastname ?? '',\n email: purchaseOrder?.created_by?.email ?? '',\n },\n historyLog:\n purchaseOrder?.history_log?.map((log: any) => ({\n activity: log?.activity ?? '',\n createdAt: log?.created_at ?? '',\n message: log?.message ?? '',\n uid: log?.uid ?? '',\n })) ?? [],\n quote: transformQuoteToOrder(purchaseOrder?.quote),\n order:{\n id: purchaseOrder?.order?.id ?? '',\n orderNumber: purchaseOrder?.order?.number ?? '',\n }\n };\n\n return order;\n};\n\nfunction transformQuoteToOrder(quote: any) {\n if (!quote) return null;\n\n // Helper functions\n const parseNumber = (value: number | undefined | null) => {\n return value || 0;\n };\n\n const transformUserInformation = (user: any) => {\n return {\n firstName: user?.firstname ?? '',\n lastName: user?.lastname ?? '',\n middleName: user?.middlename ?? '',\n };\n };\n\n const transformAddress = (address: any) => {\n const { firstName, lastName, middleName } =\n transformUserInformation(address);\n\n return {\n firstName,\n lastName,\n middleName,\n city: address?.city ?? '',\n company: address?.company ?? '',\n country: address?.country?.label ?? '',\n countryCode: address?.country?.code ?? '',\n fax: address?.fax ?? '',\n postCode: address?.postcode ?? '',\n prefix: address?.prefix ?? '',\n region: address?.region?.label ?? '',\n regionId: address?.region?.code ?? '',\n street: address?.street ?? [],\n suffix: address?.suffix ?? '',\n telephone: address?.telephone ?? '',\n vatId: address?.vat_id ?? '',\n customAttributes: address?.custom_attributes ?? [],\n };\n };\n\n const transformProduct = (product: any) => {\n return {\n __typename: product?.__typename || '',\n uid: product?.uid || '',\n onlyXLeftInStock: product?.only_x_left_in_stock ?? 0,\n stockStatus: product?.stock_status ?? '',\n priceRange: {\n maximumPrice: {\n regularPrice: {\n currency:\n product?.price_range?.maximum_price?.regular_price?.currency ??\n '',\n value:\n product?.price_range?.maximum_price?.regular_price?.value ?? 0,\n },\n },\n },\n canonicalUrl: product?.canonical_url ?? '',\n urlKey: product?.url_key || '',\n id: product?.uid ?? '',\n name: product?.name || '',\n sku: product?.sku || '',\n image: product?.image?.url || '',\n imageAlt: product?.image?.label || '',\n productType: product?.__typename || '',\n thumbnail: {\n label: product?.thumbnail?.label || '',\n url: product?.thumbnail?.url || '',\n },\n };\n };\n\n const transformConfigurableOptions = (item: any) => {\n if (!item) return;\n\n // GraphQL returns configurable_options (not selected_options)\n if (!('configurable_options' in item)) return;\n\n const configurableOptions: Record<string, string> = {};\n\n for (const option of item.configurable_options!) {\n // GraphQL fields: option_label and value_label\n configurableOptions[option!.option_label] = option!.value_label;\n }\n\n return configurableOptions;\n };\n const transformBundleOptions = (data: any) => {\n const bundle = data?.map((option: any) => ({\n uid: option.uid,\n label: option.label,\n values: option.values.map((value: any) => value.product_name).join(', '),\n }));\n\n const bundleOptions: { [key: string]: any } = {};\n\n bundle?.forEach((option: any) => {\n bundleOptions[option.label] = option.values;\n });\n\n return Object.keys(bundleOptions).length > 0 ? bundleOptions : null;\n };\n\n const transformLinks = (links: { title: string }[]) => {\n return links?.length > 0\n ? {\n count: links.length,\n result: links.map((link: any) => link.title).join(', '),\n }\n : null;\n };\n\n const transformGiftCard = (item: any) => {\n return {\n senderName: item?.gift_card?.sender_name || '',\n senderEmail: item?.gift_card?.sender_email || '',\n recipientEmail: item?.gift_card?.recipient_email || '',\n recipientName: item?.gift_card?.recipient_name || '',\n message: item?.gift_card?.message || '',\n };\n };\n\n const transformGiftMessage = (data: any) => {\n return {\n senderName: data?.gift_message?.from ?? '',\n recipientName: data?.gift_message?.to ?? '',\n message: data?.gift_message?.message ?? '',\n };\n };\n\n const transformGiftWrapping = (data: any) => {\n return {\n design: data?.gift_wrapping?.design ?? '',\n uid: data?.gift_wrapping?.uid ?? '',\n selected: Boolean(data?.gift_wrapping?.uid),\n image: {\n url: data?.gift_wrapping?.image?.url ?? '',\n label: data?.gift_wrapping?.image?.label ?? '',\n },\n price: {\n currency: data?.gift_wrapping?.price?.currency ?? 'USD',\n value: data?.gift_wrapping?.price?.value ?? 0,\n },\n };\n };\n\n const transformWrappingPrice = (data: any) => {\n return {\n currency: data?.currency ?? 'USD',\n value: data?.value ?? 0,\n };\n };\n\n const transformTaxCalculations = (\n itemPrices: any,\n productPrice: { value: number; currency: string }\n ) => {\n const price = itemPrices?.price;\n const priceIncludingTax = itemPrices?.priceIncludingTax;\n const originalPrice = itemPrices?.originalPrice;\n\n // For quote, discounted is always false since there are no discounts yet\n const discounted = false;\n const baseOriginalPriceValue = discounted\n ? originalPrice?.value\n : priceIncludingTax?.value;\n\n const includeAndExcludeTax = {\n originalPrice,\n baseOriginalPrice: {\n value: baseOriginalPriceValue,\n currency: originalPrice?.currency,\n },\n baseDiscountedPrice: {\n value: priceIncludingTax?.value,\n currency: priceIncludingTax?.currency,\n },\n baseExcludingTax: {\n value: price?.value,\n currency: price?.currency,\n },\n };\n\n const excludeTax = {\n originalPrice,\n baseOriginalPrice: {\n value: originalPrice?.value,\n currency: priceIncludingTax?.currency,\n },\n baseDiscountedPrice: {\n value: productPrice?.value,\n currency: price?.currency,\n },\n baseExcludingTax: {\n value: price?.value,\n currency: price?.currency,\n },\n };\n\n const includeTax = {\n singleItemPrice: {\n value: discounted ? originalPrice.value : priceIncludingTax.value,\n currency: priceIncludingTax.currency,\n },\n baseOriginalPrice: {\n value: baseOriginalPriceValue,\n currency: priceIncludingTax.currency,\n },\n baseDiscountedPrice: {\n value: priceIncludingTax.value,\n currency: priceIncludingTax.currency,\n },\n };\n\n return {\n includeAndExcludeTax,\n excludeTax,\n includeTax,\n };\n };\n\n const transformQuoteItem = (item: any) => {\n const product = item?.product;\n const prices = item?.prices;\n const quantity = parseNumber(item?.quantity);\n\n const itemPrices = {\n price: prices?.price ?? { value: 0, currency: 'USD' },\n priceIncludingTax: prices?.price_including_tax ?? {\n value: 0,\n currency: 'USD',\n },\n originalPrice: prices?.original_item_price ?? {\n value: 0,\n currency: 'USD',\n },\n originalPriceIncludingTax: prices?.original_item_price ?? {\n value: 0,\n currency: 'USD',\n },\n discounts: prices?.discounts ?? [],\n };\n\n const discounted =\n (prices?.original_item_price?.value ?? 0) > (prices?.price?.value ?? 0);\n\n const price = prices?.price ?? { value: 0, currency: 'USD' };\n\n return {\n giftMessage: transformGiftMessage(item),\n giftWrappingPrice: transformWrappingPrice(item?.gift_wrapping?.price),\n productGiftWrapping: [transformGiftWrapping(item)],\n taxCalculations: transformTaxCalculations(itemPrices, price),\n productSalePrice: price,\n status: item?.is_available ? 'available' : 'unavailable',\n currentReturnOrderQuantity: 0,\n eligibleForReturn: false,\n productSku: product?.sku ?? '',\n type: product?.__typename ?? '',\n discounted,\n id: item?.uid ?? '',\n productName: product?.name ?? '',\n productUrlKey: product?.url_key ?? '',\n regularPrice: {\n value: product?.price_range?.maximum_price?.regular_price?.value ?? 0,\n currency:\n product?.price_range?.maximum_price?.regular_price?.currency ?? 'USD',\n },\n price,\n product: transformProduct(product),\n selectedOptions: item?.customizable_options ?? [],\n thumbnail: {\n label: product?.thumbnail?.label || '',\n url: product?.thumbnail?.url || '',\n },\n downloadableLinks:\n product?.__typename === 'DownloadableProduct' &&\n item?.downloadable_links\n ? transformLinks(item.downloadable_links)\n : null,\n prices: itemPrices,\n itemPrices,\n bundleOptions:\n product?.__typename === 'BundleProduct' && item?.bundle_options\n ? transformBundleOptions(item.bundle_options)\n : null,\n totalInclTax: prices?.row_total_including_tax ?? {\n value: 0,\n currency: 'USD',\n },\n priceInclTax: prices?.price_including_tax ?? {\n value: 0,\n currency: 'USD',\n },\n total: prices?.row_total ?? { value: 0, currency: 'USD' },\n configurableOptions:\n product?.__typename === 'ConfigurableProduct'\n ? transformConfigurableOptions(item)\n : undefined,\n giftCard:\n product?.__typename === 'GiftCardProduct'\n ? transformGiftCard(item)\n : undefined,\n quantityCanceled: 0,\n quantityInvoiced: 0,\n quantityOrdered: quantity,\n quantityRefunded: 0,\n quantityReturned: 0,\n quantityShipped: 0,\n requestQuantity: 0,\n totalQuantity: quantity,\n returnableQuantity: 0,\n quantityReturnRequested: 0,\n };\n };\n\n const transformGiftOptions = (giftOptions: any) => {\n return {\n giftWrappingForItems: giftOptions?.gift_wrapping_for_items ?? {\n value: 0,\n currency: 'USD',\n },\n giftWrappingForItemsInclTax:\n giftOptions?.gift_wrapping_for_items_incl_tax ?? {\n value: 0,\n currency: 'USD',\n },\n giftWrappingForOrder: giftOptions?.gift_wrapping_for_order ?? {\n value: 0,\n currency: 'USD',\n },\n giftWrappingForOrderInclTax:\n giftOptions?.gift_wrapping_for_order_incl_tax ?? {\n value: 0,\n currency: 'USD',\n },\n printedCard: giftOptions?.printed_card ?? {\n value: 0,\n currency: 'USD',\n },\n printedCardInclTax: giftOptions?.printed_card_incl_tax ?? {\n value: 0,\n currency: 'USD',\n },\n };\n };\n\n const transformAppliedGiftCards = (appliedGiftCards: any[] = []) => {\n if (!appliedGiftCards || appliedGiftCards.length === 0) return [];\n\n return appliedGiftCards.map((giftCard: any) => ({\n code: giftCard?.code ?? '',\n appliedBalance: {\n value: giftCard?.applied_balance?.value ?? 0,\n currency: giftCard?.applied_balance?.currency ?? 'USD',\n },\n }));\n };\n\n const transformTaxes = (appliedTaxes: any[] = []) => {\n if (!appliedTaxes || appliedTaxes.length === 0) return [];\n\n return appliedTaxes.map((tax: any) => ({\n amount: {\n value: tax?.amount?.value ?? 0,\n currency: tax?.amount?.currency ?? 'USD',\n },\n rate: tax?.rate ?? 0,\n title: tax?.title ?? tax?.label ?? '',\n }));\n };\n\n // Get shipping address (first one if multiple)\n const shippingAddressData = quote?.shipping_addresses?.[0];\n const billingAddressData = quote?.billing_address;\n const selectedShippingMethod = shippingAddressData?.selected_shipping_method;\n const selectedPaymentMethod = quote?.selected_payment_method;\n const prices = quote?.prices;\n\n // Transform items from quote\n const items = quote?.itemsV2?.items?.map(transformQuoteItem) ?? [];\n\n // Calculate total quantity\n const totalQuantity = items.reduce(\n (accum: number, item: any) => accum + item.totalQuantity,\n 0\n );\n\n // Build OrderDataModel structure from quote\n // Build shipping method string like in order: \"carrier_title - method_title\"\n const shippingMethodString = selectedShippingMethod\n ? `${selectedShippingMethod.carrier_title ?? ''} - ${\n selectedShippingMethod.method_title ?? ''\n }`.trim()\n : '';\n\n return {\n giftReceiptIncluded: quote?.gift_receipt_included ?? false,\n printedCardIncluded: quote?.printed_card_included ?? false,\n giftWrappingOrder: {\n price: {\n value: quote?.gift_wrapping?.price?.value ?? 0,\n currency: quote?.gift_wrapping?.price?.currency ?? 'USD',\n },\n uid: quote?.gift_wrapping?.uid ?? '',\n },\n placeholderImage: '',\n returnNumber: undefined,\n id: quote?.id ?? '',\n orderStatusChangeDate: undefined,\n number: '', // Quotes don't have order numbers yet\n email: quote?.email ?? '',\n token: undefined,\n status: 'pending', // Quote status\n isVirtual: quote?.is_virtual ?? false,\n totalQuantity,\n shippingMethod: shippingMethodString,\n carrier: selectedShippingMethod?.carrier_code ?? '',\n orderDate: '', // Quotes don't have order date yet\n returns: [],\n discounts: prices?.discounts ?? [],\n coupons: quote?.applied_coupons ?? [],\n payments: [\n {\n code: selectedPaymentMethod?.code ?? '',\n name: selectedPaymentMethod?.title ?? '',\n },\n ],\n shipping: {\n code: shippingMethodString,\n amount: selectedShippingMethod?.amount?.value ?? 0,\n currency: selectedShippingMethod?.amount?.currency ?? 'USD',\n },\n shipments: [],\n items,\n totalGiftCard: {\n value: 0,\n currency: 'USD',\n },\n grandTotal: prices?.grand_total ?? { value: 0, currency: 'USD' },\n totalShipping: selectedShippingMethod?.amount ?? {\n value: 0,\n currency: 'USD',\n },\n subtotalExclTax: prices?.subtotal_excluding_tax ?? {\n value: 0,\n currency: 'USD',\n },\n subtotalInclTax: prices?.subtotal_including_tax ?? {\n value: 0,\n currency: 'USD',\n },\n totalTax: {\n value:\n (prices?.grand_total?.value ?? 0) -\n (prices?.grand_total_excluding_tax?.value ?? 0),\n currency: prices?.grand_total?.currency ?? 'USD',\n },\n shippingAddress: shippingAddressData\n ? transformAddress(shippingAddressData)\n : null,\n totalGiftOptions: transformGiftOptions(prices?.gift_options),\n billingAddress: billingAddressData\n ? transformAddress(billingAddressData)\n : null,\n availableActions: [],\n taxes: transformTaxes(prices?.applied_taxes),\n appliedGiftCards: transformAppliedGiftCards(quote?.applied_gift_cards),\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\n// TODO - Add approval_flow after backend functionality will be adjusted\nexport const PURCHASE_ORDERS_FRAGMENT = /* GraphQL */ `\n fragment PURCHASE_ORDERS_FRAGMENT on PurchaseOrder {\n __typename\n uid\n number\n status\n available_actions\n comments {\n created_at\n author {\n firstname\n lastname\n email\n }\n text\n }\n created_at\n updated_at\n created_by {\n firstname\n lastname\n email\n }\n history_log {\n activity\n created_at\n message\n uid\n }\n order {\n number\n }\n quote {\n id\n prices {\n grand_total {\n value\n currency\n }\n }\n itemsV2 {\n items {\n uid\n quantity\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_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const APPROVE_PURCHASE_ORDERS = /* GraphQL */ `\n mutation APPROVE_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {\n approvePurchaseOrders(input: $input) {\n purchase_orders {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n errors {\n message\n type\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 { APPROVE_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/approvePurchaseOrders/graphql/approvePurchaseOrders.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const approvePurchaseOrders = 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(APPROVE_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?.approvePurchaseOrders;\n if (!data) {\n throw new Error('Failed to approve purchase orders');\n }\n\n return {\n errors: (data?.errors ?? []).map((error: any) => ({\n message: error?.message ?? '',\n type: error?.type ?? '',\n })),\n purchaseOrders:\n data?.purchase_orders?.map((order: any) =>\n transformPurchaseOrder(order)\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\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const REJECT_PURCHASE_ORDERS = /* GraphQL */ `\n mutation REJECT_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {\n rejectPurchaseOrders(input: $input) {\n purchase_orders {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n errors {\n message\n type\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 { REJECT_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/rejectPurchaseOrders/graphql/rejectPurchaseOrders.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const rejectPurchaseOrders = 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(REJECT_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?.rejectPurchaseOrders;\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"],"names":["transformPurchaseOrder","purchaseOrder","_a","_c","_b","event","_d","comment","_e","_f","_g","_h","log","transformQuoteToOrder","_i","_j","quote","parseNumber","value","transformUserInformation","user","transformAddress","address","firstName","lastName","middleName","transformProduct","product","transformConfigurableOptions","item","configurableOptions","option","transformBundleOptions","data","bundle","bundleOptions","transformLinks","links","link","transformGiftCard","transformGiftMessage","transformGiftWrapping","_k","transformWrappingPrice","transformTaxCalculations","itemPrices","productPrice","price","priceIncludingTax","originalPrice","discounted","baseOriginalPriceValue","includeAndExcludeTax","excludeTax","includeTax","transformQuoteItem","prices","quantity","transformGiftOptions","giftOptions","transformAppliedGiftCards","appliedGiftCards","giftCard","transformTaxes","appliedTaxes","tax","shippingAddressData","billingAddressData","selectedShippingMethod","selectedPaymentMethod","items","totalQuantity","accum","shippingMethodString","_l","_m","PURCHASE_ORDERS_FRAGMENT","APPROVE_PURCHASE_ORDERS","approvePurchaseOrders","uids","uidArray","uid","fetchGraphQl","response","handleFetchError","error","order","handleNetworkError","REJECT_PURCHASE_ORDERS","rejectPurchaseOrders"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{useState as l,useEffect as p,useMemo as c}from"@dropins/tools/preact-hooks.js";import{events as i}from"@dropins/tools/event-bus.js";const d=a=>{if(!a)return{isAdmin:!1,purchaseOrderEnabled:!1,role:{id:"",name:""},permissions:{purchaseOrderAll:!1,viewPurchaseOrders:!1,viewPurchaseOrdersForSubordinates:!1,viewPurchaseOrdersForCompany:!1,autoApprovePurchaseOrder:!1,superApprovePurchaseOrder:!1,viewApprovalRules:!1,manageApprovalRules:!1}};const r=a.admin===!0,e=s=>{const n=a[s];return n===!1?!1:n===!0?!0:r},u={purchaseOrderAll:e("Magento_PurchaseOrder::all"),viewPurchaseOrders:e("Magento_PurchaseOrder::view_purchase_orders"),viewPurchaseOrdersForSubordinates:e("Magento_PurchaseOrder::view_purchase_orders_for_subordinates"),viewPurchaseOrdersForCompany:e("Magento_PurchaseOrder::view_purchase_orders_for_company"),autoApprovePurchaseOrder:e("Magento_PurchaseOrder::autoapprove_purchase_order"),superApprovePurchaseOrder:e("Magento_PurchaseOrderRule::super_approve_purchase_order"),viewApprovalRules:e("Magento_PurchaseOrderRule::view_approval_rules"),manageApprovalRules:e("Magento_PurchaseOrderRule::manage_approval_rules")},o=Object.values(a).some(s=>s===!1)?!1:Object.values(u).some(s=>s===!0);return{isAdmin:r,purchaseOrderEnabled:o,role:{id:"",name:r?"Company Administrator":""},permissions:u}},v=()=>{const a=i.lastPayload("auth/permissions"),[r,e]=l(a);p(()=>{const o=i.on("auth/permissions",s=>{e(s)},{eager:!0});return()=>{o==null||o.off()}},[]);const u=!r;return{permissions:c(()=>d(r),[r]),loadingPermissions:u}};export{v as u};
3
+ import{useState as m,useEffect as p,useMemo as c}from"@dropins/tools/preact-hooks.js";import{events as u}from"@dropins/tools/event-bus.js";import{P as s}from"./permissions.js";const P=o=>{if(!o)return{isAdmin:!1,purchaseOrderEnabled:!1,role:{id:"",name:""},permissions:{purchaseOrderAll:!1,viewPurchaseOrders:!1,viewPurchaseOrdersForSubordinates:!1,viewPurchaseOrdersForCompany:!1,autoApprovePurchaseOrder:!1,superApprovePurchaseOrder:!1,viewApprovalRules:!1,manageApprovalRules:!1}};const r=o.admin===!0,e=a=>{const t=o[a];return t===!1?!1:t===!0?!0:r},n={purchaseOrderAll:e(s.PO_ALL),viewPurchaseOrders:e(s.VIEW_CUSTOMER),viewPurchaseOrdersForSubordinates:e(s.VIEW_SUBORDINATES),viewPurchaseOrdersForCompany:e(s.VIEW_COMPANY),autoApprovePurchaseOrder:e(s.AUTO_APPROVE),superApprovePurchaseOrder:e(s.SUPER_APPROVE),viewApprovalRules:e(s.VIEW_RULES),manageApprovalRules:e(s.MANAGE_RULES)},i=Object.values(o).some(a=>a===!1)?!1:Object.values(n).some(a=>a===!0);return{isAdmin:r,purchaseOrderEnabled:i,role:{id:"",name:r?"Company Administrator":""},permissions:n}},A=()=>{const o=u.lastPayload("auth/permissions"),[r,e]=m(o);p(()=>{const i=u.on("auth/permissions",a=>{e(a)},{eager:!0});return()=>{i==null||i.off()}},[]);const n=!r;return{permissions:c(()=>P(r),[r]),loadingPermissions:n}};export{A as u};
4
4
  //# sourceMappingURL=useCustomerRolePermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCustomerRolePermissions.js","sources":["/@dropins/storefront-purchase-order/src/data/transforms/transform-customer-role-permissions.ts","/@dropins/storefront-purchase-order/src/hooks/useCustomerRolePermissions.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\nimport { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models/customer-role-permissions-model';\n\ntype PermissionsPayload = {\n admin?: boolean;\n [key: string]: boolean | undefined;\n};\n\n/**\n * Transforms flat permissions object from auth/permissions event into CustomerRolePermissionsModel\n *\n * Permission Logic:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin privileges - indicates PO feature is disabled)\n * - Default: Admins get access, regular users don't\n *\n * @param permissionsData - Flat object with permission keys and admin flag\n * @returns CustomerRolePermissionsModel\n */\nexport const transformPermissions = (\n permissionsData: PermissionsPayload | null | undefined\n): CustomerRolePermissionsModel => {\n // Fallback for edge cases\n if (!permissionsData) {\n return {\n isAdmin: false,\n purchaseOrderEnabled: false,\n role: { id: '', name: '' },\n permissions: {\n purchaseOrderAll: false,\n viewPurchaseOrders: false,\n viewPurchaseOrdersForSubordinates: false,\n viewPurchaseOrdersForCompany: false,\n autoApprovePurchaseOrder: false,\n superApprovePurchaseOrder: false,\n viewApprovalRules: false,\n manageApprovalRules: false,\n },\n };\n }\n\n const isAdmin = permissionsData.admin === true;\n\n /**\n * Check if permission is granted\n * - false: Overrides admin (PO disabled)\n * - true: Permission granted\n * - Default: Use admin status\n */\n const hasPermission = (key: string): boolean => {\n const permissionValue = permissionsData[key];\n\n if (permissionValue === false) {\n return false;\n }\n\n if (permissionValue === true) {\n return true;\n }\n\n return isAdmin;\n };\n\n const permissions = {\n purchaseOrderAll: hasPermission('Magento_PurchaseOrder::all'),\n viewPurchaseOrders: hasPermission(\n 'Magento_PurchaseOrder::view_purchase_orders'\n ),\n viewPurchaseOrdersForSubordinates: hasPermission(\n 'Magento_PurchaseOrder::view_purchase_orders_for_subordinates'\n ),\n viewPurchaseOrdersForCompany: hasPermission(\n 'Magento_PurchaseOrder::view_purchase_orders_for_company'\n ),\n autoApprovePurchaseOrder: hasPermission(\n 'Magento_PurchaseOrder::autoapprove_purchase_order'\n ),\n superApprovePurchaseOrder: hasPermission(\n 'Magento_PurchaseOrderRule::super_approve_purchase_order'\n ),\n viewApprovalRules: hasPermission(\n 'Magento_PurchaseOrderRule::view_approval_rules'\n ),\n manageApprovalRules: hasPermission(\n 'Magento_PurchaseOrderRule::manage_approval_rules'\n ),\n };\n\n // Purchase orders are disabled if ANY permission in the payload is explicitly set to false\n // Otherwise enabled if user has at least one permission\n const hasExplicitlyDisabledPermission = Object.values(permissionsData).some(\n (value) => value === false\n );\n const purchaseOrderEnabled = hasExplicitlyDisabledPermission\n ? false\n : Object.values(permissions).some((permission) => permission === true);\n\n return {\n isAdmin,\n purchaseOrderEnabled,\n role: {\n id: '',\n name: isAdmin ? 'Company Administrator' : '',\n },\n permissions,\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 { useMemo, useState, useEffect } from 'preact/hooks';\nimport { events } from '@adobe-commerce/event-bus';\nimport { transformPermissions } from '@/b2b-purchase-order/data/transforms/transform-customer-role-permissions';\nimport { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models';\n\n/**\n * Hook to consume customer role permissions from the auth/permissions event\n *\n * Initializes with last payload and subscribes to real-time updates.\n * Transforms permissions data where:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin - PO feature disabled)\n * - Default: Admins get access, regular users don't\n *\n * @returns {permissions: CustomerRolePermissionsModel, loadingPermissions: boolean}\n */\nexport const useCustomerRolePermissions = (): {\n permissions: CustomerRolePermissionsModel;\n loadingPermissions: boolean;\n} => {\n // Initialize with the last payload from the auth/permissions event\n const initialPermissionsData = events.lastPayload('auth/permissions');\n\n // State to hold permissions data, updated when event is triggered\n const [permissionsData, setPermissionsData] = useState(\n initialPermissionsData\n );\n\n // Subscribe to auth/permissions event for real-time updates\n useEffect(() => {\n const subscription = events.on(\n 'auth/permissions',\n (payload) => {\n setPermissionsData(payload);\n },\n { eager: true }\n );\n\n // Cleanup subscription on unmount\n return () => {\n subscription?.off();\n };\n }, []);\n\n // We're loading if we don't have permissions data from the event yet\n const loadingPermissions = !permissionsData;\n\n // Transform and memoize the permissions data\n const permissions = useMemo(() => {\n return transformPermissions(permissionsData);\n }, [permissionsData]);\n\n return {\n permissions,\n loadingPermissions,\n };\n};\n"],"names":["transformPermissions","permissionsData","isAdmin","hasPermission","key","permissionValue","permissions","purchaseOrderEnabled","value","permission","useCustomerRolePermissions","initialPermissionsData","events","setPermissionsData","useState","useEffect","subscription","payload","loadingPermissions","useMemo"],"mappings":"2IAmCO,MAAMA,EACXC,GACiC,CAEjC,GAAI,CAACA,EACH,MAAO,CACL,QAAS,GACT,qBAAsB,GACtB,KAAM,CAAE,GAAI,GAAI,KAAM,EAAA,EACtB,YAAa,CACX,iBAAkB,GAClB,mBAAoB,GACpB,kCAAmC,GACnC,6BAA8B,GAC9B,yBAA0B,GAC1B,0BAA2B,GAC3B,kBAAmB,GACnB,oBAAqB,EAAA,CACvB,EAIJ,MAAMC,EAAUD,EAAgB,QAAU,GAQpCE,EAAiBC,GAAyB,CAC9C,MAAMC,EAAkBJ,EAAgBG,CAAG,EAE3C,OAAIC,IAAoB,GACf,GAGLA,IAAoB,GACf,GAGFH,CACT,EAEMI,EAAc,CAClB,iBAAkBH,EAAc,4BAA4B,EAC5D,mBAAoBA,EAClB,6CAAA,EAEF,kCAAmCA,EACjC,8DAAA,EAEF,6BAA8BA,EAC5B,yDAAA,EAEF,yBAA0BA,EACxB,mDAAA,EAEF,0BAA2BA,EACzB,yDAAA,EAEF,kBAAmBA,EACjB,gDAAA,EAEF,oBAAqBA,EACnB,kDAAA,CACF,EAQII,EAHkC,OAAO,OAAON,CAAe,EAAE,KACpEO,GAAUA,IAAU,EAAA,EAGnB,GACA,OAAO,OAAOF,CAAW,EAAE,KAAMG,GAAeA,IAAe,EAAI,EAEvE,MAAO,CACL,QAAAP,EACA,qBAAAK,EACA,KAAM,CACJ,GAAI,GACJ,KAAML,EAAU,wBAA0B,EAAA,EAE5C,YAAAI,CAAA,CAEJ,ECzFaI,EAA6B,IAGrC,CAEH,MAAMC,EAAyBC,EAAO,YAAY,kBAAkB,EAG9D,CAACX,EAAiBY,CAAkB,EAAIC,EAC5CH,CAAA,EAIFI,EAAU,IAAM,CACd,MAAMC,EAAeJ,EAAO,GAC1B,mBACCK,GAAY,CACXJ,EAAmBI,CAAO,CAC5B,EACA,CAAE,MAAO,EAAA,CAAK,EAIhB,MAAO,IAAM,CACXD,GAAA,MAAAA,EAAc,KAChB,CACF,EAAG,CAAA,CAAE,EAGL,MAAME,EAAqB,CAACjB,EAO5B,MAAO,CACL,YALkBkB,EAAQ,IACnBnB,EAAqBC,CAAe,EAC1C,CAACA,CAAe,CAAC,EAIlB,mBAAAiB,CAAA,CAEJ"}
1
+ {"version":3,"file":"useCustomerRolePermissions.js","sources":["/@dropins/storefront-purchase-order/src/data/transforms/transform-customer-role-permissions.ts","/@dropins/storefront-purchase-order/src/hooks/useCustomerRolePermissions.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\nimport { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models/customer-role-permissions-model';\nimport { PO_PERMISSIONS } from '@/b2b-purchase-order/api/permissions';\n\ntype PermissionsPayload = {\n admin?: boolean;\n [key: string]: boolean | undefined;\n};\n\n/**\n * Transforms flat permissions object from auth/permissions event into CustomerRolePermissionsModel\n *\n * Permission Logic:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin privileges - indicates PO feature is disabled)\n * - Default: Admins get access, regular users don't\n *\n * @param permissionsData - Flat object with permission keys and admin flag\n * @returns CustomerRolePermissionsModel\n */\nexport const transformPermissions = (\n permissionsData: PermissionsPayload | null | undefined\n): CustomerRolePermissionsModel => {\n // Fallback for edge cases\n if (!permissionsData) {\n return {\n isAdmin: false,\n purchaseOrderEnabled: false,\n role: { id: '', name: '' },\n permissions: {\n purchaseOrderAll: false,\n viewPurchaseOrders: false,\n viewPurchaseOrdersForSubordinates: false,\n viewPurchaseOrdersForCompany: false,\n autoApprovePurchaseOrder: false,\n superApprovePurchaseOrder: false,\n viewApprovalRules: false,\n manageApprovalRules: false,\n },\n };\n }\n\n const isAdmin = permissionsData.admin === true;\n\n /**\n * Check if permission is granted\n * - false: Overrides admin (PO disabled)\n * - true: Permission granted\n * - Default: Use admin status\n */\n const hasPermission = (key: string): boolean => {\n const permissionValue = permissionsData[key];\n\n if (permissionValue === false) {\n return false;\n }\n\n if (permissionValue === true) {\n return true;\n }\n\n return isAdmin;\n };\n\n const permissions = {\n purchaseOrderAll: hasPermission(PO_PERMISSIONS.PO_ALL),\n viewPurchaseOrders: hasPermission(PO_PERMISSIONS.VIEW_CUSTOMER),\n viewPurchaseOrdersForSubordinates: hasPermission(\n PO_PERMISSIONS.VIEW_SUBORDINATES\n ),\n viewPurchaseOrdersForCompany: hasPermission(PO_PERMISSIONS.VIEW_COMPANY),\n autoApprovePurchaseOrder: hasPermission(PO_PERMISSIONS.AUTO_APPROVE),\n superApprovePurchaseOrder: hasPermission(PO_PERMISSIONS.SUPER_APPROVE),\n viewApprovalRules: hasPermission(PO_PERMISSIONS.VIEW_RULES),\n manageApprovalRules: hasPermission(PO_PERMISSIONS.MANAGE_RULES),\n };\n\n // Purchase orders are disabled if ANY permission in the payload is explicitly set to false\n // Otherwise enabled if user has at least one permission\n const hasExplicitlyDisabledPermission = Object.values(permissionsData).some(\n (value) => value === false\n );\n const purchaseOrderEnabled = hasExplicitlyDisabledPermission\n ? false\n : Object.values(permissions).some((permission) => permission === true);\n\n return {\n isAdmin,\n purchaseOrderEnabled,\n role: {\n id: '',\n name: isAdmin ? 'Company Administrator' : '',\n },\n permissions,\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 { useMemo, useState, useEffect } from 'preact/hooks';\nimport { events } from '@adobe-commerce/event-bus';\nimport { transformPermissions } from '@/b2b-purchase-order/data/transforms/transform-customer-role-permissions';\nimport { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models';\n\n/**\n * Hook to consume customer role permissions from the auth/permissions event\n *\n * Initializes with last payload and subscribes to real-time updates.\n * Transforms permissions data where:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin - PO feature disabled)\n * - Default: Admins get access, regular users don't\n *\n * @returns {permissions: CustomerRolePermissionsModel, loadingPermissions: boolean}\n */\nexport const useCustomerRolePermissions = (): {\n permissions: CustomerRolePermissionsModel;\n loadingPermissions: boolean;\n} => {\n // Initialize with the last payload from the auth/permissions event\n const initialPermissionsData = events.lastPayload('auth/permissions');\n\n // State to hold permissions data, updated when event is triggered\n const [permissionsData, setPermissionsData] = useState(\n initialPermissionsData\n );\n\n // Subscribe to auth/permissions event for real-time updates\n useEffect(() => {\n const subscription = events.on(\n 'auth/permissions',\n (payload) => {\n setPermissionsData(payload);\n },\n { eager: true }\n );\n\n // Cleanup subscription on unmount\n return () => {\n subscription?.off();\n };\n }, []);\n\n // We're loading if we don't have permissions data from the event yet\n const loadingPermissions = !permissionsData;\n\n // Transform and memoize the permissions data\n const permissions = useMemo(() => {\n return transformPermissions(permissionsData);\n }, [permissionsData]);\n\n return {\n permissions,\n loadingPermissions,\n };\n};\n"],"names":["transformPermissions","permissionsData","isAdmin","hasPermission","key","permissionValue","permissions","PO_PERMISSIONS","purchaseOrderEnabled","value","permission","useCustomerRolePermissions","initialPermissionsData","events","setPermissionsData","useState","useEffect","subscription","payload","loadingPermissions","useMemo"],"mappings":"gLAoCO,MAAMA,EACXC,GACiC,CAEjC,GAAI,CAACA,EACH,MAAO,CACL,QAAS,GACT,qBAAsB,GACtB,KAAM,CAAE,GAAI,GAAI,KAAM,EAAA,EACtB,YAAa,CACX,iBAAkB,GAClB,mBAAoB,GACpB,kCAAmC,GACnC,6BAA8B,GAC9B,yBAA0B,GAC1B,0BAA2B,GAC3B,kBAAmB,GACnB,oBAAqB,EAAA,CACvB,EAIJ,MAAMC,EAAUD,EAAgB,QAAU,GAQpCE,EAAiBC,GAAyB,CAC9C,MAAMC,EAAkBJ,EAAgBG,CAAG,EAE3C,OAAIC,IAAoB,GACf,GAGLA,IAAoB,GACf,GAGFH,CACT,EAEMI,EAAc,CAClB,iBAAkBH,EAAcI,EAAe,MAAM,EACrD,mBAAoBJ,EAAcI,EAAe,aAAa,EAC9D,kCAAmCJ,EACjCI,EAAe,iBAAA,EAEjB,6BAA8BJ,EAAcI,EAAe,YAAY,EACvE,yBAA0BJ,EAAcI,EAAe,YAAY,EACnE,0BAA2BJ,EAAcI,EAAe,aAAa,EACrE,kBAAmBJ,EAAcI,EAAe,UAAU,EAC1D,oBAAqBJ,EAAcI,EAAe,YAAY,CAAA,EAQ1DC,EAHkC,OAAO,OAAOP,CAAe,EAAE,KACpEQ,GAAUA,IAAU,EAAA,EAGnB,GACA,OAAO,OAAOH,CAAW,EAAE,KAAMI,GAAeA,IAAe,EAAI,EAEvE,MAAO,CACL,QAAAR,EACA,qBAAAM,EACA,KAAM,CACJ,GAAI,GACJ,KAAMN,EAAU,wBAA0B,EAAA,EAE5C,YAAAI,CAAA,CAEJ,EC9EaK,EAA6B,IAGrC,CAEH,MAAMC,EAAyBC,EAAO,YAAY,kBAAkB,EAG9D,CAACZ,EAAiBa,CAAkB,EAAIC,EAC5CH,CAAA,EAIFI,EAAU,IAAM,CACd,MAAMC,EAAeJ,EAAO,GAC1B,mBACCK,GAAY,CACXJ,EAAmBI,CAAO,CAC5B,EACA,CAAE,MAAO,EAAA,CAAK,EAIhB,MAAO,IAAM,CACXD,GAAA,MAAAA,EAAc,KAChB,CACF,EAAG,CAAA,CAAE,EAGL,MAAME,EAAqB,CAAClB,EAO5B,MAAO,CACL,YALkBmB,EAAQ,IACnBpB,EAAqBC,CAAe,EAC1C,CAACA,CAAe,CAAC,EAIlB,mBAAAkB,CAAA,CAEJ"}
@@ -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 z,useCallback as l,useMemo as N}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import{i as re}from"./pageSize.config.js";import{g as te,r as se,a as ne}from"./getPurchaseOrders.js";import{d as ce,a as ae}from"./FormLoader.js";import{Text as oe}from"@dropins/tools/i18n.js";const q=(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 ie=20,Pe=({view:c,initialPageSize:I,routePurchaseOrderDetails:a,setColumns:y,setRowsData:k,t:n,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,G]=g(I),[B,f]=g(!0),[Q,V]=g({currentPage:1,totalPages:1,totalCount:0}),[P,m]=g({heading:"",description:"",type:"success"});z(()=>{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:F,totalCount:Y}=Q,Z=l(r=>{const s=r.target.value;G(e=>e.map(t=>({...t,selected:t.value===s})))},[]),A=(D==null?void 0:D.isAdmin)??!1,H=N(()=>{let r={};return C&&(r={companyPurchaseOrders:!0}),o&&(r={requireMyApproval:!0}),r},[C,o]);z(()=>{var e;if(L)return;f(!0);const r=(e=p==null?void 0:p.find(t=>t.selected))==null?void 0:e.value,s=parseInt(r??ie.toString(),10);te(H,s,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 s=a==null?void 0:a(r);return re(s??"")?s:"#"},[a]),J=l(r=>{V(s=>({...s,currentPage:r}))},[]),w=l(r=>{const s=r.target.value,e=r.target.checked;E(t=>e?[...t,s]:t.filter(i=>i!==s))},[]),x=l(r=>{const s=r.target.checked;E(()=>s?h.filter(e=>["PENDING","APPROVAL_REQUIRED"].includes(e.status)).map(e=>e.uid??""):[])},[h]),K=l(()=>{se(d).then(r=>{const s=(r==null?void 0:r.purchaseOrders)??[];U(e=>e.map(t=>s.find(u=>u.uid===t.uid)??t)),m({heading:n.alertHeaderReject,description:n.alertDescriptionReject,type:"success"}),E([])}).catch(r=>{m({heading:n.alertHeaderError,description:n.alertDescriptionError,type:"error"}),console.error(r)}).finally(()=>{f(!1)})},[d,n]),W=l(()=>{f(!0),ne(d).then(r=>{const s=(r==null?void 0:r.purchaseOrders)??[];U(e=>e.map(t=>s.find(u=>u.uid===t.uid)??t)),m({heading:n.alertHeaderApprove,description:n.alertDescriptionApprove,type:"success"}),E([])}).catch(r=>{m({heading:n.alertHeaderError,description:n.alertDescriptionError,type:"error"}),console.error(r)}).finally(()=>{f(!1)})},[d,n]),X=N(()=>{const r=C||o?ce:ae;return(y==null?void 0:y(r))??r.map(s=>s.key==="checkboxView"&&(A||o)?{key:s.key,label:_("input",{type:"checkbox",name:"selectAll",disabled:h.every(e=>!["PENDING","APPROVAL_REQUIRED"].includes(e.status)),onChange:x}),ariaLabel:n.selectAllAriaLabel}:{...s,label:n[s.key]||s.label})},[n,A,C,o,y,h,x]),ee=N(()=>{const r=h.map(e=>{var i,u,S,b,O,R,$,j;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:q(e.createdAt),updatedDate:q(e.updatedAt),createdBy:`${((i=e.createdBy)==null?void 0:i.firstname)??""} ${((u=e.createdBy)==null?void 0:u.lastname)??""}`.trim(),status:_(oe,{id:`PurchaseOrders.purchaseOrdersTable.statusOrder.${e.status.toLowerCase()}`}),total:`${(O=(b=(S=e==null?void 0:e.quote)==null?void 0:S.prices)==null?void 0:b.grandTotal)==null?void 0:O.value} ${(j=($=(R=e==null?void 0:e.quote)==null?void 0:R.prices)==null?void 0:$.grandTotal)==null?void 0:j.currency}`,action:_("a",{href:M(t),"aria-label":`View purchase order ${t}`,children:n.actionView})}});let s=r;if(k){const e=k(r);e!==void 0&&Array.isArray(e)&&(s=e)}return s},[h,k,A,o,d,w,M,n.actionView]);return{tableConfig:{columns:X,rows:ee},paginationConfig:{currentPage:v,totalPages:F,handlePageChange:J},pageSizeConfig:{pageSizeOptionsList:p,onChange:Z},totalCount:Y,loading:B,selectedOrderIds:d,handleRejectSelected:K,handleApproveSelected:W,isAdmin:A,isRequireApprovalPOsView:o,alertMessageConfig:P}};export{T as E,Pe as u};
3
+ import{jsx as y}from"@dropins/tools/preact-jsx-runtime.js";import{useState as g,useEffect as j,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{Price as ce}from"@dropins/tools/components.js";import{Text as oe}from"@dropins/tools/i18n.js";const z=(c,I="en-US")=>{try{const o=new Date(c);return isNaN(o.getTime())?c:o.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,Pe=({view:c,initialPageSize:I,routePurchaseOrderDetails:o,setColumns:C,setRowsData:k,t:s,permissions:D,loadingPermissions:L})=>{const E=c===T.COMPANY_PURCHASE_ORDERS,a=c===T.CUSTOMER_APPROVAL_PURCHASE_ORDERS,[d,S]=g([]),[h,U]=g([]),[p,G]=g(I),[$,f]=g(!0),[q,V]=g({currentPage:1,totalPages:1,totalCount:0}),[m,P]=g({heading:"",description:"",type:"success"});j(()=>{if(m.heading||m.description){const r=setTimeout(()=>{P({heading:"",description:"",type:"success"})},7e3);return()=>clearTimeout(r)}},[m.heading,m.description]);const{currentPage:v,totalPages:B,totalCount:Q}=q,F=l(r=>{const n=r.target.value;G(e=>e.map(t=>({...t,selected:t.value===n})))},[]),A=(D==null?void 0:D.isAdmin)??!1,H=N(()=>{let r={};return E&&(r={companyPurchaseOrders:!0}),a&&(r={myApprovals:!0}),r},[E,a]);j(()=>{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,b=(R=t==null?void 0:t.pageInfo)==null?void 0:R.totalPages,_=t==null?void 0:t.totalCount;V({currentPage:u,totalPages:b,totalCount:_}),U(i)}).catch(t=>{console.error("Failed to fetch purchase orders:",t)}).finally(()=>{f(!1)})},[v,p,H,L]);const w=l(r=>{const n=o==null?void 0:o(r);return X(n??"")?n:"#"},[o]),Y=l(r=>{V(n=>({...n,currentPage:r}))},[]),M=l(r=>{const n=r.target.value,e=r.target.checked;S(t=>e?[...t,n]:t.filter(i=>i!==n))},[]),x=l(r=>{const n=r.target.checked;S(()=>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)),P({heading:s.alertHeaderReject,description:s.alertDescriptionReject,type:"success"}),S([])}).catch(r=>{P({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)),P({heading:s.alertHeaderApprove,description:s.alertDescriptionApprove,type:"success"}),S([])}).catch(r=>{P({heading:s.alertHeaderError,description:s.alertDescriptionError,type:"error"}),console.error(r)}).finally(()=>{f(!1)})},[d,s]),K=N(()=>{const r=E||a?ne:se;return(C==null?void 0:C(r))??r.map(n=>n.key==="checkboxView"&&(A||a)?{key:n.key,label:y("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,E,a,C,h,x]),W=N(()=>{const r=h.map(e=>{var i,u,b,_,O,R;const t=e.number??"";return{...A||a?{checkboxView:y("input",{type:"checkbox",name:t,value:e.uid,checked:d.includes(e.uid),onChange:M,disabled:!["PENDING","APPROVAL_REQUIRED"].includes(e.status)})}:{},poNumber:t,orderNumber:e.order.orderNumber,createdDate:z(e.createdAt),updatedDate:z(e.updatedAt),createdBy:`${((i=e.createdBy)==null?void 0:i.firstname)??""} ${((u=e.createdBy)==null?void 0:u.lastname)??""}`.trim(),status:y(oe,{id:`PurchaseOrders.purchaseOrdersTable.statusOrder.${e.status.toLowerCase()}`}),total:y(ce,{amount:(_=(b=e==null?void 0:e.quote)==null?void 0:b.grandTotal)==null?void 0:_.value,currency:(R=(O=e==null?void 0:e.quote)==null?void 0:O.grandTotal)==null?void 0:R.currency,weight:"normal"}),action:y("a",{href:w(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,a,d,M,w,s.actionView]);return{tableConfig:{columns:K,rows:W},paginationConfig:{currentPage:v,totalPages:B,handlePageChange:Y},pageSizeConfig:{pageSizeOptionsList:p,onChange:F},totalCount:Q,loading:$,selectedOrderIds:d,handleRejectSelected:Z,handleApproveSelected:J,isAdmin:A,isRequireApprovalPOsView:a,alertMessageConfig:m}};export{T as E,Pe 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?.prices?.grandTotal?.value} ${po?.quote?.prices?.grandTotal?.currency}`,\n action: (\n <a\n href={handlePurchaseOrderDetailsRedirect(poNumber)}\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","_e","_d","_c","_h","_g","_f","finalRows","customRows"],"mappings":"wYAuBO,MAAMA,EAAa,CACxBC,EACAC,EAAiB,UACN,CACX,GAAI,CACF,MAAMC,EAAO,IAAI,KAAKF,CAAU,EAEhC,OAAI,MAAME,EAAK,QAAA,CAAS,EACfF,EAGFE,EAAK,eAAeD,EAAQ,CACjC,KAAM,UACN,MAAO,QACP,IAAK,UACL,KAAM,UACN,OAAQ,UACR,OAAQ,UACR,OAAQ,EAAA,CACT,CACH,MAAgB,CACd,OAAOD,CACT,CACF,EC5BO,IAAKG,GAAAA,IACVA,EAAA,yBAA2B,yBAC3BA,EAAA,wBAA0B,wBAC1BA,EAAA,kCAAoC,iCAH1BA,IAAAA,GAAA,CAAA,CAAA,ECqBZ,MAAMC,GAAoB,GAEbC,GAAoB,CAAC,CAChC,KAAAC,EACA,gBAAAC,EACA,0BAAAC,EACA,WAAAC,EACA,YAAAC,EACA,EAAAC,EACA,YAAAC,EACA,mBAAAC,CACF,IAAwD,CACtD,MAAMC,EACJR,IAASH,EAAuB,wBAC5BY,EACJT,IAASH,EAAuB,kCAC5B,CAACa,EAAkBC,CAAmB,EAAIC,EAAmB,CAAA,CAAE,EAC/D,CAACC,EAAgBC,CAAiB,EAAIF,EAC1C,CAAA,CAAC,EAEG,CAACG,EAAqBC,CAAsB,EAChDJ,EAASX,CAAe,EACpB,CAACgB,EAASC,CAAU,EAAIN,EAAkB,EAAI,EAC9C,CAACO,EAAYC,CAAa,EAAIR,EAAS,CAC3C,YAAa,EACb,WAAY,EACZ,WAAY,CAAA,CACb,EACK,CAACS,EAAoBC,CAAqB,EAC9CV,EAAiC,CAC/B,QAAS,GACT,YAAa,GACb,KAAM,SAAA,CACP,EAGHW,EAAU,IAAM,CACd,GAAIF,EAAmB,SAAWA,EAAmB,YAAa,CAChE,MAAMG,EAAQ,WAAW,IAAM,CAC7BF,EAAsB,CACpB,QAAS,GACT,YAAa,GACb,KAAM,SAAA,CACP,CACH,EAAG,GAAI,EAEP,MAAO,IAAM,aAAaE,CAAK,CACjC,CACF,EAAG,CAACH,EAAmB,QAASA,EAAmB,WAAW,CAAC,EAG/D,KAAM,CAAE,YAAAI,EAAa,WAAAC,EAAY,WAAAC,CAAA,EAAeR,EAE1CS,EAAuBC,EAAaC,GAAiB,CACzD,MAAMC,EAAQD,EAAM,OAA6B,MAEjDd,EAAwBgB,GACfA,EAAK,IAAKC,IAAY,CAC3B,GAAGA,EACH,SAAUA,EAAO,QAAUF,CAAA,EAC3B,CACH,CACH,EAAG,CAAA,CAAE,EAECG,GAAU5B,GAAA,YAAAA,EAAa,UAAW,GAElC6B,EAAeC,EAAQ,IAAM,CACjC,IAAIC,EAAS,CAAA,EAEb,OAAI7B,IACF6B,EAAS,CAAE,sBAAuB,EAAA,GAGhC5B,IACF4B,EAAS,CAAE,kBAAmB,EAAA,GAGzBA,CACT,EAAG,CAAC7B,EAAkBC,CAAwB,CAAC,EAE/Cc,EAAU,IAAM,OAEd,GAAIhB,EACF,OAGFW,EAAW,EAAI,EACf,MAAMoB,GAAWC,EAAAxB,GAAA,YAAAA,EAAqB,KACnCkB,GAAWA,EAAO,YADJ,YAAAM,EAEd,MACGC,EAAmB,SACvBF,GAAYxC,GAAkB,SAAA,EAC9B,EAAA,EAGF2C,GAAkBN,EAAcK,EAAkBf,CAAW,EAC1D,KAAMiB,GAAS,SACd,MAAM7B,GAAiB6B,GAAA,YAAAA,EAAM,qBAAsB,CAAA,EAC7CC,GAAeJ,EAAAG,GAAA,YAAAA,EAAM,WAAN,YAAAH,EAAgB,YAC/BK,GAAqBC,EAAAH,GAAA,YAAAA,EAAM,WAAN,YAAAG,EAAgB,WACrCC,EAAqBJ,GAAA,YAAAA,EAAM,WAEjCtB,EAAc,CACZ,YAAauB,EACb,WAAYC,EACZ,WAAYE,CAAA,CACb,EACDhC,EAAkBD,CAAc,CAClC,CAAC,EACA,MAAOkC,GAAU,CAEhB,QAAQ,MAAM,mCAAoCA,CAAK,CACzD,CAAC,EACA,QAAQ,IAAM,CACb7B,EAAW,EAAK,CAClB,CAAC,CACL,EAAG,CAACO,EAAaV,EAAqBoB,EAAc5B,CAAkB,CAAC,EAEvE,MAAMyC,EAAqCnB,EACxCoB,GAA6B,CAC5B,MAAMC,EAAMhD,GAAA,YAAAA,EAA4B+C,GAExC,OAAKE,GAAWD,GAAO,EAAE,EAElBA,EAF4B,GAGrC,EACA,CAAChD,CAAyB,CAAA,EAGtBkD,EAAmBvB,EAAawB,GAAiB,CACrDjC,EAAeY,IAAU,CAAE,GAAGA,EAAM,YAAaqB,GAAO,CAC1D,EAAG,CAAA,CAAE,EAECC,EAAwBzB,EAC3BC,GAA+C,CAC9C,MAAMyB,EAAOzB,EAAM,OAA4B,MACzC0B,EAAa1B,EAAM,OAA4B,QAErDnB,EAAqB8C,GACfD,EACK,CAAC,GAAGC,EAAcF,CAAG,EAEvBE,EAAa,OAAQC,GAAOA,IAAOH,CAAG,CAC9C,CACH,EACA,CAAA,CAAC,EAGGI,EAAyB9B,EAC5BC,GAA+C,CAC9C,MAAM0B,EAAa1B,EAAM,OAA4B,QACrDnB,EAAoB,IAClB6C,EACI3C,EACG,OAAQ6C,GACP,CAAC,UAAW,mBAAmB,EAAE,SAASA,EAAG,MAAM,CAAA,EAEpD,IAAKA,GAAOA,EAAG,KAAO,EAAE,EAC3B,CAAA,CAAC,CAET,EACA,CAAC7C,CAAc,CAAA,EAGX+C,EAAuB/B,EAAY,IAAM,CAC7CgC,GAAqBnD,CAAgB,EAClC,KAAMgC,GAAS,CACd,MAAM7B,GAAiB6B,GAAA,YAAAA,EAAM,iBAAkB,CAAA,EAC/C5B,EAAmBkB,GACVA,EAAK,IAAK0B,GACG7C,EAAe,KAC9BiD,GAAYA,EAAQ,MAAQJ,EAAG,GAAA,GAEdA,CACrB,CACF,EACDpC,EAAsB,CACpB,QAASjB,EAAE,kBACX,YAAaA,EAAE,uBACf,KAAM,SAAA,CACP,EACDM,EAAoB,CAAA,CAAE,CACxB,CAAC,EACA,MAAOoD,GAAQ,CAEdzC,EAAsB,CACpB,QAASjB,EAAE,iBACX,YAAaA,EAAE,sBACf,KAAM,OAAA,CACP,EACD,QAAQ,MAAM0D,CAAG,CACnB,CAAC,EACA,QAAQ,IAAM,CACb7C,EAAW,EAAK,CAClB,CAAC,CACL,EAAG,CAACR,EAAkBL,CAAC,CAAC,EAElB2D,EAAwBnC,EAAY,IAAM,CAC9CX,EAAW,EAAI,EACf+C,GAAsBvD,CAAgB,EACnC,KAAMgC,GAAS,CACd,MAAM7B,GAAiB6B,GAAA,YAAAA,EAAM,iBAAkB,CAAA,EAC/C5B,EAAmBkB,GACVA,EAAK,IAAK0B,GACG7C,EAAe,KAC9BiD,GAAYA,EAAQ,MAAQJ,EAAG,GAAA,GAEdA,CACrB,CACF,EACDpC,EAAsB,CACpB,QAASjB,EAAE,mBACX,YAAaA,EAAE,wBACf,KAAM,SAAA,CACP,EACDM,EAAoB,CAAA,CAAE,CACxB,CAAC,EACA,MAAOoD,GAAQ,CACdzC,EAAsB,CACpB,QAASjB,EAAE,iBACX,YAAaA,EAAE,sBACf,KAAM,OAAA,CACP,EACD,QAAQ,MAAM0D,CAAG,CACnB,CAAC,EACA,QAAQ,IAAM,CACb7C,EAAW,EAAK,CAClB,CAAC,CACL,EAAG,CAACR,EAAkBL,CAAC,CAAC,EAElB6D,EAAU9B,EAAQ,IAAM,CAC5B,MAAM+B,EACJ3D,GAAoBC,EAChB2D,GACAC,GAEN,OACElE,GAAA,YAAAA,EAAagE,KACbA,EAAe,IAAKG,GAEhBA,EAAI,MAAQ,iBACXpC,GAAWzB,GAEL,CACL,IAAK6D,EAAI,IACT,MACEC,EAAC,QAAA,CACC,KAAK,WACL,KAAM,YACN,SAAU1D,EAAe,MACtB6C,GAAO,CAAC,CAAC,UAAW,mBAAmB,EAAE,SAASA,EAAG,MAAM,CAAA,EAE9D,SAAUC,CAAA,CAAA,EAGd,UAAWtD,EAAE,kBAAA,EAIV,CACL,GAAGiE,EACH,MAAOjE,EAAEiE,EAAI,GAAqB,GAAKA,EAAI,KAAA,CAE9C,CAEL,EAAG,CACDjE,EACA6B,EACA1B,EACAC,EACAN,EACAU,EACA8C,CAAA,CACD,EAEKa,GAAOpC,EAAQ,IAAM,CACzB,MAAMqC,EAA0B5D,EAAe,IAAK6C,GAAO,qBACzD,MAAMT,EAAWS,EAAG,QAAU,GAE9B,MAAO,CACL,GAAIxB,GAAWzB,EACX,CACE,aACE8D,EAAC,QAAA,CACC,KAAK,WACL,KAAMtB,EACN,MAAOS,EAAG,IACV,QAAShD,EAAiB,SAASgD,EAAG,GAAG,EACzC,SAAUJ,EACV,SACE,CAAC,CAAC,UAAW,mBAAmB,EAAE,SAASI,EAAG,MAAM,CAAA,CAAA,CAExD,EAGJ,CAAA,EACJ,SAAAT,EACA,YAAaS,EAAG,MAAM,YACtB,YAAajE,EAAWiE,EAAG,SAAS,EACpC,YAAajE,EAAWiE,EAAG,SAAS,EACpC,UAAW,KAAGnB,EAAAmB,EAAG,YAAH,YAAAnB,EAAc,YAAa,EAAE,MACzCM,EAAAa,EAAG,YAAH,YAAAb,EAAc,WAAY,EAC5B,GAAG,KAAA,EACH,OACE0B,EAACG,GAAA,CACC,GAAI,kDAAkDhB,EAAG,OAAO,aAAa,EAAA,CAAA,EAGjF,MAAO,IAAGiB,GAAAC,GAAAC,EAAAnB,GAAA,YAAAA,EAAI,QAAJ,YAAAmB,EAAW,SAAX,YAAAD,EAAmB,aAAnB,YAAAD,EAA+B,KAAK,KAAIG,GAAAC,GAAAC,EAAAtB,GAAA,YAAAA,EAAI,QAAJ,YAAAsB,EAAW,SAAX,YAAAD,EAAmB,aAAnB,YAAAD,EAA+B,QAAQ,GACzF,OACEP,EAAC,IAAA,CACC,KAAMvB,EAAmCC,CAAQ,EACjD,aAAY,uBAAuBA,CAAQ,GAE1C,SAAA5C,EAAE,UAAA,CAAA,CACL,CAGN,CAAC,EAED,IAAI4E,EAAYR,EAEhB,GAAIrE,EAAa,CACf,MAAM8E,EAAa9E,EAAYqE,CAAuB,EAElDS,IAAe,QAAa,MAAM,QAAQA,CAAU,IACtDD,EAAYC,EAEhB,CAEA,OAAOD,CACT,EAAG,CACDpE,EACAT,EACA8B,EACAzB,EACAC,EACA4C,EACAN,EACA3C,EAAE,UAAA,CACH,EAED,MAAO,CACL,YAAa,CACX,QAAA6D,EACA,KAAAM,EAAA,EAEF,iBAAkB,CAChB,YAAA/C,EACA,WAAAC,EACA,iBAAA0B,CAAA,EAEF,eAAgB,CACd,oBAAArC,EACA,SAAUa,CAAA,EAEZ,WAAAD,EACA,QAAAV,EACA,iBAAAP,EACA,qBAAAkD,EACA,sBAAAI,EACA,QAAA9B,EACA,yBAAAzB,EACA,mBAAAY,CAAA,CAEJ"}
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';\nimport { Price } from '@adobe-commerce/elsie/components';\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: (\n <Price\n amount={po?.quote?.grandTotal?.value}\n currency={po?.quote?.grandTotal?.currency}\n weight=\"normal\"\n />\n ),\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","Price","_d","_c","_f","_e","finalRows","customRows"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { FunctionComponent } from 'preact';
2
+ import { PurchaseOrderStatusContentProps } from '../../types/components';
3
+
4
+ export declare const PurchaseOrderStatusContent: FunctionComponent<PurchaseOrderStatusContentProps>;
5
+ //# sourceMappingURL=PurchaseOrderStatusContent.d.ts.map
@@ -0,0 +1,19 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
17
+ export * from './PurchaseOrderStatusContent';
18
+ export { PurchaseOrderStatusContent as default } from './PurchaseOrderStatusContent';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -19,6 +19,7 @@ export * from './PurchaseOrdersHeader';
19
19
  export * from './PurchaseOrdersTableActions';
20
20
  export * from './ApprovalRuleForm';
21
21
  export * from './PurchaseOrderConfirmationContent';
22
+ export * from './PurchaseOrderStatusContent';
22
23
  export * from './ApprovalRuleDetailsContent';
23
24
  export * from './FormLoader';
24
25
  //# sourceMappingURL=index.d.ts.map