@dropins/storefront-purchase-order 0.0.1-alpha1 → 0.0.1-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.
Files changed (125) hide show
  1. package/api/addPurchaseOrderComment/addPurchaseOrderComment.d.ts +4 -0
  2. package/api/addPurchaseOrderComment/graphql/addPurchaseOrderComment.graphql.d.ts +18 -0
  3. package/api/addPurchaseOrderComment/index.d.ts +18 -0
  4. package/api/addPurchaseOrderItemsToCart/addPurchaseOrderItemsToCart.d.ts +4 -0
  5. package/api/addPurchaseOrderItemsToCart/graphql/addPurchaseOrderItemsToCart.graphql.d.ts +18 -0
  6. package/api/addPurchaseOrderItemsToCart/index.d.ts +18 -0
  7. package/api/approvePurchaseOrders/approvePurchaseOrders.d.ts +10 -0
  8. package/api/approvePurchaseOrders/graphql/approvePurchaseOrders.graphql.d.ts +18 -0
  9. package/api/approvePurchaseOrders/index.d.ts +18 -0
  10. package/api/cancelPurchaseOrders/cancelPurchaseOrders.d.ts +10 -0
  11. package/api/cancelPurchaseOrders/graphql/cancelPurchaseOrders.graphql.d.ts +18 -0
  12. package/api/cancelPurchaseOrders/index.d.ts +18 -0
  13. package/api/createPurchaseOrderApprovalRule/createPurchaseOrderApprovalRule.d.ts +4 -0
  14. package/api/createPurchaseOrderApprovalRule/graphql/createPurchaseOrderApprovalRule.graphql.d.ts +18 -0
  15. package/api/createPurchaseOrderApprovalRule/index.d.ts +18 -0
  16. package/api/deletePurchaseOrderApprovalRule/deletePurchaseOrderApprovalRule.d.ts +9 -0
  17. package/api/deletePurchaseOrderApprovalRule/graphql/deletePurchaseOrderApprovalRule.graphql.d.ts +18 -0
  18. package/api/deletePurchaseOrderApprovalRule/index.d.ts +18 -0
  19. package/api/fragments.d.ts +18 -0
  20. package/api/getPurchaseOrder/getPurchaseOrder.d.ts +6 -0
  21. package/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql.d.ts +18 -0
  22. package/api/getPurchaseOrder/index.d.ts +18 -0
  23. package/api/getPurchaseOrderApprovalRuleMetadata/getPurchaseOrderApprovalRuleMetadata.d.ts +4 -0
  24. package/api/getPurchaseOrderApprovalRuleMetadata/graphql/getPurchaseOrderApprovalRuleMetadata.graphql.d.ts +18 -0
  25. package/api/getPurchaseOrderApprovalRuleMetadata/index.d.ts +18 -0
  26. package/api/getPurchaseOrders/getPurchaseOrders.d.ts +12 -0
  27. package/api/getPurchaseOrders/graphql/getPurchaseOrders.graphql.d.ts +18 -0
  28. package/api/getPurchaseOrders/index.d.ts +18 -0
  29. package/api/graphql/PurchaseOrdersFragment.graphql.d.ts +18 -0
  30. package/api/index.d.ts +30 -0
  31. package/api/placeOrderForPurchaseOrder/graphql/placeOrderForPurchaseOrder.graphql.d.ts +18 -0
  32. package/api/placeOrderForPurchaseOrder/index.d.ts +18 -0
  33. package/api/placeOrderForPurchaseOrder/placeOrderForPurchaseOrder.d.ts +4 -0
  34. package/api/placePurchaseOrder/graphql/placePurchaseOrder.graphql.d.ts +18 -0
  35. package/api/placePurchaseOrder/index.d.ts +18 -0
  36. package/api/placePurchaseOrder/placePurchaseOrder.d.ts +6 -0
  37. package/api/rejectPurchaseOrders/graphql/rejectPurchaseOrders.graphql.d.ts +18 -0
  38. package/api/rejectPurchaseOrders/index.d.ts +18 -0
  39. package/api/rejectPurchaseOrders/rejectPurchaseOrders.d.ts +10 -0
  40. package/api/updatePurchaseOrderApprovalRule/graphql/updatePurchaseOrderApprovalRule.graphql.d.ts +18 -0
  41. package/api/updatePurchaseOrderApprovalRule/index.d.ts +18 -0
  42. package/api/updatePurchaseOrderApprovalRule/updatePurchaseOrderApprovalRule.d.ts +4 -0
  43. package/api/validatePurchaseOrders/graphql/validatePurchaseOrders.graphql.d.ts +18 -0
  44. package/api/validatePurchaseOrders/index.d.ts +18 -0
  45. package/api/validatePurchaseOrders/validatePurchaseOrders.d.ts +10 -0
  46. package/api.js +285 -1
  47. package/api.js.map +1 -1
  48. package/chunks/PurchaseOrdersTableActions.js +4 -0
  49. package/chunks/PurchaseOrdersTableActions.js.map +1 -0
  50. package/chunks/getPurchaseOrders.js +113 -0
  51. package/chunks/getPurchaseOrders.js.map +1 -0
  52. package/chunks/useCustomerRolePermissions.js +4 -0
  53. package/chunks/useCustomerRolePermissions.js.map +1 -0
  54. package/components/PurchaseOrdersHeader/PurchaseOrdersHeader.d.ts +7 -0
  55. package/components/PurchaseOrdersHeader/index.d.ts +19 -0
  56. package/components/PurchaseOrdersTable/PurchaseOrdersTable.d.ts +5 -0
  57. package/components/PurchaseOrdersTable/index.d.ts +19 -0
  58. package/components/PurchaseOrdersTableActions/PurchaseOrdersTableActions.d.ts +5 -0
  59. package/components/PurchaseOrdersTableActions/index.d.ts +19 -0
  60. package/components/index.d.ts +19 -1
  61. package/configs/companyPurchaseOrders.config.d.ts +4 -0
  62. package/configs/customerPurchaseOrders.config.d.ts +4 -0
  63. package/configs/index.d.ts +21 -0
  64. package/configs/pageSize.config.d.ts +22 -0
  65. package/configs/purchaseOrderApprovalRules.config.d.ts +4 -0
  66. package/containers/CompanyPurchaseOrders/CompanyPurchaseOrders.d.ts +5 -0
  67. package/containers/CompanyPurchaseOrders/index.d.ts +19 -0
  68. package/containers/CompanyPurchaseOrders.d.ts +3 -0
  69. package/containers/CompanyPurchaseOrders.js +4 -0
  70. package/containers/CompanyPurchaseOrders.js.map +1 -0
  71. package/containers/CustomerPurchaseOrders/CustomerPurchaseOrders.d.ts +5 -0
  72. package/containers/CustomerPurchaseOrders/index.d.ts +19 -0
  73. package/containers/CustomerPurchaseOrders.d.ts +3 -0
  74. package/containers/CustomerPurchaseOrders.js +4 -0
  75. package/containers/CustomerPurchaseOrders.js.map +1 -0
  76. package/containers/RequireApprovalPurchaseOrders/RequireApprovalPurchaseOrders.d.ts +5 -0
  77. package/containers/RequireApprovalPurchaseOrders/index.d.ts +19 -0
  78. package/containers/RequireApprovalPurchaseOrders.d.ts +3 -0
  79. package/containers/RequireApprovalPurchaseOrders.js +4 -0
  80. package/containers/RequireApprovalPurchaseOrders.js.map +1 -0
  81. package/containers/index.d.ts +3 -1
  82. package/data/models/cart-model.d.ts +40 -0
  83. package/data/models/customer-order-model.d.ts +128 -0
  84. package/data/models/customer-role-permissions-model.d.ts +35 -0
  85. package/data/models/index.d.ts +23 -1
  86. package/data/models/purchase-order-approval-rule-metadata-model.d.ts +33 -0
  87. package/data/models/purchase-order-approval-rule-model.d.ts +50 -0
  88. package/data/models/purchase-order-comment-model.d.ts +39 -0
  89. package/data/models/purchase-order-model.d.ts +75 -0
  90. package/data/transforms/index.d.ts +22 -1
  91. package/data/transforms/transform-cart.d.ts +4 -0
  92. package/data/transforms/transform-customer-order.d.ts +4 -0
  93. package/data/transforms/transform-customer-role-permissions.d.ts +20 -0
  94. package/data/transforms/transform-purchase-order-approval-rule-metadata.d.ts +4 -0
  95. package/data/transforms/transform-purchase-order-approval-rule.d.ts +4 -0
  96. package/data/transforms/transform-purchase-order-comment.d.ts +4 -0
  97. package/data/transforms/transform-purchase-order.d.ts +4 -0
  98. package/hooks/index.d.ts +19 -0
  99. package/hooks/useCustomerRolePermissions.d.ts +18 -0
  100. package/hooks/usePurchaseOrders.d.ts +4 -0
  101. package/i18n/en_US.json.d.ts +87 -2
  102. package/lib/case-converter.d.ts +25 -0
  103. package/lib/fetch-error.d.ts +21 -0
  104. package/lib/formatDate.d.ts +24 -0
  105. package/lib/getRange.d.ts +6 -0
  106. package/lib/index.d.ts +7 -0
  107. package/lib/isValidUrl.d.ts +2 -0
  108. package/lib/network-error.d.ts +22 -0
  109. package/mocks/index.d.ts +2832 -0
  110. package/mocks/storybook/index.d.ts +29 -0
  111. package/package.json +1 -1
  112. package/render.js +2 -1
  113. package/render.js.map +1 -1
  114. package/types/api/api.enums.types.d.ts +21 -0
  115. package/types/api/index.d.ts +2 -0
  116. package/types/components/index.d.ts +4 -0
  117. package/types/components/pagination.types.d.ts +27 -0
  118. package/types/components/purchaseOrdersTable.types.d.ts +38 -0
  119. package/types/components/purchaseOrdersTableActions.d.ts +8 -0
  120. package/types/containers/companyPurchaseOrders.types.d.ts +13 -0
  121. package/types/containers/customerPurchaseOrders.types.d.ts +13 -0
  122. package/types/containers/index.d.ts +4 -0
  123. package/types/containers/requireApprovalPurchaseOrders.types.d.ts +13 -0
  124. package/types/hooks/index.d.ts +2 -0
  125. package/types/hooks/usePurchaseOrders.types.d.ts +41 -0
@@ -0,0 +1,113 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{FetchGraphQL as N}from"@dropins/tools/fetch-graphql.js";import{events as D}from"@dropins/tools/event-bus.js";const S=t=>{const n=t.map(l=>l.message).join(" ");throw Error(n)},w=t=>{const n=t instanceof DOMException&&t.name==="AbortError",l=t.name==="PlaceOrderError";throw!n&&!l&&D.emit("purchase-order/error",{source:"purchase-order",type:"network",error:t.message}),t},e=t=>{if(t==null||typeof t!="object")return t;if(Array.isArray(t))return t.map(e);const n={};for(const[l,o]of Object.entries(t)){const i=l.replace(/[A-Z]/g,E=>`_${E.toLowerCase()}`);n[i]=e(o)}return n},{setEndpoint:V,setFetchGraphQlHeader:L,removeFetchGraphQlHeader:J,setFetchGraphQlHeaders:B,fetchGraphQl:b,getConfig:K}=new N().getMethods(),C=`
4
+ fragment PURCHASE_ORDERS_FRAGMENT on PurchaseOrder {
5
+ __typename
6
+ uid
7
+ number
8
+ status
9
+ available_actions
10
+ approval_flow {
11
+ rule_name
12
+ events {
13
+ message
14
+ name
15
+ role
16
+ status
17
+ updated_at
18
+ }
19
+ }
20
+ comments {
21
+ created_at
22
+ author {
23
+ firstname
24
+ lastname
25
+ email
26
+ }
27
+ text
28
+ }
29
+ created_at
30
+ updated_at
31
+ created_by {
32
+ firstname
33
+ lastname
34
+ email
35
+ }
36
+ history_log {
37
+ activity
38
+ created_at
39
+ message
40
+ uid
41
+ }
42
+ order {
43
+ number
44
+ }
45
+ quote {
46
+ id
47
+ prices {
48
+ grand_total {
49
+ value
50
+ currency
51
+ }
52
+ }
53
+ itemsV2 {
54
+ items {
55
+ uid
56
+ quantity
57
+ }
58
+ }
59
+ }
60
+ }
61
+ `,v=`
62
+ mutation APPROVE_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {
63
+ approvePurchaseOrders(input: $input) {
64
+ purchase_orders {
65
+ ...PURCHASE_ORDERS_FRAGMENT
66
+ }
67
+ errors {
68
+ message
69
+ type
70
+ }
71
+ }
72
+ }
73
+ ${C}
74
+ `,U=t=>{var n,l,o,i,E,f,s,_,y,R,A,P,m,g,u,F,H,$,q,G;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:((o=(l=t==null?void 0:t.approval_flow)==null?void 0:l.events)==null?void 0:o.map(a=>({message:(a==null?void 0:a.message)??"",name:(a==null?void 0:a.name)??"",role:(a==null?void 0:a.role)??"",status:(a==null?void 0:a.status)??"",updatedAt:(a==null?void 0:a.updated_at)??""})))??[]}:null,comments:((i=t==null?void 0:t.comments)==null?void 0:i.map(a=>{var I,T,M;return{createdAt:(a==null?void 0:a.created_at)??"",author:{firstname:((I=a==null?void 0:a.author)==null?void 0:I.firstname)??"",lastname:((T=a==null?void 0:a.author)==null?void 0:T.lastname)??"",email:((M=a==null?void 0:a.author)==null?void 0:M.email)??""},text:(a==null?void 0:a.text)??""}}))??[],createdAt:(t==null?void 0:t.created_at)??"",updatedAt:(t==null?void 0:t.updated_at)??"",createdBy:{firstname:((E=t==null?void 0:t.created_by)==null?void 0:E.firstname)??"",lastname:((f=t==null?void 0:t.created_by)==null?void 0:f.lastname)??"",email:((s=t==null?void 0:t.created_by)==null?void 0:s.email)??""},historyLog:((_=t==null?void 0:t.history_log)==null?void 0:_.map(a=>({activity:(a==null?void 0:a.activity)??"",createdAt:(a==null?void 0:a.created_at)??"",message:(a==null?void 0:a.message)??"",uid:(a==null?void 0:a.uid)??""})))??[],order:{orderNumber:((y=t==null?void 0:t.order)==null?void 0:y.number)??"",id:((R=t==null?void 0:t.order)==null?void 0:R.id)??""},quote:{id:((A=t==null?void 0:t.quote)==null?void 0:A.id)??"",prices:{grandTotal:{value:((g=(m=(P=t==null?void 0:t.quote)==null?void 0:P.prices)==null?void 0:m.grand_total)==null?void 0:g.value)??0,currency:((H=(F=(u=t==null?void 0:t.quote)==null?void 0:u.prices)==null?void 0:F.grand_total)==null?void 0:H.currency)??""}},itemsV2:{items:((G=(q=($=t==null?void 0:t.quote)==null?void 0:$.itemsV2)==null?void 0:q.items)==null?void 0:G.map(a=>({uid:(a==null?void 0:a.uid)??"",quantity:(a==null?void 0:a.quantity)??0})))??[]}}}},Z=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(o=>!o||o.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return b(v,{variables:{input:{purchase_order_uids:n}}}).then(o=>{var E,f,s;(E=o.errors)!=null&&E.length&&S(o.errors);const i=(f=o.data)==null?void 0:f.approvePurchaseOrders;if(!i)throw new Error("Failed to approve purchase orders");return{errors:((i==null?void 0:i.errors)??[]).map(_=>({message:(_==null?void 0:_.message)??"",type:(_==null?void 0:_.type)??""})),purchaseOrders:((s=i==null?void 0:i.purchase_orders)==null?void 0:s.map(_=>U(_)))??[]}}).catch(w)},z=`
75
+ mutation REJECT_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {
76
+ rejectPurchaseOrders(input: $input) {
77
+ purchase_orders {
78
+ ...PURCHASE_ORDERS_FRAGMENT
79
+ }
80
+ errors {
81
+ message
82
+ type
83
+ }
84
+ }
85
+ }
86
+ ${C}
87
+ `,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(o=>!o||o.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return b(z,{variables:{input:{purchase_order_uids:n}}}).then(o=>{var E,f;(E=o.errors)!=null&&E.length&&S(o.errors);const i=(f=o.data)==null?void 0:f.rejectPurchaseOrders;return{errors:((i==null?void 0:i.errors)??[]).map(s=>({message:(s==null?void 0:s.message)??"",type:(s==null?void 0:s.type)??""})),purchaseOrders:((i==null?void 0:i.purchase_orders)??[]).map(U)}}).catch(w)},k=`
88
+ query GET_PURCHASE_ORDERS(
89
+ $filter: PurchaseOrdersFilterInput
90
+ $pageSize: Int
91
+ $currentPage: Int
92
+ ) {
93
+ customer {
94
+ purchase_orders(
95
+ filter: $filter
96
+ pageSize: $pageSize
97
+ currentPage: $currentPage
98
+ ) {
99
+ total_count
100
+ page_info {
101
+ current_page
102
+ page_size
103
+ total_pages
104
+ }
105
+ items {
106
+ ...PURCHASE_ORDERS_FRAGMENT
107
+ }
108
+ }
109
+ }
110
+ }
111
+ ${C}
112
+ `,W=async(t,n=20,l=1)=>b(k,{variables:{filter:e(t),pageSize:n,currentPage:l}}).then(o=>{var s,_,y,R,A,P,m,g;if((s=o.errors)!=null&&s.length&&S(o.errors),!((y=(_=o.data)==null?void 0:_.customer)!=null&&y.purchase_orders))throw new Error("Failed to get purchase orders");const i=(A=(R=o==null?void 0:o.data)==null?void 0:R.customer)==null?void 0:A.purchase_orders,E=(i==null?void 0:i.total_count)??0,f={currentPage:((P=i==null?void 0:i.page_info)==null?void 0:P.current_page)??1,pageSize:((m=i==null?void 0:i.page_info)==null?void 0:m.page_size)??20,totalPages:((g=i==null?void 0:i.page_info)==null?void 0:g.total_pages)??1};return{totalCount:E,pageInfo:f,purchaseOrderItems:((i==null?void 0:i.items)||[]).map(U)}}).catch(w);export{C as P,Z as a,w as b,L as c,J as d,B as e,b as f,W as g,S as h,K as i,j as r,V as s,U as t};
113
+ //# sourceMappingURL=getPurchaseOrders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/lib/fetch-error.ts","/@dropins/storefront-purchase-order/src/lib/network-error.ts","/@dropins/storefront-purchase-order/src/lib/case-converter.ts","/@dropins/storefront-purchase-order/src/api/fetch-graphql/fetch-graphql.ts","/@dropins/storefront-purchase-order/src/api/graphql/PurchaseOrdersFragment.graphql.ts","/@dropins/storefront-purchase-order/src/api/approvePurchaseOrders/graphql/approvePurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/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","/@dropins/storefront-purchase-order/src/api/getPurchaseOrders/graphql/getPurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/getPurchaseOrders/getPurchaseOrders.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/** Actions */\nexport const handleFetchError = (errors: Array<{ message: string }>) => {\n const errorMessage = errors.map((e: any) => e.message).join(' ');\n\n throw Error(errorMessage);\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 { events } from '@adobe-commerce/event-bus';\n\n/**\n * A function which can be attached to fetchGraphQL to handle thrown errors in\n * a generic way.\n */\nexport const handleNetworkError = (error: Error) => {\n const isAbortError =\n error instanceof DOMException && error.name === 'AbortError';\n\n const isPlaceOrderError = error.name === 'PlaceOrderError';\n\n if (!isAbortError && !isPlaceOrderError) {\n events.emit('purchase-order/error', {\n source: 'purchase-order',\n type: 'network',\n error: error.message,\n });\n }\n throw error;\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\n/**\n * Converts camelCase object keys to snake_case recursively\n */\nexport const toSnakeCase = (obj: any): any => {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(toSnakeCase);\n }\n\n const result: any = {};\n for (const [key, value] of Object.entries(obj)) {\n const snakeKey = key.replace(\n /[A-Z]/g,\n (letter) => `_${letter.toLowerCase()}`\n );\n result[snakeKey] = toSnakeCase(value);\n }\n return result;\n};\n\n/**\n * Converts snake_case object keys to camelCase recursively\n */\nexport const toCamelCase = (obj: any): any => {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(toCamelCase);\n }\n\n const result: any = {};\n for (const [key, value] of Object.entries(obj)) {\n const camelKey = key.replace(/_([a-z])/g, (_, letter) =>\n letter.toUpperCase()\n );\n result[camelKey] = toCamelCase(value);\n }\n return result;\n};\n","import { FetchGraphQL } from '@adobe-commerce/fetch-graphql';\n\nexport const {\n setEndpoint,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n setFetchGraphQlHeaders,\n fetchGraphQl,\n getConfig,\n} = new FetchGraphQL().getMethods();\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 PURCHASE_ORDERS_FRAGMENT = /* GraphQL */ `\n fragment PURCHASE_ORDERS_FRAGMENT on PurchaseOrder {\n __typename\n uid\n number\n status\n available_actions\n approval_flow {\n rule_name\n events {\n message\n name\n role\n status\n updated_at\n }\n }\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","/********************************************************************\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/fragments';\n\nexport const GET_PURCHASE_ORDERS = /* GraphQL */ `\n query GET_PURCHASE_ORDERS(\n $filter: PurchaseOrdersFilterInput\n $pageSize: Int\n $currentPage: Int\n ) {\n customer {\n purchase_orders(\n filter: $filter\n pageSize: $pageSize\n currentPage: $currentPage\n ) {\n total_count\n page_info {\n current_page\n page_size\n total_pages\n }\n items {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { GET_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/getPurchaseOrders/graphql/getPurchaseOrders.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { toSnakeCase } from '@/b2b-purchase-order/lib';\n\nexport const getPurchaseOrders = async (\n filter?: any,\n pageSize: number = 20,\n currentPage: number = 1\n): Promise<{\n totalCount: number;\n pageInfo: {\n currentPage: number;\n pageSize: number;\n totalPages: number;\n };\n purchaseOrderItems: PurchaseOrderModel[];\n}> => {\n return fetchGraphQl(GET_PURCHASE_ORDERS, {\n variables: {\n filter: toSnakeCase(filter),\n pageSize,\n currentPage,\n },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n if (!response.data?.customer?.purchase_orders) {\n throw new Error('Failed to get purchase orders');\n }\n\n const purchaseOrdersData = response?.data?.customer?.purchase_orders;\n const totalCount = purchaseOrdersData?.total_count ?? 0;\n const pageInfo = {\n currentPage: purchaseOrdersData?.page_info?.current_page ?? 1,\n pageSize: purchaseOrdersData?.page_info?.page_size ?? 20,\n totalPages: purchaseOrdersData?.page_info?.total_pages ?? 1,\n };\n\n return {\n totalCount,\n pageInfo,\n purchaseOrderItems: (purchaseOrdersData?.items || []).map(\n transformPurchaseOrder\n ),\n };\n })\n .catch(handleNetworkError);\n};\n"],"names":["handleFetchError","errors","errorMessage","e","handleNetworkError","error","isAbortError","isPlaceOrderError","events","toSnakeCase","obj","result","key","value","snakeKey","letter","setEndpoint","setFetchGraphQlHeader","removeFetchGraphQlHeader","setFetchGraphQlHeaders","fetchGraphQl","getConfig","FetchGraphQL","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","response","data","order","REJECT_PURCHASE_ORDERS","rejectPurchaseOrders","GET_PURCHASE_ORDERS","getPurchaseOrders","filter","pageSize","currentPage","purchaseOrdersData","totalCount","pageInfo"],"mappings":"oHAkBO,MAAMA,EAAoBC,GAAuC,CACtE,MAAMC,EAAeD,EAAO,IAAKE,GAAWA,EAAE,OAAO,EAAE,KAAK,GAAG,EAE/D,MAAM,MAAMD,CAAY,CAC1B,ECCaE,EAAsBC,GAAiB,CAClD,MAAMC,EACJD,aAAiB,cAAgBA,EAAM,OAAS,aAE5CE,EAAoBF,EAAM,OAAS,kBAEzC,KAAI,CAACC,GAAgB,CAACC,GACpBC,EAAO,KAAK,uBAAwB,CAClC,OAAQ,iBACR,KAAM,UACN,MAAOH,EAAM,OAAA,CACd,EAEGA,CACR,ECjBaI,EAAeC,GAAkB,CAC5C,GAAIA,GAAQ,MAA6B,OAAOA,GAAQ,SACtD,OAAOA,EAGT,GAAI,MAAM,QAAQA,CAAG,EACnB,OAAOA,EAAI,IAAID,CAAW,EAG5B,MAAME,EAAc,CAAA,EACpB,SAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAG,EAAG,CAC9C,MAAMI,EAAWF,EAAI,QACnB,SACCG,GAAW,IAAIA,EAAO,aAAa,EAAA,EAEtCJ,EAAOG,CAAQ,EAAIL,EAAYI,CAAK,CACtC,CACA,OAAOF,CACT,ECpCa,CACX,YAAAK,EACA,sBAAAC,EACA,yBAAAC,EACA,uBAAAC,EACA,aAAAC,EACA,UAAAC,CACF,EAAI,IAAIC,EAAA,EAAe,WAAA,ECQVC,EAAyC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECEzCC,EAAwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYjDD,CAAwB;AAAA,ECZfE,EACXC,GACuB,6CACvB,MAAO,CACL,UAAUA,GAAA,YAAAA,EAAe,aAAc,GACvC,KAAKA,GAAA,YAAAA,EAAe,MAAO,GAC3B,QAAQA,GAAA,YAAAA,EAAe,SAAU,GACjC,QAAQA,GAAA,YAAAA,EAAe,SAAU,GACjC,kBAAkBA,GAAA,YAAAA,EAAe,oBAAqB,CAAA,EACtD,aAAcA,GAAA,MAAAA,EAAe,cACzB,CACE,WAAUC,EAAAD,GAAA,YAAAA,EAAe,gBAAf,YAAAC,EAA8B,YAAa,GACrD,SACEC,GAAAC,EAAAH,GAAA,YAAAA,EAAe,gBAAf,YAAAG,EAA8B,SAA9B,YAAAD,EAAsC,IAAKE,IAAgB,CACzD,SAASA,GAAA,YAAAA,EAAO,UAAW,GAC3B,MAAMA,GAAA,YAAAA,EAAO,OAAQ,GACrB,MAAMA,GAAA,YAAAA,EAAO,OAAQ,GACrB,QAAQA,GAAA,YAAAA,EAAO,SAAU,GACzB,WAAWA,GAAA,YAAAA,EAAO,aAAc,EAAA,MAC3B,CAAA,CAAC,EAEZ,KACJ,WACEC,EAAAL,GAAA,YAAAA,EAAe,WAAf,YAAAK,EAAyB,IAAKC,GAAA,WAAkB,OAC9C,WAAWA,GAAA,YAAAA,EAAS,aAAc,GAClC,OAAQ,CACN,YAAWL,EAAAK,GAAA,YAAAA,EAAS,SAAT,YAAAL,EAAiB,YAAa,GACzC,WAAUE,EAAAG,GAAA,YAAAA,EAAS,SAAT,YAAAH,EAAiB,WAAY,GACvC,QAAOD,EAAAI,GAAA,YAAAA,EAAS,SAAT,YAAAJ,EAAiB,QAAS,EAAA,EAEnC,MAAMI,GAAA,YAAAA,EAAS,OAAQ,EAAA,MAClB,CAAA,EACT,WAAWN,GAAA,YAAAA,EAAe,aAAc,GACxC,WAAWA,GAAA,YAAAA,EAAe,aAAc,GACxC,UAAW,CACT,YAAWO,EAAAP,GAAA,YAAAA,EAAe,aAAf,YAAAO,EAA2B,YAAa,GACnD,WAAUC,EAAAR,GAAA,YAAAA,EAAe,aAAf,YAAAQ,EAA2B,WAAY,GACjD,QAAOC,EAAAT,GAAA,YAAAA,EAAe,aAAf,YAAAS,EAA2B,QAAS,EAAA,EAE7C,aACEC,EAAAV,GAAA,YAAAA,EAAe,cAAf,YAAAU,EAA4B,IAAKC,IAAc,CAC7C,UAAUA,GAAA,YAAAA,EAAK,WAAY,GAC3B,WAAWA,GAAA,YAAAA,EAAK,aAAc,GAC9B,SAASA,GAAA,YAAAA,EAAK,UAAW,GACzB,KAAKA,GAAA,YAAAA,EAAK,MAAO,EAAA,MACZ,CAAA,EACT,MAAO,CACL,cAAaC,EAAAZ,GAAA,YAAAA,EAAe,QAAf,YAAAY,EAAsB,SAAU,GAC7C,KAAIC,EAAAb,GAAA,YAAAA,EAAe,QAAf,YAAAa,EAAsB,KAAM,EAAA,EAElC,MAAO,CACL,KAAIC,EAAAd,GAAA,YAAAA,EAAe,QAAf,YAAAc,EAAsB,KAAM,GAChC,OAAQ,CACN,WAAY,CACV,QAAOC,GAAAC,GAAAC,EAAAjB,GAAA,YAAAA,EAAe,QAAf,YAAAiB,EAAsB,SAAtB,YAAAD,EAA8B,cAA9B,YAAAD,EAA2C,QAAS,EAC3D,WAAUG,GAAAC,GAAAC,EAAApB,GAAA,YAAAA,EAAe,QAAf,YAAAoB,EAAsB,SAAtB,YAAAD,EAA8B,cAA9B,YAAAD,EAA2C,WAAY,EAAA,CACnE,EAEF,QAAS,CACP,QACEG,GAAAC,GAAAC,EAAAvB,GAAA,YAAAA,EAAe,QAAf,YAAAuB,EAAsB,UAAtB,YAAAD,EAA+B,QAA/B,YAAAD,EAAsC,IAAKG,IAAe,CACxD,KAAKA,GAAA,YAAAA,EAAM,MAAO,GAClB,UAAUA,GAAA,YAAAA,EAAM,WAAY,CAAA,MACvB,CAAA,CAAC,CACZ,CACF,CAEJ,EC/DaC,EAAwB,MACnCC,GAII,CACJ,MAAMC,EAAW,MAAM,QAAQD,CAAI,EAAIA,EAAO,CAACA,CAAI,EAEnD,GAAI,CAACC,GAAYA,EAAS,SAAW,EACnC,MAAM,IAAI,MAAM,oCAAoC,EAGtD,GAAIA,EAAS,KAAMC,GAAQ,CAACA,GAAOA,EAAI,SAAW,EAAE,EAClD,MAAM,IAAI,MAAM,uCAAuC,EAOzD,OAAOlC,EAAaI,EAAyB,CAC3C,UAAW,CAAE,MALD,CACZ,oBAAqB6B,CAAA,CAIR,CAAM,CACpB,EACE,KAAME,GAAkB,YACnB5B,EAAA4B,EAAS,SAAT,MAAA5B,EAAiB,QACnB3B,EAAiBuD,EAAS,MAAM,EAGlC,MAAMC,GAAO3B,EAAA0B,EAAS,OAAT,YAAA1B,EAAe,sBAC5B,GAAI,CAAC2B,EACH,MAAM,IAAI,MAAM,mCAAmC,EAGrD,MAAO,CACL,SAASA,GAAA,YAAAA,EAAM,SAAU,CAAA,GAAI,IAAKnD,IAAgB,CAChD,SAASA,GAAA,YAAAA,EAAO,UAAW,GAC3B,MAAMA,GAAA,YAAAA,EAAO,OAAQ,EAAA,EACrB,EACF,iBACEuB,EAAA4B,GAAA,YAAAA,EAAM,kBAAN,YAAA5B,EAAuB,IAAK6B,GAC1BhC,EAAuBgC,CAAK,KACzB,CAAA,CAAC,CAEZ,CAAC,EACA,MAAMrD,CAAkB,CAC7B,ECjDasD,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYhDnC,CAAwB;AAAA,ECRfoC,EAAuB,MAClCP,GAII,CACJ,MAAMC,EAAW,MAAM,QAAQD,CAAI,EAAIA,EAAO,CAACA,CAAI,EAEnD,GAAI,CAACC,GAAYA,EAAS,SAAW,EACnC,MAAM,IAAI,MAAM,oCAAoC,EAGtD,GAAIA,EAAS,KAAMC,GAAQ,CAACA,GAAOA,EAAI,SAAW,EAAE,EAClD,MAAM,IAAI,MAAM,uCAAuC,EAOzD,OAAOlC,EAAasC,EAAwB,CAC1C,UAAW,CAAE,MALD,CACZ,oBAAqBL,CAAA,CAIR,CAAM,CACpB,EACE,KAAME,GAAkB,UACnB5B,EAAA4B,EAAS,SAAT,MAAA5B,EAAiB,QACnB3B,EAAiBuD,EAAS,MAAM,EAGlC,MAAMC,GAAO3B,EAAA0B,EAAS,OAAT,YAAA1B,EAAe,qBAE5B,MAAO,CACL,SAAS2B,GAAA,YAAAA,EAAM,SAAU,CAAA,GAAI,IAAKnD,IAAgB,CAChD,SAASA,GAAA,YAAAA,EAAO,UAAW,GAC3B,MAAMA,GAAA,YAAAA,EAAO,OAAQ,EAAA,EACrB,EACF,iBAAiBmD,GAAA,YAAAA,EAAM,kBAAmB,CAAA,GAAI,IAC5C/B,CAAA,CACF,CAEJ,CAAC,EACA,MAAMrB,CAAkB,CAC7B,EC7CawD,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAwB7CrC,CAAwB;AAAA,EClBfsC,EAAoB,MAC/BC,EACAC,EAAmB,GACnBC,EAAsB,IAUf5C,EAAawC,EAAqB,CACvC,UAAW,CACT,OAAQnD,EAAYqD,CAAM,EAC1B,SAAAC,EACA,YAAAC,CAAA,CACF,CACD,EACE,KAAMT,GAAkB,qBAKvB,IAJI5B,EAAA4B,EAAS,SAAT,MAAA5B,EAAiB,QACnB3B,EAAiBuD,EAAS,MAAM,EAG9B,GAAC3B,GAAAC,EAAA0B,EAAS,OAAT,YAAA1B,EAAe,WAAf,MAAAD,EAAyB,iBAC5B,MAAM,IAAI,MAAM,+BAA+B,EAGjD,MAAMqC,GAAqBhC,GAAAF,EAAAwB,GAAA,YAAAA,EAAU,OAAV,YAAAxB,EAAgB,WAAhB,YAAAE,EAA0B,gBAC/CiC,GAAaD,GAAA,YAAAA,EAAoB,cAAe,EAChDE,EAAW,CACf,cAAajC,EAAA+B,GAAA,YAAAA,EAAoB,YAApB,YAAA/B,EAA+B,eAAgB,EAC5D,WAAUC,EAAA8B,GAAA,YAAAA,EAAoB,YAApB,YAAA9B,EAA+B,YAAa,GACtD,aAAYC,EAAA6B,GAAA,YAAAA,EAAoB,YAApB,YAAA7B,EAA+B,cAAe,CAAA,EAG5D,MAAO,CACL,WAAA8B,EACA,SAAAC,EACA,qBAAqBF,GAAA,YAAAA,EAAoB,QAAS,CAAA,GAAI,IACpDxC,CAAA,CACF,CAEJ,CAAC,EACA,MAAMrB,CAAkB"}
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{jsxs as j,Fragment as oe,jsx as o}from"@dropins/tools/preact-jsx-runtime.js";import{InLineAlert as ie,Table as le,Pagination as de,Picker as ue,Card as pe,Header as he,Tag as ge}from"@dropins/tools/components.js";import{classes as X}from"@dropins/tools/lib.js";import{events as Z}from"@dropins/tools/event-bus.js";import{useText as me,Text as z}from"@dropins/tools/i18n.js";import{useState as C,useEffect as q,useCallback as R,useMemo as I}from"@dropins/tools/preact-hooks.js";import{g as Pe,r as fe,a as Oe}from"./getPurchaseOrders.js";const be=s=>{try{return new URL(s,window.location.origin).origin===window.location.origin}catch{return s.startsWith("/")||s.startsWith("./")||s.startsWith("../")}},ee=(s,c="en-US")=>{try{const t=new Date(s);return isNaN(t.getTime())?s:t.toLocaleString(c,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!0})}catch{return s}},_e=(s,c,t)=>{if(t<=0)return{from:0,to:0,total:0};const d=Math.max(1,Math.ceil(t/c)),h=Math.min(Math.max(s,1),d),n=(h-1)*c+1,l=Math.min(h*c,t);return{from:n,to:l,total:t}},Se=({pageSizeConfig:s,totalCount:c=0,columns:t=[],rows:d=[],paginationConfig:h,alertMessageConfig:n={heading:"",description:"",type:"success"},loading:l=!1,className:P="",variant:E="secondary",skeletonRowCount:u=10,emptyTitle:m,header:_,footer:p,withWrapper:w})=>{var S,M;const v=me({title:"PurchaseOrders.purchaseOrdersTable.noPurchaseOrders.default"}),{heading:L,description:U,type:y}=n,{currentPage:V,totalPages:k,handlePageChange:A}=h,{pageSizeOptionsList:g,onChange:N}=s,{from:F,to:$,total:B}=_e(V,+((S=g.find(T=>T.selected))==null?void 0:S.value)||0,c),f=j(oe,{children:[L||U?o(ie,{heading:L,description:U,type:y}):null,_?o("div",{className:"purchase-orders-table__header",children:_}):null,o(le,{className:"purchase-orders-table__table-wrapper",mobileLayout:"stacked",columns:t,rowData:d,loading:l,skeletonRowCount:+u}),!l&&d.length===0&&o("div",{className:"purchase-orders-table__empty-state",role:"status","aria-live":"polite",children:o("p",{children:m||v.title})}),c>0?j("div",{className:"purchase-orders-table__pagination-wrapper",children:[c?o("div",{className:"purchase-orders-table__pagination-counter",children:o(z,{id:"PurchaseOrders.purchaseOrdersTable.pagination.status",fields:{from:F,to:$,total:B}})}):null,k>1&&o(de,{className:"purchase-orders-table__pagination",currentPage:V,totalPages:k,onChange:A}),c>0&&g.length?j("div",{className:"purchase-orders-table__pagination-page-size",children:[o(z,{id:"PurchaseOrders.purchaseOrdersTable.pagination.pageSizeLabel.start"}),o(ue,{disabled:l,handleSelect:N,options:g,value:((M=g.find(T=>T.selected))==null?void 0:M.value)||""}),o(z,{id:"PurchaseOrders.purchaseOrdersTable.pagination.pageSizeLabel.end"})]}):null]}):null,p?o("div",{className:"purchase-orders-table__footer",children:p}):null]});return w?o(pe,{variant:E,"data-testid":"addressCard",className:X(["b2b-purchase-order-purchase-orders-table",P]),children:f}):o("div",{"data-testid":"addressCard",className:X(["b2b-purchase-order-purchase-orders-table",P]),children:f})},Me=({headerText:s,tagNumber:c})=>j("div",{className:"purchase-orders-header",children:[o(he,{title:s,divider:!1,className:"purchase-orders-header__header","data-testid":"purchase-orders-header"}),c?o(ge,{label:c}):null]});var G=(s=>(s.CUSTOMER_PURCHASE_ORDERS="customerPurchaseOrders",s.COMPANY_PURCHASE_ORDERS="companyPurchaseOrders",s.CUSTOMER_APPROVAL_PURCHASE_ORDERS="customerApprovalPurchaseOrders",s))(G||{});const Te=[{text:"10",value:"10",selected:!1},{text:"20",value:"20",selected:!0},{text:"30",value:"30",selected:!1},{text:"50",value:"50",selected:!1}],re=[{key:"action",label:"Action"},{key:"poNumber",label:"PO #"},{key:"orderNumber",label:"Order #"},{key:"status",label:"Status"},{key:"createdBy",label:"Created By"},{key:"total",label:"Total"},{key:"createdDate",label:"Created"},{key:"updatedDate",label:"Updated"}],ve=[{key:"checkboxView",label:""},...re],De=({view:s,initialPageSize:c,routePurchaseOrderDetails:t,setColumns:d,setRowsData:h,t:n,permissions:l,loadingPermissions:P})=>{const E=s===G.COMPANY_PURCHASE_ORDERS,u=s===G.CUSTOMER_APPROVAL_PURCHASE_ORDERS,[m,_]=C([]),[p,w]=C([]),[v,L]=C(c),[U,y]=C(!0),[V,k]=C({currentPage:1,totalPages:1,totalCount:0}),[A,g]=C({heading:"",description:"",type:"success"});q(()=>{if(A.heading||A.description){const r=setTimeout(()=>{g({heading:"",description:"",type:"success"})},7e3);return()=>clearTimeout(r)}},[A.heading,A.description]);const{currentPage:N,totalPages:F,totalCount:$}=V,B=R(r=>{const a=r.target.value;L(e=>e.map(i=>({...i,selected:i.value===a})))},[]),f=(l==null?void 0:l.isAdmin)??!1,S=I(()=>{let r={};return E&&(r={companyPurchaseOrders:!0}),u&&(r={requireMyApproval:!0}),r},[E,u]);q(()=>{var a;if(P)return;y(!0);const r=(a=v==null?void 0:v.find(e=>e.selected))==null?void 0:a.value;Pe(S,parseInt(r||"20",10),N).then(e=>{var D,x;const i=(e==null?void 0:e.purchaseOrderItems)??[],O=(D=e==null?void 0:e.pageInfo)==null?void 0:D.currentPage,b=(x=e==null?void 0:e.pageInfo)==null?void 0:x.totalPages,H=e==null?void 0:e.totalCount;k({currentPage:O,totalPages:b,totalCount:H}),w(i)}).catch(e=>{console.error("Failed to fetch purchase orders:",e)}).finally(()=>{y(!1)})},[N,v,S,P]);const M=R(r=>{const a=t==null?void 0:t(r);return be(a??"")?a:"#"},[t]),T=R(r=>{k(a=>({...a,currentPage:r}))},[]),Q=R(r=>{const a=r.target.value,e=r.target.checked;_(i=>e?[...i,a]:i.filter(O=>O!==a))},[]),W=R(r=>{const a=r.target.checked;_(()=>a?p.filter(e=>["PENDING","APPROVAL_REQUIRED"].includes(e.status)).map(e=>e.uid??""):[])},[p]),se=R(()=>{fe(m).then(r=>{const a=(r==null?void 0:r.purchaseOrders)??[];w(e=>e.map(i=>a.find(b=>b.uid===i.uid)??i)),g({heading:n.alertHeaderReject,description:n.alertDescriptionReject,type:"success"}),_([])}).catch(r=>{g({heading:n.alertHeaderError,description:n.alertDescriptionError,type:"error"}),console.error(r)}).finally(()=>{y(!1)})},[m,n]),ae=R(()=>{y(!0),Oe(m).then(r=>{const a=(r==null?void 0:r.purchaseOrders)??[];w(e=>e.map(i=>a.find(b=>b.uid===i.uid)??i)),g({heading:n.alertHeaderApprove,description:n.alertDescriptionApprove,type:"success"}),_([])}).catch(r=>{g({heading:n.alertHeaderError,description:n.alertDescriptionError,type:"error"}),console.error(r)}).finally(()=>{y(!1)})},[m,n]),te=I(()=>{const r=E||u?ve:re;return(d==null?void 0:d(r))??r.map(a=>a.key==="checkboxView"&&(f||u)?{key:a.key,label:o("input",{type:"checkbox",name:"selectAll",disabled:p.every(e=>!["PENDING","APPROVAL_REQUIRED"].includes(e.status)),onChange:W}),ariaLabel:n.selectAllAriaLabel}:{...a,label:n[a.key]||a.label})},[n,f,E,u,d,p,W]),ne=I(()=>{const r=p.map(e=>{var O,b,H,D,x,Y,J,K;const i=e.number??"";return{...f||u?{checkboxView:o("input",{type:"checkbox",name:i,value:e.uid,checked:m.includes(e.uid),onChange:Q,disabled:!["PENDING","APPROVAL_REQUIRED"].includes(e.status)})}:{},poNumber:i,orderNumber:e.order.orderNumber,createdDate:ee(e.createdAt),updatedDate:ee(e.updatedAt),createdBy:`${((O=e.createdBy)==null?void 0:O.firstname)??""} ${((b=e.createdBy)==null?void 0:b.lastname)??""}`.trim(),status:o(z,{id:`PurchaseOrders.purchaseOrdersTable.statusOrder.${e.status.toLowerCase()}`}),total:`${(x=(D=(H=e==null?void 0:e.quote)==null?void 0:H.prices)==null?void 0:D.grandTotal)==null?void 0:x.value} ${(K=(J=(Y=e==null?void 0:e.quote)==null?void 0:Y.prices)==null?void 0:J.grandTotal)==null?void 0:K.currency}`,action:o("a",{href:M(i),"aria-label":`View purchase order ${i}`,children:n.actionView})}});let a=r;if(h){const e=h(r);e!==void 0&&Array.isArray(e)&&(a=e)}return a},[p,h,f,u,m,Q,M,n.actionView]),ce=I(()=>u?p.filter(r=>["PENDING","APPROVAL_REQUIRED"].includes(r.status)).length:0,[u,p]);return{totalCount:$,loading:U,tableConfig:{columns:te,rows:ne},paginationConfig:{currentPage:N,totalPages:F,handlePageChange:T},pageSizeConfig:{pageSizeOptionsList:v,onChange:B},selectedOrderIds:m,handleRejectSelected:se,handleApproveSelected:ae,isAdmin:f,isRequireApprovalPOsView:u,alertMessageConfig:A,pendingApprovalCount:ce}},ye=s=>{if(!s)return{isAdmin:!1,purchaseOrderEnabled:!1,role:{id:"",name:""},permissions:{purchaseOrderAll:!1,viewPurchaseOrders:!1,viewPurchaseOrdersForSubordinates:!1,viewPurchaseOrdersForCompany:!1,autoApprovePurchaseOrder:!1,superApprovePurchaseOrder:!1,viewApprovalRules:!1,manageApprovalRules:!1}};const c=s.admin===!0,t=l=>{const P=s[l];return P===!1?!1:P===!0?!0:c},d={purchaseOrderAll:t("Magento_PurchaseOrder::all"),viewPurchaseOrders:t("Magento_PurchaseOrder::view_purchase_orders"),viewPurchaseOrdersForSubordinates:t("Magento_PurchaseOrder::view_purchase_orders_for_subordinates"),viewPurchaseOrdersForCompany:t("Magento_PurchaseOrder::view_purchase_orders_for_company"),autoApprovePurchaseOrder:t("Magento_PurchaseOrder::autoapprove_purchase_order"),superApprovePurchaseOrder:t("Magento_PurchaseOrderRule::super_approve_purchase_order"),viewApprovalRules:t("Magento_PurchaseOrderRule::view_approval_rules"),manageApprovalRules:t("Magento_PurchaseOrderRule::manage_approval_rules")},n=Object.values(s).some(l=>l===!1)?!1:Object.values(d).some(l=>l===!0);return{isAdmin:c,purchaseOrderEnabled:n,role:{id:"",name:c?"Company Administrator":""},permissions:d}},xe=()=>{const s=Z.lastPayload("auth/permissions"),[c,t]=C(s);q(()=>{const n=Z.on("auth/permissions",l=>{t(l)},{eager:!0});return()=>{n==null||n.off()}},[]);const d=!c;return{permissions:I(()=>ye(c),[c]),loadingPermissions:d}};export{G as E,Me as P,De as a,Se as b,Te as d,xe as u};
4
+ //# sourceMappingURL=useCustomerRolePermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCustomerRolePermissions.js","sources":["/@dropins/storefront-purchase-order/src/lib/isValidUrl.ts","/@dropins/storefront-purchase-order/src/lib/formatDate.ts","/@dropins/storefront-purchase-order/src/lib/getRange.ts","/@dropins/storefront-purchase-order/src/components/PurchaseOrdersTable/PurchaseOrdersTable.tsx","/@dropins/storefront-purchase-order/src/components/PurchaseOrdersHeader/PurchaseOrdersHeader.tsx","/@dropins/storefront-purchase-order/src/types/api/api.enums.types.ts","/@dropins/storefront-purchase-order/src/configs/pageSize.config.ts","/@dropins/storefront-purchase-order/src/configs/customerPurchaseOrders.config.ts","/@dropins/storefront-purchase-order/src/configs/companyPurchaseOrders.config.ts","/@dropins/storefront-purchase-order/src/hooks/usePurchaseOrders.tsx","/@dropins/storefront-purchase-order/src/data/transforms/transform-customer-role-permissions.ts","/@dropins/storefront-purchase-order/src/hooks/useCustomerRolePermissions.tsx"],"sourcesContent":["export const isValidUrl = (url: string): boolean => {\n try {\n const parsed = new URL(url, window.location.origin);\n // Only allow relative paths or same-origin URLs\n return parsed.origin === window.location.origin;\n } catch {\n // If it's not a valid URL, check if it's a relative path\n return url.startsWith('/') || url.startsWith('./') || url.startsWith('../');\n }\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\n/**\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 const getRange = (\n currentPage: number,\n pageSize: number,\n total: number\n) => {\n if (total <= 0) return { from: 0, to: 0, total: 0 };\n const maxPage = Math.max(1, Math.ceil(total / pageSize));\n const p = Math.min(Math.max(currentPage, 1), maxPage);\n const from = (p - 1) * pageSize + 1;\n const to = Math.min(p * pageSize, total);\n\n return { from, to, total };\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 {\n Table,\n Pagination,\n Card,\n Picker,\n InLineAlert,\n} from '@adobe-commerce/elsie/components';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { PurchaseOrdersTableProps } from '@/b2b-purchase-order/types/components';\nimport { Text, useText } from '@adobe-commerce/elsie/i18n';\nimport { getRange } from '@/b2b-purchase-order/lib';\nimport '@/b2b-purchase-order/components/PurchaseOrdersTable/PurchaseOrdersTable.css';\n\nexport const PurchaseOrdersTable: FunctionComponent<\n PurchaseOrdersTableProps\n> = ({\n pageSizeConfig,\n totalCount = 0,\n columns = [],\n rows = [],\n paginationConfig,\n alertMessageConfig = {\n heading: '',\n description: '',\n type: 'success',\n },\n loading = false,\n className = '',\n variant = 'secondary',\n skeletonRowCount = 10,\n emptyTitle,\n header,\n footer,\n withWrapper,\n}) => {\n const t = useText({\n title: 'PurchaseOrders.purchaseOrdersTable.noPurchaseOrders.default',\n });\n\n const {\n heading: alertMessageHeading,\n description: alertMessageDescription,\n type: alertMessageType,\n } = alertMessageConfig;\n\n const { currentPage, totalPages, handlePageChange } = paginationConfig;\n const { pageSizeOptionsList, onChange } = pageSizeConfig;\n const { from, to, total } = getRange(\n currentPage,\n +pageSizeOptionsList.find((option) => option.selected)?.value! || 0,\n totalCount\n );\n\n const content = (\n <>\n {alertMessageHeading || alertMessageDescription ? (\n <InLineAlert\n heading={alertMessageHeading}\n description={alertMessageDescription}\n type={alertMessageType}\n />\n ) : null}\n\n {header ? (\n <div className=\"purchase-orders-table__header\">{header}</div>\n ) : null}\n\n <Table\n className=\"purchase-orders-table__table-wrapper\"\n mobileLayout=\"stacked\"\n columns={columns}\n rowData={rows}\n loading={loading}\n skeletonRowCount={+skeletonRowCount}\n />\n {!loading && rows.length === 0 && (\n <div\n className=\"purchase-orders-table__empty-state\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <p>{emptyTitle || t.title}</p>\n </div>\n )}\n\n {totalCount > 0 ? (\n <div className=\"purchase-orders-table__pagination-wrapper\">\n {totalCount ? (\n <div className=\"purchase-orders-table__pagination-counter\">\n <Text\n id=\"PurchaseOrders.purchaseOrdersTable.pagination.status\"\n fields={{\n from,\n to,\n total,\n }}\n />\n </div>\n ) : null}\n {totalPages > 1 && (\n <Pagination\n className=\"purchase-orders-table__pagination\"\n currentPage={currentPage}\n totalPages={totalPages}\n onChange={handlePageChange}\n />\n )}\n {totalCount > 0 && pageSizeOptionsList.length ? (\n <div className=\"purchase-orders-table__pagination-page-size\">\n <Text id=\"PurchaseOrders.purchaseOrdersTable.pagination.pageSizeLabel.start\" />\n <Picker\n disabled={loading}\n handleSelect={onChange}\n options={pageSizeOptionsList}\n value={\n pageSizeOptionsList.find((option) => option.selected)\n ?.value || ''\n }\n />\n <Text id=\"PurchaseOrders.purchaseOrdersTable.pagination.pageSizeLabel.end\" />\n </div>\n ) : null}\n </div>\n ) : null}\n\n {footer ? (\n <div className=\"purchase-orders-table__footer\">{footer}</div>\n ) : null}\n </>\n );\n\n if (!withWrapper) {\n return (\n <div\n data-testid=\"addressCard\"\n className={classes([\n 'b2b-purchase-order-purchase-orders-table',\n className,\n ])}\n >\n {content}\n </div>\n );\n }\n\n return (\n <Card\n variant={variant}\n data-testid=\"addressCard\"\n className={classes([\n 'b2b-purchase-order-purchase-orders-table',\n className,\n ])}\n >\n {content}\n </Card>\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 { Header, Tag } from '@adobe-commerce/elsie/components';\nimport { FunctionComponent } from 'preact';\nimport '@/b2b-purchase-order/components/PurchaseOrdersHeader/PurchaseOrdersHeader.css';\n\nexport const PurchaseOrdersHeader: FunctionComponent<{\n headerText: string;\n tagNumber?: string;\n}> = ({ headerText, tagNumber }) => {\n return (\n <div className=\"purchase-orders-header\">\n <Header\n title={headerText}\n divider={false}\n className={'purchase-orders-header__header'}\n data-testid=\"purchase-orders-header\"\n />\n {tagNumber ? <Tag label={tagNumber} /> : null}\n </div>\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\nexport const defaultPageSizeConfig = [\n {\n text: '10',\n value: '10',\n selected: false,\n },\n {\n text: '20',\n value: '20',\n selected: true,\n },\n {\n text: '30',\n value: '30',\n selected: false,\n },\n {\n text: '50',\n value: '50',\n selected: false,\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 { Column } from '@/b2b-purchase-order/types/components';\n\nexport const defaultColumns: Column[] = [\n { key: 'action', label: 'Action' },\n { key: 'poNumber', label: 'PO #' },\n { key: 'orderNumber', label: 'Order #' },\n { key: 'status', label: 'Status' },\n {\n key: 'createdBy',\n label: 'Created By',\n },\n { key: 'total', label: 'Total' },\n { key: 'createdDate', label: 'Created' },\n { key: 'updatedDate', label: 'Updated' },\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 { Column } from '@/b2b-purchase-order/types/components';\nimport { defaultColumns } from '@/b2b-purchase-order/configs/customerPurchaseOrders.config';\n\nexport const defaultCompanyColumns: Column[] = [\n {\n key: 'checkboxView',\n label: '',\n },\n ...defaultColumns,\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\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\n getPurchaseOrders(filterConfig, parseInt(pageSize || '20', 10), 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 const pendingApprovalCount = useMemo(() => {\n if (!isRequireApprovalPOsView) {\n return 0;\n }\n return purchaseOrders.filter((po) =>\n ['PENDING', 'APPROVAL_REQUIRED'].includes(po.status)\n ).length;\n }, [isRequireApprovalPOsView, purchaseOrders]);\n\n return {\n totalCount,\n loading,\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 selectedOrderIds,\n handleRejectSelected,\n handleApproveSelected,\n isAdmin,\n isRequireApprovalPOsView,\n alertMessageConfig,\n pendingApprovalCount,\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 { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models/customer-role-permissions-model';\n\ntype PermissionsPayload = {\n admin?: boolean;\n [key: string]: boolean | undefined;\n};\n\n/**\n * Transforms flat permissions object from auth/permissions event into CustomerRolePermissionsModel\n *\n * Permission Logic:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin privileges - indicates PO feature is disabled)\n * - Default: Admins get access, regular users don't\n *\n * @param permissionsData - Flat object with permission keys and admin flag\n * @returns CustomerRolePermissionsModel\n */\nexport const transformPermissions = (\n permissionsData: PermissionsPayload | null | undefined\n): CustomerRolePermissionsModel => {\n // Fallback for edge cases\n if (!permissionsData) {\n return {\n isAdmin: false,\n purchaseOrderEnabled: false,\n role: { id: '', name: '' },\n permissions: {\n purchaseOrderAll: false,\n viewPurchaseOrders: false,\n viewPurchaseOrdersForSubordinates: false,\n viewPurchaseOrdersForCompany: false,\n autoApprovePurchaseOrder: false,\n superApprovePurchaseOrder: false,\n viewApprovalRules: false,\n manageApprovalRules: false,\n },\n };\n }\n\n const isAdmin = permissionsData.admin === true;\n\n /**\n * Check if permission is granted\n * - false: Overrides admin (PO disabled)\n * - true: Permission granted\n * - Default: Use admin status\n */\n const hasPermission = (key: string): boolean => {\n const permissionValue = permissionsData[key];\n\n if (permissionValue === false) {\n return false;\n }\n\n if (permissionValue === true) {\n return true;\n }\n\n return isAdmin;\n };\n\n const permissions = {\n purchaseOrderAll: hasPermission('Magento_PurchaseOrder::all'),\n viewPurchaseOrders: hasPermission(\n 'Magento_PurchaseOrder::view_purchase_orders'\n ),\n viewPurchaseOrdersForSubordinates: hasPermission(\n 'Magento_PurchaseOrder::view_purchase_orders_for_subordinates'\n ),\n viewPurchaseOrdersForCompany: hasPermission(\n 'Magento_PurchaseOrder::view_purchase_orders_for_company'\n ),\n autoApprovePurchaseOrder: hasPermission(\n 'Magento_PurchaseOrder::autoapprove_purchase_order'\n ),\n superApprovePurchaseOrder: hasPermission(\n 'Magento_PurchaseOrderRule::super_approve_purchase_order'\n ),\n viewApprovalRules: hasPermission(\n 'Magento_PurchaseOrderRule::view_approval_rules'\n ),\n manageApprovalRules: hasPermission(\n 'Magento_PurchaseOrderRule::manage_approval_rules'\n ),\n };\n\n // Purchase orders are disabled if ANY permission in the payload is explicitly set to false\n // Otherwise enabled if user has at least one permission\n const hasExplicitlyDisabledPermission = Object.values(permissionsData).some(\n (value) => value === false\n );\n const purchaseOrderEnabled = hasExplicitlyDisabledPermission\n ? false\n : Object.values(permissions).some((permission) => permission === true);\n\n return {\n isAdmin,\n purchaseOrderEnabled,\n role: {\n id: '',\n name: isAdmin ? 'Company Administrator' : '',\n },\n permissions,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useMemo, useState, useEffect } from 'preact/hooks';\nimport { events } from '@adobe-commerce/event-bus';\nimport { transformPermissions } from '@/b2b-purchase-order/data/transforms/transform-customer-role-permissions';\nimport { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models';\n\n/**\n * Hook to consume customer role permissions from the auth/permissions event\n *\n * Initializes with last payload and subscribes to real-time updates.\n * Transforms permissions data where:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin - PO feature disabled)\n * - Default: Admins get access, regular users don't\n *\n * @returns {permissions: CustomerRolePermissionsModel, loadingPermissions: boolean}\n */\nexport const useCustomerRolePermissions = (): {\n permissions: CustomerRolePermissionsModel;\n loadingPermissions: boolean;\n} => {\n // Initialize with the last payload from the auth/permissions event\n const initialPermissionsData = events.lastPayload('auth/permissions');\n\n // State to hold permissions data, updated when event is triggered\n const [permissionsData, setPermissionsData] = useState(\n initialPermissionsData\n );\n\n // Subscribe to auth/permissions event for real-time updates\n useEffect(() => {\n const subscription = events.on(\n 'auth/permissions',\n (payload) => {\n setPermissionsData(payload);\n },\n { eager: true }\n );\n\n // Cleanup subscription on unmount\n return () => {\n subscription?.off();\n };\n }, []);\n\n // We're loading if we don't have permissions data from the event yet\n const loadingPermissions = !permissionsData;\n\n // Transform and memoize the permissions data\n const permissions = useMemo(() => {\n return transformPermissions(permissionsData);\n }, [permissionsData]);\n\n return {\n permissions,\n loadingPermissions,\n };\n};\n"],"names":["isValidUrl","url","formatDate","dateString","locale","date","getRange","currentPage","pageSize","total","maxPage","p","from","to","PurchaseOrdersTable","pageSizeConfig","totalCount","columns","rows","paginationConfig","alertMessageConfig","loading","className","variant","skeletonRowCount","emptyTitle","header","footer","withWrapper","t","useText","alertMessageHeading","alertMessageDescription","alertMessageType","totalPages","handlePageChange","pageSizeOptionsList","onChange","_a","option","content","jsxs","Fragment","jsx","InLineAlert","Table","Text","Pagination","Picker","_b","Card","classes","PurchaseOrdersHeader","headerText","tagNumber","Header","Tag","EnumPurchaseOrdersView","defaultPageSizeConfig","defaultColumns","defaultCompanyColumns","usePurchaseOrders","view","initialPageSize","routePurchaseOrderDetails","setColumns","setRowsData","permissions","loadingPermissions","isCompanyPOsView","isRequireApprovalPOsView","selectedOrderIds","setSelectedOrderIds","useState","purchaseOrders","setPurchaseOrders","setPageSizeOptionsList","setLoading","pagination","setPagination","setAlertMessageConfig","useEffect","timer","handleChangePageSize","useCallback","event","size","prev","isAdmin","filterConfig","useMemo","config","getPurchaseOrders","data","responsePage","responseTotalPages","responseTotalCount","error","handlePurchaseOrderDetailsRedirect","poNumber","page","handleSelectedOrderId","uid","isChecked","prevSelected","po","handleSelectedOrderIds","handleRejectSelected","rejectPurchaseOrders","updated","err","handleApproveSelected","approvePurchaseOrders","currentColumns","col","formattedPurchaseOrders","_e","_d","_c","_h","_g","_f","finalRows","customRows","pendingApprovalCount","transformPermissions","permissionsData","hasPermission","key","permissionValue","purchaseOrderEnabled","value","permission","useCustomerRolePermissions","initialPermissionsData","events","setPermissionsData","subscription","payload"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { FunctionComponent } from 'preact';
2
+
3
+ export declare const PurchaseOrdersHeader: FunctionComponent<{
4
+ headerText: string;
5
+ tagNumber?: string;
6
+ }>;
7
+ //# sourceMappingURL=PurchaseOrdersHeader.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 './PurchaseOrdersHeader';
18
+ export { PurchaseOrdersHeader as default } from './PurchaseOrdersHeader';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { FunctionComponent } from 'preact';
2
+ import { PurchaseOrdersTableProps } from '../../types/components';
3
+
4
+ export declare const PurchaseOrdersTable: FunctionComponent<PurchaseOrdersTableProps>;
5
+ //# sourceMappingURL=PurchaseOrdersTable.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 './PurchaseOrdersTable';
18
+ export { PurchaseOrdersTable as default } from './PurchaseOrdersTable';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { FunctionComponent } from 'preact';
2
+ import { PurchaseOrdersTableActionsProps } from '../../types/components';
3
+
4
+ export declare const PurchaseOrdersTableActions: FunctionComponent<PurchaseOrdersTableActionsProps>;
5
+ //# sourceMappingURL=PurchaseOrdersTableActions.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 './PurchaseOrdersTableActions';
18
+ export { PurchaseOrdersTableActions as default } from './PurchaseOrdersTableActions';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,20 @@
1
- export {};
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 './PurchaseOrdersTable';
18
+ export * from './PurchaseOrdersHeader';
19
+ export * from './PurchaseOrdersTableActions';
2
20
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { Column } from '../types/components';
2
+
3
+ export declare const defaultCompanyColumns: Column[];
4
+ //# sourceMappingURL=companyPurchaseOrders.config.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { Column } from '../types/components';
2
+
3
+ export declare const defaultColumns: Column[];
4
+ //# sourceMappingURL=customerPurchaseOrders.config.d.ts.map
@@ -0,0 +1,21 @@
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 './pageSize.config';
18
+ export * from './customerPurchaseOrders.config';
19
+ export * from './purchaseOrderApprovalRules.config';
20
+ export * from './companyPurchaseOrders.config';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,22 @@
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 declare const defaultPageSizeConfig: {
18
+ text: string;
19
+ value: string;
20
+ selected: boolean;
21
+ }[];
22
+ //# sourceMappingURL=pageSize.config.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { Column } from '../types/components';
2
+
3
+ export declare const defaultApprovalRulesColumns: Column[];
4
+ //# sourceMappingURL=purchaseOrderApprovalRules.config.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { Container } from '@dropins/tools/types/elsie/src/lib';
2
+ import { CompanyPurchaseOrdersProps } from '../../types/containers';
3
+
4
+ export declare const CompanyPurchaseOrders: Container<CompanyPurchaseOrdersProps>;
5
+ //# sourceMappingURL=CompanyPurchaseOrders.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 './CompanyPurchaseOrders';
18
+ export { CompanyPurchaseOrders as default } from './CompanyPurchaseOrders';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ export * from './CompanyPurchaseOrders/index'
2
+ import _default from './CompanyPurchaseOrders/index'
3
+ export default _default
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
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{E as w,u as N,a as S,P as D,b as R,d as E}from"../chunks/useCustomerRolePermissions.js";import{P as j}from"../chunks/PurchaseOrdersTableActions.js";import{useText as v}from"@dropins/tools/i18n.js";import"@dropins/tools/components.js";import"@dropins/tools/event-bus.js";import"@dropins/tools/preact-hooks.js";import"../chunks/getPurchaseOrders.js";import"@dropins/tools/fetch-graphql.js";const k=({initialPageSize:t=E,routePurchaseOrderDetails:o,setColumns:u,setRowsData:d,className:c="",withHeader:l=!0,withWrapper:n=!0,skeletonRowCount:i=5})=>{const h=w.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:m,loadingPermissions:p}=N(),{totalCount:O,loading:s,tableConfig:a,paginationConfig:P,pageSizeConfig:b,selectedOrderIds:C,handleRejectSelected:T,handleApproveSelected:f,isAdmin:g,alertMessageConfig:A}=S({view:h,routePurchaseOrderDetails:o,setColumns:u,setRowsData:d,initialPageSize:t,permissions:m,loadingPermissions:p,t:e});return y("div",{className:x(["company-purchase-orders",c]),"data-testid":"company-purchase-orders-container",children:[l?r(D,{headerText:e.headerText}):null,r(R,{header:g?r(j,{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{k as CompanyPurchaseOrders,k as default};
4
+ //# sourceMappingURL=CompanyPurchaseOrders.js.map
@@ -0,0 +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":"ggBAgCO,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"}
@@ -0,0 +1,5 @@
1
+ import { Container } from '@dropins/tools/types/elsie/src/lib';
2
+ import { CustomerPurchaseOrdersProps } from '../../types/containers';
3
+
4
+ export declare const CustomerPurchaseOrders: Container<CustomerPurchaseOrdersProps>;
5
+ //# sourceMappingURL=CustomerPurchaseOrders.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 './CustomerPurchaseOrders';
18
+ export { CustomerPurchaseOrders as default } from './CustomerPurchaseOrders';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ export * from './CustomerPurchaseOrders/index'
2
+ import _default from './CustomerPurchaseOrders/index'
3
+ export default _default
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
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{E as g,u as x,a as w,P as D,b as E,d as N}from"../chunks/useCustomerRolePermissions.js";import"@dropins/tools/components.js";import{useText as R}from"@dropins/tools/i18n.js";import"@dropins/tools/event-bus.js";import"@dropins/tools/preact-hooks.js";import"../chunks/getPurchaseOrders.js";import"@dropins/tools/fetch-graphql.js";const U=({initialPageSize:a=N,routePurchaseOrderDetails:t,setColumns:o,setRowsData:u,className:d="",withHeader:c=!0,withWrapper:l=!0,skeletonRowCount:n=5})=>{const i=g.CUSTOMER_PURCHASE_ORDERS,e=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:m,loadingPermissions:h}=x(),{pageSizeConfig:O,loading:p,paginationConfig:P,tableConfig:r,totalCount:b,alertMessageConfig:C}=w({view:i,routePurchaseOrderDetails:t,setColumns:o,setRowsData:u,initialPageSize:a,permissions:m,loadingPermissions:h,t:e});return T("div",{className:f(["purchase-orders",d]),"data-testid":"purchase-orders-container",children:[c?s(D,{headerText:e.headerText}):null,s(E,{totalCount:b,columns:r.columns,rows:r.rows,paginationConfig:P,loading:p,skeletonRowCount:n,pageSizeConfig:O,emptyTitle:e.noPurchaseOrders,alertMessageConfig:C,withWrapper:l})]})};export{U as CustomerPurchaseOrders,U as default};
4
+ //# sourceMappingURL=CustomerPurchaseOrders.js.map