@dropins/storefront-requisition-list 0.2.0-beta → 0.4.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/api/addRequisitionListItemsToCart/index.d.ts +1 -1
  2. package/api/deleteRequisitionListItems/index.d.ts +1 -1
  3. package/api/fragments/ProductFragment.graphql.d.ts +18 -0
  4. package/api/fragments/RequisitionListItemsFragment.graphql.d.ts +1 -1
  5. package/api/fragments.d.ts +1 -0
  6. package/api/getProductData/getProductData.d.ts +4 -0
  7. package/api/getProductData/graphql/getProductData.d.ts +18 -0
  8. package/api/getProductData/index.d.ts +18 -0
  9. package/api/getRequisitionList/index.d.ts +1 -1
  10. package/api/index.d.ts +1 -0
  11. package/api/updateRequisitionListItems/index.d.ts +1 -1
  12. package/api/updateRequisitionListItems/updateRequisitionListItems.d.ts +11 -2
  13. package/api.js +2 -2
  14. package/api.js.map +1 -1
  15. package/chunks/RequisitionListForm.js +3 -3
  16. package/chunks/RequisitionListForm.js.map +1 -1
  17. package/chunks/RequisitionListItemsFragment.graphql.js +95 -0
  18. package/chunks/RequisitionListItemsFragment.graphql.js.map +1 -0
  19. package/chunks/deleteRequisitionListItems.js +223 -0
  20. package/chunks/deleteRequisitionListItems.js.map +1 -0
  21. package/chunks/transform-requisition-list.js +2 -2
  22. package/chunks/transform-requisition-list.js.map +1 -1
  23. package/components/EmptyList/EmptyList.d.ts +8 -0
  24. package/components/{RequisitionListItem → EmptyList}/index.d.ts +1 -1
  25. package/components/RequisitionListGridWrapper/RequisitionListGridWrapper.d.ts +8 -2
  26. package/components/RequisitionListView/RequisitionListView.d.ts +29 -0
  27. package/components/RequisitionListView/index.d.ts +3 -0
  28. package/components/index.d.ts +2 -1
  29. package/containers/RequisitionListGrid/RequisitionListGrid.d.ts +3 -2
  30. package/containers/RequisitionListGrid.js +1 -1
  31. package/containers/RequisitionListGrid.js.map +1 -1
  32. package/containers/RequisitionListNames.js +2 -90
  33. package/containers/RequisitionListNames.js.map +1 -1
  34. package/containers/RequisitionListView/RequisitionListView.d.ts +20 -0
  35. package/containers/RequisitionListView/index.d.ts +19 -0
  36. package/containers/RequisitionListView.d.ts +3 -0
  37. package/containers/RequisitionListView.js +4 -0
  38. package/containers/RequisitionListView.js.map +1 -0
  39. package/containers/index.d.ts +1 -0
  40. package/data/models/item.d.ts +16 -5
  41. package/data/models/requisitionList.d.ts +6 -0
  42. package/data/transforms/__fixtures__/requisitionListViewData.d.ts +5 -0
  43. package/data/transforms/index.d.ts +1 -0
  44. package/data/transforms/transform-product.d.ts +118 -0
  45. package/data/transforms/transform-requisition-list.d.ts +3 -0
  46. package/hooks/index.d.ts +19 -0
  47. package/hooks/useRequisitionListGrid.d.ts +21 -0
  48. package/i18n/en_US.json.d.ts +21 -1
  49. package/package.json +1 -1
  50. package/render.js +4 -3
  51. package/render.js.map +1 -1
  52. package/components/RequisitionListItem/RequisitionListItem.d.ts +0 -16
  53. package/data/transforms/__fixtures__/requisitionListItemData.d.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"RequisitionListGrid.js","sources":["/@dropins/storefront-requisition-list/src/components/RequisitionListItem/RequisitionListItem.tsx","/@dropins/storefront-requisition-list/src/components/RequisitionListGridWrapper/RequisitionListGridWrapper.tsx","../../node_modules/@adobe-commerce/elsie/src/icons/Add.svg","/@dropins/storefront-requisition-list/src/components/RequisitionListActions/RequisitionListActions.tsx","/@dropins/storefront-requisition-list/src/components/RequisitionListModal/RequisitionListModal.tsx","/@dropins/storefront-requisition-list/src/containers/RequisitionListGrid/RequisitionListGrid.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { HTMLAttributes } from 'preact/compat';\nimport { FunctionComponent } from 'preact';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { RequisitionList as RequisitionListModel } from '@/requisitionList/data/models/requisitionList';\nimport { ModalProps } from '@/requisitionList/components/RequisitionListGridWrapper/RequisitionListGridWrapper';\nimport { Button } from '@adobe-commerce/elsie/components';\nimport '@/requisitionList/components/RequisitionListItem/RequisitionListItem.css';\nimport { useText } from '@adobe-commerce/elsie/i18n';\n\nexport interface RequisitionListProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n requisitionList: RequisitionListModel;\n onRemoveBtnClick: (\n reqList: RequisitionListModel,\n modalProps: ModalProps\n ) => void;\n onEdit?: (\n uid: string,\n defaults: { name: string; description?: string }\n ) => void;\n}\n\nexport const RequisitionListItem: FunctionComponent<RequisitionListProps> = ({\n className,\n requisitionList,\n onEdit,\n onRemoveBtnClick,\n ...props\n}) => {\n const translations = useText({\n actionRemove: `RequisitionList.RequisitionListItem.actionRemove`,\n actionRename: `RequisitionList.RequisitionListItem.actionRename`,\n });\n\n const handleEdit = (): void => {\n if (onEdit) {\n onEdit(requisitionList.uid, {\n name: requisitionList.name,\n description: requisitionList.description || '',\n });\n }\n };\n return (\n <div\n {...props}\n data-testid=\"requisition-list-item\"\n className={classes(['requisition-list-item__row', className])}\n >\n <div className={classes(['requisition-list-item__cell', className])}>\n <strong className=\"requisition-list-item__name\">\n {requisitionList.name}\n </strong>\n <div className=\"requisition-list-item__description\">\n {requisitionList.description}\n </div>\n </div>\n <div\n className={classes([\n 'requisition-list-item__cell',\n 'requisition-list-item__items_count',\n className,\n ])}\n >\n {requisitionList.items_count}\n </div>\n <div\n className={classes([\n 'requisition-list-item__cell',\n 'requisition-list-item__updated_at',\n className,\n ])}\n >\n {requisitionList.updated_at}\n </div>\n <div\n className={classes([\n 'requisition-list-item__cell',\n 'requisition-list-item__actions',\n className,\n ])}\n >\n <Button\n type={'button'}\n variant=\"tertiary\"\n onClick={handleEdit}\n data-testid=\"rename-button\"\n >\n {translations.actionRename}\n </Button>\n <Button\n variant=\"tertiary\"\n type={'button'}\n data-testid=\"remove-button\"\n onClick={() => onRemoveBtnClick(requisitionList, { isOpen: true })}\n >\n {translations.actionRemove}\n </Button>\n </div>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { HTMLAttributes, useCallback, useState } from 'preact/compat';\nimport { FunctionComponent, VNode } from 'preact';\nimport { VComponent, classes } from '@adobe-commerce/elsie/lib';\nimport { RequisitionList as RequisitionListModel } from '@/requisitionList/data/models/requisitionList';\nimport { RequisitionLists as RequisitionListsModel } from '@/requisitionList/data/models/requisitionLists';\nimport {\n RequisitionListItem,\n RequisitionListActions,\n RequisitionListModal,\n RequisitionListModalProps,\n} from '@/requisitionList/components';\nimport { RequisitionListForm } from '@/requisitionList/containers';\nimport { getRequisitionLists } from '@/requisitionList/api/getRequisitionLists';\nimport { Pagination, Card } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport '@/requisitionList/components/RequisitionListGridWrapper/RequisitionListGridWrapper.css';\nimport { deleteRequisitionList } from '@/requisitionList/api/deleteRequisitionList/deleteRequisitionList';\n\nexport interface RequisitionListGridWrapperProps\n extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n requisitionLists?: RequisitionListsModel;\n isLoading?: boolean;\n addReqList?: boolean;\n header?: VNode;\n}\n\nexport const RequisitionListGridWrapper: FunctionComponent<\n RequisitionListGridWrapperProps\n> = ({ className, requisitionLists, header, addReqList = false, ...props }) => {\n const translations = useText({\n name: `RequisitionList.RequisitionListWrapper.name`,\n itemsCount: `RequisitionList.RequisitionListWrapper.itemsCount`,\n lastUpdated: `RequisitionList.RequisitionListWrapper.lastUpdated`,\n actions: `RequisitionList.RequisitionListWrapper.actions`,\n loginMsg: `RequisitionList.RequisitionListWrapper.loginMsg`,\n confirmRemove: `RequisitionList.RequisitionListWrapper.confirmRemove`,\n confirmRemoveContent: `RequisitionList.RequisitionListWrapper.confirmRemoveContent`,\n cancelAction: `RequisitionList.RequisitionListWrapper.cancelAction`,\n confirmAction: `RequisitionList.RequisitionListWrapper.confirmAction`,\n });\n\n const [reqLists, setReqLists] = useState<RequisitionListsModel | undefined>(\n requisitionLists\n );\n const [modalProps, setModalProps] = useState<RequisitionListModalProps>({\n isOpen: false,\n isLoading: false,\n });\n const [reqList, setReqList] = useState<RequisitionListModel | null>();\n\n const onRemoveBtnClick = (\n requisitionList: RequisitionListModel,\n modalProps: RequisitionListModalProps\n ) => {\n setReqList(requisitionList);\n setModalProps({ ...modalProps, isOpen: true });\n };\n\n const handleModalOnClose = useCallback(() => {\n setModalProps({ ...modalProps, isOpen: false, isLoading: false });\n setReqList(null);\n }, [modalProps, setReqList, setModalProps]);\n\n const performRemoveAction = useCallback(async () => {\n setModalProps({ ...modalProps, isLoading: true });\n const result = await deleteRequisitionList(reqList?.uid);\n setReqLists({\n items: result.items,\n page_info: result.page_info,\n });\n handleModalOnClose();\n }, [reqList, setReqLists, modalProps, handleModalOnClose]);\n\n const [editingId, setEditingId] = useState<string | null>(null);\n\n const [isAdding, setIsAdding] = useState(addReqList);\n\n const handlePageChange = async (\n page = reqLists?.page_info?.current_page ?? 1\n ) => {\n setReqLists(await getRequisitionLists(page));\n };\n\n return (\n <div\n {...props}\n className={classes(['requisition-list-grid-wrapper', className])}\n data-testid=\"requisition-list-grid-wrapper\"\n >\n {/* Requisition List Header */}\n {header && (\n <div\n className={classes([\n 'requisition-list-grid-wrapper__header',\n className,\n ])}\n data-testid=\"requisition-list-grid-wrapper-header\"\n >\n <VComponent node={header} />\n </div>\n )}\n\n {/* Requisition List Remove Modal */}\n {modalProps.isOpen && (\n <RequisitionListModal\n isOpen={modalProps.isOpen}\n isLoading={modalProps.isLoading}\n title={translations.confirmRemove}\n modalContent={translations.confirmRemoveContent}\n confirmBtnCaption={translations.confirmAction}\n closeBtnCaption={translations.cancelAction}\n handleModalOnClose={handleModalOnClose}\n handleModalOnConfirm={performRemoveAction}\n />\n )}\n\n {/* Requisition Lists Form */}\n <div\n className={classes([\n 'requisition-list-grid-wrapper__add-new',\n className,\n ])}\n >\n {isAdding ? (\n <Card variant=\"secondary\">\n <RequisitionListForm\n mode=\"create\"\n onSuccess={async () => {\n await handlePageChange();\n setIsAdding(false);\n }}\n onCancel={() => setIsAdding(false)}\n />\n </Card>\n ) : (\n <RequisitionListActions onAddNew={() => setIsAdding(true)} />\n )}\n </div>\n\n {/* Requisition Lists Table */}\n <div\n className={classes([\n 'dropin-card dropin-card--secondary requisition-list-grid-wrapper__content',\n className,\n ])}\n >\n <div\n className={classes([\n 'requisition-list-grid-wrapper__list-header',\n className,\n ])}\n >\n <h5>{translations.name}</h5>\n <h5>{translations.itemsCount}</h5>\n <h5>{translations.lastUpdated}</h5>\n <h5>{translations.actions}</h5>\n </div>\n {reqLists?.items?.map((rl: RequisitionListModel) =>\n editingId === rl.uid ? (\n <Card\n key={rl.uid}\n variant=\"secondary\"\n className=\"requisition-list-grid-wrapper__form-row\"\n >\n <RequisitionListForm\n mode=\"edit\"\n requisitionListUid={rl.uid}\n defaultValues={{ name: rl.name, description: rl.description }}\n onSuccess={async () => {\n await handlePageChange();\n setEditingId(null);\n }}\n onCancel={() => setEditingId(null)}\n />\n </Card>\n ) : (\n <RequisitionListItem\n key={rl.uid}\n requisitionList={rl}\n onEdit={(uid) => setEditingId(uid)}\n onRemoveBtnClick={onRemoveBtnClick}\n />\n )\n )}\n <div\n className={classes([\n 'requisition-list-grid-wrapper__pagination',\n className,\n ])}\n >\n <Pagination\n totalPages={reqLists?.page_info?.total_pages}\n currentPage={reqLists?.page_info?.current_page}\n onChange={handlePageChange}\n />\n </div>\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nconst SvgAdd = (props) => /* @__PURE__ */ React.createElement(\"svg\", { id: \"Icon_Add_Base\", \"data-name\": \"Icon \\\\u2013 Add \\\\u2013 Base\", xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"Large\" }, /* @__PURE__ */ React.createElement(\"rect\", { id: \"Placement_area\", \"data-name\": \"Placement area\", width: 24, height: 24, fill: \"#fff\", opacity: 0 }), /* @__PURE__ */ React.createElement(\"g\", { id: \"Add_icon\", \"data-name\": \"Add icon\", transform: \"translate(9.734 9.737)\" }, /* @__PURE__ */ React.createElement(\"line\", { vectorEffect: \"non-scaling-stroke\", id: \"Line_579\", \"data-name\": \"Line 579\", y2: 12.7, transform: \"translate(2.216 -4.087)\", fill: \"none\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"line\", { vectorEffect: \"non-scaling-stroke\", id: \"Line_580\", \"data-name\": \"Line 580\", x2: 12.7, transform: \"translate(-4.079 2.263)\", fill: \"none\", stroke: \"currentColor\" }))));\nexport default SvgAdd;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FunctionComponent } from 'preact';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { Add } from '@adobe-commerce/elsie/icons';\nimport { Icon } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport '@/requisitionList/components/RequisitionListActions/RequisitionListActions.css';\n\nexport interface RequisitionListActionsProps {\n className?: string;\n selectable?: boolean;\n onAddNew?: () => void;\n}\n\nexport const RequisitionListActions: FunctionComponent<\n RequisitionListActionsProps\n> = ({ selectable, className, onAddNew }) => {\n const translations = useText({\n addNewReqListBtn: `RequisitionList.AddNewReqList.addNewReqListBtn`,\n });\n\n return (\n <button\n type=\"button\"\n aria-label={translations.addNewReqListBtn}\n role=\"button\"\n className={classes([\n 'requisition-list-actions',\n ['requisition-list-actions--selectable', selectable],\n className,\n ])}\n data-testid=\"requisition-list-actions-button\"\n onClick={onAddNew}\n >\n <span\n className=\"requisition-list-actions__title\"\n data-testid=\"requisition-list-actions-button-text\"\n >\n {translations.addNewReqListBtn}\n </span>\n <Icon source={Add} size=\"32\" />\n </button>\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 { FunctionComponent, VNode } from 'preact';\nimport {\n Modal,\n Button,\n ProgressSpinner,\n} from '@adobe-commerce/elsie/components';\nimport '@/requisitionList/components/RequisitionListModal/RequisitionListModal.css';\n\nexport interface RequisitionListModalProps {\n isOpen: boolean;\n isLoading: boolean;\n title: VNode | string;\n modalContent: VNode | string;\n closeBtnCaption?: string;\n confirmBtnCaption?: string;\n handleModalOnClose?: () => void;\n handleModalOnConfirm?: () => void;\n}\n\nexport const RequisitionListModal: FunctionComponent<\n RequisitionListModalProps\n> = ({\n isOpen,\n isLoading,\n title,\n modalContent,\n closeBtnCaption,\n confirmBtnCaption,\n handleModalOnClose,\n handleModalOnConfirm,\n}) => {\n if (!isOpen) return null;\n\n return (\n <Modal\n className=\"requisition-list-modal--overlay\"\n data-testid=\"requisition-list-modal\"\n size={'medium'}\n centered={false}\n title={title}\n onClose={handleModalOnClose}\n backgroundDim={true}\n clickToDismiss={true}\n escapeToDismiss={true}\n >\n <div className=\"requisition-list-modal\">\n {isLoading ? (\n <div\n className=\"requisition-list-modal__spinner\"\n data-testid=\"progress-spinner\"\n >\n <ProgressSpinner stroke={'4'} size={'large'} />\n </div>\n ) : null}\n <p>{modalContent}</p>\n <div className=\"requisition-list-modal__buttons\">\n {handleModalOnClose && (\n <Button\n data-testid=\"rl-modal-close-button\"\n type={'button'}\n onClick={handleModalOnClose}\n variant=\"secondary\"\n disabled={isLoading}\n >\n {closeBtnCaption}\n </Button>\n )}\n {handleModalOnConfirm && (\n <Button\n data-testid=\"rl-modal-confirm-button\"\n type={'button'}\n onClick={handleModalOnConfirm}\n disabled={isLoading}\n >\n {confirmBtnCaption}\n </Button>\n )}\n </div>\n </div>\n </Modal>\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 {\n HTMLAttributes,\n useEffect,\n useState,\n useCallback,\n} from 'preact/compat';\nimport { Header } from '@adobe-commerce/elsie/components';\nimport { Container, Slot, SlotProps } from '@adobe-commerce/elsie/lib';\nimport { getRequisitionLists } from '@/requisitionList/api/getRequisitionLists';\nimport { RequisitionList as RequisitionListModel } from '@/requisitionList/data/models/requisitionList';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { RequisitionListGridWrapper } from '@/requisitionList/components';\n\nexport interface RequisitionListGridProps\n extends HTMLAttributes<HTMLDivElement> {\n requisitionLists?: RequisitionListModel[] | null;\n slots?: {\n Header?: SlotProps;\n };\n}\n\nexport const RequisitionListGrid: Container<RequisitionListGridProps> = ({\n requisitionLists,\n slots,\n}: RequisitionListGridProps) => {\n const [reqLists, setReqLists] = useState<RequisitionListModel[] | null>(\n requisitionLists\n );\n const [isLoading, setIsLoading] = useState(false);\n\n const translations = useText({\n containerTitle: `RequisitionList.containerTitle`,\n });\n\n useEffect(() => {\n if (reqLists !== null) return;\n const fetchRequisitionLists = async () => {\n setIsLoading(true);\n const result = await getRequisitionLists();\n setReqLists(result);\n setIsLoading(false);\n };\n fetchRequisitionLists();\n }, [reqLists]);\n\n const getHeader = useCallback(() => {\n if (slots?.Header) {\n return (\n <Slot\n name=\"Header\"\n aria-label={translations.containerTitle}\n title={translations.containerTitle}\n slot={slots.Header}\n />\n );\n }\n return (\n <Header\n aria-label={translations.containerTitle}\n role=\"region\"\n title={translations.containerTitle}\n />\n );\n }, [slots, translations.containerTitle]);\n\n return (\n <RequisitionListGridWrapper\n header={getHeader()}\n requisitionLists={reqLists}\n isLoading={isLoading}\n />\n );\n};\n"],"names":["RequisitionListItem","className","requisitionList","onEdit","onRemoveBtnClick","props","translations","useText","handleEdit","jsxs","classes","jsx","Button","RequisitionListGridWrapper","requisitionLists","header","addReqList","reqLists","setReqLists","useState","modalProps","setModalProps","reqList","setReqList","handleModalOnClose","useCallback","performRemoveAction","result","deleteRequisitionList","editingId","setEditingId","isAdding","setIsAdding","handlePageChange","page","_a","getRequisitionLists","VComponent","RequisitionListModal","Card","RequisitionListForm","RequisitionListActions","_b","rl","uid","Pagination","_c","_d","SvgAdd","React","selectable","onAddNew","Icon","Add","isOpen","isLoading","title","modalContent","closeBtnCaption","confirmBtnCaption","handleModalOnConfirm","Modal","ProgressSpinner","RequisitionListGrid","slots","setIsLoading","useEffect","getHeader","Slot","Header"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"RequisitionListGrid.js","sources":["/@dropins/storefront-requisition-list/src/components/RequisitionListGridWrapper/RequisitionListGridWrapper.tsx","../../node_modules/@adobe-commerce/elsie/src/icons/Add.svg","../../node_modules/@adobe-commerce/elsie/src/icons/EmptyBox.svg","/@dropins/storefront-requisition-list/src/components/RequisitionListActions/RequisitionListActions.tsx","/@dropins/storefront-requisition-list/src/components/RequisitionListModal/RequisitionListModal.tsx","/@dropins/storefront-requisition-list/src/components/EmptyList/EmptyList.tsx","/@dropins/storefront-requisition-list/src/hooks/useRequisitionListGrid.tsx","/@dropins/storefront-requisition-list/src/containers/RequisitionListGrid/RequisitionListGrid.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { HTMLAttributes, useState } from 'preact/compat';\nimport { FunctionComponent, VNode } from 'preact';\nimport { VComponent, classes } from '@adobe-commerce/elsie/lib';\nimport {\n RequisitionListActions,\n EmptyList,\n} from '@/requisitionList/components';\nimport { RequisitionListForm } from '@/requisitionList/containers';\nimport { Pagination, Card, Table } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport '@/requisitionList/components/RequisitionListGridWrapper/RequisitionListGridWrapper.css';\n\nexport interface RequisitionListGridWrapperProps\n extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n isLoading?: boolean;\n addReqList?: boolean;\n header?: VNode;\n rows: Array<Record<string, VNode | string | number | undefined>>;\n expandedRows: Set<number>;\n skeletonRowCount: number;\n pageInfo?: {\n total_pages: number;\n current_page: number;\n };\n handlePageChange: (page?: number) => Promise<void>;\n}\n\nexport const RequisitionListGridWrapper: FunctionComponent<\n RequisitionListGridWrapperProps\n> = ({\n className,\n isLoading = false,\n addReqList = false,\n header,\n rows = [],\n expandedRows,\n skeletonRowCount = 10,\n pageInfo,\n handlePageChange,\n ...props\n}) => {\n const translations = useText({\n name: `RequisitionList.RequisitionListWrapper.name`,\n itemsCount: `RequisitionList.RequisitionListWrapper.itemsCount`,\n lastUpdated: `RequisitionList.RequisitionListWrapper.lastUpdated`,\n actions: `RequisitionList.RequisitionListWrapper.actions`,\n emptyList: `RequisitionList.RequisitionListWrapper.emptyList`,\n });\n\n const [isAdding, setIsAdding] = useState(addReqList);\n\n const hasAnyItems = (pageInfo?.total_pages ?? 0) > 0;\n const showEmptyList = !isLoading && rows.length === 0 && !hasAnyItems;\n\n return (\n <div\n {...props}\n className={classes(['requisition-list-grid-wrapper', className])}\n data-testid=\"requisition-list-grid-wrapper\"\n >\n {/* Requisition List Header */}\n {header && (\n <div\n className={classes([\n 'requisition-list-grid-wrapper__header',\n className,\n ])}\n data-testid=\"requisition-list-grid-wrapper-header\"\n >\n <VComponent node={header} />\n </div>\n )}\n\n {/* Requisition Lists Form */}\n <div\n className={classes([\n 'requisition-list-grid-wrapper__add-new',\n className,\n ])}\n >\n {isAdding ? (\n <Card variant=\"secondary\">\n <RequisitionListForm\n mode=\"create\"\n onSuccess={async () => {\n await handlePageChange();\n setIsAdding(false);\n }}\n onCancel={() => setIsAdding(false)}\n />\n </Card>\n ) : (\n <RequisitionListActions onAddNew={() => setIsAdding(true)} />\n )}\n </div>\n\n {showEmptyList ? (\n <EmptyList textContent={translations.emptyList} />\n ) : (\n <>\n {/* Requisition Lists Table */}\n <Table\n columns={[\n { key: 'name', label: translations.name },\n { key: 'items_count', label: translations.itemsCount },\n { key: 'last_updated', label: translations.lastUpdated },\n { key: 'actions', label: translations.actions },\n ]}\n rowData={rows}\n expandedRows={expandedRows}\n loading={isLoading}\n skeletonRowCount={skeletonRowCount}\n />\n <div\n className={classes([\n 'requisition-list-grid-wrapper__pagination',\n className,\n ])}\n >\n <Pagination\n totalPages={pageInfo?.total_pages}\n currentPage={pageInfo?.current_page}\n onChange={handlePageChange}\n />\n </div>\n </>\n )}\n </div>\n );\n};\n","import * as React from \"react\";\nconst SvgAdd = (props) => /* @__PURE__ */ React.createElement(\"svg\", { id: \"Icon_Add_Base\", \"data-name\": \"Icon \\\\u2013 Add \\\\u2013 Base\", xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"Large\" }, /* @__PURE__ */ React.createElement(\"rect\", { id: \"Placement_area\", \"data-name\": \"Placement area\", width: 24, height: 24, fill: \"#fff\", opacity: 0 }), /* @__PURE__ */ React.createElement(\"g\", { id: \"Add_icon\", \"data-name\": \"Add icon\", transform: \"translate(9.734 9.737)\" }, /* @__PURE__ */ React.createElement(\"line\", { vectorEffect: \"non-scaling-stroke\", id: \"Line_579\", \"data-name\": \"Line 579\", y2: 12.7, transform: \"translate(2.216 -4.087)\", fill: \"none\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"line\", { vectorEffect: \"non-scaling-stroke\", id: \"Line_580\", \"data-name\": \"Line 580\", x2: 12.7, transform: \"translate(-4.079 2.263)\", fill: \"none\", stroke: \"currentColor\" }))));\nexport default SvgAdd;\n","import * as React from \"react\";\nconst SvgEmptyBox = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.002 21L11.8275 21.4686C11.981 21.5257 12.1528 21.5041 12.2873 21.4106C12.4218 21.3172 12.502 21.1638 12.502 21H12.002ZM3.89502 17.9823H3.39502C3.39502 18.1912 3.52485 18.378 3.72059 18.4509L3.89502 17.9823ZM3.89502 8.06421L4.07193 7.59655C3.91831 7.53844 3.74595 7.55948 3.61082 7.65284C3.47568 7.74619 3.39502 7.89997 3.39502 8.06421H3.89502ZM12.0007 21H11.5007C11.5007 21.1638 11.5809 21.3172 11.7154 21.4106C11.8499 21.5041 12.0216 21.5257 12.1751 21.4686L12.0007 21ZM20.1076 17.9823L20.282 18.4509C20.4778 18.378 20.6076 18.1912 20.6076 17.9823H20.1076ZM20.1076 8.06421H20.6076C20.6076 7.89997 20.527 7.74619 20.3918 7.65284C20.2567 7.55948 20.0843 7.53844 19.9307 7.59655L20.1076 8.06421ZM12.0007 11.1311L11.8238 10.6634C11.6293 10.737 11.5007 10.9232 11.5007 11.1311H12.0007ZM20.2858 8.53191C20.5441 8.43421 20.6743 8.14562 20.5766 7.88734C20.4789 7.62906 20.1903 7.49889 19.932 7.5966L20.2858 8.53191ZM12.002 4.94826L12.1775 4.48008C12.0605 4.43623 11.9314 4.43775 11.8154 4.48436L12.002 4.94826ZM5.87955 6.87106C5.62334 6.97407 5.49915 7.26528 5.60217 7.52149C5.70518 7.77769 5.99639 7.90188 6.2526 7.79887L5.87955 6.87106ZM18.1932 7.80315C18.4518 7.90008 18.74 7.76904 18.8369 7.51047C18.9338 7.2519 18.8028 6.96371 18.5442 6.86678L18.1932 7.80315ZM12 4.94827L11.5879 5.23148C11.6812 5.36719 11.8353 5.44827 12 5.44827C12.1647 5.44827 12.3188 5.36719 12.4121 5.23148L12 4.94827ZM14.0263 2L14.2028 1.53218C13.9875 1.45097 13.7446 1.52717 13.6143 1.71679L14.0263 2ZM21.8421 4.94827L22.2673 5.2113C22.3459 5.08422 22.3636 4.92863 22.3154 4.78717C22.2673 4.64571 22.1584 4.53319 22.0186 4.48045L21.8421 4.94827ZM9.97368 2L10.3857 1.71679C10.2554 1.52717 10.0125 1.45097 9.79721 1.53218L9.97368 2ZM2.15789 4.94827L1.98142 4.48045C1.84161 4.53319 1.73271 4.64571 1.68456 4.78717C1.63641 4.92863 1.65406 5.08422 1.73267 5.2113L2.15789 4.94827ZM12 11.1256L11.6702 11.5014C11.8589 11.667 12.1411 11.667 12.3298 11.5014L12 11.1256ZM15.0395 8.45812L14.8732 7.98659C14.8131 8.00779 14.7576 8.04028 14.7097 8.08232L15.0395 8.45812ZM23 5.65024L23.3288 6.0269C23.5095 5.86916 23.5527 5.60532 23.4318 5.39817C23.3109 5.19102 23.0599 5.09893 22.8337 5.17871L23 5.65024ZM8.96053 8.45812L9.29034 8.08232C9.24244 8.04028 9.18695 8.00779 9.12685 7.98659L8.96053 8.45812ZM1 5.65024L1.16632 5.17871C0.940115 5.09893 0.689119 5.19102 0.568192 5.39817C0.447264 5.60532 0.49048 5.86916 0.671176 6.0269L1 5.65024ZM12.1764 20.5314L4.06945 17.5137L3.72059 18.4509L11.8275 21.4686L12.1764 20.5314ZM4.39502 17.9823V8.06421H3.39502V17.9823H4.39502ZM3.71811 8.53187L11.8251 11.5987L12.1789 10.6634L4.07193 7.59655L3.71811 8.53187ZM11.502 11.1311V21H12.502V11.1311H11.502ZM12.1751 21.4686L20.282 18.4509L19.9332 17.5137L11.8262 20.5314L12.1751 21.4686ZM20.6076 17.9823V8.06421H19.6076V17.9823H20.6076ZM19.9307 7.59655L11.8238 10.6634L12.1776 11.5987L20.2845 8.53187L19.9307 7.59655ZM11.5007 11.1311V21H12.5007V11.1311H11.5007ZM19.932 7.5966L11.8251 10.6634L12.1789 11.5987L20.2858 8.53191L19.932 7.5966ZM11.8154 4.48436L5.87955 6.87106L6.2526 7.79887L12.1885 5.41217L11.8154 4.48436ZM11.8265 5.41645L18.1932 7.80315L18.5442 6.86678L12.1775 4.48008L11.8265 5.41645ZM11.502 4.94826V11.1311H12.502V4.94826H11.502ZM12.4121 5.23148L14.4384 2.28321L13.6143 1.71679L11.5879 4.66507L12.4121 5.23148ZM13.8498 2.46782L21.6656 5.4161L22.0186 4.48045L14.2028 1.53218L13.8498 2.46782ZM21.4169 4.68525L20.5485 6.08919L21.3989 6.61524L22.2673 5.2113L21.4169 4.68525ZM12.4121 4.66507L10.3857 1.71679L9.56162 2.28321L11.5879 5.23148L12.4121 4.66507ZM9.79721 1.53218L1.98142 4.48045L2.33437 5.4161L10.1502 2.46782L9.79721 1.53218ZM1.73267 5.2113L2.60109 6.61524L3.45154 6.08919L2.58312 4.68525L1.73267 5.2113ZM12.3298 11.5014L15.3693 8.83392L14.7097 8.08232L11.6702 10.7498L12.3298 11.5014ZM15.2058 8.92965L23.1663 6.12177L22.8337 5.17871L14.8732 7.98659L15.2058 8.92965ZM22.6712 5.27358L19.7764 7.80067L20.4341 8.554L23.3288 6.0269L22.6712 5.27358ZM12.3298 10.7498L9.29034 8.08232L8.63072 8.83392L11.6702 11.5014L12.3298 10.7498ZM9.12685 7.98659L1.16632 5.17871L0.83368 6.12177L8.79421 8.92965L9.12685 7.98659ZM0.671176 6.0269L3.56591 8.554L4.22356 7.80067L1.32882 5.27358L0.671176 6.0269Z\", fill: \"currentColor\" }));\nexport default SvgEmptyBox;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FunctionComponent } from 'preact';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { Add } from '@adobe-commerce/elsie/icons';\nimport { Icon } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport '@/requisitionList/components/RequisitionListActions/RequisitionListActions.css';\n\nexport interface RequisitionListActionsProps {\n className?: string;\n selectable?: boolean;\n onAddNew?: () => void;\n}\n\nexport const RequisitionListActions: FunctionComponent<\n RequisitionListActionsProps\n> = ({ selectable, className, onAddNew }) => {\n const translations = useText({\n addNewReqListBtn: `RequisitionList.AddNewReqList.addNewReqListBtn`,\n });\n\n return (\n <button\n type=\"button\"\n aria-label={translations.addNewReqListBtn}\n role=\"button\"\n className={classes([\n 'requisition-list-actions',\n ['requisition-list-actions--selectable', selectable],\n className,\n ])}\n data-testid=\"requisition-list-actions-button\"\n onClick={onAddNew}\n >\n <span\n className=\"requisition-list-actions__title\"\n data-testid=\"requisition-list-actions-button-text\"\n >\n {translations.addNewReqListBtn}\n </span>\n <Icon source={Add} size=\"32\" />\n </button>\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 { FunctionComponent, VNode } from 'preact';\nimport {\n Modal,\n Button,\n ProgressSpinner,\n} from '@adobe-commerce/elsie/components';\nimport '@/requisitionList/components/RequisitionListModal/RequisitionListModal.css';\n\nexport interface RequisitionListModalProps {\n isOpen: boolean;\n isLoading: boolean;\n title: VNode | string;\n modalContent: VNode | string;\n closeBtnCaption?: string;\n confirmBtnCaption?: string;\n handleModalOnClose?: () => void;\n handleModalOnConfirm?: () => void;\n}\n\nexport const RequisitionListModal: FunctionComponent<\n RequisitionListModalProps\n> = ({\n isOpen,\n isLoading,\n title,\n modalContent,\n closeBtnCaption,\n confirmBtnCaption,\n handleModalOnClose,\n handleModalOnConfirm,\n}) => {\n if (!isOpen) return null;\n\n return (\n <Modal\n className=\"requisition-list-modal--overlay\"\n data-testid=\"requisition-list-modal\"\n size={'medium'}\n centered={false}\n title={title}\n onClose={handleModalOnClose}\n backgroundDim={true}\n clickToDismiss={true}\n escapeToDismiss={true}\n >\n <div className=\"requisition-list-modal\">\n {isLoading ? (\n <div\n className=\"requisition-list-modal__spinner\"\n data-testid=\"progress-spinner\"\n >\n <ProgressSpinner stroke={'4'} size={'large'} />\n </div>\n ) : null}\n <p>{modalContent}</p>\n <div className=\"requisition-list-modal__buttons\">\n {handleModalOnClose && (\n <Button\n data-testid=\"rl-modal-close-button\"\n type={'button'}\n onClick={handleModalOnClose}\n variant=\"secondary\"\n disabled={isLoading}\n >\n {closeBtnCaption}\n </Button>\n )}\n {handleModalOnConfirm && (\n <Button\n data-testid=\"rl-modal-confirm-button\"\n type={'button'}\n onClick={handleModalOnConfirm}\n disabled={isLoading}\n >\n {confirmBtnCaption}\n </Button>\n )}\n </div>\n </div>\n </Modal>\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 { FunctionComponent } from 'preact';\nimport { Icon } from '@adobe-commerce/elsie/components';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { EmptyBox } from '@adobe-commerce/elsie/icons';\nimport '@/requisitionList/components/EmptyList/EmptyList.css';\n\nexport interface EmptyListProps {\n className?: string;\n textContent?: string | null;\n}\n\nexport const EmptyList: FunctionComponent<EmptyListProps> = ({\n className,\n textContent,\n ...props\n}) => {\n return (\n <div\n className={classes(['empty-list', className])}\n data-testid=\"empty-list\"\n {...props}\n >\n <Icon source={EmptyBox} size={'64'} stroke={'2'} />\n {textContent && <h4>{textContent}</h4>}\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useMemo, useState, useCallback, useEffect } from 'preact/compat';\nimport { VNode } from 'preact';\nimport { Button, Card } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { RequisitionList as RequisitionListModel } from '@/requisitionList/data/models/requisitionList';\nimport { RequisitionListForm } from '@/requisitionList/containers';\nimport { getRequisitionLists } from '@/requisitionList/api/getRequisitionLists';\nimport { RequisitionLists } from '@/requisitionList/data/models/requisitionLists';\n\ntype Row = Record<string, VNode | string | number | undefined>;\ntype Callbacks = { openRemove: (rl: RequisitionListModel) => void };\n\nexport function useRequisitionListGrid(\n initial?: RequisitionLists | null,\n callbacks?: Callbacks,\n routeRequisitionListDetails?: (uid: string) => string | void\n) {\n const translations = useText({\n actionRemove: 'RequisitionList.RequisitionListItem.actionRemove',\n actionRename: 'RequisitionList.RequisitionListItem.actionRename',\n });\n\n const [reqLists, setReqLists] = useState<RequisitionLists | undefined>(\n initial\n );\n const [editingId, setEditingId] = useState<string | null>(null);\n const [isFetching, setIsFetching] = useState(false);\n const onRename = useCallback((uid: string) => setEditingId(uid), []);\n const onEditCancel = useCallback(() => setEditingId(null), []);\n\n const fetchPage = useCallback(\n async (page = reqLists?.page_info?.current_page ?? 1) => {\n setIsFetching(true);\n try {\n const data = await getRequisitionLists(page);\n const currentPage = data?.page_info?.current_page ?? 1;\n const totalPages = data?.page_info?.total_pages ?? 0;\n const hasRows = (data?.items?.length ?? 0) > 0;\n\n if (!hasRows && currentPage > 1 && totalPages >= currentPage - 1) {\n const prev = currentPage - 1;\n const prevData = await getRequisitionLists(prev);\n setReqLists(prevData);\n } else {\n setReqLists(data);\n }\n } finally {\n setIsFetching(false);\n }\n },\n [reqLists]\n );\n\n useEffect(() => {\n if (!reqLists) void fetchPage(1);\n }, [reqLists, fetchPage]);\n\n const handlePageChange = useCallback(\n (page?: number) => fetchPage(page),\n [fetchPage]\n );\n\n const rows: Row[] = useMemo(\n () =>\n (reqLists?.items ?? []).map((rl: RequisitionListModel) => {\n const isEditing = editingId === rl.uid;\n return {\n name: (\n <div className=\"requisition-list-grid-wrapper__name\">\n <div className=\"requisition-list-grid-wrapper__name__title\">\n <a\n href=\"#\"\n onClick={(e: Event): void => {\n e.preventDefault();\n if (routeRequisitionListDetails) {\n const result = routeRequisitionListDetails(rl.uid);\n if (typeof result === 'string') {\n window.location.href = result;\n }\n }\n }}\n >\n {rl.name}\n </a>\n </div>\n {rl.description && (\n <div className=\"requisition-list-grid-wrapper__name__description\">\n {rl.description}\n </div>\n )}\n </div>\n ),\n items_count: rl.items_count,\n last_updated: new Date(rl.updated_at).toLocaleString(),\n actions: (\n <div className=\"requisition-list-grid-wrapper__actions\">\n <Button\n variant=\"tertiary\"\n type=\"button\"\n data-testid=\"rename-button\"\n onClick={() => onRename(rl.uid)}\n >\n {translations.actionRename}\n </Button>\n <Button\n variant=\"tertiary\"\n type=\"button\"\n data-testid=\"remove-button\"\n onClick={() => callbacks?.openRemove(rl)}\n >\n {translations.actionRemove}\n </Button>\n </div>\n ),\n _rowDetails: isEditing ? (\n <Card\n variant=\"secondary\"\n className=\"requisition-list-grid-wrapper__form-row\"\n >\n <RequisitionListForm\n mode=\"edit\"\n requisitionListUid={rl.uid}\n defaultValues={{ name: rl.name, description: rl.description }}\n onSuccess={async () => {\n await handlePageChange();\n setEditingId(null);\n }}\n onCancel={onEditCancel}\n />\n </Card>\n ) : undefined,\n };\n }),\n [\n reqLists?.items,\n editingId,\n onRename,\n onEditCancel,\n translations.actionRename,\n translations.actionRemove,\n callbacks,\n handlePageChange,\n routeRequisitionListDetails,\n ]\n );\n\n const expandedRows = useMemo(\n () =>\n new Set(\n rows\n .map((row, index) => (row._rowDetails ? index : -1))\n .filter((index) => index >= 0) as number[]\n ),\n [rows]\n );\n\n return {\n rows,\n expandedRows,\n isLoading: isFetching || !reqLists,\n pageInfo: reqLists?.page_info,\n handlePageChange,\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 { HTMLAttributes, useState, useCallback } from 'preact/compat';\nimport { Header } from '@adobe-commerce/elsie/components';\nimport { Container, Slot, SlotProps } from '@adobe-commerce/elsie/lib';\nimport { RequisitionLists as RequisitionListsModel } from '@/requisitionList/data/models/requisitionLists';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport {\n RequisitionListGridWrapper,\n RequisitionListModal,\n} from '@/requisitionList/components';\nimport { useRequisitionListGrid } from '@/requisitionList/hooks';\nimport { deleteRequisitionList } from '@/requisitionList/api/deleteRequisitionList/deleteRequisitionList';\n\nexport interface RequisitionListGridProps\n extends HTMLAttributes<HTMLDivElement> {\n requisitionLists?: RequisitionListsModel | null;\n routeRequisitionListDetails?: (uid: string) => string | void;\n slots?: {\n Header?: SlotProps;\n };\n}\n\nexport const RequisitionListGrid: Container<RequisitionListGridProps> = ({\n requisitionLists,\n routeRequisitionListDetails,\n slots,\n}: RequisitionListGridProps) => {\n const [modal, setModal] = useState<{\n isOpen: boolean;\n isLoading: boolean;\n rl: RequisitionListsModel | null;\n }>({\n isOpen: false,\n isLoading: false,\n rl: null,\n });\n\n const openRemove = (rl: RequisitionListsModel) =>\n setModal({ isOpen: true, isLoading: false, rl });\n const closeModal = () =>\n setModal({ isOpen: false, isLoading: false, rl: null });\n\n const confirmRemove = async () => {\n if (!modal.rl) return;\n setModal((m) => ({ ...m, isLoading: true }));\n await deleteRequisitionList(modal.rl.uid);\n await handlePageChange();\n closeModal();\n };\n\n const { rows, expandedRows, isLoading, pageInfo, handlePageChange } =\n useRequisitionListGrid(\n requisitionLists,\n { openRemove },\n routeRequisitionListDetails\n );\n\n const translations = useText({\n containerTitle: `RequisitionList.containerTitle`,\n confirmRemove: 'RequisitionList.RequisitionListWrapper.confirmRemove',\n confirmRemoveContent:\n 'RequisitionList.RequisitionListWrapper.confirmRemoveContent',\n cancelAction: 'RequisitionList.RequisitionListWrapper.cancelAction',\n confirmAction: 'RequisitionList.RequisitionListWrapper.confirmAction',\n });\n\n const getHeader = useCallback(() => {\n if (slots?.Header) {\n return (\n <Slot\n name=\"Header\"\n aria-label={translations.containerTitle}\n title={translations.containerTitle}\n slot={slots.Header}\n />\n );\n }\n return (\n <Header\n aria-label={translations.containerTitle}\n role=\"region\"\n title={translations.containerTitle}\n />\n );\n }, [slots, translations.containerTitle]);\n\n return (\n <>\n <RequisitionListGridWrapper\n header={getHeader()}\n rows={rows}\n expandedRows={expandedRows}\n skeletonRowCount={10}\n isLoading={isLoading}\n pageInfo={pageInfo}\n handlePageChange={handlePageChange}\n />\n {modal.isOpen && (\n <RequisitionListModal\n isOpen\n isLoading={modal.isLoading}\n title={translations.confirmRemove}\n modalContent={translations.confirmRemoveContent}\n confirmBtnCaption={translations.confirmAction}\n closeBtnCaption={translations.cancelAction}\n handleModalOnClose={closeModal}\n handleModalOnConfirm={confirmRemove}\n />\n )}\n </>\n );\n};\n"],"names":["RequisitionListGridWrapper","className","isLoading","addReqList","header","rows","expandedRows","skeletonRowCount","pageInfo","handlePageChange","props","translations","useText","isAdding","setIsAdding","useState","hasAnyItems","showEmptyList","jsxs","classes","jsx","VComponent","Card","RequisitionListForm","RequisitionListActions","EmptyList","Fragment","Table","Pagination","SvgAdd","React","SvgEmptyBox","selectable","onAddNew","Icon","Add","RequisitionListModal","isOpen","title","modalContent","closeBtnCaption","confirmBtnCaption","handleModalOnClose","handleModalOnConfirm","Modal","ProgressSpinner","Button","textContent","EmptyBox","useRequisitionListGrid","initial","callbacks","routeRequisitionListDetails","reqLists","setReqLists","editingId","setEditingId","isFetching","setIsFetching","onRename","useCallback","uid","onEditCancel","fetchPage","page","_a","data","getRequisitionLists","currentPage","totalPages","_b","_c","prev","prevData","useEffect","useMemo","rl","isEditing","e","result","row","index","RequisitionListGrid","requisitionLists","slots","modal","setModal","openRemove","closeModal","confirmRemove","m","deleteRequisitionList","getHeader","Slot","Header"],"mappings":"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","x_google_ignoreList":[1,2]}
@@ -1,94 +1,6 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsxs as f,jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import*as a from"@dropins/tools/preact-compat.js";import{useState as p,useEffect as R}from"@dropins/tools/preact-compat.js";import{Picker as q,Icon as g,Card as L}from"@dropins/tools/components.js";import{R as E,f as h,h as v,t as S}from"../chunks/transform-requisition-list.js";import{g as b}from"../chunks/getRequisitionLists.js";import{R as N}from"../chunks/RequisitionListForm.js";import"@dropins/tools/lib.js";import"@dropins/tools/preact-hooks.js";/* empty css */import{useText as y}from"@dropins/tools/i18n.js";import"@dropins/tools/fetch-graphql.js";const U=`
4
- fragment REQUISITION_LIST_ITEMS_FRAGMENT on RequistionListItems {
5
- items {
6
- uid
7
- quantity
8
- customizable_options {
9
- customizable_option_uid
10
- is_required
11
- label
12
- sort_order
13
- type
14
- values {
15
- customizable_option_value_uid
16
- label
17
- value
18
- price {
19
- type
20
- units
21
- value
22
- }
23
- }
24
- }
25
- ... on BundleRequisitionListItem {
26
- bundle_options {
27
- uid
28
- label
29
- type
30
- values {
31
- uid
32
- label
33
- original_price {
34
- value
35
- currency
36
- }
37
- priceV2 {
38
- value
39
- currency
40
- }
41
- quantity
42
- }
43
- }
44
- }
45
- ... on ConfigurableRequisitionListItem {
46
- configurable_options {
47
- configurable_product_option_uid
48
- configurable_product_option_value_uid
49
- option_label
50
- value_label
51
- }
52
- }
53
- ... on DownloadableRequisitionListItem {
54
- links {
55
- price
56
- sample_url
57
- sort_order
58
- title
59
- uid
60
- }
61
- samples {
62
- sample_url
63
- sort_order
64
- title
65
- }
66
- }
67
- ... on GiftCardRequisitionListItem {
68
- gift_card_options {
69
- amount {
70
- currency
71
- value
72
- }
73
- custom_giftcard_amount {
74
- currency
75
- value
76
- }
77
- message
78
- recipient_email
79
- recipient_name
80
- sender_name
81
- sender_email
82
- }
83
- }
84
- }
85
- page_info {
86
- page_size
87
- current_page
88
- total_pages
89
- }
90
- }
91
- `,O=`
3
+ import{jsxs as f,jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import*as a from"@dropins/tools/preact-compat.js";import{useState as T,useEffect as q}from"@dropins/tools/preact-compat.js";import{Picker as p,Icon as L,Card as h}from"@dropins/tools/components.js";import{R as E,f as S,h as g,t as N}from"../chunks/transform-requisition-list.js";import{R as U}from"../chunks/RequisitionListItemsFragment.graphql.js";import{g as v}from"../chunks/getRequisitionLists.js";import{R as O}from"../chunks/RequisitionListForm.js";import"@dropins/tools/lib.js";import"@dropins/tools/preact-hooks.js";/* empty css *//* empty css */import{useText as A}from"@dropins/tools/i18n.js";import"@dropins/tools/fetch-graphql.js";const M=`
92
4
  mutation ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION(
93
5
  $requisitionListUid: ID!,
94
6
  $requisitionListItems: [RequisitionListItemsInput!]!
@@ -107,5 +19,5 @@ fragment REQUISITION_LIST_ITEMS_FRAGMENT on RequistionListItems {
107
19
  }
108
20
  ${U}
109
21
  ${E}
110
- `,M=async(s,r)=>{const{errors:t,data:u}=await h(O,{variables:{requisitionListUid:s,requisitionListItems:r}});return t?v(t):S(u.addProductsToRequisitionList.requisition_list)},A=s=>a.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...s},a.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M3 12H21",stroke:"currentColor"}),a.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M3 6H21",stroke:"currentColor"}),a.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M3 18H21",stroke:"currentColor"})),B=({items:s=[],canCreate:r=!0,sku:t,quantity:u=1,...I})=>{const[o,l]=p(s),[_,c]=p(!1),d=y({createTitle:"RequisitionList.RequisitionListForm.createTitle",addToReqList:"RequisitionList.RequisitionListForm.addToRequisitionList"});R(()=>{(!o||o.length===0)&&b().then(i=>{i&&i.items&&l(i.items)}).catch(i=>{console.error("Error fetching requisition lists:",i)})},[o]);const T=[...(o==null?void 0:o.map(i=>({value:i.uid,text:i.name})))??[],...r?[{value:"__create__",text:d.createTitle}]:[]],m=async i=>{try{await M(i,[{sku:t,quantity:u}])}catch(e){console.error("Error adding product to list:",e)}};return f("div",{...I,className:"requisition-list-names",children:[n(q,{id:`requisition-list-names__picker__${t}`,className:"requisition-list-names__picker",name:`requisition-list-names__picker__${t}`,icon:n(g,{source:A}),variant:"secondary",placeholder:d.addToReqList,disabled:_,size:"medium",options:T,handleSelect:i=>{const e=i.currentTarget.value;if(e==="__create__"){c(!0);return}e&&m(e).then(()=>{i.target.value=""})}}),r&&_&&n(L,{variant:"secondary",children:n(N,{mode:"create",onSuccess:async i=>{m(i.uid).then(()=>{c(!1),l(e=>e?[...e,i]:[i])})},onCancel:()=>c(!1)})})]})};export{B as RequisitionListNames,B as default};
22
+ `,k=async(r,o)=>{const{errors:e,data:c}=await S(M,{variables:{requisitionListUid:r,requisitionListItems:o}});return e?g(e):N(c.addProductsToRequisitionList.requisition_list)},x=r=>a.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},a.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M3 12H21",stroke:"currentColor"}),a.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M3 6H21",stroke:"currentColor"}),a.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M3 18H21",stroke:"currentColor"})),z=({items:r=[],canCreate:o=!0,sku:e,quantity:c=1,...I})=>{const[s,d]=T(r),[m,u]=T(!1),l=A({createTitle:"RequisitionList.RequisitionListForm.createTitle",addToReqList:"RequisitionList.RequisitionListForm.addToRequisitionList"});q(()=>{(!s||s.length===0)&&v().then(t=>{t&&t.items&&d(t.items)}).catch(t=>{console.error("Error fetching requisition lists:",t)})},[s]);const R=[...(s==null?void 0:s.map(t=>({value:t.uid,text:t.name})))??[],...o?[{value:"__create__",text:l.createTitle}]:[]],_=async t=>{try{await k(t,[{sku:e,quantity:c}])}catch(i){console.error("Error adding product to list:",i)}};return f("div",{...I,className:"requisition-list-names",children:[n(p,{id:`requisition-list-names__picker__${e}`,className:"requisition-list-names__picker",name:`requisition-list-names__picker__${e}`,icon:n(L,{source:x}),variant:"secondary",placeholder:l.addToReqList,disabled:m,size:"medium",options:R,handleSelect:t=>{const i=t.currentTarget.value;if(i==="__create__"){u(!0);return}i&&_(i).then(()=>{t.target.value=""})}}),o&&m&&n(h,{variant:"secondary",children:n(O,{mode:"create",onSuccess:async t=>{_(t.uid).then(()=>{u(!1),d(i=>i?[...i,t]:[t])})},onCancel:()=>u(!1)})})]})};export{z as RequisitionListNames,z as default};
111
23
  //# sourceMappingURL=RequisitionListNames.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RequisitionListNames.js","sources":["/@dropins/storefront-requisition-list/src/api/fragments/RequisitionListItemsFragment.graphql.ts","/@dropins/storefront-requisition-list/src/api/addProductsToRequisitionList/graphql/addProductsToRequisitionList.ts","/@dropins/storefront-requisition-list/src/api/addProductsToRequisitionList/addProductsToRequisitionList.ts","../../node_modules/@adobe-commerce/elsie/src/icons/Burger.svg","/@dropins/storefront-requisition-list/src/containers/RequisitionListNames/RequisitionListNames.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const REQUISITION_LIST_ITEMS_FRAGMENT = `\nfragment REQUISITION_LIST_ITEMS_FRAGMENT on RequistionListItems {\n items {\n uid\n quantity\n customizable_options {\n customizable_option_uid\n is_required\n label\n sort_order\n type\n values {\n customizable_option_value_uid\n label\n value\n price {\n type\n units\n value\n }\n }\n }\n ... on BundleRequisitionListItem {\n bundle_options {\n uid\n label\n type\n values {\n uid\n label\n original_price {\n value\n currency\n }\n priceV2 {\n value\n currency\n }\n quantity\n }\n }\n }\n ... on ConfigurableRequisitionListItem {\n configurable_options {\n configurable_product_option_uid\n configurable_product_option_value_uid\n option_label\n value_label\n }\n }\n ... on DownloadableRequisitionListItem {\n links {\n price\n sample_url\n sort_order\n title\n uid\n }\n samples {\n sample_url\n sort_order\n title\n }\n }\n ... on GiftCardRequisitionListItem {\n gift_card_options {\n amount {\n currency\n value\n }\n custom_giftcard_amount {\n currency\n value\n }\n message\n recipient_email\n recipient_name\n sender_name\n sender_email\n }\n }\n }\n page_info {\n page_size\n current_page\n total_pages\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 { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\nimport { REQUISITION_LIST_ITEMS_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListItemsFragment.graphql';\n\nexport const ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION = `\n mutation ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION(\n $requisitionListUid: ID!, \n $requisitionListItems: [RequisitionListItemsInput!]!\n ) {\n addProductsToRequisitionList(\n requisitionListUid: $requisitionListUid\n requisitionListItems: $requisitionListItems\n ) {\n requisition_list {\n ...REQUISITION_LIST_FRAGMENT\n items {\n ...REQUISITION_LIST_ITEMS_FRAGMENT\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\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION } from '@/requisitionList/api/addProductsToRequisitionList/graphql/addProductsToRequisitionList';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { transformRequisitionList } from '@/requisitionList/data/transforms';\nimport { Product } from '@/requisitionList/data/models/item';\n\nexport const addProductsToRequisitionList = async (\n requisitionListUid: string,\n requisitionListItems: Array<Product>\n): Promise<RequisitionList | null> => {\n const { errors, data } = await fetchGraphQl(\n ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION,\n {\n variables: {\n requisitionListUid,\n requisitionListItems,\n },\n }\n );\n if (errors) return handleFetchError(errors);\n\n return transformRequisitionList(\n data.addProductsToRequisitionList.requisition_list\n );\n};\n","import * as React from \"react\";\nconst SvgBurger = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M3 12H21\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M3 6H21\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M3 18H21\", stroke: \"currentColor\" }));\nexport default SvgBurger;\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 { HTMLAttributes, useEffect, useState } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { RequisitionList } from '../../data/models/requisitionList.js';\nimport { Card, Icon, Picker } from '@adobe-commerce/elsie/components';\nimport { addProductsToRequisitionList } from '@/requisitionList/api/addProductsToRequisitionList/addProductsToRequisitionList';\nimport { getRequisitionLists } from '@/requisitionList/api';\nimport { RequisitionListForm } from '@/requisitionList/containers';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { Burger } from '@adobe-commerce/elsie/icons';\nimport { JSX } from 'preact';\nimport '@/requisitionList/containers/RequisitionListNames/RequisitionListNames.css';\n\nexport interface RequisitionListNamesProps\n extends HTMLAttributes<HTMLDivElement> {\n items?: RequisitionList[];\n canCreate?: boolean;\n sku: string;\n quantity?: number;\n}\n\nexport const RequisitionListNames: Container<RequisitionListNamesProps> = ({\n items = [],\n canCreate = true,\n sku,\n quantity = 1,\n ...props\n}: RequisitionListNamesProps) => {\n const [reqLists, setReqLists] = useState(items);\n const [isAdding, setIsAdding] = useState(false);\n\n const translations = useText({\n createTitle: `RequisitionList.RequisitionListForm.createTitle`,\n addToReqList: `RequisitionList.RequisitionListForm.addToRequisitionList`,\n });\n\n useEffect(() => {\n if (!reqLists || reqLists.length === 0) {\n getRequisitionLists()\n .then((res: { items: RequisitionList[] }) => {\n if (res && res.items) {\n setReqLists(res.items);\n }\n })\n .catch((error: any) => {\n console.error('Error fetching requisition lists:', error);\n });\n }\n }, [reqLists]);\n\n const reqListOptions = [\n ...(reqLists?.map((reqList: RequisitionList) => ({\n value: reqList.uid,\n text: reqList.name,\n })) ?? []),\n ...(canCreate\n ? [{ value: '__create__', text: translations.createTitle }]\n : []),\n ];\n\n const handleAddProdToReqList = async (requisitionListUid: string) => {\n try {\n await addProductsToRequisitionList(requisitionListUid, [\n { sku, quantity },\n ]);\n } catch (error) {\n console.error('Error adding product to list:', error);\n }\n };\n\n return (\n <div {...props} className=\"requisition-list-names\">\n <Picker\n id={`requisition-list-names__picker__${sku}`}\n className=\"requisition-list-names__picker\"\n name={`requisition-list-names__picker__${sku}`}\n icon={<Icon source={Burger} />}\n variant={'secondary'}\n placeholder={translations.addToReqList}\n disabled={isAdding}\n size=\"medium\"\n options={reqListOptions}\n handleSelect={(event: JSX.TargetedEvent<HTMLSelectElement, Event>) => {\n const selectedUid = event.currentTarget.value;\n if (selectedUid === '__create__') {\n setIsAdding(true);\n return;\n }\n if (selectedUid) {\n handleAddProdToReqList(selectedUid).then(() => {\n // TODO: dispatch event when they are available\n event.target.value = ''; // Reset the Picker to Select the Placeholder again when completed\n });\n }\n }}\n />\n {canCreate && isAdding && (\n <Card variant=\"secondary\">\n <RequisitionListForm\n mode=\"create\"\n onSuccess={async (newList: RequisitionList) => {\n handleAddProdToReqList(newList.uid).then(() => {\n // TODO: dispatch event when they are available\n setIsAdding(false);\n setReqLists((prevLists: RequisitionList[]) =>\n prevLists ? [...prevLists, newList] : [newList]\n );\n });\n }}\n onCancel={() => setIsAdding(false)}\n />\n </Card>\n )}\n </div>\n );\n};\n"],"names":["REQUISITION_LIST_ITEMS_FRAGMENT","ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION","REQUISITION_LIST_FRAGMENT","addProductsToRequisitionList","requisitionListUid","requisitionListItems","errors","data","fetchGraphQl","handleFetchError","transformRequisitionList","SvgBurger","props","React","RequisitionListNames","items","canCreate","sku","quantity","reqLists","setReqLists","useState","isAdding","setIsAdding","translations","useText","useEffect","getRequisitionLists","res","error","reqListOptions","reqList","handleAddProdToReqList","jsxs","jsx","Picker","Icon","Burger","event","selectedUid","Card","RequisitionListForm","newList","prevLists"],"mappings":"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","x_google_ignoreList":[3]}
1
+ {"version":3,"file":"RequisitionListNames.js","sources":["/@dropins/storefront-requisition-list/src/api/addProductsToRequisitionList/graphql/addProductsToRequisitionList.ts","/@dropins/storefront-requisition-list/src/api/addProductsToRequisitionList/addProductsToRequisitionList.ts","../../node_modules/@adobe-commerce/elsie/src/icons/Burger.svg","/@dropins/storefront-requisition-list/src/containers/RequisitionListNames/RequisitionListNames.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { REQUISITION_LIST_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListFragment.graphql';\nimport { REQUISITION_LIST_ITEMS_FRAGMENT } from '@/requisitionList/api/fragments/RequisitionListItemsFragment.graphql';\n\nexport const ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION = `\n mutation ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION(\n $requisitionListUid: ID!, \n $requisitionListItems: [RequisitionListItemsInput!]!\n ) {\n addProductsToRequisitionList(\n requisitionListUid: $requisitionListUid\n requisitionListItems: $requisitionListItems\n ) {\n requisition_list {\n ...REQUISITION_LIST_FRAGMENT\n items {\n ...REQUISITION_LIST_ITEMS_FRAGMENT\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\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { fetchGraphQl } from '@/requisitionList/api';\nimport { ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION } from '@/requisitionList/api/addProductsToRequisitionList/graphql/addProductsToRequisitionList';\nimport { handleFetchError } from '@/requisitionList/lib/fetch-error';\nimport { transformRequisitionList } from '@/requisitionList/data/transforms';\nimport { Product } from '@/requisitionList/data/models/item';\n\nexport const addProductsToRequisitionList = async (\n requisitionListUid: string,\n requisitionListItems: Array<Product>\n): Promise<RequisitionList | null> => {\n const { errors, data } = await fetchGraphQl(\n ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION,\n {\n variables: {\n requisitionListUid,\n requisitionListItems,\n },\n }\n );\n if (errors) return handleFetchError(errors);\n\n return transformRequisitionList(\n data.addProductsToRequisitionList.requisition_list\n );\n};\n","import * as React from \"react\";\nconst SvgBurger = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M3 12H21\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M3 6H21\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M3 18H21\", stroke: \"currentColor\" }));\nexport default SvgBurger;\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 { HTMLAttributes, useEffect, useState } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { RequisitionList } from '../../data/models/requisitionList.js';\nimport { Card, Icon, Picker } from '@adobe-commerce/elsie/components';\nimport { addProductsToRequisitionList } from '@/requisitionList/api/addProductsToRequisitionList/addProductsToRequisitionList';\nimport { getRequisitionLists } from '@/requisitionList/api';\nimport { RequisitionListForm } from '@/requisitionList/containers';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { Burger } from '@adobe-commerce/elsie/icons';\nimport { JSX } from 'preact';\nimport '@/requisitionList/containers/RequisitionListNames/RequisitionListNames.css';\n\nexport interface RequisitionListNamesProps\n extends HTMLAttributes<HTMLDivElement> {\n items?: RequisitionList[];\n canCreate?: boolean;\n sku: string;\n quantity?: number;\n}\n\nexport const RequisitionListNames: Container<RequisitionListNamesProps> = ({\n items = [],\n canCreate = true,\n sku,\n quantity = 1,\n ...props\n}: RequisitionListNamesProps) => {\n const [reqLists, setReqLists] = useState(items);\n const [isAdding, setIsAdding] = useState(false);\n\n const translations = useText({\n createTitle: `RequisitionList.RequisitionListForm.createTitle`,\n addToReqList: `RequisitionList.RequisitionListForm.addToRequisitionList`,\n });\n\n useEffect(() => {\n if (!reqLists || reqLists.length === 0) {\n getRequisitionLists()\n .then((res: { items: RequisitionList[] }) => {\n if (res && res.items) {\n setReqLists(res.items);\n }\n })\n .catch((error: any) => {\n console.error('Error fetching requisition lists:', error);\n });\n }\n }, [reqLists]);\n\n const reqListOptions = [\n ...(reqLists?.map((reqList: RequisitionList) => ({\n value: reqList.uid,\n text: reqList.name,\n })) ?? []),\n ...(canCreate\n ? [{ value: '__create__', text: translations.createTitle }]\n : []),\n ];\n\n const handleAddProdToReqList = async (requisitionListUid: string) => {\n try {\n await addProductsToRequisitionList(requisitionListUid, [\n { sku, quantity },\n ]);\n } catch (error) {\n console.error('Error adding product to list:', error);\n }\n };\n\n return (\n <div {...props} className=\"requisition-list-names\">\n <Picker\n id={`requisition-list-names__picker__${sku}`}\n className=\"requisition-list-names__picker\"\n name={`requisition-list-names__picker__${sku}`}\n icon={<Icon source={Burger} />}\n variant={'secondary'}\n placeholder={translations.addToReqList}\n disabled={isAdding}\n size=\"medium\"\n options={reqListOptions}\n handleSelect={(event: JSX.TargetedEvent<HTMLSelectElement, Event>) => {\n const selectedUid = event.currentTarget.value;\n if (selectedUid === '__create__') {\n setIsAdding(true);\n return;\n }\n if (selectedUid) {\n handleAddProdToReqList(selectedUid).then(() => {\n // TODO: dispatch event when they are available\n event.target.value = ''; // Reset the Picker to Select the Placeholder again when completed\n });\n }\n }}\n />\n {canCreate && isAdding && (\n <Card variant=\"secondary\">\n <RequisitionListForm\n mode=\"create\"\n onSuccess={async (newList: RequisitionList) => {\n handleAddProdToReqList(newList.uid).then(() => {\n // TODO: dispatch event when they are available\n setIsAdding(false);\n setReqLists((prevLists: RequisitionList[]) =>\n prevLists ? [...prevLists, newList] : [newList]\n );\n });\n }}\n onCancel={() => setIsAdding(false)}\n />\n </Card>\n )}\n </div>\n );\n};\n"],"names":["ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION","REQUISITION_LIST_ITEMS_FRAGMENT","REQUISITION_LIST_FRAGMENT","addProductsToRequisitionList","requisitionListUid","requisitionListItems","errors","data","fetchGraphQl","handleFetchError","transformRequisitionList","SvgBurger","props","React","RequisitionListNames","items","canCreate","sku","quantity","reqLists","setReqLists","useState","isAdding","setIsAdding","translations","useText","useEffect","getRequisitionLists","res","error","reqListOptions","reqList","handleAddProdToReqList","jsxs","jsx","Picker","Icon","Burger","event","selectedUid","Card","RequisitionListForm","newList","prevLists"],"mappings":"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","x_google_ignoreList":[2]}
@@ -0,0 +1,20 @@
1
+ import { HTMLAttributes } from 'preact/compat';
2
+ import { Container } from '@dropins/tools/types/elsie/src/lib';
3
+ import { RequisitionList } from '../../data/models/requisitionList';
4
+
5
+ export interface RequisitionListViewProps extends HTMLAttributes<HTMLDivElement> {
6
+ requisitionList: RequisitionList;
7
+ routeRequisitionListGrid?: () => string | void;
8
+ /**
9
+ * When true, skips automatic product data fetching on component mount.
10
+ * Used in tests to prevent API calls.
11
+ */
12
+ skipProductLoading?: boolean;
13
+ /**
14
+ * Number of items per page for pagination.
15
+ * Defaults to 10.
16
+ */
17
+ pageSize?: number;
18
+ }
19
+ export declare const RequisitionListView: Container<RequisitionListViewProps>;
20
+ //# sourceMappingURL=RequisitionListView.d.ts.map
@@ -0,0 +1,19 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
17
+ export * from './RequisitionListView';
18
+ export { RequisitionListView as default } from './RequisitionListView';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ export * from './RequisitionListView/index'
2
+ import _default from './RequisitionListView/index'
3
+ export default _default
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{jsxs as f,jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{useState as d,useEffect as F,useCallback as w}from"@dropins/tools/preact-compat.js";import{g as ne,a as W,d as H,u as re,b as oe}from"../chunks/deleteRequisitionListItems.js";import{Button as S,InLineAlert as Q,Pagination as se}from"@dropins/tools/components.js";/* empty css */import{useText as K}from"@dropins/tools/i18n.js";import"../chunks/transform-requisition-list.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/RequisitionListItemsFragment.graphql.js";const ae=({currentRequisitionList:s,loadingProducts:k,productError:V,selectedItems:R,deletingItemId:i,deleteError:q,addingToCartItemId:c,addToCartError:_,bulkAddingToCart:p,updatingQuantityItemId:a,updateQuantityError:B,onItemSelection:D,onSelectAll:$,onSelectNone:v,onAddToCart:C,onBulkAddToCart:A,onBulkDelete:z,onUpdateQuantity:x,onDeleteItem:M,onPageChange:y,loadingPage:O=!1,routeRequisitionListGrid:P})=>{var b;const u=K({actionDelete:"RequisitionList.RequisitionListView.actionDelete",statusDeleting:"RequisitionList.RequisitionListView.statusDeleting",errorDelete:"RequisitionList.RequisitionListView.errorDelete",actionDeleteSelected:"RequisitionList.RequisitionListView.actionDeleteSelected",actionSelectAll:"RequisitionList.RequisitionListView.actionSelectAll",actionSelectNone:"RequisitionList.RequisitionListView.actionSelectNone",actionAddToCart:"RequisitionList.RequisitionListView.actionAddToCart",statusAddingToCart:"RequisitionList.RequisitionListView.statusAddingToCart",errorAddToCart:"RequisitionList.RequisitionListView.errorAddToCart",successAddToCart:"RequisitionList.RequisitionListView.successAddToCart",actionAddSelectedToCart:"RequisitionList.RequisitionListView.actionAddSelectedToCart",statusBulkAddingToCart:"RequisitionList.RequisitionListView.statusBulkAddingToCart",errorUpdateQuantity:"RequisitionList.RequisitionListView.errorUpdateQuantity",successUpdateQuantity:"RequisitionList.RequisitionListView.successUpdateQuantity",actionBackToRequisitionListsOverview:"RequisitionList.RequisitionListView.actionBackToRequisitionListsOverview"});return f("div",{children:[f("h3",{children:[s.name,P&&r(S,{type:"button",variant:"secondary",onClick:P,children:u.actionBackToRequisitionListsOverview})]}),q&&r(Q,{type:"error",variant:"primary",heading:q,"data-testid":"requisition-list-view-delete-error"}),_&&r(Q,{type:"error",variant:"primary",heading:_,"data-testid":"requisition-list-view-add-to-cart-error"}),B&&r(Q,{type:"error",variant:"primary",heading:B,"data-testid":"requisition-list-view-update-quantity-error"}),V&&r(Q,{type:"error",variant:"primary",heading:V,"data-testid":"requisition-list-view-product-error"}),f("div",{class:"requisition-list-view__bulk-actions",children:[r(S,{type:"button",variant:"secondary",onClick:$,disabled:i!==null||c!==null||p||a!==null,children:u.actionSelectAll}),r(S,{type:"button",variant:"secondary",onClick:v,disabled:i!==null||c!==null||p||a!==null,children:u.actionSelectNone}),R.size>0&&r(S,{type:"button",variant:"primary",onClick:A,disabled:i!==null||c!==null||p||a!==null,children:p?u.statusBulkAddingToCart:`${u.actionAddSelectedToCart} (${R.size})`}),R.size>0&&r(S,{type:"button",variant:"secondary",onClick:z,disabled:i!==null||c!==null||p||a!==null,children:i==="bulk"?u.statusDeleting:`${u.actionDeleteSelected} (${R.size})`})]}),k&&r("div",{children:"Loading products..."}),!k&&s&&f("div",{children:[f("h4",{children:["Requisition List Items (",s.items_count||0,")"]}),r("ul",{children:(b=s==null?void 0:s.items)==null?void 0:b.map(n=>f("li",{className:"requisition-list-view__item",children:[r("input",{type:"checkbox",checked:R.has(n.uid),onChange:g=>D(n.uid,g.target.checked),disabled:i!==null||c!==null||p||a!==null}),f("div",{className:"item-info",children:[f("div",{children:[r("strong",{children:"Item UID:"})," ",n.uid]}),n.product&&f("div",{className:"product-info",children:[f("div",{children:[r("strong",{children:"SKU:"})," ",n.product.sku," ",r("strong",{children:n.product.name})]}),n.product.images&&n.product.images.length>0&&r("div",{children:r("img",{src:n.product.images[0].url,alt:n.product.images[0].label,style:{maxWidth:"50px",maxHeight:"50px",margin:"2px"}},0)})]})]}),r("input",{type:"number",min:"1",value:n.quantity,onChange:g=>{const E=parseInt(g.currentTarget.value,10);E>0&&E!==n.quantity&&x(n.uid,E)},disabled:a===n.uid||i!==null||c!==null||p,"data-testid":`quantity-input-${n.uid}`}),r(S,{type:"button",variant:"primary",onClick:()=>C(n.uid),disabled:c===n.uid||i!==null||p||a!==null,"data-testid":"requisition-list-view-add-to-cart-button",children:c===n.uid?u.statusAddingToCart:u.actionAddToCart}),r(S,{type:"button",variant:"secondary",onClick:()=>M(n.uid),disabled:i===n.uid||c!==null||p||a!==null,"data-testid":"requisition-list-view-delete-item-button",children:i===n.uid?u.statusDeleting:u.actionDelete})]},n.uid))}),s.page_info&&s.page_info.total_pages>1&&r("div",{className:"requisition-list-view__pagination",children:r(se,{totalPages:s.page_info.total_pages,currentPage:s.page_info.current_page,onChange:y,disabled:O||k})})]})]})},qe=({requisitionList:s,routeRequisitionListGrid:k,skipProductLoading:V=!1,pageSize:R=10})=>{const[i,q]=d(s),[c,_]=d(!1),[p,a]=d(null),[B,D]=d(null),[$,v]=d(null),[C,A]=d(new Set),[z,x]=d(null),[M,y]=d(null),[O,P]=d(!1),[u,b]=d(null),[n,g]=d(null),[E,j]=d(!1),o=K({errorDelete:"RequisitionList.RequisitionListView.errorDelete",errorAddToCart:"RequisitionList.RequisitionListView.errorAddToCart",errorUpdateQuantity:"RequisitionList.RequisitionListView.errorUpdateQuantity",errorLoadingProducts:"RequisitionList.RequisitionListView.errorLoadingProducts"});F(()=>{q(s),A(new Set)},[s]);const m=w(async e=>{var h,l;const t=((h=e.items)==null?void 0:h.map(L=>L.sku))||[];if(t.length===0)return e;_(!0),a(null);try{const L=await ne(t);if(L){const U=new Map;return L.forEach(T=>{U.set(T.sku,T)}),{...e,items:(l=e.items)==null?void 0:l.map(T=>({...T,product:U.get(T.sku)||T.product}))}}return a("No products found"),e}catch(L){return a(L instanceof Error?L.message:o.errorLoadingProducts),e}finally{_(!1)}},[o.errorLoadingProducts]);F(()=>{if(V)return;(async()=>{const t=await m(s);q(t)})()},[s,m,V]);const J=w((e,t)=>{A(h=>{const l=new Set(h);return t?l.add(e):l.delete(e),l})},[]),X=w(()=>{var t;const e=((t=i.items)==null?void 0:t.map(h=>h.uid))||[];A(new Set(e))},[i.items]),Y=w(()=>{A(new Set)},[]),Z=w(async e=>{x(e),y(null);try{const t=await W(i.uid,[e]);t&&t.length>0?y(o.errorAddToCart):y(null)}catch(t){y(t instanceof Error?t.message:o.errorAddToCart)}finally{x(null)}},[i.uid,o.errorAddToCart]),G=w(async()=>{P(!0),y(null);try{const e=await W(i.uid,Array.from(C));e&&e.length>0?y(o.errorAddToCart):(y(null),A(new Set))}catch(e){y(e instanceof Error?e.message:o.errorAddToCart)}finally{P(!1)}},[i.uid,C,o.errorAddToCart]),I=w(async()=>{D("bulk"),v(null);try{const e=await H(i.uid,Array.from(C));e?(q(e),A(new Set)):v(o.errorDelete)}catch(e){v(e instanceof Error?e.message:o.errorDelete)}finally{D(null)}},[i.uid,C,o.errorDelete]),ee=w(async(e,t)=>{var h;b(e),g(null);try{const l=(h=i.items)==null?void 0:h.find(N=>N.uid===e);if(!l){g(o.errorUpdateQuantity);return}const L={item_id:l.uid,entered_options:l.entered_options,selected_options:l.selected_options,quantity:t},U=await re(i.uid,[L]);if(U){const N=await m(U);q(N),g(null)}else g(o.errorUpdateQuantity)}catch(l){g(l instanceof Error?l.message:o.errorUpdateQuantity)}finally{b(null)}},[i.uid,i.items,o.errorUpdateQuantity,m]),te=w(async e=>{D(e),v(null);try{const t=await H(i.uid,[e]);t?q(t):v(o.errorDelete)}catch(t){v(t instanceof Error?t.message:o.errorDelete)}finally{D(null)}},[i.uid,o.errorDelete]),ie=w(async e=>{j(!0),a(null);try{const t=await oe(i.uid,e,R);if(t){const h=await m(t);q(h)}else a("Failed to load page")}catch(t){a(t instanceof Error?t.message:"Failed to load page")}finally{j(!1)}},[i.uid,m,R]);return r(ae,{currentRequisitionList:i,loadingProducts:c,productError:p,selectedItems:C,deletingItemId:B,deleteError:$,addingToCartItemId:z,addToCartError:M,bulkAddingToCart:O,updatingQuantityItemId:u,updateQuantityError:n,onItemSelection:J,onSelectAll:X,onSelectNone:Y,onAddToCart:Z,onBulkAddToCart:G,onBulkDelete:I,onUpdateQuantity:ee,onDeleteItem:te,onPageChange:ie,loadingPage:E,routeRequisitionListGrid:k})};export{qe as RequisitionListView,qe as default};
4
+ //# sourceMappingURL=RequisitionListView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequisitionListView.js","sources":["/@dropins/storefront-requisition-list/src/components/RequisitionListView/RequisitionListView.tsx","/@dropins/storefront-requisition-list/src/containers/RequisitionListView/RequisitionListView.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport { HTMLAttributes } from 'preact/compat';\nimport { Item } from '@/requisitionList/data/models/item';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport {\n Button,\n InLineAlert,\n Pagination,\n} from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport '@/requisitionList/components/RequisitionListView/RequisitionListView.css';\n\nexport interface RequisitionListViewProps\n extends HTMLAttributes<HTMLDivElement> {\n currentRequisitionList: RequisitionList;\n loadingProducts?: boolean;\n productError?: string | null;\n selectedItems: Set<string>;\n deletingItemId: string | null;\n deleteError: string | null;\n addingToCartItemId: string | null;\n addToCartError: string | null;\n bulkAddingToCart: boolean;\n updatingQuantityItemId: string | null;\n updateQuantityError: string | null;\n onItemSelection: (itemUid: string, isSelected: boolean) => void;\n onSelectAll: () => void;\n onSelectNone: () => void;\n onAddToCart: (itemUid: string) => void;\n onBulkAddToCart: () => void;\n onBulkDelete: () => void;\n onUpdateQuantity: (itemUid: string, newQuantity: number) => void;\n onDeleteItem: (itemUid: string) => void;\n onPageChange?: (page: number) => void;\n loadingPage?: boolean;\n routeRequisitionListGrid?: () => string | void;\n}\n\nexport const RequisitionListView = ({\n currentRequisitionList,\n loadingProducts,\n productError,\n selectedItems,\n deletingItemId,\n deleteError,\n addingToCartItemId,\n addToCartError,\n bulkAddingToCart,\n updatingQuantityItemId,\n updateQuantityError,\n onItemSelection,\n onSelectAll,\n onSelectNone,\n onAddToCart,\n onBulkAddToCart,\n onBulkDelete,\n onUpdateQuantity,\n onDeleteItem,\n onPageChange,\n loadingPage = false,\n routeRequisitionListGrid,\n}: RequisitionListViewProps) => {\n const translations = useText({\n actionDelete: `RequisitionList.RequisitionListView.actionDelete`,\n statusDeleting: `RequisitionList.RequisitionListView.statusDeleting`,\n errorDelete: `RequisitionList.RequisitionListView.errorDelete`,\n actionDeleteSelected: `RequisitionList.RequisitionListView.actionDeleteSelected`,\n actionSelectAll: `RequisitionList.RequisitionListView.actionSelectAll`,\n actionSelectNone: `RequisitionList.RequisitionListView.actionSelectNone`,\n actionAddToCart: `RequisitionList.RequisitionListView.actionAddToCart`,\n statusAddingToCart: `RequisitionList.RequisitionListView.statusAddingToCart`,\n errorAddToCart: `RequisitionList.RequisitionListView.errorAddToCart`,\n successAddToCart: `RequisitionList.RequisitionListView.successAddToCart`,\n actionAddSelectedToCart: `RequisitionList.RequisitionListView.actionAddSelectedToCart`,\n statusBulkAddingToCart: `RequisitionList.RequisitionListView.statusBulkAddingToCart`,\n errorUpdateQuantity: `RequisitionList.RequisitionListView.errorUpdateQuantity`,\n successUpdateQuantity: `RequisitionList.RequisitionListView.successUpdateQuantity`,\n actionBackToRequisitionListsOverview: `RequisitionList.RequisitionListView.actionBackToRequisitionListsOverview`,\n });\n return (\n <div>\n <h3>\n {currentRequisitionList.name}\n {routeRequisitionListGrid && (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={routeRequisitionListGrid}\n >\n {translations.actionBackToRequisitionListsOverview}\n </Button>\n )}\n </h3>\n {deleteError && (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n heading={deleteError}\n data-testid=\"requisition-list-view-delete-error\"\n />\n )}\n {addToCartError && (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n heading={addToCartError}\n data-testid=\"requisition-list-view-add-to-cart-error\"\n />\n )}\n {updateQuantityError && (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n heading={updateQuantityError}\n data-testid=\"requisition-list-view-update-quantity-error\"\n />\n )}\n {productError && (\n <InLineAlert\n type=\"error\"\n variant=\"primary\"\n heading={productError}\n data-testid=\"requisition-list-view-product-error\"\n />\n )}\n\n {/* Bulk actions */}\n <div class=\"requisition-list-view__bulk-actions\">\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onSelectAll}\n disabled={\n deletingItemId !== null ||\n addingToCartItemId !== null ||\n bulkAddingToCart ||\n updatingQuantityItemId !== null\n }\n >\n {translations.actionSelectAll}\n </Button>\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onSelectNone}\n disabled={\n deletingItemId !== null ||\n addingToCartItemId !== null ||\n bulkAddingToCart ||\n updatingQuantityItemId !== null\n }\n >\n {translations.actionSelectNone}\n </Button>\n {selectedItems.size > 0 && (\n <Button\n type=\"button\"\n variant=\"primary\"\n onClick={onBulkAddToCart}\n disabled={\n deletingItemId !== null ||\n addingToCartItemId !== null ||\n bulkAddingToCart ||\n updatingQuantityItemId !== null\n }\n >\n {bulkAddingToCart\n ? translations.statusBulkAddingToCart\n : `${translations.actionAddSelectedToCart} (${selectedItems.size})`}\n </Button>\n )}\n {selectedItems.size > 0 && (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onBulkDelete}\n disabled={\n deletingItemId !== null ||\n addingToCartItemId !== null ||\n bulkAddingToCart ||\n updatingQuantityItemId !== null\n }\n >\n {deletingItemId === 'bulk'\n ? translations.statusDeleting\n : `${translations.actionDeleteSelected} (${selectedItems.size})`}\n </Button>\n )}\n </div>\n\n {/* Display loading state */}\n {loadingProducts && <div>Loading products...</div>}\n\n {/* Display requisition list items with enriched product data */}\n {!loadingProducts && currentRequisitionList && (\n <div>\n <h4>\n Requisition List Items ({currentRequisitionList.items_count || 0})\n </h4>\n <ul>\n {currentRequisitionList?.items?.map((item: Item) => (\n <li className=\"requisition-list-view__item\" key={item.uid}>\n <input\n type=\"checkbox\"\n checked={selectedItems.has(item.uid)}\n onChange={(e) => onItemSelection(item.uid, e.target.checked)}\n disabled={\n deletingItemId !== null ||\n addingToCartItemId !== null ||\n bulkAddingToCart ||\n updatingQuantityItemId !== null\n }\n />\n <div className=\"item-info\">\n <div>\n <strong>Item UID:</strong> {item.uid}\n </div>\n {item.product && (\n <div className=\"product-info\">\n <div>\n <strong>SKU:</strong> {item.product.sku}{' '}\n <strong>{item.product.name}</strong>\n </div>\n {item.product.images &&\n item.product.images.length > 0 && (\n <div>\n <img\n key={0}\n src={item.product.images[0].url}\n alt={item.product.images[0].label}\n style={{\n maxWidth: '50px',\n maxHeight: '50px',\n margin: '2px',\n }}\n />\n </div>\n )}\n </div>\n )}\n </div>\n <input\n type=\"number\"\n min=\"1\"\n value={item.quantity}\n onChange={(e) => {\n const newQuantity = parseInt(e.currentTarget.value, 10);\n if (newQuantity > 0 && newQuantity !== item.quantity) {\n onUpdateQuantity(item.uid, newQuantity);\n }\n }}\n disabled={\n updatingQuantityItemId === item.uid ||\n deletingItemId !== null ||\n addingToCartItemId !== null ||\n bulkAddingToCart\n }\n data-testid={`quantity-input-${item.uid}`}\n />\n <Button\n type=\"button\"\n variant=\"primary\"\n onClick={() => onAddToCart(item.uid)}\n disabled={\n addingToCartItemId === item.uid ||\n deletingItemId !== null ||\n bulkAddingToCart ||\n updatingQuantityItemId !== null\n }\n data-testid=\"requisition-list-view-add-to-cart-button\"\n >\n {addingToCartItemId === item.uid\n ? translations.statusAddingToCart\n : translations.actionAddToCart}\n </Button>\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={() => onDeleteItem(item.uid)}\n disabled={\n deletingItemId === item.uid ||\n addingToCartItemId !== null ||\n bulkAddingToCart ||\n updatingQuantityItemId !== null\n }\n data-testid=\"requisition-list-view-delete-item-button\"\n >\n {deletingItemId === item.uid\n ? translations.statusDeleting\n : translations.actionDelete}\n </Button>\n </li>\n ))}\n </ul>\n\n {/* Pagination */}\n {currentRequisitionList.page_info &&\n currentRequisitionList.page_info.total_pages > 1 && (\n <div className=\"requisition-list-view__pagination\">\n <Pagination\n totalPages={currentRequisitionList.page_info.total_pages}\n currentPage={currentRequisitionList.page_info.current_page}\n onChange={onPageChange}\n disabled={loadingPage || loadingProducts}\n />\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport {\n HTMLAttributes,\n useState,\n useCallback,\n useEffect,\n} from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { Item, Product } from '@/requisitionList/data/models/item';\nimport { RequisitionList } from '@/requisitionList/data/models/requisitionList';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { deleteRequisitionListItems } from '@/requisitionList/api/deleteRequisitionListItems';\nimport { addRequisitionListItemsToCart } from '@/requisitionList/api/addRequisitionListItemsToCart';\nimport { updateRequisitionListItems } from '@/requisitionList/api/updateRequisitionListItems';\nimport { getProductData } from '@/requisitionList/api/getProductData';\nimport { getRequisitionList } from '@/requisitionList/api/getRequisitionList';\nimport { RequisitionListView as RequisitionListViewComponent } from '@/requisitionList/components/RequisitionListView/RequisitionListView';\n\nexport interface RequisitionListViewProps\n extends HTMLAttributes<HTMLDivElement> {\n requisitionList: RequisitionList;\n routeRequisitionListGrid?: () => string | void;\n /**\n * When true, skips automatic product data fetching on component mount.\n * Used in tests to prevent API calls.\n */\n skipProductLoading?: boolean;\n /**\n * Number of items per page for pagination.\n * Defaults to 10.\n */\n pageSize?: number;\n}\n\nexport const RequisitionListView: Container<RequisitionListViewProps> = ({\n requisitionList,\n routeRequisitionListGrid,\n skipProductLoading = false,\n pageSize = 10,\n}: RequisitionListViewProps) => {\n const [currentRequisitionList, setCurrentRequisitionList] =\n useState<RequisitionList>(requisitionList);\n const [loadingProducts, setLoadingProducts] = useState<boolean>(false);\n const [productError, setProductError] = useState<string | null>(null);\n const [deletingItemId, setDeletingItemId] = useState<string | null>(null);\n const [deleteError, setDeleteError] = useState<string | null>(null);\n const [selectedItems, setSelectedItems] = useState<Set<string>>(new Set());\n const [addingToCartItemId, setAddingToCartItemId] = useState<string | null>(\n null\n );\n const [addToCartError, setAddToCartError] = useState<string | null>(null);\n const [bulkAddingToCart, setBulkAddingToCart] = useState<boolean>(false);\n const [updatingQuantityItemId, setUpdatingQuantityItemId] = useState<\n string | null\n >(null);\n const [updateQuantityError, setUpdateQuantityError] = useState<string | null>(\n null\n );\n const [loadingPage, setLoadingPage] = useState<boolean>(false);\n\n const translations = useText({\n errorDelete: `RequisitionList.RequisitionListView.errorDelete`,\n errorAddToCart: `RequisitionList.RequisitionListView.errorAddToCart`,\n errorUpdateQuantity: `RequisitionList.RequisitionListView.errorUpdateQuantity`,\n errorLoadingProducts: `RequisitionList.RequisitionListView.errorLoadingProducts`,\n });\n\n // Sync prop changes to local state\n useEffect(() => {\n setCurrentRequisitionList(requisitionList);\n // Clear selections when requisition list changes\n setSelectedItems(new Set());\n }, [requisitionList]);\n\n // Function to fetch and merge product data\n const fetchAndMergeProducts = useCallback(\n async (baseRequisitionList: RequisitionList) => {\n // Extract SKUs from requisition list items\n const productSkus =\n baseRequisitionList.items?.map((item: Item) => item.sku) || [];\n\n if (productSkus.length === 0) {\n return baseRequisitionList;\n }\n\n setLoadingProducts(true);\n setProductError(null);\n\n try {\n const fetchedProducts = await getProductData(productSkus);\n if (fetchedProducts) {\n // Create a map of SKU to Product for easy lookup\n const productMap = new Map<string, Product>();\n fetchedProducts.forEach((product: Product) => {\n productMap.set(product.sku, product);\n });\n\n // Update requisition list items with fetched product data\n const updatedRequisitionList = {\n ...baseRequisitionList,\n items: baseRequisitionList.items?.map((item: Item) => ({\n ...item,\n product: productMap.get(item.sku) || item.product, // Use fetched product or keep existing\n })),\n };\n\n return updatedRequisitionList;\n }\n setProductError('No products found');\n return baseRequisitionList;\n } catch (error) {\n setProductError(\n error instanceof Error\n ? error.message\n : translations.errorLoadingProducts\n );\n return baseRequisitionList;\n } finally {\n setLoadingProducts(false);\n }\n },\n [translations.errorLoadingProducts]\n );\n\n // Fetch products from requisition list items on initial load\n useEffect(() => {\n // Skip product loading in test mode\n if (skipProductLoading) {\n return;\n }\n\n const loadInitialProducts = async () => {\n const updatedList = await fetchAndMergeProducts(requisitionList);\n setCurrentRequisitionList(updatedList);\n };\n\n loadInitialProducts();\n }, [requisitionList, fetchAndMergeProducts, skipProductLoading]);\n\n const handleItemSelection = useCallback(\n (itemUid: string, isSelected: boolean) => {\n setSelectedItems((prev: Set<string>) => {\n const newSet = new Set(prev);\n if (isSelected) {\n newSet.add(itemUid);\n } else {\n newSet.delete(itemUid);\n }\n return newSet;\n });\n },\n []\n );\n\n const handleSelectAll = useCallback(() => {\n const allItemUids =\n currentRequisitionList.items?.map((item: Item) => item.uid) || [];\n setSelectedItems(new Set(allItemUids));\n }, [currentRequisitionList.items]);\n\n const handleSelectNone = useCallback(() => {\n setSelectedItems(new Set());\n }, []);\n\n const handleAddToCart = useCallback(\n async (itemUid: string) => {\n setAddingToCartItemId(itemUid);\n setAddToCartError(null);\n\n try {\n const errors = await addRequisitionListItemsToCart(\n currentRequisitionList.uid,\n [itemUid]\n );\n\n if (errors && errors.length > 0) {\n setAddToCartError(translations.errorAddToCart);\n } else {\n // Success - could show a success message or remove the item from the list\n // For now, we'll just clear the error state\n setAddToCartError(null);\n }\n } catch (error) {\n setAddToCartError(\n error instanceof Error ? error.message : translations.errorAddToCart\n );\n } finally {\n setAddingToCartItemId(null);\n }\n },\n [currentRequisitionList.uid, translations.errorAddToCart]\n );\n\n const handleBulkAddToCart = useCallback(async () => {\n setBulkAddingToCart(true);\n setAddToCartError(null);\n\n try {\n const errors = await addRequisitionListItemsToCart(\n currentRequisitionList.uid,\n Array.from(selectedItems)\n );\n\n if (errors && errors.length > 0) {\n setAddToCartError(translations.errorAddToCart);\n } else {\n // Success - could show a success message\n setAddToCartError(null);\n // Optionally clear selections after successful bulk add\n setSelectedItems(new Set());\n }\n } catch (error) {\n setAddToCartError(\n error instanceof Error ? error.message : translations.errorAddToCart\n );\n } finally {\n setBulkAddingToCart(false);\n }\n }, [currentRequisitionList.uid, selectedItems, translations.errorAddToCart]);\n\n const handleBulkDelete = useCallback(async () => {\n setDeletingItemId('bulk');\n setDeleteError(null);\n\n try {\n const updatedRequisitionList = await deleteRequisitionListItems(\n currentRequisitionList.uid,\n Array.from(selectedItems)\n );\n\n if (updatedRequisitionList) {\n setCurrentRequisitionList(updatedRequisitionList);\n setSelectedItems(new Set());\n } else {\n setDeleteError(translations.errorDelete);\n }\n } catch (error) {\n setDeleteError(\n error instanceof Error ? error.message : translations.errorDelete\n );\n } finally {\n setDeletingItemId(null);\n }\n }, [currentRequisitionList.uid, selectedItems, translations.errorDelete]);\n\n const handleUpdateQuantity = useCallback(\n async (itemUid: string, newQuantity: number) => {\n setUpdatingQuantityItemId(itemUid);\n setUpdateQuantityError(null);\n\n try {\n // Find the current item to update\n const currentItem = currentRequisitionList.items?.find(\n (item: Item) => item.uid === itemUid\n );\n if (!currentItem) {\n setUpdateQuantityError(translations.errorUpdateQuantity);\n return;\n }\n\n // Create updated item with new quantity\n const updatedItem = {\n item_id: currentItem.uid,\n entered_options: currentItem.entered_options,\n selected_options: currentItem.selected_options,\n quantity: newQuantity,\n };\n\n const updatedRequisitionList = await updateRequisitionListItems(\n currentRequisitionList.uid,\n [updatedItem]\n );\n\n if (updatedRequisitionList) {\n // Reload product data with updated quantities\n const enrichedRequisitionList = await fetchAndMergeProducts(\n updatedRequisitionList\n );\n setCurrentRequisitionList(enrichedRequisitionList);\n setUpdateQuantityError(null);\n } else {\n setUpdateQuantityError(translations.errorUpdateQuantity);\n }\n } catch (error) {\n setUpdateQuantityError(\n error instanceof Error\n ? error.message\n : translations.errorUpdateQuantity\n );\n } finally {\n setUpdatingQuantityItemId(null);\n }\n },\n [\n currentRequisitionList.uid,\n currentRequisitionList.items,\n translations.errorUpdateQuantity,\n fetchAndMergeProducts,\n ]\n );\n\n const handleDeleteItem = useCallback(\n async (itemUid: string) => {\n setDeletingItemId(itemUid);\n setDeleteError(null);\n\n try {\n const updatedRequisitionList = await deleteRequisitionListItems(\n currentRequisitionList.uid,\n [itemUid]\n );\n\n if (updatedRequisitionList) {\n setCurrentRequisitionList(updatedRequisitionList);\n } else {\n setDeleteError(translations.errorDelete);\n }\n } catch (error) {\n setDeleteError(\n error instanceof Error ? error.message : translations.errorDelete\n );\n } finally {\n setDeletingItemId(null);\n }\n },\n [currentRequisitionList.uid, translations.errorDelete]\n );\n\n const handlePageChange = useCallback(\n async (page: number) => {\n setLoadingPage(true);\n setProductError(null);\n\n try {\n const updatedRequisitionList = await getRequisitionList(\n currentRequisitionList.uid,\n page,\n pageSize\n );\n\n if (updatedRequisitionList) {\n // Fetch product data for the new page\n const updatedListWithProducts = await fetchAndMergeProducts(\n updatedRequisitionList\n );\n setCurrentRequisitionList(updatedListWithProducts);\n } else {\n setProductError('Failed to load page');\n }\n } catch (error) {\n setProductError(\n error instanceof Error ? error.message : 'Failed to load page'\n );\n } finally {\n setLoadingPage(false);\n }\n },\n [currentRequisitionList.uid, fetchAndMergeProducts, pageSize]\n );\n\n return (\n <RequisitionListViewComponent\n currentRequisitionList={currentRequisitionList}\n loadingProducts={loadingProducts}\n productError={productError}\n selectedItems={selectedItems}\n deletingItemId={deletingItemId}\n deleteError={deleteError}\n addingToCartItemId={addingToCartItemId}\n addToCartError={addToCartError}\n bulkAddingToCart={bulkAddingToCart}\n updatingQuantityItemId={updatingQuantityItemId}\n updateQuantityError={updateQuantityError}\n onItemSelection={handleItemSelection}\n onSelectAll={handleSelectAll}\n onSelectNone={handleSelectNone}\n onAddToCart={handleAddToCart}\n onBulkAddToCart={handleBulkAddToCart}\n onBulkDelete={handleBulkDelete}\n onUpdateQuantity={handleUpdateQuantity}\n onDeleteItem={handleDeleteItem}\n onPageChange={handlePageChange}\n loadingPage={loadingPage}\n routeRequisitionListGrid={routeRequisitionListGrid}\n />\n );\n};\n"],"names":["RequisitionListView","currentRequisitionList","loadingProducts","productError","selectedItems","deletingItemId","deleteError","addingToCartItemId","addToCartError","bulkAddingToCart","updatingQuantityItemId","updateQuantityError","onItemSelection","onSelectAll","onSelectNone","onAddToCart","onBulkAddToCart","onBulkDelete","onUpdateQuantity","onDeleteItem","onPageChange","loadingPage","routeRequisitionListGrid","translations","useText","jsxs","jsx","Button","InLineAlert","_a","item","e","newQuantity","Pagination","requisitionList","skipProductLoading","pageSize","setCurrentRequisitionList","useState","setLoadingProducts","setProductError","setDeletingItemId","setDeleteError","setSelectedItems","setAddingToCartItemId","setAddToCartError","setBulkAddingToCart","setUpdatingQuantityItemId","setUpdateQuantityError","setLoadingPage","useEffect","fetchAndMergeProducts","useCallback","baseRequisitionList","productSkus","fetchedProducts","getProductData","productMap","product","_b","error","updatedList","handleItemSelection","itemUid","isSelected","prev","newSet","handleSelectAll","allItemUids","handleSelectNone","handleAddToCart","errors","addRequisitionListItemsToCart","handleBulkAddToCart","handleBulkDelete","updatedRequisitionList","deleteRequisitionListItems","handleUpdateQuantity","currentItem","updatedItem","updateRequisitionListItems","enrichedRequisitionList","handleDeleteItem","handlePageChange","page","getRequisitionList","updatedListWithProducts","RequisitionListViewComponent"],"mappings":"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"}
@@ -16,5 +16,6 @@
16
16
  *******************************************************************/
17
17
  export * from './RequisitionListForm';
18
18
  export * from './RequisitionListGrid';
19
+ export * from './RequisitionListView';
19
20
  export * from './RequisitionListNames';
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -16,16 +16,27 @@
16
16
  *******************************************************************/
17
17
  export interface Product {
18
18
  sku: string;
19
- quantity: number;
20
19
  parent_sku: string;
21
- selected_options: string[];
22
- entered_options: {
23
- uid: string;
24
- value: string;
20
+ name: string;
21
+ shortDescription: string;
22
+ metaDescription: string;
23
+ metaKeyword: string;
24
+ metaTitle: string;
25
+ description: string;
26
+ addToCartAllowed: boolean;
27
+ url: string;
28
+ urlKey: string;
29
+ externalId: string;
30
+ images: {
31
+ url: string;
32
+ label: string;
33
+ roles: string[];
25
34
  }[];
26
35
  }
27
36
  export interface Item {
28
37
  uid: string;
38
+ sku: string;
39
+ product: Product;
29
40
  quantity: number;
30
41
  customizable_options?: {
31
42
  uid: string;
@@ -1,5 +1,10 @@
1
1
  import { Item } from './item';
2
2
 
3
+ export interface PageInfo {
4
+ page_size: number;
5
+ current_page: number;
6
+ total_pages: number;
7
+ }
3
8
  export interface RequisitionList {
4
9
  uid: string;
5
10
  name: string;
@@ -7,5 +12,6 @@ export interface RequisitionList {
7
12
  updated_at: string;
8
13
  items_count: number;
9
14
  items: Item[];
15
+ page_info?: PageInfo;
10
16
  }
11
17
  //# sourceMappingURL=requisitionList.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { RequisitionList } from '../../models/requisitionList';
2
+
3
+ declare const requisitionListViewData: RequisitionList;
4
+ export { requisitionListViewData };
5
+ //# sourceMappingURL=requisitionListViewData.d.ts.map
@@ -15,4 +15,5 @@
15
15
  * from Adobe.
16
16
  *******************************************************************/
17
17
  export * from './transform-requisition-list';
18
+ export * from './transform-product';
18
19
  //# sourceMappingURL=index.d.ts.map