@dropins/storefront-requisition-list 1.0.0-beta4 → 1.0.0-beta7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"addRequisitionListItemsToCart.js","sources":["/@dropins/storefront-requisition-list/src/data/transforms/transform-product.ts","/@dropins/storefront-requisition-list/src/api/getRequisitionList/graphql/getRequisitionList.ts","/@dropins/storefront-requisition-list/src/lib/validate-uid.ts","/@dropins/storefront-requisition-list/src/api/getRequisitionList/getRequisitionList.ts","/@dropins/storefront-requisition-list/src/api/updateRequisitionListItems/graphql/updateRequisitionListItems.ts","/@dropins/storefront-requisition-list/src/api/updateRequisitionListItems/updateRequisitionListItems.ts","/@dropins/storefront-requisition-list/src/api/deleteRequisitionListItems/graphql/deleteRequisitionListItems.ts","/@dropins/storefront-requisition-list/src/api/deleteRequisitionListItems/deleteRequisitionListItems.ts","/@dropins/storefront-requisition-list/src/api/fragments/ProductFragment.graphql.ts","/@dropins/storefront-requisition-list/src/api/getProductData/graphql/getProductData.ts","/@dropins/storefront-requisition-list/src/api/getProductData/getProductData.ts","/@dropins/storefront-requisition-list/src/api/addRequisitionListItemsToCart/graphql/addRequisitionListItemsToCart.ts","/@dropins/storefront-requisition-list/src/api/addRequisitionListItemsToCart/addRequisitionListItemsToCart.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Product } from '@/requisitionList/data/models';\n\n// Interface for raw product data from GraphQL API\nexport interface RawProductData {\n __typename: string;\n id: string;\n sku: string;\n name: string;\n shortDescription?: string;\n metaDescription?: string;\n metaKeyword?: string;\n metaTitle?: string;\n description?: string;\n inStock: boolean;\n addToCartAllowed: boolean;\n url?: string;\n urlKey?: string;\n externalId?: string;\n images?: {\n url: string;\n label?: string;\n roles?: string[];\n }[];\n attributes?: {\n name: string;\n label: string;\n value: string;\n roles?: string[];\n }[];\n price?: {\n roles?: string[];\n regular?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n final?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n };\n priceRange?: {\n maximum?: {\n final?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n regular?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n roles?: string[];\n };\n minimum?: {\n final?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n regular?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n roles?: string[];\n };\n };\n options?: {\n id: string;\n title: string;\n required: boolean;\n multi: boolean;\n values: {\n id: string;\n title: string;\n inStock: boolean;\n __typename: string;\n quantity?: number;\n isDefault?: boolean;\n type?: string;\n value?: string;\n product?: {\n sku: string;\n name: string;\n shortDescription?: string;\n metaDescription?: string;\n metaKeyword?: string;\n metaTitle?: string;\n price?: {\n final?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n regular?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n roles?: string[];\n };\n };\n }[];\n }[];\n}\n\nexport function transformProduct(data: RawProductData): Product {\n return {\n sku: data.sku,\n parent_sku: data.sku, // Use same SKU as parent for simple products\n name: data.name,\n price: data.price,\n shortDescription: data.shortDescription || '',\n metaDescription: data.metaDescription || '',\n metaKeyword: data.metaKeyword || '',\n metaTitle: data.metaTitle || '',\n description: data.description || '',\n addToCartAllowed: data.addToCartAllowed,\n stock_status: data.inStock ? 'IN_STOCK' : 'OUT_OF_STOCK',\n only_x_left_in_stock: null,\n url: data.url || '',\n urlKey: data.urlKey || '',\n externalId: data.externalId || '',\n images:\n data.images?.map((image) => ({\n url: image.url,\n label: image.label || '',\n roles: image.roles || [],\n })) || [],\n };\n}\n\nexport function transformProducts(products: RawProductData[]): Product[] {\n if (!products?.length) return [];\n\n return products.map(transformProduct);\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 { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\nimport { REQUISITION_LIST_ITEMS_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListItemsFragment.graphql';\n\nexport const GET_REQUISITION_LIST_QUERY = `\n query GET_REQUISITION_LIST_QUERY(\n $requisitionListUid: String,\n $currentPage: Int = 1,\n $pageSize: Int = 10,\n ) {\n customer {\n requisition_lists (\n filter: {\n uids: {\n eq: $requisitionListUid\n }\n }\n ){\n items {\n ...REQUISITION_LIST_FRAGMENT\n items(pageSize: $pageSize, currentPage: $currentPage) {\n ...REQUISITION_LIST_ITEMS_FRAGMENT\n }\n }\n }\n }\n }\n${REQUISITION_LIST_ITEMS_FRAGMENT}\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\n/**\n * Validates if a string is a valid base64-encoded UID\n * Adobe Commerce/Magento UIDs are base64 encoded\n *\n * @param uid - The UID to validate\n * @returns true if the UID appears to be valid base64 encoding\n */\nexport function isValidBase64Uid(uid: string | undefined | null): boolean {\n if (!uid || typeof uid !== 'string' || uid.length < 2) {\n return false;\n }\n\n // Base64 pattern: alphanumeric, +, /\n // Valid base64 can end with 0, 1, or 2 '=' padding characters\n // But the length must be a multiple of 4 when padded\n const base64Pattern = /^[A-Za-z0-9+/]+(==|=)?$/;\n\n if (!base64Pattern.test(uid)) {\n return false;\n }\n\n // Check that the total length is a multiple of 4 (valid base64 requirement)\n return uid.length % 4 === 0;\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 { GET_REQUISITION_LIST_QUERY } from '@/requisitionList/api/getRequisitionList/graphql/getRequisitionList';\nimport { transformRequisitionList } from '@/requisitionList/data/transforms';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { enrichConfigurableProducts } from '@/requisitionList/api/refineProduct';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { isValidBase64Uid } from '@/requisitionList/lib/validate-uid';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const getRequisitionList = async (\n requisitionListID: string,\n currentPage?: number,\n pageSize?: number\n): Promise<RequisitionList | null> => {\n // Validate UID format before making API call\n if (!isValidBase64Uid(requisitionListID)) {\n console.error('Invalid requisition list UID format:', requisitionListID);\n return null;\n }\n\n return fetchGraphQl(GET_REQUISITION_LIST_QUERY, {\n variables: {\n requisitionListUid: requisitionListID,\n currentPage,\n pageSize,\n },\n }).then(async ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.customer?.requisition_lists) {\n return null;\n }\n\n // Enrich configurable products with variant data if items are present\n if (data.customer.requisition_lists.items[0].items?.items) {\n data.customer.requisition_lists.items[0].items.items =\n await enrichConfigurableProducts(\n data.customer.requisition_lists.items[0].items.items\n );\n }\n\n const payload = transformRequisitionList(\n data.customer.requisition_lists.items[0]\n );\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 *******************************************************************/\nimport { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\nimport { REQUISITION_LIST_ITEMS_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListItemsFragment.graphql';\n\nexport const UPDATE_REQUISITION_LIST_ITEMS_MUTATION = `\n mutation UPDATE_REQUISITION_LIST_ITEMS_MUTATION(\n $requisitionListUid: ID!, \n $requisitionListItems: [UpdateRequisitionListItemsInput!]!,\n $pageSize: Int = 20,\n $currentPage: Int = 1\n ) {\n updateRequisitionListItems(\n requisitionListUid: $requisitionListUid\n requisitionListItems: $requisitionListItems\n ) {\n requisition_list {\n ...REQUISITION_LIST_FRAGMENT\n items(pageSize: $pageSize, currentPage: $currentPage) {\n ...REQUISITION_LIST_ITEMS_FRAGMENT\n }\n }\n }\n }\n${REQUISITION_LIST_FRAGMENT}\n${REQUISITION_LIST_ITEMS_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 { enrichConfigurableProducts } from '@/requisitionList/api/refineProduct';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { UPDATE_REQUISITION_LIST_ITEMS_MUTATION } from '@/requisitionList/api/updateRequisitionListItems/graphql/updateRequisitionListItems';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const updateRequisitionListItems = async (\n requisitionListUid: string,\n requisitionListItems: Array<UpdateRequisitionListItemsInput>,\n pageSize: number,\n currentPage: number\n): Promise<RequisitionList | null> => {\n return fetchGraphQl(UPDATE_REQUISITION_LIST_ITEMS_MUTATION, {\n variables: {\n requisitionListUid,\n requisitionListItems,\n pageSize,\n currentPage,\n },\n }).then(async ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.updateRequisitionListItems?.requisition_list) {\n return null;\n }\n\n // Enrich configurable products with variant data if items are present\n if (data.updateRequisitionListItems.requisition_list.items?.items) {\n data.updateRequisitionListItems.requisition_list.items.items =\n await enrichConfigurableProducts(\n data.updateRequisitionListItems.requisition_list.items.items\n );\n }\n\n const payload = transformRequisitionList(\n data.updateRequisitionListItems.requisition_list\n );\n\n events.emit('requisitionList/data', payload);\n\n return payload;\n });\n};\n\ntype UpdateRequisitionListItemsInput = {\n item_id: string;\n quantity?: number;\n entered_options?: Array<{ uid: string; value: string }>;\n selected_options?: Array<string>;\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 { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\nimport { REQUISITION_LIST_ITEMS_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListItemsFragment.graphql';\n\nexport const DELETE_REQUISITION_LIST_ITEMS_MUTATION = `\n mutation DELETE_REQUISITION_LIST_ITEMS_MUTATION(\n $requisitionListUid: ID!, \n $requisitionListItemUids: [ID!]!,\n $pageSize: Int = 20,\n $currentPage: Int = 1\n ) {\n deleteRequisitionListItems(\n requisitionListUid: $requisitionListUid\n requisitionListItemUids: $requisitionListItemUids\n ) {\n requisition_list {\n ...REQUISITION_LIST_FRAGMENT\n items(pageSize: $pageSize, currentPage: $currentPage) {\n ...REQUISITION_LIST_ITEMS_FRAGMENT\n }\n }\n }\n }\n${REQUISITION_LIST_FRAGMENT}\n${REQUISITION_LIST_ITEMS_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 { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { enrichConfigurableProducts } from '@/requisitionList/api/refineProduct';\nimport { DELETE_REQUISITION_LIST_ITEMS_MUTATION } from '@/requisitionList/api/deleteRequisitionListItems/graphql/deleteRequisitionListItems';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { transformRequisitionList } from '@/requisitionList/data/transforms';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const deleteRequisitionListItems = async (\n requisitionListUid: string,\n items: Array<string>,\n pageSize: number,\n currentPage: number\n): Promise<RequisitionList | null> => {\n return fetchGraphQl(DELETE_REQUISITION_LIST_ITEMS_MUTATION, {\n variables: {\n requisitionListUid,\n requisitionListItemUids: items,\n pageSize,\n currentPage,\n },\n }).then(async ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.deleteRequisitionListItems?.requisition_list) {\n return null;\n }\n\n // Enrich configurable products with variant data if items are present\n if (data.deleteRequisitionListItems.requisition_list.items?.items) {\n data.deleteRequisitionListItems.requisition_list.items.items =\n await enrichConfigurableProducts(\n data.deleteRequisitionListItems.requisition_list.items.items\n );\n }\n\n const payload = transformRequisitionList(\n data.deleteRequisitionListItems.requisition_list\n );\n events.emit('requisitionList/data', payload);\n\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\nexport const PRODUCT_FRAGMENT = `\nfragment PRODUCT_FRAGMENT on ProductView {\n __typename\n id\n sku\n name\n shortDescription\n metaDescription\n metaKeyword\n metaTitle\n description\n inStock\n addToCartAllowed\n url\n urlKey\n externalId\n images(roles: []) {\n url\n label\n roles\n }\n attributes(roles: []) {\n name\n label\n value\n roles\n }\n ... on SimpleProductView {\n price {\n roles\n regular {\n amount {\n value\n currency\n }\n }\n final {\n amount {\n value\n currency\n }\n }\n }\n }\n ... on ComplexProductView {\n options {\n ...PRODUCT_OPTION_FRAGMENT\n }\n ...PRICE_RANGE_FRAGMENT\n }\n}\nfragment PRODUCT_OPTION_FRAGMENT on ProductViewOption {\n id\n title\n required\n multi\n values {\n id\n title\n inStock\n __typename\n ... on ProductViewOptionValueProduct {\n title\n quantity\n isDefault\n __typename\n product {\n sku\n shortDescription\n metaDescription\n metaKeyword\n metaTitle\n name\n price {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n }\n }\n ... on ProductViewOptionValueSwatch {\n id\n title\n type\n value\n inStock\n }\n }\n}\nfragment PRICE_RANGE_FRAGMENT on ComplexProductView {\n priceRange {\n maximum {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n minimum {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n }\n}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PRODUCT_FRAGMENT } from '@/requisitionList/api/fragments/ProductFragment.graphql';\n\nexport const GET_PRODUCT_DATA_QUERY = `\n query GET_PRODUCT_DATA($skus: [String]) {\n products(skus: $skus) {\n ...PRODUCT_FRAGMENT\n }\n }\n ${PRODUCT_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 { transformProducts } from '@/requisitionList/data/transforms';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { GET_PRODUCT_DATA_QUERY } from './graphql/getProductData';\nimport { Product } from '@/requisitionList/data/models/item';\n\nexport const getProductData = async (\n skus: string[]\n): Promise<Product[] | null> => {\n return fetchGraphQl(GET_PRODUCT_DATA_QUERY, {\n variables: {\n skus,\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.products) {\n return null;\n }\n\n return transformProducts(data.products);\n });\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION = `\n mutation ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION(\n $requisitionListUid: ID!, \n $requisitionListItemUids: [ID!]!\n ) {\n addRequisitionListItemsToCart(\n requisitionListUid: $requisitionListUid\n requisitionListItemUids: $requisitionListItemUids\n ) {\n status\n add_requisition_list_items_to_cart_user_errors {\n message\n type\n }\n cart {\n id\n itemsV2 {\n items {\n uid\n quantity\n is_available\n }\n total_count\n }\n email\n total_quantity\n is_virtual\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION } from '@/requisitionList/api/addRequisitionListItemsToCart/graphql/addRequisitionListItemsToCart';\n\nexport const addRequisitionListItemsToCart = async (\n requisitionListUid: string,\n requisitionListItemUids: Array<string>\n): Promise<Array<string> | null> => {\n return fetchGraphQl(ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION, {\n variables: {\n requisitionListUid,\n requisitionListItemUids,\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (\n data.addRequisitionListItemsToCart\n .add_requisition_list_items_to_cart_user_errors?.length\n ) {\n return data.addRequisitionListItemsToCart.add_requisition_list_items_to_cart_user_errors.map(\n (e: any) => e.type\n );\n }\n return null;\n });\n};\n"],"names":["transformProduct","data","_a","image","transformProducts","products","GET_REQUISITION_LIST_QUERY","REQUISITION_LIST_ITEMS_FRAGMENT","REQUISITION_LIST_FRAGMENT","isValidBase64Uid","uid","getRequisitionList","requisitionListID","currentPage","pageSize","fetchGraphQl","errors","handleFetchError","_b","enrichConfigurableProducts","payload","transformRequisitionList","events","UPDATE_REQUISITION_LIST_ITEMS_MUTATION","updateRequisitionListItems","requisitionListUid","requisitionListItems","DELETE_REQUISITION_LIST_ITEMS_MUTATION","deleteRequisitionListItems","items","PRODUCT_FRAGMENT","GET_PRODUCT_DATA_QUERY","getProductData","skus","ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION","addRequisitionListItemsToCart","requisitionListItemUids"],"mappings":"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"}
1
+ {"version":3,"file":"addRequisitionListItemsToCart.js","sources":["/@dropins/storefront-requisition-list/src/data/transforms/transform-product.ts","/@dropins/storefront-requisition-list/src/api/getRequisitionList/graphql/getRequisitionList.ts","/@dropins/storefront-requisition-list/src/lib/validate-uid.ts","/@dropins/storefront-requisition-list/src/api/getRequisitionList/getRequisitionList.ts","/@dropins/storefront-requisition-list/src/api/updateRequisitionListItems/graphql/updateRequisitionListItems.ts","/@dropins/storefront-requisition-list/src/api/updateRequisitionListItems/updateRequisitionListItems.ts","/@dropins/storefront-requisition-list/src/api/deleteRequisitionListItems/graphql/deleteRequisitionListItems.ts","/@dropins/storefront-requisition-list/src/api/deleteRequisitionListItems/deleteRequisitionListItems.ts","/@dropins/storefront-requisition-list/src/api/fragments/ProductFragment.graphql.ts","/@dropins/storefront-requisition-list/src/api/getProductData/graphql/getProductData.ts","/@dropins/storefront-requisition-list/src/api/getProductData/getProductData.ts","/@dropins/storefront-requisition-list/src/api/addRequisitionListItemsToCart/graphql/addRequisitionListItemsToCart.ts","/@dropins/storefront-requisition-list/src/api/addRequisitionListItemsToCart/addRequisitionListItemsToCart.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Product } from '@/requisitionList/data/models';\n\n// Interface for raw product data from GraphQL API\nexport interface RawProductData {\n __typename: string;\n id: string;\n sku: string;\n name: string;\n shortDescription?: string;\n metaDescription?: string;\n metaKeyword?: string;\n metaTitle?: string;\n description?: string;\n inStock: boolean;\n addToCartAllowed: boolean;\n url?: string;\n urlKey?: string;\n externalId?: string;\n images?: {\n url: string;\n label?: string;\n roles?: string[];\n }[];\n attributes?: {\n name: string;\n label: string;\n value: string;\n roles?: string[];\n }[];\n price?: {\n roles?: string[];\n regular?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n final?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n };\n priceRange?: {\n maximum?: {\n final?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n regular?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n roles?: string[];\n };\n minimum?: {\n final?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n regular?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n roles?: string[];\n };\n };\n options?: {\n id: string;\n title: string;\n required: boolean;\n multi: boolean;\n values: {\n id: string;\n title: string;\n inStock: boolean;\n __typename: string;\n quantity?: number;\n isDefault?: boolean;\n type?: string;\n value?: string;\n product?: {\n sku: string;\n name: string;\n shortDescription?: string;\n metaDescription?: string;\n metaKeyword?: string;\n metaTitle?: string;\n price?: {\n final?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n regular?: {\n amount: {\n value: number;\n currency: string;\n };\n };\n roles?: string[];\n };\n };\n }[];\n }[];\n}\n\nexport function transformProduct(data: RawProductData): Product {\n return {\n sku: data.sku,\n parent_sku: data.sku, // Use same SKU as parent for simple products\n name: data.name,\n price: data.price,\n shortDescription: data.shortDescription || '',\n metaDescription: data.metaDescription || '',\n metaKeyword: data.metaKeyword || '',\n metaTitle: data.metaTitle || '',\n description: data.description || '',\n addToCartAllowed: data.addToCartAllowed,\n stock_status: data.inStock ? 'IN_STOCK' : 'OUT_OF_STOCK',\n only_x_left_in_stock: null,\n url: data.url || '',\n urlKey: data.urlKey || '',\n externalId: data.externalId || '',\n images:\n data.images?.map((image) => ({\n url: image.url,\n label: image.label || '',\n roles: image.roles || [],\n })) || [],\n };\n}\n\nexport function transformProducts(products: RawProductData[]): Product[] {\n if (!products?.length) return [];\n\n return products.map(transformProduct);\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 { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\nimport { REQUISITION_LIST_ITEMS_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListItemsFragment.graphql';\n\nexport const GET_REQUISITION_LIST_QUERY = `\n query GET_REQUISITION_LIST_QUERY(\n $requisitionListUid: String,\n $currentPage: Int = 1,\n $pageSize: Int = 10,\n ) {\n customer {\n requisition_lists (\n filter: {\n uids: {\n eq: $requisitionListUid\n }\n }\n ){\n items {\n ...REQUISITION_LIST_FRAGMENT\n items(pageSize: $pageSize, currentPage: $currentPage) {\n ...REQUISITION_LIST_ITEMS_FRAGMENT\n }\n }\n }\n }\n }\n${REQUISITION_LIST_ITEMS_FRAGMENT}\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\n/**\n * Validates if a string is a valid base64-encoded UID\n * Adobe Commerce/Magento UIDs are base64 encoded\n *\n * @param uid - The UID to validate\n * @returns true if the UID appears to be valid base64 encoding\n */\nexport function isValidBase64Uid(uid: string | undefined | null): boolean {\n if (!uid || typeof uid !== 'string' || uid.length < 2) {\n return false;\n }\n\n // Base64 pattern: alphanumeric, +, /\n // Valid base64 can end with 0, 1, or 2 '=' padding characters\n // But the length must be a multiple of 4 when padded\n const base64Pattern = /^[A-Za-z0-9+/]+(==|=)?$/;\n\n if (!base64Pattern.test(uid)) {\n return false;\n }\n\n // Check that the total length is a multiple of 4 (valid base64 requirement)\n return uid.length % 4 === 0;\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 { GET_REQUISITION_LIST_QUERY } from '@/requisitionList/api/getRequisitionList/graphql/getRequisitionList';\nimport { transformRequisitionList } from '@/requisitionList/data/transforms';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { enrichConfigurableProducts } from '@/requisitionList/api/refineProduct';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { isValidBase64Uid } from '@/requisitionList/lib/validate-uid';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const getRequisitionList = async (\n requisitionListID: string,\n currentPage?: number,\n pageSize?: number\n): Promise<RequisitionList | null> => {\n // Validate UID format before making API call\n if (!isValidBase64Uid(requisitionListID)) {\n console.error('Invalid requisition list UID format:', requisitionListID);\n return null;\n }\n\n return fetchGraphQl(GET_REQUISITION_LIST_QUERY, {\n variables: {\n requisitionListUid: requisitionListID,\n currentPage,\n pageSize,\n },\n }).then(async ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.customer?.requisition_lists) {\n return null;\n }\n\n // Enrich configurable products with variant data if items are present\n if (data.customer.requisition_lists.items[0].items?.items) {\n data.customer.requisition_lists.items[0].items.items =\n await enrichConfigurableProducts(\n data.customer.requisition_lists.items[0].items.items\n );\n }\n\n const payload = transformRequisitionList(\n data.customer.requisition_lists.items[0]\n );\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 *******************************************************************/\nimport { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\nimport { REQUISITION_LIST_ITEMS_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListItemsFragment.graphql';\n\nexport const UPDATE_REQUISITION_LIST_ITEMS_MUTATION = `\n mutation UPDATE_REQUISITION_LIST_ITEMS_MUTATION(\n $requisitionListUid: ID!, \n $requisitionListItems: [UpdateRequisitionListItemsInput!]!,\n $pageSize: Int = 20,\n $currentPage: Int = 1\n ) {\n updateRequisitionListItems(\n requisitionListUid: $requisitionListUid\n requisitionListItems: $requisitionListItems\n ) {\n requisition_list {\n ...REQUISITION_LIST_FRAGMENT\n items(pageSize: $pageSize, currentPage: $currentPage) {\n ...REQUISITION_LIST_ITEMS_FRAGMENT\n }\n }\n }\n }\n${REQUISITION_LIST_FRAGMENT}\n${REQUISITION_LIST_ITEMS_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 { enrichConfigurableProducts } from '@/requisitionList/api/refineProduct';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { UPDATE_REQUISITION_LIST_ITEMS_MUTATION } from '@/requisitionList/api/updateRequisitionListItems/graphql/updateRequisitionListItems';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const updateRequisitionListItems = async (\n requisitionListUid: string,\n requisitionListItems: Array<UpdateRequisitionListItemsInput>,\n pageSize: number,\n currentPage: number\n): Promise<RequisitionList | null> => {\n return fetchGraphQl(UPDATE_REQUISITION_LIST_ITEMS_MUTATION, {\n variables: {\n requisitionListUid,\n requisitionListItems,\n pageSize,\n currentPage,\n },\n }).then(async ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.updateRequisitionListItems?.requisition_list) {\n return null;\n }\n\n // Enrich configurable products with variant data if items are present\n if (data.updateRequisitionListItems.requisition_list.items?.items) {\n data.updateRequisitionListItems.requisition_list.items.items =\n await enrichConfigurableProducts(\n data.updateRequisitionListItems.requisition_list.items.items\n );\n }\n\n const payload = transformRequisitionList(\n data.updateRequisitionListItems.requisition_list\n );\n\n events.emit('requisitionList/data', payload);\n\n return payload;\n });\n};\n\ntype UpdateRequisitionListItemsInput = {\n item_id: string;\n quantity?: number;\n entered_options?: Array<{ uid: string; value: string }>;\n selected_options?: Array<string>;\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 { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\nimport { REQUISITION_LIST_ITEMS_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListItemsFragment.graphql';\n\nexport const DELETE_REQUISITION_LIST_ITEMS_MUTATION = `\n mutation DELETE_REQUISITION_LIST_ITEMS_MUTATION(\n $requisitionListUid: ID!, \n $requisitionListItemUids: [ID!]!,\n $pageSize: Int = 20,\n $currentPage: Int = 1\n ) {\n deleteRequisitionListItems(\n requisitionListUid: $requisitionListUid\n requisitionListItemUids: $requisitionListItemUids\n ) {\n requisition_list {\n ...REQUISITION_LIST_FRAGMENT\n items(pageSize: $pageSize, currentPage: $currentPage) {\n ...REQUISITION_LIST_ITEMS_FRAGMENT\n }\n }\n }\n }\n${REQUISITION_LIST_FRAGMENT}\n${REQUISITION_LIST_ITEMS_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 { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { enrichConfigurableProducts } from '@/requisitionList/api/refineProduct';\nimport { DELETE_REQUISITION_LIST_ITEMS_MUTATION } from '@/requisitionList/api/deleteRequisitionListItems/graphql/deleteRequisitionListItems';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { transformRequisitionList } from '@/requisitionList/data/transforms';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const deleteRequisitionListItems = async (\n requisitionListUid: string,\n items: Array<string>,\n pageSize: number,\n currentPage: number\n): Promise<RequisitionList | null> => {\n return fetchGraphQl(DELETE_REQUISITION_LIST_ITEMS_MUTATION, {\n variables: {\n requisitionListUid,\n requisitionListItemUids: items,\n pageSize,\n currentPage,\n },\n }).then(async ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.deleteRequisitionListItems?.requisition_list) {\n return null;\n }\n\n // Enrich configurable products with variant data if items are present\n if (data.deleteRequisitionListItems.requisition_list.items?.items) {\n data.deleteRequisitionListItems.requisition_list.items.items =\n await enrichConfigurableProducts(\n data.deleteRequisitionListItems.requisition_list.items.items\n );\n }\n\n const payload = transformRequisitionList(\n data.deleteRequisitionListItems.requisition_list\n );\n events.emit('requisitionList/data', payload);\n\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\nexport const PRODUCT_FRAGMENT = `\nfragment PRODUCT_FRAGMENT on ProductView {\n __typename\n id\n sku\n name\n shortDescription\n metaDescription\n metaKeyword\n metaTitle\n description\n inStock\n addToCartAllowed\n url\n urlKey\n externalId\n images(roles: []) {\n url\n label\n roles\n }\n attributes(roles: []) {\n name\n label\n value\n roles\n }\n ... on SimpleProductView {\n price {\n roles\n regular {\n amount {\n value\n currency\n }\n }\n final {\n amount {\n value\n currency\n }\n }\n }\n }\n ... on ComplexProductView {\n options {\n ...PRODUCT_OPTION_FRAGMENT\n }\n ...PRICE_RANGE_FRAGMENT\n }\n}\nfragment PRODUCT_OPTION_FRAGMENT on ProductViewOption {\n id\n title\n required\n multi\n values {\n id\n title\n inStock\n __typename\n ... on ProductViewOptionValueProduct {\n title\n quantity\n isDefault\n __typename\n product {\n sku\n shortDescription\n metaDescription\n metaKeyword\n metaTitle\n name\n price {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n }\n }\n ... on ProductViewOptionValueSwatch {\n id\n title\n type\n value\n inStock\n }\n }\n}\nfragment PRICE_RANGE_FRAGMENT on ComplexProductView {\n priceRange {\n maximum {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n minimum {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n }\n}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PRODUCT_FRAGMENT } from '@/requisitionList/api/fragments/ProductFragment.graphql';\n\nexport const GET_PRODUCT_DATA_QUERY = `\n query GET_PRODUCT_DATA($skus: [String]) {\n products(skus: $skus) {\n ...PRODUCT_FRAGMENT\n }\n }\n ${PRODUCT_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 { transformProducts } from '@/requisitionList/data/transforms';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { GET_PRODUCT_DATA_QUERY } from './graphql/getProductData';\nimport { Product } from '@/requisitionList/data/models/item';\n\nexport const getProductData = async (\n skus: string[]\n): Promise<Product[] | null> => {\n return fetchGraphQl(GET_PRODUCT_DATA_QUERY, {\n variables: {\n skus,\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (!data?.products) {\n return null;\n }\n\n return transformProducts(data.products);\n });\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION = `\n mutation ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION(\n $requisitionListUid: ID!, \n $requisitionListItemUids: [ID!]!\n ) {\n addRequisitionListItemsToCart(\n requisitionListUid: $requisitionListUid\n requisitionListItemUids: $requisitionListItemUids\n ) {\n status\n add_requisition_list_items_to_cart_user_errors {\n message\n type\n }\n cart {\n id\n itemsV2 {\n items {\n uid\n quantity\n is_available\n }\n total_count\n }\n email\n total_quantity\n is_virtual\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION } from '@/requisitionList/api/addRequisitionListItemsToCart/graphql/addRequisitionListItemsToCart';\n\nexport interface AddToCartError {\n type: string;\n message: string;\n}\n\nexport const addRequisitionListItemsToCart = async (\n requisitionListUid: string,\n requisitionListItemUids: Array<string>\n): Promise<Array<AddToCartError> | null> => {\n return fetchGraphQl(ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION, {\n variables: {\n requisitionListUid,\n requisitionListItemUids,\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n if (\n data.addRequisitionListItemsToCart\n .add_requisition_list_items_to_cart_user_errors?.length\n ) {\n return data.addRequisitionListItemsToCart.add_requisition_list_items_to_cart_user_errors.map(\n (e: any) => ({\n type: e.type,\n message: e.message || '',\n })\n );\n }\n return null;\n });\n};\n"],"names":["transformProduct","data","_a","image","transformProducts","products","GET_REQUISITION_LIST_QUERY","REQUISITION_LIST_ITEMS_FRAGMENT","REQUISITION_LIST_FRAGMENT","isValidBase64Uid","uid","getRequisitionList","requisitionListID","currentPage","pageSize","fetchGraphQl","errors","handleFetchError","_b","enrichConfigurableProducts","payload","transformRequisitionList","events","UPDATE_REQUISITION_LIST_ITEMS_MUTATION","updateRequisitionListItems","requisitionListUid","requisitionListItems","DELETE_REQUISITION_LIST_ITEMS_MUTATION","deleteRequisitionListItems","items","PRODUCT_FRAGMENT","GET_PRODUCT_DATA_QUERY","getProductData","skus","ADD_REQUISITION_LIST_ITEMS_TO_CART_MUTATION","addRequisitionListItemsToCart","requisitionListItemUids"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{R as L,f as T,h as q,t as R}from"./updateRequisitionList.js";import{events as E}from"@dropins/tools/event-bus.js";const a=`
4
4
  mutation DELETE_REQUISITION_LIST_MUTATION(
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{R as a,f as m,h as g,t as l}from"./updateRequisitionList.js";import{events as p}from"@dropins/tools/event-bus.js";const S=`
4
4
  query GET_REQUISITION_LISTS_QUERY(
package/chunks/state.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  const n={authenticated:!1,config:void 0,requisitionLists:[],requisitionListsLoading:!1,requisitionListsVersion:0},s=new Proxy(n,{set(i,e,t){return Reflect.set(i,e,t)},get(i,e){return i[e]}}),o=i=>{s.requisitionLists=i,s.requisitionListsVersion++},u=i=>{s.requisitionLists.some(t=>t.uid===i.uid)?s.requisitionLists=s.requisitionLists.map(t=>t.uid===i.uid?i:t):s.requisitionLists=[...s.requisitionLists,i],s.requisitionListsVersion++},r=i=>{s.requisitionListsLoading=i};export{r as a,o as b,s,u};
4
4
  //# sourceMappingURL=state.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{events as c}from"@dropins/tools/event-bus.js";import{FetchGraphQL as p}from"@dropins/tools/fetch-graphql.js";const d=e=>{const i=e.map(o=>o.message).join(" ");throw Error(i)},{setEndpoint:E,setFetchGraphQlHeader:v,removeFetchGraphQlHeader:y,setFetchGraphQlHeaders:h,fetchGraphQl:l,getConfig:N}=new p().getMethods(),f=`
4
4
  query REFINE_PRODUCT(
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{R as u,R as d}from"../chunks/RequisitionListForm2.js";import"@dropins/tools/preact-jsx-runtime.js";import"../chunks/RequisitionListForm.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/components.js";import"@dropins/tools/lib.js";import"@dropins/tools/i18n.js";import"../chunks/updateRequisitionList.js";import"@dropins/tools/event-bus.js";import"@dropins/tools/fetch-graphql.js";export{u as RequisitionListForm,d as default};
4
4
  //# sourceMappingURL=RequisitionListForm.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsxs as h,jsx as t,Fragment as z}from"@dropins/tools/preact-jsx-runtime.js";import{useState as M,useCallback as q,useMemo as S,useEffect as T}from"@dropins/tools/preact-compat.js";import{Button as N,Header as G,InLineAlert as U,Table as V,Pagination as B,Card as j}from"@dropins/tools/components.js";import{Slot as J,classes as v,VComponent as Z}from"@dropins/tools/lib.js";import{D,R as $}from"../chunks/RequisitionListForm.js";import"@dropins/tools/preact-hooks.js";import{R as I}from"../chunks/RequisitionListForm2.js";import{events as y}from"@dropins/tools/event-bus.js";import"../chunks/state.js";import"@dropins/tools/preact.js";import{u as K,a as Q,E as X}from"../chunks/RequisitionListView.js";import{R as Y}from"../chunks/RequisitionListActions.js";import{R as x}from"../chunks/RequisitionListModal.js";import{N as ii,P as ei,a as ti}from"../chunks/PaginationItemsCounter.js";import{useText as E}from"@dropins/tools/i18n.js";import{g as W}from"../chunks/getRequisitionLists.js";import{d as ni}from"../chunks/deleteRequisitionList.js";import{u as si}from"../chunks/updateRequisitionList.js";import"@dropins/tools/fetch-graphql.js";function oi(u,L,d){const R=E({actionRename:"RequisitionList.RequisitionListView.actionRename",actionDeleteList:"RequisitionList.RequisitionListView.actionDeleteList"}),[i,a]=M(null),[p,f]=M(!1),[w,_]=M(!1),C=q(()=>{d&&d(),f(!0)},[d]),A=q(()=>f(!1),[]),c=S(()=>{if(u)return{handleOpenRenameModal:e=>{f(s=>s&&!1),u.handleOpenRenameModal(e)},handleOpenDeleteModal:e=>{f(s=>s&&!1),u.handleOpenDeleteModal(e)}}},[u]),l=q(async(e,s)=>{var r,n,m;_(!0);try{const o=await W(e,s),O=((r=o==null?void 0:o.page_info)==null?void 0:r.current_page)??1,F=((n=o==null?void 0:o.page_info)==null?void 0:n.total_pages)??0;if(!((((m=o==null?void 0:o.items)==null?void 0:m.length)??0)>0)&&O>1&&F>=O-1){const k=O-1,H=await W(k,s);a(H)}else a(o)}finally{_(!1)}},[]);T(()=>{const e=y.on("requisitionLists/data",s=>{s&&s.items&&a(s)},{eager:!0});return()=>{e==null||e.off()}},[]),T(()=>{i||l(1,D)},[i,l]);const g=q(e=>{var n,m;const s=e??((n=i==null?void 0:i.page_info)==null?void 0:n.current_page)??1,r=((m=i==null?void 0:i.page_info)==null?void 0:m.page_size)??D;return l(s,r)},[l,i]),b=q(async e=>{await l(1,e)},[l]);return{rows:S(()=>((i==null?void 0:i.items)??[]).map(e=>({name:h("div",{className:"requisition-list-grid-wrapper__name",children:[t("div",{className:"requisition-list-grid-wrapper__name__title",children:t("a",{href:"#",onClick:s=>{if(s.preventDefault(),L){const r=L(e.uid);typeof r=="string"&&(window.location.href=r)}},children:e.name})}),e.description&&t("div",{className:"requisition-list-grid-wrapper__name__description",children:e.description})]}),items_count:e.items_count,last_updated:new Date(e.updated_at).toLocaleString(),actions:h("div",{className:"requisition-list-grid-wrapper__actions",children:[t(N,{variant:"tertiary",type:"button","data-testid":"rename-button",onClick:()=>c==null?void 0:c.handleOpenRenameModal(e),children:R.actionRename}),t(N,{variant:"tertiary",type:"button","data-testid":"delete-button",onClick:()=>c==null?void 0:c.handleOpenDeleteModal(e),children:R.actionDeleteList})]})})),[i==null?void 0:i.items,R.actionRename,R.actionDeleteList,c,L]),isLoading:w||!i,pageInfo:i==null?void 0:i.page_info,totalCount:i==null?void 0:i.total_count,handlePageChange:g,handlePageSizeChange:b,isAdding:p,handleAddNew:C,handleCancelCreate:A}}const Oi=({routeRequisitionListDetails:u,fallbackRoute:L="/customer/account",slots:d})=>{const{isEnabled:R}=K(),[i,a]=M({type:null,isOpen:!1,isLoading:!1,requisitionList:null}),p=q(()=>{a({type:null,isOpen:!1,isLoading:!1,requisitionList:null})},[]),f=q(o=>{a({type:"rename",isOpen:!0,isLoading:!1,requisitionList:o})},[]),w=q(o=>{a({type:"delete",isOpen:!0,isLoading:!1,requisitionList:o})},[]),{rows:_,isLoading:C,pageInfo:A,totalCount:c,handlePageChange:l,handlePageSizeChange:g,isAdding:b,handleAddNew:P,handleCancelCreate:e}=oi({handleOpenRenameModal:f,handleOpenDeleteModal:w},u,p),s=q(async o=>{if(i.requisitionList)try{await si(i.requisitionList.uid,o.name,o.description),y.emit("requisitionList/alert",{action:"update",type:"success",context:"requisitionList"}),await l(),p()}catch{y.emit("requisitionList/alert",{action:"update",type:"error",context:"requisitionList"})}},[i.requisitionList,l,p]),r=async()=>{i.requisitionList&&(a({...i,isLoading:!0}),await ni(i.requisitionList.uid).then(async()=>{y.emit("requisitionList/alert",{type:"success",action:"delete",context:"requisitionList"})}).catch(()=>{y.emit("requisitionList/alert",{type:"error",action:"delete",context:"requisitionList"})}).finally(async()=>{await l(),p()}))},n=E({containerTitle:"RequisitionList.containerTitle",updateTitle:"RequisitionList.RequisitionListForm.updateTitle",deleteRequisitionListTitle:"RequisitionList.RequisitionListWrapper.deleteRequisitionListTitle",deleteRequisitionListMessage:"RequisitionList.RequisitionListWrapper.deleteRequisitionListMessage",cancelAction:"RequisitionList.RequisitionListWrapper.cancelAction",confirmAction:"RequisitionList.RequisitionListWrapper.confirmAction",notEnabledTitle:"RequisitionList.RequisitionListsNotEnabled.title",notEnabledMessage:"RequisitionList.RequisitionListsNotEnabled.message",notEnabledActionLabel:"RequisitionList.RequisitionListsNotEnabled.actionLabel"}),m=q(()=>d!=null&&d.Header?t(J,{name:"Header","aria-label":n.containerTitle,title:n.containerTitle,slot:d.Header}):t(G,{"aria-label":n.containerTitle,role:"region",title:n.containerTitle}),[d,n.containerTitle]);return R===!1?t(ii,{title:n.notEnabledTitle,message:n.notEnabledMessage,actionLabel:n.notEnabledActionLabel,onAction:()=>{window.location.href=L}}):h(z,{children:[t(ai,{header:m(),rows:_,skeletonRowCount:10,isLoading:C,pageInfo:A,totalCount:c,handlePageChange:l,handlePageSizeChange:g,defaultPageSize:10,isAdding:b,handleAddNew:P,handleCancelCreate:e}),i.type==="rename"&&i.isOpen&&i.requisitionList&&t(x,{isOpen:i.isOpen,isLoading:i.isLoading,title:n.updateTitle,modalContent:t($,{mode:"update",defaultValues:{name:i.requisitionList.name,description:i.requisitionList.description||""},onSubmit:s,onCancel:p}),handleModalOnClose:p}),i.type==="delete"&&i.isOpen&&t(x,{isOpen:i.isOpen,isLoading:i.isLoading,title:n.deleteRequisitionListTitle,modalContent:n.deleteRequisitionListMessage,confirmBtnCaption:n.confirmAction,closeBtnCaption:n.cancelAction,handleModalOnClose:p,handleModalOnConfirm:r})]})},ai=({className:u,isLoading:L=!1,header:d,rows:R=[],skeletonRowCount:i=10,pageInfo:a,totalCount:p=0,handlePageChange:f,handlePageSizeChange:w,defaultPageSize:_=10,isAdding:C,handleAddNew:A,handleCancelCreate:c,...l})=>{const g=E({name:"RequisitionList.RequisitionListWrapper.name",itemsCount:"RequisitionList.RequisitionListWrapper.itemsCount",lastUpdated:"RequisitionList.RequisitionListWrapper.lastUpdated",actions:"RequisitionList.RequisitionListWrapper.actions",emptyList:"RequisitionList.RequisitionListWrapper.emptyList",show:"RequisitionList.PageSizePicker.show"}),b=((a==null?void 0:a.total_pages)??0)>0,P=!L&&R.length===0&&!b,{alert:e,setAlert:s,handleRequisitionListAlert:r}=Q();return T(()=>{const n=y.on("requisitionList/alert",r);try{const m=localStorage.getItem("requisitionListPendingAlert");if(m){const o=JSON.parse(m);r(o),localStorage.removeItem("requisitionListPendingAlert")}}catch{}return()=>{n==null||n.off()}},[r]),h("div",{...l,className:v(["requisition-list-grid-wrapper",u]),"data-testid":"requisition-list-grid-wrapper",children:[d&&t("div",{className:v(["requisition-list-grid-wrapper__header",u]),"data-testid":"requisition-list-grid-wrapper-header",children:t(Z,{node:d})}),e&&t("div",{className:"requisition-list__alert-wrapper",children:t(U,{heading:e.description,type:e.type,variant:"primary",onDismiss:()=>s(null)})}),P?t(X,{textContent:g.emptyList}):h(z,{children:[t(V,{columns:[{key:"name",label:g.name},{key:"items_count",label:g.itemsCount},{key:"last_updated",label:g.lastUpdated},{key:"actions",label:g.actions}],rowData:R,loading:L,skeletonRowCount:i}),a&&h("div",{className:v(["requisition-list-grid-wrapper__pagination",u]),children:[t(ei,{pageInfo:a,totalCount:p}),(a.total_pages||0)>1&&t(B,{totalPages:a.total_pages,currentPage:a.current_page||1,onChange:f,disabled:L}),h("div",{className:"requisition-list-grid-wrapper__pagination-picker",children:[t("span",{children:g.show}),t(ti,{currentPageSize:a.page_size||_,onPageSizeChange:w||(()=>Promise.resolve()),disabled:L})]})]})]}),t("div",{className:v(["requisition-list-grid-wrapper__add-new",u]),children:C?t(j,{variant:"secondary",children:t(I,{mode:"create",onSuccess:async()=>{await f(),c(),r({type:"success",action:"create",context:"requisitionList"})},onError:()=>{r({type:"error",action:"create",context:"requisitionList"})},onCancel:c})}):t(Y,{onAddNew:A})})]})};export{Oi as RequisitionListGrid,Oi as default};
4
4
  //# sourceMappingURL=RequisitionListGrid.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{R as q}from"../chunks/RequisitionListHeader.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact-hooks.js";import"../chunks/RequisitionListModal.js";import"@dropins/tools/components.js";import"../chunks/RequisitionListForm.js";import"@dropins/tools/lib.js";import"@dropins/tools/i18n.js";import"../chunks/updateRequisitionList.js";import"@dropins/tools/event-bus.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/deleteRequisitionList.js";export{q as RequisitionListHeader};
4
4
  //# sourceMappingURL=RequisitionListHeader.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as s,jsxs as q,Fragment as x}from"@dropins/tools/preact-jsx-runtime.js";import*as k from"@dropins/tools/preact-compat.js";import{useState as p,useEffect as v,useCallback as m,useMemo as D}from"@dropins/tools/preact-compat.js";import{Card as y,Icon as E,Button as F,InLineAlert as V}from"@dropins/tools/components.js";import{c as H,R as J,f as K,h as X,t as Y}from"../chunks/updateRequisitionList.js";import{events as A}from"@dropins/tools/event-bus.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/lib.js";import"../chunks/RequisitionListForm.js";import{R as Z}from"../chunks/RequisitionListForm2.js";import{u as ii,a as ti,S as $,E as si}from"../chunks/RequisitionListView.js";import"@dropins/tools/preact.js";import{s as l,a as P,b as N,u as ei}from"../chunks/state.js";import{g as oi}from"../chunks/getRequisitionLists.js";import{R as ni}from"../chunks/RequisitionListActions.js";import{R as ri}from"../chunks/RequisitionListModal.js";import{useText as ai}from"@dropins/tools/i18n.js";import"@dropins/tools/fetch-graphql.js";const li=`
4
4
  mutation ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION(
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
- import{jsxs as b,jsx as e,Fragment as bt}from"@dropins/tools/preact-jsx-runtime.js";import*as p from"@dropins/tools/preact-compat.js";import{useState as v,useEffect as lt,useCallback as x}from"@dropins/tools/preact-compat.js";import{b as kt,a as yt,d as vt,u as Ct,g as ct,i as Rt}from"../chunks/addRequisitionListItemsToCart.js";import{Button as pt,Icon as tt,Price as Lt,Field as It,Input as St,Image as At,Checkbox as Nt,Table as Pt,ProgressSpinner as Tt,InLineAlert as Et,Pagination as xt}from"@dropins/tools/components.js";import{events as Z}from"@dropins/tools/event-bus.js";import{useState as et,useCallback as ut}from"@dropins/tools/preact-hooks.js";import{VComponent as Vt,classes as Mt}from"@dropins/tools/lib.js";import{D as dt}from"../chunks/RequisitionListForm.js";import{a as Dt,u as Ht,E as Ft}from"../chunks/RequisitionListView.js";import{h as Bt}from"@dropins/tools/preact.js";import{useText as gt}from"@dropins/tools/i18n.js";import{R as zt}from"../chunks/RequisitionListHeader.js";import"../chunks/state.js";import{R as Ot}from"../chunks/RequisitionListModal.js";import{N as qt,P as $t,a as Wt}from"../chunks/PaginationItemsCounter.js";import"../chunks/updateRequisitionList.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/deleteRequisitionList.js";const Qt=c=>p.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...c},p.createElement("g",{clipPath:"url(#clip0_102_196)"},p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3601 18.16H6.5601L4.8801 3H2.3501M19.6701 19.59C19.6701 20.3687 19.0388 21 18.2601 21C17.4814 21 16.8501 20.3687 16.8501 19.59C16.8501 18.8113 17.4814 18.18 18.2601 18.18C19.0388 18.18 19.6701 18.8113 19.6701 19.59ZM7.42986 19.59C7.42986 20.3687 6.79858 21 6.01986 21C5.24114 21 4.60986 20.3687 4.60986 19.59C4.60986 18.8113 5.24114 18.18 6.01986 18.18C6.79858 18.18 7.42986 18.8113 7.42986 19.59Z",stroke:"currentColor",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M5.25 6.37L20.89 8.06L20.14 14.8H6.19",stroke:"currentColor",strokeLinejoin:"round"})),p.createElement("defs",null,p.createElement("clipPath",{id:"clip0_102_196"},p.createElement("rect",{vectorEffect:"non-scaling-stroke",width:19.29,height:19.5,fill:"white",transform:"translate(2.3501 2.25)"})))),jt=c=>p.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...c},p.createElement("path",{d:"M17.3332 11.75H6.6665",strokeWidth:1,strokeLinecap:"square",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke",fill:"none",stroke:"currentColor"})),wt=c=>p.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...c},p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M1 5H23",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M17.3674 22H6.63446C5.67952 22 4.88992 21.2688 4.8379 20.3338L4 5H20L19.1621 20.3338C19.1119 21.2688 18.3223 22 17.3655 22H17.3674Z",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M9.87189 2H14.1281C14.6085 2 15 2.39766 15 2.88889V5H9V2.88889C9 2.39912 9.39006 2 9.87189 2Z",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M8.87402 8.58057L9.39348 17.682",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M14.6673 8.58057L14.146 17.682",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}));function Zt(){const[c,N]=et(null),[L,g]=et(new Set),V=ut((q,h)=>{g(m=>{const f=new Set(m);return h?f.add(q):f.delete(q),f})},[]),C=ut(()=>{var h;const q=(h=c==null?void 0:c.items)==null?void 0:h.map(m=>m.uid);g(new Set(q))},[c]),R=ut(()=>{g(new Set)},[]);return{currentRequisitionList:c,setCurrentRequisitionList:N,selectedItems:L,setSelectedItems:g,handleItemSelection:V,handleSelectAll:C,handleSelectNone:R}}const Kt=({className:c,items:N,selectedItems:L,currentPage:g,pageSize:V,canEdit:C=!0,handleItemSelection:R,handleUpdateQuantity:q,onAddToCart:h,onDeleteItem:m,...f})=>{const[I,H]=et({}),[it,z]=et({}),S=gt({productNameHeader:"RequisitionList.RequisitionListView.productListTable.headers.productName",skuHeader:"RequisitionList.RequisitionListView.productListTable.headers.sku",priceHeader:"RequisitionList.RequisitionListView.productListTable.headers.price",quantityHeader:"RequisitionList.RequisitionListView.productListTable.headers.quantity",subtotalHeader:"RequisitionList.RequisitionListView.productListTable.headers.subtotal",actionsHeader:"RequisitionList.RequisitionListView.productListTable.headers.actions",actionAddToCart:"RequisitionList.RequisitionListView.actionAddToCart",actionDelete:"RequisitionList.RequisitionListView.actionDelete",itemQuantity:"RequisitionList.RequisitionListView.productListTable.itemQuantity",outOfStock:"RequisitionList.RequisitionListView.productListTable.outOfStock",onlyXLeftInStock:"RequisitionList.RequisitionListView.productListTable.onlyXLeftInStock"}),P=[{label:"#",key:"index"},{label:"item",key:"item"},{label:S.priceHeader,key:"price"},{label:S.quantityHeader,key:"quantity"},{label:S.subtotalHeader,key:"subtotal"}];C&&(P.unshift({label:"",key:"selector"}),P.push({label:S.actionsHeader,key:"actions"}));const T=(t,n)=>{const r=t.target.checked;R(n.uid,r)},K=t=>(g-1)*V+t+1,nt=t=>{var n,r;return((n=t.configured_product)==null?void 0:n.name)||((r=t.product)==null?void 0:r.name)||t.sku},O=t=>{var n,r,o,k,u,w;return(r=(n=t.configured_product)==null?void 0:n.images)!=null&&r.length?((o=t.configured_product.images[0])==null?void 0:o.url)||"":(u=(k=t.product)==null?void 0:k.images)!=null&&u.length&&((w=t.product.images[0])==null?void 0:w.url)||""},X=t=>{var n;return((n=t.product)==null?void 0:n.name)||t.sku},$=t=>{var n;return(n=t.configured_product)==null?void 0:n.name},F=t=>t.bundle_options?t.bundle_options.map((r,o)=>b("span",{className:"requisition-list-view-product-list-table__product-configurable-name",children:[r.values[0].label," x ",r.values[0].quantity]},r.values[0].label||o)):void 0,W=t=>{var n;return((n=t.configured_product)==null?void 0:n.sku)||t.sku},i=t=>{var n,r,o,k,u,w,E,M;return Array.isArray(t.bundle_options)&&t.bundle_options.length>0?t.bundle_options.reduce((rt,U)=>{var Y,G,Q;return rt+(((G=(Y=U.values[0])==null?void 0:Y.priceV2)==null?void 0:G.value)||0)*(((Q=U.values[0])==null?void 0:Q.quantity)||0)},0):((k=(o=(r=(n=t.configured_product)==null?void 0:n.price)==null?void 0:r.final)==null?void 0:o.amount)==null?void 0:k.value)||((M=(E=(w=(u=t.product)==null?void 0:u.price)==null?void 0:w.final)==null?void 0:E.amount)==null?void 0:M.value)||0},d=t=>{var n,r,o,k,u,w,E,M;return((k=(o=(r=(n=t.configured_product)==null?void 0:n.price)==null?void 0:r.final)==null?void 0:o.amount)==null?void 0:k.currency)||((M=(E=(w=(u=t.product)==null?void 0:u.price)==null?void 0:w.final)==null?void 0:E.amount)==null?void 0:M.currency)},B=t=>i(t)*t.quantity,J=(t,n)=>{const r=+t.target.value;r>0&&!Number.isNaN(t.target.value)&&z(o=>({...o,[n.uid]:r}))},st=async(t,n)=>{let r=+t.target.value;if(!(r>0&&r!==n.quantity)){z(o=>({...o,[n.uid]:n.quantity}));return}H(o=>({...o,[n.uid]:!0}));try{await q(n.uid,r)}finally{H(o=>({...o,[n.uid]:!1}))}},ot=N.map((t,n)=>({selector:e(Nt,{className:"requisition-list-view-product-list-table__checkbox",name:"itemSelected","data-testid":`item-checkbox-${t.sku}`,onChange:r=>T(r,t),value:t.sku,checked:L.has(t.uid)}),index:e("div",{className:"requisition-list-view-product-list-table__index-container",children:K(n)}),item:b("div",{className:"requisition-list-view-product-list-table__item-container",children:[e(At,{className:"requisition-list-view-product-list-table__thumbnail",alt:nt(t),src:O(t)}),b("div",{className:"requisition-list-view-product-list-table__item-details",children:[e("div",{className:"requisition-list-view-product-list-table__product-name",children:X(t)}),t.stock_status==="OUT_OF_STOCK"&&e("div",{className:"requisition-list-view-product-list-table__out-of-stock",children:S.outOfStock}),t.stock_status!=="OUT_OF_STOCK"&&t.only_x_left_in_stock!==null&&t.only_x_left_in_stock<t.quantity&&e("div",{className:"requisition-list-view-product-list-table__low-stock",children:S.onlyXLeftInStock.replace("{count}",String(t.only_x_left_in_stock))}),e("span",{className:"requisition-list-view-product-list-table__product-configurable-name",children:$(t)}),e("div",{className:"requisition-list-view-product-list-table__sku",children:W(t)}),F(t)]})]}),price:e(Lt,{className:"requisition-list-view-product-list-table__price",amount:i(t),currency:d(t)}),quantity:e("span",{className:"requisition-list-view-product-list-table__quantity",children:e(It,{disabled:!!I[t.uid],children:e(St,{id:`requisition-list-item-quantity-${t.sku}`,"data-testid":`requisition-list-item-quantity-${t.sku}`,name:"quantity",type:"text",value:it[t.uid]??t.quantity,onChange:r=>J(r,t),onBlur:r=>st(r,t)})})}),subtotal:e(Lt,{className:"requisition-list-view-product-list-table__price",amount:B(t),currency:d(t)}),actions:b("div",{className:"requisition-list-view__bulk-actions",children:[e(pt,{type:"button",onClick:()=>h([t.uid]),icon:e(tt,{source:Qt}),"data-testid":"product-list-table-add-to-cart-button"}),e(pt,{type:"button",variant:"secondary",icon:e(tt,{source:wt}),onClick:()=>m([t.uid]),"data-testid":"product-list-table-delete-button"})]})})),at=e(Pt,{columns:P,rowData:ot,"data-testid":"product-list-table",mobileLayout:"stacked"});return e(Vt,{node:Bt("div",{}),className:Mt(["requisition-list-view-product-list-table-container",c]),"data-testid":"product-list-table-container",...f,children:at})},Xt=({selectedItems:c,deletingItemId:N,addingToCartItemId:L,bulkAddingToCart:g,updatingQuantityItemId:V,onSelectAll:C,onSelectNone:R,onBulkAddToCart:q,onBulkDelete:h})=>{const m=gt({statusDeleting:"RequisitionList.RequisitionListView.statusDeleting",actionSelectAll:"RequisitionList.RequisitionListView.actionSelectAll",actionSelectNone:"RequisitionList.RequisitionListView.actionSelectNone",actionAddToCart:"RequisitionList.RequisitionListView.actionAddToCart",actionDeleteSelectedItems:"RequisitionList.RequisitionListView.actionDeleteSelectedItems",statusBulkAddingToCart:"RequisitionList.RequisitionListView.statusBulkAddingToCart"}),f=N!==null||L!==null||g||V!==null,I=c.size>0;return b("div",{className:"requisition-list-view__batch-actions",children:[b("div",{className:"requisition-list-view__batch-actions-left",children:[e("button",{"data-testid":"bulk-actions-select-toggle-btn",type:"button",className:`requisition-list-view__batch-actions-select-toggle ${I?"requisition-list-view__batch-actions-select-toggle--active":""}`,onClick:I?R:C,disabled:f,"aria-label":I?m.actionSelectNone:m.actionSelectAll,children:e(tt,{source:jt})}),e("button",{type:"button",className:"requisition-list-view__batch-actions-select-label",onClick:I?R:C,disabled:f,children:m.actionSelectAll})]}),I&&b("div",{className:"requisition-list-view__batch-actions-buttons",children:[e("span",{className:"requisition-list-view__batch-actions-count-badge","aria-label":`${c.size} items selected`,children:c.size}),e(pt,{"data-testid":"bulk-actions-add-to-cart-btn",type:"button",variant:"secondary",onClick:q,disabled:f,children:g?m.statusBulkAddingToCart:m.actionAddToCart}),e("button",{"data-testid":"bulk-actions-delete-btn",type:"button",className:"requisition-list-view__batch-actions-delete-icon",onClick:h,disabled:f,"aria-label":m.actionDeleteSelectedItems,children:e(tt,{source:wt})})]})]})},me=({requisitionListUid:c,skipProductLoading:N=!1,pageSize:L=dt,routeRequisitionListGrid:g,fallbackRoute:V="/customer/account"})=>{var Q,mt,ft,ht,_t;const[C,R]=v(!1),[q,h]=v(null),[m,f]=v(null),[I,H]=v(!1),[it,z]=v(null),[S,P]=v(!1),[T,K]=v(L),[nt,O]=v(!0),[X,$]=v(!1),[F,W]=v([]),{currentRequisitionList:i,setCurrentRequisitionList:d,selectedItems:B,setSelectedItems:J,handleItemSelection:st,handleSelectAll:ot,handleSelectNone:at}=Zt(),t=gt({emptyRequisitionList:"RequisitionList.RequisitionListView.emptyRequisitionList",errorLoadingProducts:"RequisitionList.RequisitionListView.errorLoadingProducts",errorLoadPage:"RequisitionList.RequisitionListView.errorLoadPage",notFoundTitle:"RequisitionList.RequisitionListView.notFoundTitle",notFoundMessage:"RequisitionList.RequisitionListView.notFoundMessage",notFoundActionLabel:"RequisitionList.RequisitionListView.notFoundActionLabel",notEnabledTitle:"RequisitionList.RequisitionListsNotEnabled.title",notEnabledMessage:"RequisitionList.RequisitionListsNotEnabled.message",notEnabledActionLabel:"RequisitionList.RequisitionListsNotEnabled.actionLabel",show:"RequisitionList.PageSizePicker.show",deleteItemsTitle:"RequisitionList.RequisitionListView.deleteItemsTitle",deleteItemsMessage:"RequisitionList.RequisitionListView.deleteItemsMessage",confirmAction:"RequisitionList.RequisitionListView.confirmAction",cancelAction:"RequisitionList.RequisitionListView.cancelAction"}),{alert:n,setAlert:r,handleRequisitionListAlert:o}=Dt(),{isEnabled:k}=Ht();lt(()=>{const s=Z.on("requisitionList/data",l=>{(l==null?void 0:l.uid)===c&&(d(l),J(new Set))}),a=Z.on("requisitionList/alert",o);return()=>{s==null||s.off(),a==null||a.off()}},[o,c,d,J]),lt(()=>{K(L)},[L]);const u=x(async s=>{var l,y;const a=((l=s.items)==null?void 0:l.map(A=>A.sku))||[];if(a.length===0)return s;R(!0);try{const A=await kt(a);if(A){const j=new Map;return A.forEach(_=>{j.set(_.sku,_)}),{...s,items:(y=s.items)==null?void 0:y.map(_=>{const D=j.get(_.sku);return{..._,product:D||_.product,stock_status:_.stock_status||(D==null?void 0:D.stock_status)||"IN_STOCK",only_x_left_in_stock:_.only_x_left_in_stock??(D==null?void 0:D.only_x_left_in_stock)??null}})}}return console.warn("No products found"),s}catch(A){return console.warn(A instanceof Error?A.message:t.errorLoadingProducts),s}finally{R(!1)}},[t.errorLoadingProducts]);lt(()=>{if(!c){O(!1);return}if(i&&i.uid===c)return;O(!0),(async()=>{try{const a=await ct(c,1,L);if(a)if(N)d(a);else{const l=await u(a);d(l)}}catch(a){console.error("Failed to initialize requisition list from UID:",a)}finally{O(!1)}})()},[c,L,N,u,d,i]);const w=x(async s=>{s&&s.length===1?(H(!1),f(s)):(H(!0),f(null));try{const a=await yt(i.uid,s);if(a&&a.length>0){const l={action:"move",type:"error",context:"product",message:a.map(y=>y.message)};o(l),Z.emit("requisitionList/alert",l)}else{const l={action:"move",type:"success",context:"product"};o(l),Z.emit("requisitionList/alert",l)}}catch{const l={action:"move",type:"error",context:"product"};o(l),Z.emit("requisitionList/alert",l)}finally{f(null),H(!1)}},[i,o]),E=x(s=>{s&&s.length>0&&(W(s),$(!0))},[]),M=x(async()=>{F.length===1?h(F[0]):h("bulk");try{const s=await vt(i.uid,F,T,i.page_info.current_page);if(s){const a=await u(s);d(a),o({action:"delete",type:"success",context:"product"})}else o({action:"delete",type:"error",context:"product"})}catch{o({action:"delete",type:"error",context:"product"})}finally{h(null),$(!1),W([])}},[F,i,T,u,d,o]),rt=x(async(s,a)=>{var l;z(s);try{const y=(l=i.items)==null?void 0:l.find(_=>_.uid===s);if(!y){o({action:"update",type:"error",context:"product"});return}const A={item_id:y.uid,entered_options:y.entered_options,selected_options:y.selected_options,quantity:a},j=await Ct(i.uid,[A],T,i.page_info.current_page);if(j){const _=await u(j);d(_),o({action:"update",type:"success",context:"product"})}else o({action:"update",type:"error",context:"product"})}catch{o({action:"update",type:"error",context:"product"})}finally{z(null)}},[i,u,d,T,o]),U=x(async s=>{P(!0);try{const a=await ct(i.uid,s,T);if(a){const l=await u(a);d(l)}else console.warn(t.errorLoadPage)}catch(a){console.warn(a instanceof Error?a.message:t.errorLoadPage)}finally{P(!1)}},[i==null?void 0:i.uid,u,T,t,d]),Y=x(async s=>{K(s),P(!0);try{const a=await ct(i.uid,1,s);if(a){const l=await u(a);d(l)}else console.warn(t.errorLoadPage)}catch{console.warn(t.errorLoadPage)}finally{P(!1)}},[i==null?void 0:i.uid,u,t,d]),G=x(async s=>{const a=await u(s);d(a)},[d,u]);return b("div",{className:"requisition-list-view__container",children:[nt?e("div",{className:"requisition-list-view__loading",children:e(Tt,{stroke:"4",size:"large"})}):k===!1?e(qt,{title:t.notEnabledTitle,message:t.notEnabledMessage,actionLabel:t.notEnabledActionLabel,onAction:()=>{window.location.href=V}}):!i||!Rt(i==null?void 0:i.uid)?e(qt,{title:t.notFoundTitle,message:t.notFoundMessage,actionLabel:g?t.notFoundActionLabel:void 0,onAction:g?()=>{const s=g();s&&typeof s=="string"&&(window.location.href=s)}:void 0}):b(bt,{children:[e(zt,{requisitionList:i,routeRequisitionListGrid:g,onUpdate:G,onAlert:o}),n&&e("div",{className:"requisition-list__alert-wrapper",children:e(Et,{heading:n.description,type:n.type,variant:"primary",onDismiss:()=>r(null)})}),i.items_count===0?e(Ft,{textContent:`${i.name} ${t.emptyRequisitionList}`}):b(bt,{children:[e(Xt,{selectedItems:B,deletingItemId:q,addingToCartItemId:m,bulkAddingToCart:I,updatingQuantityItemId:it,onSelectAll:ot,onSelectNone:at,onBulkAddToCart:()=>w(Array.from(B)),onBulkDelete:()=>E(Array.from(B))}),e(Kt,{items:i.items,selectedItems:B,currentPage:((Q=i.page_info)==null?void 0:Q.current_page)||1,pageSize:((mt=i.page_info)==null?void 0:mt.page_size)||dt,handleItemSelection:st,handleUpdateQuantity:rt,onAddToCart:w,onDeleteItem:E}),i.page_info&&b("div",{className:"requisition-list-view__pagination",children:[e($t,{pageInfo:i.page_info,totalCount:i.items_count}),(((ft=i.page_info)==null?void 0:ft.total_pages)||0)>1&&e(xt,{totalPages:i.page_info.total_pages,currentPage:((ht=i.page_info)==null?void 0:ht.current_page)||1,onChange:U,disabled:S||C}),b("div",{className:"requisition-list-view__pagination-picker",children:[e("span",{children:t.show}),e(Wt,{currentPageSize:((_t=i.page_info)==null?void 0:_t.page_size)||dt,onPageSizeChange:Y,disabled:S||C})]})]})]})]}),X&&e(Ot,{isOpen:X,isLoading:q!==null,title:t.deleteItemsTitle,modalContent:t.deleteItemsMessage,confirmBtnCaption:t.confirmAction,closeBtnCaption:t.cancelAction,handleModalOnClose:()=>{$(!1),W([])},handleModalOnConfirm:M})]})};export{me as RequisitionListView,me as default};
3
+ import{jsxs as w,jsx as e,Fragment as bt}from"@dropins/tools/preact-jsx-runtime.js";import*as p from"@dropins/tools/preact-compat.js";import{useState as S,useEffect as lt,useCallback as M}from"@dropins/tools/preact-compat.js";import{b as kt,a as yt,d as vt,u as Ct,g as ct,i as Rt}from"../chunks/addRequisitionListItemsToCart.js";import{Button as pt,Icon as tt,Price as Lt,Field as St,Input as It,Image as At,Checkbox as Nt,Table as Pt,ProgressSpinner as Tt,InLineAlert as Et,Pagination as xt}from"@dropins/tools/components.js";import{events as O}from"@dropins/tools/event-bus.js";import{useState as et,useCallback as ut}from"@dropins/tools/preact-hooks.js";import{VComponent as Vt,classes as Mt}from"@dropins/tools/lib.js";import{D as dt}from"../chunks/RequisitionListForm.js";import{a as Dt,u as Ht,E as $t}from"../chunks/RequisitionListView.js";import{h as Ft}from"@dropins/tools/preact.js";import{useText as gt}from"@dropins/tools/i18n.js";import{R as Bt}from"../chunks/RequisitionListHeader.js";import"../chunks/state.js";import{R as zt}from"../chunks/RequisitionListModal.js";import{N as qt,P as Ot,a as Wt}from"../chunks/PaginationItemsCounter.js";import"../chunks/updateRequisitionList.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/deleteRequisitionList.js";const Qt=l=>p.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...l},p.createElement("g",{clipPath:"url(#clip0_102_196)"},p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3601 18.16H6.5601L4.8801 3H2.3501M19.6701 19.59C19.6701 20.3687 19.0388 21 18.2601 21C17.4814 21 16.8501 20.3687 16.8501 19.59C16.8501 18.8113 17.4814 18.18 18.2601 18.18C19.0388 18.18 19.6701 18.8113 19.6701 19.59ZM7.42986 19.59C7.42986 20.3687 6.79858 21 6.01986 21C5.24114 21 4.60986 20.3687 4.60986 19.59C4.60986 18.8113 5.24114 18.18 6.01986 18.18C6.79858 18.18 7.42986 18.8113 7.42986 19.59Z",stroke:"currentColor",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M5.25 6.37L20.89 8.06L20.14 14.8H6.19",stroke:"currentColor",strokeLinejoin:"round"})),p.createElement("defs",null,p.createElement("clipPath",{id:"clip0_102_196"},p.createElement("rect",{vectorEffect:"non-scaling-stroke",width:19.29,height:19.5,fill:"white",transform:"translate(2.3501 2.25)"})))),jt=l=>p.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...l},p.createElement("path",{d:"M17.3332 11.75H6.6665",strokeWidth:1,strokeLinecap:"square",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke",fill:"none",stroke:"currentColor"})),wt=l=>p.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...l},p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M1 5H23",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M17.3674 22H6.63446C5.67952 22 4.88992 21.2688 4.8379 20.3338L4 5H20L19.1621 20.3338C19.1119 21.2688 18.3223 22 17.3655 22H17.3674Z",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M9.87189 2H14.1281C14.6085 2 15 2.39766 15 2.88889V5H9V2.88889C9 2.39912 9.39006 2 9.87189 2Z",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M8.87402 8.58057L9.39348 17.682",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M14.6673 8.58057L14.146 17.682",stroke:"currentColor",strokeWidth:1,strokeMiterlimit:10}));function Zt(){const[l,P]=et(null),[k,g]=et(new Set),D=ut((y,L)=>{g(f=>{const m=new Set(f);return L?m.add(y):m.delete(y),m})},[]),I=ut(()=>{var L;const y=(L=l==null?void 0:l.items)==null?void 0:L.map(f=>f.uid);g(new Set(y))},[l]),A=ut(()=>{g(new Set)},[]);return{currentRequisitionList:l,setCurrentRequisitionList:P,selectedItems:k,setSelectedItems:g,handleItemSelection:D,handleSelectAll:I,handleSelectNone:A}}const Kt=({className:l,items:P,selectedItems:k,currentPage:g,pageSize:D,canEdit:I=!0,handleItemSelection:A,handleUpdateQuantity:y,onAddToCart:L,onDeleteItem:f,...m})=>{const[N,F]=et({}),[it,W]=et({}),h=gt({productNameHeader:"RequisitionList.RequisitionListView.productListTable.headers.productName",skuHeader:"RequisitionList.RequisitionListView.productListTable.headers.sku",priceHeader:"RequisitionList.RequisitionListView.productListTable.headers.price",quantityHeader:"RequisitionList.RequisitionListView.productListTable.headers.quantity",subtotalHeader:"RequisitionList.RequisitionListView.productListTable.headers.subtotal",actionsHeader:"RequisitionList.RequisitionListView.productListTable.headers.actions",actionAddToCart:"RequisitionList.RequisitionListView.actionAddToCart",actionDelete:"RequisitionList.RequisitionListView.actionDelete",actionSelect:"RequisitionList.RequisitionListView.actionSelect",itemQuantity:"RequisitionList.RequisitionListView.productListTable.itemQuantity",outOfStock:"RequisitionList.RequisitionListView.productListTable.outOfStock",onlyXLeftInStock:"RequisitionList.RequisitionListView.productListTable.onlyXLeftInStock"}),T=[{label:"#",key:"index"},{label:"item",key:"item"},{label:h.priceHeader,key:"price"},{label:h.quantityHeader,key:"quantity"},{label:h.subtotalHeader,key:"subtotal"}];I&&(T.unshift({label:h.actionSelect,key:"selector"}),T.push({label:h.actionsHeader,key:"actions"}));const E=(t,s)=>{const r=t.target.checked;A(s.uid,r)},X=t=>(g-1)*D+t+1,nt=t=>{var s,r;return((s=t.configured_product)==null?void 0:s.name)||((r=t.product)==null?void 0:r.name)||t.sku},Q=t=>{var s,r,a,R,c,v;return(r=(s=t.configured_product)==null?void 0:s.images)!=null&&r.length?((a=t.configured_product.images[0])==null?void 0:a.url)||"":(c=(R=t.product)==null?void 0:R.images)!=null&&c.length&&((v=t.product.images[0])==null?void 0:v.url)||""},x=t=>{var s;return((s=t.product)==null?void 0:s.name)||t.sku},j=t=>{var s;return(s=t.configured_product)==null?void 0:s.name},B=t=>t.bundle_options?t.bundle_options.map((r,a)=>w("span",{className:"requisition-list-view-product-list-table__product-configurable-name",children:[r.values[0].label," x ",r.values[0].quantity]},r.values[0].label||a)):void 0,Z=t=>{var s;return((s=t.configured_product)==null?void 0:s.sku)||t.sku},n=t=>{var s,r,a,R,c,v,V,H;return Array.isArray(t.bundle_options)&&t.bundle_options.length>0?t.bundle_options.reduce((rt,Y)=>{var G,U,K;return rt+(((U=(G=Y.values[0])==null?void 0:G.priceV2)==null?void 0:U.value)||0)*(((K=Y.values[0])==null?void 0:K.quantity)||0)},0):((R=(a=(r=(s=t.configured_product)==null?void 0:s.price)==null?void 0:r.final)==null?void 0:a.amount)==null?void 0:R.value)||((H=(V=(v=(c=t.product)==null?void 0:c.price)==null?void 0:v.final)==null?void 0:V.amount)==null?void 0:H.value)||0},d=t=>{var s,r,a,R,c,v,V,H;return((R=(a=(r=(s=t.configured_product)==null?void 0:s.price)==null?void 0:r.final)==null?void 0:a.amount)==null?void 0:R.currency)||((H=(V=(v=(c=t.product)==null?void 0:c.price)==null?void 0:v.final)==null?void 0:V.amount)==null?void 0:H.currency)},z=t=>n(t)*t.quantity,J=(t,s)=>{const r=+t.target.value;r>0&&!Number.isNaN(t.target.value)&&W(a=>({...a,[s.uid]:r}))},st=async(t,s)=>{let r=+t.target.value;if(!(r>0&&r!==s.quantity)){W(a=>({...a,[s.uid]:s.quantity}));return}F(a=>({...a,[s.uid]:!0}));try{await y(s.uid,r)}finally{F(a=>({...a,[s.uid]:!1}))}},ot=P.map((t,s)=>({selector:e("label",{id:`item-selector-${t.sku}-label`,children:e(Nt,{className:"requisition-list-view-product-list-table__checkbox",name:`item-selector-${t.sku}`,"aria-label":`${h.actionSelect} ${x(t)}`,"data-testid":`item-checkbox-${t.sku}`,onChange:r=>E(r,t),value:t.sku,checked:k.has(t.uid)})}),index:e("div",{className:"requisition-list-view-product-list-table__index-container",children:X(s)}),item:w("div",{className:"requisition-list-view-product-list-table__item-container",children:[e(At,{className:"requisition-list-view-product-list-table__thumbnail",alt:nt(t),src:Q(t)}),w("div",{className:"requisition-list-view-product-list-table__item-details",children:[e("div",{className:"requisition-list-view-product-list-table__product-name",children:x(t)}),t.stock_status==="OUT_OF_STOCK"&&e("div",{className:"requisition-list-view-product-list-table__out-of-stock",children:h.outOfStock}),t.stock_status!=="OUT_OF_STOCK"&&t.only_x_left_in_stock!==null&&t.only_x_left_in_stock<t.quantity&&e("div",{className:"requisition-list-view-product-list-table__low-stock",children:h.onlyXLeftInStock.replace("{count}",String(t.only_x_left_in_stock))}),e("span",{className:"requisition-list-view-product-list-table__product-configurable-name",children:j(t)}),e("div",{className:"requisition-list-view-product-list-table__sku",children:Z(t)}),B(t)]})]}),price:e(Lt,{className:"requisition-list-view-product-list-table__price",amount:n(t),currency:d(t)}),quantity:e("span",{className:"requisition-list-view-product-list-table__quantity",children:e(St,{disabled:!!N[t.uid],children:e(It,{id:`requisition-list-item-quantity-${t.sku}`,"data-testid":`requisition-list-item-quantity-${t.sku}`,name:"quantity",type:"text","aria-label":`${h.itemQuantity} - ${x(t)}`,value:it[t.uid]??t.quantity,onChange:r=>J(r,t),onBlur:r=>st(r,t)})})}),subtotal:e(Lt,{className:"requisition-list-view-product-list-table__price",amount:z(t),currency:d(t)}),actions:w("div",{className:"requisition-list-view__bulk-actions",children:[e(pt,{type:"button",onClick:()=>L([t.uid]),icon:e(tt,{source:Qt}),"aria-label":`${h.actionAddToCart} - ${x(t)}`,"data-testid":"product-list-table-add-to-cart-button"}),e(pt,{type:"button",variant:"secondary",icon:e(tt,{source:wt}),onClick:()=>f([t.uid]),"aria-label":`${h.actionDelete} - ${x(t)}`,"data-testid":"product-list-table-delete-button"})]})})),at=e(Pt,{columns:T,rowData:ot,"data-testid":"product-list-table",mobileLayout:"stacked"});return e(Vt,{node:Ft("div",{}),className:Mt(["requisition-list-view-product-list-table-container",l]),"data-testid":"product-list-table-container",...m,children:at})},Xt=({selectedItems:l,deletingItemId:P,addingToCartItemId:k,bulkAddingToCart:g,updatingQuantityItemId:D,onSelectAll:I,onSelectNone:A,onBulkAddToCart:y,onBulkDelete:L})=>{const f=gt({statusDeleting:"RequisitionList.RequisitionListView.statusDeleting",actionSelectAll:"RequisitionList.RequisitionListView.actionSelectAll",actionSelectNone:"RequisitionList.RequisitionListView.actionSelectNone",actionAddToCart:"RequisitionList.RequisitionListView.actionAddToCart",actionDeleteSelectedItems:"RequisitionList.RequisitionListView.actionDeleteSelectedItems",statusBulkAddingToCart:"RequisitionList.RequisitionListView.statusBulkAddingToCart"}),m=P!==null||k!==null||g||D!==null,N=l.size>0;return w("div",{className:"requisition-list-view__batch-actions",children:[w("div",{className:"requisition-list-view__batch-actions-left",children:[e("button",{"data-testid":"bulk-actions-select-toggle-btn",type:"button",className:`requisition-list-view__batch-actions-select-toggle ${N?"requisition-list-view__batch-actions-select-toggle--active":""}`,onClick:N?A:I,disabled:m,"aria-label":N?f.actionSelectNone:f.actionSelectAll,children:e(tt,{source:jt})}),e("button",{type:"button",className:"requisition-list-view__batch-actions-select-label",onClick:N?A:I,disabled:m,children:f.actionSelectAll})]}),N&&w("div",{className:"requisition-list-view__batch-actions-buttons",children:[e("span",{className:"requisition-list-view__batch-actions-count-badge","aria-label":`${l.size} items selected`,children:l.size}),e(pt,{"data-testid":"bulk-actions-add-to-cart-btn",type:"button",variant:"secondary",onClick:y,disabled:m,children:g?f.statusBulkAddingToCart:f.actionAddToCart}),e("button",{"data-testid":"bulk-actions-delete-btn",type:"button",className:"requisition-list-view__batch-actions-delete-icon",onClick:L,disabled:m,"aria-label":f.actionDeleteSelectedItems,children:e(tt,{source:wt})})]})]})},fe=({requisitionListUid:l,skipProductLoading:P=!1,pageSize:k=dt,routeRequisitionListGrid:g,fallbackRoute:D="/customer/account"})=>{var K,ft,mt,ht,_t;const[I,A]=S(!1),[y,L]=S(null),[f,m]=S(null),[N,F]=S(!1),[it,W]=S(null),[h,T]=S(!1),[E,X]=S(k),[nt,Q]=S(!0),[x,j]=S(!1),[B,Z]=S([]),{currentRequisitionList:n,setCurrentRequisitionList:d,selectedItems:z,setSelectedItems:J,handleItemSelection:st,handleSelectAll:ot,handleSelectNone:at}=Zt(),t=gt({emptyRequisitionList:"RequisitionList.RequisitionListView.emptyRequisitionList",errorLoadingProducts:"RequisitionList.RequisitionListView.errorLoadingProducts",errorLoadPage:"RequisitionList.RequisitionListView.errorLoadPage",notFoundTitle:"RequisitionList.RequisitionListView.notFoundTitle",notFoundMessage:"RequisitionList.RequisitionListView.notFoundMessage",notFoundActionLabel:"RequisitionList.RequisitionListView.notFoundActionLabel",notEnabledTitle:"RequisitionList.RequisitionListsNotEnabled.title",notEnabledMessage:"RequisitionList.RequisitionListsNotEnabled.message",partialMoveSuccess:"RequisitionList.RequisitionListAlert.partialMoveSuccess",notEnabledActionLabel:"RequisitionList.RequisitionListsNotEnabled.actionLabel",show:"RequisitionList.PageSizePicker.show",deleteItemsTitle:"RequisitionList.RequisitionListView.deleteItemsTitle",deleteItemsMessage:"RequisitionList.RequisitionListView.deleteItemsMessage",confirmAction:"RequisitionList.RequisitionListView.confirmAction",cancelAction:"RequisitionList.RequisitionListView.cancelAction"}),{alert:s,setAlert:r,handleRequisitionListAlert:a}=Dt(),{isEnabled:R}=Ht();lt(()=>{const i=O.on("requisitionList/data",u=>{(u==null?void 0:u.uid)===l&&(d(u),J(new Set))}),o=O.on("requisitionList/alert",a);return()=>{i==null||i.off(),o==null||o.off()}},[a,l,d,J]),lt(()=>{X(k)},[k]);const c=M(async i=>{var u,C;const o=((u=i.items)==null?void 0:u.map(q=>q.sku))||[];if(o.length===0)return i;A(!0);try{const q=await kt(o);if(q){const _=new Map;return q.forEach(b=>{_.set(b.sku,b)}),{...i,items:(C=i.items)==null?void 0:C.map(b=>{const $=_.get(b.sku);return{...b,product:$||b.product,stock_status:b.stock_status||($==null?void 0:$.stock_status)||"IN_STOCK",only_x_left_in_stock:b.only_x_left_in_stock??($==null?void 0:$.only_x_left_in_stock)??null}})}}return console.warn("No products found"),i}catch(q){return console.warn(q instanceof Error?q.message:t.errorLoadingProducts),i}finally{A(!1)}},[t.errorLoadingProducts]);lt(()=>{if(!l){Q(!1);return}if(n&&n.uid===l)return;Q(!0),(async()=>{try{const o=await ct(l,1,k);if(o)if(P)d(o);else{const u=await c(o);d(u)}}catch(o){console.error("Failed to initialize requisition list from UID:",o)}finally{Q(!1)}})()},[l,k,P,c,d,n]);const v=M(async i=>{i&&i.length===1?(F(!1),m(i)):(F(!0),m(null));try{const o=await yt(n.uid,i),u=(i==null?void 0:i.length)||0,C=(o==null?void 0:o.length)||0,q=u-C;if(o&&o.length>0&&q>0){const _={action:"move",type:"error",context:"product",message:[t.partialMoveSuccess.replace("{successCount}",String(q)).replace("{failedCount}",String(C))]};a(_),O.emit("requisitionList/alert",_)}else if(o&&o.length>0){const _={action:"move",type:"error",context:"product",message:o.map(b=>b.message)};a(_),O.emit("requisitionList/alert",_)}else{const _={action:"move",type:"success",context:"product"};a(_),O.emit("requisitionList/alert",_)}}catch{const u={action:"move",type:"error",context:"product"};a(u),O.emit("requisitionList/alert",u)}finally{m(null),F(!1)}},[n,a,t]),V=M(i=>{i&&i.length>0&&(Z(i),j(!0))},[]),H=M(async()=>{B.length===1?L(B[0]):L("bulk");try{const i=await vt(n.uid,B,E,n.page_info.current_page);if(i){const o=await c(i);d(o),a({action:"delete",type:"success",context:"product"})}else a({action:"delete",type:"error",context:"product"})}catch{a({action:"delete",type:"error",context:"product"})}finally{L(null),j(!1),Z([])}},[B,n,E,c,d,a]),rt=M(async(i,o)=>{var u;W(i);try{const C=(u=n.items)==null?void 0:u.find(b=>b.uid===i);if(!C){a({action:"update",type:"error",context:"product"});return}const q={item_id:C.uid,entered_options:C.entered_options,selected_options:C.selected_options,quantity:o},_=await Ct(n.uid,[q],E,n.page_info.current_page);if(_){const b=await c(_);d(b),a({action:"update",type:"success",context:"product"})}else a({action:"update",type:"error",context:"product"})}catch{a({action:"update",type:"error",context:"product"})}finally{W(null)}},[n,c,d,E,a]),Y=M(async i=>{T(!0);try{const o=await ct(n.uid,i,E);if(o){const u=await c(o);d(u)}else console.warn(t.errorLoadPage)}catch(o){console.warn(o instanceof Error?o.message:t.errorLoadPage)}finally{T(!1)}},[n==null?void 0:n.uid,c,E,t,d]),G=M(async i=>{X(i),T(!0);try{const o=await ct(n.uid,1,i);if(o){const u=await c(o);d(u)}else console.warn(t.errorLoadPage)}catch{console.warn(t.errorLoadPage)}finally{T(!1)}},[n==null?void 0:n.uid,c,t,d]),U=M(async i=>{const o=await c(i);d(o)},[d,c]);return w("div",{className:"requisition-list-view__container",children:[nt?e("div",{className:"requisition-list-view__loading",children:e(Tt,{stroke:"4",size:"large"})}):R===!1?e(qt,{title:t.notEnabledTitle,message:t.notEnabledMessage,actionLabel:t.notEnabledActionLabel,onAction:()=>{window.location.href=D}}):!n||!Rt(n==null?void 0:n.uid)?e(qt,{title:t.notFoundTitle,message:t.notFoundMessage,actionLabel:g?t.notFoundActionLabel:void 0,onAction:g?()=>{const i=g();i&&typeof i=="string"&&(window.location.href=i)}:void 0}):w(bt,{children:[e(Bt,{requisitionList:n,routeRequisitionListGrid:g,onUpdate:U,onAlert:a}),s&&e("div",{className:"requisition-list__alert-wrapper",children:e(Et,{heading:s.description,type:s.type,variant:"primary",onDismiss:()=>r(null)})}),n.items_count===0?e($t,{textContent:`${n.name} ${t.emptyRequisitionList}`}):w(bt,{children:[e(Xt,{selectedItems:z,deletingItemId:y,addingToCartItemId:f,bulkAddingToCart:N,updatingQuantityItemId:it,onSelectAll:ot,onSelectNone:at,onBulkAddToCart:()=>v(Array.from(z)),onBulkDelete:()=>V(Array.from(z))}),e(Kt,{items:n.items,selectedItems:z,currentPage:((K=n.page_info)==null?void 0:K.current_page)||1,pageSize:((ft=n.page_info)==null?void 0:ft.page_size)||dt,handleItemSelection:st,handleUpdateQuantity:rt,onAddToCart:v,onDeleteItem:V}),n.page_info&&w("div",{className:"requisition-list-view__pagination",children:[e(Ot,{pageInfo:n.page_info,totalCount:n.items_count}),(((mt=n.page_info)==null?void 0:mt.total_pages)||0)>1&&e(xt,{totalPages:n.page_info.total_pages,currentPage:((ht=n.page_info)==null?void 0:ht.current_page)||1,onChange:Y,disabled:h||I}),w("div",{className:"requisition-list-view__pagination-picker",children:[e("span",{children:t.show}),e(Wt,{currentPageSize:((_t=n.page_info)==null?void 0:_t.page_size)||dt,onPageSizeChange:G,disabled:h||I})]})]})]})]}),x&&e(zt,{isOpen:x,isLoading:y!==null,title:t.deleteItemsTitle,modalContent:t.deleteItemsMessage,confirmBtnCaption:t.confirmAction,closeBtnCaption:t.cancelAction,handleModalOnClose:()=>{j(!1),Z([])},handleModalOnConfirm:H})]})};export{fe as RequisitionListView,fe as default};
4
4
  //# sourceMappingURL=RequisitionListView.js.map