@dropins/storefront-purchase-order 0.0.6-alpha5 → 0.0.7-alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{Initializer as v}from"@dropins/tools/lib.js";import{f as i,h as p}from"./chunks/fetch-graphql.js";import{g as K,r as W,s as X,a as Y,b as Z}from"./chunks/fetch-graphql.js";import{h}from"./chunks/fetch-error.js";import{P as d,t as l}from"./chunks/rejectPurchaseOrders.js";import{a as er,r as sr}from"./chunks/rejectPurchaseOrders.js";import{events as I}from"@dropins/tools/event-bus.js";import{c as ar,p as or}from"./chunks/placeOrderForPurchaseOrder.js";import{a as ur}from"./chunks/addPurchaseOrderComment.js";import{a as ir,c as pr,g as hr,u as dr}from"./chunks/currencyInfo.js";import{d as _r,g as Or}from"./chunks/getPurchaseOrderApprovalRules.js";import{g as Pr}from"./chunks/getPurchaseOrders.js";import{g as mr}from"./chunks/getPurchaseOrderApprovalRule.js";import{P as gr}from"./chunks/permissions.js";import"@dropins/tools/fetch-graphql.js";import"./chunks/transform-purchase-order-approval-rule.js";import"./chunks/case-converter.js";const y=`
3
+ import{Initializer as v}from"@dropins/tools/lib.js";import{f as p,h}from"./chunks/fetch-graphql.js";import{g as W,r as X,s as Y,a as Z,b as rr}from"./chunks/fetch-graphql.js";import{h as d}from"./chunks/fetch-error.js";import{P as R,t as _}from"./chunks/rejectPurchaseOrders.js";import{a as sr,r as tr}from"./chunks/rejectPurchaseOrders.js";import{events as n}from"@dropins/tools/event-bus.js";import{c as or,p as cr}from"./chunks/placeOrderForPurchaseOrder.js";import{a as ir}from"./chunks/addPurchaseOrderComment.js";import{a as pr,c as hr,g as dr,u as lr}from"./chunks/currencyInfo.js";import{d as _r,g as Pr}from"./chunks/getPurchaseOrderApprovalRules.js";import{g as Or}from"./chunks/getPurchaseOrders.js";import{g as mr}from"./chunks/getPurchaseOrderApprovalRule.js";import{P as Ar}from"./chunks/permissions.js";import"@dropins/tools/fetch-graphql.js";import"./chunks/transform-purchase-order-approval-rule.js";import"./chunks/case-converter.js";const T=`
4
4
  query GET_PURCHASE_ORDER($uid: ID!) {
5
5
  customer {
6
6
  purchase_order(uid: $uid) {
@@ -8,8 +8,8 @@ import{Initializer as v}from"@dropins/tools/lib.js";import{f as i,h as p}from"./
8
8
  }
9
9
  }
10
10
  }
11
- ${d}
12
- `,T=async r=>{if(!r||r.trim()==="")throw new Error("Purchase Order UID is required");return i(y,{variables:{uid:r}}).then(o=>{var a,s,e;(a=o.errors)!=null&&a.length&&h(o.errors);const u=(e=(s=o.data)==null?void 0:s.customer)==null?void 0:e.purchase_order;if(!u)throw new Error("Failed to get purchase order");return{purchaseOrder:l(u)}}).catch(p)},w=new v({init:async r=>{var a,s;const o={};if(w.config.setConfig({...o,...r}),typeof(r==null?void 0:r.poRef)=="string"&&r.poRef.trim()!==""){const e=await T(r.poRef);(a=e==null?void 0:e.purchaseOrder)!=null&&a.quote&&I.emit("order/data",{...e.purchaseOrder.quote,poNumber:(s=e==null?void 0:e.purchaseOrder)==null?void 0:s.number})}},listeners:()=>[]}),k=w.config,U=`
11
+ ${R}
12
+ `,U=async r=>{if(!r||r.trim()==="")throw new Error("Purchase Order UID is required");return p(T,{variables:{uid:r}}).then(e=>{var c,s,o;(c=e.errors)!=null&&c.length&&d(e.errors);const a=(o=(s=e.data)==null?void 0:s.customer)==null?void 0:o.purchase_order;if(!a)throw new Error("Failed to get purchase order");return{purchaseOrder:_(a)}}).catch(h)},y=async r=>{var a;const e=await U(r);(a=e==null?void 0:e.purchaseOrder)!=null&&a.quote?(n.emit("order/data",{...e.purchaseOrder.quote}),n.emit("purchase-order/data",{...e.purchaseOrder})):console.error("Failed to fetch purchase order data.")},l=new v({init:async r=>{const e={};l.config.setConfig({...e,...r}),typeof(r==null?void 0:r.poRef)=="string"&&r.poRef.trim()!==""&&await y(r.poRef)},listeners:()=>[n.on("purchase-order/refresh",async()=>{const r=l.config.getConfig();typeof(r==null?void 0:r.poRef)=="string"&&r.poRef.trim()!==""&&await y(r.poRef)})]}),L=l.config,H=`
13
13
  mutation VALIDATE_PURCHASE_ORDERS($input: ValidatePurchaseOrdersInput!) {
14
14
  validatePurchaseOrders(input: $input) {
15
15
  errors {
@@ -21,8 +21,8 @@ import{Initializer as v}from"@dropins/tools/lib.js";import{f as i,h as p}from"./
21
21
  }
22
22
  }
23
23
  }
24
- ${d}
25
- `,L=async r=>{const o=Array.isArray(r)?r:[r];if(!o||o.length===0)throw new Error("Purchase Order UID(s) are required");if(o.some(a=>!a||a.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return i(U,{variables:{input:{purchase_order_uids:o}}}).then(a=>{var e,n;(e=a.errors)!=null&&e.length&&h(a.errors);const s=(n=a.data)==null?void 0:n.validatePurchaseOrders;return{errors:((s==null?void 0:s.errors)??[]).map(c=>({message:(c==null?void 0:c.message)??"",type:(c==null?void 0:c.type)??""})),purchaseOrders:((s==null?void 0:s.purchase_orders)||[]).map(l)}}).catch(p)},H=r=>{var u,a,s,e,n,c,_,O,R,P,E,m,f,g,A;const o=((a=(u=r==null?void 0:r.cart)==null?void 0:u.itemsV2)==null?void 0:a.items)??[];return{cart:{id:((s=r==null?void 0:r.cart)==null?void 0:s.id)??"",items:o.map(t=>{var C,D,S;return{uid:(t==null?void 0:t.uid)??"",quantity:(t==null?void 0:t.quantity)??0,product:{uid:((C=t==null?void 0:t.product)==null?void 0:C.uid)??"",name:((D=t==null?void 0:t.product)==null?void 0:D.name)??"",sku:((S=t==null?void 0:t.product)==null?void 0:S.sku)??""}}}),pagination:{currentPage:((c=(n=(e=r==null?void 0:r.cart)==null?void 0:e.itemsV2)==null?void 0:n.page_info)==null?void 0:c.current_page)??1,pageSize:((R=(O=(_=r==null?void 0:r.cart)==null?void 0:_.itemsV2)==null?void 0:O.page_info)==null?void 0:R.page_size)??20,totalPages:((m=(E=(P=r==null?void 0:r.cart)==null?void 0:P.itemsV2)==null?void 0:E.page_info)==null?void 0:m.total_pages)??0,totalCount:((g=(f=r==null?void 0:r.cart)==null?void 0:f.itemsV2)==null?void 0:g.total_count)??0}},userErrors:((A=r==null?void 0:r.user_errors)==null?void 0:A.map(t=>({message:(t==null?void 0:t.message)??""})))??[]}},$=`
24
+ ${R}
25
+ `,Q=async r=>{const e=Array.isArray(r)?r:[r];if(!e||e.length===0)throw new Error("Purchase Order UID(s) are required");if(e.some(c=>!c||c.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return p(H,{variables:{input:{purchase_order_uids:e}}}).then(c=>{var o,i;(o=c.errors)!=null&&o.length&&d(c.errors);const s=(i=c.data)==null?void 0:i.validatePurchaseOrders;return{errors:((s==null?void 0:s.errors)??[]).map(u=>({message:(u==null?void 0:u.message)??"",type:(u==null?void 0:u.type)??""})),purchaseOrders:((s==null?void 0:s.purchase_orders)||[]).map(_)}}).catch(h)},$=r=>{var a,c,s,o,i,u,P,f,O,E,m,g,A,C,D;const e=((c=(a=r==null?void 0:r.cart)==null?void 0:a.itemsV2)==null?void 0:c.items)??[];return{cart:{id:((s=r==null?void 0:r.cart)==null?void 0:s.id)??"",items:e.map(t=>{var S,I,w;return{uid:(t==null?void 0:t.uid)??"",quantity:(t==null?void 0:t.quantity)??0,product:{uid:((S=t==null?void 0:t.product)==null?void 0:S.uid)??"",name:((I=t==null?void 0:t.product)==null?void 0:I.name)??"",sku:((w=t==null?void 0:t.product)==null?void 0:w.sku)??""}}}),pagination:{currentPage:((u=(i=(o=r==null?void 0:r.cart)==null?void 0:o.itemsV2)==null?void 0:i.page_info)==null?void 0:u.current_page)??1,pageSize:((O=(f=(P=r==null?void 0:r.cart)==null?void 0:P.itemsV2)==null?void 0:f.page_info)==null?void 0:O.page_size)??20,totalPages:((g=(m=(E=r==null?void 0:r.cart)==null?void 0:E.itemsV2)==null?void 0:m.page_info)==null?void 0:g.total_pages)??0,totalCount:((C=(A=r==null?void 0:r.cart)==null?void 0:A.itemsV2)==null?void 0:C.total_count)??0}},userErrors:((D=r==null?void 0:r.user_errors)==null?void 0:D.map(t=>({message:(t==null?void 0:t.message)??""})))??[]}},x=`
26
26
  mutation ADD_PURCHASE_ORDER_ITEMS_TO_CART(
27
27
  $purchaseOrderUid: ID!
28
28
  $cartId: String!
@@ -57,7 +57,7 @@ import{Initializer as v}from"@dropins/tools/lib.js";import{f as i,h as p}from"./
57
57
  }
58
58
  }
59
59
  }
60
- `,Q=async(r,o,u=!1)=>{if(!r)throw new Error("Purchase Order UID is required");if(!o)throw new Error("Cart ID is required");return i($,{variables:{purchaseOrderUid:r,cartId:o,replaceExistingCartItems:u}}).then(s=>{var n,c;(n=s.errors)!=null&&n.length&&h(s.errors);const e=(c=s.data)==null?void 0:c.addPurchaseOrderItemsToCart;if(!(e!=null&&e.cart))throw new Error("Failed to add purchase order items to cart");return H(e)}).catch(p)},x=`
60
+ `,j=async(r,e,a=!1)=>{if(!r)throw new Error("Purchase Order UID is required");if(!e)throw new Error("Cart ID is required");return p(x,{variables:{purchaseOrderUid:r,cartId:e,replaceExistingCartItems:a}}).then(s=>{var i,u;(i=s.errors)!=null&&i.length&&d(s.errors);const o=(u=s.data)==null?void 0:u.addPurchaseOrderItemsToCart;if(!(o!=null&&o.cart))throw new Error("Failed to add purchase order items to cart");return $(o)}).catch(h)},V=`
61
61
  mutation PLACE_PURCHASE_ORDER($input: PlacePurchaseOrderInput!) {
62
62
  placePurchaseOrder(input: $input) {
63
63
  purchase_order {
@@ -65,6 +65,6 @@ import{Initializer as v}from"@dropins/tools/lib.js";import{f as i,h as p}from"./
65
65
  }
66
66
  }
67
67
  }
68
- ${d}
69
- `,j=async r=>{if(!r||r.trim()==="")throw new Error("Cart ID is required");return i(x,{variables:{input:{cart_id:r}}}).then(u=>{var e,n,c;(e=u.errors)!=null&&e.length&&h(u.errors);const a=(c=(n=u.data)==null?void 0:n.placePurchaseOrder)==null?void 0:c.purchase_order,s=l(a);return I.emit("purchase-order/placed",s),{purchaseOrder:s}}).catch(p)};export{gr as PO_PERMISSIONS,ur as addPurchaseOrderComment,Q as addPurchaseOrderItemsToCart,er as approvePurchaseOrders,ar as cancelPurchaseOrders,k as config,ir as createPurchaseOrderApprovalRule,pr as currencyInfo,_r as deletePurchaseOrderApprovalRule,i as fetchGraphQl,K as getConfig,T as getPurchaseOrder,mr as getPurchaseOrderApprovalRule,hr as getPurchaseOrderApprovalRuleMetadata,Or as getPurchaseOrderApprovalRules,Pr as getPurchaseOrders,w as initialize,or as placeOrderForPurchaseOrder,j as placePurchaseOrder,sr as rejectPurchaseOrders,W as removeFetchGraphQlHeader,X as setEndpoint,Y as setFetchGraphQlHeader,Z as setFetchGraphQlHeaders,dr as updatePurchaseOrderApprovalRule,L as validatePurchaseOrders};
68
+ ${R}
69
+ `,B=async r=>{if(!r||r.trim()==="")throw new Error("Cart ID is required");return p(V,{variables:{input:{cart_id:r}}}).then(a=>{var o,i,u;(o=a.errors)!=null&&o.length&&d(a.errors);const c=(u=(i=a.data)==null?void 0:i.placePurchaseOrder)==null?void 0:u.purchase_order,s=_(c);return n.emit("purchase-order/placed",s),{purchaseOrder:s}}).catch(h)};export{Ar as PO_PERMISSIONS,ir as addPurchaseOrderComment,j as addPurchaseOrderItemsToCart,sr as approvePurchaseOrders,or as cancelPurchaseOrders,L as config,pr as createPurchaseOrderApprovalRule,hr as currencyInfo,_r as deletePurchaseOrderApprovalRule,p as fetchGraphQl,W as getConfig,U as getPurchaseOrder,mr as getPurchaseOrderApprovalRule,dr as getPurchaseOrderApprovalRuleMetadata,Pr as getPurchaseOrderApprovalRules,Or as getPurchaseOrders,l as initialize,cr as placeOrderForPurchaseOrder,B as placePurchaseOrder,tr as rejectPurchaseOrders,X as removeFetchGraphQlHeader,Y as setEndpoint,Z as setFetchGraphQlHeader,rr as setFetchGraphQlHeaders,lr as updatePurchaseOrderApprovalRule,Q as validatePurchaseOrders};
70
70
  //# sourceMappingURL=api.js.map
package/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sources":["/@dropins/storefront-purchase-order/src/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql.ts","/@dropins/storefront-purchase-order/src/api/getPurchaseOrder/getPurchaseOrder.ts","/@dropins/storefront-purchase-order/src/api/initialize/initialize.ts","/@dropins/storefront-purchase-order/src/api/validatePurchaseOrders/graphql/validatePurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/validatePurchaseOrders/validatePurchaseOrders.ts","/@dropins/storefront-purchase-order/src/data/transforms/transform-cart.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderItemsToCart/graphql/addPurchaseOrderItemsToCart.graphql.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderItemsToCart/addPurchaseOrderItemsToCart.ts","/@dropins/storefront-purchase-order/src/api/placePurchaseOrder/graphql/placePurchaseOrder.graphql.ts","/@dropins/storefront-purchase-order/src/api/placePurchaseOrder/placePurchaseOrder.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '../../fragments';\n\nexport const GET_PURCHASE_ORDER = /* GraphQL */ `\n query GET_PURCHASE_ORDER($uid: ID!) {\n customer {\n purchase_order(uid: $uid) {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { GET_PURCHASE_ORDER } from '@/b2b-purchase-order/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const getPurchaseOrder = async (\n uid: string\n): Promise<{\n purchaseOrder: PurchaseOrderModel;\n}> => {\n if (!uid || uid.trim() === '') {\n throw new Error('Purchase Order UID is required');\n }\n\n return fetchGraphQl(GET_PURCHASE_ORDER, {\n variables: { uid },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const result = response.data?.customer?.purchase_order;\n if (!result) {\n throw new Error('Failed to get purchase order');\n }\n\n return {\n purchaseOrder: transformPurchaseOrder(result),\n };\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Initializer } from '@adobe-commerce/elsie/lib';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { getPurchaseOrder } from '../getPurchaseOrder';\nimport { events } from '@adobe-commerce/event-bus';\n\ntype ConfigProps = {\n langDefinitions?: Lang;\n poRef?: string;\n};\n\nexport const initialize = new Initializer<ConfigProps>({\n init: async (config) => {\n const defaultConfig = {};\n\n initialize.config.setConfig({ ...defaultConfig, ...config });\n\n const isValidPoRef =\n typeof config?.poRef === 'string' && config.poRef.trim() !== '';\n\n if (isValidPoRef) {\n const result = await getPurchaseOrder(config!.poRef!);\n\n if (result?.purchaseOrder?.quote) {\n events.emit('order/data', {\n ...result.purchaseOrder.quote,\n // @ts-ignore\n poNumber: result?.purchaseOrder?.number,\n });\n }\n }\n },\n\n listeners: () => [],\n});\n\nexport const config = initialize.config;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const VALIDATE_PURCHASE_ORDERS = /* GraphQL */ `\n mutation VALIDATE_PURCHASE_ORDERS($input: ValidatePurchaseOrdersInput!) {\n validatePurchaseOrders(input: $input) {\n errors {\n message\n type\n }\n purchase_orders {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { VALIDATE_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/validatePurchaseOrders/graphql/validatePurchaseOrders.graphql';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\n\nexport const validatePurchaseOrders = async (\n uids: string | string[]\n): Promise<{\n errors: { message: string; type: string }[];\n purchaseOrders: PurchaseOrderModel[];\n}> => {\n const uidArray = Array.isArray(uids) ? uids : [uids];\n\n if (!uidArray || uidArray.length === 0) {\n throw new Error('Purchase Order UID(s) are required');\n }\n\n if (uidArray.some((uid) => !uid || uid.trim() === '')) {\n throw new Error('All Purchase Order UIDs must be valid');\n }\n\n const input = {\n purchase_order_uids: uidArray,\n };\n\n return fetchGraphQl(VALIDATE_PURCHASE_ORDERS, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const data = response.data?.validatePurchaseOrders;\n\n return {\n errors: (data?.errors ?? []).map((error: any) => ({\n message: error?.message ?? '',\n type: error?.type ?? '',\n })),\n purchaseOrders: (data?.purchase_orders || []).map(\n transformPurchaseOrder\n ),\n };\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CartModel } from '@/b2b-purchase-order/data/models';\n\nexport const transformCart = (data: any): CartModel => {\n const cartItems = data?.cart?.itemsV2?.items ?? [];\n\n return {\n cart: {\n id: data?.cart?.id ?? '',\n items: cartItems.map((item: any) => ({\n uid: item?.uid ?? '',\n quantity: item?.quantity ?? 0,\n product: {\n uid: item?.product?.uid ?? '',\n name: item?.product?.name ?? '',\n sku: item?.product?.sku ?? '',\n },\n })),\n pagination: {\n currentPage: data?.cart?.itemsV2?.page_info?.current_page ?? 1,\n pageSize: data?.cart?.itemsV2?.page_info?.page_size ?? 20,\n totalPages: data?.cart?.itemsV2?.page_info?.total_pages ?? 0,\n totalCount: data?.cart?.itemsV2?.total_count ?? 0,\n },\n },\n userErrors:\n data?.user_errors?.map((error: any) => ({\n message: error?.message ?? '',\n })) ?? [],\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const ADD_PURCHASE_ORDER_ITEMS_TO_CART = /* GraphQL */ `\n mutation ADD_PURCHASE_ORDER_ITEMS_TO_CART(\n $purchaseOrderUid: ID!\n $cartId: String!\n $replaceExistingCartItems: Boolean!\n ) {\n addPurchaseOrderItemsToCart(\n input: {\n purchase_order_uid: $purchaseOrderUid\n cart_id: $cartId\n replace_existing_cart_items: $replaceExistingCartItems\n }\n ) {\n cart {\n id\n itemsV2 {\n items {\n uid\n quantity\n product {\n uid\n name\n sku\n }\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { transformCart } from '@/b2b-purchase-order/data/transforms';\nimport { ADD_PURCHASE_ORDER_ITEMS_TO_CART } from '@/b2b-purchase-order/api/addPurchaseOrderItemsToCart/graphql/addPurchaseOrderItemsToCart.graphql';\nimport { CartModel } from '@/b2b-purchase-order/data/models';\n\nexport const addPurchaseOrderItemsToCart = async (\n purchaseOrderUid: string,\n cartId: string,\n replaceExistingCartItems: boolean = false\n): Promise<CartModel> => {\n if (!purchaseOrderUid) {\n throw new Error('Purchase Order UID is required');\n }\n\n if (!cartId) {\n throw new Error('Cart ID is required');\n }\n\n const variables = {\n purchaseOrderUid,\n cartId,\n replaceExistingCartItems,\n };\n\n return fetchGraphQl(ADD_PURCHASE_ORDER_ITEMS_TO_CART, {\n variables,\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const cartData = response.data?.addPurchaseOrderItemsToCart;\n if (!cartData?.cart) {\n throw new Error('Failed to add purchase order items to cart');\n }\n\n return transformCart(cartData);\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const PLACE_PURCHASE_ORDER = /* GraphQL */ `\n mutation PLACE_PURCHASE_ORDER($input: PlacePurchaseOrderInput!) {\n placePurchaseOrder(input: $input) {\n purchase_order {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { PLACE_PURCHASE_ORDER } from '@/b2b-purchase-order/api/placePurchaseOrder/graphql/placePurchaseOrder.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const placePurchaseOrder = async (\n cartId: string\n): Promise<{ purchaseOrder: PurchaseOrderModel }> => {\n if (!cartId || cartId.trim() === '') {\n throw new Error('Cart ID is required');\n }\n\n const input = {\n cart_id: cartId,\n };\n\n return fetchGraphQl(PLACE_PURCHASE_ORDER, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const rawPurchaseOrder =\n response.data?.placePurchaseOrder?.purchase_order;\n\n const purchaseOrder = transformPurchaseOrder(rawPurchaseOrder);\n\n events.emit('purchase-order/placed', purchaseOrder);\n\n return {\n purchaseOrder,\n };\n })\n .catch(handleNetworkError);\n};\n"],"names":["GET_PURCHASE_ORDER","PURCHASE_ORDERS_FRAGMENT","getPurchaseOrder","uid","fetchGraphQl","response","_a","handleFetchError","result","_c","_b","transformPurchaseOrder","handleNetworkError","initialize","Initializer","config","defaultConfig","events","VALIDATE_PURCHASE_ORDERS","validatePurchaseOrders","uids","uidArray","data","error","transformCart","cartItems","item","_f","_e","_d","_i","_h","_g","_l","_k","_j","_n","_m","_o","ADD_PURCHASE_ORDER_ITEMS_TO_CART","addPurchaseOrderItemsToCart","purchaseOrderUid","cartId","replaceExistingCartItems","cartData","PLACE_PURCHASE_ORDER","placePurchaseOrder","rawPurchaseOrder","purchaseOrder"],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sources":["/@dropins/storefront-purchase-order/src/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql.ts","/@dropins/storefront-purchase-order/src/api/getPurchaseOrder/getPurchaseOrder.ts","/@dropins/storefront-purchase-order/src/api/initialize/initialize.ts","/@dropins/storefront-purchase-order/src/api/validatePurchaseOrders/graphql/validatePurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/validatePurchaseOrders/validatePurchaseOrders.ts","/@dropins/storefront-purchase-order/src/data/transforms/transform-cart.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderItemsToCart/graphql/addPurchaseOrderItemsToCart.graphql.ts","/@dropins/storefront-purchase-order/src/api/addPurchaseOrderItemsToCart/addPurchaseOrderItemsToCart.ts","/@dropins/storefront-purchase-order/src/api/placePurchaseOrder/graphql/placePurchaseOrder.graphql.ts","/@dropins/storefront-purchase-order/src/api/placePurchaseOrder/placePurchaseOrder.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '../../fragments';\n\nexport const GET_PURCHASE_ORDER = /* GraphQL */ `\n query GET_PURCHASE_ORDER($uid: ID!) {\n customer {\n purchase_order(uid: $uid) {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { GET_PURCHASE_ORDER } from '@/b2b-purchase-order/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const getPurchaseOrder = async (\n uid: string\n): Promise<{\n purchaseOrder: PurchaseOrderModel;\n}> => {\n if (!uid || uid.trim() === '') {\n throw new Error('Purchase Order UID is required');\n }\n\n return fetchGraphQl(GET_PURCHASE_ORDER, {\n variables: { uid },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const result = response.data?.customer?.purchase_order;\n if (!result) {\n throw new Error('Failed to get purchase order');\n }\n\n return {\n purchaseOrder: transformPurchaseOrder(result),\n };\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Initializer } from '@adobe-commerce/elsie/lib';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { getPurchaseOrder } from '../getPurchaseOrder';\nimport { events } from '@adobe-commerce/event-bus';\n\ntype ConfigProps = {\n langDefinitions?: Lang;\n poRef?: string;\n};\n\nconst fetchAndEmitPurchaseOrderData = async (poRef: string) => {\n const result = await getPurchaseOrder(poRef);\n\n if (result?.purchaseOrder?.quote) {\n events.emit('order/data', {\n ...result.purchaseOrder.quote,\n });\n events.emit('purchase-order/data', {\n ...result.purchaseOrder,\n });\n } else {\n console.error('Failed to fetch purchase order data.');\n }\n};\n\nexport const initialize = new Initializer<ConfigProps>({\n init: async (config) => {\n const defaultConfig = {};\n\n initialize.config.setConfig({ ...defaultConfig, ...config });\n\n const isValidPoRef =\n typeof config?.poRef === 'string' && config.poRef.trim() !== '';\n\n if (isValidPoRef) {\n await fetchAndEmitPurchaseOrderData(config!.poRef!);\n }\n },\n\n listeners: () => [\n events.on('purchase-order/refresh', async () => {\n const config = initialize.config.getConfig();\n const isValidPoRef =\n typeof config?.poRef === 'string' && config.poRef.trim() !== '';\n\n if (isValidPoRef) {\n await fetchAndEmitPurchaseOrderData(config!.poRef!);\n }\n }),\n ],\n});\n\nexport const config = initialize.config;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const VALIDATE_PURCHASE_ORDERS = /* GraphQL */ `\n mutation VALIDATE_PURCHASE_ORDERS($input: ValidatePurchaseOrdersInput!) {\n validatePurchaseOrders(input: $input) {\n errors {\n message\n type\n }\n purchase_orders {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { VALIDATE_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/validatePurchaseOrders/graphql/validatePurchaseOrders.graphql';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\n\nexport const validatePurchaseOrders = async (\n uids: string | string[]\n): Promise<{\n errors: { message: string; type: string }[];\n purchaseOrders: PurchaseOrderModel[];\n}> => {\n const uidArray = Array.isArray(uids) ? uids : [uids];\n\n if (!uidArray || uidArray.length === 0) {\n throw new Error('Purchase Order UID(s) are required');\n }\n\n if (uidArray.some((uid) => !uid || uid.trim() === '')) {\n throw new Error('All Purchase Order UIDs must be valid');\n }\n\n const input = {\n purchase_order_uids: uidArray,\n };\n\n return fetchGraphQl(VALIDATE_PURCHASE_ORDERS, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const data = response.data?.validatePurchaseOrders;\n\n return {\n errors: (data?.errors ?? []).map((error: any) => ({\n message: error?.message ?? '',\n type: error?.type ?? '',\n })),\n purchaseOrders: (data?.purchase_orders || []).map(\n transformPurchaseOrder\n ),\n };\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CartModel } from '@/b2b-purchase-order/data/models';\n\nexport const transformCart = (data: any): CartModel => {\n const cartItems = data?.cart?.itemsV2?.items ?? [];\n\n return {\n cart: {\n id: data?.cart?.id ?? '',\n items: cartItems.map((item: any) => ({\n uid: item?.uid ?? '',\n quantity: item?.quantity ?? 0,\n product: {\n uid: item?.product?.uid ?? '',\n name: item?.product?.name ?? '',\n sku: item?.product?.sku ?? '',\n },\n })),\n pagination: {\n currentPage: data?.cart?.itemsV2?.page_info?.current_page ?? 1,\n pageSize: data?.cart?.itemsV2?.page_info?.page_size ?? 20,\n totalPages: data?.cart?.itemsV2?.page_info?.total_pages ?? 0,\n totalCount: data?.cart?.itemsV2?.total_count ?? 0,\n },\n },\n userErrors:\n data?.user_errors?.map((error: any) => ({\n message: error?.message ?? '',\n })) ?? [],\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const ADD_PURCHASE_ORDER_ITEMS_TO_CART = /* GraphQL */ `\n mutation ADD_PURCHASE_ORDER_ITEMS_TO_CART(\n $purchaseOrderUid: ID!\n $cartId: String!\n $replaceExistingCartItems: Boolean!\n ) {\n addPurchaseOrderItemsToCart(\n input: {\n purchase_order_uid: $purchaseOrderUid\n cart_id: $cartId\n replace_existing_cart_items: $replaceExistingCartItems\n }\n ) {\n cart {\n id\n itemsV2 {\n items {\n uid\n quantity\n product {\n uid\n name\n sku\n }\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { transformCart } from '@/b2b-purchase-order/data/transforms';\nimport { ADD_PURCHASE_ORDER_ITEMS_TO_CART } from '@/b2b-purchase-order/api/addPurchaseOrderItemsToCart/graphql/addPurchaseOrderItemsToCart.graphql';\nimport { CartModel } from '@/b2b-purchase-order/data/models';\n\nexport const addPurchaseOrderItemsToCart = async (\n purchaseOrderUid: string,\n cartId: string,\n replaceExistingCartItems: boolean = false\n): Promise<CartModel> => {\n if (!purchaseOrderUid) {\n throw new Error('Purchase Order UID is required');\n }\n\n if (!cartId) {\n throw new Error('Cart ID is required');\n }\n\n const variables = {\n purchaseOrderUid,\n cartId,\n replaceExistingCartItems,\n };\n\n return fetchGraphQl(ADD_PURCHASE_ORDER_ITEMS_TO_CART, {\n variables,\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const cartData = response.data?.addPurchaseOrderItemsToCart;\n if (!cartData?.cart) {\n throw new Error('Failed to add purchase order items to cart');\n }\n\n return transformCart(cartData);\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const PLACE_PURCHASE_ORDER = /* GraphQL */ `\n mutation PLACE_PURCHASE_ORDER($input: PlacePurchaseOrderInput!) {\n placePurchaseOrder(input: $input) {\n purchase_order {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { PLACE_PURCHASE_ORDER } from '@/b2b-purchase-order/api/placePurchaseOrder/graphql/placePurchaseOrder.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const placePurchaseOrder = async (\n cartId: string\n): Promise<{ purchaseOrder: PurchaseOrderModel }> => {\n if (!cartId || cartId.trim() === '') {\n throw new Error('Cart ID is required');\n }\n\n const input = {\n cart_id: cartId,\n };\n\n return fetchGraphQl(PLACE_PURCHASE_ORDER, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const rawPurchaseOrder =\n response.data?.placePurchaseOrder?.purchase_order;\n\n const purchaseOrder = transformPurchaseOrder(rawPurchaseOrder);\n\n events.emit('purchase-order/placed', purchaseOrder);\n\n return {\n purchaseOrder,\n };\n })\n .catch(handleNetworkError);\n};\n"],"names":["GET_PURCHASE_ORDER","PURCHASE_ORDERS_FRAGMENT","getPurchaseOrder","uid","fetchGraphQl","response","_a","handleFetchError","result","_c","_b","transformPurchaseOrder","handleNetworkError","fetchAndEmitPurchaseOrderData","poRef","events","initialize","Initializer","config","defaultConfig","VALIDATE_PURCHASE_ORDERS","validatePurchaseOrders","uids","uidArray","data","error","transformCart","cartItems","item","_f","_e","_d","_i","_h","_g","_l","_k","_j","_n","_m","_o","ADD_PURCHASE_ORDER_ITEMS_TO_CART","addPurchaseOrderItemsToCart","purchaseOrderUid","cartId","replaceExistingCartItems","cartData","PLACE_PURCHASE_ORDER","placePurchaseOrder","rawPurchaseOrder","purchaseOrder"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as e}from"@dropins/tools/preact-jsx-runtime.js";import{Header as a}from"@dropins/tools/components.js";import"./PurchaseOrderHistoryLogContent.js";const o=({headerText:r})=>e(a,{title:r,divider:!1,className:"purchase-orders-header","data-testid":"purchase-orders-header"});export{o as P};
3
+ import{jsx as s}from"@dropins/tools/preact-jsx-runtime.js";import{Header as a}from"@dropins/tools/components.js";import{classes as t}from"@dropins/tools/lib.js";import"./PurchaseOrderHistoryLogContent.js";const p=({headerText:e,divider:r=!1})=>s(a,{title:e,divider:r,className:t(["purchase-orders-header",["purchase-orders-header--with-divider",r]]),"data-testid":"purchase-orders-header"});export{p as P};
4
4
  //# sourceMappingURL=PurchaseOrdersHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PurchaseOrdersHeader.js","sources":["/@dropins/storefront-purchase-order/src/components/PurchaseOrdersHeader/PurchaseOrdersHeader.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 { Header } 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}> = ({ headerText }) => {\n return (\n <Header\n title={headerText}\n divider={false}\n className={'purchase-orders-header'}\n data-testid=\"purchase-orders-header\"\n />\n );\n};\n"],"names":["PurchaseOrdersHeader","headerText","jsx","Header"],"mappings":"6JAqBO,MAAMA,EAER,CAAC,CAAE,WAAAC,KAEJC,EAACC,EAAA,CACC,MAAOF,EACP,QAAS,GACT,UAAW,yBACX,cAAY,wBAAA,CAAA"}
1
+ {"version":3,"file":"PurchaseOrdersHeader.js","sources":["/@dropins/storefront-purchase-order/src/components/PurchaseOrdersHeader/PurchaseOrdersHeader.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 { Header } from '@adobe-commerce/elsie/components';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { FunctionComponent } from 'preact';\nimport '@/b2b-purchase-order/components/PurchaseOrdersHeader/PurchaseOrdersHeader.css';\n\nexport const PurchaseOrdersHeader: FunctionComponent<{\n headerText: string;\n divider?: boolean;\n}> = ({ headerText, divider = false }) => {\n return (\n <Header\n title={headerText}\n divider={divider}\n className={classes([\n 'purchase-orders-header',\n ['purchase-orders-header--with-divider', divider],\n ])}\n data-testid=\"purchase-orders-header\"\n />\n );\n};\n"],"names":["PurchaseOrdersHeader","headerText","divider","jsx","Header","classes"],"mappings":"6MAsBO,MAAMA,EAGR,CAAC,CAAE,WAAAC,EAAY,QAAAC,EAAU,MAE1BC,EAACC,EAAA,CACC,MAAOH,EACP,QAAAC,EACA,UAAWG,EAAQ,CACjB,yBACA,CAAC,uCAAwCH,CAAO,CAAA,CACjD,EACD,cAAY,wBAAA,CAAA"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{useState as a,useEffect as n}from"@dropins/tools/preact-hooks.js";import{events as c}from"@dropins/tools/event-bus.js";const i=()=>{const[t,s]=a(!0),[u,o]=a(null);return n(()=>{const e=c.on("purchase-order/data",r=>{r!=null&&r.uid&&o(r),s(!1)},{eager:!0});return()=>{e==null||e.off()}},[]),{poDataLoading:t,purchaseOrderData:u}};export{i as u};
3
+ import{useState as a,useEffect as s}from"@dropins/tools/preact-hooks.js";import{events as u}from"@dropins/tools/event-bus.js";const h=()=>{const[o,t]=a(!0),[n,c]=a(null);return s(()=>{const r=u.on("purchase-order/data",e=>{e!=null&&e.uid&&c(e),t(!1)},{eager:!0});return()=>{r==null||r.off()}},[]),s(()=>{const r=u.on("purchase-order/refresh",()=>t(!0),{eager:!0});return()=>{r==null||r.off()}},[]),{poDataLoading:o,purchaseOrderData:n}};export{h as u};
4
4
  //# sourceMappingURL=usePurchaseOrderData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePurchaseOrderData.js","sources":["/@dropins/storefront-purchase-order/src/hooks/usePurchaseOrderData.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useEffect, useState } from 'preact/hooks';\nimport { PurchaseOrderModel } from '../data/models';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const usePurchaseOrderData = () => {\n const [poDataLoading, setPoDataLoading] = useState(true);\n const [purchaseOrderData, setPurchaseOrderData] =\n useState<PurchaseOrderModel | null>(null);\n\n useEffect(() => {\n const event = events.on(\n 'purchase-order/data',\n (po: PurchaseOrderModel) => {\n if (po?.uid) {\n setPurchaseOrderData(po);\n }\n\n setPoDataLoading(false);\n },\n { eager: true }\n );\n\n return () => {\n event?.off();\n };\n }, []);\n\n return { poDataLoading, purchaseOrderData };\n};\n"],"names":["usePurchaseOrderData","poDataLoading","setPoDataLoading","useState","purchaseOrderData","setPurchaseOrderData","useEffect","event","events","po"],"mappings":"8HAqBO,MAAMA,EAAuB,IAAM,CACxC,KAAM,CAACC,EAAeC,CAAgB,EAAIC,EAAS,EAAI,EACjD,CAACC,EAAmBC,CAAoB,EAC5CF,EAAoC,IAAI,EAE1C,OAAAG,EAAU,IAAM,CACd,MAAMC,EAAQC,EAAO,GACnB,sBACCC,GAA2B,CACtBA,GAAA,MAAAA,EAAI,KACNJ,EAAqBI,CAAE,EAGzBP,EAAiB,EAAK,CACxB,EACA,CAAE,MAAO,EAAA,CAAK,EAGhB,MAAO,IAAM,CACXK,GAAA,MAAAA,EAAO,KACT,CACF,EAAG,CAAA,CAAE,EAEE,CAAE,cAAAN,EAAe,kBAAAG,CAAA,CAC1B"}
1
+ {"version":3,"file":"usePurchaseOrderData.js","sources":["/@dropins/storefront-purchase-order/src/hooks/usePurchaseOrderData.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useEffect, useState } from 'preact/hooks';\nimport { PurchaseOrderModel } from '../data/models';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const usePurchaseOrderData = () => {\n const [poDataLoading, setPoDataLoading] = useState(true);\n const [purchaseOrderData, setPurchaseOrderData] =\n useState<PurchaseOrderModel | null>(null);\n\n useEffect(() => {\n const event = events.on(\n 'purchase-order/data',\n (po: PurchaseOrderModel) => {\n if (po?.uid) {\n setPurchaseOrderData(po);\n }\n\n setPoDataLoading(false);\n },\n { eager: true }\n );\n\n return () => {\n event?.off();\n };\n }, []);\n\n useEffect(() => {\n const event = events.on(\n 'purchase-order/refresh',\n () => setPoDataLoading(true),\n { eager: true }\n );\n\n return () => {\n event?.off();\n };\n }, []);\n\n return { poDataLoading, purchaseOrderData };\n};\n"],"names":["usePurchaseOrderData","poDataLoading","setPoDataLoading","useState","purchaseOrderData","setPurchaseOrderData","useEffect","event","events","po"],"mappings":"8HAqBO,MAAMA,EAAuB,IAAM,CACxC,KAAM,CAACC,EAAeC,CAAgB,EAAIC,EAAS,EAAI,EACjD,CAACC,EAAmBC,CAAoB,EAC5CF,EAAoC,IAAI,EAE1C,OAAAG,EAAU,IAAM,CACd,MAAMC,EAAQC,EAAO,GACnB,sBACCC,GAA2B,CACtBA,GAAA,MAAAA,EAAI,KACNJ,EAAqBI,CAAE,EAGzBP,EAAiB,EAAK,CACxB,EACA,CAAE,MAAO,EAAA,CAAK,EAGhB,MAAO,IAAM,CACXK,GAAA,MAAAA,EAAO,KACT,CACF,EAAG,CAAA,CAAE,EAELD,EAAU,IAAM,CACd,MAAMC,EAAQC,EAAO,GACnB,yBACA,IAAMN,EAAiB,EAAI,EAC3B,CAAE,MAAO,EAAA,CAAK,EAGhB,MAAO,IAAM,CACXK,GAAA,MAAAA,EAAO,KACT,CACF,EAAG,CAAA,CAAE,EAEE,CAAE,cAAAN,EAAe,kBAAAG,CAAA,CAC1B"}
@@ -2,5 +2,6 @@ import { FunctionComponent } from 'preact';
2
2
 
3
3
  export declare const PurchaseOrdersHeader: FunctionComponent<{
4
4
  headerText: string;
5
+ divider?: boolean;
5
6
  }>;
6
7
  //# sourceMappingURL=PurchaseOrdersHeader.d.ts.map
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as e,jsxs as n}from"@dropins/tools/preact-jsx-runtime.js";import{classes as p}from"@dropins/tools/lib.js";import{Skeleton as m,SkeletonRow as d,Card as u}from"@dropins/tools/components.js";import"@dropins/tools/event-bus.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{P as v}from"../chunks/PurchaseOrdersHeader.js";import"@dropins/tools/preact-hooks.js";import{u as w}from"../chunks/usePurchaseOrderData.js";import{Fragment as f}from"@dropins/tools/preact.js";import*as t from"@dropins/tools/preact-compat.js";import{useText as h,Text as C}from"@dropins/tools/i18n.js";const g=r=>t.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z",stroke:"currentColor"}),t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M6.75 12.762L10.2385 15.75L17.25 9",stroke:"currentColor"})),b=r=>t.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 12C0 5.37931 5.37931 0 12 0C18.6207 0 24 5.37931 24 12C24 18.6207 18.6207 24 12 24C5.37931 24 0 18.6207 0 12ZM11.8885 5.06101C11.1405 5.06101 10.5357 5.66579 10.5357 6.4138V6.57295C10.5835 7.27321 11.1882 7.81433 11.8885 7.76658H12.0795C12.7797 7.70292 13.289 7.09815 13.2413 6.4138C13.2413 5.66579 12.6365 5.06101 11.8885 5.06101ZM13.1935 16.8223H14.1007C14.2599 16.8223 14.4031 16.9655 14.4031 17.1247V17.7294C14.4031 17.9045 14.2599 18.0318 14.1007 18.0318H9.8832C9.70813 18.0318 9.58081 17.8886 9.58081 17.7294V17.1247C9.58081 16.9496 9.72405 16.8223 9.8832 16.8223H10.7904V10.7905H9.8832C9.70813 10.7905 9.58081 10.6472 9.58081 10.4881V9.88329C9.58081 9.70823 9.72405 9.58091 9.8832 9.58091H12.5888C12.923 9.58091 13.1935 9.85146 13.1935 10.1857V16.8223Z",fill:"currentColor"})),E=r=>t.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z",stroke:"currentColor"}),t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M11.75 5.88423V4.75H12.25V5.88423L12.0485 13.0713H11.9515L11.75 5.88423ZM11.7994 18.25V16.9868H12.2253V18.25H11.7994Z",stroke:"currentColor"})),x=({approvalFlow:r=[]})=>{const l=h({pending:"PurchaseOrders.approvalFlow.ariaLabels.icons.pending",approved:"PurchaseOrders.approvalFlow.ariaLabels.icons.approved",rejected:"PurchaseOrders.approvalFlow.ariaLabels.icons.rejected"});if(!(r!=null&&r.length))return e("div",{className:"b2b-purchase-order-approval-flow-content",children:e(C,{id:"PurchaseOrders.approvalFlow.emptyText"})});const i=a=>{switch(a){case"PENDING":return e(b,{className:"b2b-purchase-order-approval-flow-content__icon--pending","aria-label":l.pending,role:"img"});case"APPROVED":return e(g,{className:"b2b-purchase-order-approval-flow-content__icon--approved","aria-label":l.approved,role:"img"});case"REJECTED":return e(E,{className:"b2b-purchase-order-approval-flow-content__icon--rejected","aria-label":l.rejected,role:"img"});default:return null}};return e("div",{className:p(["b2b-purchase-order-approval-flow-content"]),children:e("ul",{className:"b2b-purchase-order-approval-flow-content__list",children:r.map((a,o)=>n(f,{children:[n("li",{className:"b2b-purchase-order-approval-flow-content__item",children:[e("div",{className:"b2b-purchase-order-approval-flow-content__title",children:a.ruleName}),a.events.map((s,c)=>n("div",{className:"b2b-purchase-order-approval-flow-content__description",children:[i(s.status),s.message]},c))]}),o<r.length-1&&e("hr",{className:"b2b-purchase-order-approval-flow-content__divider"})]},o))})})},F=({className:r,withHeader:l=!0,withWrapper:i=!0})=>{const{poDataLoading:a,purchaseOrderData:o}=w(),s=h({headerText:"PurchaseOrders.approvalFlow.headerText"}),c=a?n(m,{rowGap:"medium","data-testid":"approval-flow-loader",children:[e(d,{size:"small",variant:"row",fullWidth:!0,lines:1,style:{maxWidth:300}}),e(d,{size:"medium",variant:"row",fullWidth:!0,lines:1})]}):e(x,{approvalFlow:(o==null?void 0:o.approvalFlow)||[]});return n("div",{className:p(["b2b-purchase-order-approval-flow",r]),"data-testid":"order-approval-flow-container",children:[l?e(v,{headerText:s.headerText}):null,i?e(u,{variant:"secondary","data-testid":"orderApprovalFlowCard",children:c}):c]})};export{F as PurchaseOrderApprovalFlow,F as default};
3
+ import{jsx as e,jsxs as n,Fragment as u}from"@dropins/tools/preact-jsx-runtime.js";import{classes as h}from"@dropins/tools/lib.js";import{Skeleton as v,SkeletonRow as d,Card as f}from"@dropins/tools/components.js";import"@dropins/tools/event-bus.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{P as p}from"../chunks/PurchaseOrdersHeader.js";import"@dropins/tools/preact-hooks.js";import{u as w}from"../chunks/usePurchaseOrderData.js";import{Fragment as g}from"@dropins/tools/preact.js";import*as t from"@dropins/tools/preact-compat.js";import{useText as m,Text as C}from"@dropins/tools/i18n.js";const b=r=>t.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z",stroke:"currentColor"}),t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M6.75 12.762L10.2385 15.75L17.25 9",stroke:"currentColor"})),x=r=>t.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 12C0 5.37931 5.37931 0 12 0C18.6207 0 24 5.37931 24 12C24 18.6207 18.6207 24 12 24C5.37931 24 0 18.6207 0 12ZM11.8885 5.06101C11.1405 5.06101 10.5357 5.66579 10.5357 6.4138V6.57295C10.5835 7.27321 11.1882 7.81433 11.8885 7.76658H12.0795C12.7797 7.70292 13.289 7.09815 13.2413 6.4138C13.2413 5.66579 12.6365 5.06101 11.8885 5.06101ZM13.1935 16.8223H14.1007C14.2599 16.8223 14.4031 16.9655 14.4031 17.1247V17.7294C14.4031 17.9045 14.2599 18.0318 14.1007 18.0318H9.8832C9.70813 18.0318 9.58081 17.8886 9.58081 17.7294V17.1247C9.58081 16.9496 9.72405 16.8223 9.8832 16.8223H10.7904V10.7905H9.8832C9.70813 10.7905 9.58081 10.6472 9.58081 10.4881V9.88329C9.58081 9.70823 9.72405 9.58091 9.8832 9.58091H12.5888C12.923 9.58091 13.1935 9.85146 13.1935 10.1857V16.8223Z",fill:"currentColor"})),E=r=>t.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z",stroke:"currentColor"}),t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M11.75 5.88423V4.75H12.25V5.88423L12.0485 13.0713H11.9515L11.75 5.88423ZM11.7994 18.25V16.9868H12.2253V18.25H11.7994Z",stroke:"currentColor"})),_=({approvalFlow:r=[]})=>{const a=m({pending:"PurchaseOrders.approvalFlow.ariaLabels.icons.pending",approved:"PurchaseOrders.approvalFlow.ariaLabels.icons.approved",rejected:"PurchaseOrders.approvalFlow.ariaLabels.icons.rejected"});if(!(r!=null&&r.length))return e("div",{className:"b2b-purchase-order-approval-flow-content",children:e(C,{id:"PurchaseOrders.approvalFlow.emptyText"})});const s=o=>{switch(o){case"PENDING":return e(x,{className:"b2b-purchase-order-approval-flow-content__icon--pending","aria-label":a.pending,role:"img"});case"APPROVED":return e(b,{className:"b2b-purchase-order-approval-flow-content__icon--approved","aria-label":a.approved,role:"img"});case"REJECTED":return e(E,{className:"b2b-purchase-order-approval-flow-content__icon--rejected","aria-label":a.rejected,role:"img"});default:return null}};return e("div",{className:h(["b2b-purchase-order-approval-flow-content"]),children:e("ul",{className:"b2b-purchase-order-approval-flow-content__list",children:r.map((o,l)=>n(g,{children:[n("li",{className:"b2b-purchase-order-approval-flow-content__item",children:[e("div",{className:"b2b-purchase-order-approval-flow-content__title",children:o.ruleName}),o.events.map((c,i)=>n("div",{className:"b2b-purchase-order-approval-flow-content__description",children:[s(c.status),c.message]},i))]}),l<r.length-1&&e("hr",{className:"b2b-purchase-order-approval-flow-content__divider"})]},l))})})},Z=({className:r,withHeader:a=!0,withWrapper:s=!0})=>{const{poDataLoading:o,purchaseOrderData:l}=w(),c=m({headerText:"PurchaseOrders.approvalFlow.headerText"}),i=n(u,{children:[a&&s?e(p,{headerText:c.headerText,divider:!0}):null,o?n(v,{rowGap:"medium","data-testid":"approval-flow-loader",children:[e(d,{size:"small",variant:"row",fullWidth:!0,lines:1,style:{maxWidth:300}}),e(d,{size:"medium",variant:"row",fullWidth:!0,lines:1})]}):e(_,{approvalFlow:(l==null?void 0:l.approvalFlow)||[]})]});return n("div",{className:h(["b2b-purchase-order-approval-flow",r]),"data-testid":"order-approval-flow-container",children:[a&&!s?e(p,{headerText:c.headerText}):null,s?e(f,{variant:"secondary","data-testid":"orderApprovalFlowCard",children:i}):i]})};export{Z as PurchaseOrderApprovalFlow,Z as default};
4
4
  //# sourceMappingURL=PurchaseOrderApprovalFlow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PurchaseOrderApprovalFlow.js","sources":["../../node_modules/@adobe-commerce/elsie/src/icons/CheckWithCircle.svg","../../node_modules/@adobe-commerce/elsie/src/icons/InfoFilled.svg","../../node_modules/@adobe-commerce/elsie/src/icons/WarningWithCircle.svg","/@dropins/storefront-purchase-order/src/components/PurchaseOrderApprovalFlowContent/PurchaseOrderApprovalFlowContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderApprovalFlow/PurchaseOrderApprovalFlow.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgCheckWithCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M6.75 12.762L10.2385 15.75L17.25 9\", stroke: \"currentColor\" }));\nexport default SvgCheckWithCircle;\n","import * as React from \"react\";\nconst SvgInfoFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M0 12C0 5.37931 5.37931 0 12 0C18.6207 0 24 5.37931 24 12C24 18.6207 18.6207 24 12 24C5.37931 24 0 18.6207 0 12ZM11.8885 5.06101C11.1405 5.06101 10.5357 5.66579 10.5357 6.4138V6.57295C10.5835 7.27321 11.1882 7.81433 11.8885 7.76658H12.0795C12.7797 7.70292 13.289 7.09815 13.2413 6.4138C13.2413 5.66579 12.6365 5.06101 11.8885 5.06101ZM13.1935 16.8223H14.1007C14.2599 16.8223 14.4031 16.9655 14.4031 17.1247V17.7294C14.4031 17.9045 14.2599 18.0318 14.1007 18.0318H9.8832C9.70813 18.0318 9.58081 17.8886 9.58081 17.7294V17.1247C9.58081 16.9496 9.72405 16.8223 9.8832 16.8223H10.7904V10.7905H9.8832C9.70813 10.7905 9.58081 10.6472 9.58081 10.4881V9.88329C9.58081 9.70823 9.72405 9.58091 9.8832 9.58091H12.5888C12.923 9.58091 13.1935 9.85146 13.1935 10.1857V16.8223Z\", fill: \"currentColor\" }));\nexport default SvgInfoFilled;\n","import * as React from \"react\";\nconst SvgWarningWithCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M11.75 5.88423V4.75H12.25V5.88423L12.0485 13.0713H11.9515L11.75 5.88423ZM11.7994 18.25V16.9868H12.2253V18.25H11.7994Z\", stroke: \"currentColor\" }));\nexport default SvgWarningWithCircle;\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 { Fragment, FunctionComponent } from 'preact';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport '@/b2b-purchase-order/components/PurchaseOrderApprovalFlowContent/PurchaseOrderApprovalFlowContent.css';\nimport { PurchaseOrderApprovalFlowContentProps } from '@/b2b-purchase-order/types/components';\nimport { Text, useText } from '@adobe-commerce/elsie/i18n';\nimport {\n CheckWithCircle,\n InfoFilled,\n WarningWithCircle,\n} from '@adobe-commerce/elsie/icons';\n\nexport const PurchaseOrderApprovalFlowContent: FunctionComponent<\n PurchaseOrderApprovalFlowContentProps\n> = ({ approvalFlow = [] }) => {\n const t = useText({\n pending: 'PurchaseOrders.approvalFlow.ariaLabels.icons.pending',\n approved: 'PurchaseOrders.approvalFlow.ariaLabels.icons.approved',\n rejected: 'PurchaseOrders.approvalFlow.ariaLabels.icons.rejected',\n });\n if (!approvalFlow?.length) {\n return (\n <div className={'b2b-purchase-order-approval-flow-content'}>\n <Text id=\"PurchaseOrders.approvalFlow.emptyText\" />\n </div>\n );\n }\n\n const getIconWithAriaLabel = (\n type: 'PENDING' | 'APPROVED' | 'REJECTED' | string\n ) => {\n switch (type) {\n case 'PENDING': {\n return (\n <InfoFilled\n className={\n 'b2b-purchase-order-approval-flow-content__icon--pending'\n }\n aria-label={t.pending}\n role=\"img\"\n />\n );\n }\n case 'APPROVED': {\n return (\n <CheckWithCircle\n className={\n 'b2b-purchase-order-approval-flow-content__icon--approved'\n }\n aria-label={t.approved}\n role=\"img\"\n />\n );\n }\n case 'REJECTED': {\n return (\n <WarningWithCircle\n className={\n 'b2b-purchase-order-approval-flow-content__icon--rejected'\n }\n aria-label={t.rejected}\n role=\"img\"\n />\n );\n }\n\n default:\n return null;\n }\n };\n\n return (\n <div className={classes(['b2b-purchase-order-approval-flow-content'])}>\n <ul className={'b2b-purchase-order-approval-flow-content__list'}>\n {approvalFlow.map((item, index) => (\n <Fragment key={index}>\n <li className={'b2b-purchase-order-approval-flow-content__item'}>\n <div\n className={'b2b-purchase-order-approval-flow-content__title'}\n >\n {item.ruleName}\n </div>\n {item.events.map((event, evtIndex) => {\n return (\n <div\n key={evtIndex}\n className={\n 'b2b-purchase-order-approval-flow-content__description'\n }\n >\n {getIconWithAriaLabel(event.status)}\n {event.message}\n </div>\n );\n })}\n </li>\n {index < approvalFlow.length - 1 && (\n <hr\n className={'b2b-purchase-order-approval-flow-content__divider'}\n />\n )}\n </Fragment>\n ))}\n </ul>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrderApprovalFlowContent,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { Card, Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { usePurchaseOrderData } from '@/b2b-purchase-order/hooks';\nimport { PurchaseOrderApprovalFlowProps } from '@/b2b-purchase-order/types/containers';\n\nexport const PurchaseOrderApprovalFlow: Container<\n PurchaseOrderApprovalFlowProps\n> = ({ className, withHeader = true, withWrapper = true }) => {\n const { poDataLoading, purchaseOrderData } = usePurchaseOrderData();\n const t = useText({\n headerText: 'PurchaseOrders.approvalFlow.headerText',\n });\n\n const renderApprovalFlow = !poDataLoading ? (\n <PurchaseOrderApprovalFlowContent\n approvalFlow={purchaseOrderData?.approvalFlow || []}\n />\n ) : (\n <Skeleton rowGap=\"medium\" data-testid=\"approval-flow-loader\">\n <SkeletonRow\n size=\"small\"\n variant=\"row\"\n fullWidth\n lines={1}\n style={{ maxWidth: 300 }}\n />\n <SkeletonRow size=\"medium\" variant=\"row\" fullWidth lines={1} />\n </Skeleton>\n );\n\n return (\n <div\n className={classes(['b2b-purchase-order-approval-flow', className])}\n data-testid=\"order-approval-flow-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"orderApprovalFlowCard\">\n {renderApprovalFlow}\n </Card>\n ) : (\n renderApprovalFlow\n )}\n </div>\n );\n};\n"],"names":["SvgCheckWithCircle","props","React","SvgInfoFilled","SvgWarningWithCircle","PurchaseOrderApprovalFlowContent","approvalFlow","t","useText","jsx","Text","getIconWithAriaLabel","type","InfoFilled","CheckWithCircle","WarningWithCircle","classes","item","index","Fragment","jsxs","event","evtIndex","PurchaseOrderApprovalFlow","className","withHeader","withWrapper","poDataLoading","purchaseOrderData","usePurchaseOrderData","renderApprovalFlow","Skeleton","SkeletonRow","PurchaseOrdersHeader","Card"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"PurchaseOrderApprovalFlow.js","sources":["../../node_modules/@adobe-commerce/elsie/src/icons/CheckWithCircle.svg","../../node_modules/@adobe-commerce/elsie/src/icons/InfoFilled.svg","../../node_modules/@adobe-commerce/elsie/src/icons/WarningWithCircle.svg","/@dropins/storefront-purchase-order/src/components/PurchaseOrderApprovalFlowContent/PurchaseOrderApprovalFlowContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderApprovalFlow/PurchaseOrderApprovalFlow.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgCheckWithCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M6.75 12.762L10.2385 15.75L17.25 9\", stroke: \"currentColor\" }));\nexport default SvgCheckWithCircle;\n","import * as React from \"react\";\nconst SvgInfoFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M0 12C0 5.37931 5.37931 0 12 0C18.6207 0 24 5.37931 24 12C24 18.6207 18.6207 24 12 24C5.37931 24 0 18.6207 0 12ZM11.8885 5.06101C11.1405 5.06101 10.5357 5.66579 10.5357 6.4138V6.57295C10.5835 7.27321 11.1882 7.81433 11.8885 7.76658H12.0795C12.7797 7.70292 13.289 7.09815 13.2413 6.4138C13.2413 5.66579 12.6365 5.06101 11.8885 5.06101ZM13.1935 16.8223H14.1007C14.2599 16.8223 14.4031 16.9655 14.4031 17.1247V17.7294C14.4031 17.9045 14.2599 18.0318 14.1007 18.0318H9.8832C9.70813 18.0318 9.58081 17.8886 9.58081 17.7294V17.1247C9.58081 16.9496 9.72405 16.8223 9.8832 16.8223H10.7904V10.7905H9.8832C9.70813 10.7905 9.58081 10.6472 9.58081 10.4881V9.88329C9.58081 9.70823 9.72405 9.58091 9.8832 9.58091H12.5888C12.923 9.58091 13.1935 9.85146 13.1935 10.1857V16.8223Z\", fill: \"currentColor\" }));\nexport default SvgInfoFilled;\n","import * as React from \"react\";\nconst SvgWarningWithCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M11.75 5.88423V4.75H12.25V5.88423L12.0485 13.0713H11.9515L11.75 5.88423ZM11.7994 18.25V16.9868H12.2253V18.25H11.7994Z\", stroke: \"currentColor\" }));\nexport default SvgWarningWithCircle;\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 { Fragment, FunctionComponent } from 'preact';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport '@/b2b-purchase-order/components/PurchaseOrderApprovalFlowContent/PurchaseOrderApprovalFlowContent.css';\nimport { PurchaseOrderApprovalFlowContentProps } from '@/b2b-purchase-order/types/components';\nimport { Text, useText } from '@adobe-commerce/elsie/i18n';\nimport {\n CheckWithCircle,\n InfoFilled,\n WarningWithCircle,\n} from '@adobe-commerce/elsie/icons';\n\nexport const PurchaseOrderApprovalFlowContent: FunctionComponent<\n PurchaseOrderApprovalFlowContentProps\n> = ({ approvalFlow = [] }) => {\n const t = useText({\n pending: 'PurchaseOrders.approvalFlow.ariaLabels.icons.pending',\n approved: 'PurchaseOrders.approvalFlow.ariaLabels.icons.approved',\n rejected: 'PurchaseOrders.approvalFlow.ariaLabels.icons.rejected',\n });\n if (!approvalFlow?.length) {\n return (\n <div className={'b2b-purchase-order-approval-flow-content'}>\n <Text id=\"PurchaseOrders.approvalFlow.emptyText\" />\n </div>\n );\n }\n\n const getIconWithAriaLabel = (\n type: 'PENDING' | 'APPROVED' | 'REJECTED' | string\n ) => {\n switch (type) {\n case 'PENDING': {\n return (\n <InfoFilled\n className={\n 'b2b-purchase-order-approval-flow-content__icon--pending'\n }\n aria-label={t.pending}\n role=\"img\"\n />\n );\n }\n case 'APPROVED': {\n return (\n <CheckWithCircle\n className={\n 'b2b-purchase-order-approval-flow-content__icon--approved'\n }\n aria-label={t.approved}\n role=\"img\"\n />\n );\n }\n case 'REJECTED': {\n return (\n <WarningWithCircle\n className={\n 'b2b-purchase-order-approval-flow-content__icon--rejected'\n }\n aria-label={t.rejected}\n role=\"img\"\n />\n );\n }\n\n default:\n return null;\n }\n };\n\n return (\n <div className={classes(['b2b-purchase-order-approval-flow-content'])}>\n <ul className={'b2b-purchase-order-approval-flow-content__list'}>\n {approvalFlow.map((item, index) => (\n <Fragment key={index}>\n <li className={'b2b-purchase-order-approval-flow-content__item'}>\n <div\n className={'b2b-purchase-order-approval-flow-content__title'}\n >\n {item.ruleName}\n </div>\n {item.events.map((event, evtIndex) => {\n return (\n <div\n key={evtIndex}\n className={\n 'b2b-purchase-order-approval-flow-content__description'\n }\n >\n {getIconWithAriaLabel(event.status)}\n {event.message}\n </div>\n );\n })}\n </li>\n {index < approvalFlow.length - 1 && (\n <hr\n className={'b2b-purchase-order-approval-flow-content__divider'}\n />\n )}\n </Fragment>\n ))}\n </ul>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrderApprovalFlowContent,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { Card, Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { usePurchaseOrderData } from '@/b2b-purchase-order/hooks';\nimport { PurchaseOrderApprovalFlowProps } from '@/b2b-purchase-order/types/containers';\n\nexport const PurchaseOrderApprovalFlow: Container<\n PurchaseOrderApprovalFlowProps\n> = ({ className, withHeader = true, withWrapper = true }) => {\n const { poDataLoading, purchaseOrderData } = usePurchaseOrderData();\n const t = useText({\n headerText: 'PurchaseOrders.approvalFlow.headerText',\n });\n\n const renderApprovalFlow = (\n <>\n {withHeader && withWrapper ? (\n <PurchaseOrdersHeader headerText={t.headerText} divider={true} />\n ) : null}\n {!poDataLoading ? (\n <PurchaseOrderApprovalFlowContent\n approvalFlow={purchaseOrderData?.approvalFlow || []}\n />\n ) : (\n <Skeleton rowGap=\"medium\" data-testid=\"approval-flow-loader\">\n <SkeletonRow\n size=\"small\"\n variant=\"row\"\n fullWidth\n lines={1}\n style={{ maxWidth: 300 }}\n />\n <SkeletonRow size=\"medium\" variant=\"row\" fullWidth lines={1} />\n </Skeleton>\n )}\n </>\n );\n\n return (\n <div\n className={classes(['b2b-purchase-order-approval-flow', className])}\n data-testid=\"order-approval-flow-container\"\n >\n {withHeader && !withWrapper ? (\n <PurchaseOrdersHeader headerText={t.headerText} />\n ) : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"orderApprovalFlowCard\">\n {renderApprovalFlow}\n </Card>\n ) : (\n renderApprovalFlow\n )}\n </div>\n );\n};\n"],"names":["SvgCheckWithCircle","props","React","SvgInfoFilled","SvgWarningWithCircle","PurchaseOrderApprovalFlowContent","approvalFlow","t","useText","jsx","Text","getIconWithAriaLabel","type","InfoFilled","CheckWithCircle","WarningWithCircle","classes","item","index","Fragment","jsxs","event","evtIndex","PurchaseOrderApprovalFlow","className","withHeader","withWrapper","poDataLoading","purchaseOrderData","usePurchaseOrderData","renderApprovalFlow","PurchaseOrdersHeader","Skeleton","SkeletonRow","Card"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsxs as c,jsx as m}from"@dropins/tools/preact-jsx-runtime.js";import{classes as h}from"@dropins/tools/lib.js";import{TextArea as T,Button as A,Card as y,Skeleton as w,SkeletonRow as x}from"@dropins/tools/components.js";import{events as F}from"@dropins/tools/event-bus.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{P as S}from"../chunks/PurchaseOrdersHeader.js";import{useState as a,useMemo as k,useCallback as b}from"@dropins/tools/preact-hooks.js";import{u as M}from"../chunks/usePurchaseOrderData.js";import"@dropins/tools/preact.js";import{a as V}from"../chunks/addPurchaseOrderComment.js";import{useText as j}from"@dropins/tools/i18n.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/fetch-error.js";const p=({t:n,purchaseOrderData:e})=>{const[i,l]=a(!1),[t,s]=a(""),[r,u]=a(""),C=k(()=>!t.trim().length||!(e!=null&&e.uid)||i,[t,e,i]),g=b(d=>{const o=d.target.value;s(o),r&&u("")},[r]),P=b(()=>{const d=(e==null?void 0:e.uid)??"";!d||!t.trim().length||(l(!0),V(d,t).then(o=>{var f;if(o&&(e!=null&&e.uid)){const v=[{uid:o.uid,createdAt:o.createdAt,author:o.author,text:o.text}];F.emit("purchase-order/data",{...e,comments:(f=e==null?void 0:e.comments)==null?void 0:f.concat(v)}),s("")}}).catch(()=>{u(n.errorMessage||"Failed to add comment. Please try again.")}).finally(()=>{l(!1)}))},[e,t,n]);return c("div",{className:h(["b2b-purchase-order-comment-form-content"]),children:[m(T,{errorMessage:r,disabled:i,value:t,label:n.textAreaPlaceholder,onChange:g}),m(A,{variant:"primary",disabled:C,onClick:P,children:n.buttonText})]})},Q=({withHeader:n=!0,withWrapper:e=!0,className:i})=>{const{poDataLoading:l,purchaseOrderData:t}=M(),s=j({headerText:"PurchaseOrders.comments.add.headerText",buttonText:"PurchaseOrders.comments.add.submit",textAreaPlaceholder:"PurchaseOrders.comments.add.placeholder"}),r=l?c(w,{rowGap:"medium","data-testid":"comment-form-loader",children:[m(x,{size:"xlarge",variant:"row",fullWidth:!0,lines:5,style:{maxWidth:500}}),m(x,{size:"medium",variant:"row",lines:1})]}):m(p,{purchaseOrderData:t,t:s});return c("div",{className:h(["b2b-purchase-order-comment-form",i]),"data-testid":"order-history-log-container",children:[n?m(S,{headerText:s.headerText}):null,e?m(y,{variant:"secondary","data-testid":"orderCommentFormCard",children:r}):r]})};export{Q as PurchaseOrderCommentForm,Q as default};
3
+ import{jsxs as l,jsx as o,Fragment as v}from"@dropins/tools/preact-jsx-runtime.js";import{classes as b}from"@dropins/tools/lib.js";import{TextArea as T,Button as y,Skeleton as F,SkeletonRow as f,Card as A}from"@dropins/tools/components.js";import{events as S}from"@dropins/tools/event-bus.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{P as h}from"../chunks/PurchaseOrdersHeader.js";import{useState as c,useMemo as k,useCallback as x}from"@dropins/tools/preact-hooks.js";import{u as p}from"../chunks/usePurchaseOrderData.js";import"@dropins/tools/preact.js";import{a as M}from"../chunks/addPurchaseOrderComment.js";import{useText as V}from"@dropins/tools/i18n.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/fetch-error.js";const j=({t:r,purchaseOrderData:e})=>{const[s,i]=c(!1),[t,m]=c(""),[n,u]=c(""),g=k(()=>!t.trim().length||!(e!=null&&e.uid)||s,[t,e,s]),C=x(d=>{const a=d.target.value;m(a),n&&u("")},[n]),P=x(()=>{const d=(e==null?void 0:e.uid)??"";!d||!t.trim().length||(i(!0),M(d,t).then(a=>{a&&(e!=null&&e.uid)&&(S.emit("purchase-order/refresh",!0),m(""))}).catch(()=>{u(r.errorMessage||"Failed to add comment. Please try again.")}).finally(()=>{i(!1)}))},[e,t,r]);return l("div",{className:b(["b2b-purchase-order-comment-form-content"]),children:[o(T,{errorMessage:n,disabled:s,value:t,label:r.textAreaPlaceholder,onChange:C}),o(y,{variant:"primary",disabled:g,onClick:P,children:r.buttonText})]})},Q=({withHeader:r=!0,withWrapper:e=!0,className:s})=>{const{poDataLoading:i,purchaseOrderData:t}=p(),m=V({headerText:"PurchaseOrders.comments.add.headerText",buttonText:"PurchaseOrders.comments.add.submit",textAreaPlaceholder:"PurchaseOrders.comments.add.placeholder"}),n=l(v,{children:[r&&e?o(h,{headerText:m.headerText,divider:!0}):null,i?l(F,{rowGap:"medium","data-testid":"comment-form-loader",children:[o(f,{size:"xlarge",variant:"row",fullWidth:!0,lines:2,style:{maxWidth:500}}),o(f,{size:"medium",variant:"row",lines:1})]}):o(j,{purchaseOrderData:t,t:m})]});return l("div",{className:b(["b2b-purchase-order-comment-form",s]),"data-testid":"order-history-log-container",children:[r&&!e?o(h,{headerText:m.headerText}):null,e?o(A,{variant:"secondary","data-testid":"orderCommentFormCard",children:n}):n]})};export{Q as PurchaseOrderCommentForm,Q as default};
4
4
  //# sourceMappingURL=PurchaseOrderCommentForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PurchaseOrderCommentForm.js","sources":["/@dropins/storefront-purchase-order/src/components/PurchaseOrderCommentFormContent/PurchaseOrderCommentFormContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderCommentForm/PurchaseOrderCommentForm.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 { useState, useMemo, useCallback } from 'preact/hooks';\nimport { FunctionComponent } from 'preact';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { Button, TextArea } from '@adobe-commerce/elsie/components';\nimport { addPurchaseOrderComment } from '@/b2b-purchase-order/api';\nimport '@/b2b-purchase-order/components/PurchaseOrderCommentFormContent/PurchaseOrderCommentFormContent.css';\nimport { PurchaseOrderCommentFormContentProps } from '@/b2b-purchase-order/types/components';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const PurchaseOrderCommentFormContent: FunctionComponent<\n PurchaseOrderCommentFormContentProps\n> = ({ t, purchaseOrderData }) => {\n const [loading, setLoading] = useState(false);\n const [textAreaValue, setTextAreaValue] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n\n const isSubmitDisabled = useMemo(\n () => !textAreaValue.trim().length || !purchaseOrderData?.uid || loading,\n [textAreaValue, purchaseOrderData, loading]\n );\n\n const handleUpdateCommentValue = useCallback(\n (event: Event) => {\n const value = (event.target as HTMLTextAreaElement).value;\n setTextAreaValue(value);\n if (errorMessage) {\n setErrorMessage('');\n }\n },\n [errorMessage]\n );\n\n const handleSubmitComment = useCallback(() => {\n const uid = purchaseOrderData?.uid ?? '';\n if (!uid || !textAreaValue.trim().length) {\n return;\n }\n\n setLoading(true);\n\n addPurchaseOrderComment(uid, textAreaValue)\n .then((data) => {\n if (data && purchaseOrderData?.uid) {\n const newComment = [\n {\n uid: data.uid,\n createdAt: data.createdAt,\n author: data.author,\n text: data.text,\n },\n ];\n events.emit('purchase-order/data', {\n ...purchaseOrderData,\n comments: purchaseOrderData?.comments?.concat(newComment),\n });\n setTextAreaValue('');\n }\n })\n .catch(() => {\n setErrorMessage(\n t.errorMessage || 'Failed to add comment. Please try again.'\n );\n })\n .finally(() => {\n setLoading(false);\n });\n }, [purchaseOrderData, textAreaValue, t]);\n\n return (\n <div className={classes(['b2b-purchase-order-comment-form-content'])}>\n <TextArea\n errorMessage={errorMessage}\n disabled={loading}\n value={textAreaValue}\n label={t.textAreaPlaceholder}\n onChange={handleUpdateCommentValue}\n />\n <Button\n variant=\"primary\"\n disabled={isSubmitDisabled}\n onClick={handleSubmitComment}\n >\n {t.buttonText}\n </Button>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrderCommentFormContent,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { Card, Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport { usePurchaseOrderData } from '@/b2b-purchase-order/hooks';\nimport { PurchaseOrderCommentFormProps } from '@/b2b-purchase-order/types/containers';\n\nexport const PurchaseOrderCommentForm: Container<\n PurchaseOrderCommentFormProps\n> = ({ withHeader = true, withWrapper = true, className }) => {\n const { poDataLoading, purchaseOrderData } = usePurchaseOrderData();\n\n const t = useText({\n headerText: 'PurchaseOrders.comments.add.headerText',\n buttonText: 'PurchaseOrders.comments.add.submit',\n textAreaPlaceholder: 'PurchaseOrders.comments.add.placeholder',\n });\n\n const renderCommentForm = !poDataLoading ? (\n <PurchaseOrderCommentFormContent\n purchaseOrderData={purchaseOrderData}\n t={t}\n />\n ) : (\n <Skeleton rowGap=\"medium\" data-testid=\"comment-form-loader\">\n <SkeletonRow\n size=\"xlarge\"\n variant=\"row\"\n fullWidth\n lines={5}\n style={{ maxWidth: 500 }}\n />\n <SkeletonRow size=\"medium\" variant=\"row\" lines={1} />\n </Skeleton>\n );\n\n return (\n <div\n className={classes(['b2b-purchase-order-comment-form', className])}\n data-testid=\"order-history-log-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"orderCommentFormCard\">\n {renderCommentForm}\n </Card>\n ) : (\n renderCommentForm\n )}\n </div>\n );\n};\n"],"names":["PurchaseOrderCommentFormContent","t","purchaseOrderData","loading","setLoading","useState","textAreaValue","setTextAreaValue","errorMessage","setErrorMessage","isSubmitDisabled","useMemo","handleUpdateCommentValue","useCallback","event","value","handleSubmitComment","uid","addPurchaseOrderComment","data","newComment","events","_a","classes","jsx","TextArea","Button","PurchaseOrderCommentForm","withHeader","withWrapper","className","poDataLoading","usePurchaseOrderData","useText","renderCommentForm","jsxs","Skeleton","SkeletonRow","PurchaseOrdersHeader","Card"],"mappings":"swBA0BO,MAAMA,EAET,CAAC,CAAE,EAAAC,EAAG,kBAAAC,KAAwB,CAChC,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAS,EAAK,EACtC,CAACC,EAAeC,CAAgB,EAAIF,EAAS,EAAE,EAC/C,CAACG,EAAcC,CAAe,EAAIJ,EAAS,EAAE,EAE7CK,EAAmBC,EACvB,IAAM,CAACL,EAAc,KAAA,EAAO,QAAU,EAACJ,GAAA,MAAAA,EAAmB,MAAOC,EACjE,CAACG,EAAeJ,EAAmBC,CAAO,CAAA,EAGtCS,EAA2BC,EAC9BC,GAAiB,CAChB,MAAMC,EAASD,EAAM,OAA+B,MACpDP,EAAiBQ,CAAK,EAClBP,GACFC,EAAgB,EAAE,CAEtB,EACA,CAACD,CAAY,CAAA,EAGTQ,EAAsBH,EAAY,IAAM,CAC5C,MAAMI,GAAMf,GAAA,YAAAA,EAAmB,MAAO,GAClC,CAACe,GAAO,CAACX,EAAc,KAAA,EAAO,SAIlCF,EAAW,EAAI,EAEfc,EAAwBD,EAAKX,CAAa,EACvC,KAAMa,GAAS,OACd,GAAIA,IAAQjB,GAAA,MAAAA,EAAmB,KAAK,CAClC,MAAMkB,EAAa,CACjB,CACE,IAAKD,EAAK,IACV,UAAWA,EAAK,UAChB,OAAQA,EAAK,OACb,KAAMA,EAAK,IAAA,CACb,EAEFE,EAAO,KAAK,sBAAuB,CACjC,GAAGnB,EACH,UAAUoB,EAAApB,GAAA,YAAAA,EAAmB,WAAnB,YAAAoB,EAA6B,OAAOF,EAAU,CACzD,EACDb,EAAiB,EAAE,CACrB,CACF,CAAC,EACA,MAAM,IAAM,CACXE,EACER,EAAE,cAAgB,0CAAA,CAEtB,CAAC,EACA,QAAQ,IAAM,CACbG,EAAW,EAAK,CAClB,CAAC,EACL,EAAG,CAACF,EAAmBI,EAAeL,CAAC,CAAC,EAExC,SACG,MAAA,CAAI,UAAWsB,EAAQ,CAAC,yCAAyC,CAAC,EACjE,SAAA,CAAAC,EAACC,EAAA,CACC,aAAAjB,EACA,SAAUL,EACV,MAAOG,EACP,MAAOL,EAAE,oBACT,SAAUW,CAAA,CAAA,EAEZY,EAACE,EAAA,CACC,QAAQ,UACR,SAAUhB,EACV,QAASM,EAER,SAAAf,EAAE,UAAA,CAAA,CACL,EACF,CAEJ,EC5Ea0B,EAET,CAAC,CAAE,WAAAC,EAAa,GAAM,YAAAC,EAAc,GAAM,UAAAC,KAAgB,CAC5D,KAAM,CAAE,cAAAC,EAAe,kBAAA7B,CAAA,EAAsB8B,EAAA,EAEvC/B,EAAIgC,EAAQ,CAChB,WAAY,yCACZ,WAAY,qCACZ,oBAAqB,yCAAA,CACtB,EAEKC,EAAqBH,EAMzBI,EAACC,EAAA,CAAS,OAAO,SAAS,cAAY,sBACpC,SAAA,CAAAZ,EAACa,EAAA,CACC,KAAK,SACL,QAAQ,MACR,UAAS,GACT,MAAO,EACP,MAAO,CAAE,SAAU,GAAA,CAAI,CAAA,IAExBA,EAAA,CAAY,KAAK,SAAS,QAAQ,MAAM,MAAO,CAAA,CAAG,CAAA,EACrD,EAdAb,EAACxB,EAAA,CACC,kBAAAE,EACA,EAAAD,CAAA,CAAA,EAeJ,OACEkC,EAAC,MAAA,CACC,UAAWZ,EAAQ,CAAC,kCAAmCO,CAAS,CAAC,EACjE,cAAY,8BAEX,SAAA,CAAAF,EAAaJ,EAACc,EAAA,CAAqB,WAAYrC,EAAE,WAAY,EAAK,KAClE4B,IACEU,EAAA,CAAK,QAAS,YAAa,cAAY,uBACrC,WACH,EAEAL,CAAA,CAAA,CAAA,CAIR"}
1
+ {"version":3,"file":"PurchaseOrderCommentForm.js","sources":["/@dropins/storefront-purchase-order/src/components/PurchaseOrderCommentFormContent/PurchaseOrderCommentFormContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderCommentForm/PurchaseOrderCommentForm.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 { useState, useMemo, useCallback } from 'preact/hooks';\nimport { FunctionComponent } from 'preact';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { Button, TextArea } from '@adobe-commerce/elsie/components';\nimport { addPurchaseOrderComment } from '@/b2b-purchase-order/api';\nimport '@/b2b-purchase-order/components/PurchaseOrderCommentFormContent/PurchaseOrderCommentFormContent.css';\nimport { PurchaseOrderCommentFormContentProps } from '@/b2b-purchase-order/types/components';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const PurchaseOrderCommentFormContent: FunctionComponent<\n PurchaseOrderCommentFormContentProps\n> = ({ t, purchaseOrderData }) => {\n const [loading, setLoading] = useState(false);\n const [textAreaValue, setTextAreaValue] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n\n const isSubmitDisabled = useMemo(\n () => !textAreaValue.trim().length || !purchaseOrderData?.uid || loading,\n [textAreaValue, purchaseOrderData, loading]\n );\n\n const handleUpdateCommentValue = useCallback(\n (event: Event) => {\n const value = (event.target as HTMLTextAreaElement).value;\n setTextAreaValue(value);\n if (errorMessage) {\n setErrorMessage('');\n }\n },\n [errorMessage]\n );\n\n const handleSubmitComment = useCallback(() => {\n const uid = purchaseOrderData?.uid ?? '';\n if (!uid || !textAreaValue.trim().length) {\n return;\n }\n\n setLoading(true);\n\n addPurchaseOrderComment(uid, textAreaValue)\n .then((data) => {\n if (data && purchaseOrderData?.uid) {\n events.emit('purchase-order/refresh', true);\n setTextAreaValue('');\n }\n })\n .catch(() => {\n setErrorMessage(\n t.errorMessage || 'Failed to add comment. Please try again.'\n );\n })\n .finally(() => {\n setLoading(false);\n });\n }, [purchaseOrderData, textAreaValue, t]);\n\n return (\n <div className={classes(['b2b-purchase-order-comment-form-content'])}>\n <TextArea\n errorMessage={errorMessage}\n disabled={loading}\n value={textAreaValue}\n label={t.textAreaPlaceholder}\n onChange={handleUpdateCommentValue}\n />\n <Button\n variant=\"primary\"\n disabled={isSubmitDisabled}\n onClick={handleSubmitComment}\n >\n {t.buttonText}\n </Button>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrderCommentFormContent,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { Card, Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport { usePurchaseOrderData } from '@/b2b-purchase-order/hooks';\nimport { PurchaseOrderCommentFormProps } from '@/b2b-purchase-order/types/containers';\n\nexport const PurchaseOrderCommentForm: Container<\n PurchaseOrderCommentFormProps\n> = ({ withHeader = true, withWrapper = true, className }) => {\n const { poDataLoading, purchaseOrderData } = usePurchaseOrderData();\n\n const t = useText({\n headerText: 'PurchaseOrders.comments.add.headerText',\n buttonText: 'PurchaseOrders.comments.add.submit',\n textAreaPlaceholder: 'PurchaseOrders.comments.add.placeholder',\n });\n\n const renderCommentForm = (\n <>\n {withHeader && withWrapper ? (\n <PurchaseOrdersHeader headerText={t.headerText} divider={true} />\n ) : null}\n {!poDataLoading ? (\n <PurchaseOrderCommentFormContent\n purchaseOrderData={purchaseOrderData}\n t={t}\n />\n ) : (\n <Skeleton rowGap=\"medium\" data-testid=\"comment-form-loader\">\n <SkeletonRow\n size=\"xlarge\"\n variant=\"row\"\n fullWidth\n lines={2}\n style={{ maxWidth: 500 }}\n />\n <SkeletonRow size=\"medium\" variant=\"row\" lines={1} />\n </Skeleton>\n )}\n </>\n );\n\n return (\n <div\n className={classes(['b2b-purchase-order-comment-form', className])}\n data-testid=\"order-history-log-container\"\n >\n {withHeader && !withWrapper ? (\n <PurchaseOrdersHeader headerText={t.headerText} />\n ) : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"orderCommentFormCard\">\n {renderCommentForm}\n </Card>\n ) : (\n renderCommentForm\n )}\n </div>\n );\n};\n"],"names":["PurchaseOrderCommentFormContent","t","purchaseOrderData","loading","setLoading","useState","textAreaValue","setTextAreaValue","errorMessage","setErrorMessage","isSubmitDisabled","useMemo","handleUpdateCommentValue","useCallback","event","value","handleSubmitComment","uid","addPurchaseOrderComment","data","events","classes","jsx","TextArea","Button","PurchaseOrderCommentForm","withHeader","withWrapper","className","poDataLoading","usePurchaseOrderData","useText","renderCommentForm","jsxs","Fragment","PurchaseOrdersHeader","Skeleton","SkeletonRow","Card"],"mappings":"oxBA0BO,MAAMA,EAET,CAAC,CAAE,EAAAC,EAAG,kBAAAC,KAAwB,CAChC,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAS,EAAK,EACtC,CAACC,EAAeC,CAAgB,EAAIF,EAAS,EAAE,EAC/C,CAACG,EAAcC,CAAe,EAAIJ,EAAS,EAAE,EAE7CK,EAAmBC,EACvB,IAAM,CAACL,EAAc,KAAA,EAAO,QAAU,EAACJ,GAAA,MAAAA,EAAmB,MAAOC,EACjE,CAACG,EAAeJ,EAAmBC,CAAO,CAAA,EAGtCS,EAA2BC,EAC9BC,GAAiB,CAChB,MAAMC,EAASD,EAAM,OAA+B,MACpDP,EAAiBQ,CAAK,EAClBP,GACFC,EAAgB,EAAE,CAEtB,EACA,CAACD,CAAY,CAAA,EAGTQ,EAAsBH,EAAY,IAAM,CAC5C,MAAMI,GAAMf,GAAA,YAAAA,EAAmB,MAAO,GAClC,CAACe,GAAO,CAACX,EAAc,KAAA,EAAO,SAIlCF,EAAW,EAAI,EAEfc,EAAwBD,EAAKX,CAAa,EACvC,KAAMa,GAAS,CACVA,IAAQjB,GAAA,MAAAA,EAAmB,OAC7BkB,EAAO,KAAK,yBAA0B,EAAI,EAC1Cb,EAAiB,EAAE,EAEvB,CAAC,EACA,MAAM,IAAM,CACXE,EACER,EAAE,cAAgB,0CAAA,CAEtB,CAAC,EACA,QAAQ,IAAM,CACbG,EAAW,EAAK,CAClB,CAAC,EACL,EAAG,CAACF,EAAmBI,EAAeL,CAAC,CAAC,EAExC,SACG,MAAA,CAAI,UAAWoB,EAAQ,CAAC,yCAAyC,CAAC,EACjE,SAAA,CAAAC,EAACC,EAAA,CACC,aAAAf,EACA,SAAUL,EACV,MAAOG,EACP,MAAOL,EAAE,oBACT,SAAUW,CAAA,CAAA,EAEZU,EAACE,EAAA,CACC,QAAQ,UACR,SAAUd,EACV,QAASM,EAER,SAAAf,EAAE,UAAA,CAAA,CACL,EACF,CAEJ,ECjEawB,EAET,CAAC,CAAE,WAAAC,EAAa,GAAM,YAAAC,EAAc,GAAM,UAAAC,KAAgB,CAC5D,KAAM,CAAE,cAAAC,EAAe,kBAAA3B,CAAA,EAAsB4B,EAAA,EAEvC7B,EAAI8B,EAAQ,CAChB,WAAY,yCACZ,WAAY,qCACZ,oBAAqB,yCAAA,CACtB,EAEKC,EACJC,EAAAC,EAAA,CACG,SAAA,CAAAR,GAAcC,IACZQ,EAAA,CAAqB,WAAYlC,EAAE,WAAY,QAAS,GAAM,EAC7D,KACF4B,EAMAI,EAACG,EAAA,CAAS,OAAO,SAAS,cAAY,sBACpC,SAAA,CAAAd,EAACe,EAAA,CACC,KAAK,SACL,QAAQ,MACR,UAAS,GACT,MAAO,EACP,MAAO,CAAE,SAAU,GAAA,CAAI,CAAA,IAExBA,EAAA,CAAY,KAAK,SAAS,QAAQ,MAAM,MAAO,CAAA,CAAG,CAAA,CAAA,CACrD,EAdAf,EAACtB,EAAA,CACC,kBAAAE,EACA,EAAAD,CAAA,CAAA,CAYF,EAEJ,EAGF,OACEgC,EAAC,MAAA,CACC,UAAWZ,EAAQ,CAAC,kCAAmCO,CAAS,CAAC,EACjE,cAAY,8BAEX,SAAA,CAAAF,GAAc,CAACC,EACdL,EAACa,GAAqB,WAAYlC,EAAE,WAAY,EAC9C,KACH0B,IACEW,EAAA,CAAK,QAAS,YAAa,cAAY,uBACrC,WACH,EAEAN,CAAA,CAAA,CAAA,CAIR"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as e,jsxs as a}from"@dropins/tools/preact-jsx-runtime.js";import{classes as f}from"@dropins/tools/lib.js";import{useState as v}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import{Button as x,Skeleton as L,SkeletonRow as u,Card as _}from"@dropins/tools/components.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{u as P}from"../chunks/usePurchaseOrderData.js";import{useText as b,Text as p}from"@dropins/tools/i18n.js";import{P as N}from"../chunks/PurchaseOrdersHeader.js";import{Fragment as g}from"@dropins/tools/preact.js";import{f as C}from"../chunks/formatDate.js";const O=({commentsList:t=[],visibleRecordsLimit:o=5})=>{const[n,d]=v(o),s=t.length>n,c=t.length<=o,i=b({showMoreLabel:"PurchaseOrders.comments.view.ariaLabel.showMore",showLessLabel:"PurchaseOrders.comments.view.ariaLabel.showLess"});return t.length?a("div",{className:"b2b-purchase-order-comment-list-content",children:[e("ul",{className:"b2b-purchase-order-comment-list-content__list",children:t.slice(0,n).map((r,m)=>{var l,h;const w=Math.min(n,t.length);return a(g,{children:[a("li",{className:"b2b-purchase-order-comment-list-content__item",children:[a("div",{className:"b2b-purchase-order-comment-list-content__title",children:[C(r.createdAt),(l=r.author)!=null&&l.firstname&&((h=r.author)!=null&&h.lastname)?` (${r.author.firstname} ${r.author.lastname})`:""]}),e("div",{className:"b2b-purchase-order-comment-list-content__description",children:r.text})]}),m<w-1&&e("hr",{className:"b2b-purchase-order-comment-list-content__divider"})]},r.uid)})}),!c&&e("div",{className:"b2b-purchase-order-comment-list-content__actions",children:e(x,{variant:"secondary","aria-expanded":!s,"aria-label":s?i.showMoreLabel:i.showLessLabel,onClick:()=>{d(s?t.length:o)},children:e(p,{id:`PurchaseOrders.comments.view.buttons.${s?"viewMore":"viewLess"}`})})})]}):e("div",{className:"b2b-purchase-order-comment-list-content",children:e(p,{id:"PurchaseOrders.comments.view.emptyText"})})},A=({withHeader:t=!0,withWrapper:o=!0,visibleRecordsLimit:n=5,className:d})=>{const{poDataLoading:s,purchaseOrderData:c}=P(),i=b({headerText:"PurchaseOrders.comments.view.headerText"}),r=(c==null?void 0:c.comments)||[],m=s?a(L,{rowGap:"medium","data-testid":"comment-list-loader",children:[e(u,{size:"small",variant:"row",fullWidth:!0,lines:1,style:{maxWidth:300}}),e(u,{size:"medium",variant:"row",fullWidth:!0,lines:1})]}):e(O,{commentsList:r.reverse(),visibleRecordsLimit:n});return a("div",{className:f(["b2b-purchase-order-comment-list",d]),"data-testid":"order-comment-list-container",children:[t?e(N,{headerText:i.headerText}):null,o?e(_,{variant:"secondary","data-testid":"orderCommentListCard",children:m}):m]})};export{A as PurchaseOrderCommentsList,A as default};
3
+ import{jsx as e,jsxs as a,Fragment as w}from"@dropins/tools/preact-jsx-runtime.js";import{classes as x}from"@dropins/tools/lib.js";import{useState as L}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import{Button as _,Skeleton as g,SkeletonRow as u,Card as P}from"@dropins/tools/components.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{u as N}from"../chunks/usePurchaseOrderData.js";import{useText as v,Text as b}from"@dropins/tools/i18n.js";import{P as p}from"../chunks/PurchaseOrdersHeader.js";import{Fragment as T}from"@dropins/tools/preact.js";import{f as C}from"../chunks/formatDate.js";const O=({commentsList:r=[],visibleRecordsLimit:s=5})=>{const[n,m]=L(s),o=r.length>n,c=r.length<=s,i=v({showMoreLabel:"PurchaseOrders.comments.view.ariaLabel.showMore",showLessLabel:"PurchaseOrders.comments.view.ariaLabel.showLess"});return r.length?a("div",{className:"b2b-purchase-order-comment-list-content",children:[e("ul",{className:"b2b-purchase-order-comment-list-content__list",children:r.slice(0,n).map((t,d)=>{var l,h;const f=Math.min(n,r.length);return a(T,{children:[a("li",{className:"b2b-purchase-order-comment-list-content__item",children:[a("div",{className:"b2b-purchase-order-comment-list-content__title",children:[C(t.createdAt),(l=t.author)!=null&&l.firstname&&((h=t.author)!=null&&h.lastname)?` (${t.author.firstname} ${t.author.lastname})`:""]}),e("div",{className:"b2b-purchase-order-comment-list-content__description",children:t.text})]}),d<f-1&&e("hr",{className:"b2b-purchase-order-comment-list-content__divider"})]},t.uid)})}),!c&&e("div",{className:"b2b-purchase-order-comment-list-content__actions",children:e(_,{variant:"secondary","aria-expanded":!o,"aria-label":o?i.showMoreLabel:i.showLessLabel,onClick:()=>{m(o?r.length:s)},children:e(b,{id:`PurchaseOrders.comments.view.buttons.${o?"viewMore":"viewLess"}`})})})]}):e("div",{className:"b2b-purchase-order-comment-list-content",children:e(b,{id:"PurchaseOrders.comments.view.emptyText"})})},G=({withHeader:r=!0,withWrapper:s=!0,visibleRecordsLimit:n=5,className:m})=>{const{poDataLoading:o,purchaseOrderData:c}=N(),i=v({headerText:"PurchaseOrders.comments.view.headerText"}),t=(c==null?void 0:c.comments)||[],d=a(w,{children:[r&&s?e(p,{headerText:i.headerText,divider:!0}):null,o?a(g,{rowGap:"medium","data-testid":"comment-list-loader",children:[e(u,{size:"small",variant:"row",fullWidth:!0,lines:1,style:{maxWidth:300}}),e(u,{size:"medium",variant:"row",fullWidth:!0,lines:1})]}):e(O,{commentsList:t.reverse(),visibleRecordsLimit:n})]});return a("div",{className:x(["b2b-purchase-order-comment-list",m]),"data-testid":"order-comment-list-container",children:[r&&!s?e(p,{headerText:i.headerText}):null,s?e(P,{variant:"secondary","data-testid":"orderCommentListCard",children:d}):d]})};export{G as PurchaseOrderCommentsList,G as default};
4
4
  //# sourceMappingURL=PurchaseOrderCommentsList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PurchaseOrderCommentsList.js","sources":["/@dropins/storefront-purchase-order/src/components/PurchaseOrderCommentsListContent/PurchaseOrderCommentsListContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderCommentsList/PurchaseOrderCommentsList.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 { Fragment, FunctionComponent } from 'preact';\nimport { Text, useText } from '@adobe-commerce/elsie/i18n';\nimport { formatDate } from '@/b2b-purchase-order/lib/formatDate';\nimport { Button } from '@adobe-commerce/elsie/components';\nimport { useState } from 'preact/hooks';\nimport '@/b2b-purchase-order/components/PurchaseOrderCommentsListContent/PurchaseOrderCommentsListContent.css';\nimport { PurchaseOrderCommentsListContentProps } from '@/b2b-purchase-order/types/components';\n\nexport const PurchaseOrderCommentsListContent: FunctionComponent<\n PurchaseOrderCommentsListContentProps\n> = ({ commentsList = [], visibleRecordsLimit = 5 }) => {\n const [recordsLimit, setRecordsLimit] = useState<number>(visibleRecordsLimit);\n const showMore = commentsList.length > recordsLimit;\n const buttonIsHidden = commentsList.length <= visibleRecordsLimit;\n\n const t = useText({\n showMoreLabel: 'PurchaseOrders.comments.view.ariaLabel.showMore',\n showLessLabel: 'PurchaseOrders.comments.view.ariaLabel.showLess',\n });\n\n if (!commentsList.length) {\n return (\n <div className={'b2b-purchase-order-comment-list-content'}>\n <Text id=\"PurchaseOrders.comments.view.emptyText\" />\n </div>\n );\n }\n\n return (\n <div className={'b2b-purchase-order-comment-list-content'}>\n <ul className={'b2b-purchase-order-comment-list-content__list'}>\n {commentsList.slice(0, recordsLimit).map((item, index) => {\n const slicedLength = Math.min(recordsLimit, commentsList.length);\n return (\n <Fragment key={item.uid}>\n <li className={'b2b-purchase-order-comment-list-content__item'}>\n <div\n className={'b2b-purchase-order-comment-list-content__title'}\n >\n {formatDate(item.createdAt)}\n {item.author?.firstname && item.author?.lastname\n ? ` (${item.author.firstname} ${item.author.lastname})`\n : ''}\n </div>\n <div\n className={\n 'b2b-purchase-order-comment-list-content__description'\n }\n >\n {item.text}\n </div>\n </li>\n {index < slicedLength - 1 && (\n <hr\n className={'b2b-purchase-order-comment-list-content__divider'}\n />\n )}\n </Fragment>\n );\n })}\n </ul>\n {!buttonIsHidden && (\n <div className={'b2b-purchase-order-comment-list-content__actions'}>\n <Button\n variant=\"secondary\"\n aria-expanded={!showMore}\n aria-label={showMore ? t.showMoreLabel : t.showLessLabel}\n onClick={() => {\n setRecordsLimit(\n showMore ? commentsList.length : visibleRecordsLimit\n );\n }}\n >\n <Text\n id={`PurchaseOrders.comments.view.buttons.${\n showMore ? 'viewMore' : 'viewLess'\n }`}\n />\n </Button>\n </div>\n )}\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport { usePurchaseOrderData } from '@/b2b-purchase-order/hooks';\nimport { useText } from 'preact-i18n';\nimport { Card, Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport {\n PurchaseOrderCommentsListContent,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { PurchaseOrderCommentsListProps } from '@/b2b-purchase-order/types/containers';\n\nexport const PurchaseOrderCommentsList: Container<\n PurchaseOrderCommentsListProps\n> = ({\n withHeader = true,\n withWrapper = true,\n visibleRecordsLimit = 5,\n className,\n}) => {\n const { poDataLoading, purchaseOrderData } = usePurchaseOrderData();\n const t = useText({\n headerText: 'PurchaseOrders.comments.view.headerText',\n });\n\n const commentsList = purchaseOrderData?.comments || [];\n\n const renderCommentsList = !poDataLoading ? (\n <PurchaseOrderCommentsListContent\n commentsList={commentsList.reverse()}\n visibleRecordsLimit={visibleRecordsLimit}\n />\n ) : (\n <Skeleton rowGap=\"medium\" data-testid=\"comment-list-loader\">\n <SkeletonRow\n size=\"small\"\n variant=\"row\"\n fullWidth\n lines={1}\n style={{ maxWidth: 300 }}\n />\n <SkeletonRow size=\"medium\" variant=\"row\" fullWidth lines={1} />\n </Skeleton>\n );\n\n return (\n <div\n className={classes(['b2b-purchase-order-comment-list', className])}\n data-testid=\"order-comment-list-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"orderCommentListCard\">\n {renderCommentsList}\n </Card>\n ) : (\n renderCommentsList\n )}\n </div>\n );\n};\n"],"names":["PurchaseOrderCommentsListContent","commentsList","visibleRecordsLimit","recordsLimit","setRecordsLimit","useState","showMore","buttonIsHidden","t","useText","jsxs","jsx","item","index","slicedLength","Fragment","formatDate","_a","_b","Button","Text","PurchaseOrderCommentsList","withHeader","withWrapper","className","poDataLoading","purchaseOrderData","usePurchaseOrderData","renderCommentsList","Skeleton","SkeletonRow","classes","PurchaseOrdersHeader","Card"],"mappings":"6mBAyBO,MAAMA,EAET,CAAC,CAAE,aAAAC,EAAe,CAAA,EAAI,oBAAAC,EAAsB,KAAQ,CACtD,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAiBH,CAAmB,EACtEI,EAAWL,EAAa,OAASE,EACjCI,EAAiBN,EAAa,QAAUC,EAExCM,EAAIC,EAAQ,CAChB,cAAe,kDACf,cAAe,iDAAA,CAChB,EAED,OAAKR,EAAa,OAShBS,EAAC,MAAA,CAAI,UAAW,0CACd,SAAA,CAAAC,EAAC,KAAA,CAAG,UAAW,gDACZ,SAAAV,EAAa,MAAM,EAAGE,CAAY,EAAE,IAAI,CAACS,EAAMC,IAAU,SACxD,MAAMC,EAAe,KAAK,IAAIX,EAAcF,EAAa,MAAM,EAC/D,SACGc,EAAA,CACC,SAAA,CAAAL,EAAC,KAAA,CAAG,UAAW,gDACb,SAAA,CAAAA,EAAC,MAAA,CACC,UAAW,iDAEV,SAAA,CAAAM,EAAWJ,EAAK,SAAS,GACzBK,EAAAL,EAAK,SAAL,MAAAK,EAAa,aAAaC,EAAAN,EAAK,SAAL,MAAAM,EAAa,UACpC,KAAKN,EAAK,OAAO,SAAS,IAAIA,EAAK,OAAO,QAAQ,IAClD,EAAA,CAAA,CAAA,EAEND,EAAC,MAAA,CACC,UACE,uDAGD,SAAAC,EAAK,IAAA,CAAA,CACR,EACF,EACCC,EAAQC,EAAe,GACtBH,EAAC,KAAA,CACC,UAAW,kDAAA,CAAA,CACb,CAAA,EArBWC,EAAK,GAuBpB,CAEJ,CAAC,CAAA,CACH,EACC,CAACL,GACAI,EAAC,MAAA,CAAI,UAAW,mDACd,SAAAA,EAACQ,EAAA,CACC,QAAQ,YACR,gBAAe,CAACb,EAChB,aAAYA,EAAWE,EAAE,cAAgBA,EAAE,cAC3C,QAAS,IAAM,CACbJ,EACEE,EAAWL,EAAa,OAASC,CAAA,CAErC,EAEA,SAAAS,EAACS,EAAA,CACC,GAAI,wCACFd,EAAW,WAAa,UAC1B,EAAA,CAAA,CACF,CAAA,CACF,CACF,CAAA,EAEJ,EA3DEK,EAAC,OAAI,UAAW,0CACd,WAACS,EAAA,CAAK,GAAG,yCAAyC,CAAA,CACpD,CA2DN,ECzEaC,EAET,CAAC,CACH,WAAAC,EAAa,GACb,YAAAC,EAAc,GACd,oBAAArB,EAAsB,EACtB,UAAAsB,CACF,IAAM,CACJ,KAAM,CAAE,cAAAC,EAAe,kBAAAC,CAAA,EAAsBC,EAAA,EACvCnB,EAAIC,EAAQ,CAChB,WAAY,yCAAA,CACb,EAEKR,GAAeyB,GAAA,YAAAA,EAAmB,WAAY,CAAA,EAE9CE,EAAsBH,EAM1Bf,EAACmB,EAAA,CAAS,OAAO,SAAS,cAAY,sBACpC,SAAA,CAAAlB,EAACmB,EAAA,CACC,KAAK,QACL,QAAQ,MACR,UAAS,GACT,MAAO,EACP,MAAO,CAAE,SAAU,GAAA,CAAI,CAAA,EAEzBnB,EAACmB,GAAY,KAAK,SAAS,QAAQ,MAAM,UAAS,GAAC,MAAO,CAAA,CAAG,CAAA,EAC/D,EAdAnB,EAACX,EAAA,CACC,aAAcC,EAAa,QAAA,EAC3B,oBAAAC,CAAA,CAAA,EAeJ,OACEQ,EAAC,MAAA,CACC,UAAWqB,EAAQ,CAAC,kCAAmCP,CAAS,CAAC,EACjE,cAAY,+BAEX,SAAA,CAAAF,EAAaX,EAACqB,EAAA,CAAqB,WAAYxB,EAAE,WAAY,EAAK,KAClEe,IACEU,EAAA,CAAK,QAAS,YAAa,cAAY,uBACrC,WACH,EAEAL,CAAA,CAAA,CAAA,CAIR"}
1
+ {"version":3,"file":"PurchaseOrderCommentsList.js","sources":["/@dropins/storefront-purchase-order/src/components/PurchaseOrderCommentsListContent/PurchaseOrderCommentsListContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderCommentsList/PurchaseOrderCommentsList.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 { Fragment, FunctionComponent } from 'preact';\nimport { Text, useText } from '@adobe-commerce/elsie/i18n';\nimport { formatDate } from '@/b2b-purchase-order/lib/formatDate';\nimport { Button } from '@adobe-commerce/elsie/components';\nimport { useState } from 'preact/hooks';\nimport '@/b2b-purchase-order/components/PurchaseOrderCommentsListContent/PurchaseOrderCommentsListContent.css';\nimport { PurchaseOrderCommentsListContentProps } from '@/b2b-purchase-order/types/components';\n\nexport const PurchaseOrderCommentsListContent: FunctionComponent<\n PurchaseOrderCommentsListContentProps\n> = ({ commentsList = [], visibleRecordsLimit = 5 }) => {\n const [recordsLimit, setRecordsLimit] = useState<number>(visibleRecordsLimit);\n const showMore = commentsList.length > recordsLimit;\n const buttonIsHidden = commentsList.length <= visibleRecordsLimit;\n\n const t = useText({\n showMoreLabel: 'PurchaseOrders.comments.view.ariaLabel.showMore',\n showLessLabel: 'PurchaseOrders.comments.view.ariaLabel.showLess',\n });\n\n if (!commentsList.length) {\n return (\n <div className={'b2b-purchase-order-comment-list-content'}>\n <Text id=\"PurchaseOrders.comments.view.emptyText\" />\n </div>\n );\n }\n\n return (\n <div className={'b2b-purchase-order-comment-list-content'}>\n <ul className={'b2b-purchase-order-comment-list-content__list'}>\n {commentsList.slice(0, recordsLimit).map((item, index) => {\n const slicedLength = Math.min(recordsLimit, commentsList.length);\n return (\n <Fragment key={item.uid}>\n <li className={'b2b-purchase-order-comment-list-content__item'}>\n <div\n className={'b2b-purchase-order-comment-list-content__title'}\n >\n {formatDate(item.createdAt)}\n {item.author?.firstname && item.author?.lastname\n ? ` (${item.author.firstname} ${item.author.lastname})`\n : ''}\n </div>\n <div\n className={\n 'b2b-purchase-order-comment-list-content__description'\n }\n >\n {item.text}\n </div>\n </li>\n {index < slicedLength - 1 && (\n <hr\n className={'b2b-purchase-order-comment-list-content__divider'}\n />\n )}\n </Fragment>\n );\n })}\n </ul>\n {!buttonIsHidden && (\n <div className={'b2b-purchase-order-comment-list-content__actions'}>\n <Button\n variant=\"secondary\"\n aria-expanded={!showMore}\n aria-label={showMore ? t.showMoreLabel : t.showLessLabel}\n onClick={() => {\n setRecordsLimit(\n showMore ? commentsList.length : visibleRecordsLimit\n );\n }}\n >\n <Text\n id={`PurchaseOrders.comments.view.buttons.${\n showMore ? 'viewMore' : 'viewLess'\n }`}\n />\n </Button>\n </div>\n )}\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport { usePurchaseOrderData } from '@/b2b-purchase-order/hooks';\nimport { useText } from 'preact-i18n';\nimport { Card, Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport {\n PurchaseOrderCommentsListContent,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { PurchaseOrderCommentsListProps } from '@/b2b-purchase-order/types/containers';\n\nexport const PurchaseOrderCommentsList: Container<\n PurchaseOrderCommentsListProps\n> = ({\n withHeader = true,\n withWrapper = true,\n visibleRecordsLimit = 5,\n className,\n}) => {\n const { poDataLoading, purchaseOrderData } = usePurchaseOrderData();\n const t = useText({\n headerText: 'PurchaseOrders.comments.view.headerText',\n });\n\n const commentsList = purchaseOrderData?.comments || [];\n\n const renderCommentsList = (\n <>\n {withHeader && withWrapper ? (\n <PurchaseOrdersHeader headerText={t.headerText} divider={true} />\n ) : null}\n {!poDataLoading ? (\n <PurchaseOrderCommentsListContent\n commentsList={commentsList.reverse()}\n visibleRecordsLimit={visibleRecordsLimit}\n />\n ) : (\n <Skeleton rowGap=\"medium\" data-testid=\"comment-list-loader\">\n <SkeletonRow\n size=\"small\"\n variant=\"row\"\n fullWidth\n lines={1}\n style={{ maxWidth: 300 }}\n />\n <SkeletonRow size=\"medium\" variant=\"row\" fullWidth lines={1} />\n </Skeleton>\n )}\n </>\n );\n\n return (\n <div\n className={classes(['b2b-purchase-order-comment-list', className])}\n data-testid=\"order-comment-list-container\"\n >\n {withHeader && !withWrapper ? (\n <PurchaseOrdersHeader headerText={t.headerText} />\n ) : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"orderCommentListCard\">\n {renderCommentsList}\n </Card>\n ) : (\n renderCommentsList\n )}\n </div>\n );\n};\n"],"names":["PurchaseOrderCommentsListContent","commentsList","visibleRecordsLimit","recordsLimit","setRecordsLimit","useState","showMore","buttonIsHidden","t","useText","jsxs","jsx","item","index","slicedLength","Fragment","formatDate","_a","_b","Button","Text","PurchaseOrderCommentsList","withHeader","withWrapper","className","poDataLoading","purchaseOrderData","usePurchaseOrderData","renderCommentsList","PurchaseOrdersHeader","Skeleton","SkeletonRow","classes","Card"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as e,jsxs as n}from"@dropins/tools/preact-jsx-runtime.js";import{classes as g}from"@dropins/tools/lib.js";import{Button as p,Card as y,Skeleton as L,SkeletonRow as u}from"@dropins/tools/components.js";import"@dropins/tools/event-bus.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{P as f}from"../chunks/PurchaseOrdersHeader.js";import{useState as v}from"@dropins/tools/preact-hooks.js";import{u as w}from"../chunks/usePurchaseOrderData.js";import{Fragment as x}from"@dropins/tools/preact.js";import{f as _}from"../chunks/formatDate.js";import{useText as m,Text as h}from"@dropins/tools/i18n.js";const P=({historyLogRecords:r=[],visibleRecordsLimit:o})=>{const[a,c]=v(o),t=r.length>a,i=r.length<=o,d=m({showMoreLabel:"PurchaseOrders.historyLog.ariaLabel.showMore",showLessLabel:"PurchaseOrders.historyLog.ariaLabel.showLess"});return r.length?n("div",{className:"b2b-purchase-order-history-log-content",children:[e("ul",{className:"b2b-purchase-order-history-log-content__list",role:"list",children:r.slice(0,a).map((s,l)=>{const b=Math.min(a,r.length);return n(x,{children:[n("li",{className:"b2b-purchase-order-history-log-content__item",children:[e("div",{className:"b2b-purchase-order-history-log-content__title",children:e(h,{id:`PurchaseOrders.historyLog.status.${s.activity}`,fields:{date:_(s.createdAt)}})}),e("div",{className:"b2b-purchase-order-history-log-content__description",children:s.message})]}),l<b-1&&e("hr",{className:"b2b-purchase-order-history-log-content__divider"})]},s.uid)})}),!i&&e("div",{className:"b2b-purchase-order-history-log-content__actions",children:e(p,{variant:"secondary","aria-expanded":!t,"aria-label":t?d.showMoreLabel:d.showLessLabel,onClick:()=>{c(t?r.length:o)},children:e(h,{id:`PurchaseOrders.historyLog.buttons.${t?"viewMore":"viewLess"}`})})})]}):e("div",{className:"b2b-purchase-order-history-log-content",children:e(h,{id:"PurchaseOrders.historyLog.emptyText"})})},D=({withHeader:r=!0,withWrapper:o=!0,visibleRecordsLimit:a=5,className:c})=>{const{poDataLoading:t,purchaseOrderData:i}=w(),d=m({headerText:"PurchaseOrders.historyLog.headerText"}),s=(i==null?void 0:i.historyLog)||[],l=t?n(L,{rowGap:"medium","data-testid":"comment-list-loader",children:[e(u,{size:"small",variant:"row",fullWidth:!0,lines:1,style:{maxWidth:300}}),e(u,{size:"medium",variant:"row",fullWidth:!0,lines:1})]}):e(P,{historyLogRecords:s,visibleRecordsLimit:a});return n("div",{className:g(["b2b-purchase-order-history-log",c]),"data-testid":"order-history-log-container",children:[r?e(f,{headerText:d.headerText}):null,o?e(y,{variant:"secondary","data-testid":"orderHistoryLogCard",children:l}):l]})};export{D as PurchaseOrderHistoryLog,D as default};
3
+ import{jsx as e,jsxs as a,Fragment as p}from"@dropins/tools/preact-jsx-runtime.js";import{classes as y}from"@dropins/tools/lib.js";import{Button as L,Skeleton as f,SkeletonRow as u,Card as v}from"@dropins/tools/components.js";import"@dropins/tools/event-bus.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{P as m}from"../chunks/PurchaseOrdersHeader.js";import{useState as x}from"@dropins/tools/preact-hooks.js";import{u as _}from"../chunks/usePurchaseOrderData.js";import{Fragment as P}from"@dropins/tools/preact.js";import{f as w}from"../chunks/formatDate.js";import{useText as g,Text as h}from"@dropins/tools/i18n.js";const N=({historyLogRecords:r=[],visibleRecordsLimit:t})=>{const[i,c]=x(t),s=r.length>i,n=r.length<=t,d=g({showMoreLabel:"PurchaseOrders.historyLog.ariaLabel.showMore",showLessLabel:"PurchaseOrders.historyLog.ariaLabel.showLess"});return r.length?a("div",{className:"b2b-purchase-order-history-log-content",children:[e("ul",{className:"b2b-purchase-order-history-log-content__list",role:"list",children:r.slice(0,i).map((o,l)=>{const b=Math.min(i,r.length);return a(P,{children:[a("li",{className:"b2b-purchase-order-history-log-content__item",children:[e("div",{className:"b2b-purchase-order-history-log-content__title",children:e(h,{id:`PurchaseOrders.historyLog.status.${o.activity}`,fields:{date:w(o.createdAt)}})}),e("div",{className:"b2b-purchase-order-history-log-content__description",children:o.message})]}),l<b-1&&e("hr",{className:"b2b-purchase-order-history-log-content__divider"})]},o.uid)})}),!n&&e("div",{className:"b2b-purchase-order-history-log-content__actions",children:e(L,{variant:"secondary","aria-expanded":!s,"aria-label":s?d.showMoreLabel:d.showLessLabel,onClick:()=>{c(s?r.length:t)},children:e(h,{id:`PurchaseOrders.historyLog.buttons.${s?"viewMore":"viewLess"}`})})})]}):e("div",{className:"b2b-purchase-order-history-log-content",children:e(h,{id:"PurchaseOrders.historyLog.emptyText"})})},D=({withHeader:r=!0,withWrapper:t=!0,visibleRecordsLimit:i=5,className:c})=>{const{poDataLoading:s,purchaseOrderData:n}=_(),d=g({headerText:"PurchaseOrders.historyLog.headerText"}),o=(n==null?void 0:n.historyLog)||[],l=a(p,{children:[r&&t?e(m,{headerText:d.headerText,divider:!0}):null,s?a(f,{rowGap:"medium","data-testid":"comment-list-loader",children:[e(u,{size:"small",variant:"row",fullWidth:!0,lines:1,style:{maxWidth:300}}),e(u,{size:"medium",variant:"row",fullWidth:!0,lines:1})]}):e(N,{historyLogRecords:o,visibleRecordsLimit:i})]});return a("div",{className:y(["b2b-purchase-order-history-log",c]),"data-testid":"order-history-log-container",children:[r&&!t?e(m,{headerText:d.headerText}):null,t?e(v,{variant:"secondary","data-testid":"orderHistoryLogCard",children:l}):l]})};export{D as PurchaseOrderHistoryLog,D as default};
4
4
  //# sourceMappingURL=PurchaseOrderHistoryLog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PurchaseOrderHistoryLog.js","sources":["/@dropins/storefront-purchase-order/src/components/PurchaseOrderHistoryLogContent/PurchaseOrderHistoryLogContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderHistoryLog/PurchaseOrderHistoryLog.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 { Fragment, FunctionComponent } from 'preact';\nimport '@/b2b-purchase-order/components/PurchaseOrderHistoryLogContent/PurchaseOrderHistoryLogContent.css';\nimport { PurchaseOrderHistoryLogContentProps } from '@/b2b-purchase-order/types/components';\nimport { Text, useText } from '@adobe-commerce/elsie/i18n';\nimport { formatDate } from '@/b2b-purchase-order/lib/formatDate';\nimport { Button } from '@adobe-commerce/elsie/components';\nimport { useState } from 'preact/hooks';\n\nexport const PurchaseOrderHistoryLogContent: FunctionComponent<\n PurchaseOrderHistoryLogContentProps\n> = ({ historyLogRecords = [], visibleRecordsLimit }) => {\n const [visibleRecordsCount, setVisibleRecordsCount] =\n useState<number>(visibleRecordsLimit);\n const showMore = historyLogRecords.length > visibleRecordsCount;\n const buttonIsHidden = historyLogRecords.length <= visibleRecordsLimit;\n\n const t = useText({\n showMoreLabel: 'PurchaseOrders.historyLog.ariaLabel.showMore',\n showLessLabel: 'PurchaseOrders.historyLog.ariaLabel.showLess',\n });\n\n if (!historyLogRecords.length) {\n return (\n <div className={'b2b-purchase-order-history-log-content'}>\n <Text id=\"PurchaseOrders.historyLog.emptyText\" />\n </div>\n );\n }\n\n return (\n <div className={'b2b-purchase-order-history-log-content'}>\n <ul\n className={'b2b-purchase-order-history-log-content__list'}\n role=\"list\"\n >\n {historyLogRecords.slice(0, visibleRecordsCount).map((item, index) => {\n const slicedLength = Math.min(\n visibleRecordsCount,\n historyLogRecords.length\n );\n return (\n <Fragment key={item.uid}>\n <li className={'b2b-purchase-order-history-log-content__item'}>\n <div\n className={'b2b-purchase-order-history-log-content__title'}\n >\n <Text\n id={`PurchaseOrders.historyLog.status.${item.activity}`}\n fields={{ date: formatDate(item.createdAt) }}\n />\n </div>\n <div\n className={\n 'b2b-purchase-order-history-log-content__description'\n }\n >\n {item.message}\n </div>\n </li>\n {index < slicedLength - 1 && (\n <hr\n className={'b2b-purchase-order-history-log-content__divider'}\n />\n )}\n </Fragment>\n );\n })}\n </ul>\n {!buttonIsHidden && (\n <div className={'b2b-purchase-order-history-log-content__actions'}>\n <Button\n variant=\"secondary\"\n aria-expanded={!showMore}\n aria-label={showMore ? t.showMoreLabel : t.showLessLabel}\n onClick={() => {\n setVisibleRecordsCount(\n showMore ? historyLogRecords.length : visibleRecordsLimit\n );\n }}\n >\n <Text\n id={`PurchaseOrders.historyLog.buttons.${\n showMore ? 'viewMore' : 'viewLess'\n }`}\n />\n </Button>\n </div>\n )}\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrderHistoryLogContent,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { PurchaseOrderHistoryLogProps } from '@/b2b-purchase-order/types/containers';\nimport { Card, Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { usePurchaseOrderData } from '@/b2b-purchase-order/hooks';\n\nexport const PurchaseOrderHistoryLog: Container<\n PurchaseOrderHistoryLogProps\n> = ({\n withHeader = true,\n withWrapper = true,\n visibleRecordsLimit = 5,\n className,\n}) => {\n const { poDataLoading, purchaseOrderData } = usePurchaseOrderData();\n const t = useText({\n headerText: 'PurchaseOrders.historyLog.headerText',\n });\n\n const historyLogRecords = purchaseOrderData?.historyLog || [];\n\n const renderHistoryLog = !poDataLoading ? (\n <PurchaseOrderHistoryLogContent\n historyLogRecords={historyLogRecords}\n visibleRecordsLimit={visibleRecordsLimit}\n />\n ) : (\n <Skeleton rowGap=\"medium\" data-testid=\"comment-list-loader\">\n <SkeletonRow\n size=\"small\"\n variant=\"row\"\n fullWidth\n lines={1}\n style={{ maxWidth: 300 }}\n />\n <SkeletonRow size=\"medium\" variant=\"row\" fullWidth lines={1} />\n </Skeleton>\n );\n\n return (\n <div\n className={classes(['b2b-purchase-order-history-log', className])}\n data-testid=\"order-history-log-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"orderHistoryLogCard\">\n {renderHistoryLog}\n </Card>\n ) : (\n renderHistoryLog\n )}\n </div>\n );\n};\n"],"names":["PurchaseOrderHistoryLogContent","historyLogRecords","visibleRecordsLimit","visibleRecordsCount","setVisibleRecordsCount","useState","showMore","buttonIsHidden","t","useText","jsxs","jsx","item","index","slicedLength","Fragment","Text","formatDate","Button","PurchaseOrderHistoryLog","withHeader","withWrapper","className","poDataLoading","purchaseOrderData","usePurchaseOrderData","renderHistoryLog","Skeleton","SkeletonRow","classes","PurchaseOrdersHeader","Card"],"mappings":"6mBAyBO,MAAMA,EAET,CAAC,CAAE,kBAAAC,EAAoB,CAAA,EAAI,oBAAAC,KAA0B,CACvD,KAAM,CAACC,EAAqBC,CAAsB,EAChDC,EAAiBH,CAAmB,EAChCI,EAAWL,EAAkB,OAASE,EACtCI,EAAiBN,EAAkB,QAAUC,EAE7CM,EAAIC,EAAQ,CAChB,cAAe,+CACf,cAAe,8CAAA,CAChB,EAED,OAAKR,EAAkB,OASrBS,EAAC,MAAA,CAAI,UAAW,yCACd,SAAA,CAAAC,EAAC,KAAA,CACC,UAAW,+CACX,KAAK,OAEJ,SAAAV,EAAkB,MAAM,EAAGE,CAAmB,EAAE,IAAI,CAACS,EAAMC,IAAU,CACpE,MAAMC,EAAe,KAAK,IACxBX,EACAF,EAAkB,MAAA,EAEpB,SACGc,EAAA,CACC,SAAA,CAAAL,EAAC,KAAA,CAAG,UAAW,+CACb,SAAA,CAAAC,EAAC,MAAA,CACC,UAAW,gDAEX,SAAAA,EAACK,EAAA,CACC,GAAI,oCAAoCJ,EAAK,QAAQ,GACrD,OAAQ,CAAE,KAAMK,EAAWL,EAAK,SAAS,CAAA,CAAE,CAAA,CAC7C,CAAA,EAEFD,EAAC,MAAA,CACC,UACE,sDAGD,SAAAC,EAAK,OAAA,CAAA,CACR,EACF,EACCC,EAAQC,EAAe,GACtBH,EAAC,KAAA,CACC,UAAW,iDAAA,CAAA,CACb,CAAA,EArBWC,EAAK,GAuBpB,CAEJ,CAAC,CAAA,CAAA,EAEF,CAACL,GACAI,EAAC,MAAA,CAAI,UAAW,kDACd,SAAAA,EAACO,EAAA,CACC,QAAQ,YACR,gBAAe,CAACZ,EAChB,aAAYA,EAAWE,EAAE,cAAgBA,EAAE,cAC3C,QAAS,IAAM,CACbJ,EACEE,EAAWL,EAAkB,OAASC,CAAA,CAE1C,EAEA,SAAAS,EAACK,EAAA,CACC,GAAI,qCACFV,EAAW,WAAa,UAC1B,EAAA,CAAA,CACF,CAAA,CACF,CACF,CAAA,EAEJ,EAjEEK,EAAC,OAAI,UAAW,yCACd,WAACK,EAAA,CAAK,GAAG,sCAAsC,CAAA,CACjD,CAiEN,EChFaG,EAET,CAAC,CACH,WAAAC,EAAa,GACb,YAAAC,EAAc,GACd,oBAAAnB,EAAsB,EACtB,UAAAoB,CACF,IAAM,CACJ,KAAM,CAAE,cAAAC,EAAe,kBAAAC,CAAA,EAAsBC,EAAA,EACvCjB,EAAIC,EAAQ,CAChB,WAAY,sCAAA,CACb,EAEKR,GAAoBuB,GAAA,YAAAA,EAAmB,aAAc,CAAA,EAErDE,EAAoBH,EAMxBb,EAACiB,EAAA,CAAS,OAAO,SAAS,cAAY,sBACpC,SAAA,CAAAhB,EAACiB,EAAA,CACC,KAAK,QACL,QAAQ,MACR,UAAS,GACT,MAAO,EACP,MAAO,CAAE,SAAU,GAAA,CAAI,CAAA,EAEzBjB,EAACiB,GAAY,KAAK,SAAS,QAAQ,MAAM,UAAS,GAAC,MAAO,CAAA,CAAG,CAAA,EAC/D,EAdAjB,EAACX,EAAA,CACC,kBAAAC,EACA,oBAAAC,CAAA,CAAA,EAeJ,OACEQ,EAAC,MAAA,CACC,UAAWmB,EAAQ,CAAC,iCAAkCP,CAAS,CAAC,EAChE,cAAY,8BAEX,SAAA,CAAAF,EAAaT,EAACmB,EAAA,CAAqB,WAAYtB,EAAE,WAAY,EAAK,KAClEa,IACEU,EAAA,CAAK,QAAS,YAAa,cAAY,sBACrC,WACH,EAEAL,CAAA,CAAA,CAAA,CAIR"}
1
+ {"version":3,"file":"PurchaseOrderHistoryLog.js","sources":["/@dropins/storefront-purchase-order/src/components/PurchaseOrderHistoryLogContent/PurchaseOrderHistoryLogContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderHistoryLog/PurchaseOrderHistoryLog.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 { Fragment, FunctionComponent } from 'preact';\nimport '@/b2b-purchase-order/components/PurchaseOrderHistoryLogContent/PurchaseOrderHistoryLogContent.css';\nimport { PurchaseOrderHistoryLogContentProps } from '@/b2b-purchase-order/types/components';\nimport { Text, useText } from '@adobe-commerce/elsie/i18n';\nimport { formatDate } from '@/b2b-purchase-order/lib/formatDate';\nimport { Button } from '@adobe-commerce/elsie/components';\nimport { useState } from 'preact/hooks';\n\nexport const PurchaseOrderHistoryLogContent: FunctionComponent<\n PurchaseOrderHistoryLogContentProps\n> = ({ historyLogRecords = [], visibleRecordsLimit }) => {\n const [visibleRecordsCount, setVisibleRecordsCount] =\n useState<number>(visibleRecordsLimit);\n const showMore = historyLogRecords.length > visibleRecordsCount;\n const buttonIsHidden = historyLogRecords.length <= visibleRecordsLimit;\n\n const t = useText({\n showMoreLabel: 'PurchaseOrders.historyLog.ariaLabel.showMore',\n showLessLabel: 'PurchaseOrders.historyLog.ariaLabel.showLess',\n });\n\n if (!historyLogRecords.length) {\n return (\n <div className={'b2b-purchase-order-history-log-content'}>\n <Text id=\"PurchaseOrders.historyLog.emptyText\" />\n </div>\n );\n }\n\n return (\n <div className={'b2b-purchase-order-history-log-content'}>\n <ul\n className={'b2b-purchase-order-history-log-content__list'}\n role=\"list\"\n >\n {historyLogRecords.slice(0, visibleRecordsCount).map((item, index) => {\n const slicedLength = Math.min(\n visibleRecordsCount,\n historyLogRecords.length\n );\n return (\n <Fragment key={item.uid}>\n <li className={'b2b-purchase-order-history-log-content__item'}>\n <div\n className={'b2b-purchase-order-history-log-content__title'}\n >\n <Text\n id={`PurchaseOrders.historyLog.status.${item.activity}`}\n fields={{ date: formatDate(item.createdAt) }}\n />\n </div>\n <div\n className={\n 'b2b-purchase-order-history-log-content__description'\n }\n >\n {item.message}\n </div>\n </li>\n {index < slicedLength - 1 && (\n <hr\n className={'b2b-purchase-order-history-log-content__divider'}\n />\n )}\n </Fragment>\n );\n })}\n </ul>\n {!buttonIsHidden && (\n <div className={'b2b-purchase-order-history-log-content__actions'}>\n <Button\n variant=\"secondary\"\n aria-expanded={!showMore}\n aria-label={showMore ? t.showMoreLabel : t.showLessLabel}\n onClick={() => {\n setVisibleRecordsCount(\n showMore ? historyLogRecords.length : visibleRecordsLimit\n );\n }}\n >\n <Text\n id={`PurchaseOrders.historyLog.buttons.${\n showMore ? 'viewMore' : 'viewLess'\n }`}\n />\n </Button>\n </div>\n )}\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrderHistoryLogContent,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\nimport { PurchaseOrderHistoryLogProps } from '@/b2b-purchase-order/types/containers';\nimport { Card, Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { usePurchaseOrderData } from '@/b2b-purchase-order/hooks';\n\nexport const PurchaseOrderHistoryLog: Container<\n PurchaseOrderHistoryLogProps\n> = ({\n withHeader = true,\n withWrapper = true,\n visibleRecordsLimit = 5,\n className,\n}) => {\n const { poDataLoading, purchaseOrderData } = usePurchaseOrderData();\n const t = useText({\n headerText: 'PurchaseOrders.historyLog.headerText',\n });\n\n const historyLogRecords = purchaseOrderData?.historyLog || [];\n\n const renderHistoryLog = (\n <>\n {withHeader && withWrapper ? (\n <PurchaseOrdersHeader headerText={t.headerText} divider={true} />\n ) : null}\n {!poDataLoading ? (\n <PurchaseOrderHistoryLogContent\n historyLogRecords={historyLogRecords}\n visibleRecordsLimit={visibleRecordsLimit}\n />\n ) : (\n <Skeleton rowGap=\"medium\" data-testid=\"comment-list-loader\">\n <SkeletonRow\n size=\"small\"\n variant=\"row\"\n fullWidth\n lines={1}\n style={{ maxWidth: 300 }}\n />\n <SkeletonRow size=\"medium\" variant=\"row\" fullWidth lines={1} />\n </Skeleton>\n )}\n </>\n );\n\n return (\n <div\n className={classes(['b2b-purchase-order-history-log', className])}\n data-testid=\"order-history-log-container\"\n >\n {withHeader && !withWrapper ? (\n <PurchaseOrdersHeader headerText={t.headerText} />\n ) : null}\n {withWrapper ? (\n <Card variant={'secondary'} data-testid=\"orderHistoryLogCard\">\n {renderHistoryLog}\n </Card>\n ) : (\n renderHistoryLog\n )}\n </div>\n );\n};\n"],"names":["PurchaseOrderHistoryLogContent","historyLogRecords","visibleRecordsLimit","visibleRecordsCount","setVisibleRecordsCount","useState","showMore","buttonIsHidden","t","useText","jsxs","jsx","item","index","slicedLength","Fragment","Text","formatDate","Button","PurchaseOrderHistoryLog","withHeader","withWrapper","className","poDataLoading","purchaseOrderData","usePurchaseOrderData","renderHistoryLog","PurchaseOrdersHeader","Skeleton","SkeletonRow","classes","Card"],"mappings":"2nBAyBO,MAAMA,EAET,CAAC,CAAE,kBAAAC,EAAoB,CAAA,EAAI,oBAAAC,KAA0B,CACvD,KAAM,CAACC,EAAqBC,CAAsB,EAChDC,EAAiBH,CAAmB,EAChCI,EAAWL,EAAkB,OAASE,EACtCI,EAAiBN,EAAkB,QAAUC,EAE7CM,EAAIC,EAAQ,CAChB,cAAe,+CACf,cAAe,8CAAA,CAChB,EAED,OAAKR,EAAkB,OASrBS,EAAC,MAAA,CAAI,UAAW,yCACd,SAAA,CAAAC,EAAC,KAAA,CACC,UAAW,+CACX,KAAK,OAEJ,SAAAV,EAAkB,MAAM,EAAGE,CAAmB,EAAE,IAAI,CAACS,EAAMC,IAAU,CACpE,MAAMC,EAAe,KAAK,IACxBX,EACAF,EAAkB,MAAA,EAEpB,SACGc,EAAA,CACC,SAAA,CAAAL,EAAC,KAAA,CAAG,UAAW,+CACb,SAAA,CAAAC,EAAC,MAAA,CACC,UAAW,gDAEX,SAAAA,EAACK,EAAA,CACC,GAAI,oCAAoCJ,EAAK,QAAQ,GACrD,OAAQ,CAAE,KAAMK,EAAWL,EAAK,SAAS,CAAA,CAAE,CAAA,CAC7C,CAAA,EAEFD,EAAC,MAAA,CACC,UACE,sDAGD,SAAAC,EAAK,OAAA,CAAA,CACR,EACF,EACCC,EAAQC,EAAe,GACtBH,EAAC,KAAA,CACC,UAAW,iDAAA,CAAA,CACb,CAAA,EArBWC,EAAK,GAuBpB,CAEJ,CAAC,CAAA,CAAA,EAEF,CAACL,GACAI,EAAC,MAAA,CAAI,UAAW,kDACd,SAAAA,EAACO,EAAA,CACC,QAAQ,YACR,gBAAe,CAACZ,EAChB,aAAYA,EAAWE,EAAE,cAAgBA,EAAE,cAC3C,QAAS,IAAM,CACbJ,EACEE,EAAWL,EAAkB,OAASC,CAAA,CAE1C,EAEA,SAAAS,EAACK,EAAA,CACC,GAAI,qCACFV,EAAW,WAAa,UAC1B,EAAA,CAAA,CACF,CAAA,CACF,CACF,CAAA,EAEJ,EAjEEK,EAAC,OAAI,UAAW,yCACd,WAACK,EAAA,CAAK,GAAG,sCAAsC,CAAA,CACjD,CAiEN,EChFaG,EAET,CAAC,CACH,WAAAC,EAAa,GACb,YAAAC,EAAc,GACd,oBAAAnB,EAAsB,EACtB,UAAAoB,CACF,IAAM,CACJ,KAAM,CAAE,cAAAC,EAAe,kBAAAC,CAAA,EAAsBC,EAAA,EACvCjB,EAAIC,EAAQ,CAChB,WAAY,sCAAA,CACb,EAEKR,GAAoBuB,GAAA,YAAAA,EAAmB,aAAc,CAAA,EAErDE,EACJhB,EAAAK,EAAA,CACG,SAAA,CAAAK,GAAcC,IACZM,EAAA,CAAqB,WAAYnB,EAAE,WAAY,QAAS,GAAM,EAC7D,KACFe,EAMAb,EAACkB,EAAA,CAAS,OAAO,SAAS,cAAY,sBACpC,SAAA,CAAAjB,EAACkB,EAAA,CACC,KAAK,QACL,QAAQ,MACR,UAAS,GACT,MAAO,EACP,MAAO,CAAE,SAAU,GAAA,CAAI,CAAA,EAEzBlB,EAACkB,GAAY,KAAK,SAAS,QAAQ,MAAM,UAAS,GAAC,MAAO,CAAA,CAAG,CAAA,CAAA,CAC/D,EAdAlB,EAACX,EAAA,CACC,kBAAAC,EACA,oBAAAC,CAAA,CAAA,CAYF,EAEJ,EAGF,OACEQ,EAAC,MAAA,CACC,UAAWoB,EAAQ,CAAC,iCAAkCR,CAAS,CAAC,EAChE,cAAY,8BAEX,SAAA,CAAAF,GAAc,CAACC,EACdV,EAACgB,GAAqB,WAAYnB,EAAE,WAAY,EAC9C,KACHa,IACEU,EAAA,CAAK,QAAS,YAAa,cAAY,sBACrC,WACH,EAEAL,CAAA,CAAA,CAAA,CAIR"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as s,jsxs as M}from"@dropins/tools/preact-jsx-runtime.js";import{classes as T,Slot as B}from"@dropins/tools/lib.js";import{Button as S,InLineAlert as D,Card as N,Header as w,Skeleton as _,SkeletonRow as x}from"@dropins/tools/components.js";import{useState as p,useEffect as I,useCallback as m}from"@dropins/tools/preact-hooks.js";import{events as z}from"@dropins/tools/event-bus.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{a as J,r as V}from"../chunks/rejectPurchaseOrders.js";import{c as H,p as W}from"../chunks/placeOrderForPurchaseOrder.js";import{useText as R}from"@dropins/tools/i18n.js";import"@dropins/tools/preact.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/fetch-error.js";const $=()=>{const e=R({approvalSuccessMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.success.approval",rejectSuccessMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.success.reject",cancelSuccessMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.success.cancel",placeOrderSuccessMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.success.placeOrder",approvalErrorMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.errors.approval",rejectErrorMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.errors.reject",cancelErrorMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.errors.cancel",placeOrderErrorMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.errors.placeOrder"}),[a,t]=p([]),[c,d]=p(null),[i,O]=p("PENDING"),[g,l]=p("success"),[P,n]=p(""),[f,b]=p(!1),[v,E]=p(!0),A=()=>{E(!0)};I(()=>{const h=z.on("purchase-order/data",r=>{r!=null&&r.uid&&(d(r.uid),O(r.status),t(r.availableActions))},{eager:!0});return()=>{h==null||h.off()}},[]);const C=m((h,r)=>{let u="";if(h){switch(r){case"APPROVE":u=e.approvalSuccessMessage;break;case"REJECT":u=e.rejectSuccessMessage;break;case"CANCEL":u=e.cancelSuccessMessage;break;case"PLACE_ORDER":u=e.placeOrderSuccessMessage;break}l("success")}else{switch(r){case"APPROVE":u=e.approvalErrorMessage;break;case"REJECT":u=e.rejectErrorMessage;break;case"CANCEL":u=e.cancelErrorMessage;break;case"PLACE_ORDER":u=e.placeOrderErrorMessage;break}l("error")}n(u),E(!1)},[e]),o=m(async(h,r)=>{if(c){b(!0);try{await h(c),C(!0,r)}catch{C(!1,r)}finally{b(!1)}}},[c,C]),k=m(()=>o(J,"APPROVE"),[o]),y=m(()=>o(V,"REJECT"),[o]),j=m(()=>o(H,"CANCEL"),[o]),L=m(()=>o(W,"PLACE_ORDER"),[o]);return{poId:c,status:i,availableActions:a,alertType:g,loading:f,isDismissed:v,alertMessage:P,handleOnDismiss:A,handleApprove:k,handleReject:y,handleCancel:j,handlePlaceOrder:L}},F=({slots:e,t:a,loading:t,children:c,availableActions:d=[],handleApprove:i,handleReject:O,handleCancel:g,handlePlaceOrder:l})=>{const P=d.map(n=>{switch(n){case"APPROVE":return s(S,{variant:"secondary",disabled:t,type:"button",onClick:i,children:a.approveButtonText},n);case"PLACE_ORDER":return s(S,{variant:"secondary",disabled:t,type:"button",onClick:l,children:a.placeOrderButtonText},n);case"REJECT":return s(S,{variant:"secondary",disabled:t,type:"button",onClick:O,children:a.rejectButtonText},n);case"CANCEL":return s(S,{variant:"secondary",disabled:t,type:"button",onClick:g,children:a.cancelButtonText},n);default:return null}});return M("div",{className:T(["b2b-purchase-order-status-content"]),children:[s("div",{className:"b2b-purchase-order-status-content__message",children:a.statusMessageText}),c,s("div",{className:"b2b-purchase-order-status-content__actions",children:s(B,{"data-testid":"PurchaseOrderActions",name:"PurchaseOrderActions",slot:e==null?void 0:e.PurchaseOrderActions,context:{loading:t,availableActions:d,handleApprove:i,handleReject:O,handleCancel:g,handlePlaceOrder:l},children:P})})]})},ce=({className:e,slots:a})=>{const{poId:t,status:c,availableActions:d,alertType:i,loading:O,isDismissed:g,alertMessage:l,handleOnDismiss:P,handleApprove:n,handleReject:f,handleCancel:b,handlePlaceOrder:v}=$(),E=R({statusHeadingText:`PurchaseOrders.purchaseOrderStatus.status.${c.toLowerCase()}.title`,statusMessageText:`PurchaseOrders.purchaseOrderStatus.status.${c.toLowerCase()}.message`,approveButtonText:"PurchaseOrders.purchaseOrderStatus.buttons.approve",cancelButtonText:"PurchaseOrders.purchaseOrderStatus.buttons.cancel",rejectButtonText:"PurchaseOrders.purchaseOrderStatus.buttons.reject",placeOrderButtonText:"PurchaseOrders.purchaseOrderStatus.buttons.placeOrder"}),A=d.length>0;return t?M("div",{className:T(["purchase-order-status",e]),children:[!g&&l?s(D,{style:{marginBottom:"1rem",textTransform:"capitalize"},heading:i,onDismiss:P,description:l,type:i}):null,M(N,{variant:"secondary",children:[s(w,{title:E.statusHeadingText}),A?s(F,{t:E,loading:O,handleApprove:n,handleReject:f,handleCancel:b,handlePlaceOrder:v,availableActions:d,slots:a}):M(_,{"data-testid":"status-content-loader-skeleton-test-id",children:[s(x,{variant:"heading",size:"xlarge",fullWidth:!1,lines:1}),s(x,{variant:"heading",size:"xlarge",fullWidth:!0,lines:1}),s(x,{variant:"heading",size:"xlarge",fullWidth:!0,lines:1})]})]})]}):null};export{ce as PurchaseOrderStatus,ce as default};
3
+ import{jsx as r,jsxs as C,Fragment as B}from"@dropins/tools/preact-jsx-runtime.js";import{classes as k,Slot as N}from"@dropins/tools/lib.js";import{Button as M,Skeleton as _,SkeletonRow as y,InLineAlert as D,Card as w}from"@dropins/tools/components.js";import{useState as v,useCallback as h}from"@dropins/tools/preact-hooks.js";import{events as I}from"@dropins/tools/event-bus.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import{a as J,r as V}from"../chunks/rejectPurchaseOrders.js";import{c as z,p as H}from"../chunks/placeOrderForPurchaseOrder.js";import{u as F}from"../chunks/usePurchaseOrderData.js";import{useText as L,Text as $}from"@dropins/tools/i18n.js";import{P as R}from"../chunks/PurchaseOrdersHeader.js";import"@dropins/tools/preact.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/fetch-error.js";const G=()=>{const{poDataLoading:o,purchaseOrderData:s}=F(),e=L({approvalSuccessMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.success.approval",rejectSuccessMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.success.reject",cancelSuccessMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.success.cancel",placeOrderSuccessMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.success.placeOrder",approvalErrorMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.errors.approval",rejectErrorMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.errors.reject",cancelErrorMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.errors.cancel",placeOrderErrorMessage:"PurchaseOrders.purchaseOrderStatus.alertMessages.errors.placeOrder"}),u=(s==null?void 0:s.uid)??null,i=(s==null?void 0:s.status)??"PENDING",d=(s==null?void 0:s.availableActions)??[],[l,n]=v("success"),[p,O]=v(""),[a,m]=v(!1),[A,S]=v(!0),f=()=>{S(!0)},P=h((T,E)=>{let c="";if(T){switch(E){case"APPROVE":c=e.approvalSuccessMessage;break;case"REJECT":c=e.rejectSuccessMessage;break;case"CANCEL":c=e.cancelSuccessMessage;break;case"PLACE_ORDER":c=e.placeOrderSuccessMessage;break}n("success")}else{switch(E){case"APPROVE":c=e.approvalErrorMessage;break;case"REJECT":c=e.rejectErrorMessage;break;case"CANCEL":c=e.cancelErrorMessage;break;case"PLACE_ORDER":c=e.placeOrderErrorMessage;break}n("error")}O(c),S(!1)},[e]),t=h(async(T,E)=>{if(u){m(!0);try{await T(u),P(!0,E)}catch{P(!1,E)}finally{m(!1),I.emit("purchase-order/refresh",!0)}}},[u,P]),g=h(()=>t(J,"APPROVE"),[t]),x=h(()=>t(V,"REJECT"),[t]),b=h(()=>t(z,"CANCEL"),[t]),j=h(()=>t(H,"PLACE_ORDER"),[t]);return{poId:u,status:i,availableActions:d,alertType:l,loading:a,poDataLoading:o,isDismissed:A,alertMessage:p,handleOnDismiss:f,handleApprove:g,handleReject:x,handleCancel:b,handlePlaceOrder:j}},W=({slots:o,t:s,loading:e,children:u,availableActions:i=[],handleApprove:d,handleReject:l,handleCancel:n,handlePlaceOrder:p})=>{const O=i.map(a=>{switch(a){case"APPROVE":return r(M,{variant:"secondary",disabled:e,type:"button",onClick:d,children:s.approveButtonText},a);case"PLACE_ORDER":return r(M,{variant:"secondary",disabled:e,type:"button",onClick:p,children:s.placeOrderButtonText},a);case"REJECT":return r(M,{variant:"secondary",disabled:e,type:"button",onClick:l,children:s.rejectButtonText},a);case"CANCEL":return r(M,{variant:"secondary",disabled:e,type:"button",onClick:n,children:s.cancelButtonText},a);default:return null}});return C("div",{className:k(["b2b-purchase-order-status-content"]),children:[r("div",{className:"b2b-purchase-order-status-content__message",children:s.statusMessageText}),u,r("div",{className:"b2b-purchase-order-status-content__actions",children:r(N,{"data-testid":"PurchaseOrderActions",name:"PurchaseOrderActions",slot:o==null?void 0:o.PurchaseOrderActions,context:{loading:e,availableActions:i,handleApprove:d,handleReject:l,handleCancel:n,handlePlaceOrder:p},children:O})})]})},oe=({className:o,withHeader:s=!0,withWrapper:e=!0,slots:u})=>{const{poId:i,status:d,availableActions:l,alertType:n,loading:p,poDataLoading:O,isDismissed:a,alertMessage:m,handleOnDismiss:A,handleApprove:S,handleReject:f,handleCancel:P,handlePlaceOrder:t}=G(),g=L({statusHeadingText:`PurchaseOrders.purchaseOrderStatus.status.${d.toLowerCase()}.title`,statusMessageText:`PurchaseOrders.purchaseOrderStatus.status.${d.toLowerCase()}.message`,approveButtonText:"PurchaseOrders.purchaseOrderStatus.buttons.approve",cancelButtonText:"PurchaseOrders.purchaseOrderStatus.buttons.cancel",rejectButtonText:"PurchaseOrders.purchaseOrderStatus.buttons.reject",placeOrderButtonText:"PurchaseOrders.purchaseOrderStatus.buttons.placeOrder"}),x=l.length>0;if(!i)return null;const b=C(B,{children:[s&&e?r(R,{headerText:g.statusHeadingText,divider:!0}):null,O?C(_,{"data-testid":"status-content-loader-skeleton-test-id",children:[r(y,{size:"small",variant:"row",fullWidth:!0,lines:1,style:{maxWidth:300}}),r(y,{size:"medium",variant:"row",fullWidth:!0,lines:1})]}):x?r(W,{t:g,loading:p,handleApprove:S,handleReject:f,handleCancel:P,handlePlaceOrder:t,availableActions:l,slots:u}):r("div",{className:"purchase-order-status__empty",children:r($,{id:"PurchaseOrders.purchaseOrderStatus.emptyText"})})]});return C("div",{className:k(["purchase-order-status",o]),children:[!a&&m?r(D,{style:{marginBottom:"1rem",textTransform:"capitalize"},heading:n,onDismiss:A,description:m,type:n}):null,s&&!e?r(R,{headerText:g.statusHeadingText}):null,e?r(w,{variant:"secondary",children:b}):b]})};export{oe as PurchaseOrderStatus,oe as default};
4
4
  //# sourceMappingURL=PurchaseOrderStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PurchaseOrderStatus.js","sources":["/@dropins/storefront-purchase-order/src/hooks/usePurchaseOrderStatus.tsx","/@dropins/storefront-purchase-order/src/components/PurchaseOrderStatusContent/PurchaseOrderStatusContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderStatus/PurchaseOrderStatus.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 { useState, useCallback, useEffect } from 'preact/hooks';\nimport {\n approvePurchaseOrders,\n cancelPurchaseOrders,\n placeOrderForPurchaseOrder,\n rejectPurchaseOrders,\n} from '@/b2b-purchase-order/api';\nimport { InLineAlertProps } from '@adobe-commerce/elsie/components';\nimport {\n UsePurchaseOrderStatusReturn,\n PURCHASE_ORDER_ACTION,\n PURCHASE_ORDER_STATUS,\n} from '@/b2b-purchase-order/types/hooks';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\nimport { PurchaseOrderModel } from '../data/models';\n\nexport const usePurchaseOrderStatus = (): UsePurchaseOrderStatusReturn => {\n const t = useText({\n approvalSuccessMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.success.approval',\n rejectSuccessMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.success.reject',\n cancelSuccessMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.success.cancel',\n placeOrderSuccessMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.success.placeOrder',\n approvalErrorMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.errors.approval',\n rejectErrorMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.errors.reject',\n cancelErrorMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.errors.cancel',\n placeOrderErrorMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.errors.placeOrder',\n });\n\n const [availableActions, setAvailableActions] = useState<\n PURCHASE_ORDER_ACTION[] | []\n >([]);\n const [poId, setPoId] = useState<string | null>(null);\n const [status, setStatus] = useState<PURCHASE_ORDER_STATUS>('PENDING');\n const [alertType, setAlertType] =\n useState<NonNullable<InLineAlertProps['type']>>('success');\n const [alertMessage, setAlertMessage] = useState('');\n const [loading, setLoading] = useState(false);\n const [isDismissed, setIsDismissed] = useState(true);\n const handleOnDismiss = () => {\n setIsDismissed(true);\n };\n\n useEffect(() => {\n const event = events.on(\n 'purchase-order/data',\n (po: PurchaseOrderModel) => {\n if (po?.uid) {\n setPoId(po.uid);\n setStatus(po.status as PURCHASE_ORDER_STATUS);\n setAvailableActions(po.availableActions as PURCHASE_ORDER_ACTION[]);\n }\n },\n { eager: true }\n );\n\n return () => {\n event?.off();\n };\n }, []);\n\n const showAlert = useCallback(\n (isSuccess: boolean, actionType: PURCHASE_ORDER_ACTION) => {\n let message = '';\n if (isSuccess) {\n switch (actionType) {\n case 'APPROVE':\n message = t.approvalSuccessMessage;\n break;\n case 'REJECT':\n message = t.rejectSuccessMessage;\n break;\n case 'CANCEL':\n message = t.cancelSuccessMessage;\n break;\n case 'PLACE_ORDER':\n message = t.placeOrderSuccessMessage;\n break;\n }\n setAlertType('success');\n } else {\n switch (actionType) {\n case 'APPROVE':\n message = t.approvalErrorMessage;\n break;\n case 'REJECT':\n message = t.rejectErrorMessage;\n break;\n case 'CANCEL':\n message = t.cancelErrorMessage;\n break;\n case 'PLACE_ORDER':\n message = t.placeOrderErrorMessage;\n break;\n }\n setAlertType('error');\n }\n\n setAlertMessage(message);\n setIsDismissed(false);\n },\n [t]\n );\n\n const handleAction = useCallback(\n async (\n apiFn: (id: string) => Promise<any>,\n actionType: PURCHASE_ORDER_ACTION\n ) => {\n if (!poId) return;\n setLoading(true);\n try {\n await apiFn(poId);\n showAlert(true, actionType);\n } catch {\n showAlert(false, actionType);\n } finally {\n setLoading(false);\n }\n },\n [poId, showAlert]\n );\n\n const handleApprove = useCallback(\n () => handleAction(approvePurchaseOrders, 'APPROVE'),\n [handleAction]\n );\n const handleReject = useCallback(\n () => handleAction(rejectPurchaseOrders, 'REJECT'),\n [handleAction]\n );\n const handleCancel = useCallback(\n () => handleAction(cancelPurchaseOrders, 'CANCEL'),\n [handleAction]\n );\n const handlePlaceOrder = useCallback(\n () => handleAction(placeOrderForPurchaseOrder, 'PLACE_ORDER'),\n [handleAction]\n );\n\n return {\n poId,\n status,\n availableActions,\n alertType,\n loading,\n isDismissed,\n alertMessage,\n handleOnDismiss,\n handleApprove,\n handleReject,\n handleCancel,\n handlePlaceOrder,\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 { FunctionComponent } from 'preact';\nimport { classes, Slot } from '@adobe-commerce/elsie/lib';\nimport '@/b2b-purchase-order/components/PurchaseOrderStatusContent/PurchaseOrderStatusContent.css';\nimport { PurchaseOrderStatusContentProps } from '@/b2b-purchase-order/types/components';\nimport { Button } from '@adobe-commerce/elsie/components';\nimport { PURCHASE_ORDER_ACTION } from '@/b2b-purchase-order/types/hooks';\n\nexport const PurchaseOrderStatusContent: FunctionComponent<\n PurchaseOrderStatusContentProps\n> = ({\n slots,\n t,\n loading,\n children,\n availableActions = [],\n handleApprove,\n handleReject,\n handleCancel,\n handlePlaceOrder,\n}) => {\n const renderButtons = availableActions.map((action) => {\n switch (action as PURCHASE_ORDER_ACTION) {\n case 'APPROVE':\n return (\n <Button\n variant=\"secondary\"\n disabled={loading}\n type=\"button\"\n key={action}\n onClick={handleApprove}\n >\n {t.approveButtonText}\n </Button>\n );\n case 'PLACE_ORDER':\n return (\n <Button\n variant=\"secondary\"\n disabled={loading}\n type=\"button\"\n key={action}\n onClick={handlePlaceOrder}\n >\n {t.placeOrderButtonText}\n </Button>\n );\n case 'REJECT':\n return (\n <Button\n variant=\"secondary\"\n disabled={loading}\n type=\"button\"\n key={action}\n onClick={handleReject}\n >\n {t.rejectButtonText}\n </Button>\n );\n case 'CANCEL':\n return (\n <Button\n variant=\"secondary\"\n disabled={loading}\n type=\"button\"\n key={action}\n onClick={handleCancel}\n >\n {t.cancelButtonText}\n </Button>\n );\n default:\n return null;\n }\n });\n\n return (\n <div className={classes(['b2b-purchase-order-status-content'])}>\n <div className={'b2b-purchase-order-status-content__message'}>\n {t.statusMessageText}\n </div>\n {children}\n <div className={'b2b-purchase-order-status-content__actions'}>\n <Slot\n data-testid=\"PurchaseOrderActions\"\n name=\"PurchaseOrderActions\"\n slot={slots?.PurchaseOrderActions}\n context={{\n loading,\n availableActions,\n handleApprove,\n handleReject,\n handleCancel,\n handlePlaceOrder,\n }}\n >\n {renderButtons}\n </Slot>\n </div>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n Card,\n Header,\n InLineAlert,\n Skeleton,\n SkeletonRow,\n} from '@adobe-commerce/elsie/components';\nimport { usePurchaseOrderStatus } from '@/b2b-purchase-order/hooks';\nimport { PurchaseOrderStatusProps } from '@/b2b-purchase-order/types/containers';\nimport { PurchaseOrderStatusContent } from '@/b2b-purchase-order/components';\n\nexport const PurchaseOrderStatus: Container<PurchaseOrderStatusProps> = ({\n className,\n slots,\n}) => {\n const {\n poId,\n status,\n availableActions,\n alertType,\n loading,\n isDismissed,\n alertMessage,\n handleOnDismiss,\n handleApprove,\n handleReject,\n handleCancel,\n handlePlaceOrder,\n } = usePurchaseOrderStatus();\n\n const t = useText({\n statusHeadingText: `PurchaseOrders.purchaseOrderStatus.status.${status.toLowerCase()}.title`,\n statusMessageText: `PurchaseOrders.purchaseOrderStatus.status.${status.toLowerCase()}.message`,\n approveButtonText: 'PurchaseOrders.purchaseOrderStatus.buttons.approve',\n cancelButtonText: 'PurchaseOrders.purchaseOrderStatus.buttons.cancel',\n rejectButtonText: 'PurchaseOrders.purchaseOrderStatus.buttons.reject',\n placeOrderButtonText:\n 'PurchaseOrders.purchaseOrderStatus.buttons.placeOrder',\n });\n\n const isActionAvailable = availableActions.length > 0;\n\n if (!poId) return null;\n\n return (\n <div className={classes(['purchase-order-status', className])}>\n {!isDismissed && alertMessage ? (\n <InLineAlert\n style={{ marginBottom: '1rem', textTransform: 'capitalize' }}\n heading={alertType}\n onDismiss={handleOnDismiss}\n description={alertMessage}\n type={alertType}\n />\n ) : null}\n <Card variant=\"secondary\">\n <Header title={t.statusHeadingText} />\n {isActionAvailable ? (\n <PurchaseOrderStatusContent\n t={t}\n loading={loading}\n handleApprove={handleApprove}\n handleReject={handleReject}\n handleCancel={handleCancel}\n handlePlaceOrder={handlePlaceOrder}\n availableActions={availableActions}\n slots={slots}\n />\n ) : (\n <Skeleton data-testid={'status-content-loader-skeleton-test-id'}>\n <SkeletonRow\n variant=\"heading\"\n size=\"xlarge\"\n fullWidth={false}\n lines={1}\n />\n <SkeletonRow\n variant=\"heading\"\n size=\"xlarge\"\n fullWidth={true}\n lines={1}\n />\n <SkeletonRow\n variant=\"heading\"\n size=\"xlarge\"\n fullWidth={true}\n lines={1}\n />\n </Skeleton>\n )}\n </Card>\n </div>\n );\n};\n"],"names":["usePurchaseOrderStatus","t","useText","availableActions","setAvailableActions","useState","poId","setPoId","status","setStatus","alertType","setAlertType","alertMessage","setAlertMessage","loading","setLoading","isDismissed","setIsDismissed","handleOnDismiss","useEffect","event","events","po","showAlert","useCallback","isSuccess","actionType","message","handleAction","apiFn","handleApprove","approvePurchaseOrders","handleReject","rejectPurchaseOrders","handleCancel","cancelPurchaseOrders","handlePlaceOrder","placeOrderForPurchaseOrder","PurchaseOrderStatusContent","slots","children","renderButtons","action","jsx","Button","classes","Slot","PurchaseOrderStatus","className","isActionAvailable","jsxs","InLineAlert","Card","Header","Skeleton","SkeletonRow"],"mappings":"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"}
1
+ {"version":3,"file":"PurchaseOrderStatus.js","sources":["/@dropins/storefront-purchase-order/src/hooks/usePurchaseOrderStatus.tsx","/@dropins/storefront-purchase-order/src/components/PurchaseOrderStatusContent/PurchaseOrderStatusContent.tsx","/@dropins/storefront-purchase-order/src/containers/PurchaseOrderStatus/PurchaseOrderStatus.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 { useState, useCallback } from 'preact/hooks';\nimport {\n approvePurchaseOrders,\n cancelPurchaseOrders,\n placeOrderForPurchaseOrder,\n rejectPurchaseOrders,\n} from '@/b2b-purchase-order/api';\nimport { InLineAlertProps } from '@adobe-commerce/elsie/components';\nimport {\n UsePurchaseOrderStatusReturn,\n PURCHASE_ORDER_ACTION,\n PURCHASE_ORDER_STATUS,\n} from '@/b2b-purchase-order/types/hooks';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { usePurchaseOrderData } from './usePurchaseOrderData';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const usePurchaseOrderStatus = (): UsePurchaseOrderStatusReturn => {\n const { poDataLoading, purchaseOrderData } = usePurchaseOrderData();\n\n const t = useText({\n approvalSuccessMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.success.approval',\n rejectSuccessMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.success.reject',\n cancelSuccessMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.success.cancel',\n placeOrderSuccessMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.success.placeOrder',\n approvalErrorMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.errors.approval',\n rejectErrorMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.errors.reject',\n cancelErrorMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.errors.cancel',\n placeOrderErrorMessage:\n 'PurchaseOrders.purchaseOrderStatus.alertMessages.errors.placeOrder',\n });\n\n const poId = purchaseOrderData?.uid ?? null;\n const status =\n (purchaseOrderData?.status as PURCHASE_ORDER_STATUS) ?? 'PENDING';\n const availableActions =\n (purchaseOrderData?.availableActions as PURCHASE_ORDER_ACTION[]) ?? [];\n\n const [alertType, setAlertType] =\n useState<NonNullable<InLineAlertProps['type']>>('success');\n const [alertMessage, setAlertMessage] = useState('');\n const [loading, setLoading] = useState(false);\n const [isDismissed, setIsDismissed] = useState(true);\n const handleOnDismiss = () => {\n setIsDismissed(true);\n };\n\n const showAlert = useCallback(\n (isSuccess: boolean, actionType: PURCHASE_ORDER_ACTION) => {\n let message = '';\n if (isSuccess) {\n switch (actionType) {\n case 'APPROVE':\n message = t.approvalSuccessMessage;\n break;\n case 'REJECT':\n message = t.rejectSuccessMessage;\n break;\n case 'CANCEL':\n message = t.cancelSuccessMessage;\n break;\n case 'PLACE_ORDER':\n message = t.placeOrderSuccessMessage;\n break;\n }\n setAlertType('success');\n } else {\n switch (actionType) {\n case 'APPROVE':\n message = t.approvalErrorMessage;\n break;\n case 'REJECT':\n message = t.rejectErrorMessage;\n break;\n case 'CANCEL':\n message = t.cancelErrorMessage;\n break;\n case 'PLACE_ORDER':\n message = t.placeOrderErrorMessage;\n break;\n }\n setAlertType('error');\n }\n\n setAlertMessage(message);\n setIsDismissed(false);\n },\n [t]\n );\n\n const handleAction = useCallback(\n async (\n apiFn: (id: string) => Promise<any>,\n actionType: PURCHASE_ORDER_ACTION\n ) => {\n if (!poId) return;\n setLoading(true);\n try {\n await apiFn(poId);\n showAlert(true, actionType);\n } catch {\n showAlert(false, actionType);\n } finally {\n setLoading(false);\n events.emit('purchase-order/refresh', true);\n }\n },\n [poId, showAlert]\n );\n\n const handleApprove = useCallback(\n () => handleAction(approvePurchaseOrders, 'APPROVE'),\n [handleAction]\n );\n const handleReject = useCallback(\n () => handleAction(rejectPurchaseOrders, 'REJECT'),\n [handleAction]\n );\n const handleCancel = useCallback(\n () => handleAction(cancelPurchaseOrders, 'CANCEL'),\n [handleAction]\n );\n const handlePlaceOrder = useCallback(\n () => handleAction(placeOrderForPurchaseOrder, 'PLACE_ORDER'),\n [handleAction]\n );\n\n return {\n poId,\n status,\n availableActions,\n alertType,\n loading,\n poDataLoading,\n isDismissed,\n alertMessage,\n handleOnDismiss,\n handleApprove,\n handleReject,\n handleCancel,\n handlePlaceOrder,\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 { FunctionComponent } from 'preact';\nimport { classes, Slot } from '@adobe-commerce/elsie/lib';\nimport '@/b2b-purchase-order/components/PurchaseOrderStatusContent/PurchaseOrderStatusContent.css';\nimport { PurchaseOrderStatusContentProps } from '@/b2b-purchase-order/types/components';\nimport { Button } from '@adobe-commerce/elsie/components';\nimport { PURCHASE_ORDER_ACTION } from '@/b2b-purchase-order/types/hooks';\n\nexport const PurchaseOrderStatusContent: FunctionComponent<\n PurchaseOrderStatusContentProps\n> = ({\n slots,\n t,\n loading,\n children,\n availableActions = [],\n handleApprove,\n handleReject,\n handleCancel,\n handlePlaceOrder,\n}) => {\n const renderButtons = availableActions.map((action) => {\n switch (action as PURCHASE_ORDER_ACTION) {\n case 'APPROVE':\n return (\n <Button\n variant=\"secondary\"\n disabled={loading}\n type=\"button\"\n key={action}\n onClick={handleApprove}\n >\n {t.approveButtonText}\n </Button>\n );\n case 'PLACE_ORDER':\n return (\n <Button\n variant=\"secondary\"\n disabled={loading}\n type=\"button\"\n key={action}\n onClick={handlePlaceOrder}\n >\n {t.placeOrderButtonText}\n </Button>\n );\n case 'REJECT':\n return (\n <Button\n variant=\"secondary\"\n disabled={loading}\n type=\"button\"\n key={action}\n onClick={handleReject}\n >\n {t.rejectButtonText}\n </Button>\n );\n case 'CANCEL':\n return (\n <Button\n variant=\"secondary\"\n disabled={loading}\n type=\"button\"\n key={action}\n onClick={handleCancel}\n >\n {t.cancelButtonText}\n </Button>\n );\n default:\n return null;\n }\n });\n\n return (\n <div className={classes(['b2b-purchase-order-status-content'])}>\n <div className={'b2b-purchase-order-status-content__message'}>\n {t.statusMessageText}\n </div>\n {children}\n <div className={'b2b-purchase-order-status-content__actions'}>\n <Slot\n data-testid=\"PurchaseOrderActions\"\n name=\"PurchaseOrderActions\"\n slot={slots?.PurchaseOrderActions}\n context={{\n loading,\n availableActions,\n handleApprove,\n handleReject,\n handleCancel,\n handlePlaceOrder,\n }}\n >\n {renderButtons}\n </Slot>\n </div>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useText, Text } from '@adobe-commerce/elsie/i18n';\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n Card,\n InLineAlert,\n Skeleton,\n SkeletonRow,\n} from '@adobe-commerce/elsie/components';\nimport { usePurchaseOrderStatus } from '@/b2b-purchase-order/hooks';\nimport { PurchaseOrderStatusProps } from '@/b2b-purchase-order/types/containers';\nimport {\n PurchaseOrderStatusContent,\n PurchaseOrdersHeader,\n} from '@/b2b-purchase-order/components';\n\nexport const PurchaseOrderStatus: Container<PurchaseOrderStatusProps> = ({\n className,\n withHeader = true,\n withWrapper = true,\n slots,\n}) => {\n const {\n poId,\n status,\n availableActions,\n alertType,\n loading,\n poDataLoading,\n isDismissed,\n alertMessage,\n handleOnDismiss,\n handleApprove,\n handleReject,\n handleCancel,\n handlePlaceOrder,\n } = usePurchaseOrderStatus();\n\n const t = useText({\n statusHeadingText: `PurchaseOrders.purchaseOrderStatus.status.${status.toLowerCase()}.title`,\n statusMessageText: `PurchaseOrders.purchaseOrderStatus.status.${status.toLowerCase()}.message`,\n approveButtonText: 'PurchaseOrders.purchaseOrderStatus.buttons.approve',\n cancelButtonText: 'PurchaseOrders.purchaseOrderStatus.buttons.cancel',\n rejectButtonText: 'PurchaseOrders.purchaseOrderStatus.buttons.reject',\n placeOrderButtonText:\n 'PurchaseOrders.purchaseOrderStatus.buttons.placeOrder',\n });\n\n const isActionAvailable = availableActions.length > 0;\n\n if (!poId) return null;\n\n const renderStatusContent = (\n <>\n {withHeader && withWrapper ? (\n <PurchaseOrdersHeader headerText={t.statusHeadingText} divider={true} />\n ) : null}\n {poDataLoading ? (\n <Skeleton data-testid={'status-content-loader-skeleton-test-id'}>\n <SkeletonRow\n size=\"small\"\n variant=\"row\"\n fullWidth\n lines={1}\n style={{ maxWidth: 300 }}\n />\n <SkeletonRow size=\"medium\" variant=\"row\" fullWidth lines={1} />\n </Skeleton>\n ) : isActionAvailable ? (\n <PurchaseOrderStatusContent\n t={t}\n loading={loading}\n handleApprove={handleApprove}\n handleReject={handleReject}\n handleCancel={handleCancel}\n handlePlaceOrder={handlePlaceOrder}\n availableActions={availableActions}\n slots={slots}\n />\n ) : (\n <div className={'purchase-order-status__empty'}>\n <Text id=\"PurchaseOrders.purchaseOrderStatus.emptyText\" />\n </div>\n )}\n </>\n );\n\n return (\n <div className={classes(['purchase-order-status', className])}>\n {!isDismissed && alertMessage ? (\n <InLineAlert\n style={{ marginBottom: '1rem', textTransform: 'capitalize' }}\n heading={alertType}\n onDismiss={handleOnDismiss}\n description={alertMessage}\n type={alertType}\n />\n ) : null}\n {withHeader && !withWrapper ? (\n <PurchaseOrdersHeader headerText={t.statusHeadingText} />\n ) : null}\n {withWrapper ? (\n <Card variant=\"secondary\">{renderStatusContent}</Card>\n ) : (\n renderStatusContent\n )}\n </div>\n );\n};\n"],"names":["usePurchaseOrderStatus","poDataLoading","purchaseOrderData","usePurchaseOrderData","t","useText","poId","status","availableActions","alertType","setAlertType","useState","alertMessage","setAlertMessage","loading","setLoading","isDismissed","setIsDismissed","handleOnDismiss","showAlert","useCallback","isSuccess","actionType","message","handleAction","apiFn","events","handleApprove","approvePurchaseOrders","handleReject","rejectPurchaseOrders","handleCancel","cancelPurchaseOrders","handlePlaceOrder","placeOrderForPurchaseOrder","PurchaseOrderStatusContent","slots","children","renderButtons","action","jsx","Button","classes","Slot","PurchaseOrderStatus","className","withHeader","withWrapper","isActionAvailable","renderStatusContent","jsxs","Fragment","PurchaseOrdersHeader","Skeleton","SkeletonRow","Text","InLineAlert","Card"],"mappings":"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"}
@@ -104,41 +104,43 @@ declare const _default: {
104
104
  "messageSuffix": "A copy of this Purchase Order will be emailed to you shortly."
105
105
  },
106
106
  "purchaseOrderStatus": {
107
+ "headerText": "Status",
108
+ "emptyText": "No actions available for this purchase order.",
107
109
  "status": {
108
110
  "pending": {
109
- "title": "Pending Approval",
111
+ "title": "Pending approval",
110
112
  "message": "Purchase order is awaiting approval."
111
113
  },
112
114
  "approval_required": {
113
- "title": "Approval Required",
115
+ "title": "Approval required",
114
116
  "message": "Purchase order requires approval before it can be processed."
115
117
  },
116
118
  "approved": {
117
- "title": "Approved",
119
+ "title": "Order approved",
118
120
  "message": "Purchase order has been approved."
119
121
  },
120
122
  "order_in_progress": {
121
- "title": "Processing in Progress",
123
+ "title": "Processing in progress",
122
124
  "message": "Purchase order is currently being processed."
123
125
  },
124
126
  "order_placed": {
125
- "title": "Placed",
126
- "message": "Purchase order has been placed successfully."
127
+ "title": "Order placed",
128
+ "message": "Order has been placed successfully."
127
129
  },
128
130
  "order_failed": {
129
- "title": "Failed",
130
- "message": "Purchase order processing has failed."
131
+ "title": "Order failed",
132
+ "message": "Order placing has failed."
131
133
  },
132
134
  "rejected": {
133
- "title": "Rejected",
135
+ "title": "Order rejected",
134
136
  "message": "Purchase order has been rejected."
135
137
  },
136
138
  "canceled": {
137
- "title": "Canceled",
139
+ "title": "Order canceled",
138
140
  "message": "Purchase order has been canceled."
139
141
  },
140
142
  "approved_pending_payment": {
141
- "title": "Approved - Pending Payment",
143
+ "title": "Order approved - pending payment",
142
144
  "message": "Purchase order has been approved and is awaiting payment."
143
145
  }
144
146
  },
@@ -252,8 +254,13 @@ declare const _default: {
252
254
  "statusTitle": "Status Changes",
253
255
  "emptyText": "No history log available.",
254
256
  "status": {
257
+ "cancel": "Cancelled on {{date}}",
258
+ "reject": "Rejected on {{date}}",
259
+ "place_order_fail": "Failed to place order on {{date}}",
260
+ "apply_rules": "Rule applied on {{date}}",
255
261
  "place_order": "Order placed on {{date}}",
256
262
  "auto_approve": "Auto approved on {{date}}",
263
+ "approve": "Approved on {{date}}",
257
264
  "submit": "Submitted for approval on {{date}}"
258
265
  },
259
266
  "buttons": {
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-purchase-order", "version": "0.0.6-alpha5", "@dropins/tools": "1.6.0-beta2", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-purchase-order", "version": "0.0.7-alpha1", "@dropins/tools": "1.6.0-beta2", "license": "SEE LICENSE IN LICENSE.md"}
package/render.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
3
  (function(t,a){try{if(typeof document<"u"){const e=document.createElement("style"),n=a.styleId;for(const r in a.attributes)e.setAttribute(r,a.attributes[r]);e.setAttribute("data-dropin",n),e.appendChild(document.createTextNode(t));const o=document.querySelector('style[data-dropin="sdk"]');if(o)o.after(e);else{const r=document.querySelector('link[rel="stylesheet"], style');r?r.before(e):document.head.append(e)}}}catch(e){console.error("dropin-styles (injectCodeFunction)",e)}})(`.dropin-skeleton{--row-gap-spacing: var(--spacing-medium);display:grid;grid-template-columns:1fr 1fr;gap:var(--row-gap-spacing)}.dropin-skeleton .dropin-skeleton--row__content{background:var(--color-neutral-300) linear-gradient(to right,var(--color-neutral-300) 0%,var(--color-neutral-100) 20%,var(--color-neutral-300) 40%,var(--color-neutral-300) 100%) no-repeat;animation:skeletonShimmer infinite 1.2s linear;border-radius:var(--shape-border-radius-2)}.dropin-skeleton__empty{background:none}.dropin-skeleton-row--multiline{--multiline-gap-spacing: var(--spacing-medium);display:grid;grid-auto-rows:max-content;gap:var(--multiline-gap-spacing)}.dropin-skeleton-row--full{grid-column:1 / -1}.dropin-skeleton-row svg{fill:var(--color-neutral-400);fill-opacity:.5;animation-duration:1s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:placeholderShimmer;animation-timing-function:linear}.dropin-skeleton-row__row-xsmall{height:32px}.dropin-skeleton-row__row-small{height:40px}.dropin-skeleton-row__row-medium{height:48px}.dropin-skeleton-row__row-large{height:56px}.dropin-skeleton-row__row-xlarge{height:72px}.dropin-skeleton-row__heading-xsmall{height:20px}.dropin-skeleton-row__heading-small{height:24px}.dropin-skeleton-row__heading-medium{height:32px}.dropin-skeleton-row__heading-large{height:40px}.dropin-skeleton-row__heading-xlarge{height:48px}@keyframes skeletonShimmer{0%{background-position:-600px 0}to{background-position:600px 0}}@keyframes placeholderShimmer{0%{fill-opacity:.5}50%{fill-opacity:1}to{fill-opacity:.5}}@media only screen and (max-width: 600px){.dropin-skeleton{grid-template-columns:1fr}}
4
- .b2b-purchase-order-purchase-orders-table{display:flex;flex-direction:column;gap:var(--spacing-medium)}.b2b-purchase-order-purchase-orders-table__row-details-action-inner-wrapper{display:flex;gap:var(--spacing-xsmall)}.b2b-purchase-order-purchase-orders-table--empty-state,.b2b-purchase-order-purchase-orders-table--empty-state>.dropin-card__content{gap:0}.b2b-purchase-order-purchase-orders-table a{cursor:pointer}.b2b-purchase-order-purchase-orders-table .purchase-orders-table__item--skeleton{max-width:200px}.purchase-orders-table__empty-state{text-align:center;color:var(--color-neutral-600);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);border:var(--shape-border-width-1) solid var(--color-neutral-400);border-top:none}.purchase-orders-table__empty-state:not(:last-child){margin-bottom:var(--spacing-medium)}.purchase-orders-table__pagination--loading{pointer-events:none;opacity:.5;cursor:not-allowed}.purchase-orders-table__pagination-wrapper{display:flex;justify-content:space-between;align-items:center}.purchase-orders-table__pagination-page-size{display:flex;align-items:center;gap:var(--spacing-small)}.purchase-orders-table__pagination-counter,.purchase-orders-table__pagination-page-size{color:var(--color-neutral-800);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}@media (max-width: 783px){.purchase-orders-table__pagination-wrapper{display:grid;grid-template-areas:"counter page-size" "pagination pagination";grid-template-columns:auto auto;gap:var(--spacing-small)}.purchase-orders-table__pagination-counter{grid-area:counter}.purchase-orders-table__pagination-page-size{grid-area:page-size}.purchase-orders-table__pagination{grid-area:pagination;justify-self:center}}@media (max-width: 600px){.purchase-orders-table__pagination-wrapper{grid-template-areas:"counter" "page-size" "pagination";grid-template-columns:1fr;justify-items:center}.purchase-orders-table__pagination-counter{grid-area:counter}.purchase-orders-table__pagination-page-size{grid-area:page-size}.purchase-orders-table__pagination{grid-area:pagination}}.b2b-purchase-order-purchase-orders-table__row-details{display:flex;justify-content:space-between;align-items:flex-end}.b2b-purchase-order-purchase-orders-table__row-details-content{flex:1;text-align:left}.b2b-purchase-order-purchase-orders-table__row-details-content p,.b2b-purchase-order-purchase-orders-table__row-details-content ul{margin:0 var(--spacing-xsmall) var(--spacing-xsmall) 0}.b2b-purchase-order-purchase-orders-table__row-details-content span:first-child{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.b2b-purchase-order-purchase-orders-table__status{max-width:max-content}.b2b-purchase-order-purchase-orders-table__status--positive{background-color:var(--color-positive-200)}.b2b-purchase-order-purchase-orders-table__status--negative{background-color:var(--color-alert-200)}.b2b-purchase-order-purchase-orders-table__status--waiting{background-color:var(--color-informational-200)}.b2b-purchase-order-purchase-orders-table .dropin-table__body td:last-child,.b2b-purchase-order-purchase-orders-table .dropin-table__header__row th:last-child{text-align:center}@container (max-width: 600px){.b2b-purchase-order-purchase-orders-table .dropin-table__body td:last-child,.b2b-purchase-order-purchase-orders-table .dropin-table__header__row th:last-child{text-align:left}}.dropin-table__body__cell .dropin-action-button{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.purchase-orders-header{margin-bottom:var(--spacing-medium)}.b2b-purchase-order-purchase-orders-table-actions{display:flex;justify-content:space-between;align-items:center}.b2b-purchase-order-purchase-orders-table-actions__buttons{display:flex;gap:10px;justify-content:space-between}.b2b-purchase-order-approval-rule-form form{display:flex;flex-direction:column;gap:var(--spacing-small)}.b2b-purchase-order-approval-rule-form__rule-condition,.b2b-purchase-order-approval-rule-form__approval-role,.b2b-purchase-order-approval-rule-form__rule-type,.b2b-purchase-order-approval-rule-form__applies-to,.b2b-purchase-order-approval-rule-form__rule-condition-container,.b2b-purchase-order-approval-rule-form__buttons{display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.b2b-purchase-order-approval-rule-form form>label.dropin-checkbox{align-items:center}.b2b-purchase-order-approval-rule-form__rule-type select,.b2b-purchase-order-approval-rule-form__rule-condition-container select{min-height:56px}.b2b-purchase-order-approval-rule-form__rule-condition-container{flex-direction:row;position:relative}.b2b-purchase-order-approval-rule-form__rule-condition-container--error{margin-bottom:var( --spacing-xsmall )}.b2b-purchase-order-approval-rule-form__rule-condition-container>div{position:relative}.b2b-purchase-order-approval-rule-form__rule-condition-container .error-message{position:absolute;top:100%;left:0;right:0;z-index:10}.b2b-purchase-order-approval-rule-form__buttons{justify-content:flex-start;flex-direction:row}@media (max-width: 600px){.b2b-purchase-order-approval-rule-form__rule-condition-container{flex-direction:column;margin-bottom:var(--spacing-xsmall)}.b2b-purchase-order-approval-rule-form__rule-condition-container .error-message{position:static}.b2b-purchase-order-approval-rule-form form .dropin-multi-select{min-width:100%}}.error-message{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);padding-top:var(--spacing-xsmall);text-align:left;color:var(--color-alert-800)}.b2b-purchase-order-approval-rule-form .dropin-skeleton{width:100%;display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.approval-rule-form-loader__section{display:flex;flex-direction:column;gap:var(--spacing-xsmall);margin-bottom:var(--spacing-medium)}.approval-rule-form-loader__buttons{display:flex;gap:var(--spacing-small)}.purchase-orders-confirmation-content__title{color:var(--color-neutral-800);font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing)}.purchase-orders-confirmation-content__message{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.purchase-orders-confirmation-content__link{color:var(--color-brand-500);font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing)}.b2b-purchase-order-status-content__message{padding:0;margin:0;box-sizing:border-box;font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);margin-bottom:var(--spacing-small)}.b2b-purchase-order-status-content__actions>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-xsmall)}.purchase-order-status .dropin-card__content{gap:0}.b2b-purchase-order-approval-rule-details-content__item{margin-bottom:var(--spacing-medium);display:grid;grid-template-columns:1fr;gap:var(--spacing-xsmall)}.b2b-purchase-order-approval-rule-details-content__label{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.b2b-purchase-order-approval-rule-details-content__value{display:block}.b2b-purchase-order-approval-rule-details-content__value ul{margin:0;padding-left:var(--spacing-medium)}.b2b-purchase-order-approval-rule-details-content__value>div{display:inline-flex;flex-wrap:wrap;align-items:center;margin-right:var(--spacing-small);gap:var(--spacing-xsmall)}.approval-rule-details__button{max-width:max-content}.b2b-purchase-order-form-loader .dropin-skeleton{width:100%;display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.b2b-purchase-order-form-loader .approval-rule-form-loader__section{display:flex;flex-direction:column;gap:var(--spacing-xsmall);margin-bottom:var(--spacing-medium)}.b2b-purchase-order-form-loader .approval-rule-form-loader__buttons{display:flex;gap:var(--spacing-small)}.b2b-purchase-order-comment-list-content__list{list-style:none;margin:0;padding:0}.b2b-purchase-order-comment-list-content__item{padding:var(--spacing-small) 0}.b2b-purchase-order-comment-list-content__item:first-child{padding-top:0}.b2b-purchase-order-comment-list-content__item:last-child{padding-bottom:0}.b2b-purchase-order-comment-list-content__title{font:var(--type-body-1-emphasized-font);margin-bottom:var(--spacing-xsmall)}.b2b-purchase-order-comment-list-content__description{color:var(--color-neutral-700)}.b2b-purchase-order-comment-list-content__divider{border:none;border-top:var(--shape-border-width-1) solid var(--color-neutral-300);margin:0}.b2b-purchase-order-comment-list-content__actions{display:flex;justify-content:center;align-items:center;margin-top:var(--spacing-small)}.b2b-purchase-order-comment-form-content{display:flex;flex-direction:column;gap:var(--spacing-small)}.b2b-purchase-order-comment-form-content button{align-self:flex-end}.b2b-purchase-order-comment-form-content .dropin-textarea:not(:placeholder-shown)+.dropin-textarea__label--floating{background-color:transparent}.b2b-purchase-order-approval-flow-content__list{list-style:none;margin:0;padding:0}.b2b-purchase-order-approval-flow-content__item{padding:var(--spacing-small) 0}.b2b-purchase-order-approval-flow-content__item:first-child{padding-top:0}.b2b-purchase-order-approval-flow-content__item:last-child{padding-bottom:0}.b2b-purchase-order-approval-flow-content__title{font-weight:600;margin-bottom:var(--spacing-xsmall)}.b2b-purchase-order-approval-flow-content__description{color:var(--color-neutral-700);display:flex;justify-content:flex-start;align-items:center;gap:var(--spacing-xsmall)}.b2b-purchase-order-approval-flow-content__divider{border:none;border-top:var(--shape-border-width-1) solid var(--color-neutral-300);margin:0}.b2b-purchase-order-approval-flow-content__icon--pending{color:var(--color-neutral-50);background-color:var(--color-informational-500);border-radius:50%;border:1px solid var(--color-informational-500)}.b2b-purchase-order-approval-flow-content__icon--approved{color:var(--color-positive-500)}.b2b-purchase-order-approval-flow-content__icon--rejected{color:var(--color-alert-500)}.b2b-purchase-order-history-log-content__list{list-style:none;margin:0;padding:0}.b2b-purchase-order-history-log-content__item{padding:var(--spacing-small) 0}.b2b-purchase-order-history-log-content__item:first-child{padding-top:0}.b2b-purchase-order-history-log-content__item:last-child{padding-bottom:0}.b2b-purchase-order-history-log-content__title{font:var(--type-body-1-emphasized-font);margin-bottom:var(--spacing-xsmall)}.b2b-purchase-order-history-log-content__description{color:var(--color-neutral-700)}.b2b-purchase-order-history-log-content__divider{border:none;border-top:var(--shape-border-width-1) solid var(--color-neutral-300);margin:0}.b2b-purchase-order-history-log-content__actions{margin-top:var(--spacing-small);display:flex;justify-content:center;align-items:center}`,{styleId:"b2b-purchase-order"});
5
- import{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{Render as l}from"@dropins/tools/lib.js";import{useState as p,useEffect as d}from"@dropins/tools/preact-hooks.js";import{UIProvider as n}from"@dropins/tools/components.js";import{events as i}from"@dropins/tools/event-bus.js";const u={customerPurchaseOrders:{containerTitle:"My purchase orders",noPurchaseOrders:"No purchase orders found."},companyPurchaseOrders:{containerTitle:"Company purchase orders",noPurchaseOrders:"No company purchase orders found."},requireApprovalPurchaseOrders:{containerTitle:"Requires my approval",noPurchaseOrders:"No purchase orders requiring my approval found."},approvalRulesList:{containerTitle:"Approval rules",emptyTitle:"No approval rules found",ariaLabel:{editRule:"Edit approval rule {{ruleName}}",deleteRule:"Delete approval rule {{ruleName}}",viewRule:"View approval rule {{ruleName}}"},buttons:{newRule:"Add New Rule"}},alertMessages:{header:{approve:"Approve Purchase Orders",reject:"Reject Purchase Orders",error:"Error"},description:{approve:"The selected purchase orders were approved successfully.",reject:"The selected purchase orders were rejected successfully.",error:"An error occurred while processing your request."}},purchaseOrdersTable:{noPurchaseOrders:{default:"No purchase orders found."},pagination:{status:"Items {{from}}-{{to}} of {{total}}",pageSizeLabel:{start:"Show"}},loading:"Loading purchase orders...",actionView:"View",actionEdit:"Edit",actionDelete:"Delete",rulesStatus:{enabled:"Enabled",disabled:"Disabled"},ruleTypes:{grand_total:"Grand Total",number_of_skus:"Number of SKUs",any_item:"Any Item",all_items:"All Items"},buttons:{expandedHidden:"Hide",expandedShow:"Show"},appliesToAll:"All",statusOrder:{order_placed:"Order placed",order_failed:"Order failed",pending:"Pending",approved:"Approved",rejected:"Rejected",canceled:"Canceled",order_in_progress:"Order in progress",approval_required:"Approval required",approved_pending_payment:"Approved pending Payment"},expandedRowLabels:{orderNumber:"Order Number:",createdDate:"Created Date:",updatedDate:"Updated Date:",total:"Total:",ruleType:"Rule Type:",appliesTo:"Applies To:",approver:"Approver:"},tableColumns:{poNumber:"PO #",orderNumber:"Order #",createdDate:"Created",updatedDate:"Updated",createdBy:"Created By",status:"Status",total:"Total",action:"Action",ruleName:"Rule Name",selectAllAriaLabel:"Select all not approved purchase orders"}},purchaseOrderConfirmation:{title:"Your Purchase Order has been submitted for approval.",messagePrefix:"Your Purchase Order request number is",messageSuffix:"A copy of this Purchase Order will be emailed to you shortly."},purchaseOrderStatus:{status:{pending:{title:"Pending Approval",message:"Purchase order is awaiting approval."},approval_required:{title:"Approval Required",message:"Purchase order requires approval before it can be processed."},approved:{title:"Approved",message:"Purchase order has been approved."},order_in_progress:{title:"Processing in Progress",message:"Purchase order is currently being processed."},order_placed:{title:"Placed",message:"Purchase order has been placed successfully."},order_failed:{title:"Failed",message:"Purchase order processing has failed."},rejected:{title:"Rejected",message:"Purchase order has been rejected."},canceled:{title:"Canceled",message:"Purchase order has been canceled."},approved_pending_payment:{title:"Approved - Pending Payment",message:"Purchase order has been approved and is awaiting payment."}},alertMessages:{success:{approval:"The purchase order was approved successfully.",reject:"The purchase order was rejected successfully.",cancel:"The purchase order was canceled successfully.",placeOrder:"The sales order was placed successfully."},errors:{approval:"An error occurred while approving the purchase order. Please try again.",reject:"An error occurred while rejecting the purchase order. Please try again.",cancel:"An error occurred while canceling the purchase order. Please try again.",placeOrder:"An error occurred while placing the sales order. Please try again."}},buttons:{approve:"Approve",reject:"Reject",cancel:"Cancel",placeOrder:"Place Order"}},approvalRuleForm:{headerText:"Purchase order approval rule",titleAppliesTo:"Applies To",titleRuleType:"Rule Type",titleRequiresApprovalRole:"Requires Approval From",fields:{enabled:"Rule Enabled",disabled:"Rule Disabled",inputRuleName:{floatingLabel:"Rule Name",placeholder:"Rule Name"},textAreaDescription:{label:"Rule Description"},appliesTo:{allUsers:"All Users",specificRoles:"Specific Roles"},ruleTypeOptions:{grandTotal:"Grand Total",shippingInclTax:"Shipping Cost",numberOfSkus:"Number of SKUs"},conditionOperators:{moreThan:"is more than",lessThan:"is less than",moreThanOrEqualTo:"is more than or equal to",lessThanOrEqualTo:"is less than or equal to"},inputQuantity:{floatingLabel:"Enter Amount",placeholder:"Enter Amount"},inputAmount:{floatingLabel:"Enter Amount",placeholder:"Enter Amount"},buttons:{cancel:"Cancel",save:"Save"}},errorsMessages:{required:"This field is required.",quantity:"Quantity must be greater than 0.",amount:"Amount must be greater than 0.",approvers:"Please select at least one approver."}},approvalRuleDetails:{containerTitle:"Approval rule details",buttons:{back:"Back to Rules List"},fields:{ruleName:"Rule Name:",status:"Status:",description:"Description:",appliesTo:"Applies To:",requiresApprovalFrom:"Requires Approval From:",ruleType:"Rule Type:",amount:{label:" amount "},statusView:{enabled:"Enabled",disabled:"Disabled"},condition:{attribute:{grand_total:"Grand Total",shipping_incl_tax:"Shipping Cost",number_of_skus:"Number of SKUs"},operator:{more_than:"Is more than",less_than:"Is less than",more_than_or_equal_to:"Is more than or equal to",less_than_or_equal_to:"Is less than or equal to"}}}},historyLog:{headerText:"Purchase order history log",statusTitle:"Status Changes",emptyText:"No history log available.",status:{place_order:"Order placed on {{date}}",auto_approve:"Auto approved on {{date}}",submit:"Submitted for approval on {{date}}"},buttons:{viewMore:"View More",viewLess:"View Less"},ariaLabel:{showMore:"Show more history items",showLess:"Show fewer history items"}},comments:{view:{headerText:"Purchase order comments",emptyText:"No comments available.",buttons:{viewMore:"View More",viewLess:"View Less"},ariaLabel:{showMore:"Show more comments",showLess:"Show fewer comments"}},add:{headerText:"Add purchase order comment",placeholder:"Add your comment",submit:"Add Comment",errorMessage:"Something went wrong while adding your comment. Please try again."}},approvalFlow:{headerText:"Purchase order approval flow",emptyText:"No approval flow is available for this purchase order.",ariaLabels:{icons:{approved:"Status approved",rejected:"Status rejected",pending:"Status pending approval"}}}},c={PurchaseOrders:u},h={default:c},m=({children:a})=>{const[s,o]=p("en_US");return d(()=>{const e=i.on("locale",t=>{o(t)},{eager:!0});return()=>{e==null||e.off()}},[]),r(n,{lang:s,langDefinitions:h,children:a})},T=new l(r(m,{}));export{T as render};
4
+ .b2b-purchase-order-purchase-orders-table{display:flex;flex-direction:column;gap:var(--spacing-medium)}.b2b-purchase-order-purchase-orders-table__row-details-action-inner-wrapper{display:flex;gap:var(--spacing-xsmall)}.b2b-purchase-order-purchase-orders-table--empty-state,.b2b-purchase-order-purchase-orders-table--empty-state>.dropin-card__content{gap:0}.b2b-purchase-order-purchase-orders-table--empty-state .purchase-orders-table__header{margin-bottom:var(--spacing-medium)}.b2b-purchase-order-purchase-orders-table a{cursor:pointer}.b2b-purchase-order-purchase-orders-table .purchase-orders-table__item--skeleton{max-width:200px}.purchase-orders-table__empty-state{text-align:center;color:var(--color-neutral-600);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);border:var(--shape-border-width-1) solid var(--color-neutral-400);border-top:none}.purchase-orders-table__empty-state:not(:last-child){margin-bottom:var(--spacing-medium)}.purchase-orders-table__pagination--loading{pointer-events:none;opacity:.5;cursor:not-allowed}.purchase-orders-table__pagination-wrapper{display:flex;justify-content:space-between;align-items:center}.purchase-orders-table__pagination-page-size{display:flex;align-items:center;gap:var(--spacing-small)}.purchase-orders-table__pagination-counter,.purchase-orders-table__pagination-page-size{color:var(--color-neutral-800);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}@media (max-width: 783px){.purchase-orders-table__pagination-wrapper{display:grid;grid-template-areas:"counter page-size" "pagination pagination";grid-template-columns:auto auto;gap:var(--spacing-small)}.purchase-orders-table__pagination-counter{grid-area:counter}.purchase-orders-table__pagination-page-size{grid-area:page-size}.purchase-orders-table__pagination{grid-area:pagination;justify-self:center}}@media (max-width: 600px){.purchase-orders-table__pagination-wrapper{grid-template-areas:"counter" "page-size" "pagination";grid-template-columns:1fr;justify-items:center}.purchase-orders-table__pagination-counter{grid-area:counter}.purchase-orders-table__pagination-page-size{grid-area:page-size}.purchase-orders-table__pagination{grid-area:pagination}}.b2b-purchase-order-purchase-orders-table__row-details{display:flex;justify-content:space-between;align-items:flex-end}.b2b-purchase-order-purchase-orders-table__row-details-content{flex:1;text-align:left}.b2b-purchase-order-purchase-orders-table__row-details-content p,.b2b-purchase-order-purchase-orders-table__row-details-content ul{margin:0 var(--spacing-xsmall) var(--spacing-xsmall) 0}.b2b-purchase-order-purchase-orders-table__row-details-content span:first-child{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.b2b-purchase-order-purchase-orders-table__status{max-width:max-content}.b2b-purchase-order-purchase-orders-table__status--positive{background-color:var(--color-positive-200)}.b2b-purchase-order-purchase-orders-table__status--negative{background-color:var(--color-alert-200)}.b2b-purchase-order-purchase-orders-table__status--waiting{background-color:var(--color-informational-200)}.b2b-purchase-order-purchase-orders-table .dropin-table__body td:last-child,.b2b-purchase-order-purchase-orders-table .dropin-table__header__row th:last-child{text-align:center}@container (max-width: 600px){.b2b-purchase-order-purchase-orders-table .dropin-table__body td:last-child,.b2b-purchase-order-purchase-orders-table .dropin-table__header__row th:last-child{text-align:left}}.dropin-table__body__cell .dropin-action-button{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.purchase-orders-header{margin-bottom:var(--spacing-medium)}.purchase-orders-header--with-divider{margin-bottom:0}.purchase-orders-header--with-divider>hr.dropin-divider{margin-bottom:0}.b2b-purchase-order-purchase-orders-table-actions{display:flex;justify-content:space-between;align-items:center}.b2b-purchase-order-purchase-orders-table-actions__buttons{display:flex;gap:10px;justify-content:space-between}.b2b-purchase-order-approval-rule-form form{display:flex;flex-direction:column;gap:var(--spacing-small)}.b2b-purchase-order-approval-rule-form__rule-condition,.b2b-purchase-order-approval-rule-form__approval-role,.b2b-purchase-order-approval-rule-form__rule-type,.b2b-purchase-order-approval-rule-form__applies-to,.b2b-purchase-order-approval-rule-form__rule-condition-container,.b2b-purchase-order-approval-rule-form__buttons{display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.b2b-purchase-order-approval-rule-form form>label.dropin-checkbox{align-items:center}.b2b-purchase-order-approval-rule-form__rule-type select,.b2b-purchase-order-approval-rule-form__rule-condition-container select{min-height:56px}.b2b-purchase-order-approval-rule-form__rule-condition-container{flex-direction:row;position:relative}.b2b-purchase-order-approval-rule-form__rule-condition-container--error{margin-bottom:var( --spacing-xsmall )}.b2b-purchase-order-approval-rule-form__rule-condition-container>div{position:relative}.b2b-purchase-order-approval-rule-form__rule-condition-container .error-message{position:absolute;top:100%;left:0;right:0;z-index:10}.b2b-purchase-order-approval-rule-form__buttons{justify-content:flex-start;flex-direction:row}@media (max-width: 600px){.b2b-purchase-order-approval-rule-form__rule-condition-container{flex-direction:column;margin-bottom:var(--spacing-xsmall)}.b2b-purchase-order-approval-rule-form__rule-condition-container .error-message{position:static}.b2b-purchase-order-approval-rule-form form .dropin-multi-select{min-width:100%}}.error-message{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);padding-top:var(--spacing-xsmall);text-align:left;color:var(--color-alert-800)}.b2b-purchase-order-approval-rule-form .dropin-skeleton{width:100%;display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.approval-rule-form-loader__section{display:flex;flex-direction:column;gap:var(--spacing-xsmall);margin-bottom:var(--spacing-medium)}.approval-rule-form-loader__buttons{display:flex;gap:var(--spacing-small)}.purchase-orders-confirmation-content__title{color:var(--color-neutral-800);font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing)}.purchase-orders-confirmation-content__message{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.purchase-orders-confirmation-content__link{color:var(--color-brand-500);font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing)}.purchase-order-status .dropin-in-line-alert__description{text-transform:none}.b2b-purchase-order-status-content__message{padding:0;margin:0;box-sizing:border-box;font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);margin-bottom:var(--spacing-small)}.b2b-purchase-order-status-content__actions>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-xsmall)}.b2b-purchase-order-approval-rule-details-content__item{margin-bottom:var(--spacing-medium);display:grid;grid-template-columns:1fr;gap:var(--spacing-xsmall)}.b2b-purchase-order-approval-rule-details-content__label{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.b2b-purchase-order-approval-rule-details-content__value{display:block}.b2b-purchase-order-approval-rule-details-content__value ul{margin:0;padding-left:var(--spacing-medium)}.b2b-purchase-order-approval-rule-details-content__value>div{display:inline-flex;flex-wrap:wrap;align-items:center;margin-right:var(--spacing-small);gap:var(--spacing-xsmall)}.approval-rule-details__button{max-width:max-content}.b2b-purchase-order-form-loader .dropin-skeleton{width:100%;display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.b2b-purchase-order-form-loader .approval-rule-form-loader__section{display:flex;flex-direction:column;gap:var(--spacing-xsmall);margin-bottom:var(--spacing-medium)}.b2b-purchase-order-form-loader .approval-rule-form-loader__buttons{display:flex;gap:var(--spacing-small)}.b2b-purchase-order-comment-list-content__list{list-style:none;margin:0;padding:0}.b2b-purchase-order-comment-list-content__item{padding:var(--spacing-small) 0}.b2b-purchase-order-comment-list-content__item:first-child{padding-top:0}.b2b-purchase-order-comment-list-content__item:last-child{padding-bottom:0}.b2b-purchase-order-comment-list-content__title{font:var(--type-body-1-emphasized-font);margin-bottom:var(--spacing-xsmall)}.b2b-purchase-order-comment-list-content__description{color:var(--color-neutral-700)}.b2b-purchase-order-comment-list-content__divider{border:none;border-top:var(--shape-border-width-1) solid var(--color-neutral-300);margin:0}.b2b-purchase-order-comment-list-content__actions{display:flex;justify-content:center;align-items:center;margin-top:var(--spacing-small)}.b2b-purchase-order-comment-form-content{display:flex;flex-direction:column;gap:var(--spacing-small)}.b2b-purchase-order-comment-form-content button{align-self:flex-end}.b2b-purchase-order-comment-form-content .dropin-textarea:not(:placeholder-shown)+.dropin-textarea__label--floating{background-color:transparent}.b2b-purchase-order-approval-flow-content__list{list-style:none;margin:0;padding:0}.b2b-purchase-order-approval-flow-content__item{padding:var(--spacing-small) 0}.b2b-purchase-order-approval-flow-content__item:first-child{padding-top:0}.b2b-purchase-order-approval-flow-content__item:last-child{padding-bottom:0}.b2b-purchase-order-approval-flow-content__title{font-weight:600;margin-bottom:var(--spacing-xsmall)}.b2b-purchase-order-approval-flow-content__description{color:var(--color-neutral-700);display:flex;justify-content:flex-start;align-items:center;gap:var(--spacing-xsmall)}.b2b-purchase-order-approval-flow-content__divider{border:none;border-top:var(--shape-border-width-1) solid var(--color-neutral-300);margin:0}.b2b-purchase-order-approval-flow-content__icon--pending{color:var(--color-neutral-50);background-color:var(--color-informational-500);border-radius:50%;border:1px solid var(--color-informational-500)}.b2b-purchase-order-approval-flow-content__icon--approved{color:var(--color-positive-500)}.b2b-purchase-order-approval-flow-content__icon--rejected{color:var(--color-alert-500)}.b2b-purchase-order-history-log-content__list{list-style:none;margin:0;padding:0}.b2b-purchase-order-history-log-content__item{padding:var(--spacing-small) 0}.b2b-purchase-order-history-log-content__item:first-child{padding-top:0}.b2b-purchase-order-history-log-content__item:last-child{padding-bottom:0}.b2b-purchase-order-history-log-content__title{font:var(--type-body-1-emphasized-font);margin-bottom:var(--spacing-xsmall)}.b2b-purchase-order-history-log-content__description{color:var(--color-neutral-700)}.b2b-purchase-order-history-log-content__divider{border:none;border-top:var(--shape-border-width-1) solid var(--color-neutral-300);margin:0}.b2b-purchase-order-history-log-content__actions{margin-top:var(--spacing-small);display:flex;justify-content:center;align-items:center}`,{styleId:"b2b-purchase-order"});
5
+ import{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{Render as l}from"@dropins/tools/lib.js";import{useState as d,useEffect as p}from"@dropins/tools/preact-hooks.js";import{UIProvider as n}from"@dropins/tools/components.js";import{events as i}from"@dropins/tools/event-bus.js";const u={customerPurchaseOrders:{containerTitle:"My purchase orders",noPurchaseOrders:"No purchase orders found."},companyPurchaseOrders:{containerTitle:"Company purchase orders",noPurchaseOrders:"No company purchase orders found."},requireApprovalPurchaseOrders:{containerTitle:"Requires my approval",noPurchaseOrders:"No purchase orders requiring my approval found."},approvalRulesList:{containerTitle:"Approval rules",emptyTitle:"No approval rules found",ariaLabel:{editRule:"Edit approval rule {{ruleName}}",deleteRule:"Delete approval rule {{ruleName}}",viewRule:"View approval rule {{ruleName}}"},buttons:{newRule:"Add New Rule"}},alertMessages:{header:{approve:"Approve Purchase Orders",reject:"Reject Purchase Orders",error:"Error"},description:{approve:"The selected purchase orders were approved successfully.",reject:"The selected purchase orders were rejected successfully.",error:"An error occurred while processing your request."}},purchaseOrdersTable:{noPurchaseOrders:{default:"No purchase orders found."},pagination:{status:"Items {{from}}-{{to}} of {{total}}",pageSizeLabel:{start:"Show"}},loading:"Loading purchase orders...",actionView:"View",actionEdit:"Edit",actionDelete:"Delete",rulesStatus:{enabled:"Enabled",disabled:"Disabled"},ruleTypes:{grand_total:"Grand Total",number_of_skus:"Number of SKUs",any_item:"Any Item",all_items:"All Items"},buttons:{expandedHidden:"Hide",expandedShow:"Show"},appliesToAll:"All",statusOrder:{order_placed:"Order placed",order_failed:"Order failed",pending:"Pending",approved:"Approved",rejected:"Rejected",canceled:"Canceled",order_in_progress:"Order in progress",approval_required:"Approval required",approved_pending_payment:"Approved pending Payment"},expandedRowLabels:{orderNumber:"Order Number:",createdDate:"Created Date:",updatedDate:"Updated Date:",total:"Total:",ruleType:"Rule Type:",appliesTo:"Applies To:",approver:"Approver:"},tableColumns:{poNumber:"PO #",orderNumber:"Order #",createdDate:"Created",updatedDate:"Updated",createdBy:"Created By",status:"Status",total:"Total",action:"Action",ruleName:"Rule Name",selectAllAriaLabel:"Select all not approved purchase orders"}},purchaseOrderConfirmation:{title:"Your Purchase Order has been submitted for approval.",messagePrefix:"Your Purchase Order request number is",messageSuffix:"A copy of this Purchase Order will be emailed to you shortly."},purchaseOrderStatus:{headerText:"Status",emptyText:"No actions available for this purchase order.",status:{pending:{title:"Pending approval",message:"Purchase order is awaiting approval."},approval_required:{title:"Approval required",message:"Purchase order requires approval before it can be processed."},approved:{title:"Order approved",message:"Purchase order has been approved."},order_in_progress:{title:"Processing in progress",message:"Purchase order is currently being processed."},order_placed:{title:"Order placed",message:"Order has been placed successfully."},order_failed:{title:"Order failed",message:"Order placing has failed."},rejected:{title:"Order rejected",message:"Purchase order has been rejected."},canceled:{title:"Order canceled",message:"Purchase order has been canceled."},approved_pending_payment:{title:"Order approved - pending payment",message:"Purchase order has been approved and is awaiting payment."}},alertMessages:{success:{approval:"The purchase order was approved successfully.",reject:"The purchase order was rejected successfully.",cancel:"The purchase order was canceled successfully.",placeOrder:"The sales order was placed successfully."},errors:{approval:"An error occurred while approving the purchase order. Please try again.",reject:"An error occurred while rejecting the purchase order. Please try again.",cancel:"An error occurred while canceling the purchase order. Please try again.",placeOrder:"An error occurred while placing the sales order. Please try again."}},buttons:{approve:"Approve",reject:"Reject",cancel:"Cancel",placeOrder:"Place Order"}},approvalRuleForm:{headerText:"Purchase order approval rule",titleAppliesTo:"Applies To",titleRuleType:"Rule Type",titleRequiresApprovalRole:"Requires Approval From",fields:{enabled:"Rule Enabled",disabled:"Rule Disabled",inputRuleName:{floatingLabel:"Rule Name",placeholder:"Rule Name"},textAreaDescription:{label:"Rule Description"},appliesTo:{allUsers:"All Users",specificRoles:"Specific Roles"},ruleTypeOptions:{grandTotal:"Grand Total",shippingInclTax:"Shipping Cost",numberOfSkus:"Number of SKUs"},conditionOperators:{moreThan:"is more than",lessThan:"is less than",moreThanOrEqualTo:"is more than or equal to",lessThanOrEqualTo:"is less than or equal to"},inputQuantity:{floatingLabel:"Enter Amount",placeholder:"Enter Amount"},inputAmount:{floatingLabel:"Enter Amount",placeholder:"Enter Amount"},buttons:{cancel:"Cancel",save:"Save"}},errorsMessages:{required:"This field is required.",quantity:"Quantity must be greater than 0.",amount:"Amount must be greater than 0.",approvers:"Please select at least one approver."}},approvalRuleDetails:{containerTitle:"Approval rule details",buttons:{back:"Back to Rules List"},fields:{ruleName:"Rule Name:",status:"Status:",description:"Description:",appliesTo:"Applies To:",requiresApprovalFrom:"Requires Approval From:",ruleType:"Rule Type:",amount:{label:" amount "},statusView:{enabled:"Enabled",disabled:"Disabled"},condition:{attribute:{grand_total:"Grand Total",shipping_incl_tax:"Shipping Cost",number_of_skus:"Number of SKUs"},operator:{more_than:"Is more than",less_than:"Is less than",more_than_or_equal_to:"Is more than or equal to",less_than_or_equal_to:"Is less than or equal to"}}}},historyLog:{headerText:"Purchase order history log",statusTitle:"Status Changes",emptyText:"No history log available.",status:{cancel:"Cancelled on {{date}}",reject:"Rejected on {{date}}",place_order_fail:"Failed to place order on {{date}}",apply_rules:"Rule applied on {{date}}",place_order:"Order placed on {{date}}",auto_approve:"Auto approved on {{date}}",approve:"Approved on {{date}}",submit:"Submitted for approval on {{date}}"},buttons:{viewMore:"View More",viewLess:"View Less"},ariaLabel:{showMore:"Show more history items",showLess:"Show fewer history items"}},comments:{view:{headerText:"Purchase order comments",emptyText:"No comments available.",buttons:{viewMore:"View More",viewLess:"View Less"},ariaLabel:{showMore:"Show more comments",showLess:"Show fewer comments"}},add:{headerText:"Add purchase order comment",placeholder:"Add your comment",submit:"Add Comment",errorMessage:"Something went wrong while adding your comment. Please try again."}},approvalFlow:{headerText:"Purchase order approval flow",emptyText:"No approval flow is available for this purchase order.",ariaLabels:{icons:{approved:"Status approved",rejected:"Status rejected",pending:"Status pending approval"}}}},c={PurchaseOrders:u},h={default:c},m=({children:a})=>{const[o,s]=d("en_US");return p(()=>{const e=i.on("locale",t=>{s(t)},{eager:!0});return()=>{e==null||e.off()}},[]),r(n,{lang:o,langDefinitions:h,children:a})},T=new l(r(m,{}));export{T as render};
6
6
  //# sourceMappingURL=render.js.map
package/render.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sources":["/@dropins/storefront-purchase-order/src/render/Provider.tsx","/@dropins/storefront-purchase-order/src/render/render.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 { FunctionComponent } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { UIProvider } from '@adobe-commerce/elsie/components';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface CartProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<CartProviderProps> = ({\n children,\n}) => {\n const [lang, setLang] = useState<Lang>('en_US');\n\n // Events\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (locale: string) => {\n setLang(locale as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, []);\n\n return (\n <UIProvider lang={lang} langDefinitions={langDefinitions}>\n {children}\n </UIProvider>\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 { Render } from '@adobe-commerce/elsie/lib';\nimport { Provider } from './Provider';\n\nexport const render = new Render(<Provider />);\n"],"names":["langDefinitions","en_US","Provider","children","lang","setLang","useState","useEffect","localeEvent","events","locale","jsx","UIProvider","render","Render"],"mappings":"ssNA0BMA,EAAkB,CACtB,QAASC,CACX,EAMaC,EAAiD,CAAC,CAC7D,SAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAe,OAAO,EAG9C,OAAAC,EAAU,IAAM,CACd,MAAMC,EAAcC,EAAO,GACzB,SACCC,GAAmB,CAClBL,EAAQK,CAAc,CACxB,EACA,CAAE,MAAO,EAAA,CAAK,EAEhB,MAAO,IAAM,CACXF,GAAA,MAAAA,EAAa,KACf,CACF,EAAG,CAAA,CAAE,EAGHG,EAACC,EAAA,CAAW,KAAAR,EAAY,gBAAAJ,EACrB,SAAAG,CAAA,CACH,CAEJ,ECtCaU,EAAS,IAAIC,EAAOH,EAACT,IAAS,CAAE"}
1
+ {"version":3,"file":"render.js","sources":["/@dropins/storefront-purchase-order/src/render/Provider.tsx","/@dropins/storefront-purchase-order/src/render/render.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 { FunctionComponent } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { UIProvider } from '@adobe-commerce/elsie/components';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface CartProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<CartProviderProps> = ({\n children,\n}) => {\n const [lang, setLang] = useState<Lang>('en_US');\n\n // Events\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (locale: string) => {\n setLang(locale as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, []);\n\n return (\n <UIProvider lang={lang} langDefinitions={langDefinitions}>\n {children}\n </UIProvider>\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 { Render } from '@adobe-commerce/elsie/lib';\nimport { Provider } from './Provider';\n\nexport const render = new Render(<Provider />);\n"],"names":["langDefinitions","en_US","Provider","children","lang","setLang","useState","useEffect","localeEvent","events","locale","jsx","UIProvider","render","Render"],"mappings":"29NA0BMA,EAAkB,CACtB,QAASC,CACX,EAMaC,EAAiD,CAAC,CAC7D,SAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAe,OAAO,EAG9C,OAAAC,EAAU,IAAM,CACd,MAAMC,EAAcC,EAAO,GACzB,SACCC,GAAmB,CAClBL,EAAQK,CAAc,CACxB,EACA,CAAE,MAAO,EAAA,CAAK,EAEhB,MAAO,IAAM,CACXF,GAAA,MAAAA,EAAa,KACf,CACF,EAAG,CAAA,CAAE,EAGHG,EAACC,EAAA,CAAW,KAAAR,EAAY,gBAAAJ,EACrB,SAAAG,CAAA,CACH,CAEJ,ECtCaU,EAAS,IAAIC,EAAOH,EAACT,IAAS,CAAE"}
@@ -11,6 +11,8 @@ export type PurchaseOrderStatusSlotContext = {
11
11
  };
12
12
  export interface PurchaseOrderStatusProps {
13
13
  className?: string;
14
+ withHeader?: boolean;
15
+ withWrapper?: boolean;
14
16
  slots?: {
15
17
  PurchaseOrderActions: SlotProps<PurchaseOrderStatusSlotContext>;
16
18
  };
@@ -8,6 +8,7 @@ export interface UsePurchaseOrderStatusReturn {
8
8
  status: PURCHASE_ORDER_STATUS;
9
9
  availableActions: PURCHASE_ORDER_ACTION[] | [];
10
10
  loading: boolean;
11
+ poDataLoading: boolean;
11
12
  isDismissed: boolean;
12
13
  alertMessage: string;
13
14
  handleOnDismiss: () => void;