@dropins/storefront-requisition-list 1.3.0-alpha-20260423142017 → 1.3.0
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/CHANGELOG.md +16 -10
- package/api/getStoreConfig/graphql/storeConfigQuery.d.ts +1 -1
- package/api/index.d.ts +0 -5
- package/api.js +1 -19
- package/api.js.map +1 -1
- package/chunks/RequisitionListForm2.js +2 -2
- package/chunks/RequisitionListForm2.js.map +1 -1
- package/chunks/RequisitionListHeader.js +1 -1
- package/chunks/RequisitionListHeader.js.map +1 -1
- package/chunks/RequisitionListView.js +1 -1
- package/chunks/RequisitionListView.js.map +1 -1
- package/chunks/copyItemsBetweenRequisitionLists.js +6 -6
- package/chunks/copyItemsBetweenRequisitionLists.js.map +1 -1
- package/chunks/deleteRequisitionList.js +2 -2
- package/chunks/deleteRequisitionList.js.map +1 -1
- package/chunks/fetch-graphql.js +1 -1
- package/chunks/fetch-graphql.js.map +1 -1
- package/chunks/getRequisitionLists.js +4 -4
- package/chunks/getRequisitionLists.js.map +1 -1
- package/chunks/initialize.js +2 -5
- package/chunks/initialize.js.map +1 -1
- package/chunks/state.js.map +1 -1
- package/chunks/updateRequisitionList.js +13 -5
- package/chunks/updateRequisitionList.js.map +1 -1
- package/components/RequisitionListHeader/RequisitionListHeader.d.ts +0 -4
- package/components/index.d.ts +0 -1
- package/containers/RequisitionListForm.js +1 -1
- package/containers/RequisitionListGrid.js +1 -1
- package/containers/RequisitionListGrid.js.map +1 -1
- package/containers/RequisitionListHeader/RequisitionListHeader.d.ts +0 -2
- package/containers/RequisitionListHeader.js +1 -1
- package/containers/RequisitionListSelector.js +3 -3
- package/containers/RequisitionListSelector.js.map +1 -1
- package/containers/RequisitionListView/RequisitionListView.d.ts +0 -2
- package/containers/RequisitionListView.js +1 -1
- package/containers/RequisitionListView.js.map +1 -1
- package/containers/index.d.ts +0 -2
- package/i18n/en_US.json.d.ts +1 -23
- package/lib/state.d.ts +0 -3
- package/package.json +1 -1
- package/render.js +2 -4
- package/render.js.map +1 -1
- package/api/getCompanyUsers/getCompanyUsers.d.ts +0 -24
- package/api/getCompanyUsers/graphql/getCompanyUsers.d.ts +0 -18
- package/api/getCompanyUsers/index.d.ts +0 -18
- package/api/getSharedRequisitionList/getSharedRequisitionList.d.ts +0 -9
- package/api/getSharedRequisitionList/graphql/getSharedRequisitionList.d.ts +0 -18
- package/api/getSharedRequisitionList/index.d.ts +0 -18
- package/api/importSharedRequisitionList/graphql/importSharedRequisitionList.d.ts +0 -18
- package/api/importSharedRequisitionList/importSharedRequisitionList.d.ts +0 -12
- package/api/importSharedRequisitionList/index.d.ts +0 -18
- package/api/shareRequisitionListByEmail/graphql/shareRequisitionListByEmail.d.ts +0 -18
- package/api/shareRequisitionListByEmail/index.d.ts +0 -18
- package/api/shareRequisitionListByEmail/shareRequisitionListByEmail.d.ts +0 -22
- package/api/shareRequisitionListByToken/graphql/shareRequisitionListByToken.d.ts +0 -18
- package/api/shareRequisitionListByToken/index.d.ts +0 -18
- package/api/shareRequisitionListByToken/shareRequisitionListByToken.d.ts +0 -22
- package/chunks/ShareRequisitionListContent.js +0 -4
- package/chunks/ShareRequisitionListContent.js.map +0 -1
- package/chunks/fetch-error.js +0 -4
- package/chunks/fetch-error.js.map +0 -1
- package/chunks/importSharedRequisitionList.js +0 -17
- package/chunks/importSharedRequisitionList.js.map +0 -1
- package/chunks/shareRequisitionListByEmail.js +0 -22
- package/chunks/shareRequisitionListByEmail.js.map +0 -1
- package/chunks/shareRequisitionListByToken.js +0 -27
- package/chunks/shareRequisitionListByToken.js.map +0 -1
- package/chunks/transform-requisition-list.js +0 -12
- package/chunks/transform-requisition-list.js.map +0 -1
- package/components/ShareRequisitionListContent/ShareRequisitionListContent.d.ts +0 -26
- package/containers/ShareRequisitionListContent/ShareRequisitionListContent.d.ts +0 -17
- package/containers/ShareRequisitionListContent/index.d.ts +0 -19
- package/containers/ShareRequisitionListContent.d.ts +0 -3
- package/containers/ShareRequisitionListContent.js +0 -4
- package/containers/ShareRequisitionListContent.js.map +0 -1
- package/containers/SharedRequisitionList/SharedRequisitionList.d.ts +0 -27
- package/containers/SharedRequisitionList/index.d.ts +0 -19
- package/containers/SharedRequisitionList.d.ts +0 -3
- package/containers/SharedRequisitionList.js +0 -4
- package/containers/SharedRequisitionList.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @dropins/storefront-requisition-list
|
|
2
2
|
|
|
3
|
-
## 1.3.0
|
|
3
|
+
## 1.3.0
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
@@ -13,17 +13,23 @@
|
|
|
13
13
|
- Refactor `RequisitionListSelector` to use `RequisitionListPicker` for consistent list selection UX
|
|
14
14
|
- Include destination list name in success alert messages for both move and copy operations
|
|
15
15
|
|
|
16
|
-
-
|
|
16
|
+
- 9fdf4f4: Add an an active class and prop to the **RequisitionListSelector** so the button on the PDP page can reflect when the current product is already in the requisition list. Both an `active` prop as well as `requisition-list-selector--active` class was added. In addition, the `activeIcon` was also included should that the developer would like to change the button icon once an active state is truthy.
|
|
17
|
+
- 98cd3b9: fix: merge user-provided langDefinitions in Provider
|
|
18
|
+
|
|
19
|
+
The Provider now imports `config` and uses `deepmerge` to merge user-provided `langDefinitions` with the drop-in's bundled defaults before passing them to `UIProvider`. This enables label/placeholder overrides via the initializer API.
|
|
20
|
+
|
|
21
|
+
## 1.3.0-beta.0
|
|
22
|
+
|
|
23
|
+
### Minor Changes
|
|
17
24
|
|
|
18
|
-
|
|
25
|
+
- 4205285: feat: add Move to List and Copy to List features for requisition list items
|
|
19
26
|
|
|
20
|
-
- Add `
|
|
21
|
-
- Add `
|
|
22
|
-
- Add `
|
|
23
|
-
- Add
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
- Extend `getStoreConfig` with sharing-related store config fields
|
|
27
|
+
- Add `moveItemsBetweenRequisitionLists` API to move items from one requisition list to another, removing them from the source and adding to the destination
|
|
28
|
+
- Add `copyItemsBetweenRequisitionLists` API to copy items between requisition lists, keeping items in the source list
|
|
29
|
+
- Add `RequisitionListPicker` reusable component for selecting a requisition list from a scrollable list of cards
|
|
30
|
+
- Add "Move to List" and "Copy to List" bulk action buttons in the requisition list view, with modal-based list selection
|
|
31
|
+
- Refactor `RequisitionListSelector` to use `RequisitionListPicker` for consistent list selection UX
|
|
32
|
+
- Include destination list name in success alert messages for both move and copy operations
|
|
27
33
|
|
|
28
34
|
- 9fdf4f4: Add an an active class and prop to the **RequisitionListSelector** so the button on the PDP page can reflect when the current product is already in the requisition list. Both an `active` prop as well as `requisition-list-selector--active` class was added. In addition, the `activeIcon` was also included should that the developer would like to change the button icon once an active state is truthy.
|
|
29
35
|
- 98cd3b9: fix: merge user-provided langDefinitions in Provider
|
|
@@ -14,5 +14,5 @@
|
|
|
14
14
|
* is strictly forbidden unless prior written permission is obtained
|
|
15
15
|
* from Adobe.
|
|
16
16
|
*******************************************************************/
|
|
17
|
-
export declare const STORE_CONFIG_QUERY = "\nquery STORE_CONFIG_QUERY {\n storeConfig {\n is_requisition_list_active\n company_enabled\n
|
|
17
|
+
export declare const STORE_CONFIG_QUERY = "\nquery STORE_CONFIG_QUERY {\n storeConfig {\n is_requisition_list_active\n company_enabled\n }\n}\n";
|
|
18
18
|
//# sourceMappingURL=storeConfigQuery.d.ts.map
|
package/api/index.d.ts
CHANGED
|
@@ -28,9 +28,4 @@ export * from './addProductsToRequisitionList';
|
|
|
28
28
|
export * from './addRequisitionListItemsToCart';
|
|
29
29
|
export * from './moveItemsBetweenRequisitionLists';
|
|
30
30
|
export * from './copyItemsBetweenRequisitionLists';
|
|
31
|
-
export * from './getCompanyUsers';
|
|
32
|
-
export * from './shareRequisitionListByEmail';
|
|
33
|
-
export * from './shareRequisitionListByToken';
|
|
34
|
-
export * from './getSharedRequisitionList';
|
|
35
|
-
export * from './importSharedRequisitionList';
|
|
36
31
|
//# sourceMappingURL=index.d.ts.map
|
package/api.js
CHANGED
|
@@ -1,22 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2026 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{c as
|
|
4
|
-
query GET_SHARED_REQUISITION_LIST_QUERY(
|
|
5
|
-
$token: String!
|
|
6
|
-
$currentPage: Int = 1
|
|
7
|
-
$pageSize: Int = 10
|
|
8
|
-
) {
|
|
9
|
-
sharedRequisitionList(token: $token) {
|
|
10
|
-
sender_name
|
|
11
|
-
requisition_list {
|
|
12
|
-
...REQUISITION_LIST_FRAGMENT
|
|
13
|
-
items(pageSize: $pageSize, currentPage: $currentPage) {
|
|
14
|
-
...REQUISITION_LIST_ITEMS_FRAGMENT
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
${I}
|
|
20
|
-
${R}
|
|
21
|
-
`,h=async(a,n,m,s)=>{var o;const{errors:r,data:t}=await L(S,{variables:{token:a,currentPage:n,pageSize:m}});if(r)return u(r);const i=t==null?void 0:t.sharedRequisitionList;if(!(i!=null&&i.requisition_list))return null;let e=p(i.requisition_list);return e?((o=e.items)!=null&&o.length&&s&&(e={...e,items:await s(e.items)}),{senderName:i.sender_name,requisitionList:e}):null};export{y as addRequisitionListItemsToCart,N as config,A as copyItemsBetweenRequisitionLists,w as deleteRequisitionList,M as deleteRequisitionListItems,L as fetchGraphQl,D as getCompanyUsers,J as getConfig,O as getRequisitionList,F as getRequisitionLists,h as getSharedRequisitionList,x as getStoreConfig,ee as importSharedRequisitionList,G as initialize,H as moveItemsBetweenRequisitionLists,K as removeFetchGraphQlHeader,V as setEndpoint,W as setFetchGraphQlHeader,X as setFetchGraphQlHeaders,b as shareRequisitionListByEmail,P as shareRequisitionListByToken,B as updateRequisitionList,k as updateRequisitionListItems};
|
|
3
|
+
import{c as r,g as m,i as p}from"./chunks/initialize.js";import{g as u}from"./chunks/getRequisitionLists.js";import{a as f,c as g,d as q,g as L,m as R,u as c}from"./chunks/copyItemsBetweenRequisitionLists.js";import{u as l}from"./chunks/updateRequisitionList.js";import{d as I}from"./chunks/deleteRequisitionList.js";import{f as Q,g as C,r as F,s as H,a as v,b as w}from"./chunks/fetch-graphql.js";import"@dropins/tools/lib.js";import"@dropins/tools/event-bus.js";import"./chunks/state.js";import"@dropins/tools/fetch-graphql.js";export{f as addRequisitionListItemsToCart,r as config,g as copyItemsBetweenRequisitionLists,I as deleteRequisitionList,q as deleteRequisitionListItems,Q as fetchGraphQl,C as getConfig,L as getRequisitionList,u as getRequisitionLists,m as getStoreConfig,p as initialize,R as moveItemsBetweenRequisitionLists,F as removeFetchGraphQlHeader,H as setEndpoint,v as setFetchGraphQlHeader,w as setFetchGraphQlHeaders,l as updateRequisitionList,c as updateRequisitionListItems};
|
|
22
4
|
//# sourceMappingURL=api.js.map
|
package/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sources":[
|
|
1
|
+
{"version":3,"file":"api.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! Copyright 2026 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{jsx as c}from"@dropins/tools/preact-jsx-runtime.js";import{R as p}from"./RequisitionListForm.js";import{useState as R}from"@dropins/tools/preact-hooks.js";import{R as L,t as q
|
|
3
|
+
import{jsx as c}from"@dropins/tools/preact-jsx-runtime.js";import{R as p}from"./RequisitionListForm.js";import{useState as R}from"@dropins/tools/preact-hooks.js";import{R as L,t as q,u as I}from"./updateRequisitionList.js";import{f as l,h as T}from"./fetch-graphql.js";import{events as f}from"@dropins/tools/event-bus.js";const _=`
|
|
4
4
|
mutation CREATE_REQUISITION_LIST_MUTATION(
|
|
5
5
|
$requisitionListName: String!,
|
|
6
6
|
$requisitionListDescription: String,
|
|
@@ -17,5 +17,5 @@ import{jsx as c}from"@dropins/tools/preact-jsx-runtime.js";import{R as p}from"./
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
${L}
|
|
20
|
-
`,N=async(
|
|
20
|
+
`,N=async(r,o)=>l(_,{variables:{requisitionListName:r,requisitionListDescription:o}}).then(({errors:t,data:i})=>{var e;if(t)return T(t);if(!((e=i==null?void 0:i.createRequisitionList)!=null&&e.requisition_list))return null;const u=q(i.createRequisitionList.requisition_list);return f.emit("requisitionList/data",u),u});function S(r,o,t,i){const[u,e]=R(null);return{error:u,submit:async a=>{e(null);try{const n=a.description??"",s=r==="update"&&o?await I(o,a.name,n):await N(a.name,n);return s&&(t==null||t(s)),s}catch(n){const s=(n==null?void 0:n.message)||"Unexpected error";return e(s),i==null||i(s),null}}}}const U=({mode:r,requisitionListUid:o,defaultValues:t={name:"",description:""},onSuccess:i,onError:u,onCancel:e})=>{const{error:m,submit:a}=S(r,o,i,u);return c(p,{mode:r,defaultValues:t,error:m,onSubmit:async s=>{await a(s)},onCancel:e})};export{U as R};
|
|
21
21
|
//# sourceMappingURL=RequisitionListForm2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequisitionListForm2.js","sources":["/@dropins/storefront-requisition-list/src/api/createRequisitionList/graphql/createRequisitionList.ts","/@dropins/storefront-requisition-list/src/api/createRequisitionList/createRequisitionList.ts","/@dropins/storefront-requisition-list/src/hooks/useRequisitionListForm.ts","/@dropins/storefront-requisition-list/src/containers/RequisitionListForm/RequisitionListForm.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 { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\n\nexport const CREATE_REQUISITION_LIST_MUTATION = `\n mutation CREATE_REQUISITION_LIST_MUTATION(\n $requisitionListName: String!,\n $requisitionListDescription: String,\n ) {\n createRequisitionList(\n input: {\n name: $requisitionListName\n description: $requisitionListDescription\n }\n ) {\n requisition_list {\n ...REQUISITION_LIST_FRAGMENT\n }\n }\n }\n${REQUISITION_LIST_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 { transformRequisitionList } from '@/requisitionList/data/transforms';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { CREATE_REQUISITION_LIST_MUTATION } from '@/requisitionList/api/createRequisitionList/graphql/createRequisitionList';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const createRequisitionList = async (\n name: string,\n description?: string\n): Promise<RequisitionList | null> => {\n return fetchGraphQl(CREATE_REQUISITION_LIST_MUTATION, {\n variables: {\n requisitionListName: name,\n requisitionListDescription: description,\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.createRequisitionList?.requisition_list) {\n return null;\n }\n\n const payload = transformRequisitionList(\n data.createRequisitionList.requisition_list\n );\n events.emit('requisitionList/data', payload);\n return payload;\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 { useState } from 'preact/hooks';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { createRequisitionList } from '@/requisitionList/api/createRequisitionList/createRequisitionList';\nimport { updateRequisitionList } from '@/requisitionList/api/updateRequisitionList/updateRequisitionList';\n\nexport type RequisitionListFormMode = 'create' | 'update';\nexport type RequisitionListFormValues = { name: string; description?: string };\n\ntype UseRequisitionListFormReturn = {\n error: string | null;\n submit: (\n values: RequisitionListFormValues\n ) => Promise<RequisitionList | null>;\n};\n\nexport function useRequisitionListForm(\n mode: RequisitionListFormMode,\n requisitionListUid?: string,\n onSuccess?: (rl: RequisitionList) => void,\n onError?: (msg: string) => void\n): UseRequisitionListFormReturn {\n const [error, setError] = useState<string | null>(null);\n\n const submit = async (\n values: RequisitionListFormValues\n ): Promise<RequisitionList | null> => {\n setError(null);\n try {\n const description = values.description ?? '';\n const result =\n mode === 'update' && requisitionListUid\n ? await updateRequisitionList(\n requisitionListUid,\n values.name,\n description\n )\n : await createRequisitionList(values.name, description);\n if (result) onSuccess?.(result);\n return result;\n } catch (e: any) {\n const msg = e?.message || 'Unexpected error';\n setError(msg);\n onError?.(msg);\n return null;\n }\n };\n\n return { error, submit };\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 { Container } from '@adobe-commerce/elsie/lib';\nimport { RequisitionListForm as RequisitionListFormComponent } from '@/requisitionList/components/RequisitionListForm/RequisitionListForm';\nimport {\n useRequisitionListForm,\n RequisitionListFormMode,\n RequisitionListFormValues,\n} from '@/requisitionList/hooks/useRequisitionListForm';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\n\nexport interface RequisitionListFormProps {\n mode: RequisitionListFormMode;\n requisitionListUid?: string;\n defaultValues?: RequisitionListFormValues;\n onSuccess?: (newList: RequisitionList) => void;\n onError?: (message: string) => void;\n onCancel: () => void;\n}\n\nexport const RequisitionListForm: Container<RequisitionListFormProps> = ({\n mode,\n requisitionListUid,\n defaultValues = { name: '', description: '' },\n onSuccess,\n onError,\n onCancel,\n}) => {\n const { error, submit } = useRequisitionListForm(\n mode,\n requisitionListUid,\n onSuccess,\n onError\n );\n\n const handleSubmit = async (values: RequisitionListFormValues) => {\n await submit(values);\n };\n\n return (\n <RequisitionListFormComponent\n mode={mode}\n defaultValues={defaultValues}\n error={error}\n onSubmit={handleSubmit}\n onCancel={onCancel}\n />\n );\n};\n"],"names":["CREATE_REQUISITION_LIST_MUTATION","REQUISITION_LIST_FRAGMENT","createRequisitionList","name","description","fetchGraphQl","errors","data","handleFetchError","_a","payload","transformRequisitionList","events","useRequisitionListForm","mode","requisitionListUid","onSuccess","onError","error","setError","useState","values","result","updateRequisitionList","e","msg","RequisitionListForm","defaultValues","onCancel","submit","jsx","RequisitionListFormComponent"],"mappings":"
|
|
1
|
+
{"version":3,"file":"RequisitionListForm2.js","sources":["/@dropins/storefront-requisition-list/src/api/createRequisitionList/graphql/createRequisitionList.ts","/@dropins/storefront-requisition-list/src/api/createRequisitionList/createRequisitionList.ts","/@dropins/storefront-requisition-list/src/hooks/useRequisitionListForm.ts","/@dropins/storefront-requisition-list/src/containers/RequisitionListForm/RequisitionListForm.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 { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\n\nexport const CREATE_REQUISITION_LIST_MUTATION = `\n mutation CREATE_REQUISITION_LIST_MUTATION(\n $requisitionListName: String!,\n $requisitionListDescription: String,\n ) {\n createRequisitionList(\n input: {\n name: $requisitionListName\n description: $requisitionListDescription\n }\n ) {\n requisition_list {\n ...REQUISITION_LIST_FRAGMENT\n }\n }\n }\n${REQUISITION_LIST_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 { transformRequisitionList } from '@/requisitionList/data/transforms';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { CREATE_REQUISITION_LIST_MUTATION } from '@/requisitionList/api/createRequisitionList/graphql/createRequisitionList';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const createRequisitionList = async (\n name: string,\n description?: string\n): Promise<RequisitionList | null> => {\n return fetchGraphQl(CREATE_REQUISITION_LIST_MUTATION, {\n variables: {\n requisitionListName: name,\n requisitionListDescription: description,\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.createRequisitionList?.requisition_list) {\n return null;\n }\n\n const payload = transformRequisitionList(\n data.createRequisitionList.requisition_list\n );\n events.emit('requisitionList/data', payload);\n return payload;\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 { useState } from 'preact/hooks';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { createRequisitionList } from '@/requisitionList/api/createRequisitionList/createRequisitionList';\nimport { updateRequisitionList } from '@/requisitionList/api/updateRequisitionList/updateRequisitionList';\n\nexport type RequisitionListFormMode = 'create' | 'update';\nexport type RequisitionListFormValues = { name: string; description?: string };\n\ntype UseRequisitionListFormReturn = {\n error: string | null;\n submit: (\n values: RequisitionListFormValues\n ) => Promise<RequisitionList | null>;\n};\n\nexport function useRequisitionListForm(\n mode: RequisitionListFormMode,\n requisitionListUid?: string,\n onSuccess?: (rl: RequisitionList) => void,\n onError?: (msg: string) => void\n): UseRequisitionListFormReturn {\n const [error, setError] = useState<string | null>(null);\n\n const submit = async (\n values: RequisitionListFormValues\n ): Promise<RequisitionList | null> => {\n setError(null);\n try {\n const description = values.description ?? '';\n const result =\n mode === 'update' && requisitionListUid\n ? await updateRequisitionList(\n requisitionListUid,\n values.name,\n description\n )\n : await createRequisitionList(values.name, description);\n if (result) onSuccess?.(result);\n return result;\n } catch (e: any) {\n const msg = e?.message || 'Unexpected error';\n setError(msg);\n onError?.(msg);\n return null;\n }\n };\n\n return { error, submit };\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 { Container } from '@adobe-commerce/elsie/lib';\nimport { RequisitionListForm as RequisitionListFormComponent } from '@/requisitionList/components/RequisitionListForm/RequisitionListForm';\nimport {\n useRequisitionListForm,\n RequisitionListFormMode,\n RequisitionListFormValues,\n} from '@/requisitionList/hooks/useRequisitionListForm';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\n\nexport interface RequisitionListFormProps {\n mode: RequisitionListFormMode;\n requisitionListUid?: string;\n defaultValues?: RequisitionListFormValues;\n onSuccess?: (newList: RequisitionList) => void;\n onError?: (message: string) => void;\n onCancel: () => void;\n}\n\nexport const RequisitionListForm: Container<RequisitionListFormProps> = ({\n mode,\n requisitionListUid,\n defaultValues = { name: '', description: '' },\n onSuccess,\n onError,\n onCancel,\n}) => {\n const { error, submit } = useRequisitionListForm(\n mode,\n requisitionListUid,\n onSuccess,\n onError\n );\n\n const handleSubmit = async (values: RequisitionListFormValues) => {\n await submit(values);\n };\n\n return (\n <RequisitionListFormComponent\n mode={mode}\n defaultValues={defaultValues}\n error={error}\n onSubmit={handleSubmit}\n onCancel={onCancel}\n />\n );\n};\n"],"names":["CREATE_REQUISITION_LIST_MUTATION","REQUISITION_LIST_FRAGMENT","createRequisitionList","name","description","fetchGraphQl","errors","data","handleFetchError","_a","payload","transformRequisitionList","events","useRequisitionListForm","mode","requisitionListUid","onSuccess","onError","error","setError","useState","values","result","updateRequisitionList","e","msg","RequisitionListForm","defaultValues","onCancel","submit","jsx","RequisitionListFormComponent"],"mappings":"kUAmBO,MAAMA,EAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgB9CC,CAAyB;AAAA,ECXdC,EAAwB,MACnCC,EACAC,IAEOC,EAAaL,EAAkC,CACpD,UAAW,CACT,oBAAqBG,EACrB,2BAA4BC,CAAA,CAE/B,CAAA,EAAE,KAAK,CAAC,CAAE,OAAAE,EAAQ,KAAAC,KAAW,OACxB,GAAAD,EAAe,OAAAE,EAAiBF,CAAM,EAEtC,GAAA,GAACG,EAAAF,GAAA,YAAAA,EAAM,wBAAN,MAAAE,EAA6B,kBACzB,OAAA,KAGT,MAAMC,EAAUC,EACdJ,EAAK,sBAAsB,gBAC7B,EACO,OAAAK,EAAA,KAAK,uBAAwBF,CAAO,EACpCA,CAAA,CACR,ECbI,SAASG,EACdC,EACAC,EACAC,EACAC,EAC8B,CAC9B,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAwB,IAAI,EA0B/C,MAAA,CAAE,MAAAF,EAAO,OAxBD,MACbG,GACoC,CACpCF,EAAS,IAAI,EACT,GAAA,CACI,MAAAf,EAAciB,EAAO,aAAe,GACpCC,EACJR,IAAS,UAAYC,EACjB,MAAMQ,EACJR,EACAM,EAAO,KACPjB,CAEF,EAAA,MAAMF,EAAsBmB,EAAO,KAAMjB,CAAW,EACtD,OAAAkB,eAAoBA,IACjBA,QACAE,EAAQ,CACT,MAAAC,GAAMD,GAAA,YAAAA,EAAG,UAAW,mBAC1B,OAAAL,EAASM,CAAG,EACZR,GAAA,MAAAA,EAAUQ,GACH,IAAA,CAEX,CAEuB,CACzB,CC9BO,MAAMC,EAA2D,CAAC,CACvE,KAAAZ,EACA,mBAAAC,EACA,cAAAY,EAAgB,CAAE,KAAM,GAAI,YAAa,EAAG,EAC5C,UAAAX,EACA,QAAAC,EACA,SAAAW,CACF,IAAM,CACE,KAAA,CAAE,MAAAV,EAAO,OAAAW,CAAA,EAAWhB,EACxBC,EACAC,EACAC,EACAC,CACF,EAOE,OAAAa,EAACC,EAAA,CACC,KAAAjB,EACA,cAAAa,EACA,MAAAT,EACA,SATiB,MAAOG,GAAsC,CAChE,MAAMQ,EAAOR,CAAM,CACrB,EAQI,SAAAO,CAAA,CACF,CAEJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2026 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{jsxs as
|
|
3
|
+
import{jsxs as m,jsx as t,Fragment as N}from"@dropins/tools/preact-jsx-runtime.js";import{useState as L,useCallback as p}from"@dropins/tools/preact-hooks.js";import{R as _}from"./RequisitionListModal.js";import{R as b}from"./RequisitionListForm.js";import{u as k}from"./updateRequisitionList.js";import{d as M}from"./deleteRequisitionList.js";import{useText as x}from"@dropins/tools/i18n.js";const T=({name:i,description:a,backLink:s,actions:e,className:u,...f})=>m("div",{...f,className:`requisition-list-header ${u||""}`,children:[s&&t("div",{className:"requisition-list-header__back",children:m("a",{href:s.url,className:"requisition-list-header__back-link",onClick:s.onClick,children:[t("span",{className:"requisition-list-header__back-arrow",children:"<"}),s.label]})}),m("div",{className:"requisition-list-header__main",children:[m("div",{className:"requisition-list-header__title-section",children:[t("h1",{className:"requisition-list-header__title",children:i}),a&&t("p",{className:"requisition-list-header__description",children:a})]}),e&&(e.onRename||e.onDelete)&&m("div",{className:"requisition-list-header__actions",children:[e.onRename&&t("a",{href:"#",onClick:n=>{var l;n.preventDefault(),(l=e.onRename)==null||l.call(e)},className:"requisition-list-header__action-link","data-testid":"rename-list-btn",children:e.renameLabel}),e.onDelete&&t("a",{href:"#",onClick:n=>{var l;n.preventDefault(),(l=e.onDelete)==null||l.call(e)},className:"requisition-list-header__action-link","data-testid":"delete-list-btn",children:e.deleteLabel})]})]})]}),H=({requisitionList:i,routeRequisitionListGrid:a,onUpdate:s,onAlert:e,enrichConfigurableProducts:u})=>{const[f,n]=L(!1),[l,h]=L(!1),[g,q]=L(!1),o=x({actionBackToRequisitionLists:"RequisitionList.RequisitionListView.actionBackToRequisitionLists",actionRename:"RequisitionList.RequisitionListView.actionRename",actionDeleteList:"RequisitionList.RequisitionListView.actionDeleteList",deleteListTitle:"RequisitionList.RequisitionListView.deleteListTitle",deleteListMessage:"RequisitionList.RequisitionListView.deleteListMessage",confirmAction:"RequisitionList.RequisitionListWrapper.confirmAction",cancelAction:"RequisitionList.RequisitionListWrapper.cancelAction",updateTitle:"RequisitionList.RequisitionListForm.updateTitle"}),w=p(()=>{n(!0)},[]),y=p(async d=>{var c,r;try{const R=await k(i.uid,d.name,d.description,(c=i.page_info)==null?void 0:c.page_size,(r=i.page_info)==null?void 0:r.current_page,u);R?(s==null||s(R),n(!1),e==null||e({action:"update",type:"success",context:"requisitionList"})):e==null||e({action:"update",type:"error",context:"requisitionList"})}catch{e==null||e({action:"update",type:"error",context:"requisitionList"})}},[i.uid,i.page_info,s,e,u]),D=p(()=>{h(!0)},[]),C=p(async()=>{q(!0);try{if(await M(i.uid)){const c={action:"delete",type:"success",context:"requisitionList"};try{localStorage.setItem("requisitionListPendingAlert",JSON.stringify(c))}catch{}if(a){const r=a();r&&typeof r=="string"&&(window.location.href=r)}}else e==null||e({action:"delete",type:"error",context:"requisitionList"})}catch{e==null||e({action:"delete",type:"error",context:"requisitionList"})}finally{q(!1),h(!1)}},[i.uid,a,e]);return m(N,{children:[t(T,{name:i.name,description:i.description,backLink:a?{url:"#",label:o.actionBackToRequisitionLists,onClick:d=>{d.preventDefault();const c=a();c&&typeof c=="string"&&(window.location.href=c)}}:void 0,actions:{onRename:w,onDelete:D,renameLabel:o.actionRename,deleteLabel:o.actionDeleteList}}),f&&t(_,{isOpen:f,isLoading:!1,title:o.updateTitle,modalContent:t(b,{mode:"update",defaultValues:{name:i.name,description:i.description||""},onSubmit:y,onCancel:()=>n(!1)}),handleModalOnClose:()=>n(!1)}),l&&t(_,{isOpen:l,isLoading:g,title:o.deleteListTitle,modalContent:o.deleteListMessage,confirmBtnCaption:o.confirmAction,closeBtnCaption:o.cancelAction,handleModalOnClose:()=>h(!1),handleModalOnConfirm:C})]})};export{H as R};
|
|
4
4
|
//# sourceMappingURL=RequisitionListHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequisitionListHeader.js","sources":["/@dropins/storefront-requisition-list/src/components/RequisitionListHeader/RequisitionListHeader.tsx","/@dropins/storefront-requisition-list/src/containers/RequisitionListHeader/RequisitionListHeader.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 { HTMLAttributes } from 'preact/compat';\nimport '@/requisitionList/components/RequisitionListHeader/RequisitionListHeader.css';\n\nexport interface RequisitionListHeaderProps\n extends HTMLAttributes<HTMLDivElement> {\n name: string;\n description?: string;\n backLink?: {\n url: string;\n label: string;\n onClick?: (e: Event) => void;\n };\n actions?: {\n onRename?: () => void;\n onDelete?: () => void;\n onShare?: () => void;\n renameLabel?: string;\n deleteLabel?: string;\n shareLabel?: string;\n shareDisabled?: boolean;\n shareDisabledReason?: string;\n };\n}\n\nexport const RequisitionListHeader: FunctionComponent<\n RequisitionListHeaderProps\n> = ({ name, description, backLink, actions, className, ...props }) => {\n return (\n <div {...props} className={`requisition-list-header ${className || ''}`}>\n {/* Back Link */}\n {backLink && (\n <div className=\"requisition-list-header__back\">\n <a\n href={backLink.url}\n className=\"requisition-list-header__back-link\"\n onClick={backLink.onClick}\n >\n <span className=\"requisition-list-header__back-arrow\"><</span>\n {backLink.label}\n </a>\n </div>\n )}\n\n {/* Title and Actions Row */}\n <div className=\"requisition-list-header__main\">\n <div className=\"requisition-list-header__title-section\">\n <h1 className=\"requisition-list-header__title\">{name}</h1>\n {description && (\n <p className=\"requisition-list-header__description\">\n {description}\n </p>\n )}\n </div>\n\n {/* Action Links */}\n {actions &&\n (actions.onRename ||\n actions.onDelete ||\n actions.onShare ||\n actions.shareDisabled) && (\n <div className=\"requisition-list-header__actions\">\n {(actions.onShare || actions.shareDisabled) && (\n <a\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (actions.shareDisabled) {\n return;\n }\n actions.onShare?.();\n }}\n className={`requisition-list-header__action-link ${\n actions.shareDisabled\n ? 'requisition-list-header__action-link--disabled'\n : ''\n }`}\n data-testid=\"share-list-btn\"\n aria-disabled={actions.shareDisabled ? 'true' : 'false'}\n aria-label={\n actions.shareDisabled && actions.shareDisabledReason\n ? `${actions.shareLabel} – ${actions.shareDisabledReason}`\n : undefined\n }\n data-disabled-reason={\n actions.shareDisabled\n ? actions.shareDisabledReason\n : undefined\n }\n >\n {actions.shareLabel}\n </a>\n )}\n {actions.onRename && (\n <a\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n actions.onRename?.();\n }}\n className=\"requisition-list-header__action-link\"\n data-testid=\"rename-list-btn\"\n >\n {actions.renameLabel}\n </a>\n )}\n {actions.onDelete && (\n <a\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n actions.onDelete?.();\n }}\n className=\"requisition-list-header__action-link\"\n data-testid=\"delete-list-btn\"\n >\n {actions.deleteLabel}\n </a>\n )}\n </div>\n )}\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 { useState, useCallback } from 'preact/hooks';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { RequisitionListHeader as RequisitionListHeaderComponent } from '@/requisitionList/components/RequisitionListHeader/RequisitionListHeader';\nimport { RequisitionListForm } from '@/requisitionList/components/RequisitionListForm/RequisitionListForm';\nimport { RequisitionListModal } from '@/requisitionList/components/RequisitionListModal/RequisitionListModal';\nimport { updateRequisitionList } from '@/requisitionList/api/updateRequisitionList';\nimport { deleteRequisitionList } from '@/requisitionList/api/deleteRequisitionList';\nimport {\n shareRequisitionListByEmail,\n ShareRequisitionListByEmailError,\n} from '@/requisitionList/api/shareRequisitionListByEmail';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { Item } from '@/requisitionList/data/models/item';\nimport { ShareRequisitionListContent } from '@/requisitionList/containers/ShareRequisitionListContent';\nimport { state } from '@/requisitionList/lib/state';\n\nexport interface RequisitionListHeaderProps {\n requisitionList: RequisitionList;\n routeRequisitionListGrid?: () => string | void;\n onUpdate?: (updatedList: RequisitionList) => void | Promise<void>;\n onAlert?: (payload: {\n action: string;\n type: string;\n context: string;\n }) => void;\n enrichConfigurableProducts?: (items: Item[]) => Promise<Item[]>;\n currentCustomerEmail?: string;\n routeSharedRequisitionList?: (token: string) => string;\n}\n\nexport const RequisitionListHeader: Container<RequisitionListHeaderProps> = ({\n requisitionList,\n routeRequisitionListGrid,\n onUpdate,\n onAlert,\n enrichConfigurableProducts,\n currentCustomerEmail,\n routeSharedRequisitionList,\n}: RequisitionListHeaderProps) => {\n const [showRenameModal, setShowRenameModal] = useState<boolean>(false);\n const [showDeleteModal, setShowDeleteModal] = useState<boolean>(false);\n const [showShareModal, setShowShareModal] = useState<boolean>(false);\n const [isDeleting, setIsDeleting] = useState<boolean>(false);\n const [isSharing, setIsSharing] = useState<boolean>(false);\n const sharingConfigValue = state.config?.requisition_list_sharing_enabled;\n const isShareEnabled = sharingConfigValue !== false && sharingConfigValue !== '0';\n const itemsCount = Number(\n requisitionList.items_count ?? requisitionList.items?.length ?? 0\n );\n const isShareDisabled = itemsCount <= 0;\n\n const translations = useText({\n actionBackToRequisitionLists: `RequisitionList.RequisitionListView.actionBackToRequisitionLists`,\n actionRename: `RequisitionList.RequisitionListView.actionRename`,\n actionDeleteList: `RequisitionList.RequisitionListView.actionDeleteList`,\n actionShare: `RequisitionList.RequisitionListView.actionShare`,\n shareDisabledReason: `RequisitionList.RequisitionListView.shareDisabledReason`,\n shareListTitle: `RequisitionList.RequisitionListView.shareListTitle`,\n deleteListTitle: `RequisitionList.RequisitionListView.deleteListTitle`,\n deleteListMessage: `RequisitionList.RequisitionListView.deleteListMessage`,\n confirmAction: `RequisitionList.RequisitionListWrapper.confirmAction`,\n cancelAction: `RequisitionList.RequisitionListWrapper.cancelAction`,\n updateTitle: `RequisitionList.RequisitionListForm.updateTitle`,\n });\n\n const handleRename = useCallback(() => {\n setShowRenameModal(true);\n }, []);\n\n const handleRenameSubmit = useCallback(\n async (values: { name: string; description?: string }) => {\n try {\n const updatedList = await updateRequisitionList(\n requisitionList.uid,\n values.name,\n values.description,\n requisitionList.page_info?.page_size,\n requisitionList.page_info?.current_page,\n enrichConfigurableProducts\n );\n if (updatedList) {\n onUpdate?.(updatedList);\n setShowRenameModal(false);\n onAlert?.({\n action: 'update',\n type: 'success',\n context: 'requisitionList',\n });\n } else {\n onAlert?.({\n action: 'update',\n type: 'error',\n context: 'requisitionList',\n });\n }\n } catch (error) {\n onAlert?.({\n action: 'update',\n type: 'error',\n context: 'requisitionList',\n });\n }\n },\n [\n requisitionList.uid,\n requisitionList.page_info,\n onUpdate,\n onAlert,\n enrichConfigurableProducts,\n ]\n );\n\n const handleDeleteList = useCallback(() => {\n setShowDeleteModal(true);\n }, []);\n\n const handleDeleteConfirm = useCallback(async () => {\n setIsDeleting(true);\n try {\n const result = await deleteRequisitionList(requisitionList.uid);\n if (result) {\n const alertPayload = {\n action: 'delete',\n type: 'success',\n context: 'requisitionList',\n };\n\n // Store alert in localStorage before redirecting\n // This ensures the alert is shown after redirect to grid view\n try {\n localStorage.setItem(\n 'requisitionListPendingAlert',\n JSON.stringify(alertPayload)\n );\n } catch (e) {\n // Ignore localStorage errors (e.g., in private browsing mode)\n }\n\n if (routeRequisitionListGrid) {\n const url = routeRequisitionListGrid();\n // If a URL is returned, navigate to it\n if (url && typeof url === 'string') {\n window.location.href = url;\n }\n }\n } else {\n onAlert?.({\n action: 'delete',\n type: 'error',\n context: 'requisitionList',\n });\n }\n } catch (error) {\n onAlert?.({\n action: 'delete',\n type: 'error',\n context: 'requisitionList',\n });\n } finally {\n setIsDeleting(false);\n setShowDeleteModal(false);\n }\n }, [requisitionList.uid, routeRequisitionListGrid, onAlert]);\n\n const handleShare = useCallback(() => {\n setShowShareModal(true);\n }, []);\n\n const handleShareSubmit = useCallback(\n async (\n customerUids: string[]\n ): Promise<Array<ShareRequisitionListByEmailError> | null> => {\n setIsSharing(true);\n try {\n const errors = await shareRequisitionListByEmail(\n requisitionList.uid,\n customerUids\n );\n return errors;\n } catch {\n return [{ code: 'SHARE_FAILED', message: 'Unable to share list.' }];\n } finally {\n setIsSharing(false);\n }\n },\n [requisitionList.uid]\n );\n\n return (\n <>\n <RequisitionListHeaderComponent\n name={requisitionList.name}\n description={requisitionList.description}\n backLink={\n routeRequisitionListGrid\n ? {\n url: '#',\n label: translations.actionBackToRequisitionLists,\n onClick: (e: Event) => {\n e.preventDefault();\n const result = routeRequisitionListGrid();\n // If a URL is returned, navigate to it\n if (result && typeof result === 'string') {\n window.location.href = result;\n }\n },\n }\n : undefined\n }\n actions={{\n onRename: handleRename,\n onDelete: handleDeleteList,\n onShare: isShareEnabled && !isShareDisabled ? handleShare : undefined,\n renameLabel: translations.actionRename,\n deleteLabel: translations.actionDeleteList,\n shareLabel: isShareEnabled ? translations.actionShare : undefined,\n shareDisabled: isShareEnabled && isShareDisabled,\n shareDisabledReason:\n isShareEnabled && isShareDisabled\n ? translations.shareDisabledReason\n : undefined,\n }}\n />\n\n {/* Rename Modal */}\n {showRenameModal && (\n <RequisitionListModal\n isOpen={showRenameModal}\n isLoading={false}\n title={translations.updateTitle}\n modalContent={\n <RequisitionListForm\n mode=\"update\"\n defaultValues={{\n name: requisitionList.name,\n description: requisitionList.description || '',\n }}\n onSubmit={handleRenameSubmit}\n onCancel={() => setShowRenameModal(false)}\n />\n }\n handleModalOnClose={() => setShowRenameModal(false)}\n />\n )}\n\n {/* Delete Confirmation Modal */}\n {showDeleteModal && (\n <RequisitionListModal\n isOpen={showDeleteModal}\n isLoading={isDeleting}\n title={translations.deleteListTitle}\n modalContent={translations.deleteListMessage}\n confirmBtnCaption={translations.confirmAction}\n closeBtnCaption={translations.cancelAction}\n handleModalOnClose={() => setShowDeleteModal(false)}\n handleModalOnConfirm={handleDeleteConfirm}\n />\n )}\n\n {/* Share Modal */}\n {isShareEnabled && showShareModal && (\n <RequisitionListModal\n isOpen={showShareModal}\n isLoading={isSharing}\n title={translations.shareListTitle}\n modalContent={\n <ShareRequisitionListContent\n requisitionListUid={requisitionList.uid}\n isSubmitting={isSharing}\n onSubmit={handleShareSubmit}\n currentCustomerEmail={currentCustomerEmail}\n routeSharedRequisitionList={routeSharedRequisitionList}\n />\n }\n handleModalOnClose={() => setShowShareModal(false)}\n />\n )}\n </>\n );\n};\n"],"names":["RequisitionListHeader","name","description","backLink","actions","className","props","jsxs","jsx","e","_a","requisitionList","routeRequisitionListGrid","onUpdate","onAlert","enrichConfigurableProducts","currentCustomerEmail","routeSharedRequisitionList","showRenameModal","setShowRenameModal","useState","showDeleteModal","setShowDeleteModal","showShareModal","setShowShareModal","isDeleting","setIsDeleting","isSharing","setIsSharing","sharingConfigValue","state","isShareEnabled","isShareDisabled","_b","translations","useText","handleRename","useCallback","handleRenameSubmit","values","updatedList","updateRequisitionList","handleDeleteList","handleDeleteConfirm","deleteRequisitionList","alertPayload","url","handleShare","handleShareSubmit","customerUids","shareRequisitionListByEmail","Fragment","RequisitionListHeaderComponent","result","RequisitionListModal","RequisitionListForm","ShareRequisitionListContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RequisitionListHeader.js","sources":["/@dropins/storefront-requisition-list/src/components/RequisitionListHeader/RequisitionListHeader.tsx","/@dropins/storefront-requisition-list/src/containers/RequisitionListHeader/RequisitionListHeader.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 { HTMLAttributes } from 'preact/compat';\nimport '@/requisitionList/components/RequisitionListHeader/RequisitionListHeader.css';\n\nexport interface RequisitionListHeaderProps\n extends HTMLAttributes<HTMLDivElement> {\n name: string;\n description?: string;\n backLink?: {\n url: string;\n label: string;\n onClick?: (e: Event) => void;\n };\n actions?: {\n onRename?: () => void;\n onDelete?: () => void;\n renameLabel?: string;\n deleteLabel?: string;\n };\n}\n\nexport const RequisitionListHeader: FunctionComponent<\n RequisitionListHeaderProps\n> = ({ name, description, backLink, actions, className, ...props }) => {\n return (\n <div {...props} className={`requisition-list-header ${className || ''}`}>\n {/* Back Link */}\n {backLink && (\n <div className=\"requisition-list-header__back\">\n <a\n href={backLink.url}\n className=\"requisition-list-header__back-link\"\n onClick={backLink.onClick}\n >\n <span className=\"requisition-list-header__back-arrow\"><</span>\n {backLink.label}\n </a>\n </div>\n )}\n\n {/* Title and Actions Row */}\n <div className=\"requisition-list-header__main\">\n <div className=\"requisition-list-header__title-section\">\n <h1 className=\"requisition-list-header__title\">{name}</h1>\n {description && (\n <p className=\"requisition-list-header__description\">\n {description}\n </p>\n )}\n </div>\n\n {/* Action Links */}\n {actions && (actions.onRename || actions.onDelete) && (\n <div className=\"requisition-list-header__actions\">\n {actions.onRename && (\n <a\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n actions.onRename?.();\n }}\n className=\"requisition-list-header__action-link\"\n data-testid=\"rename-list-btn\"\n >\n {actions.renameLabel}\n </a>\n )}\n {actions.onDelete && (\n <a\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n actions.onDelete?.();\n }}\n className=\"requisition-list-header__action-link\"\n data-testid=\"delete-list-btn\"\n >\n {actions.deleteLabel}\n </a>\n )}\n </div>\n )}\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 { useState, useCallback } from 'preact/hooks';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { RequisitionListHeader as RequisitionListHeaderComponent } from '@/requisitionList/components/RequisitionListHeader/RequisitionListHeader';\nimport { RequisitionListForm } from '@/requisitionList/components/RequisitionListForm/RequisitionListForm';\nimport { RequisitionListModal } from '@/requisitionList/components/RequisitionListModal/RequisitionListModal';\nimport { updateRequisitionList } from '@/requisitionList/api/updateRequisitionList';\nimport { deleteRequisitionList } from '@/requisitionList/api/deleteRequisitionList';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { Item } from '@/requisitionList/data/models/item';\n\nexport interface RequisitionListHeaderProps {\n requisitionList: RequisitionList;\n routeRequisitionListGrid?: () => string | void;\n onUpdate?: (updatedList: RequisitionList) => void | Promise<void>;\n onAlert?: (payload: {\n action: string;\n type: string;\n context: string;\n }) => void;\n enrichConfigurableProducts?: (items: Item[]) => Promise<Item[]>;\n}\n\nexport const RequisitionListHeader: Container<RequisitionListHeaderProps> = ({\n requisitionList,\n routeRequisitionListGrid,\n onUpdate,\n onAlert,\n enrichConfigurableProducts,\n}) => {\n const [showRenameModal, setShowRenameModal] = useState<boolean>(false);\n const [showDeleteModal, setShowDeleteModal] = useState<boolean>(false);\n const [isDeleting, setIsDeleting] = useState<boolean>(false);\n\n const translations = useText({\n actionBackToRequisitionLists: `RequisitionList.RequisitionListView.actionBackToRequisitionLists`,\n actionRename: `RequisitionList.RequisitionListView.actionRename`,\n actionDeleteList: `RequisitionList.RequisitionListView.actionDeleteList`,\n deleteListTitle: `RequisitionList.RequisitionListView.deleteListTitle`,\n deleteListMessage: `RequisitionList.RequisitionListView.deleteListMessage`,\n confirmAction: `RequisitionList.RequisitionListWrapper.confirmAction`,\n cancelAction: `RequisitionList.RequisitionListWrapper.cancelAction`,\n updateTitle: `RequisitionList.RequisitionListForm.updateTitle`,\n });\n\n const handleRename = useCallback(() => {\n setShowRenameModal(true);\n }, []);\n\n const handleRenameSubmit = useCallback(\n async (values: { name: string; description?: string }) => {\n try {\n const updatedList = await updateRequisitionList(\n requisitionList.uid,\n values.name,\n values.description,\n requisitionList.page_info?.page_size,\n requisitionList.page_info?.current_page,\n enrichConfigurableProducts\n );\n if (updatedList) {\n onUpdate?.(updatedList);\n setShowRenameModal(false);\n onAlert?.({\n action: 'update',\n type: 'success',\n context: 'requisitionList',\n });\n } else {\n onAlert?.({\n action: 'update',\n type: 'error',\n context: 'requisitionList',\n });\n }\n } catch (error) {\n onAlert?.({\n action: 'update',\n type: 'error',\n context: 'requisitionList',\n });\n }\n },\n [\n requisitionList.uid,\n requisitionList.page_info,\n onUpdate,\n onAlert,\n enrichConfigurableProducts,\n ]\n );\n\n const handleDeleteList = useCallback(() => {\n setShowDeleteModal(true);\n }, []);\n\n const handleDeleteConfirm = useCallback(async () => {\n setIsDeleting(true);\n try {\n const result = await deleteRequisitionList(requisitionList.uid);\n if (result) {\n const alertPayload = {\n action: 'delete',\n type: 'success',\n context: 'requisitionList',\n };\n\n // Store alert in localStorage before redirecting\n // This ensures the alert is shown after redirect to grid view\n try {\n localStorage.setItem(\n 'requisitionListPendingAlert',\n JSON.stringify(alertPayload)\n );\n } catch (e) {\n // Ignore localStorage errors (e.g., in private browsing mode)\n }\n\n if (routeRequisitionListGrid) {\n const url = routeRequisitionListGrid();\n // If a URL is returned, navigate to it\n if (url && typeof url === 'string') {\n window.location.href = url;\n }\n }\n } else {\n onAlert?.({\n action: 'delete',\n type: 'error',\n context: 'requisitionList',\n });\n }\n } catch (error) {\n onAlert?.({\n action: 'delete',\n type: 'error',\n context: 'requisitionList',\n });\n } finally {\n setIsDeleting(false);\n setShowDeleteModal(false);\n }\n }, [requisitionList.uid, routeRequisitionListGrid, onAlert]);\n\n return (\n <>\n <RequisitionListHeaderComponent\n name={requisitionList.name}\n description={requisitionList.description}\n backLink={\n routeRequisitionListGrid\n ? {\n url: '#',\n label: translations.actionBackToRequisitionLists,\n onClick: (e: Event) => {\n e.preventDefault();\n const result = routeRequisitionListGrid();\n // If a URL is returned, navigate to it\n if (result && typeof result === 'string') {\n window.location.href = result;\n }\n },\n }\n : undefined\n }\n actions={{\n onRename: handleRename,\n onDelete: handleDeleteList,\n renameLabel: translations.actionRename,\n deleteLabel: translations.actionDeleteList,\n }}\n />\n\n {/* Rename Modal */}\n {showRenameModal && (\n <RequisitionListModal\n isOpen={showRenameModal}\n isLoading={false}\n title={translations.updateTitle}\n modalContent={\n <RequisitionListForm\n mode=\"update\"\n defaultValues={{\n name: requisitionList.name,\n description: requisitionList.description || '',\n }}\n onSubmit={handleRenameSubmit}\n onCancel={() => setShowRenameModal(false)}\n />\n }\n handleModalOnClose={() => setShowRenameModal(false)}\n />\n )}\n\n {/* Delete Confirmation Modal */}\n {showDeleteModal && (\n <RequisitionListModal\n isOpen={showDeleteModal}\n isLoading={isDeleting}\n title={translations.deleteListTitle}\n modalContent={translations.deleteListMessage}\n confirmBtnCaption={translations.confirmAction}\n closeBtnCaption={translations.cancelAction}\n handleModalOnClose={() => setShowDeleteModal(false)}\n handleModalOnConfirm={handleDeleteConfirm}\n />\n )}\n </>\n );\n};\n"],"names":["RequisitionListHeader","name","description","backLink","actions","className","props","jsxs","jsx","e","_a","requisitionList","routeRequisitionListGrid","onUpdate","onAlert","enrichConfigurableProducts","showRenameModal","setShowRenameModal","useState","showDeleteModal","setShowDeleteModal","isDeleting","setIsDeleting","translations","useText","handleRename","useCallback","handleRenameSubmit","values","updatedList","updateRequisitionList","_b","handleDeleteList","handleDeleteConfirm","deleteRequisitionList","alertPayload","url","Fragment","RequisitionListHeaderComponent","result","RequisitionListModal","RequisitionListForm"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2026 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import*as i from"@dropins/tools/preact-compat.js";import{useState as
|
|
3
|
+
import*as i from"@dropins/tools/preact-compat.js";import{useState as q,useEffect as C,useMemo as a,useCallback as v}from"@dropins/tools/preact-compat.js";import{s as R}from"./state.js";import{events as x}from"@dropins/tools/event-bus.js";import{useText as h}from"@dropins/tools/i18n.js";import{jsxs as E,jsx as L}from"@dropins/tools/preact-jsx-runtime.js";import{Icon as M}from"@dropins/tools/components.js";import{classes as D}from"@dropins/tools/lib.js";function d(){const t=R.config;return t?t.is_requisition_list_active==="1"&&t.company_enabled===!0:!1}const _=()=>{const[t,r]=q(d);return C(()=>{const s=x.on("requisitionList/initialized",()=>{const o=d();r(e=>R.config!=null?o:e)});return()=>s==null?void 0:s.off()},[]),{isEnabled:t}},U=t=>i.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},i.createElement("rect",{x:4.89282,y:2.75,width:14.2143,height:18.5,rx:2.25,stroke:"currentColor",strokeWidth:1}),i.createElement("line",{x1:9.85718,y1:7.67871,x2:16.2857,y2:7.67871,stroke:"currentColor",strokeWidth:1}),i.createElement("line",{x1:9.85718,y1:11.9644,x2:16.2857,y2:11.9644,stroke:"currentColor",strokeWidth:1}),i.createElement("line",{x1:9.85718,y1:16.25,x2:16.2857,y2:16.25,stroke:"currentColor",strokeWidth:1}),i.createElement("circle",{cx:7.71429,cy:7.71429,r:.714286,fill:"currentColor"}),i.createElement("circle",{cx:7.71429,cy:11.9999,r:.714286,fill:"currentColor"}),i.createElement("circle",{cx:7.71429,cy:16.2856,r:.714286,fill:"currentColor"}));function j(t){const[r,s]=q(null),o=h({errorCreate:"RequisitionList.RequisitionListAlert.errorCreate",successCreate:"RequisitionList.RequisitionListAlert.successCreate",errorDeleteItem:"RequisitionList.RequisitionListAlert.errorDeleteItem",successDeleteItem:"RequisitionList.RequisitionListAlert.successDeleteItem",errorDeleteReqList:"RequisitionList.RequisitionListAlert.errorDeleteReqList",successDeleteReqList:"RequisitionList.RequisitionListAlert.successDeleteReqList",errorAddToCart:"RequisitionList.RequisitionListAlert.errorAddToCart",successAddToCart:"RequisitionList.RequisitionListAlert.successAddToCart",errorUpdateQuantity:"RequisitionList.RequisitionListAlert.errorUpdateQuantity",successUpdateQuantity:"RequisitionList.RequisitionListAlert.successUpdateQuantity",errorUpdate:"RequisitionList.RequisitionListAlert.errorUpdate",successUpdate:"RequisitionList.RequisitionListAlert.successUpdate",errorMove:"RequisitionList.RequisitionListAlert.errorMove",successMove:"RequisitionList.RequisitionListAlert.successMove",errorAddToRequisitionList:"RequisitionList.RequisitionListAlert.errorAddToRequisitionList",successAddToRequisitionList:"RequisitionList.RequisitionListAlert.successAddToRequisitionList",errorMoveToList:"RequisitionList.RequisitionListAlert.errorMoveToList",successMoveToList:"RequisitionList.RequisitionListAlert.successMoveToList",errorCopyToList:"RequisitionList.RequisitionListAlert.errorCopyToList",successCopyToList:"RequisitionList.RequisitionListAlert.successCopyToList"}),e=a(()=>({...o,...t}),[o,t]),n=a(()=>({create:{requisitionList:{success:e.successCreate,error:e.errorCreate}},add:{product:{success:e.successAddToRequisitionList,error:e.errorAddToRequisitionList}},update:{product:{success:e.successUpdateQuantity,error:e.errorUpdateQuantity},requisitionList:{success:e.successUpdate,error:e.errorUpdate}},delete:{product:{success:e.successDeleteItem,error:e.errorDeleteItem},requisitionList:{success:e.successDeleteReqList,error:e.errorDeleteReqList}},move:{product:{success:e.successMove,error:e.errorMove}},moveToList:{product:{success:e.successMoveToList,error:e.errorMoveToList}},copyToList:{product:{success:e.successCopyToList,error:e.errorCopyToList}}}),[e]),m=v(p=>{const{type:l,action:A,context:y,skus:c,message:u}=p,T=u&&u.length>0?u.join(". "):n[A][y][l];s({type:l,description:T,sku:c==null?void 0:c[0]});const f=setTimeout(()=>{s(null)},5e3);return()=>clearTimeout(f)},[n]);return{alert:r,setAlert:s,handleRequisitionListAlert:m}}const S=({className:t,textContent:r,...s})=>E("div",{className:D(["empty-list",t]),"data-testid":"empty-list",...s,children:[L(M,{source:U,size:"64",stroke:"2"}),r&&L("h4",{children:r})]});export{S as E,U as S,j as a,_ as u};
|
|
4
4
|
//# sourceMappingURL=RequisitionListView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequisitionListView.js","sources":["/@dropins/storefront-requisition-list/src/hooks/useRequisitionListEnabled.ts","../../node_modules/@adobe-commerce/elsie/src/icons/List.svg","/@dropins/storefront-requisition-list/src/hooks/useRequisitionListAlert.tsx","/@dropins/storefront-requisition-list/src/components/EmptyList/EmptyList.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2026 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/compat';\nimport { state } from '@/requisitionList/lib/state';\nimport { events } from '@adobe-commerce/event-bus';\n\nfunction isRequisitionListEnabled(): boolean {\n const config = state.config;\n if (!config) return false;\n return (\n config.is_requisition_list_active === '1' &&\n config.company_enabled === true\n );\n}\n\nexport const useRequisitionListEnabled = () => {\n const [isEnabled, setIsEnabled] = useState<boolean>(isRequisitionListEnabled);\n\n useEffect(() => {\n // Listen for requisition list initialization via event bus\n const configListener = events.on('requisitionList/initialized', () => {\n // Only set false when config explicitly disables; if config is missing\n // (e.g. re-init race), preserve current value so the button doesn't disappear\n const enabled = isRequisitionListEnabled();\n setIsEnabled((prev) => (state.config != null ? enabled : prev));\n });\n\n return () => configListener?.off();\n }, []);\n\n return { isEnabled };\n};\n","import * as React from \"react\";\nconst SvgList = (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(\"rect\", { x: 4.89282, y: 2.75, width: 14.2143, height: 18.5, rx: 2.25, stroke: \"currentColor\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 9.85718, y1: 7.67871, x2: 16.2857, y2: 7.67871, stroke: \"currentColor\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 9.85718, y1: 11.9644, x2: 16.2857, y2: 11.9644, stroke: \"currentColor\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 9.85718, y1: 16.25, x2: 16.2857, y2: 16.25, stroke: \"currentColor\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 7.71429, cy: 7.71429, r: 0.714286, fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 7.71429, cy: 11.9999, r: 0.714286, fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 7.71429, cy: 16.2856, r: 0.714286, fill: \"currentColor\" }));\nexport default SvgList;\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 { useCallback, useMemo, useState } from 'preact/compat';\nimport { RequisitionListActionPayload } from 'adobe-commerce/event-bus';\nimport { useText } from '@adobe-commerce/elsie/i18n';\n\nexport interface Alert {\n type: string;\n description: string;\n action?: string;\n sku?: string;\n}\n\nexport function useRequisitionListAlert(\n translationsOverride?: Record<string, string>\n) {\n const [alert, setAlert] = useState<Alert | null>(null);\n\n const defaultTranslations = useText({\n errorCreate: `RequisitionList.RequisitionListAlert.errorCreate`,\n successCreate: `RequisitionList.RequisitionListAlert.successCreate`,\n errorDeleteItem: `RequisitionList.RequisitionListAlert.errorDeleteItem`,\n successDeleteItem: `RequisitionList.RequisitionListAlert.successDeleteItem`,\n errorDeleteReqList: `RequisitionList.RequisitionListAlert.errorDeleteReqList`,\n successDeleteReqList: `RequisitionList.RequisitionListAlert.successDeleteReqList`,\n errorAddToCart: `RequisitionList.RequisitionListAlert.errorAddToCart`,\n successAddToCart: `RequisitionList.RequisitionListAlert.successAddToCart`,\n errorUpdateQuantity: `RequisitionList.RequisitionListAlert.errorUpdateQuantity`,\n successUpdateQuantity: `RequisitionList.RequisitionListAlert.successUpdateQuantity`,\n errorUpdate: `RequisitionList.RequisitionListAlert.errorUpdate`,\n successUpdate: `RequisitionList.RequisitionListAlert.successUpdate`,\n errorMove: `RequisitionList.RequisitionListAlert.errorMove`,\n successMove: `RequisitionList.RequisitionListAlert.successMove`,\n errorAddToRequisitionList: `RequisitionList.RequisitionListAlert.errorAddToRequisitionList`,\n successAddToRequisitionList: `RequisitionList.RequisitionListAlert.successAddToRequisitionList`,\n errorMoveToList: `RequisitionList.RequisitionListAlert.errorMoveToList`,\n successMoveToList: `RequisitionList.RequisitionListAlert.successMoveToList`,\n errorCopyToList: `RequisitionList.RequisitionListAlert.errorCopyToList`,\n successCopyToList: `RequisitionList.RequisitionListAlert.successCopyToList`,\n errorImport: `RequisitionList.RequisitionListAlert.errorImport`,\n successImport: `RequisitionList.RequisitionListAlert.successImport`,\n });\n\n const translations = useMemo(\n () => ({\n ...defaultTranslations,\n ...translationsOverride,\n }),\n [defaultTranslations, translationsOverride]\n );\n\n const messages = useMemo(\n () => ({\n create: {\n // adding context for consistency, although 'create' action only applies to requisition lists\n requisitionList: {\n success: translations.successCreate,\n error: translations.errorCreate,\n },\n },\n add: {\n product: {\n success: translations.successAddToRequisitionList,\n error: translations.errorAddToRequisitionList,\n },\n },\n update: {\n product: {\n success: translations.successUpdateQuantity,\n error: translations.errorUpdateQuantity,\n },\n requisitionList: {\n success: translations.successUpdate,\n error: translations.errorUpdate,\n },\n },\n delete: {\n product: {\n success: translations.successDeleteItem,\n error: translations.errorDeleteItem,\n },\n requisitionList: {\n success: translations.successDeleteReqList,\n error: translations.errorDeleteReqList,\n },\n },\n move: {\n product: {\n success: translations.successMove,\n error: translations.errorMove,\n },\n },\n moveToList: {\n product: {\n success: translations.successMoveToList,\n error: translations.errorMoveToList,\n },\n },\n copyToList: {\n product: {\n success: translations.successCopyToList,\n error: translations.errorCopyToList,\n },\n },\n import: {\n requisitionList: {\n success: translations.successImport,\n error: translations.errorImport,\n },\n },\n }),\n [translations]\n );\n\n const handleRequisitionListAlert = useCallback(\n (payload: RequisitionListActionPayload) => {\n const { type, action, context, skus, message, listName } = payload;\n // Use custom message if provided, otherwise use predefined message\n let description =\n message && message.length > 0\n ? message.join('. ')\n : messages[action][context][type];\n // Substitute named placeholders (e.g. {listName})\n if (listName) {\n description = description.replace('{listName}', listName);\n }\n setAlert({\n type,\n description,\n sku: skus?.[0],\n });\n\n const timer = setTimeout(() => {\n setAlert(null);\n }, 5000);\n\n return () => clearTimeout(timer);\n },\n [messages]\n );\n\n return { alert, setAlert, handleRequisitionListAlert };\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 { FunctionComponent } from 'preact';\nimport { Icon } from '@adobe-commerce/elsie/components';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { List } from '@adobe-commerce/elsie/icons';\nimport '@/requisitionList/components/EmptyList/EmptyList.css';\n\nexport interface EmptyListProps {\n className?: string;\n textContent?: string | null;\n}\n\nexport const EmptyList: FunctionComponent<EmptyListProps> = ({\n className,\n textContent,\n ...props\n}) => {\n return (\n <div\n className={classes(['empty-list', className])}\n data-testid=\"empty-list\"\n {...props}\n >\n <Icon source={List} size={'64'} stroke={'2'} />\n {textContent && <h4>{textContent}</h4>}\n </div>\n );\n};\n"],"names":["isRequisitionListEnabled","config","state","useRequisitionListEnabled","isEnabled","setIsEnabled","useState","useEffect","configListener","events","enabled","prev","SvgList","props","React","useRequisitionListAlert","translationsOverride","alert","setAlert","defaultTranslations","useText","translations","useMemo","messages","handleRequisitionListAlert","useCallback","payload","type","action","context","skus","message","listName","description","timer","EmptyList","className","textContent","jsxs","classes","jsx","Icon","List"],"mappings":"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","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"RequisitionListView.js","sources":["/@dropins/storefront-requisition-list/src/hooks/useRequisitionListEnabled.ts","../../node_modules/@adobe-commerce/elsie/src/icons/List.svg","/@dropins/storefront-requisition-list/src/hooks/useRequisitionListAlert.tsx","/@dropins/storefront-requisition-list/src/components/EmptyList/EmptyList.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2026 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/compat';\nimport { state } from '@/requisitionList/lib/state';\nimport { events } from '@adobe-commerce/event-bus';\n\nfunction isRequisitionListEnabled(): boolean {\n const config = state.config;\n if (!config) return false;\n return (\n config.is_requisition_list_active === '1' &&\n config.company_enabled === true\n );\n}\n\nexport const useRequisitionListEnabled = () => {\n const [isEnabled, setIsEnabled] = useState<boolean>(isRequisitionListEnabled);\n\n useEffect(() => {\n // Listen for requisition list initialization via event bus\n const configListener = events.on('requisitionList/initialized', () => {\n // Only set false when config explicitly disables; if config is missing\n // (e.g. re-init race), preserve current value so the button doesn't disappear\n const enabled = isRequisitionListEnabled();\n setIsEnabled((prev) => (state.config != null ? enabled : prev));\n });\n\n return () => configListener?.off();\n }, []);\n\n return { isEnabled };\n};\n","import * as React from \"react\";\nconst SvgList = (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(\"rect\", { x: 4.89282, y: 2.75, width: 14.2143, height: 18.5, rx: 2.25, stroke: \"currentColor\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 9.85718, y1: 7.67871, x2: 16.2857, y2: 7.67871, stroke: \"currentColor\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 9.85718, y1: 11.9644, x2: 16.2857, y2: 11.9644, stroke: \"currentColor\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 9.85718, y1: 16.25, x2: 16.2857, y2: 16.25, stroke: \"currentColor\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 7.71429, cy: 7.71429, r: 0.714286, fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 7.71429, cy: 11.9999, r: 0.714286, fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 7.71429, cy: 16.2856, r: 0.714286, fill: \"currentColor\" }));\nexport default SvgList;\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 { useCallback, useMemo, useState } from 'preact/compat';\nimport { RequisitionListActionPayload } from 'adobe-commerce/event-bus';\nimport { useText } from '@adobe-commerce/elsie/i18n';\n\nexport interface Alert {\n type: string;\n description: string;\n action?: string;\n sku?: string;\n}\n\nexport function useRequisitionListAlert(\n translationsOverride?: Record<string, string>\n) {\n const [alert, setAlert] = useState<Alert | null>(null);\n\n const defaultTranslations = useText({\n errorCreate: `RequisitionList.RequisitionListAlert.errorCreate`,\n successCreate: `RequisitionList.RequisitionListAlert.successCreate`,\n errorDeleteItem: `RequisitionList.RequisitionListAlert.errorDeleteItem`,\n successDeleteItem: `RequisitionList.RequisitionListAlert.successDeleteItem`,\n errorDeleteReqList: `RequisitionList.RequisitionListAlert.errorDeleteReqList`,\n successDeleteReqList: `RequisitionList.RequisitionListAlert.successDeleteReqList`,\n errorAddToCart: `RequisitionList.RequisitionListAlert.errorAddToCart`,\n successAddToCart: `RequisitionList.RequisitionListAlert.successAddToCart`,\n errorUpdateQuantity: `RequisitionList.RequisitionListAlert.errorUpdateQuantity`,\n successUpdateQuantity: `RequisitionList.RequisitionListAlert.successUpdateQuantity`,\n errorUpdate: `RequisitionList.RequisitionListAlert.errorUpdate`,\n successUpdate: `RequisitionList.RequisitionListAlert.successUpdate`,\n errorMove: `RequisitionList.RequisitionListAlert.errorMove`,\n successMove: `RequisitionList.RequisitionListAlert.successMove`,\n errorAddToRequisitionList: `RequisitionList.RequisitionListAlert.errorAddToRequisitionList`,\n successAddToRequisitionList: `RequisitionList.RequisitionListAlert.successAddToRequisitionList`,\n errorMoveToList: `RequisitionList.RequisitionListAlert.errorMoveToList`,\n successMoveToList: `RequisitionList.RequisitionListAlert.successMoveToList`,\n errorCopyToList: `RequisitionList.RequisitionListAlert.errorCopyToList`,\n successCopyToList: `RequisitionList.RequisitionListAlert.successCopyToList`,\n });\n\n const translations = useMemo(\n () => ({\n ...defaultTranslations,\n ...translationsOverride,\n }),\n [defaultTranslations, translationsOverride]\n );\n\n const messages = useMemo(\n () => ({\n create: {\n // adding context for consistency, although 'create' action only applies to requisition lists\n requisitionList: {\n success: translations.successCreate,\n error: translations.errorCreate,\n },\n },\n add: {\n product: {\n success: translations.successAddToRequisitionList,\n error: translations.errorAddToRequisitionList,\n },\n },\n update: {\n product: {\n success: translations.successUpdateQuantity,\n error: translations.errorUpdateQuantity,\n },\n requisitionList: {\n success: translations.successUpdate,\n error: translations.errorUpdate,\n },\n },\n delete: {\n product: {\n success: translations.successDeleteItem,\n error: translations.errorDeleteItem,\n },\n requisitionList: {\n success: translations.successDeleteReqList,\n error: translations.errorDeleteReqList,\n },\n },\n move: {\n product: {\n success: translations.successMove,\n error: translations.errorMove,\n },\n },\n moveToList: {\n product: {\n success: translations.successMoveToList,\n error: translations.errorMoveToList,\n },\n },\n copyToList: {\n product: {\n success: translations.successCopyToList,\n error: translations.errorCopyToList,\n },\n },\n }),\n [translations]\n );\n\n const handleRequisitionListAlert = useCallback(\n (payload: RequisitionListActionPayload) => {\n const { type, action, context, skus, message } = payload;\n // Use custom message if provided, otherwise use predefined message\n const description =\n message && message.length > 0\n ? message.join('. ')\n : messages[action][context][type];\n setAlert({\n type,\n description,\n sku: skus?.[0],\n });\n\n const timer = setTimeout(() => {\n setAlert(null);\n }, 5000);\n\n return () => clearTimeout(timer);\n },\n [messages]\n );\n\n return { alert, setAlert, handleRequisitionListAlert };\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 { FunctionComponent } from 'preact';\nimport { Icon } from '@adobe-commerce/elsie/components';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { List } from '@adobe-commerce/elsie/icons';\nimport '@/requisitionList/components/EmptyList/EmptyList.css';\n\nexport interface EmptyListProps {\n className?: string;\n textContent?: string | null;\n}\n\nexport const EmptyList: FunctionComponent<EmptyListProps> = ({\n className,\n textContent,\n ...props\n}) => {\n return (\n <div\n className={classes(['empty-list', className])}\n data-testid=\"empty-list\"\n {...props}\n >\n <Icon source={List} size={'64'} stroke={'2'} />\n {textContent && <h4>{textContent}</h4>}\n </div>\n );\n};\n"],"names":["isRequisitionListEnabled","config","state","useRequisitionListEnabled","isEnabled","setIsEnabled","useState","useEffect","configListener","events","enabled","prev","SvgList","props","React","useRequisitionListAlert","translationsOverride","alert","setAlert","defaultTranslations","useText","translations","useMemo","messages","handleRequisitionListAlert","useCallback","payload","type","action","context","skus","message","description","timer","EmptyList","className","textContent","jsxs","classes","jsx","Icon","List"],"mappings":"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","x_google_ignoreList":[1]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! Copyright 2026 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{i as U,G as d}from"./getRequisitionLists.js";import{t as T,R as q}from"./
|
|
3
|
+
import{i as U,G as d}from"./getRequisitionLists.js";import{t as T,R as q,a as E}from"./updateRequisitionList.js";import{f as L,h as m}from"./fetch-graphql.js";import{events as R}from"@dropins/tools/event-bus.js";const Q=async(o,_,I,r)=>{var i,u,a,S;if(!U(o))return console.error("Invalid requisition list UID format:",o),null;const{errors:s,data:e}=await L(d,{variables:{requisitionListUid:o,currentPage:_,pageSize:I}});if(s)return m(s);if(!((a=(u=(i=e==null?void 0:e.customer)==null?void 0:i.requisition_lists)==null?void 0:u.items)!=null&&a[0]))return null;const t=e.customer.requisition_lists.items[0];let n=T(t);return(S=n==null?void 0:n.items)!=null&&S.length&&r&&(n={...n,items:await r(n.items)}),R.emit("requisitionList/data",n),n},l=`
|
|
4
4
|
mutation UPDATE_REQUISITION_LIST_ITEMS_MUTATION(
|
|
5
5
|
$requisitionListUid: ID!,
|
|
6
6
|
$requisitionListItems: [UpdateRequisitionListItemsInput!]!,
|
|
@@ -21,7 +21,7 @@ import{i as U,G as d}from"./getRequisitionLists.js";import{t as T,R as q}from"./
|
|
|
21
21
|
}
|
|
22
22
|
${q}
|
|
23
23
|
${E}
|
|
24
|
-
`,
|
|
24
|
+
`,f=async(o,_,I,r,s)=>{var u,a;const{errors:e,data:t}=await L(l,{variables:{requisitionListUid:o,requisitionListItems:_,pageSize:I,currentPage:r}});if(e)return m(e);if(!((u=t==null?void 0:t.updateRequisitionListItems)!=null&&u.requisition_list))return null;const n=t.updateRequisitionListItems.requisition_list;let i=T(n);return(a=i==null?void 0:i.items)!=null&&a.length&&s&&(i={...i,items:await s(i.items)}),R.emit("requisitionList/data",i),i},c=`
|
|
25
25
|
mutation DELETE_REQUISITION_LIST_ITEMS_MUTATION(
|
|
26
26
|
$requisitionListUid: ID!,
|
|
27
27
|
$requisitionListItemUids: [ID!]!,
|
|
@@ -42,7 +42,7 @@ ${E}
|
|
|
42
42
|
}
|
|
43
43
|
${q}
|
|
44
44
|
${E}
|
|
45
|
-
`,
|
|
45
|
+
`,w=async(o,_,I,r,s)=>{var u,a;const{errors:e,data:t}=await L(c,{variables:{requisitionListUid:o,requisitionListItemUids:_,pageSize:I,currentPage:r}});if(e)return m(e);if(!((u=t==null?void 0:t.deleteRequisitionListItems)!=null&&u.requisition_list))return null;const n=t.deleteRequisitionListItems.requisition_list;let i=T(n);return(a=i==null?void 0:i.items)!=null&&a.length&&s&&(i={...i,items:await s(i.items)}),R.emit("requisitionList/data",i),i},N=`
|
|
46
46
|
mutation ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION(
|
|
47
47
|
$requisitionListUid: ID!,
|
|
48
48
|
$requisitionListItemUids: [ID!]!
|
|
@@ -72,7 +72,7 @@ ${E}
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
`,
|
|
75
|
+
`,D=async(o,_)=>L(N,{variables:{requisitionListUid:o,requisitionListItemUids:_}}).then(({errors:I,data:r})=>{var s;return I?m(I):(s=r.addRequisitionListItemsToCart.add_requisition_list_items_to_cart_user_errors)!=null&&s.length?r.addRequisitionListItemsToCart.add_requisition_list_items_to_cart_user_errors.map(e=>({type:e.type,message:e.message||""})):null}),$=`
|
|
76
76
|
mutation MOVE_ITEMS_BETWEEN_REQUISITION_LISTS_MUTATION(
|
|
77
77
|
$sourceRequisitionListUid: ID!,
|
|
78
78
|
$destinationRequisitionListUid: ID!,
|
|
@@ -98,7 +98,7 @@ ${E}
|
|
|
98
98
|
}
|
|
99
99
|
${q}
|
|
100
100
|
${E}
|
|
101
|
-
`,
|
|
101
|
+
`,v=async(o,_,I,r,s)=>{const{errors:e,data:t}=await L($,{variables:{sourceRequisitionListUid:o,destinationRequisitionListUid:_,requisitionListItem:{requisitionListItemUids:I},pageSize:r,currentPage:s}});if(e)return m(e);if(!(t!=null&&t.moveItemsBetweenRequisitionLists))return null;const{source_requisition_list:n,destination_requisition_list:i}=t.moveItemsBetweenRequisitionLists,u=n?T(n):null,a=i?T(i):null;return u&&R.emit("requisitionList/data",u),{sourceList:u,destinationList:a}},M=`
|
|
102
102
|
mutation COPY_ITEMS_BETWEEN_REQUISITION_LISTS_MUTATION(
|
|
103
103
|
$sourceRequisitionListUid: ID!,
|
|
104
104
|
$destinationRequisitionListUid: ID!,
|
|
@@ -115,5 +115,5 @@ ${E}
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
${q}
|
|
118
|
-
`,
|
|
118
|
+
`,B=async(o,_,I)=>{var t;const{errors:r,data:s}=await L(M,{variables:{sourceRequisitionListUid:o,destinationRequisitionListUid:_,requisitionListItem:{requisitionListItemUids:I}}});return r?m(r):(t=s==null?void 0:s.copyItemsBetweenRequisitionLists)!=null&&t.requisition_list?{destinationList:T(s.copyItemsBetweenRequisitionLists.requisition_list)}:null};export{D as a,B as c,w as d,Q as g,v as m,f as u};
|
|
119
119
|
//# sourceMappingURL=copyItemsBetweenRequisitionLists.js.map
|