@dropins/storefront-purchase-order 0.0.5-alpha1 → 0.0.5-alpha3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.js +8 -43
- package/api.js.map +1 -1
- package/chunks/getPurchaseOrders.js +3 -77
- package/chunks/getPurchaseOrders.js.map +1 -1
- package/chunks/placeOrderForPurchaseOrder.js +39 -0
- package/chunks/placeOrderForPurchaseOrder.js.map +1 -0
- package/chunks/rejectPurchaseOrders.js +78 -0
- package/chunks/rejectPurchaseOrders.js.map +1 -0
- package/chunks/usePurchaseOrders.js +1 -1
- package/chunks/usePurchaseOrders.js.map +1 -1
- package/components/PurchaseOrderStatusContent/PurchaseOrderStatusContent.d.ts +5 -0
- package/components/PurchaseOrderStatusContent/index.d.ts +19 -0
- package/components/index.d.ts +1 -0
- package/containers/ApprovalRuleDetails.js +1 -1
- package/containers/ApprovalRuleDetails.js.map +1 -1
- package/containers/CompanyPurchaseOrders.js +1 -1
- package/containers/CompanyPurchaseOrders.js.map +1 -1
- package/containers/CustomerPurchaseOrders.js +1 -1
- package/containers/CustomerPurchaseOrders.js.map +1 -1
- package/containers/PurchaseOrderStatus/PurchaseOrderStatus.d.ts +5 -0
- package/containers/PurchaseOrderStatus/index.d.ts +19 -0
- package/containers/PurchaseOrderStatus.d.ts +3 -0
- package/containers/PurchaseOrderStatus.js +4 -0
- package/containers/PurchaseOrderStatus.js.map +1 -0
- package/containers/RequireApprovalPurchaseOrders.js +1 -1
- package/containers/RequireApprovalPurchaseOrders.js.map +1 -1
- package/containers/index.d.ts +1 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/usePurchaseOrderStatus.d.ts +4 -0
- package/i18n/en_US.json.d.ts +60 -0
- package/package.json +1 -1
- package/render.js +2 -2
- package/render.js.map +1 -1
- package/types/components/index.d.ts +1 -0
- package/types/components/purchaseOrderStatusContent.types.d.ts +17 -0
- package/types/containers/index.d.ts +1 -0
- package/types/containers/purchaseOrderStatus.types.d.ts +18 -0
- package/types/hooks/index.d.ts +1 -0
- package/types/hooks/usePurchaseOrderStatus.types.d.ts +19 -0
|
@@ -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 customAttributes: data?.custom_attributes || [],\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 T,h as I}from"./fetch-graphql.js";import{h as $}from"./fetch-error.js";const G=`
|
|
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
|
+
`,g=`
|
|
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
|
+
${G}
|
|
64
|
+
`,V=t=>{var n,E,_,a,y,s,l,o,R,A,P,f,m,b,S,w,D,U,q,C;return{typename:(t==null?void 0:t.__typename)??"",uid:(t==null?void 0:t.uid)??"",number:(t==null?void 0:t.number)??"",status:(t==null?void 0:t.status)??"",availableActions:(t==null?void 0:t.available_actions)??[],approvalFlow:t!=null&&t.approval_flow?{ruleName:((n=t==null?void 0:t.approval_flow)==null?void 0:n.rule_name)??"",events:((_=(E=t==null?void 0:t.approval_flow)==null?void 0:E.events)==null?void 0:_.map(i=>({message:(i==null?void 0:i.message)??"",name:(i==null?void 0:i.name)??"",role:(i==null?void 0:i.role)??"",status:(i==null?void 0:i.status)??"",updatedAt:(i==null?void 0:i.updated_at)??""})))??[]}:null,comments:((a=t==null?void 0:t.comments)==null?void 0:a.map(i=>{var H,F,N;return{createdAt:(i==null?void 0:i.created_at)??"",author:{firstname:((H=i==null?void 0:i.author)==null?void 0:H.firstname)??"",lastname:((F=i==null?void 0:i.author)==null?void 0:F.lastname)??"",email:((N=i==null?void 0:i.author)==null?void 0:N.email)??""},text:(i==null?void 0:i.text)??""}}))??[],createdAt:(t==null?void 0:t.created_at)??"",updatedAt:(t==null?void 0:t.updated_at)??"",createdBy:{firstname:((y=t==null?void 0:t.created_by)==null?void 0:y.firstname)??"",lastname:((s=t==null?void 0:t.created_by)==null?void 0:s.lastname)??"",email:((l=t==null?void 0:t.created_by)==null?void 0:l.email)??""},historyLog:((o=t==null?void 0:t.history_log)==null?void 0:o.map(i=>({activity:(i==null?void 0:i.activity)??"",createdAt:(i==null?void 0:i.created_at)??"",message:(i==null?void 0:i.message)??"",uid:(i==null?void 0:i.uid)??""})))??[],order:{orderNumber:((R=t==null?void 0:t.order)==null?void 0:R.number)??"",id:((A=t==null?void 0:t.order)==null?void 0:A.id)??""},quote:{id:((P=t==null?void 0:t.quote)==null?void 0:P.id)??"",prices:{grandTotal:{value:((b=(m=(f=t==null?void 0:t.quote)==null?void 0:f.prices)==null?void 0:m.grand_total)==null?void 0:b.value)??0,currency:((D=(w=(S=t==null?void 0:t.quote)==null?void 0:S.prices)==null?void 0:w.grand_total)==null?void 0:D.currency)??""}},itemsV2:{items:((C=(q=(U=t==null?void 0:t.quote)==null?void 0:U.itemsV2)==null?void 0:q.items)==null?void 0:C.map(i=>({uid:(i==null?void 0:i.uid)??"",quantity:(i==null?void 0:i.quantity)??0})))??[]}}}},J=async t=>{const n=Array.isArray(t)?t:[t];if(!n||n.length===0)throw new Error("Purchase Order UID(s) are required");if(n.some(_=>!_||_.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return T(g,{variables:{input:{purchase_order_uids:n}}}).then(_=>{var y,s,l;(y=_.errors)!=null&&y.length&&$(_.errors);const a=(s=_.data)==null?void 0:s.approvePurchaseOrders;if(!a)throw new Error("Failed to approve purchase orders");return{errors:((a==null?void 0:a.errors)??[]).map(o=>({message:(o==null?void 0:o.message)??"",type:(o==null?void 0:o.type)??""})),purchaseOrders:((l=a==null?void 0:a.purchase_orders)==null?void 0:l.map(o=>V(o)))??[]}}).catch(I)},x=`
|
|
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
|
+
${G}
|
|
77
|
+
`,k=async t=>{const n=Array.isArray(t)?t:[t];if(!n||n.length===0)throw new Error("Purchase Order UID(s) are required");if(n.some(_=>!_||_.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return T(x,{variables:{input:{purchase_order_uids:n}}}).then(_=>{var y,s;(y=_.errors)!=null&&y.length&&$(_.errors);const a=(s=_.data)==null?void 0:s.rejectPurchaseOrders;return{errors:((a==null?void 0:a.errors)??[]).map(l=>({message:(l==null?void 0:l.message)??"",type:(l==null?void 0:l.type)??""})),purchaseOrders:((a==null?void 0:a.purchase_orders)??[]).map(V)}}).catch(I)};export{G as P,J as a,k as r,V as t};
|
|
78
|
+
//# sourceMappingURL=rejectPurchaseOrders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rejectPurchaseOrders.js","sources":["/@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/data/transforms/transform-purchase-order.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\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 *******************************************************************/\n\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const transformPurchaseOrder = (\n purchaseOrder: any\n): PurchaseOrderModel => {\n return {\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 order: {\n orderNumber: purchaseOrder?.order?.number ?? '',\n id: purchaseOrder?.order?.id ?? '',\n },\n quote: {\n id: purchaseOrder?.quote?.id ?? '',\n prices: {\n grandTotal: {\n value: purchaseOrder?.quote?.prices?.grand_total?.value ?? 0,\n currency: purchaseOrder?.quote?.prices?.grand_total?.currency ?? '',\n },\n },\n itemsV2: {\n items:\n purchaseOrder?.quote?.itemsV2?.items?.map((item: any) => ({\n uid: item?.uid ?? '',\n quantity: item?.quantity ?? 0,\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 *******************************************************************/\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":["PURCHASE_ORDERS_FRAGMENT","APPROVE_PURCHASE_ORDERS","transformPurchaseOrder","purchaseOrder","_a","_c","_b","event","_d","comment","_e","_f","_g","_h","log","_i","_j","_k","_n","_m","_l","_q","_p","_o","_t","_s","_r","item","approvePurchaseOrders","uids","uidArray","uid","fetchGraphQl","response","handleFetchError","data","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{jsx as _}from"@dropins/tools/preact-jsx-runtime.js";import{useState as
|
|
3
|
+
import{jsx as _}from"@dropins/tools/preact-jsx-runtime.js";import{useState as p,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{r as te,a as se}from"./rejectPurchaseOrders.js";import{g as ne}from"./getPurchaseOrders.js";import{d as ce,a as oe}from"./FormLoader.js";import{Text as ae}from"@dropins/tools/i18n.js";const q=(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 ie=20,me=({view:c,initialPageSize:I,routePurchaseOrderDetails:o,setColumns:y,setRowsData:k,t:n,permissions:D,loadingPermissions:L})=>{const C=c===T.COMPANY_PURCHASE_ORDERS,a=c===T.CUSTOMER_APPROVAL_PURCHASE_ORDERS,[d,E]=p([]),[h,U]=p([]),[g,G]=p(I),[B,f]=p(!0),[Q,V]=p({currentPage:1,totalPages:1,totalCount:0}),[P,m]=p({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}),a&&(r={requireMyApproval:!0}),r},[C,a]);z(()=>{var e;if(L)return;f(!0);const r=(e=g==null?void 0:g.find(t=>t.selected))==null?void 0:e.value,s=parseInt(r??ie.toString(),10);ne(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,g,H,L]);const M=l(r=>{const s=o==null?void 0:o(r);return re(s??"")?s:"#"},[o]),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(()=>{te(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),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.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||a?ce:oe;return(y==null?void 0:y(r))??r.map(s=>s.key==="checkboxView"&&(A||a)?{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,a,y,h,x]),ee=N(()=>{const r=h.map(e=>{var i,u,S,b,O,R,$,j;const t=e.number??"";return{...A||a?{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:_(ae,{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,a,d,w,M,n.actionView]);return{tableConfig:{columns:X,rows:ee},paginationConfig:{currentPage:v,totalPages:F,handlePageChange:J},pageSizeConfig:{pageSizeOptionsList:g,onChange:Z},totalCount:Y,loading:B,selectedOrderIds:d,handleRejectSelected:K,handleApproveSelected:W,isAdmin:A,isRequireApprovalPOsView:a,alertMessageConfig:P}};export{T as E,me 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":"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"}
|
|
1
|
+
{"version":3,"file":"usePurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/lib/formatDate.ts","/@dropins/storefront-purchase-order/src/types/api/api.enums.types.ts","/@dropins/storefront-purchase-order/src/hooks/usePurchaseOrders.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\n/**\n * Format a date string to a localized format like \"Sep 8, 2025 6:32:13 AM\"\n * @param dateString - ISO date string or date string\n * @param locale - Locale for formatting (defaults to 'en-US')\n * @returns Formatted date string\n */\nexport const formatDate = (\n dateString: string,\n locale: string = 'en-US'\n): string => {\n try {\n const date = new Date(dateString);\n\n if (isNaN(date.getTime())) {\n return dateString; // Return original if invalid\n }\n\n return date.toLocaleString(locale, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n second: '2-digit',\n hour12: true,\n });\n } catch (error) {\n return dateString; // Return original on error\n }\n};\n","export enum PurchaseOrderApprovalRuleStatus {\n ENABLED = 'ENABLED',\n DISABLED = 'DISABLED',\n}\n\nexport enum PurchaseOrderApprovalRuleType {\n GRAND_TOTAL = 'GRAND_TOTAL',\n SHIPPING_INCL_TAX = 'SHIPPING_INCL_TAX',\n NUMBER_OF_SKUS = 'NUMBER_OF_SKUS',\n}\n\nexport enum PurchaseOrderApprovalRuleConditionOperator {\n MORE_THAN = 'MORE_THAN',\n LESS_THAN = 'LESS_THAN',\n MORE_THAN_OR_EQUAL_TO = 'MORE_THAN_OR_EQUAL_TO',\n LESS_THAN_OR_EQUAL_TO = 'LESS_THAN_OR_EQUAL_TO',\n}\n\nexport enum EnumPurchaseOrdersView {\n CUSTOMER_PURCHASE_ORDERS = 'customerPurchaseOrders',\n COMPANY_PURCHASE_ORDERS = 'companyPurchaseOrders',\n CUSTOMER_APPROVAL_PURCHASE_ORDERS = 'customerApprovalPurchaseOrders',\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport React from 'preact/compat';\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport { formatDate, isValidUrl } from '@/b2b-purchase-order/lib';\nimport {\n AlertMessageConfigType,\n UsePurchaseOrdersParams,\n UsePurchaseOrdersReturn,\n} from '@/b2b-purchase-order/types/hooks';\nimport { EnumPurchaseOrdersView } from '@/b2b-purchase-order/types/api';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { Column } from '@/b2b-purchase-order/types/components';\nimport {\n approvePurchaseOrders,\n getPurchaseOrders,\n rejectPurchaseOrders,\n} from '@/b2b-purchase-order/api';\nimport {\n defaultColumns,\n defaultCompanyColumns,\n} from '@/b2b-purchase-order/configs';\nimport { Text } from '@adobe-commerce/elsie/i18n';\n\nconst DEFAULT_PAGE_SIZE = 20;\n\nexport const usePurchaseOrders = ({\n view,\n initialPageSize,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n t,\n permissions,\n loadingPermissions,\n}: UsePurchaseOrdersParams): UsePurchaseOrdersReturn => {\n const isCompanyPOsView =\n view === EnumPurchaseOrdersView.COMPANY_PURCHASE_ORDERS;\n const isRequireApprovalPOsView =\n view === EnumPurchaseOrdersView.CUSTOMER_APPROVAL_PURCHASE_ORDERS;\n const [selectedOrderIds, setSelectedOrderIds] = useState<string[]>([]);\n const [purchaseOrders, setPurchaseOrders] = useState<PurchaseOrderModel[]>(\n []\n );\n const [pageSizeOptionsList, setPageSizeOptionsList] =\n useState(initialPageSize);\n const [loading, setLoading] = useState<boolean>(true);\n const [pagination, setPagination] = useState({\n currentPage: 1,\n totalPages: 1,\n totalCount: 0,\n });\n const [alertMessageConfig, setAlertMessageConfig] =\n useState<AlertMessageConfigType>({\n heading: '',\n description: '',\n type: 'success',\n });\n\n // Auto-clear alert message after 7 seconds\n useEffect(() => {\n if (alertMessageConfig.heading || alertMessageConfig.description) {\n const timer = setTimeout(() => {\n setAlertMessageConfig({\n heading: '',\n description: '',\n type: 'success',\n });\n }, 7000);\n\n return () => clearTimeout(timer);\n }\n }, [alertMessageConfig.heading, alertMessageConfig.description]);\n\n // Derive pagination values\n const { currentPage, totalPages, totalCount } = pagination;\n\n const handleChangePageSize = useCallback((event: Event) => {\n const size = (event.target as HTMLSelectElement).value;\n\n setPageSizeOptionsList((prev) => {\n return prev.map((option) => ({\n ...option,\n selected: option.value === size,\n }));\n });\n }, []);\n\n const isAdmin = permissions?.isAdmin ?? false;\n\n const filterConfig = useMemo(() => {\n let config = {};\n\n if (isCompanyPOsView) {\n config = { companyPurchaseOrders: true };\n }\n\n if (isRequireApprovalPOsView) {\n config = { 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":"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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
|
package/components/index.d.ts
CHANGED
|
@@ -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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{jsx as e,jsxs as u,Fragment as b}from"@dropins/tools/preact-jsx-runtime.js";import{PriceRange as O,Card as T,Button as C}from"@dropins/tools/components.js";import{classes as
|
|
3
|
+
import{jsx as e,jsxs as u,Fragment as b}from"@dropins/tools/preact-jsx-runtime.js";import{PriceRange as O,Card as T,Button as C}from"@dropins/tools/components.js";import{classes as h}from"@dropins/tools/lib.js";import"@dropins/tools/event-bus.js";import"../chunks/FormLoader.js";import{P as L}from"../chunks/PurchaseOrdersHeader.js";import{useState as f,useEffect as x,useMemo as N}from"@dropins/tools/preact-hooks.js";import{g as _}from"../chunks/getPurchaseOrderApprovalRule.js";import{Text as a,useText as g}from"@dropins/tools/i18n.js";import{F as w}from"../chunks/FormLoader2.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/transform-purchase-order-approval-rule.js";const y=({approvalRuleID:l,routeApprovalRulesList:r})=>{const[t,i]=f(!0),[o,c]=f(null);x(()=>{l&&(i(!0),_(l).then(s=>{s.uid&&c(s)}).catch(()=>{c(null)}).finally(()=>{i(!1)}))},[l]);const m=N(()=>{if(!o||t)return[];const{name:s,status:p,description:R,appliesToRoles:P,approverRoles:D,condition:d}=o;return[{label:e(a,{id:"PurchaseOrders.approvalRuleDetails.fields.ruleName"}),value:s},{label:e(a,{id:"PurchaseOrders.approvalRuleDetails.fields.status"}),value:e(a,{id:`PurchaseOrders.approvalRuleDetails.fields.statusView.${p.toLocaleLowerCase()}`})},{label:e(a,{id:"PurchaseOrders.approvalRuleDetails.fields.description"}),value:R},{label:e(a,{id:"PurchaseOrders.approvalRuleDetails.fields.appliesTo"}),value:e("ul",{children:P.map(n=>e("li",{children:n.name},n.id))})},{label:e(a,{id:"PurchaseOrders.approvalRuleDetails.fields.ruleType"}),value:e(a,{id:`PurchaseOrders.approvalRuleDetails.fields.condition.attribute.${d.attribute.toLocaleLowerCase()}`})},{label:u(b,{children:[e(a,{id:`PurchaseOrders.approvalRuleDetails.fields.condition.attribute.${d.attribute.toLocaleLowerCase()}`}),":"]}),value:u("div",{children:[e(a,{id:`PurchaseOrders.approvalRuleDetails.fields.condition.operator.${d.operator.toLocaleLowerCase()}`}),e(a,{id:"PurchaseOrders.approvalRuleDetails.fields.amount.label"}),e(O,{amount:d.amount.value,currency:d.amount.currency})]})},{label:e(a,{id:"PurchaseOrders.approvalRuleDetails.fields.requiresApprovalFrom"}),value:e("ul",{children:D.map(n=>e("li",{children:n.name},n.id))})}]},[o,t]);return{handleRedirectToList:()=>{window.location.href=(r==null?void 0:r())??""},loading:t,formValues:m}},F=({formValues:l})=>e("div",{className:h(["b2b-purchase-order-approval-rule-details-content"]),children:l.map((r,t)=>u("div",{className:h(["b2b-purchase-order-approval-rule-details-content__item"]),children:[e("span",{className:"b2b-purchase-order-approval-rule-details-content__label",children:r.label}),e("div",{className:"b2b-purchase-order-approval-rule-details-content__value",children:r.value})]},t))}),J=({withHeader:l=!0,withWrapper:r=!0,className:t,approvalRuleID:i,routeApprovalRulesList:o})=>{const c=g({headerText:"PurchaseOrders.approvalRuleDetails.containerTitle"}),{handleRedirectToList:m,loading:v,formValues:s}=y({routeApprovalRulesList:o,approvalRuleID:i});if(!i)return null;const p=v?e(w,{className:"approval-rule-details--loader","data-testid":"approval-rule-details-container--loader"}):u(b,{children:[e(F,{formValues:s}),e(C,{className:"approval-rule-details__button",onClick:m,children:e(a,{id:"PurchaseOrders.approvalRuleDetails.buttons.back"})})]});return u("div",{className:h(["approval-rule-details",t]),"data-testid":"approval-rule-details-container",children:[l?e(L,{headerText:c.headerText}):null,r?e(T,{variant:"secondary","data-testid":"approvalRuleDetailsCard",children:p}):p]})};export{J as ApprovalRuleDetails,J as default};
|
|
4
4
|
//# sourceMappingURL=ApprovalRuleDetails.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalRuleDetails.js","sources":["/@dropins/storefront-purchase-order/src/hooks/useApprovalRuleDetails.tsx","/@dropins/storefront-purchase-order/src/components/ApprovalRuleDetailsContent/ApprovalRuleDetailsContent.tsx","/@dropins/storefront-purchase-order/src/containers/ApprovalRuleDetails/ApprovalRuleDetails.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 { useEffect, useState, useMemo } from 'preact/hooks';\nimport { getPurchaseOrderApprovalRule } from '@/b2b-purchase-order/api';\nimport { UseApprovalRuleDetailsProps } from '@/b2b-purchase-order/types/hooks';\nimport { PriceRange } from '@adobe-commerce/elsie/components';\nimport { PurchaseOrderApprovalRuleModel } from '@/b2b-purchase-order/data/models';\nimport { Text } from '@adobe-commerce/elsie/i18n';\n\nexport const useApprovalRuleDetails = ({\n approvalRuleID,\n routeApprovalRulesList,\n}: UseApprovalRuleDetailsProps) => {\n const [loading, setLoading] = useState(true);\n const [approvalRule, setApprovalRule] =\n useState<PurchaseOrderApprovalRuleModel | null>(null);\n\n useEffect(() => {\n if (!approvalRuleID) return;\n\n setLoading(true);\n\n getPurchaseOrderApprovalRule(approvalRuleID)\n .then((data) => {\n if (!data.uid) return;\n\n setApprovalRule(data);\n })\n .catch(() => {\n setApprovalRule(null);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [approvalRuleID]);\n\n const formValues = useMemo(() => {\n if (!approvalRule || loading) return [];\n\n const {\n name,\n status,\n description,\n appliesToRoles,\n approverRoles,\n condition,\n } = approvalRule;\n\n return [\n {\n label: <Text id=\"PurchaseOrders.approvalRuleDetails.fields.ruleName\" />,\n value: name,\n },\n {\n label: <Text id=\"PurchaseOrders.approvalRuleDetails.fields.status\" />,\n value: (\n <Text\n id={`PurchaseOrders.approvalRuleDetails.fields.statusView.${status.toLocaleLowerCase()}`}\n />\n ),\n },\n {\n label: (\n <Text id=\"PurchaseOrders.approvalRuleDetails.fields.description\" />\n ),\n value: description,\n },\n {\n label: (\n <Text id=\"PurchaseOrders.approvalRuleDetails.fields.appliesTo\" />\n ),\n value: (\n <ul>\n {appliesToRoles.map((item) => (\n <li key={item.id}>{item.name}</li>\n ))}\n </ul>\n ),\n },\n {\n label: <Text id=\"PurchaseOrders.approvalRuleDetails.fields.ruleType\" />,\n value: (\n <Text\n id={`PurchaseOrders.approvalRuleDetails.fields.condition.attribute.${condition.attribute.toLocaleLowerCase()}`}\n />\n ),\n },\n {\n label: (\n <>\n <Text\n id={`PurchaseOrders.approvalRuleDetails.fields.condition.attribute.${condition.attribute.toLocaleLowerCase()}`}\n />\n {':'}\n </>\n ),\n value: (\n <div>\n <Text\n id={`PurchaseOrders.approvalRuleDetails.fields.condition.operator.${condition.operator.toLocaleLowerCase()}`}\n />\n <Text id=\"PurchaseOrders.approvalRuleDetails.fields.amount.label\" />\n <PriceRange\n amount={condition.amount.value}\n currency={condition.amount.currency}\n />\n </div>\n ),\n },\n {\n label: (\n <Text id=\"PurchaseOrders.approvalRuleDetails.fields.requiresApprovalFrom\" />\n ),\n value: (\n <ul>\n {approverRoles.map((item) => (\n <li key={item.id}>{item.name}</li>\n ))}\n </ul>\n ),\n },\n ];\n }, [approvalRule, loading]);\n\n const handleRedirectToList = () => {\n window.location.href = routeApprovalRulesList?.() ?? '';\n };\n\n return { handleRedirectToList, loading, formValues };\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 { FunctionComponent } from 'preact';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport '@/b2b-purchase-order/components/ApprovalRuleDetailsContent/ApprovalRuleDetailsContent.css';\nimport { ApprovalRuleDetailsContentProps } from '@/b2b-purchase-order/types/components';\n\nexport const ApprovalRuleDetailsContent: FunctionComponent<\n ApprovalRuleDetailsContentProps\n> = ({ formValues }) => {\n return (\n <div\n className={classes(['b2b-purchase-order-approval-rule-details-content'])}\n >\n {formValues.map((item, i) => {\n return (\n <div\n key={i}\n className={classes([\n 'b2b-purchase-order-approval-rule-details-content__item',\n ])}\n >\n <span className=\"b2b-purchase-order-approval-rule-details-content__label\">\n {item.label}\n </span>\n <div className=\"b2b-purchase-order-approval-rule-details-content__value\">\n {item.value}\n </div>\n </div>\n );\n })}\n </div>\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 {\n ApprovalRuleDetailsContent,\n FormLoader,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { useApprovalRuleDetails } from '@/b2b-purchase-order/hooks';\nimport { ApprovalRuleDetailsProps } from '@/b2b-purchase-order/types/containers';\nimport { Button, Card } from '@adobe-commerce/elsie/components';\nimport { Text, useText } from '@adobe-commerce/elsie/i18n';\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\n\nexport const ApprovalRuleDetails: Container<ApprovalRuleDetailsProps> = ({\n withHeader = true,\n withWrapper = true,\n className,\n approvalRuleID,\n routeApprovalRulesList,\n}) => {\n const t = useText({\n headerText: 'PurchaseOrders.approvalRuleDetails.containerTitle',\n });\n const { handleRedirectToList, loading, formValues } = useApprovalRuleDetails({\n routeApprovalRulesList,\n approvalRuleID,\n });\n\n if (!approvalRuleID) return null;\n\n const renderDetailsContent = !loading ? (\n <>\n <ApprovalRuleDetailsContent formValues={formValues} />\n <Button onClick={handleRedirectToList}>\n <Text id=\"PurchaseOrders.approvalRuleDetails.buttons.back\" />\n </Button>\n </>\n ) : (\n <FormLoader\n className={'approval-rule-details--loader'}\n data-testid=\"approval-rule-details-container--loader\"\n />\n );\n\n return (\n <div\n className={classes(['approval-rule-details', className])}\n data-testid=\"approval-rule-details-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"approvalRuleDetailsCard\">\n {renderDetailsContent}\n </Card>\n ) : (\n renderDetailsContent\n )}\n </div>\n );\n};\n"],"names":["useApprovalRuleDetails","approvalRuleID","routeApprovalRulesList","loading","setLoading","useState","approvalRule","setApprovalRule","useEffect","getPurchaseOrderApprovalRule","data","formValues","useMemo","name","status","description","appliesToRoles","approverRoles","condition","jsx","Text","item","jsxs","Fragment","PriceRange","ApprovalRuleDetailsContent","classes","i","ApprovalRuleDetails","withHeader","withWrapper","className","t","useText","handleRedirectToList","renderDetailsContent","FormLoader","Button","PurchaseOrdersHeader","Card"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApprovalRuleDetails.js","sources":["/@dropins/storefront-purchase-order/src/hooks/useApprovalRuleDetails.tsx","/@dropins/storefront-purchase-order/src/components/ApprovalRuleDetailsContent/ApprovalRuleDetailsContent.tsx","/@dropins/storefront-purchase-order/src/containers/ApprovalRuleDetails/ApprovalRuleDetails.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 { useEffect, useState, useMemo } from 'preact/hooks';\nimport { getPurchaseOrderApprovalRule } from '@/b2b-purchase-order/api';\nimport { UseApprovalRuleDetailsProps } from '@/b2b-purchase-order/types/hooks';\nimport { PriceRange } from '@adobe-commerce/elsie/components';\nimport { PurchaseOrderApprovalRuleModel } from '@/b2b-purchase-order/data/models';\nimport { Text } from '@adobe-commerce/elsie/i18n';\n\nexport const useApprovalRuleDetails = ({\n approvalRuleID,\n routeApprovalRulesList,\n}: UseApprovalRuleDetailsProps) => {\n const [loading, setLoading] = useState(true);\n const [approvalRule, setApprovalRule] =\n useState<PurchaseOrderApprovalRuleModel | null>(null);\n\n useEffect(() => {\n if (!approvalRuleID) return;\n\n setLoading(true);\n\n getPurchaseOrderApprovalRule(approvalRuleID)\n .then((data) => {\n if (!data.uid) return;\n\n setApprovalRule(data);\n })\n .catch(() => {\n setApprovalRule(null);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [approvalRuleID]);\n\n const formValues = useMemo(() => {\n if (!approvalRule || loading) return [];\n\n const {\n name,\n status,\n description,\n appliesToRoles,\n approverRoles,\n condition,\n } = approvalRule;\n\n return [\n {\n label: <Text id=\"PurchaseOrders.approvalRuleDetails.fields.ruleName\" />,\n value: name,\n },\n {\n label: <Text id=\"PurchaseOrders.approvalRuleDetails.fields.status\" />,\n value: (\n <Text\n id={`PurchaseOrders.approvalRuleDetails.fields.statusView.${status.toLocaleLowerCase()}`}\n />\n ),\n },\n {\n label: (\n <Text id=\"PurchaseOrders.approvalRuleDetails.fields.description\" />\n ),\n value: description,\n },\n {\n label: (\n <Text id=\"PurchaseOrders.approvalRuleDetails.fields.appliesTo\" />\n ),\n value: (\n <ul>\n {appliesToRoles.map((item) => (\n <li key={item.id}>{item.name}</li>\n ))}\n </ul>\n ),\n },\n {\n label: <Text id=\"PurchaseOrders.approvalRuleDetails.fields.ruleType\" />,\n value: (\n <Text\n id={`PurchaseOrders.approvalRuleDetails.fields.condition.attribute.${condition.attribute.toLocaleLowerCase()}`}\n />\n ),\n },\n {\n label: (\n <>\n <Text\n id={`PurchaseOrders.approvalRuleDetails.fields.condition.attribute.${condition.attribute.toLocaleLowerCase()}`}\n />\n {':'}\n </>\n ),\n value: (\n <div>\n <Text\n id={`PurchaseOrders.approvalRuleDetails.fields.condition.operator.${condition.operator.toLocaleLowerCase()}`}\n />\n <Text id=\"PurchaseOrders.approvalRuleDetails.fields.amount.label\" />\n <PriceRange\n amount={condition.amount.value}\n currency={condition.amount.currency}\n />\n </div>\n ),\n },\n {\n label: (\n <Text id=\"PurchaseOrders.approvalRuleDetails.fields.requiresApprovalFrom\" />\n ),\n value: (\n <ul>\n {approverRoles.map((item) => (\n <li key={item.id}>{item.name}</li>\n ))}\n </ul>\n ),\n },\n ];\n }, [approvalRule, loading]);\n\n const handleRedirectToList = () => {\n window.location.href = routeApprovalRulesList?.() ?? '';\n };\n\n return { handleRedirectToList, loading, formValues };\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 { FunctionComponent } from 'preact';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport '@/b2b-purchase-order/components/ApprovalRuleDetailsContent/ApprovalRuleDetailsContent.css';\nimport { ApprovalRuleDetailsContentProps } from '@/b2b-purchase-order/types/components';\n\nexport const ApprovalRuleDetailsContent: FunctionComponent<\n ApprovalRuleDetailsContentProps\n> = ({ formValues }) => {\n return (\n <div\n className={classes(['b2b-purchase-order-approval-rule-details-content'])}\n >\n {formValues.map((item, i) => {\n return (\n <div\n key={i}\n className={classes([\n 'b2b-purchase-order-approval-rule-details-content__item',\n ])}\n >\n <span className=\"b2b-purchase-order-approval-rule-details-content__label\">\n {item.label}\n </span>\n <div className=\"b2b-purchase-order-approval-rule-details-content__value\">\n {item.value}\n </div>\n </div>\n );\n })}\n </div>\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 {\n ApprovalRuleDetailsContent,\n FormLoader,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { useApprovalRuleDetails } from '@/b2b-purchase-order/hooks';\nimport { ApprovalRuleDetailsProps } from '@/b2b-purchase-order/types/containers';\nimport { Button, Card } from '@adobe-commerce/elsie/components';\nimport { Text, useText } from '@adobe-commerce/elsie/i18n';\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\n\nexport const ApprovalRuleDetails: Container<ApprovalRuleDetailsProps> = ({\n withHeader = true,\n withWrapper = true,\n className,\n approvalRuleID,\n routeApprovalRulesList,\n}) => {\n const t = useText({\n headerText: 'PurchaseOrders.approvalRuleDetails.containerTitle',\n });\n const { handleRedirectToList, loading, formValues } = useApprovalRuleDetails({\n routeApprovalRulesList,\n approvalRuleID,\n });\n\n if (!approvalRuleID) return null;\n\n const renderDetailsContent = !loading ? (\n <>\n <ApprovalRuleDetailsContent formValues={formValues} />\n <Button\n className={'approval-rule-details__button'}\n onClick={handleRedirectToList}\n >\n <Text id=\"PurchaseOrders.approvalRuleDetails.buttons.back\" />\n </Button>\n </>\n ) : (\n <FormLoader\n className={'approval-rule-details--loader'}\n data-testid=\"approval-rule-details-container--loader\"\n />\n );\n\n return (\n <div\n className={classes(['approval-rule-details', className])}\n data-testid=\"approval-rule-details-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"approvalRuleDetailsCard\">\n {renderDetailsContent}\n </Card>\n ) : (\n renderDetailsContent\n )}\n </div>\n );\n};\n"],"names":["useApprovalRuleDetails","approvalRuleID","routeApprovalRulesList","loading","setLoading","useState","approvalRule","setApprovalRule","useEffect","getPurchaseOrderApprovalRule","data","formValues","useMemo","name","status","description","appliesToRoles","approverRoles","condition","jsx","Text","item","jsxs","Fragment","PriceRange","ApprovalRuleDetailsContent","classes","i","ApprovalRuleDetails","withHeader","withWrapper","className","t","useText","handleRedirectToList","renderDetailsContent","FormLoader","Button","PurchaseOrdersHeader","Card"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{jsxs as y,jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{classes as x}from"@dropins/tools/lib.js";import{P as w,d as N}from"../chunks/pageSize.config.js";import{P as S}from"../chunks/PurchaseOrdersHeader.js";import{P as D}from"../chunks/PurchaseOrdersTableActions.js";import"@dropins/tools/components.js";import{E as R,u as E}from"../chunks/usePurchaseOrders.js";import{u as j}from"../chunks/useCustomerRolePermissions.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import"../chunks/FormLoader.js";import{useText as v}from"@dropins/tools/i18n.js";import"../chunks/
|
|
3
|
+
import{jsxs as y,jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{classes as x}from"@dropins/tools/lib.js";import{P as w,d as N}from"../chunks/pageSize.config.js";import{P as S}from"../chunks/PurchaseOrdersHeader.js";import{P as D}from"../chunks/PurchaseOrdersTableActions.js";import"@dropins/tools/components.js";import{E as R,u as E}from"../chunks/usePurchaseOrders.js";import{u as j}from"../chunks/useCustomerRolePermissions.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import"../chunks/FormLoader.js";import{useText as v}from"@dropins/tools/i18n.js";import"../chunks/rejectPurchaseOrders.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/fetch-error.js";import"../chunks/getPurchaseOrders.js";import"../chunks/case-converter.js";const X=({initialPageSize:t=N,routePurchaseOrderDetails:o,setColumns:u,setRowsData:d,className:c="",withHeader:l=!0,withWrapper:n=!0,skeletonRowCount:i=5})=>{const m=R.COMPANY_PURCHASE_ORDERS,e=v({headerText:"PurchaseOrders.companyPurchaseOrders.containerTitle",actionView:"PurchaseOrders.purchaseOrdersTable.actionView",poNumber:"PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber",orderNumber:"PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber",createdDate:"PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate",updatedDate:"PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate",createdBy:"PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy",status:"PurchaseOrders.purchaseOrdersTable.tableColumns.status",total:"PurchaseOrders.purchaseOrdersTable.tableColumns.total",action:"PurchaseOrders.purchaseOrdersTable.tableColumns.action",selectAllAriaLabel:"PurchaseOrders.purchaseOrdersTable.tableColumns.selectAllAriaLabel",noPurchaseOrders:"PurchaseOrders.companyPurchaseOrders.noPurchaseOrders"}),{permissions:p,loadingPermissions:h}=j(),{totalCount:O,loading:s,tableConfig:a,paginationConfig:P,pageSizeConfig:b,selectedOrderIds:C,handleRejectSelected:T,handleApproveSelected:f,isAdmin:g,alertMessageConfig:A}=E({view:m,routePurchaseOrderDetails:o,setColumns:u,setRowsData:d,initialPageSize:t,permissions:p,loadingPermissions:h,t:e});return y("div",{className:x(["company-purchase-orders",c]),"data-testid":"company-purchase-orders-container",children:[l?r(S,{headerText:e.headerText}):null,r(w,{header:g?r(D,{loading:s,selectedCount:C.length,handleRejectSelected:T,handleApproveSelected:f}):null,totalCount:O,columns:a.columns,rows:a.rows,paginationConfig:P,loading:s,skeletonRowCount:i,pageSizeConfig:b,emptyTitle:e.noPurchaseOrders,alertMessageConfig:A,withWrapper:n})]})};export{X as CompanyPurchaseOrders,X as default};
|
|
4
4
|
//# sourceMappingURL=CompanyPurchaseOrders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompanyPurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/containers/CompanyPurchaseOrders/CompanyPurchaseOrders.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 { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrdersTable,\n PurchaseOrdersHeader,\n PurchaseOrdersTableActions,\n} from '@/b2b-purchase-order/components';\nimport {\n usePurchaseOrders,\n useCustomerRolePermissions,\n} from '@/b2b-purchase-order/hooks';\nimport { CompanyPurchaseOrdersProps } from '@/b2b-purchase-order/types/containers';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { EnumPurchaseOrdersView } from '@/b2b-purchase-order/types/api';\nimport { defaultPageSizeConfig } from '@/b2b-purchase-order/configs';\n\nexport const CompanyPurchaseOrders: Container<CompanyPurchaseOrdersProps> = ({\n initialPageSize = defaultPageSizeConfig,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n className = '',\n withHeader = true,\n withWrapper = true,\n skeletonRowCount = 5,\n}) => {\n const view = EnumPurchaseOrdersView.COMPANY_PURCHASE_ORDERS;\n\n const t = useText({\n headerText: 'PurchaseOrders.companyPurchaseOrders.containerTitle',\n actionView: 'PurchaseOrders.purchaseOrdersTable.actionView',\n poNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber',\n orderNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber',\n createdDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate',\n updatedDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate',\n createdBy: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy',\n status: 'PurchaseOrders.purchaseOrdersTable.tableColumns.status',\n total: 'PurchaseOrders.purchaseOrdersTable.tableColumns.total',\n action: 'PurchaseOrders.purchaseOrdersTable.tableColumns.action',\n selectAllAriaLabel:\n 'PurchaseOrders.purchaseOrdersTable.tableColumns.selectAllAriaLabel',\n noPurchaseOrders: 'PurchaseOrders.companyPurchaseOrders.noPurchaseOrders',\n });\n\n const { permissions, loadingPermissions } = useCustomerRolePermissions();\n const {\n totalCount,\n loading,\n tableConfig,\n paginationConfig,\n pageSizeConfig,\n selectedOrderIds,\n handleRejectSelected,\n handleApproveSelected,\n isAdmin,\n alertMessageConfig,\n } = usePurchaseOrders({\n view,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n initialPageSize,\n permissions,\n loadingPermissions,\n t,\n });\n\n return (\n <div\n className={classes(['company-purchase-orders', className])}\n data-testid=\"company-purchase-orders-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n <PurchaseOrdersTable\n header={\n isAdmin ? (\n <PurchaseOrdersTableActions\n loading={loading}\n selectedCount={selectedOrderIds.length}\n handleRejectSelected={handleRejectSelected}\n handleApproveSelected={handleApproveSelected}\n />\n ) : null\n }\n totalCount={totalCount}\n columns={tableConfig.columns}\n rows={tableConfig.rows}\n paginationConfig={paginationConfig}\n loading={loading}\n skeletonRowCount={skeletonRowCount}\n pageSizeConfig={pageSizeConfig}\n emptyTitle={t.noPurchaseOrders}\n alertMessageConfig={alertMessageConfig}\n withWrapper={withWrapper}\n />\n </div>\n );\n};\n"],"names":["CompanyPurchaseOrders","initialPageSize","defaultPageSizeConfig","routePurchaseOrderDetails","setColumns","setRowsData","className","withHeader","withWrapper","skeletonRowCount","view","EnumPurchaseOrdersView","t","useText","permissions","loadingPermissions","useCustomerRolePermissions","totalCount","loading","tableConfig","paginationConfig","pageSizeConfig","selectedOrderIds","handleRejectSelected","handleApproveSelected","isAdmin","alertMessageConfig","usePurchaseOrders","jsxs","classes","jsx","PurchaseOrdersHeader","PurchaseOrdersTable","PurchaseOrdersTableActions"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CompanyPurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/containers/CompanyPurchaseOrders/CompanyPurchaseOrders.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 { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrdersTable,\n PurchaseOrdersHeader,\n PurchaseOrdersTableActions,\n} from '@/b2b-purchase-order/components';\nimport {\n usePurchaseOrders,\n useCustomerRolePermissions,\n} from '@/b2b-purchase-order/hooks';\nimport { CompanyPurchaseOrdersProps } from '@/b2b-purchase-order/types/containers';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { EnumPurchaseOrdersView } from '@/b2b-purchase-order/types/api';\nimport { defaultPageSizeConfig } from '@/b2b-purchase-order/configs';\n\nexport const CompanyPurchaseOrders: Container<CompanyPurchaseOrdersProps> = ({\n initialPageSize = defaultPageSizeConfig,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n className = '',\n withHeader = true,\n withWrapper = true,\n skeletonRowCount = 5,\n}) => {\n const view = EnumPurchaseOrdersView.COMPANY_PURCHASE_ORDERS;\n\n const t = useText({\n headerText: 'PurchaseOrders.companyPurchaseOrders.containerTitle',\n actionView: 'PurchaseOrders.purchaseOrdersTable.actionView',\n poNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber',\n orderNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber',\n createdDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate',\n updatedDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate',\n createdBy: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy',\n status: 'PurchaseOrders.purchaseOrdersTable.tableColumns.status',\n total: 'PurchaseOrders.purchaseOrdersTable.tableColumns.total',\n action: 'PurchaseOrders.purchaseOrdersTable.tableColumns.action',\n selectAllAriaLabel:\n 'PurchaseOrders.purchaseOrdersTable.tableColumns.selectAllAriaLabel',\n noPurchaseOrders: 'PurchaseOrders.companyPurchaseOrders.noPurchaseOrders',\n });\n\n const { permissions, loadingPermissions } = useCustomerRolePermissions();\n const {\n totalCount,\n loading,\n tableConfig,\n paginationConfig,\n pageSizeConfig,\n selectedOrderIds,\n handleRejectSelected,\n handleApproveSelected,\n isAdmin,\n alertMessageConfig,\n } = usePurchaseOrders({\n view,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n initialPageSize,\n permissions,\n loadingPermissions,\n t,\n });\n\n return (\n <div\n className={classes(['company-purchase-orders', className])}\n data-testid=\"company-purchase-orders-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n <PurchaseOrdersTable\n header={\n isAdmin ? (\n <PurchaseOrdersTableActions\n loading={loading}\n selectedCount={selectedOrderIds.length}\n handleRejectSelected={handleRejectSelected}\n handleApproveSelected={handleApproveSelected}\n />\n ) : null\n }\n totalCount={totalCount}\n columns={tableConfig.columns}\n rows={tableConfig.rows}\n paginationConfig={paginationConfig}\n loading={loading}\n skeletonRowCount={skeletonRowCount}\n pageSizeConfig={pageSizeConfig}\n emptyTitle={t.noPurchaseOrders}\n alertMessageConfig={alertMessageConfig}\n withWrapper={withWrapper}\n />\n </div>\n );\n};\n"],"names":["CompanyPurchaseOrders","initialPageSize","defaultPageSizeConfig","routePurchaseOrderDetails","setColumns","setRowsData","className","withHeader","withWrapper","skeletonRowCount","view","EnumPurchaseOrdersView","t","useText","permissions","loadingPermissions","useCustomerRolePermissions","totalCount","loading","tableConfig","paginationConfig","pageSizeConfig","selectedOrderIds","handleRejectSelected","handleApproveSelected","isAdmin","alertMessageConfig","usePurchaseOrders","jsxs","classes","jsx","PurchaseOrdersHeader","PurchaseOrdersTable","PurchaseOrdersTableActions"],"mappings":"uzBAgCO,MAAMA,EAA+D,CAAC,CAC3E,gBAAAC,EAAkBC,EAClB,0BAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EAAY,GACZ,WAAAC,EAAa,GACb,YAAAC,EAAc,GACd,iBAAAC,EAAmB,CACrB,IAAM,CACJ,MAAMC,EAAOC,EAAuB,wBAE9BC,EAAIC,EAAQ,CAChB,WAAY,sDACZ,WAAY,gDACZ,SAAU,2DACV,YAAa,8DACb,YAAa,8DACb,YAAa,8DACb,UAAW,4DACX,OAAQ,yDACR,MAAO,wDACP,OAAQ,yDACR,mBACE,qEACF,iBAAkB,uDAAA,CACnB,EAEK,CAAE,YAAAC,EAAa,mBAAAC,CAAA,EAAuBC,EAAA,EACtC,CACJ,WAAAC,EACA,QAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,qBAAAC,EACA,sBAAAC,EACA,QAAAC,EACA,mBAAAC,CAAA,EACEC,EAAkB,CACpB,KAAAjB,EACA,0BAAAP,EACA,WAAAC,EACA,YAAAC,EACA,gBAAAJ,EACA,YAAAa,EACA,mBAAAC,EACA,EAAAH,CAAA,CACD,EAED,OACEgB,EAAC,MAAA,CACC,UAAWC,EAAQ,CAAC,0BAA2BvB,CAAS,CAAC,EACzD,cAAY,oCAEX,SAAA,CAAAC,EAAauB,EAACC,EAAA,CAAqB,WAAYnB,EAAE,WAAY,EAAK,KACnEkB,EAACE,EAAA,CACC,OACEP,EACEK,EAACG,EAAA,CACC,QAAAf,EACA,cAAeI,EAAiB,OAChC,qBAAAC,EACA,sBAAAC,CAAA,CAAA,EAEA,KAEN,WAAAP,EACA,QAASE,EAAY,QACrB,KAAMA,EAAY,KAClB,iBAAAC,EACA,QAAAF,EACA,iBAAAT,EACA,eAAAY,EACA,WAAYT,EAAE,iBACd,mBAAAc,EACA,YAAAlB,CAAA,CAAA,CACF,CAAA,CAAA,CAGN"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{jsxs as T,jsx as s}from"@dropins/tools/preact-jsx-runtime.js";import{classes as f}from"@dropins/tools/lib.js";import{P as g,d as x}from"../chunks/pageSize.config.js";import{P as w}from"../chunks/PurchaseOrdersHeader.js";import"../chunks/FormLoader.js";import"@dropins/tools/components.js";import{E as D,u as E}from"../chunks/usePurchaseOrders.js";import{u as N}from"../chunks/useCustomerRolePermissions.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import{useText as R}from"@dropins/tools/i18n.js";import"../chunks/
|
|
3
|
+
import{jsxs as T,jsx as s}from"@dropins/tools/preact-jsx-runtime.js";import{classes as f}from"@dropins/tools/lib.js";import{P as g,d as x}from"../chunks/pageSize.config.js";import{P as w}from"../chunks/PurchaseOrdersHeader.js";import"../chunks/FormLoader.js";import"@dropins/tools/components.js";import{E as D,u as E}from"../chunks/usePurchaseOrders.js";import{u as N}from"../chunks/useCustomerRolePermissions.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import{useText as R}from"@dropins/tools/i18n.js";import"../chunks/rejectPurchaseOrders.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/fetch-error.js";import"../chunks/getPurchaseOrders.js";import"../chunks/case-converter.js";const J=({initialPageSize:a=x,routePurchaseOrderDetails:t,setColumns:o,setRowsData:u,className:d="",withHeader:c=!0,withWrapper:i=!0,skeletonRowCount:m=5})=>{const l=D.CUSTOMER_PURCHASE_ORDERS,r=R({headerText:"PurchaseOrders.customerPurchaseOrders.containerTitle",actionView:"PurchaseOrders.purchaseOrdersTable.actionView",poNumber:"PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber",orderNumber:"PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber",createdDate:"PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate",updatedDate:"PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate",createdBy:"PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy",status:"PurchaseOrders.purchaseOrdersTable.tableColumns.status",total:"PurchaseOrders.purchaseOrdersTable.tableColumns.total",action:"PurchaseOrders.purchaseOrdersTable.tableColumns.action",noPurchaseOrders:"PurchaseOrders.customerPurchaseOrders.noPurchaseOrders"}),{permissions:n,loadingPermissions:p}=N(),{pageSizeConfig:h,loading:O,paginationConfig:P,tableConfig:e,totalCount:b,alertMessageConfig:C}=E({view:l,routePurchaseOrderDetails:t,setColumns:o,setRowsData:u,initialPageSize:a,permissions:n,loadingPermissions:p,t:r});return T("div",{className:f(["purchase-orders",d]),"data-testid":"purchase-orders-container",children:[c?s(w,{headerText:r.headerText}):null,s(g,{totalCount:b,columns:e.columns,rows:e.rows,paginationConfig:P,loading:O,skeletonRowCount:m,pageSizeConfig:h,emptyTitle:r.noPurchaseOrders,alertMessageConfig:C,withWrapper:i})]})};export{J as CustomerPurchaseOrders,J as default};
|
|
4
4
|
//# sourceMappingURL=CustomerPurchaseOrders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomerPurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/containers/CustomerPurchaseOrders/CustomerPurchaseOrders.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 { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrdersTable,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport {\n usePurchaseOrders,\n useCustomerRolePermissions,\n} from '@/b2b-purchase-order/hooks';\nimport { CustomerPurchaseOrdersProps } from '@/b2b-purchase-order/types/containers';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { defaultPageSizeConfig } from '@/b2b-purchase-order/configs';\nimport { EnumPurchaseOrdersView } from '@/b2b-purchase-order/types/api';\n\nexport const CustomerPurchaseOrders: Container<CustomerPurchaseOrdersProps> = ({\n initialPageSize = defaultPageSizeConfig,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n className = '',\n withHeader = true,\n withWrapper = true,\n skeletonRowCount = 5,\n}) => {\n const view = EnumPurchaseOrdersView.CUSTOMER_PURCHASE_ORDERS;\n\n const t = useText({\n headerText: 'PurchaseOrders.customerPurchaseOrders.containerTitle',\n actionView: 'PurchaseOrders.purchaseOrdersTable.actionView',\n poNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber',\n orderNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber',\n createdDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate',\n updatedDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate',\n createdBy: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy',\n status: 'PurchaseOrders.purchaseOrdersTable.tableColumns.status',\n total: 'PurchaseOrders.purchaseOrdersTable.tableColumns.total',\n action: 'PurchaseOrders.purchaseOrdersTable.tableColumns.action',\n noPurchaseOrders: 'PurchaseOrders.customerPurchaseOrders.noPurchaseOrders',\n });\n\n const { permissions, loadingPermissions } = useCustomerRolePermissions();\n const {\n pageSizeConfig,\n loading,\n paginationConfig,\n tableConfig,\n totalCount,\n alertMessageConfig,\n } = usePurchaseOrders({\n view,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n initialPageSize,\n permissions,\n loadingPermissions,\n t,\n });\n\n return (\n <div\n className={classes(['purchase-orders', className])}\n data-testid=\"purchase-orders-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n <PurchaseOrdersTable\n totalCount={totalCount}\n columns={tableConfig.columns}\n rows={tableConfig.rows}\n paginationConfig={paginationConfig}\n loading={loading}\n skeletonRowCount={skeletonRowCount}\n pageSizeConfig={pageSizeConfig}\n emptyTitle={t.noPurchaseOrders}\n alertMessageConfig={alertMessageConfig}\n withWrapper={withWrapper}\n />\n </div>\n );\n};\n"],"names":["CustomerPurchaseOrders","initialPageSize","defaultPageSizeConfig","routePurchaseOrderDetails","setColumns","setRowsData","className","withHeader","withWrapper","skeletonRowCount","view","EnumPurchaseOrdersView","t","useText","permissions","loadingPermissions","useCustomerRolePermissions","pageSizeConfig","loading","paginationConfig","tableConfig","totalCount","alertMessageConfig","usePurchaseOrders","jsxs","classes","jsx","PurchaseOrdersHeader","PurchaseOrdersTable"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomerPurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/containers/CustomerPurchaseOrders/CustomerPurchaseOrders.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 { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrdersTable,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport {\n usePurchaseOrders,\n useCustomerRolePermissions,\n} from '@/b2b-purchase-order/hooks';\nimport { CustomerPurchaseOrdersProps } from '@/b2b-purchase-order/types/containers';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { defaultPageSizeConfig } from '@/b2b-purchase-order/configs';\nimport { EnumPurchaseOrdersView } from '@/b2b-purchase-order/types/api';\n\nexport const CustomerPurchaseOrders: Container<CustomerPurchaseOrdersProps> = ({\n initialPageSize = defaultPageSizeConfig,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n className = '',\n withHeader = true,\n withWrapper = true,\n skeletonRowCount = 5,\n}) => {\n const view = EnumPurchaseOrdersView.CUSTOMER_PURCHASE_ORDERS;\n\n const t = useText({\n headerText: 'PurchaseOrders.customerPurchaseOrders.containerTitle',\n actionView: 'PurchaseOrders.purchaseOrdersTable.actionView',\n poNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber',\n orderNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber',\n createdDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate',\n updatedDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate',\n createdBy: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy',\n status: 'PurchaseOrders.purchaseOrdersTable.tableColumns.status',\n total: 'PurchaseOrders.purchaseOrdersTable.tableColumns.total',\n action: 'PurchaseOrders.purchaseOrdersTable.tableColumns.action',\n noPurchaseOrders: 'PurchaseOrders.customerPurchaseOrders.noPurchaseOrders',\n });\n\n const { permissions, loadingPermissions } = useCustomerRolePermissions();\n const {\n pageSizeConfig,\n loading,\n paginationConfig,\n tableConfig,\n totalCount,\n alertMessageConfig,\n } = usePurchaseOrders({\n view,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n initialPageSize,\n permissions,\n loadingPermissions,\n t,\n });\n\n return (\n <div\n className={classes(['purchase-orders', className])}\n data-testid=\"purchase-orders-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n <PurchaseOrdersTable\n totalCount={totalCount}\n columns={tableConfig.columns}\n rows={tableConfig.rows}\n paginationConfig={paginationConfig}\n loading={loading}\n skeletonRowCount={skeletonRowCount}\n pageSizeConfig={pageSizeConfig}\n emptyTitle={t.noPurchaseOrders}\n alertMessageConfig={alertMessageConfig}\n withWrapper={withWrapper}\n />\n </div>\n );\n};\n"],"names":["CustomerPurchaseOrders","initialPageSize","defaultPageSizeConfig","routePurchaseOrderDetails","setColumns","setRowsData","className","withHeader","withWrapper","skeletonRowCount","view","EnumPurchaseOrdersView","t","useText","permissions","loadingPermissions","useCustomerRolePermissions","pageSizeConfig","loading","paginationConfig","tableConfig","totalCount","alertMessageConfig","usePurchaseOrders","jsxs","classes","jsx","PurchaseOrdersHeader","PurchaseOrdersTable"],"mappings":"2vBA+BO,MAAMA,EAAiE,CAAC,CAC7E,gBAAAC,EAAkBC,EAClB,0BAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EAAY,GACZ,WAAAC,EAAa,GACb,YAAAC,EAAc,GACd,iBAAAC,EAAmB,CACrB,IAAM,CACJ,MAAMC,EAAOC,EAAuB,yBAE9BC,EAAIC,EAAQ,CAChB,WAAY,uDACZ,WAAY,gDACZ,SAAU,2DACV,YAAa,8DACb,YAAa,8DACb,YAAa,8DACb,UAAW,4DACX,OAAQ,yDACR,MAAO,wDACP,OAAQ,yDACR,iBAAkB,wDAAA,CACnB,EAEK,CAAE,YAAAC,EAAa,mBAAAC,CAAA,EAAuBC,EAAA,EACtC,CACJ,eAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,WAAAC,EACA,mBAAAC,CAAA,EACEC,EAAkB,CACpB,KAAAb,EACA,0BAAAP,EACA,WAAAC,EACA,YAAAC,EACA,gBAAAJ,EACA,YAAAa,EACA,mBAAAC,EACA,EAAAH,CAAA,CACD,EAED,OACEY,EAAC,MAAA,CACC,UAAWC,EAAQ,CAAC,kBAAmBnB,CAAS,CAAC,EACjD,cAAY,4BAEX,SAAA,CAAAC,EAAamB,EAACC,EAAA,CAAqB,WAAYf,EAAE,WAAY,EAAK,KACnEc,EAACE,EAAA,CACC,WAAAP,EACA,QAASD,EAAY,QACrB,KAAMA,EAAY,KAClB,iBAAAD,EACA,QAAAD,EACA,iBAAAT,EACA,eAAAQ,EACA,WAAYL,EAAE,iBACd,mBAAAU,EACA,YAAAd,CAAA,CAAA,CACF,CAAA,CAAA,CAGN"}
|
|
@@ -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 './PurchaseOrderStatus';
|
|
18
|
+
export { PurchaseOrderStatus as default } from './PurchaseOrderStatus';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|