@dropins/storefront-purchase-order 0.0.5-alpha9 → 0.0.6-alpha2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/api/fetch-graphql/fetch-graphql.d.ts +16 -0
  2. package/api/fetch-graphql/index.d.ts +16 -0
  3. package/api/graphql/PurchaseOrdersFragment.graphql.d.ts +1 -1
  4. package/api/initialize/index.d.ts +16 -0
  5. package/api/permissions.d.ts +16 -0
  6. package/api.js +9 -435
  7. package/api.js.map +1 -1
  8. package/chunks/FormLoader.js +1 -1
  9. package/chunks/FormLoader.js.map +1 -1
  10. package/chunks/PurchaseOrderHistoryLogContent.js +4 -0
  11. package/chunks/PurchaseOrderHistoryLogContent.js.map +1 -0
  12. package/chunks/PurchaseOrdersHeader.js +1 -1
  13. package/chunks/PurchaseOrdersHeader.js.map +1 -1
  14. package/chunks/PurchaseOrdersTableActions.js +1 -1
  15. package/chunks/PurchaseOrdersTableActions.js.map +1 -1
  16. package/chunks/addPurchaseOrderComment.js +36 -0
  17. package/chunks/addPurchaseOrderComment.js.map +1 -0
  18. package/chunks/fetch-graphql.js.map +1 -1
  19. package/chunks/formatDate.js +4 -0
  20. package/chunks/formatDate.js.map +1 -0
  21. package/chunks/getPurchaseOrders.js +3 -3
  22. package/chunks/getPurchaseOrders.js.map +1 -1
  23. package/chunks/pageSize.config.js +1 -1
  24. package/chunks/pageSize.config.js.map +1 -1
  25. package/chunks/permissions.js.map +1 -1
  26. package/chunks/rejectPurchaseOrders.js +392 -21
  27. package/chunks/rejectPurchaseOrders.js.map +1 -1
  28. package/chunks/transform-purchase-order-approval-rule.js.map +1 -1
  29. package/chunks/usePurchaseOrderData.js +4 -0
  30. package/chunks/usePurchaseOrderData.js.map +1 -0
  31. package/chunks/usePurchaseOrders.js +1 -1
  32. package/chunks/usePurchaseOrders.js.map +1 -1
  33. package/components/ApprovalRuleDetailsContent/index.d.ts +11 -3
  34. package/components/ApprovalRuleForm/index.d.ts +11 -3
  35. package/components/PurchaseOrderApprovalFlowContent/PurchaseOrderApprovalFlowContent.d.ts +5 -0
  36. package/components/PurchaseOrderApprovalFlowContent/index.d.ts +19 -0
  37. package/components/PurchaseOrderCommentFormContent/PurchaseOrderCommentFormContent.d.ts +5 -0
  38. package/components/PurchaseOrderCommentFormContent/index.d.ts +19 -0
  39. package/components/PurchaseOrderCommentsListContent/PurchaseOrderCommentsListContent.d.ts +5 -0
  40. package/components/PurchaseOrderCommentsListContent/index.d.ts +19 -0
  41. package/components/PurchaseOrderHistoryLogContent/PurchaseOrderHistoryLogContent.d.ts +5 -0
  42. package/components/PurchaseOrderHistoryLogContent/index.d.ts +19 -0
  43. package/components/index.d.ts +4 -0
  44. package/containers/ApprovalRuleDetails/index.d.ts +11 -3
  45. package/containers/ApprovalRuleDetails.js +1 -1
  46. package/containers/ApprovalRuleDetails.js.map +1 -1
  47. package/containers/ApprovalRuleForm/index.d.ts +11 -3
  48. package/containers/ApprovalRuleForm.js +1 -1
  49. package/containers/ApprovalRuleForm.js.map +1 -1
  50. package/containers/ApprovalRulesList.js +1 -1
  51. package/containers/ApprovalRulesList.js.map +1 -1
  52. package/containers/CompanyPurchaseOrders.js +1 -1
  53. package/containers/CompanyPurchaseOrders.js.map +1 -1
  54. package/containers/CustomerPurchaseOrders.js +1 -1
  55. package/containers/CustomerPurchaseOrders.js.map +1 -1
  56. package/containers/PurchaseOrderApprovalFlow/PurchaseOrderApprovalFlow.d.ts +5 -0
  57. package/containers/PurchaseOrderApprovalFlow/index.d.ts +19 -0
  58. package/containers/PurchaseOrderApprovalFlow.d.ts +3 -0
  59. package/containers/PurchaseOrderApprovalFlow.js +4 -0
  60. package/containers/PurchaseOrderApprovalFlow.js.map +1 -0
  61. package/containers/PurchaseOrderCommentForm/PurchaseOrderCommentForm.d.ts +5 -0
  62. package/containers/PurchaseOrderCommentForm/index.d.ts +19 -0
  63. package/containers/PurchaseOrderCommentForm.d.ts +3 -0
  64. package/containers/PurchaseOrderCommentForm.js +4 -0
  65. package/containers/PurchaseOrderCommentForm.js.map +1 -0
  66. package/containers/PurchaseOrderCommentsList/PurchaseOrderCommentsList.d.ts +5 -0
  67. package/containers/PurchaseOrderCommentsList/index.d.ts +19 -0
  68. package/containers/PurchaseOrderCommentsList.d.ts +3 -0
  69. package/containers/PurchaseOrderCommentsList.js +4 -0
  70. package/containers/PurchaseOrderCommentsList.js.map +1 -0
  71. package/containers/PurchaseOrderConfirmation.js +1 -1
  72. package/containers/PurchaseOrderConfirmation.js.map +1 -1
  73. package/containers/PurchaseOrderHistoryLog/PurchaseOrderHistoryLog.d.ts +5 -0
  74. package/containers/PurchaseOrderHistoryLog/index.d.ts +19 -0
  75. package/containers/PurchaseOrderHistoryLog.d.ts +3 -0
  76. package/containers/PurchaseOrderHistoryLog.js +4 -0
  77. package/containers/PurchaseOrderHistoryLog.js.map +1 -0
  78. package/containers/PurchaseOrderStatus.js +1 -1
  79. package/containers/PurchaseOrderStatus.js.map +1 -1
  80. package/containers/RequireApprovalPurchaseOrders.js +1 -1
  81. package/containers/RequireApprovalPurchaseOrders.js.map +1 -1
  82. package/containers/index.d.ts +4 -0
  83. package/data/models/purchase-order-model.d.ts +2 -1
  84. package/hooks/index.d.ts +2 -0
  85. package/hooks/useApprovalRulesList.d.ts +1 -1
  86. package/hooks/usePurchaseOrderData.d.ts +7 -0
  87. package/i18n/en_US.json.d.ts +65 -7
  88. package/lib/cleanAndDeep.d.ts +16 -0
  89. package/lib/formatDate.d.ts +5 -0
  90. package/lib/getRange.d.ts +16 -0
  91. package/lib/getStatusVariant.d.ts +2 -0
  92. package/lib/index.d.ts +17 -0
  93. package/lib/isValidUrl.d.ts +16 -0
  94. package/mocks/index.d.ts +16 -0
  95. package/mocks/storybook/events-data.d.ts +16 -0
  96. package/package.json +1 -1
  97. package/render/index.d.ts +16 -0
  98. package/render.js +3 -3
  99. package/render.js.map +1 -1
  100. package/types/api/api.enums.types.d.ts +16 -0
  101. package/types/api/index.d.ts +16 -0
  102. package/types/components/approvalFlowContent.types.d.ts +6 -0
  103. package/types/components/historyLogContent.types.d.ts +7 -0
  104. package/types/components/index.d.ts +20 -0
  105. package/types/components/purchaseOrderCommentFormContent.types.d.ts +7 -0
  106. package/types/components/purchaseOrderCommentsListContent.types.d.ts +7 -0
  107. package/types/components/purchaseOrderHistoryLogContent.types.d.ts +7 -0
  108. package/types/components/purchaseOrdersTable.types.d.ts +1 -0
  109. package/types/components/purchaseOrdersTableActions.d.ts +16 -0
  110. package/types/containers/approvalRuleDetailsProps.types.d.ts +16 -0
  111. package/types/containers/historyLog.types.d.ts +7 -0
  112. package/types/containers/index.d.ts +20 -0
  113. package/types/containers/purchaseOrderApprovalFlow.types.d.ts +6 -0
  114. package/types/containers/purchaseOrderCommentForm.types.d.ts +6 -0
  115. package/types/containers/purchaseOrderCommentsList.types.d.ts +7 -0
  116. package/types/containers/purchaseOrderHistoryLog.types.d.ts +23 -0
  117. package/types/hooks/index.d.ts +16 -0
  118. package/types/hooks/useApprovalRuleDetails.types.d.ts +16 -0
  119. package/types/hooks/useApprovalRulesList.types.d.ts +2 -0
  120. package/types/hooks/usePurchaseOrders.types.d.ts +1 -0
  121. package/chunks/FormLoader2.js +0 -4
  122. package/chunks/FormLoader2.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ export * from './PurchaseOrderHistoryLog/index'
2
+ import _default from './PurchaseOrderHistoryLog/index'
3
+ export default _default
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
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};
4
+ //# sourceMappingURL=PurchaseOrderHistoryLog.js.map
@@ -0,0 +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,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/FormLoader.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"../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})})]})},te=({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{te as PurchaseOrderStatus,te as default};
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};
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, 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,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsxs as v,jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{classes as R}from"@dropins/tools/lib.js";import{P as D,d as M}from"../chunks/pageSize.config.js";import{P as j}from"../chunks/PurchaseOrdersHeader.js";import{P as w}from"../chunks/PurchaseOrdersTableActions.js";import"@dropins/tools/components.js";import{E as x,u as E}from"../chunks/usePurchaseOrders.js";import{u as S}from"../chunks/useCustomerRolePermissions.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import"../chunks/FormLoader.js";import{useText as q}from"@dropins/tools/i18n.js";import"../chunks/rejectPurchaseOrders.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/fetch-error.js";import"../chunks/getPurchaseOrders.js";import"../chunks/case-converter.js";import"../chunks/permissions.js";const Z=({initialPageSize:o=M,routePurchaseOrderDetails:l,setColumns:d,setRowsData:u,className:c="",withHeader:i=!0,withWrapper:p=!0,skeletonRowCount:n=5})=>{const h=x.CUSTOMER_APPROVAL_PURCHASE_ORDERS,e=q({headerText:"PurchaseOrders.requireApprovalPurchaseOrders.containerTitle",actionView:"PurchaseOrders.purchaseOrdersTable.actionView",poNumber:"PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber",orderNumber:"PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber",createdDate:"PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate",updatedDate:"PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate",createdBy:"PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy",status:"PurchaseOrders.purchaseOrdersTable.tableColumns.status",total:"PurchaseOrders.purchaseOrdersTable.tableColumns.total",action:"PurchaseOrders.purchaseOrdersTable.tableColumns.action",selectAllAriaLabel:"PurchaseOrders.purchaseOrdersTable.tableColumns.selectAllAriaLabel",noPurchaseOrders:"PurchaseOrders.requireApprovalPurchaseOrders.noPurchaseOrders",alertHeaderApprove:"PurchaseOrders.alertMessages.header.approve",alertHeaderReject:"PurchaseOrders.alertMessages.header.reject",alertHeaderError:"PurchaseOrders.alertMessages.header.error",alertDescriptionApprove:"PurchaseOrders.alertMessages.description.approve",alertDescriptionReject:"PurchaseOrders.alertMessages.description.reject",alertDescriptionError:"PurchaseOrders.alertMessages.description.error"}),{permissions:m,loadingPermissions:O}=S(),{totalCount:s,loading:a,tableConfig:t,paginationConfig:P,pageSizeConfig:b,selectedOrderIds:C,handleRejectSelected:T,handleApproveSelected:g,isRequireApprovalPOsView:f,alertMessageConfig:A}=E({view:h,routePurchaseOrderDetails:l,setColumns:d,setRowsData:u,initialPageSize:o,permissions:m,loadingPermissions:O,t:e});return v("div",{className:R(["require-approval-purchase-orders",c]),"data-testid":"require-approval-purchase-orders-container",children:[i?r(j,{headerText:e.headerText}):null,r(D,{header:f&&s>0?r(w,{loading:a,selectedCount:C.length,handleRejectSelected:T,handleApproveSelected:g}):null,totalCount:s,columns:t.columns,rows:t.rows,paginationConfig:P,loading:a,skeletonRowCount:n,pageSizeConfig:b,emptyTitle:e.noPurchaseOrders,alertMessageConfig:A,withWrapper:p})]})};export{Z as RequireApprovalPurchaseOrders,Z as default};
3
+ import{jsxs as v,jsx as s}from"@dropins/tools/preact-jsx-runtime.js";import{classes as R}from"@dropins/tools/lib.js";import{P as w,d as x}from"../chunks/pageSize.config.js";import{P as D}from"../chunks/PurchaseOrdersHeader.js";import{P as M}from"../chunks/PurchaseOrdersTableActions.js";import"@dropins/tools/components.js";import{E as j,u as E}from"../chunks/usePurchaseOrders.js";import{u as S}from"../chunks/useCustomerRolePermissions.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import"../chunks/PurchaseOrderHistoryLogContent.js";import"@dropins/tools/preact.js";import{useText as q}from"@dropins/tools/i18n.js";import"../chunks/formatDate.js";import"../chunks/rejectPurchaseOrders.js";import"../chunks/fetch-graphql.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/fetch-error.js";import"../chunks/getPurchaseOrders.js";import"../chunks/case-converter.js";import"../chunks/permissions.js";const ee=({initialPageSize:o=x,routePurchaseOrderDetails:d,setColumns:l,setRowsData:u,className:c="",withHeader:i=!0,withWrapper:p=!0,skeletonRowCount:n=5})=>{const h=j.CUSTOMER_APPROVAL_PURCHASE_ORDERS,e=q({headerText:"PurchaseOrders.requireApprovalPurchaseOrders.containerTitle",actionView:"PurchaseOrders.purchaseOrdersTable.actionView",poNumber:"PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber",orderNumber:"PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber",createdDate:"PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate",updatedDate:"PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate",createdBy:"PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy",status:"PurchaseOrders.purchaseOrdersTable.tableColumns.status",total:"PurchaseOrders.purchaseOrdersTable.tableColumns.total",action:"PurchaseOrders.purchaseOrdersTable.tableColumns.action",selectAllAriaLabel:"PurchaseOrders.purchaseOrdersTable.tableColumns.selectAllAriaLabel",noPurchaseOrders:"PurchaseOrders.requireApprovalPurchaseOrders.noPurchaseOrders",alertHeaderApprove:"PurchaseOrders.alertMessages.header.approve",alertHeaderReject:"PurchaseOrders.alertMessages.header.reject",alertHeaderError:"PurchaseOrders.alertMessages.header.error",alertDescriptionApprove:"PurchaseOrders.alertMessages.description.approve",alertDescriptionReject:"PurchaseOrders.alertMessages.description.reject",alertDescriptionError:"PurchaseOrders.alertMessages.description.error"}),{permissions:m,loadingPermissions:O}=S(),{totalCount:a,loading:t,tableConfig:r,paginationConfig:P,pageSizeConfig:b,selectedOrderIds:C,handleRejectSelected:T,handleApproveSelected:g,isRequireApprovalPOsView:f,alertMessageConfig:A}=E({view:h,routePurchaseOrderDetails:d,setColumns:l,setRowsData:u,initialPageSize:o,permissions:m,loadingPermissions:O,t:e});return v("div",{className:R(["require-approval-purchase-orders",c]),"data-testid":"require-approval-purchase-orders-container",children:[i?s(D,{headerText:e.headerText}):null,s(w,{header:f&&a>0?s(M,{loading:t,selectedCount:C.length,handleRejectSelected:T,handleApproveSelected:g}):null,totalCount:a,columns:r.columns,rows:r.rows,expandedRows:r.expandedRows,paginationConfig:P,loading:t,skeletonRowCount:n,pageSizeConfig:b,emptyTitle:e.noPurchaseOrders,alertMessageConfig:A,withWrapper:p})]})};export{ee as RequireApprovalPurchaseOrders,ee as default};
4
4
  //# sourceMappingURL=RequireApprovalPurchaseOrders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RequireApprovalPurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/containers/RequireApprovalPurchaseOrders/RequireApprovalPurchaseOrders.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrdersTable,\n PurchaseOrdersHeader,\n PurchaseOrdersTableActions,\n} from '@/b2b-purchase-order/components';\nimport {\n usePurchaseOrders,\n useCustomerRolePermissions,\n} from '@/b2b-purchase-order/hooks';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { defaultPageSizeConfig } from '@/b2b-purchase-order/configs';\nimport { EnumPurchaseOrdersView } from '@/b2b-purchase-order/types/api';\nimport { RequireApprovalPurchaseOrdersProps } from '@/b2b-purchase-order/types/containers';\n\nexport const RequireApprovalPurchaseOrders: Container<\n RequireApprovalPurchaseOrdersProps\n> = ({\n initialPageSize = defaultPageSizeConfig,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n className = '',\n withHeader = true,\n withWrapper = true,\n skeletonRowCount = 5,\n}) => {\n const view = EnumPurchaseOrdersView.CUSTOMER_APPROVAL_PURCHASE_ORDERS;\n\n const t = useText({\n headerText: 'PurchaseOrders.requireApprovalPurchaseOrders.containerTitle',\n actionView: 'PurchaseOrders.purchaseOrdersTable.actionView',\n poNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber',\n orderNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber',\n createdDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate',\n updatedDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate',\n createdBy: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy',\n status: 'PurchaseOrders.purchaseOrdersTable.tableColumns.status',\n total: 'PurchaseOrders.purchaseOrdersTable.tableColumns.total',\n action: 'PurchaseOrders.purchaseOrdersTable.tableColumns.action',\n selectAllAriaLabel:\n 'PurchaseOrders.purchaseOrdersTable.tableColumns.selectAllAriaLabel',\n noPurchaseOrders:\n 'PurchaseOrders.requireApprovalPurchaseOrders.noPurchaseOrders',\n alertHeaderApprove: 'PurchaseOrders.alertMessages.header.approve',\n alertHeaderReject: 'PurchaseOrders.alertMessages.header.reject',\n alertHeaderError: 'PurchaseOrders.alertMessages.header.error',\n alertDescriptionApprove: 'PurchaseOrders.alertMessages.description.approve',\n alertDescriptionReject: 'PurchaseOrders.alertMessages.description.reject',\n alertDescriptionError: 'PurchaseOrders.alertMessages.description.error',\n });\n\n const { permissions, loadingPermissions } = useCustomerRolePermissions();\n const {\n totalCount,\n loading,\n tableConfig,\n paginationConfig,\n pageSizeConfig,\n selectedOrderIds,\n handleRejectSelected,\n handleApproveSelected,\n isRequireApprovalPOsView,\n alertMessageConfig,\n } = usePurchaseOrders({\n view,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n initialPageSize,\n permissions,\n loadingPermissions,\n t,\n });\n\n return (\n <div\n className={classes(['require-approval-purchase-orders', className])}\n data-testid=\"require-approval-purchase-orders-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n <PurchaseOrdersTable\n header={\n isRequireApprovalPOsView && totalCount > 0 ? (\n <PurchaseOrdersTableActions\n loading={loading}\n selectedCount={selectedOrderIds.length}\n handleRejectSelected={handleRejectSelected}\n handleApproveSelected={handleApproveSelected}\n />\n ) : null\n }\n totalCount={totalCount}\n columns={tableConfig.columns}\n rows={tableConfig.rows}\n paginationConfig={paginationConfig}\n loading={loading}\n skeletonRowCount={skeletonRowCount}\n pageSizeConfig={pageSizeConfig}\n emptyTitle={t.noPurchaseOrders}\n alertMessageConfig={alertMessageConfig}\n withWrapper={withWrapper}\n />\n </div>\n );\n};\n"],"names":["RequireApprovalPurchaseOrders","initialPageSize","defaultPageSizeConfig","routePurchaseOrderDetails","setColumns","setRowsData","className","withHeader","withWrapper","skeletonRowCount","view","EnumPurchaseOrdersView","t","useText","permissions","loadingPermissions","useCustomerRolePermissions","totalCount","loading","tableConfig","paginationConfig","pageSizeConfig","selectedOrderIds","handleRejectSelected","handleApproveSelected","isRequireApprovalPOsView","alertMessageConfig","usePurchaseOrders","jsxs","classes","jsx","PurchaseOrdersHeader","PurchaseOrdersTable","PurchaseOrdersTableActions"],"mappings":"w1BAgCO,MAAMA,EAET,CAAC,CACH,gBAAAC,EAAkBC,EAClB,0BAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EAAY,GACZ,WAAAC,EAAa,GACb,YAAAC,EAAc,GACd,iBAAAC,EAAmB,CACrB,IAAM,CACJ,MAAMC,EAAOC,EAAuB,kCAE9BC,EAAIC,EAAQ,CAChB,WAAY,8DACZ,WAAY,gDACZ,SAAU,2DACV,YAAa,8DACb,YAAa,8DACb,YAAa,8DACb,UAAW,4DACX,OAAQ,yDACR,MAAO,wDACP,OAAQ,yDACR,mBACE,qEACF,iBACE,gEACF,mBAAoB,8CACpB,kBAAmB,6CACnB,iBAAkB,4CAClB,wBAAyB,mDACzB,uBAAwB,kDACxB,sBAAuB,gDAAA,CACxB,EAEK,CAAE,YAAAC,EAAa,mBAAAC,CAAA,EAAuBC,EAAA,EACtC,CACJ,WAAAC,EACA,QAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,qBAAAC,EACA,sBAAAC,EACA,yBAAAC,EACA,mBAAAC,CAAA,EACEC,EAAkB,CACpB,KAAAjB,EACA,0BAAAP,EACA,WAAAC,EACA,YAAAC,EACA,gBAAAJ,EACA,YAAAa,EACA,mBAAAC,EACA,EAAAH,CAAA,CACD,EAED,OACEgB,EAAC,MAAA,CACC,UAAWC,EAAQ,CAAC,mCAAoCvB,CAAS,CAAC,EAClE,cAAY,6CAEX,SAAA,CAAAC,EAAauB,EAACC,EAAA,CAAqB,WAAYnB,EAAE,WAAY,EAAK,KACnEkB,EAACE,EAAA,CACC,OACEP,GAA4BR,EAAa,EACvCa,EAACG,EAAA,CACC,QAAAf,EACA,cAAeI,EAAiB,OAChC,qBAAAC,EACA,sBAAAC,CAAA,CAAA,EAEA,KAEN,WAAAP,EACA,QAASE,EAAY,QACrB,KAAMA,EAAY,KAClB,iBAAAC,EACA,QAAAF,EACA,iBAAAT,EACA,eAAAY,EACA,WAAYT,EAAE,iBACd,mBAAAc,EACA,YAAAlB,CAAA,CAAA,CACF,CAAA,CAAA,CAGN"}
1
+ {"version":3,"file":"RequireApprovalPurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/containers/RequireApprovalPurchaseOrders/RequireApprovalPurchaseOrders.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { classes, Container } from '@adobe-commerce/elsie/lib';\nimport {\n PurchaseOrdersTable,\n PurchaseOrdersHeader,\n PurchaseOrdersTableActions,\n} from '@/b2b-purchase-order/components';\nimport {\n usePurchaseOrders,\n useCustomerRolePermissions,\n} from '@/b2b-purchase-order/hooks';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { defaultPageSizeConfig } from '@/b2b-purchase-order/configs';\nimport { EnumPurchaseOrdersView } from '@/b2b-purchase-order/types/api';\nimport { RequireApprovalPurchaseOrdersProps } from '@/b2b-purchase-order/types/containers';\n\nexport const RequireApprovalPurchaseOrders: Container<\n RequireApprovalPurchaseOrdersProps\n> = ({\n initialPageSize = defaultPageSizeConfig,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n className = '',\n withHeader = true,\n withWrapper = true,\n skeletonRowCount = 5,\n}) => {\n const view = EnumPurchaseOrdersView.CUSTOMER_APPROVAL_PURCHASE_ORDERS;\n\n const t = useText({\n headerText: 'PurchaseOrders.requireApprovalPurchaseOrders.containerTitle',\n actionView: 'PurchaseOrders.purchaseOrdersTable.actionView',\n poNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.poNumber',\n orderNumber: 'PurchaseOrders.purchaseOrdersTable.tableColumns.orderNumber',\n createdDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdDate',\n updatedDate: 'PurchaseOrders.purchaseOrdersTable.tableColumns.updatedDate',\n createdBy: 'PurchaseOrders.purchaseOrdersTable.tableColumns.createdBy',\n status: 'PurchaseOrders.purchaseOrdersTable.tableColumns.status',\n total: 'PurchaseOrders.purchaseOrdersTable.tableColumns.total',\n action: 'PurchaseOrders.purchaseOrdersTable.tableColumns.action',\n selectAllAriaLabel:\n 'PurchaseOrders.purchaseOrdersTable.tableColumns.selectAllAriaLabel',\n noPurchaseOrders:\n 'PurchaseOrders.requireApprovalPurchaseOrders.noPurchaseOrders',\n alertHeaderApprove: 'PurchaseOrders.alertMessages.header.approve',\n alertHeaderReject: 'PurchaseOrders.alertMessages.header.reject',\n alertHeaderError: 'PurchaseOrders.alertMessages.header.error',\n alertDescriptionApprove: 'PurchaseOrders.alertMessages.description.approve',\n alertDescriptionReject: 'PurchaseOrders.alertMessages.description.reject',\n alertDescriptionError: 'PurchaseOrders.alertMessages.description.error',\n });\n\n const { permissions, loadingPermissions } = useCustomerRolePermissions();\n const {\n totalCount,\n loading,\n tableConfig,\n paginationConfig,\n pageSizeConfig,\n selectedOrderIds,\n handleRejectSelected,\n handleApproveSelected,\n isRequireApprovalPOsView,\n alertMessageConfig,\n } = usePurchaseOrders({\n view,\n routePurchaseOrderDetails,\n setColumns,\n setRowsData,\n initialPageSize,\n permissions,\n loadingPermissions,\n t,\n });\n\n return (\n <div\n className={classes(['require-approval-purchase-orders', className])}\n data-testid=\"require-approval-purchase-orders-container\"\n >\n {withHeader ? <PurchaseOrdersHeader headerText={t.headerText} /> : null}\n <PurchaseOrdersTable\n header={\n isRequireApprovalPOsView && totalCount > 0 ? (\n <PurchaseOrdersTableActions\n loading={loading}\n selectedCount={selectedOrderIds.length}\n handleRejectSelected={handleRejectSelected}\n handleApproveSelected={handleApproveSelected}\n />\n ) : null\n }\n totalCount={totalCount}\n columns={tableConfig.columns}\n rows={tableConfig.rows}\n expandedRows={tableConfig.expandedRows}\n paginationConfig={paginationConfig}\n loading={loading}\n skeletonRowCount={skeletonRowCount}\n pageSizeConfig={pageSizeConfig}\n emptyTitle={t.noPurchaseOrders}\n alertMessageConfig={alertMessageConfig}\n withWrapper={withWrapper}\n />\n </div>\n );\n};\n"],"names":["RequireApprovalPurchaseOrders","initialPageSize","defaultPageSizeConfig","routePurchaseOrderDetails","setColumns","setRowsData","className","withHeader","withWrapper","skeletonRowCount","view","EnumPurchaseOrdersView","t","useText","permissions","loadingPermissions","useCustomerRolePermissions","totalCount","loading","tableConfig","paginationConfig","pageSizeConfig","selectedOrderIds","handleRejectSelected","handleApproveSelected","isRequireApprovalPOsView","alertMessageConfig","usePurchaseOrders","jsxs","classes","jsx","PurchaseOrdersHeader","PurchaseOrdersTable","PurchaseOrdersTableActions"],"mappings":"66BAgCO,MAAMA,GAET,CAAC,CACH,gBAAAC,EAAkBC,EAClB,0BAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EAAY,GACZ,WAAAC,EAAa,GACb,YAAAC,EAAc,GACd,iBAAAC,EAAmB,CACrB,IAAM,CACJ,MAAMC,EAAOC,EAAuB,kCAE9BC,EAAIC,EAAQ,CAChB,WAAY,8DACZ,WAAY,gDACZ,SAAU,2DACV,YAAa,8DACb,YAAa,8DACb,YAAa,8DACb,UAAW,4DACX,OAAQ,yDACR,MAAO,wDACP,OAAQ,yDACR,mBACE,qEACF,iBACE,gEACF,mBAAoB,8CACpB,kBAAmB,6CACnB,iBAAkB,4CAClB,wBAAyB,mDACzB,uBAAwB,kDACxB,sBAAuB,gDAAA,CACxB,EAEK,CAAE,YAAAC,EAAa,mBAAAC,CAAA,EAAuBC,EAAA,EACtC,CACJ,WAAAC,EACA,QAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,qBAAAC,EACA,sBAAAC,EACA,yBAAAC,EACA,mBAAAC,CAAA,EACEC,EAAkB,CACpB,KAAAjB,EACA,0BAAAP,EACA,WAAAC,EACA,YAAAC,EACA,gBAAAJ,EACA,YAAAa,EACA,mBAAAC,EACA,EAAAH,CAAA,CACD,EAED,OACEgB,EAAC,MAAA,CACC,UAAWC,EAAQ,CAAC,mCAAoCvB,CAAS,CAAC,EAClE,cAAY,6CAEX,SAAA,CAAAC,EAAauB,EAACC,EAAA,CAAqB,WAAYnB,EAAE,WAAY,EAAK,KACnEkB,EAACE,EAAA,CACC,OACEP,GAA4BR,EAAa,EACvCa,EAACG,EAAA,CACC,QAAAf,EACA,cAAeI,EAAiB,OAChC,qBAAAC,EACA,sBAAAC,CAAA,CAAA,EAEA,KAEN,WAAAP,EACA,QAASE,EAAY,QACrB,KAAMA,EAAY,KAClB,aAAcA,EAAY,aAC1B,iBAAAC,EACA,QAAAF,EACA,iBAAAT,EACA,eAAAY,EACA,WAAYT,EAAE,iBACd,mBAAAc,EACA,YAAAlB,CAAA,CAAA,CACF,CAAA,CAAA,CAGN"}
@@ -22,4 +22,8 @@ export * from './ApprovalRulesList';
22
22
  export * from './PurchaseOrderConfirmation';
23
23
  export * from './PurchaseOrderStatus';
24
24
  export * from './ApprovalRuleDetails';
25
+ export * from './PurchaseOrderCommentsList';
26
+ export * from './PurchaseOrderCommentForm';
27
+ export * from './PurchaseOrderApprovalFlow';
28
+ export * from './PurchaseOrderHistoryLog';
25
29
  //# sourceMappingURL=index.d.ts.map
@@ -29,8 +29,9 @@ export interface PurchaseOrderModel {
29
29
  status: string;
30
30
  updatedAt: string;
31
31
  }>;
32
- } | null;
32
+ }[] | [];
33
33
  comments?: Array<{
34
+ uid: string;
34
35
  createdAt: string;
35
36
  author: {
36
37
  firstname: string;
package/hooks/index.d.ts CHANGED
@@ -19,5 +19,7 @@ export * from './useCustomerRolePermissions';
19
19
  export * from './useApprovalRuleForm';
20
20
  export * from './useApprovalRuleDetails';
21
21
  export * from './useApprovalRulesList';
22
+ export * from './usePurchaseOrderData';
22
23
  export * from './usePurchaseOrderStatus';
24
+ export * from './usePurchaseOrderData';
23
25
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import { UseApprovalRulesList, UseApprovalRulesListReturn } from '../types/hooks';
2
2
 
3
- export declare const useApprovalRulesList: ({ routeApprovalRuleDetails, routeCreateApprovalRule, routeEditApprovalRule, setColumns, setRowsData, initialPageSize, permissions, t, }: UseApprovalRulesList) => UseApprovalRulesListReturn;
3
+ export declare const useApprovalRulesList: ({ routeApprovalRuleDetails, routeCreateApprovalRule, routeEditApprovalRule, setColumns, setRowsData, initialPageSize, permissions, loadingPermissions, t, }: UseApprovalRulesList) => UseApprovalRulesListReturn;
4
4
  //# sourceMappingURL=useApprovalRulesList.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { PurchaseOrderModel } from '../data/models';
2
+
3
+ export declare const usePurchaseOrderData: () => {
4
+ poDataLoading: boolean;
5
+ purchaseOrderData: PurchaseOrderModel | null;
6
+ };
7
+ //# sourceMappingURL=usePurchaseOrderData.d.ts.map
@@ -41,10 +41,9 @@ declare const _default: {
41
41
  "default": "No purchase orders found."
42
42
  },
43
43
  "pagination": {
44
- "status": "Items {{from}} to {{to}} of {{total}} total",
44
+ "status": "Items {{from}}-{{to}} of {{total}}",
45
45
  "pageSizeLabel": {
46
- "start": "Show",
47
- "end": "per page"
46
+ "start": "Show"
48
47
  }
49
48
  },
50
49
  "loading": "Loading purchase orders...",
@@ -61,6 +60,10 @@ declare const _default: {
61
60
  "any_item": "Any Item",
62
61
  "all_items": "All Items"
63
62
  },
63
+ "buttons":{
64
+ "expandedHidden": "Hide",
65
+ "expandedShow": "Show"
66
+ },
64
67
  "appliesToAll": "All",
65
68
  "statusOrder": {
66
69
  "order_placed": "Order placed",
@@ -73,6 +76,15 @@ declare const _default: {
73
76
  "approval_required": "Approval required",
74
77
  "approved_pending_payment": "Approved pending Payment"
75
78
  },
79
+ "expandedRowLabels": {
80
+ "orderNumber": "Order Number:",
81
+ "createdDate": "Created Date:",
82
+ "updatedDate": "Updated Date:",
83
+ "total": "Total:",
84
+ "ruleType": "Rule Type:",
85
+ "appliesTo": "Applies To:",
86
+ "approver": "Approver:"
87
+ },
76
88
  "tableColumns": {
77
89
  "poNumber": "PO #",
78
90
  "orderNumber": "Order #",
@@ -83,9 +95,6 @@ declare const _default: {
83
95
  "total": "Total",
84
96
  "action": "Action",
85
97
  "ruleName": "Rule Name",
86
- "ruleType": "Rule Type",
87
- "appliesTo": "Applies To",
88
- "approver": "Approver",
89
98
  "selectAllAriaLabel": "Select all not approved purchase orders"
90
99
  }
91
100
  },
@@ -205,7 +214,7 @@ declare const _default: {
205
214
  }
206
215
  },
207
216
  "approvalRuleDetails": {
208
- "containerTitle": "View Approval Rule",
217
+ "containerTitle": "Approval rule details",
209
218
  "buttons": {
210
219
  "back": "Back to Rules List"
211
220
  },
@@ -237,6 +246,55 @@ declare const _default: {
237
246
  }
238
247
  }
239
248
  }
249
+ },
250
+ "historyLog": {
251
+ "headerText": "Purchase order history log",
252
+ "statusTitle": "Status Changes",
253
+ "emptyText": "No history log available.",
254
+ "status": {
255
+ "place_order": "Order placed on {{date}}",
256
+ "auto_approve": "Auto approved on {{date}}",
257
+ "submit": "Submitted for approval on {{date}}"
258
+ },
259
+ "buttons": {
260
+ "viewMore": "View More",
261
+ "viewLess": "View Less"
262
+ },
263
+ "ariaLabel": {
264
+ "showMore": "Show more history items",
265
+ "showLess": "Show fewer history items"
266
+ }
267
+ },
268
+ "comments": {
269
+ "view": {
270
+ "headerText": "Purchase order comments",
271
+ "emptyText": "No comments available.",
272
+ "buttons": {
273
+ "viewMore": "View More",
274
+ "viewLess": "View Less"
275
+ },
276
+ "ariaLabel": {
277
+ "showMore": "Show more comments",
278
+ "showLess": "Show fewer comments"
279
+ }
280
+ },
281
+ "add": {
282
+ "headerText": "Add purchase order comment",
283
+ "placeholder": "Add your comment",
284
+ "submit": "Add Comment",
285
+ "errorMessage": "Something went wrong while adding your comment. Please try again."
286
+ }
287
+ },
288
+ "approvalFlow": {
289
+ "headerText": "Purchase order approval flow",
290
+ "emptyText": "No approval flow is available for this purchase order.",
291
+ "ariaLabels": {
292
+ "icons": {
293
+ "approved": "Status approved",
294
+ "rejected": "Status rejected",
295
+ "pending": "Status pending approval"
296
+ }
297
+ }
240
298
  }
241
299
  }
242
300
  }
@@ -1,3 +1,19 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
1
17
  /**
2
18
  * Cleans form values and converts to snake_case for API submission
3
19
  * - Handles role type logic (all_users vs specific_roles)
@@ -14,6 +14,11 @@
14
14
  * is strictly forbidden unless prior written permission is obtained
15
15
  * from Adobe.
16
16
  *******************************************************************/
17
+ /**
18
+ * Determines the effective locale to use for price formatting
19
+ * Priority: prop locale > global locale > browser locale > default 'en-US'
20
+ */
21
+ export declare function getEffectiveLocale(locale?: string): string;
17
22
  /**
18
23
  * Format a date string to a localized format like "Sep 8, 2025 6:32:13 AM"
19
24
  * @param dateString - ISO date string or date string
package/lib/getRange.d.ts CHANGED
@@ -1,3 +1,19 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
1
17
  export declare const getRange: (currentPage: number, pageSize: number, total: number) => {
2
18
  from: number;
3
19
  to: number;
@@ -0,0 +1,2 @@
1
+ export declare const getStatusVariant: (status: string) => string;
2
+ //# sourceMappingURL=getStatusVariant.d.ts.map
package/lib/index.d.ts CHANGED
@@ -1,3 +1,19 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
1
17
  export * from './fetch-error';
2
18
  export * from './network-error';
3
19
  export * from './isValidUrl';
@@ -8,4 +24,5 @@ export * from './updateFormFieldValue';
8
24
  export * from './formValidation';
9
25
  export * from './transformToFormValues';
10
26
  export * from './cleanAndDeep';
27
+ export * from './getStatusVariant';
11
28
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,18 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
1
17
  export declare const isValidUrl: (url: string) => boolean;
2
18
  //# sourceMappingURL=isValidUrl.d.ts.map
package/mocks/index.d.ts CHANGED
@@ -1,3 +1,19 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
1
17
  export declare const MOCK_DATE = "2024-01-01T00:00:00Z";
2
18
  export declare const validCartIdForPlacePurchaseOrder = "cart-123";
3
19
  export declare const mockGraphQLResponseForPlacePurchaseOrder: {
@@ -1,3 +1,19 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
1
17
  export declare const mockPermissions: {
2
18
  [x: string]: boolean;
3
19
  all: boolean;
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-purchase-order", "version": "0.0.5-alpha9", "@dropins/tools": "^1.6.0-alpha2", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-purchase-order", "version": "0.0.6-alpha2", "@dropins/tools": "1.6.0-beta2", "license": "SEE LICENSE IN LICENSE.md"}
package/render/index.d.ts CHANGED
@@ -1,2 +1,18 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
1
17
  export * from './render';
2
18
  //# sourceMappingURL=index.d.ts.map