@dropins/storefront-requisition-list 0.6.0-beta → 0.8.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 (80) hide show
  1. package/api/addProductsToRequisitionList/addProductsToRequisitionList.d.ts +11 -2
  2. package/api/getRequisitionList/graphql/refineProduct.d.ts +18 -0
  3. package/api/getStoreConfig/{isRequisitionListEnabled.d.ts → getStoreConfig.d.ts} +2 -2
  4. package/api/getStoreConfig/graphql/storeConfigQuery.d.ts +1 -1
  5. package/api/getStoreConfig/index.d.ts +1 -1
  6. package/api/updateRequisitionList/index.d.ts +1 -1
  7. package/api/updateRequisitionList/updateRequisitionList.d.ts +1 -1
  8. package/api.js +3 -2
  9. package/api.js.map +1 -1
  10. package/chunks/PageSizePicker.js +1 -1
  11. package/chunks/PageSizePicker.js.map +1 -1
  12. package/chunks/RequisitionListActions.js +4 -0
  13. package/chunks/RequisitionListActions.js.map +1 -0
  14. package/chunks/RequisitionListForm.js +1 -37
  15. package/chunks/RequisitionListForm.js.map +1 -1
  16. package/chunks/RequisitionListForm2.js +21 -0
  17. package/chunks/RequisitionListForm2.js.map +1 -0
  18. package/chunks/RequisitionListHeader.js +4 -0
  19. package/chunks/RequisitionListHeader.js.map +1 -0
  20. package/chunks/RequisitionListModal.js +4 -0
  21. package/chunks/RequisitionListModal.js.map +1 -0
  22. package/chunks/RequisitionListView.js +4 -0
  23. package/chunks/RequisitionListView.js.map +1 -0
  24. package/chunks/addRequisitionListItemsToCart.js +40 -14
  25. package/chunks/addRequisitionListItemsToCart.js.map +1 -1
  26. package/chunks/deleteRequisitionList.js +1 -1
  27. package/chunks/deleteRequisitionList.js.map +1 -1
  28. package/chunks/getRequisitionLists.js +1 -1
  29. package/chunks/getRequisitionLists.js.map +1 -1
  30. package/chunks/state.js +4 -0
  31. package/chunks/state.js.map +1 -0
  32. package/chunks/updateRequisitionList.js +108 -0
  33. package/chunks/updateRequisitionList.js.map +1 -0
  34. package/components/NotFound/NotFound.d.ts +11 -0
  35. package/{containers/RequisitionListNames → components/NotFound}/index.d.ts +2 -2
  36. package/components/RequisitionListHeader/RequisitionListHeader.d.ts +20 -0
  37. package/components/RequisitionListHeader/index.d.ts +19 -0
  38. package/components/index.d.ts +2 -0
  39. package/containers/RequisitionListForm.js +1 -1
  40. package/containers/RequisitionListGrid/RequisitionListGrid.d.ts +0 -2
  41. package/containers/RequisitionListGrid.js +1 -1
  42. package/containers/RequisitionListGrid.js.map +1 -1
  43. package/containers/RequisitionListHeader/RequisitionListHeader.d.ts +10 -0
  44. package/containers/RequisitionListHeader/index.d.ts +19 -0
  45. package/containers/RequisitionListHeader.d.ts +1 -0
  46. package/containers/RequisitionListHeader.js +4 -0
  47. package/containers/RequisitionListHeader.js.map +1 -0
  48. package/containers/RequisitionListSelector/RequisitionListSelector.d.ts +12 -0
  49. package/containers/RequisitionListSelector/index.d.ts +19 -0
  50. package/containers/RequisitionListSelector.d.ts +3 -0
  51. package/containers/RequisitionListSelector.js +23 -0
  52. package/containers/RequisitionListSelector.js.map +1 -0
  53. package/containers/RequisitionListView/RequisitionListView.d.ts +12 -5
  54. package/containers/RequisitionListView.js +1 -1
  55. package/containers/RequisitionListView.js.map +1 -1
  56. package/containers/index.d.ts +2 -1
  57. package/data/models/item.d.ts +89 -66
  58. package/data/transforms/transform-requisition-list.d.ts +8 -68
  59. package/hooks/index.d.ts +2 -0
  60. package/hooks/useRequisitionListEnabled.d.ts +20 -0
  61. package/hooks/useRequisitionListGrid.d.ts +1 -2
  62. package/hooks/useRequisitionListSelectedItems.d.ts +3 -3
  63. package/hooks/useRequisitionLists.d.ts +7 -0
  64. package/i18n/en_US.json.d.ts +32 -10
  65. package/lib/constants.d.ts +28 -0
  66. package/lib/state.d.ts +16 -16
  67. package/lib/validate-uid.d.ts +25 -0
  68. package/package.json +1 -1
  69. package/render.js +4 -3
  70. package/render.js.map +1 -1
  71. package/chunks/PageSizePicker2.js +0 -4
  72. package/chunks/PageSizePicker2.js.map +0 -1
  73. package/chunks/RequisitionListItemsFragment.graphql.js +0 -75
  74. package/chunks/RequisitionListItemsFragment.graphql.js.map +0 -1
  75. package/chunks/transform-requisition-list.js +0 -12
  76. package/chunks/transform-requisition-list.js.map +0 -1
  77. package/containers/RequisitionListNames/RequisitionListNames.d.ts +0 -15
  78. package/containers/RequisitionListNames.d.ts +0 -3
  79. package/containers/RequisitionListNames.js +0 -23
  80. package/containers/RequisitionListNames.js.map +0 -1
@@ -24,35 +24,42 @@ declare const _default: {
24
24
  "actionCancel": "Cancel",
25
25
  "actionSave": "Save",
26
26
  "requiredField": "This is a required field.",
27
+ "nameMinLength": "Name must be at least {min} characters long.",
28
+ "nameInvalidCharacters": "Name contains invalid characters. Only letters, numbers, spaces, and basic punctuation are allowed.",
27
29
  "floatingLabel": "Requisition List Name *",
28
30
  "placeholder": "Requisition List Name",
29
31
  "label": "Description",
30
32
  "updateTitle": "Update Requisition List",
31
33
  "createTitle": "Create Requisition List",
32
- "addToRequisitionList": "Add to Requisition List:"
34
+ "addToRequisitionList": "Add to Requisition List"
35
+ },
36
+ "RequisitionListSelector": {
37
+ "addToNewRequisitionList": "Add to New Requisition List",
38
+ "addToSelected": "Add to Selected List"
33
39
  },
34
40
  "RequisitionListAlert": {
35
- "errorCreate": "Error creating requisition list",
41
+ "errorCreate": "Error creating requisition list.",
36
42
  "successCreate": "Requisition list created successfully.",
37
- "errorAddToCart": "Error adding item to cart",
43
+ "errorAddToCart": "Error adding item to cart.",
38
44
  "successAddToCart": "Item(s) added to cart successfully.",
39
- "errorUpdateQuantity": "Error updating quantity",
45
+ "errorUpdateQuantity": "Error updating quantity.",
40
46
  "successUpdateQuantity": "Item quantity updated successfully.",
41
- "errorUpdate": "Error updating requisition list",
47
+ "errorUpdate": "Error updating requisition list.",
42
48
  "successUpdate": "Requisition list updated successfully.",
43
- "errorDeleteItem": "Error deleting item",
49
+ "errorDeleteItem": "Error deleting item.",
44
50
  "successDeleteItem": "Item(s) deleted successfully.",
45
- "errorDeleteReqList": "Error deleting requisition list",
51
+ "errorDeleteReqList": "Error deleting requisition list.",
46
52
  "successDeleteReqList": "Requisition list deleted successfully.",
47
- "errorMove": "Error moving item(s) to cart",
53
+ "errorMove": "Error moving item(s) to cart.",
48
54
  "successMove": "Item(s) successfully moved to cart.",
49
- "errorAddToRequisitionList": "Error adding item(s) to requisition list",
55
+ "errorAddToRequisitionList": "Error adding item(s) to requisition list.",
50
56
  "successAddToRequisitionList": "Item(s) successfully added to requisition list."
51
57
  },
52
58
  "RequisitionListView": {
53
59
  "actionDelete": "Delete",
54
60
  "statusDeleting": "Deleting...",
55
61
  "actionDeleteSelected": "Delete Selected",
62
+ "actionDeleteSelectedItems": "Delete selected items",
56
63
  "actionSelectAll": "Select All",
57
64
  "actionSelectNone": "Select None",
58
65
  "actionAddToCart": "Add to Cart",
@@ -64,7 +71,18 @@ declare const _default: {
64
71
  "errorUpdateQuantity": "Error updating quantity",
65
72
  "successUpdateQuantity": "Item quantity updated successfully.",
66
73
  "actionBackToRequisitionListsOverview": "Back to requisition lists overview",
74
+ "actionBackToRequisitionLists": "Back to Requisition Lists",
75
+ "actionRename": "Rename",
76
+ "actionDeleteList": "Delete List",
77
+ "deleteListTitle": "Delete Requisition List?",
78
+ "deleteListMessage": "Are you sure you want to delete this requisition list? This action cannot be undone.",
79
+ "deleteItemsTitle": "Delete Item(s)?",
80
+ "deleteItemsMessage": "Are you sure you want to delete the selected item(s) from this requisition list? This action cannot be undone.",
81
+ "confirmAction": "Delete",
82
+ "cancelAction": "Cancel",
67
83
  "emptyRequisitionList": " Requisition List is empty",
84
+ "show": "Show",
85
+ "itemsCounter": "Items {from}-{to} of {total}",
68
86
  "productListTable": {
69
87
  "headers": {
70
88
  "productName": "Product name",
@@ -76,7 +94,11 @@ declare const _default: {
76
94
  },
77
95
  "itemQuantity": "Item quantity"
78
96
  },
79
- "errorLoadPage": "Failed to load page"
97
+ "errorLoadPage": "Failed to load page",
98
+ "errorLoadingProducts": "Failed to load product data",
99
+ "notFoundTitle": "Requisition List Not Found",
100
+ "notFoundMessage": "The requisition list you are looking for does not exist or you do not have access to it.",
101
+ "notFoundActionLabel": "Back to Requisition Lists"
80
102
  },
81
103
  "PageSizePicker": {
82
104
  "itemsPerPage": "Items per page"
@@ -0,0 +1,28 @@
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
+ /**
18
+ * Default page size for pagination in requisition lists
19
+ */
20
+ export declare const DEFAULT_PAGE_SIZE = 10;
21
+ /**
22
+ * Validation constants for requisition list forms
23
+ */
24
+ export declare const NAME_MIN_LENGTH = 3;
25
+ export declare const NAME_MAX_LENGTH = 40;
26
+ export declare const DESCRIPTION_MAX_LENGTH = 255;
27
+ export declare const NAME_VALID_CHARS: RegExp;
28
+ //# sourceMappingURL=constants.d.ts.map
package/lib/state.d.ts CHANGED
@@ -1,22 +1,22 @@
1
- /********************************************************************
2
- * ADOBE CONFIDENTIAL
3
- * __________________
4
- *
5
- * Copyright 2025 Adobe
6
- * All Rights Reserved.
7
- *
8
- * NOTICE: All information contained herein is, and remains
9
- * the property of Adobe and its suppliers, if any. The intellectual
10
- * and technical concepts contained herein are proprietary to Adobe
11
- * and its suppliers and are protected by all applicable intellectual
12
- * property laws, including trade secret and copyright laws.
13
- * Dissemination of this information or reproduction of this material
14
- * is strictly forbidden unless prior written permission is obtained
15
- * from Adobe.
16
- *******************************************************************/
1
+ import { RequisitionList } from '../data/models/requisitionList';
2
+
3
+ export type StoreConfig = {
4
+ is_requisition_list_active?: string;
5
+ company_enabled?: boolean;
6
+ [key: string]: any;
7
+ };
17
8
  type State = {
18
9
  authenticated: boolean;
10
+ config: StoreConfig | undefined;
11
+ requisitionLists: RequisitionList[];
12
+ requisitionListsLoading: boolean;
13
+ requisitionListsVersion: number;
19
14
  };
20
15
  export declare const state: State;
16
+ export declare const setRequisitionLists: (lists: RequisitionList[]) => void;
17
+ export declare const addRequisitionList: (list: RequisitionList) => void;
18
+ export declare const updateRequisitionList: (list: RequisitionList) => void;
19
+ export declare const getRequisitionListsFromState: () => RequisitionList[];
20
+ export declare const setRequisitionListsLoading: (loading: boolean) => void;
21
21
  export {};
22
22
  //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1,25 @@
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
+ /**
18
+ * Validates if a string is a valid base64-encoded UID
19
+ * Adobe Commerce/Magento UIDs are base64 encoded
20
+ *
21
+ * @param uid - The UID to validate
22
+ * @returns true if the UID appears to be valid base64 encoding
23
+ */
24
+ export declare function isValidBase64Uid(uid: string | undefined | null): boolean;
25
+ //# sourceMappingURL=validate-uid.d.ts.map
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-requisition-list", "version": "0.6.0-beta", "@dropins/tools": "~1.5.0", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-requisition-list", "version": "0.8.0-beta", "@dropins/tools": "~1.6.0-beta2", "license": "SEE LICENSE IN LICENSE.md"}
package/render.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- (function(r,e){try{if(typeof document<"u"){const i=document.createElement("style"),a=e.styleId;for(const t in e.attributes)i.setAttribute(t,e.attributes[t]);i.setAttribute("data-dropin",a),i.appendChild(document.createTextNode(r));const n=document.querySelector('style[data-dropin="sdk"]');if(n)n.after(i);else{const t=document.querySelector('link[rel="stylesheet"], style');t?t.before(i):document.head.append(i)}}}catch(i){console.error("dropin-styles (injectCodeFunction)",i)}})(`.requisition-list-form{background-color:var(--color-neutral-50);box-sizing:border-box}.requisition-list-form__title{color:var(--color-neutral-800);font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing);margin-bottom:var(--spacing-medium)}.requisition-list-form__notification{margin-bottom:var(--spacing-medium)}.requisition-list-form__form{display:grid;gap:var(--spacing-medium);grid-template-columns:1fr}.requisition-list-form__actions{align-items:center;display:flex;gap:0 var(--grid-2-gutters);justify-content:flex-end}.requisition-list-form_progress-spinner{float:right}
4
- .requisition-list-names{position:relative}.requisition-list-names .requisition-list-names__picker{position:absolute;width:100%}.requisition-list-names .requisition-list-names__picker select{border:none}.requisition-list-names .requisition-list-names__alert{background:var(--color-neutral-50);position:absolute;top:0;width:100%;z-index:3}.requisition-list-names .dropin-card{top:0;position:absolute;width:100%;z-index:2}.requisition-list-names.requisition-list-names--modal-hover .requisition-list-names__alert{right:-17px;top:-225px}.requisition-list-names.requisition-list-names--modal-hover .dropin-card{bottom:0;top:auto}.requisition-list-grid-wrapper__content{display:grid;grid-template-columns:repeat(4,1fr);row-gap:var(--spacing-xsmall);width:100%}.requisition-list-grid-wrapper__list-header{display:contents}.requisition-list-grid-wrapper__pagination{grid-column:1 / -1;margin:var(--spacing-medium)}.requisition-list-grid-wrapper__pagination-controls{display:flex;align-items:center;gap:var(--spacing-medium);justify-content:center;min-height:40px}.requisition-list-grid-wrapper__add-new{margin:var(--spacing-medium) 0}.requisition-list-grid-wrapper__name__title{display:block;font:var(--type-body-1-emphasized-font);margin-bottom:2px}.requisition-list-grid-wrapper__name__description{font:var(--type-details-caption-2-font)}.requisition-list-grid-wrapper__actions{display:flex;gap:var(--spacing-medium)}.requisition-list-grid-wrapper__actions .dropin-button--tertiary{padding:0}.requisition-list-grid-wrapper__actions .dropin-button--tertiary:hover{text-decoration:underline}.requisition-list-empty-list{margin-bottom:var(--spacing-small);text-align:center}.requisition-list-actions{align-items:center;background-color:var(--color-neutral-50);border:var(--shape-border-width-2) solid var(--color-neutral-400);border-radius:var(--shape-border-radius-2);cursor:pointer;display:flex;justify-content:space-between;padding:var(--spacing-medium);width:100%}.requisition-list-actions--selectable{max-width:100%;width:auto}.requisition-list-actions__title{font:var(--type-button-2-font);letter-spacing:var(--type-button-2-letter-spacing);-moz-appearance:none;appearance:none;-webkit-appearance:none;color:var(--color-neutral-800)}.requisition-list-actions svg{color:var(--color-neutral-800);stroke:var(--shape-icon-stroke-4)}@supports (height: 100dvh){.requisition-list-modal .dropin-modal{height:100dvh}}.dropin-modal__body--medium>.dropin-modal__header-title,.dropin-modal__body--full>.dropin-modal__header-title,.requisition-list-modal .dropin-modal__content{align-items:center;margin:0}.requisition-list-modal .dropin-modal__header-title-content h3{font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);margin:0;padding:0}.requisition-list-modal .requisition-list-modal__spinner{align-items:center;background-color:var(--color-neutral-200);display:flex;height:100%;left:0;justify-content:center;opacity:var(--color-opacity-24);position:absolute;top:0;width:100%;z-index:1}.requisition-list-modal p{margin:var(--spacing-small) 0}.requisition-list-modal .requisition-list-modal__buttons{align-items:center;display:flex;gap:0 var(--spacing-small);justify-content:right}.requisition-list-modal--overlay{margin:auto;max-width:375px;padding:var(--spacing-small);position:relative;width:100%}@media (min-width: 768px){.requisition-list-modal--overlay{margin:auto;max-width:768px;padding:var(--spacing-xxbig);position:relative;width:100%}.requisition-list-modal p{color:var(--color-neutral-800);font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin-bottom:var(--spacing-medium)}}.empty-list{text-align:center;margin:auto 0}.requisition-list-view-product-list-table-container{display:flex;flex-direction:column;gap:var(--spacing-small)}.requisition-list-view-product-list-table__checkbox{align-self:center;justify-self:center}.requisition-list-view-product-list-table__product-name{font:var(--type-body-1-font);letter-spacing:var(--type-body-1-letter-spacing)}.requisition-list-view-product-list-table__sku{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing)}.requisition-list-view-product-list-table__quantity{font:var(--type-body-1-font);letter-spacing:var(--type-body-1-letter-spacing);display:block;justify-self:center}.requisition-list-view-product-list-table__discount-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--spacing-xxsmall);align-items:baseline}.requisition-list-view-product-list-table-container__submit-container{display:flex;justify-content:flex-end}.requisition-list-view__bulk-actions{margin-bottom:var(--spacing-xsmall);display:flex;gap:var(--spacing-xsmall);align-items:center}.requisition-list-view__item{display:flex;align-items:center;gap:var(--spacing-xsmall);margin-bottom:var(--spacing-xxsmall)}.requisition-list-view__item input[type=number]{width:var(--spacing-large);margin-right:var(--spacing-xxsmall)}.requisition-list-view__pagination{margin-top:var(--spacing-medium);display:flex;justify-content:center}.requisition-list-view__pagination-controls{display:flex;align-items:center;gap:var(--spacing-medium);min-height:40px}.page-size-picker{display:flex;align-items:center;gap:var(--spacing-xsmall)}.page-size-picker__label{font-size:var(--font-size-small);color:var(--color-text-secondary);white-space:nowrap}.page-size-picker__select{min-width:60px}`,{styleId:"RequisitionList"});
5
- import{jsx as t}from"@dropins/tools/preact-jsx-runtime.js";import{Render as n}from"@dropins/tools/lib.js";import{useState as a,useEffect as u}from"@dropins/tools/preact-hooks.js";import{UIProvider as d}from"@dropins/tools/components.js";import{events as c}from"@dropins/tools/event-bus.js";const l={containerTitle:"Requisition Lists",RequisitionListWrapper:{name:"Name & Description",itemsCount:"Items",lastUpdated:"Latest activity",actions:"Actions",loginMsg:"Please login",deleteRequisitionListTitle:"Are you sure you want to delete this Requisition List?",deleteRequisitionListMessage:"Requisition List will be permanently deleted. This action can not be undone.",confirmAction:"Confirm",cancelAction:"Cancel",emptyList:"No Requisition Lists found"},AddNewReqList:{addNewReqListBtn:"Add new Requisition List"},RequisitionListItem:{actionUpdate:"Update",actionDelete:"Delete"},RequisitionListForm:{actionCancel:"Cancel",actionSave:"Save",requiredField:"This is a required field.",floatingLabel:"Requisition List Name *",placeholder:"Requisition List Name",label:"Description",updateTitle:"Update Requisition List",createTitle:"Create Requisition List",addToRequisitionList:"Add to Requisition List:"},RequisitionListAlert:{errorCreate:"Error creating requisition list",successCreate:"Requisition list created successfully.",errorAddToCart:"Error adding item to cart",successAddToCart:"Item(s) added to cart successfully.",errorUpdateQuantity:"Error updating quantity",successUpdateQuantity:"Item quantity updated successfully.",errorUpdate:"Error updating requisition list",successUpdate:"Requisition list updated successfully.",errorDeleteItem:"Error deleting item",successDeleteItem:"Item(s) deleted successfully.",errorDeleteReqList:"Error deleting requisition list",successDeleteReqList:"Requisition list deleted successfully.",errorMove:"Error moving item(s) to cart",successMove:"Item(s) successfully moved to cart.",errorAddToRequisitionList:"Error adding item(s) to requisition list",successAddToRequisitionList:"Item(s) successfully added to requisition list."},RequisitionListView:{actionDelete:"Delete",statusDeleting:"Deleting...",actionDeleteSelected:"Delete Selected",actionSelectAll:"Select All",actionSelectNone:"Select None",actionAddToCart:"Add to Cart",statusAddingToCart:"Adding...",actionAddSelectedToCart:"Add Selected to Cart",statusBulkAddingToCart:"Adding to Cart...",actionUpdateQuantity:"Update",statusUpdatingQuantity:"Updating...",errorUpdateQuantity:"Error updating quantity",successUpdateQuantity:"Item quantity updated successfully.",actionBackToRequisitionListsOverview:"Back to requisition lists overview",emptyRequisitionList:" Requisition List is empty",productListTable:{headers:{productName:"Product name",sku:"SKU",price:"Price",quantity:"Quantity",subtotal:"Subtotal",actions:"Actions"},itemQuantity:"Item quantity"},errorLoadPage:"Failed to load page"},PageSizePicker:{itemsPerPage:"Items per page"}},q={RequisitionList:l},m={default:q},p=({children:i})=>{const[s,o]=a("en_US");return u(()=>{const e=c.on("locale",r=>{o(r)},{eager:!0});return()=>{e==null||e.off()}},[]),t(d,{lang:s,langDefinitions:m,children:i})},A=new n(t(p,{}));export{A as render};
3
+ (function(o,e){try{if(typeof document<"u"){const i=document.createElement("style"),r=e.styleId;for(const t in e.attributes)i.setAttribute(t,e.attributes[t]);i.setAttribute("data-dropin",r),i.appendChild(document.createTextNode(o));const a=document.querySelector('style[data-dropin="sdk"]');if(a)a.after(i);else{const t=document.querySelector('link[rel="stylesheet"], style');t?t.before(i):document.head.append(i)}}}catch(i){console.error("dropin-styles (injectCodeFunction)",i)}})(`.requisition-list-header{margin-bottom:var(--spacing-large)}.requisition-list-header__back{margin-bottom:var(--spacing-medium)}.requisition-list-header__back-link{display:inline-block;color:var(--color-neutral-800);font-size:var(--type-body-1-font-size);font-weight:var(--type-body-1-font-weight);line-height:var(--type-body-1-line-height);text-decoration:none!important;cursor:pointer;transition:color .2s ease;position:relative;padding-bottom:1px}.requisition-list-header__back-link *{text-decoration:none!important}.requisition-list-header__back-link:hover{color:var(--color-neutral-600);text-decoration:none!important}.requisition-list-header__back-link:hover:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background-color:var(--color-neutral-800)}.requisition-list-header__back-arrow{margin-right:var(--spacing-xsmall);text-decoration:none!important}.requisition-list-header__main{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-medium);flex-wrap:wrap}.requisition-list-header__title-section{flex:1;min-width:0}.requisition-list-header__title{margin:0;padding:0;font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);color:var(--color-neutral-900)}.requisition-list-header__description{margin:var(--spacing-xsmall) 0 0;padding:0;font-size:var(--type-body-1-font-size);font-weight:var(--type-body-1-font-weight);line-height:var(--type-body-1-line-height);color:var(--color-neutral-700)}.requisition-list-header__actions{display:flex;gap:var(--spacing-medium);flex-wrap:wrap;align-items:center}.requisition-list-header__action-link{color:var(--color-neutral-800);font-size:var(--type-body-2-font-size);font-style:normal;font-weight:var(--type-body-2-font-weight);line-height:var(--type-body-2-line-height);letter-spacing:var(--type-body-2-letter-spacing);text-decoration:underline;cursor:pointer;transition:color .2s ease}.requisition-list-header__action-link:hover{color:var(--color-neutral-600)}@media (max-width: 768px){.requisition-list-header__main{flex-direction:column;align-items:stretch}.requisition-list-header__actions{justify-content:flex-start}}@supports (height: 100dvh){.requisition-list-modal .dropin-modal{height:100dvh}}.dropin-modal__body--medium>.dropin-modal__header-title,.dropin-modal__body--full>.dropin-modal__header-title,.requisition-list-modal .dropin-modal__content{align-items:center;margin:0}.requisition-list-modal .dropin-modal__header-title-content h3{font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);margin:0;padding:0}.requisition-list-modal .requisition-list-modal__spinner{align-items:center;background-color:var(--color-neutral-200);display:flex;height:100%;left:0;justify-content:center;opacity:var(--color-opacity-24);position:absolute;top:0;width:100%;z-index:1}.requisition-list-modal p{margin:var(--spacing-small) 0}.requisition-list-modal .requisition-list-modal__buttons{align-items:center;display:flex;gap:0 var(--spacing-small);justify-content:right}.requisition-list-modal--overlay{margin:auto;max-width:375px;padding:var(--spacing-small);position:relative;width:100%}@media (min-width: 768px){.requisition-list-modal--overlay{margin:auto;max-width:768px;padding:var(--spacing-xxbig);position:relative;width:100%}.requisition-list-modal p{color:var(--color-neutral-800);font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin-bottom:var(--spacing-medium)}}
4
+ .requisition-list-form{background-color:var(--color-neutral-50);box-sizing:border-box}.requisition-list-form__title{color:var(--color-neutral-800);font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing);margin-bottom:var(--spacing-medium)}.requisition-list-form__notification{margin-bottom:var(--spacing-medium)}.requisition-list-form__form{display:grid;gap:var(--spacing-medium);grid-template-columns:1fr}.requisition-list-form__actions{align-items:center;display:flex;gap:0 var(--grid-2-gutters);justify-content:flex-end}.requisition-list-form_progress-spinner{float:right}
5
+ .requisition-list-selector__form .dropin-card__content{align-items:center;cursor:pointer;display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--spacing-xxsmall);padding:var(--spacing-xsmall)}.requisition-list-selector__form .dropin-card--secondary{border:none}.requisition-list-selector__form .requisition-list-form__actions{margin-top:var(--spacing-medium)}.requisition-list-selector__available-lists{max-height:300px;min-height:200px;overflow-y:scroll}.requisition-list-selector__available-lists::-webkit-scrollbar{width:var(--spacing-small);display:block}.requisition-list-selector__available-lists::-webkit-scrollbar-track{background:var(--color-neutral-100);border-radius:var(--shape-border-radius-2)}.requisition-list-selector__available-lists::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--shape-border-radius-2)}.requisition-list-selector__available-lists::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-500)}.requisition-list-modal .requisition-list-actions{margin:var(--spacing-medium) auto}.requisition-list-grid-wrapper__content{display:grid;grid-template-columns:repeat(4,1fr);row-gap:var(--spacing-xsmall);width:100%}.requisition-list-grid-wrapper__list-header{display:contents}.requisition-list-grid-wrapper__pagination{grid-column:1 / -1;margin:var(--spacing-medium)}.requisition-list-grid-wrapper__pagination-controls{display:flex;align-items:center;gap:var(--spacing-medium);justify-content:center;min-height:40px}.requisition-list-grid-wrapper__add-new{margin:var(--spacing-medium) 0}.requisition-list-grid-wrapper__name__title{display:block;font:var(--type-body-1-emphasized-font);margin-bottom:2px}.requisition-list-grid-wrapper__name__description{font:var(--type-details-caption-2-font)}.requisition-list-grid-wrapper__actions{display:flex;gap:var(--spacing-medium)}.requisition-list-grid-wrapper__actions .dropin-button--tertiary{padding:0}.requisition-list-grid-wrapper__actions .dropin-button--tertiary:hover{text-decoration:underline}.requisition-list-empty-list{margin-bottom:var(--spacing-small);text-align:center}.requisition-list-actions{align-items:center;background-color:var(--color-neutral-50);border:var(--shape-border-width-2) solid var(--color-neutral-400);border-radius:var(--shape-border-radius-2);cursor:pointer;display:flex;justify-content:space-between;padding:var(--spacing-medium);width:100%}.requisition-list-actions--selectable{max-width:100%;width:auto}.requisition-list-actions__title{font:var(--type-button-2-font);letter-spacing:var(--type-button-2-letter-spacing);-moz-appearance:none;appearance:none;-webkit-appearance:none;color:var(--color-neutral-800)}.requisition-list-actions svg{color:var(--color-neutral-800);stroke:var(--shape-icon-stroke-4)}.empty-list{text-align:center;margin:auto 0}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-large);text-align:center;min-height:400px}.not-found svg{color:var(--color-neutral-400);margin-bottom:var(--spacing-medium)}.not-found h2{font-size:var(--type-headline-3-font-size);font-weight:var(--type-headline-3-font-weight);margin:0 0 var(--spacing-small) 0;color:var(--color-neutral-800)}.not-found p{font-size:var(--type-body-1-font-size);color:var(--color-neutral-600);margin:0 0 var(--spacing-medium) 0;max-width:500px}.not-found button{margin-top:var(--spacing-small)}.requisition-list-view-product-list-table-container{display:flex;flex-direction:column;gap:var(--spacing-small)}.requisition-list-view-product-list-table__checkbox{align-self:center;justify-self:center}.requisition-list-view-product-list-table__index-container{display:inline-block;line-height:1}.requisition-list-view-product-list-table__item-container{display:flex;align-items:flex-start;gap:var(--spacing-small)}.requisition-list-view-product-list-table__item-details{display:flex;flex-direction:column;gap:var(--spacing-xxsmall)}.requisition-list-view-product-list-table__product-name{font:var(--type-body-1-font);letter-spacing:var(--type-body-1-letter-spacing);font-weight:700}.requisition-list-view-product-list-table__product-configurable-name{font:var(--type-body-1-default-font)}.requisition-list-view-product-list-table__sku{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing)}.requisition-list-view-product-list-table__thumbnail{width:44px;flex-shrink:0}.requisition-list-view-product-list-table__quantity{font:var(--type-body-1-font);letter-spacing:var(--type-body-1-letter-spacing);display:block;justify-self:center}.requisition-list-view-product-list-table__discount-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--spacing-xxsmall);align-items:baseline}.requisition-list-view-product-list-table-container__submit-container{display:flex;justify-content:flex-end}.requisition-list-view__batch-actions{--batch-actions-background: #f0f4f8;--batch-actions-toggle-border: #b3b3b3;--batch-actions-toggle-border-hover: #666666;--batch-actions-toggle-background: #ffffff;--batch-actions-toggle-background-hover: #f5f5f5;--batch-actions-toggle-active-background: #505050;--batch-actions-toggle-active-background-hover: #3d3d3d;--batch-actions-toggle-icon-active: #ffffff;--batch-actions-label-color: #2d2d2d;--batch-actions-badge-background: #378ef0;--batch-actions-badge-color: #ffffff;--batch-actions-button-background: #fafafa;--batch-actions-button-background-hover: #f0f0f0;--batch-actions-button-border: #d3d3d3;--batch-actions-delete-color: #4a4a4a;--batch-actions-delete-color-hover: #d7373f;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-medium) 0;margin-bottom:var(--spacing-small);background-color:var(--batch-actions-background);border-radius:0}.requisition-list-view__batch-actions-left{display:flex;align-items:center;gap:var(--spacing-small);padding-left:var(--spacing-medium)}.requisition-list-view__batch-actions-select-toggle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid var(--batch-actions-toggle-border);border-radius:0;background-color:var(--batch-actions-toggle-background);cursor:pointer;transition:all .2s ease}.requisition-list-view__batch-actions-select-toggle:hover:not(:disabled){border-color:var(--batch-actions-toggle-border-hover);background-color:var(--batch-actions-toggle-background-hover)}.requisition-list-view__batch-actions-select-toggle--active{background-color:var(--batch-actions-toggle-active-background);border-color:var(--batch-actions-toggle-active-background)}.requisition-list-view__batch-actions-select-toggle--active svg,.requisition-list-view__batch-actions-select-toggle--active path{fill:var(--batch-actions-toggle-icon-active);color:var(--batch-actions-toggle-icon-active)}.requisition-list-view__batch-actions-select-toggle--active:hover:not(:disabled){background-color:var(--batch-actions-toggle-active-background-hover);border-color:var(--batch-actions-toggle-active-background-hover)}.requisition-list-view__batch-actions-select-toggle:disabled{opacity:.5;cursor:not-allowed}.requisition-list-view__batch-actions-select-label{padding:0;border:none;background:none;font-size:var(--type-base-font-size);font-weight:var(--type-base-font-weight);color:var(--batch-actions-label-color);cursor:pointer;transition:opacity .2s ease}.requisition-list-view__batch-actions-select-label:hover:not(:disabled){opacity:.8}.requisition-list-view__batch-actions-select-label:disabled{opacity:.5;cursor:not-allowed}.requisition-list-view__batch-actions-count-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border-radius:50%;background-color:var(--batch-actions-badge-background);color:var(--batch-actions-badge-color);font-size:var(--type-detail-2-font-size);font-weight:var(--type-detail-2-font-weight);line-height:1;flex-shrink:0}.requisition-list-view__batch-actions-buttons{display:flex;align-items:center;gap:var(--spacing-small);padding-right:var(--spacing-medium)}.requisition-list-view__batch-actions-buttons button:not(.requisition-list-view__batch-actions-delete-icon){border-radius:var(--shape-border-radius-1);background-color:var(--batch-actions-button-background);border:1px solid var(--batch-actions-button-border)}.requisition-list-view__batch-actions-buttons button:not(.requisition-list-view__batch-actions-delete-icon):hover:not(:disabled){background-color:var(--batch-actions-button-background-hover)}.requisition-list-view__batch-actions-delete-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;background:transparent;color:var(--batch-actions-delete-color);cursor:pointer;transition:color .2s ease}.requisition-list-view__batch-actions-delete-icon:hover:not(:disabled){color:var(--batch-actions-delete-color-hover);background:none!important}.requisition-list-view__batch-actions-delete-icon:disabled{opacity:.5;cursor:not-allowed}.requisition-list-view__bulk-actions{margin-bottom:var(--spacing-xsmall);display:flex;gap:var(--spacing-xsmall);align-items:center}.page-size-picker{display:flex;align-items:center;gap:var(--spacing-xsmall);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);color:var(--color-neutral-800)}.page-size-picker__label{font-size:var(--font-size-small);color:var(--color-text-secondary);white-space:nowrap}.page-size-picker__select{min-width:60px}.requisition-list-view__container{width:100%}.requisition-list-view__loading{display:flex;justify-content:center;align-items:center;min-height:400px;width:100%}.requisition-list-view__pagination{margin-top:var(--spacing-small);display:flex;justify-content:space-between;align-items:center}.requisition-list-view__pagination-items{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);color:var(--color-neutral-800)}.requisition-list-view__pagination-picker{display:flex;align-items:center;gap:var(--spacing-xsmall);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);color:var(--color-neutral-800)}`,{styleId:"RequisitionList"});
6
+ import{jsx as t}from"@dropins/tools/preact-jsx-runtime.js";import{Render as a}from"@dropins/tools/lib.js";import{useState as r,useEffect as d}from"@dropins/tools/preact-hooks.js";import{UIProvider as u}from"@dropins/tools/components.js";import{events as c}from"@dropins/tools/event-bus.js";const l={containerTitle:"Requisition Lists",RequisitionListWrapper:{name:"Name & Description",itemsCount:"Items",lastUpdated:"Latest activity",actions:"Actions",loginMsg:"Please login",deleteRequisitionListTitle:"Are you sure you want to delete this Requisition List?",deleteRequisitionListMessage:"Requisition List will be permanently deleted. This action can not be undone.",confirmAction:"Confirm",cancelAction:"Cancel",emptyList:"No Requisition Lists found"},AddNewReqList:{addNewReqListBtn:"Add new Requisition List"},RequisitionListItem:{actionUpdate:"Update",actionDelete:"Delete"},RequisitionListForm:{actionCancel:"Cancel",actionSave:"Save",requiredField:"This is a required field.",nameMinLength:"Name must be at least {min} characters long.",nameInvalidCharacters:"Name contains invalid characters. Only letters, numbers, spaces, and basic punctuation are allowed.",floatingLabel:"Requisition List Name *",placeholder:"Requisition List Name",label:"Description",updateTitle:"Update Requisition List",createTitle:"Create Requisition List",addToRequisitionList:"Add to Requisition List"},RequisitionListSelector:{addToNewRequisitionList:"Add to New Requisition List",addToSelected:"Add to Selected List"},RequisitionListAlert:{errorCreate:"Error creating requisition list.",successCreate:"Requisition list created successfully.",errorAddToCart:"Error adding item to cart.",successAddToCart:"Item(s) added to cart successfully.",errorUpdateQuantity:"Error updating quantity.",successUpdateQuantity:"Item quantity updated successfully.",errorUpdate:"Error updating requisition list.",successUpdate:"Requisition list updated successfully.",errorDeleteItem:"Error deleting item.",successDeleteItem:"Item(s) deleted successfully.",errorDeleteReqList:"Error deleting requisition list.",successDeleteReqList:"Requisition list deleted successfully.",errorMove:"Error moving item(s) to cart.",successMove:"Item(s) successfully moved to cart.",errorAddToRequisitionList:"Error adding item(s) to requisition list.",successAddToRequisitionList:"Item(s) successfully added to requisition list."},RequisitionListView:{actionDelete:"Delete",statusDeleting:"Deleting...",actionDeleteSelected:"Delete Selected",actionDeleteSelectedItems:"Delete selected items",actionSelectAll:"Select All",actionSelectNone:"Select None",actionAddToCart:"Add to Cart",statusAddingToCart:"Adding...",actionAddSelectedToCart:"Add Selected to Cart",statusBulkAddingToCart:"Adding to Cart...",actionUpdateQuantity:"Update",statusUpdatingQuantity:"Updating...",errorUpdateQuantity:"Error updating quantity",successUpdateQuantity:"Item quantity updated successfully.",actionBackToRequisitionListsOverview:"Back to requisition lists overview",actionBackToRequisitionLists:"Back to Requisition Lists",actionRename:"Rename",actionDeleteList:"Delete List",deleteListTitle:"Delete Requisition List?",deleteListMessage:"Are you sure you want to delete this requisition list? This action cannot be undone.",deleteItemsTitle:"Delete Item(s)?",deleteItemsMessage:"Are you sure you want to delete the selected item(s) from this requisition list? This action cannot be undone.",confirmAction:"Delete",cancelAction:"Cancel",emptyRequisitionList:" Requisition List is empty",show:"Show",itemsCounter:"Items {from}-{to} of {total}",productListTable:{headers:{productName:"Product name",sku:"SKU",price:"Price",quantity:"Quantity",subtotal:"Subtotal",actions:"Actions"},itemQuantity:"Item quantity"},errorLoadPage:"Failed to load page",errorLoadingProducts:"Failed to load product data",notFoundTitle:"Requisition List Not Found",notFoundMessage:"The requisition list you are looking for does not exist or you do not have access to it.",notFoundActionLabel:"Back to Requisition Lists"},PageSizePicker:{itemsPerPage:"Items per page"}},m={RequisitionList:l},q={default:m},L=({children:i})=>{const[s,o]=r("en_US");return d(()=>{const e=c.on("locale",n=>{o(n)},{eager:!0});return()=>{e==null||e.off()}},[]),t(u,{lang:s,langDefinitions:q,children:i})},A=new a(t(L,{}));export{A as render};
6
7
  //# sourceMappingURL=render.js.map
package/render.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sources":["/@dropins/storefront-requisition-list/src/render/Provider.tsx","/@dropins/storefront-requisition-list/src/render/render.tsx"],"sourcesContent":["import { FunctionComponent } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { UIProvider } from '@adobe-commerce/elsie/components';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface CartProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<CartProviderProps> = ({\n children,\n}) => {\n const [lang, setLang] = useState<Lang>('en_US');\n\n // Events\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (locale: string) => {\n setLang(locale as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, []);\n\n return (\n <UIProvider lang={lang} langDefinitions={langDefinitions}>\n {children}\n </UIProvider>\n );\n};\n","import { Render } from '@adobe-commerce/elsie/lib';\nimport { Provider } from './Provider';\n\nexport const render = new Render(<Provider />);\n"],"names":["langDefinitions","en_US","Provider","children","lang","setLang","useState","useEffect","localeEvent","events","locale","jsx","UIProvider","render","Render"],"mappings":"s5FASMA,EAAkB,CACtB,QAASC,CACX,EAMaC,EAAiD,CAAC,CAC7D,SAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAe,OAAO,EAG9C,OAAAC,EAAU,IAAM,CACd,MAAMC,EAAcC,EAAO,GACzB,SACCC,GAAmB,CAClBL,EAAQK,CAAc,CACxB,EACA,CAAE,MAAO,EAAK,CAChB,EACA,MAAO,IAAM,CACXF,GAAA,MAAAA,EAAa,KACf,CACF,EAAG,EAAE,EAGFG,EAAAC,EAAA,CAAW,KAAAR,EAAY,gBAAAJ,EACrB,SAAAG,CACH,CAAA,CAEJ,ECtCaU,EAAS,IAAIC,EAAOH,EAACT,IAAS,CAAE"}
1
+ {"version":3,"file":"render.js","sources":["/@dropins/storefront-requisition-list/src/render/Provider.tsx","/@dropins/storefront-requisition-list/src/render/render.tsx"],"sourcesContent":["import { FunctionComponent } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { UIProvider } from '@adobe-commerce/elsie/components';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { events } from '@adobe-commerce/event-bus';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface CartProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<CartProviderProps> = ({\n children,\n}) => {\n const [lang, setLang] = useState<Lang>('en_US');\n\n // Events\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (locale: string) => {\n setLang(locale as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, []);\n\n return (\n <UIProvider lang={lang} langDefinitions={langDefinitions}>\n {children}\n </UIProvider>\n );\n};\n","import { Render } from '@adobe-commerce/elsie/lib';\nimport { Provider } from './Provider';\n\nexport const render = new Render(<Provider />);\n"],"names":["langDefinitions","en_US","Provider","children","lang","setLang","useState","useEffect","localeEvent","events","locale","jsx","UIProvider","render","Render"],"mappings":"ogIASMA,EAAkB,CACtB,QAASC,CACX,EAMaC,EAAiD,CAAC,CAC7D,SAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAe,OAAO,EAG9C,OAAAC,EAAU,IAAM,CACd,MAAMC,EAAcC,EAAO,GACzB,SACCC,GAAmB,CAClBL,EAAQK,CAAc,CACxB,EACA,CAAE,MAAO,EAAK,CAChB,EACA,MAAO,IAAM,CACXF,GAAA,MAAAA,EAAa,KACf,CACF,EAAG,EAAE,EAGFG,EAAAC,EAAA,CAAW,KAAAR,EAAY,gBAAAJ,EACrB,SAAAG,CACH,CAAA,CAEJ,ECtCaU,EAAS,IAAIC,EAAOH,EAACT,IAAS,CAAE"}
@@ -1,4 +0,0 @@
1
- /*! Copyright 2025 Adobe
2
- All Rights Reserved. */
3
- import{useState as d,useMemo as c,useCallback as A}from"@dropins/tools/preact-compat.js";import{useText as p}from"@dropins/tools/i18n.js";function D(i){const[n,s]=d(null),r=p({errorCreate:"RequisitionList.RequisitionListAlert.errorCreate",successCreate:"RequisitionList.RequisitionListAlert.successCreate",errorDeleteItem:"RequisitionList.RequisitionListAlert.errorDeleteItem",successDeleteItem:"RequisitionList.RequisitionListAlert.successDeleteItem",errorDeleteReqList:"RequisitionList.RequisitionListAlert.errorDeleteReqList",successDeleteReqList:"RequisitionList.RequisitionListAlert.successDeleteReqList",errorAddToCart:"RequisitionList.RequisitionListAlert.errorAddToCart",successAddToCart:"RequisitionList.RequisitionListAlert.successAddToCart",errorUpdateQuantity:"RequisitionList.RequisitionListAlert.errorUpdateQuantity",successUpdateQuantity:"RequisitionList.RequisitionListAlert.successUpdateQuantity",errorUpdate:"RequisitionList.RequisitionListAlert.errorUpdate",successUpdate:"RequisitionList.RequisitionListAlert.successUpdate",errorMove:"RequisitionList.RequisitionListAlert.errorMove",successMove:"RequisitionList.RequisitionListAlert.successMove",errorAddToRequisitionList:"RequisitionList.RequisitionListAlert.errorAddToRequisitionList",successAddToRequisitionList:"RequisitionList.RequisitionListAlert.successAddToRequisitionList"}),e=c(()=>({...r,...i}),[r,i]),o=c(()=>({create:{requisitionList:{success:e.successCreate,error:e.errorCreate}},add:{product:{success:e.successAddToRequisitionList,error:e.errorAddToRequisitionList}},update:{product:{success:e.successUpdateQuantity,error:e.errorUpdateQuantity},requisitionList:{success:e.successUpdate,error:e.errorUpdate}},delete:{product:{success:e.successDeleteItem,error:e.errorDeleteItem},requisitionList:{success:e.successDeleteReqList,error:e.errorDeleteReqList}},move:{product:{success:e.successMove,error:e.errorMove}}}),[e]),q=A(L=>{const{type:u,action:R,context:a,skus:t}=L;s({type:u,description:o[R][a][u],sku:t==null?void 0:t[0]});const l=setTimeout(()=>{s(null)},5e3);return()=>clearTimeout(l)},[o]);return{alert:n,setAlert:s,handleRequisitionListAlert:q}}export{D as u};
4
- //# sourceMappingURL=PageSizePicker2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PageSizePicker2.js","sources":["/@dropins/storefront-requisition-list/src/hooks/useRequisitionListAlert.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 { useCallback, useMemo, useState } from 'preact/compat';\nimport { RequisitionListActionPayload } from 'adobe-commerce/event-bus';\nimport { useText } from '@adobe-commerce/elsie/i18n';\n\nexport interface Alert {\n type: string;\n description: string;\n action?: string;\n sku?: string;\n}\n\nexport function useRequisitionListAlert(\n translationsOverride?: Record<string, string>\n) {\n const [alert, setAlert] = useState<Alert | null>(null);\n\n const defaultTranslations = useText({\n errorCreate: `RequisitionList.RequisitionListAlert.errorCreate`,\n successCreate: `RequisitionList.RequisitionListAlert.successCreate`,\n errorDeleteItem: `RequisitionList.RequisitionListAlert.errorDeleteItem`,\n successDeleteItem: `RequisitionList.RequisitionListAlert.successDeleteItem`,\n errorDeleteReqList: `RequisitionList.RequisitionListAlert.errorDeleteReqList`,\n successDeleteReqList: `RequisitionList.RequisitionListAlert.successDeleteReqList`,\n errorAddToCart: `RequisitionList.RequisitionListAlert.errorAddToCart`,\n successAddToCart: `RequisitionList.RequisitionListAlert.successAddToCart`,\n errorUpdateQuantity: `RequisitionList.RequisitionListAlert.errorUpdateQuantity`,\n successUpdateQuantity: `RequisitionList.RequisitionListAlert.successUpdateQuantity`,\n errorUpdate: `RequisitionList.RequisitionListAlert.errorUpdate`,\n successUpdate: `RequisitionList.RequisitionListAlert.successUpdate`,\n errorMove: `RequisitionList.RequisitionListAlert.errorMove`,\n successMove: `RequisitionList.RequisitionListAlert.successMove`,\n errorAddToRequisitionList: `RequisitionList.RequisitionListAlert.errorAddToRequisitionList`,\n successAddToRequisitionList: `RequisitionList.RequisitionListAlert.successAddToRequisitionList`,\n });\n\n const translations = useMemo(\n () => ({\n ...defaultTranslations,\n ...translationsOverride,\n }),\n [defaultTranslations, translationsOverride]\n );\n\n const messages = useMemo(\n () => ({\n create: {\n // adding context for consistency, although 'create' action only applies to requisition lists\n requisitionList: {\n success: translations.successCreate,\n error: translations.errorCreate,\n },\n },\n add: {\n product: {\n success: translations.successAddToRequisitionList,\n error: translations.errorAddToRequisitionList,\n },\n },\n update: {\n product: {\n success: translations.successUpdateQuantity,\n error: translations.errorUpdateQuantity,\n },\n requisitionList: {\n success: translations.successUpdate,\n error: translations.errorUpdate,\n },\n },\n delete: {\n product: {\n success: translations.successDeleteItem,\n error: translations.errorDeleteItem,\n },\n requisitionList: {\n success: translations.successDeleteReqList,\n error: translations.errorDeleteReqList,\n },\n },\n move: {\n // adding context for consistency, although 'move' action only applies to products\n product: {\n success: translations.successMove,\n error: translations.errorMove,\n },\n },\n }),\n [translations]\n );\n\n const handleRequisitionListAlert = useCallback(\n (payload: RequisitionListActionPayload) => {\n const { type, action, context, skus } = payload;\n setAlert({\n type,\n description: messages[action][context][type],\n sku: skus?.[0],\n });\n\n const timer = setTimeout(() => {\n setAlert(null);\n }, 5000);\n\n return () => clearTimeout(timer);\n },\n [messages]\n );\n\n return { alert, setAlert, handleRequisitionListAlert };\n}\n"],"names":["useRequisitionListAlert","translationsOverride","alert","setAlert","useState","defaultTranslations","useText","translations","useMemo","messages","handleRequisitionListAlert","useCallback","payload","type","action","context","skus","timer"],"mappings":"0IA4BO,SAASA,EACdC,EACA,CACA,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAuB,IAAI,EAE/CC,EAAsBC,EAAQ,CAClC,YAAa,mDACb,cAAe,qDACf,gBAAiB,uDACjB,kBAAmB,yDACnB,mBAAoB,0DACpB,qBAAsB,4DACtB,eAAgB,sDAChB,iBAAkB,wDAClB,oBAAqB,2DACrB,sBAAuB,6DACvB,YAAa,mDACb,cAAe,qDACf,UAAW,iDACX,YAAa,mDACb,0BAA2B,iEAC3B,4BAA6B,kEAAA,CAC9B,EAEKC,EAAeC,EACnB,KAAO,CACL,GAAGH,EACH,GAAGJ,CAAA,GAEL,CAACI,EAAqBJ,CAAoB,CAC5C,EAEMQ,EAAWD,EACf,KAAO,CACL,OAAQ,CAEN,gBAAiB,CACf,QAASD,EAAa,cACtB,MAAOA,EAAa,WAAA,CAExB,EACA,IAAK,CACH,QAAS,CACP,QAASA,EAAa,4BACtB,MAAOA,EAAa,yBAAA,CAExB,EACA,OAAQ,CACN,QAAS,CACP,QAASA,EAAa,sBACtB,MAAOA,EAAa,mBACtB,EACA,gBAAiB,CACf,QAASA,EAAa,cACtB,MAAOA,EAAa,WAAA,CAExB,EACA,OAAQ,CACN,QAAS,CACP,QAASA,EAAa,kBACtB,MAAOA,EAAa,eACtB,EACA,gBAAiB,CACf,QAASA,EAAa,qBACtB,MAAOA,EAAa,kBAAA,CAExB,EACA,KAAM,CAEJ,QAAS,CACP,QAASA,EAAa,YACtB,MAAOA,EAAa,SAAA,CACtB,CACF,GAEF,CAACA,CAAY,CACf,EAEMG,EAA6BC,EAChCC,GAA0C,CACzC,KAAM,CAAE,KAAAC,EAAM,OAAAC,EAAQ,QAAAC,EAAS,KAAAC,CAAS,EAAAJ,EAC/BT,EAAA,CACP,KAAAU,EACA,YAAaJ,EAASK,CAAM,EAAEC,CAAO,EAAEF,CAAI,EAC3C,IAAKG,GAAA,YAAAA,EAAO,EAAC,CACd,EAEK,MAAAC,EAAQ,WAAW,IAAM,CAC7Bd,EAAS,IAAI,GACZ,GAAI,EAEA,MAAA,IAAM,aAAac,CAAK,CACjC,EACA,CAACR,CAAQ,CACX,EAEO,MAAA,CAAE,MAAAP,EAAO,SAAAC,EAAU,2BAAAO,CAA2B,CACvD"}
@@ -1,75 +0,0 @@
1
- /*! Copyright 2025 Adobe
2
- All Rights Reserved. */
3
- const e=`
4
- fragment REQUISITION_LIST_ITEMS_FRAGMENT on RequistionListItems {
5
- items {
6
- uid
7
- quantity
8
- product {
9
- sku
10
- }
11
- customizable_options {
12
- customizable_option_uid
13
- is_required
14
- label
15
- sort_order
16
- type
17
- values {
18
- customizable_option_value_uid
19
- label
20
- value
21
- price {
22
- type
23
- units
24
- value
25
- }
26
- }
27
- }
28
- ... on ConfigurableRequisitionListItem {
29
- configurable_options {
30
- configurable_product_option_uid
31
- configurable_product_option_value_uid
32
- option_label
33
- value_label
34
- }
35
- }
36
- ... on DownloadableRequisitionListItem {
37
- links {
38
- price
39
- sample_url
40
- sort_order
41
- title
42
- uid
43
- }
44
- samples {
45
- sample_url
46
- sort_order
47
- title
48
- }
49
- }
50
- ... on GiftCardRequisitionListItem {
51
- gift_card_options {
52
- amount {
53
- currency
54
- value
55
- }
56
- custom_giftcard_amount {
57
- currency
58
- value
59
- }
60
- message
61
- recipient_email
62
- recipient_name
63
- sender_name
64
- sender_email
65
- }
66
- }
67
- }
68
- page_info {
69
- page_size
70
- current_page
71
- total_pages
72
- }
73
- }
74
- `;export{e as R};
75
- //# sourceMappingURL=RequisitionListItemsFragment.graphql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RequisitionListItemsFragment.graphql.js","sources":["/@dropins/storefront-requisition-list/src/api/fragments/RequisitionListItemsFragment.graphql.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const REQUISITION_LIST_ITEMS_FRAGMENT = `\nfragment REQUISITION_LIST_ITEMS_FRAGMENT on RequistionListItems {\n items {\n uid\n quantity\n product {\n sku\n }\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 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"],"names":["REQUISITION_LIST_ITEMS_FRAGMENT"],"mappings":"AAiBO,MAAMA,EAAkC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,12 +0,0 @@
1
- /*! Copyright 2025 Adobe
2
- All Rights Reserved. */
3
- import{FetchGraphQL as s}from"@dropins/tools/fetch-graphql.js";const{setEndpoint:u,setFetchGraphQlHeader:n,removeFetchGraphQlHeader:_,setFetchGraphQlHeaders:l,fetchGraphQl:p,getConfig:c}=new s().getMethods(),d=r=>{const o=r.map(e=>e.message).join(" ");throw Error(o)},b=`
4
- fragment REQUISITION_LIST_FRAGMENT on RequisitionList {
5
- uid
6
- name
7
- description
8
- items_count
9
- updated_at
10
- }
11
- `;function f(r){var o,e;return{uid:r.uid,name:r.name,description:r.description,updated_at:r.updated_at,items_count:r.items_count,items:a((o=r.items)==null?void 0:o.items),page_info:(e=r.items)==null?void 0:e.page_info}}function a(r){return r!=null&&r.length?r.map(o=>({uid:o.uid,sku:o.product.sku,quantity:o.quantity,customizable_options:o.customizable_options?o.customizable_options.map(e=>({uid:e.customizable_option_uid,is_required:e.is_required,label:e.label,sort_order:e.sort_order,type:e.type,values:e.values.map(t=>({uid:t.customizable_option_value_uid,label:t.label,price:t.price,value:t.value}))})):[],bundle_options:o.bundle_options||[],configurable_options:o.configurable_options?o.configurable_options.map(e=>({option_uid:e.configurable_product_option_uid,option_label:e.option_label,value_uid:e.configurable_product_option_value_uid,value_label:e.value_label})):[],samples:o.samples?o.samples.map(e=>({url:e.sample_url,sort_order:e.sort_order,title:e.title})):[],gift_card_options:o.gift_card_options||{}})):[]}export{b as R,n as a,l as b,p as f,c as g,d as h,_ as r,u as s,f as t};
12
- //# sourceMappingURL=transform-requisition-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform-requisition-list.js","sources":["/@dropins/storefront-requisition-list/src/api/fetch-graphql/fetch-graphql.ts","/@dropins/storefront-requisition-list/src/lib/fetch-error.ts","/@dropins/storefront-requisition-list/src/api/fragments/RequisitionListFragment.graphql.ts","/@dropins/storefront-requisition-list/src/data/transforms/transform-requisition-list.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchGraphQL } from '@adobe-commerce/fetch-graphql';\n\nexport const {\n setEndpoint,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n setFetchGraphQlHeaders,\n fetchGraphQl,\n getConfig,\n} = new FetchGraphQL().getMethods();\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\n/** Actions */\nexport const handleFetchError = (errors: Array<{ message: string }>) => {\n const errorMessage = errors.map((e: any) => e.message).join(' ');\n\n throw Error(errorMessage);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const REQUISITION_LIST_FRAGMENT = `\nfragment REQUISITION_LIST_FRAGMENT on RequisitionList {\n uid\n name\n description\n items_count\n updated_at\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 { RequisitionList } from '../models/requisitionList';\nimport { Item } from '@/requisitionList/data/models/item';\n\n// Interface for raw API response data for a requisition list\nexport interface RawRequisitionListData {\n name: string;\n description: string;\n uid: string;\n updated_at: string;\n items_count: number;\n items: {\n items: RawItemData[];\n page_info: {\n total_pages: number;\n current_page: number;\n page_size: number;\n };\n };\n}\n\nexport function transformRequisitionList(\n data: RawRequisitionListData\n): RequisitionList | null {\n return {\n uid: data.uid,\n name: data.name,\n description: data.description,\n updated_at: data.updated_at,\n items_count: data.items_count,\n items: transformItems(data.items?.items),\n page_info: data.items?.page_info,\n };\n}\n\n// Interface for raw item data\ninterface RawItemData {\n uid: string;\n product: {\n sku: string;\n };\n quantity: number;\n customizable_options?: {\n customizable_option_uid: string;\n is_required: boolean;\n label: string;\n sort_order: number;\n type: string;\n values: {\n customizable_option_value_uid: string;\n label: string;\n price: { type: string; units: string; value: number };\n value: string;\n }[];\n }[];\n bundle_options?: {\n uid: string;\n label: string;\n type: string;\n values: {\n uid: string;\n label: string;\n original_price: { value: number; currency: string };\n priceV2: { value: number; currency: string };\n quantity: number;\n }[];\n }[];\n configurable_options?: {\n configurable_product_option_uid: string;\n option_label: string;\n configurable_product_option_value_uid: string;\n value_label: string;\n }[];\n links?: {\n uid: string;\n price?: number;\n sample_url?: string;\n sort_order?: number;\n title?: string;\n }[];\n samples?: {\n sample_url?: string;\n sort_order?: number;\n title?: string;\n }[];\n gift_card_options?: {\n amount?: {\n value?: number;\n currency?: string;\n };\n custom_giftcard_amount?: {\n value?: number;\n currency?: string;\n };\n message?: string;\n recipient_email?: string;\n recipient_name?: string;\n sender_name?: string;\n sender_email?: string;\n };\n}\n\nfunction transformItems(items: RawItemData[]): Item[] {\n if (!items?.length) return [];\n\n return items.map((item: RawItemData) => {\n return {\n uid: item.uid,\n sku: item.product.sku,\n quantity: item.quantity,\n customizable_options: item.customizable_options\n ? item.customizable_options.map((option) => ({\n uid: option.customizable_option_uid,\n is_required: option.is_required,\n label: option.label,\n sort_order: option.sort_order,\n type: option.type,\n values: option.values.map((value) => ({\n uid: value.customizable_option_value_uid,\n label: value.label,\n price: value.price,\n value: value.value,\n })),\n }))\n : [],\n bundle_options: item.bundle_options || [],\n configurable_options: item.configurable_options\n ? item.configurable_options.map((option) => ({\n option_uid: option.configurable_product_option_uid,\n option_label: option.option_label,\n value_uid: option.configurable_product_option_value_uid,\n value_label: option.value_label,\n }))\n : [],\n samples: item.samples\n ? item.samples.map((sample) => ({\n url: sample.sample_url,\n sort_order: sample.sort_order,\n title: sample.title,\n }))\n : [],\n gift_card_options: item.gift_card_options || {},\n };\n });\n}\n"],"names":["setEndpoint","setFetchGraphQlHeader","removeFetchGraphQlHeader","setFetchGraphQlHeaders","fetchGraphQl","getConfig","FetchGraphQL","handleFetchError","errors","errorMessage","REQUISITION_LIST_FRAGMENT","transformRequisitionList","data","transformItems","_a","_b","items","item","option","value","sample"],"mappings":"+DAmBa,KAAA,CACX,YAAAA,EACA,sBAAAC,EACA,yBAAAC,EACA,uBAAAC,EACA,aAAAC,EACA,UAAAC,CACF,EAAI,IAAIC,EAAa,EAAE,WAAW,ECRrBC,EAAoBC,GAAuC,CAChE,MAAAC,EAAeD,EAAO,IAAK,GAAW,EAAE,OAAO,EAAE,KAAK,GAAG,EAE/D,MAAM,MAAMC,CAAY,CAC1B,ECLaC,EAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECmBlC,SAASC,EACdC,EACwB,SACjB,MAAA,CACL,IAAKA,EAAK,IACV,KAAMA,EAAK,KACX,YAAaA,EAAK,YAClB,WAAYA,EAAK,WACjB,YAAaA,EAAK,YAClB,MAAOC,GAAeC,EAAAF,EAAK,QAAL,YAAAE,EAAY,KAAK,EACvC,WAAWC,EAAAH,EAAK,QAAL,YAAAG,EAAY,SACzB,CACF,CAqEA,SAASF,EAAeG,EAA8B,CACpD,OAAKA,GAAA,MAAAA,EAAO,OAELA,EAAM,IAAKC,IACT,CACL,IAAKA,EAAK,IACV,IAAKA,EAAK,QAAQ,IAClB,SAAUA,EAAK,SACf,qBAAsBA,EAAK,qBACvBA,EAAK,qBAAqB,IAAKC,IAAY,CACzC,IAAKA,EAAO,wBACZ,YAAaA,EAAO,YACpB,MAAOA,EAAO,MACd,WAAYA,EAAO,WACnB,KAAMA,EAAO,KACb,OAAQA,EAAO,OAAO,IAAKC,IAAW,CACpC,IAAKA,EAAM,8BACX,MAAOA,EAAM,MACb,MAAOA,EAAM,MACb,MAAOA,EAAM,KAAA,EACb,CACJ,EAAE,EACF,CAAC,EACL,eAAgBF,EAAK,gBAAkB,CAAC,EACxC,qBAAsBA,EAAK,qBACvBA,EAAK,qBAAqB,IAAKC,IAAY,CACzC,WAAYA,EAAO,gCACnB,aAAcA,EAAO,aACrB,UAAWA,EAAO,sCAClB,YAAaA,EAAO,WACtB,EAAE,EACF,CAAC,EACL,QAASD,EAAK,QACVA,EAAK,QAAQ,IAAKG,IAAY,CAC5B,IAAKA,EAAO,WACZ,WAAYA,EAAO,WACnB,MAAOA,EAAO,KAChB,EAAE,EACF,CAAC,EACL,kBAAmBH,EAAK,mBAAqB,CAAA,CAC/C,EACD,EAxC0B,CAAC,CAyC9B"}
@@ -1,15 +0,0 @@
1
- import { HTMLAttributes } from 'preact/compat';
2
- import { Container } from '@dropins/tools/types/elsie/src/lib';
3
- import { RequisitionList } from '../../data/models/requisitionList.js';
4
-
5
- export interface RequisitionListNamesProps extends HTMLAttributes<HTMLDivElement> {
6
- items?: RequisitionList[];
7
- canCreate?: boolean;
8
- sku: string;
9
- selectedOptions?: string[];
10
- quantity?: number;
11
- variant?: 'neutral' | 'hover';
12
- beforeAddProdToReqList?: () => Promise<void> | void;
13
- }
14
- export declare const RequisitionListNames: Container<RequisitionListNamesProps>;
15
- //# sourceMappingURL=RequisitionListNames.d.ts.map
@@ -1,3 +0,0 @@
1
- export * from './RequisitionListNames/index'
2
- import _default from './RequisitionListNames/index'
3
- export default _default
@@ -1,23 +0,0 @@
1
- /*! Copyright 2025 Adobe
2
- All Rights Reserved. */
3
- import{jsxs as v,jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import*as u from"@dropins/tools/preact-compat.js";import{useState as L,useEffect as R}from"@dropins/tools/preact-compat.js";import{InLineAlert as N,Picker as y,Icon as A,Card as U}from"@dropins/tools/components.js";import{R as O,f as x,h as M,t as $}from"../chunks/transform-requisition-list.js";import{events as o}from"@dropins/tools/event-bus.js";import{R as w}from"../chunks/RequisitionListItemsFragment.graphql.js";import{g as D}from"../chunks/getRequisitionLists.js";import{R as F}from"../chunks/RequisitionListForm.js";import"@dropins/tools/lib.js";import"@dropins/tools/preact-hooks.js";/* empty css */import{u as k}from"../chunks/PageSizePicker2.js";import"@dropins/tools/preact.js";import{useText as Q}from"@dropins/tools/i18n.js";import"@dropins/tools/fetch-graphql.js";const C=`
4
- mutation ADD_PRODUCTS_TO_REQUISITION_LIST_MUTATION(
5
- $requisitionListUid: ID!,
6
- $requisitionListItems: [RequisitionListItemsInput!]!
7
- ) {
8
- addProductsToRequisitionList(
9
- requisitionListUid: $requisitionListUid
10
- requisitionListItems: $requisitionListItems
11
- ) {
12
- requisition_list {
13
- ...REQUISITION_LIST_FRAGMENT
14
- items {
15
- ...REQUISITION_LIST_ITEMS_FRAGMENT
16
- }
17
- }
18
- }
19
- }
20
- ${w}
21
- ${O}
22
- `,P=async(e,n)=>{const{errors:i,data:d}=await x(C,{variables:{requisitionListUid:e,requisitionListItems:n}});if(i)return M(i);const a=$(d.addProductsToRequisitionList.requisition_list);return o.emit("requisitionList/data",a),a},G=e=>u.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},u.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M3 12H21",stroke:"currentColor"}),u.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M3 6H21",stroke:"currentColor"}),u.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M3 18H21",stroke:"currentColor"})),st=({items:e=[],canCreate:n=!0,sku:i,selectedOptions:d,quantity:a=1,variant:h="neutral",beforeAddProdToReqList:p,...E})=>{const[m,_]=L(e),[q,c]=L(!1),I=Q({createTitle:"RequisitionList.RequisitionListForm.createTitle",addToReqList:"RequisitionList.RequisitionListForm.addToRequisitionList"});R(()=>{(!e||e.length===0)&&D().then(t=>{_((t==null?void 0:t.items)||[])}).catch(t=>{console.error("Error fetching requisition lists:",t),_([])})},[e]);const S=[...(m==null?void 0:m.map(t=>({value:t.uid,text:t.name})))??[],...n?[{value:"__create__",text:I.createTitle}]:[]],T=async t=>{if(p)try{await p()}catch{return}try{await P(t,[{sku:i,quantity:a,selected_options:d}])}catch(s){console.error("Error adding product to list:",s)}},{alert:l,setAlert:g,handleRequisitionListAlert:f}=k();return R(()=>{const t=o.on("requisitionList/alert",f);return()=>{t==null||t.off()}},[f]),v("div",{...E,className:`requisition-list-names ${h==="hover"?"requisition-list-names--modal-hover":""}`,children:[l&&i===l.sku&&r(N,{id:`requisition-list-names__alert__${i}`,className:"requisition-list-names__alert",heading:l.description,type:l.type,variant:"primary",onDismiss:()=>g(null)}),r(y,{id:`requisition-list-names__picker__${i}`,className:"requisition-list-names__picker",name:`requisition-list-names__picker__${i}`,icon:r(A,{source:G}),variant:"secondary",placeholder:I.addToReqList,disabled:q,size:"medium",options:S,handleSelect:t=>{const s=t.currentTarget.value;if(s==="__create__"){c(!0);return}s&&T(s).then(()=>{o.emit("requisitionList/alert",{action:"add",type:"success",context:"product",skus:[i]}),c(!1),t.target.value=""})}}),n&&q&&r(U,{variant:"secondary",children:r(F,{mode:"create",onSuccess:async t=>{T(t.uid).then(()=>{o.emit("requisitionList/alert",{action:"add",type:"success",context:"product",skus:[i]}),c(!1),_(s=>[...s,t])})},onError:()=>{o.emit("requisitionList/alert",{action:"add",type:"error",context:"product",skus:[i]})},onCancel:()=>c(!1)})})]})};export{st as RequisitionListNames,st as default};
23
- //# sourceMappingURL=RequisitionListNames.js.map
@@ -1 +0,0 @@
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';\nimport { events } from '@adobe-commerce/event-bus';\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 const payload = transformRequisitionList(\n data.addProductsToRequisitionList.requisition_list\n );\n events.emit('requisitionList/data', payload);\n return payload;\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 {\n Card,\n Icon,\n InLineAlert,\n Picker,\n} 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 { events } from '@adobe-commerce/event-bus';\nimport '@/requisitionList/containers/RequisitionListNames/RequisitionListNames.css';\nimport { useRequisitionListAlert } from '@/requisitionList/hooks';\n\nexport interface RequisitionListNamesProps\n extends HTMLAttributes<HTMLDivElement> {\n items?: RequisitionList[];\n canCreate?: boolean;\n sku: string;\n selectedOptions?: string[];\n quantity?: number;\n variant?: 'neutral' | 'hover';\n beforeAddProdToReqList?: () => Promise<void> | void;\n}\n\nexport const RequisitionListNames: Container<RequisitionListNamesProps> = ({\n items = [],\n canCreate = true,\n sku,\n selectedOptions,\n quantity = 1,\n variant = 'neutral',\n beforeAddProdToReqList,\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 (!items || items.length === 0) {\n getRequisitionLists()\n .then((res: { items: RequisitionList[] }) => {\n setReqLists(res?.items || []);\n })\n .catch((error: any) => {\n console.error('Error fetching requisition lists:', error);\n setReqLists([]);\n });\n }\n }, [items]);\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 // Execute beforeAddProdToReqList callback if provided\n if (beforeAddProdToReqList) {\n try {\n await beforeAddProdToReqList();\n } catch (error) {\n // If callback throws an error (e.g., redirect), stop execution\n return;\n }\n }\n\n try {\n await addProductsToRequisitionList(requisitionListUid, [\n { sku, quantity, selected_options: selectedOptions },\n ]);\n } catch (error) {\n console.error('Error adding product to list:', error);\n }\n };\n\n const { alert, setAlert, handleRequisitionListAlert } =\n useRequisitionListAlert();\n\n useEffect(() => {\n const updateEvent = events.on(\n 'requisitionList/alert',\n handleRequisitionListAlert\n );\n return () => {\n updateEvent?.off();\n };\n }, [handleRequisitionListAlert]);\n\n return (\n <div\n {...props}\n className={`requisition-list-names ${\n variant === 'hover' ? 'requisition-list-names--modal-hover' : ''\n }`}\n >\n {alert && sku === alert.sku && (\n <InLineAlert\n id={`requisition-list-names__alert__${sku}`}\n className=\"requisition-list-names__alert\"\n heading={alert.description}\n type={alert.type}\n variant=\"primary\"\n onDismiss={() => setAlert(null)}\n />\n )}\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 events.emit('requisitionList/alert', {\n action: 'add',\n type: 'success',\n context: 'product',\n skus: [sku],\n });\n setIsAdding(false);\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 events.emit('requisitionList/alert', {\n action: 'add',\n type: 'success',\n context: 'product',\n skus: [sku],\n });\n setIsAdding(false);\n setReqLists((prevLists: RequisitionList[]) => [\n ...prevLists,\n newList,\n ]);\n });\n }}\n onError={() => {\n events.emit('requisitionList/alert', {\n action: 'add',\n type: 'error',\n context: 'product',\n skus: [sku],\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","payload","transformRequisitionList","events","SvgBurger","props","React","RequisitionListNames","items","canCreate","sku","selectedOptions","quantity","variant","beforeAddProdToReqList","reqLists","setReqLists","useState","isAdding","setIsAdding","translations","useText","useEffect","getRequisitionLists","res","error","reqListOptions","reqList","handleAddProdToReqList","alert","setAlert","handleRequisitionListAlert","useRequisitionListAlert","updateEvent","jsxs","jsx","InLineAlert","Picker","Icon","Burger","event","selectedUid","Card","RequisitionListForm","newList","prevLists"],"mappings":"42BAoBO,MAAMA,EAA4C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBvDC,CAA+B;AAAA,EAC/BC,CAAyB;AAAA,ECbdC,EAA+B,MAC1CC,EACAC,IACoC,CACpC,KAAM,CAAE,OAAAC,EAAQ,KAAAC,CAAK,EAAI,MAAMC,EAC7BR,EACA,CACE,UAAW,CACT,mBAAAI,EACA,qBAAAC,CAAA,CACF,CAEJ,EACI,GAAAC,EAAe,OAAAG,EAAiBH,CAAM,EAE1C,MAAMI,EAAUC,EACdJ,EAAK,6BAA6B,gBACpC,EACO,OAAAK,EAAA,KAAK,uBAAwBF,CAAO,EACpCA,CACT,EC5CMG,EAAaC,GAA0BC,EAAM,cAAc,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAGD,CAAO,EAAkBC,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,WAAY,OAAQ,cAAc,CAAE,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,UAAW,OAAQ,cAAgB,CAAA,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,WAAY,OAAQ,cAAgB,CAAA,CAAC,EC8C1hBC,GAA6D,CAAC,CACzE,MAAAC,EAAQ,CAAC,EACT,UAAAC,EAAY,GACZ,IAAAC,EACA,gBAAAC,EACA,SAAAC,EAAW,EACX,QAAAC,EAAU,UACV,uBAAAC,EACA,GAAGT,CACL,IAAiC,CAC/B,KAAM,CAACU,EAAUC,CAAW,EAAIC,EAAST,CAAK,EACxC,CAACU,EAAUC,CAAW,EAAIF,EAAS,EAAK,EAExCG,EAAeC,EAAQ,CAC3B,YAAa,kDACb,aAAc,0DAAA,CACf,EAEDC,EAAU,IAAM,EACV,CAACd,GAASA,EAAM,SAAW,IACTe,EAAA,EACjB,KAAMC,GAAsC,CAC/BR,GAAAQ,GAAA,YAAAA,EAAK,QAAS,EAAE,CAAA,CAC7B,EACA,MAAOC,GAAe,CACb,QAAA,MAAM,oCAAqCA,CAAK,EACxDT,EAAY,CAAA,CAAE,CAAA,CACf,CACL,EACC,CAACR,CAAK,CAAC,EAEV,MAAMkB,EAAiB,CACrB,IAAIX,GAAA,YAAAA,EAAU,IAAKY,IAA8B,CAC/C,MAAOA,EAAQ,IACf,KAAMA,EAAQ,IAChB,MAAO,CAAC,EACR,GAAIlB,EACA,CAAC,CAAE,MAAO,aAAc,KAAMW,EAAa,WAAA,CAAa,EACxD,CAAA,CACN,EAEMQ,EAAyB,MAAOjC,GAA+B,CAEnE,GAAImB,EACE,GAAA,CACF,MAAMA,EAAuB,OACf,CAEd,MAAA,CAIA,GAAA,CACF,MAAMpB,EAA6BC,EAAoB,CACrD,CAAE,IAAAe,EAAK,SAAAE,EAAU,iBAAkBD,CAAgB,CAAA,CACpD,QACMc,EAAO,CACN,QAAA,MAAM,gCAAiCA,CAAK,CAAA,CAExD,EAEM,CAAE,MAAAI,EAAO,SAAAC,EAAU,2BAAAC,CAAA,EACvBC,EAAwB,EAE1B,OAAAV,EAAU,IAAM,CACd,MAAMW,EAAc9B,EAAO,GACzB,wBACA4B,CACF,EACA,MAAO,IAAM,CACXE,GAAA,MAAAA,EAAa,KACf,CAAA,EACC,CAACF,CAA0B,CAAC,EAG7BG,EAAC,MAAA,CACE,GAAG7B,EACJ,UAAW,0BACTQ,IAAY,QAAU,sCAAwC,EAChE,GAEC,SAAA,CAASgB,GAAAnB,IAAQmB,EAAM,KACtBM,EAACC,EAAA,CACC,GAAI,kCAAkC1B,CAAG,GACzC,UAAU,gCACV,QAASmB,EAAM,YACf,KAAMA,EAAM,KACZ,QAAQ,UACR,UAAW,IAAMC,EAAS,IAAI,CAAA,CAChC,EAEFK,EAACE,EAAA,CACC,GAAI,mCAAmC3B,CAAG,GAC1C,UAAU,iCACV,KAAM,mCAAmCA,CAAG,GAC5C,KAAMyB,EAACG,EAAK,CAAA,OAAQC,CAAQ,CAAA,EAC5B,QAAS,YACT,YAAanB,EAAa,aAC1B,SAAUF,EACV,KAAK,SACL,QAASQ,EACT,aAAec,GAAuD,CAC9D,MAAAC,EAAcD,EAAM,cAAc,MACxC,GAAIC,IAAgB,aAAc,CAChCtB,EAAY,EAAI,EAChB,MAAA,CAEEsB,GACqBb,EAAAa,CAAW,EAAE,KAAK,IAAM,CAC7CtC,EAAO,KAAK,wBAAyB,CACnC,OAAQ,MACR,KAAM,UACN,QAAS,UACT,KAAM,CAACO,CAAG,CAAA,CACX,EACDS,EAAY,EAAK,EACjBqB,EAAM,OAAO,MAAQ,EAAA,CACtB,CACH,CACF,CACF,EACC/B,GAAaS,GACXiB,EAAAO,EAAA,CAAK,QAAQ,YACZ,SAAAP,EAACQ,EAAA,CACC,KAAK,SACL,UAAW,MAAOC,GAA6B,CAC7ChB,EAAuBgB,EAAQ,GAAG,EAAE,KAAK,IAAM,CAC7CzC,EAAO,KAAK,wBAAyB,CACnC,OAAQ,MACR,KAAM,UACN,QAAS,UACT,KAAM,CAACO,CAAG,CAAA,CACX,EACDS,EAAY,EAAK,EACjBH,EAAa6B,GAAiC,CAC5C,GAAGA,EACHD,CAAA,CACD,CAAA,CACF,CACH,EACA,QAAS,IAAM,CACbzC,EAAO,KAAK,wBAAyB,CACnC,OAAQ,MACR,KAAM,QACN,QAAS,UACT,KAAM,CAACO,CAAG,CAAA,CACX,CACH,EACA,SAAU,IAAMS,EAAY,EAAK,CAAA,CAAA,CAErC,CAAA,CAAA,CAAA,CAEJ,CAEJ","x_google_ignoreList":[2]}