@faststore/components 3.98.0-dev.3 → 3.98.0-dev.8

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 (171) hide show
  1. package/dist/cjs/atoms/Link/Link.d.ts +1 -1
  2. package/dist/cjs/atoms/Link/Link.d.ts.map +1 -1
  3. package/dist/cjs/atoms/Link/Link.js.map +1 -1
  4. package/dist/cjs/atoms/List/List.d.ts.map +1 -1
  5. package/dist/cjs/atoms/List/List.js.map +1 -1
  6. package/dist/cjs/hooks/index.d.ts +7 -3
  7. package/dist/cjs/hooks/index.d.ts.map +1 -1
  8. package/dist/cjs/hooks/index.js +12 -6
  9. package/dist/cjs/hooks/index.js.map +1 -1
  10. package/dist/cjs/hooks/useCSVParser.d.ts +43 -0
  11. package/dist/cjs/hooks/useCSVParser.d.ts.map +1 -0
  12. package/dist/cjs/hooks/useCSVParser.js +264 -0
  13. package/dist/cjs/hooks/useCSVParser.js.map +1 -0
  14. package/dist/cjs/hooks/useFileUpload.d.ts +26 -0
  15. package/dist/cjs/hooks/useFileUpload.d.ts.map +1 -0
  16. package/dist/cjs/hooks/useFileUpload.js +68 -0
  17. package/dist/cjs/hooks/useFileUpload.js.map +1 -0
  18. package/dist/cjs/index.d.ts +58 -50
  19. package/dist/cjs/index.d.ts.map +1 -1
  20. package/dist/cjs/index.js +47 -32
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/molecules/Accordion/AccordionItem.d.ts.map +1 -1
  23. package/dist/cjs/molecules/Accordion/AccordionItem.js.map +1 -1
  24. package/dist/cjs/molecules/Dropzone/Dropzone.d.ts +87 -0
  25. package/dist/cjs/molecules/Dropzone/Dropzone.d.ts.map +1 -0
  26. package/dist/cjs/molecules/Dropzone/Dropzone.js +85 -0
  27. package/dist/cjs/molecules/Dropzone/Dropzone.js.map +1 -0
  28. package/dist/cjs/molecules/Dropzone/index.d.ts +3 -0
  29. package/dist/cjs/molecules/Dropzone/index.d.ts.map +1 -0
  30. package/dist/cjs/molecules/Dropzone/index.js +9 -0
  31. package/dist/cjs/molecules/Dropzone/index.js.map +1 -0
  32. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.d.ts +113 -0
  33. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.d.ts.map +1 -0
  34. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.js +169 -0
  35. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.js.map +1 -0
  36. package/dist/cjs/molecules/FileUploadCard/index.d.ts +3 -0
  37. package/dist/cjs/molecules/FileUploadCard/index.d.ts.map +1 -0
  38. package/dist/cjs/molecules/FileUploadCard/index.js +9 -0
  39. package/dist/cjs/molecules/FileUploadCard/index.js.map +1 -0
  40. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.d.ts +93 -0
  41. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.d.ts.map +1 -0
  42. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.js +77 -0
  43. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.js.map +1 -0
  44. package/dist/cjs/molecules/FileUploadStatus/index.d.ts +3 -0
  45. package/dist/cjs/molecules/FileUploadStatus/index.d.ts.map +1 -0
  46. package/dist/cjs/molecules/FileUploadStatus/index.js +11 -0
  47. package/dist/cjs/molecules/FileUploadStatus/index.js.map +1 -0
  48. package/dist/cjs/molecules/SearchInputField/SearchInputField.d.ts +23 -1
  49. package/dist/cjs/molecules/SearchInputField/SearchInputField.d.ts.map +1 -1
  50. package/dist/cjs/molecules/SearchInputField/SearchInputField.js +9 -4
  51. package/dist/cjs/molecules/SearchInputField/SearchInputField.js.map +1 -1
  52. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts +24 -0
  53. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts.map +1 -0
  54. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.js +14 -0
  55. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.js.map +1 -0
  56. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts +16 -0
  57. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts.map +1 -0
  58. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js +37 -0
  59. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js.map +1 -0
  60. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts +9 -0
  61. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts.map +1 -0
  62. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js +24 -0
  63. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js.map +1 -0
  64. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts +35 -0
  65. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts.map +1 -0
  66. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js +91 -0
  67. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js.map +1 -0
  68. package/dist/cjs/organisms/QuickOrderDrawer/index.d.ts +11 -0
  69. package/dist/cjs/organisms/QuickOrderDrawer/index.d.ts.map +1 -0
  70. package/dist/cjs/organisms/QuickOrderDrawer/index.js +18 -0
  71. package/dist/cjs/organisms/QuickOrderDrawer/index.js.map +1 -0
  72. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts +61 -0
  73. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts.map +1 -0
  74. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js +86 -0
  75. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js.map +1 -0
  76. package/dist/esm/atoms/Link/Link.d.ts +1 -1
  77. package/dist/esm/atoms/Link/Link.d.ts.map +1 -1
  78. package/dist/esm/atoms/Link/Link.js.map +1 -1
  79. package/dist/esm/atoms/List/List.d.ts.map +1 -1
  80. package/dist/esm/atoms/List/List.js.map +1 -1
  81. package/dist/esm/hooks/index.d.ts +7 -3
  82. package/dist/esm/hooks/index.d.ts.map +1 -1
  83. package/dist/esm/hooks/index.js +6 -3
  84. package/dist/esm/hooks/index.js.map +1 -1
  85. package/dist/esm/hooks/useCSVParser.d.ts +43 -0
  86. package/dist/esm/hooks/useCSVParser.d.ts.map +1 -0
  87. package/dist/esm/hooks/useCSVParser.js +259 -0
  88. package/dist/esm/hooks/useCSVParser.js.map +1 -0
  89. package/dist/esm/hooks/useFileUpload.d.ts +26 -0
  90. package/dist/esm/hooks/useFileUpload.d.ts.map +1 -0
  91. package/dist/esm/hooks/useFileUpload.js +64 -0
  92. package/dist/esm/hooks/useFileUpload.js.map +1 -0
  93. package/dist/esm/index.d.ts +58 -50
  94. package/dist/esm/index.d.ts.map +1 -1
  95. package/dist/esm/index.js +24 -20
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/molecules/Accordion/AccordionItem.d.ts.map +1 -1
  98. package/dist/esm/molecules/Accordion/AccordionItem.js.map +1 -1
  99. package/dist/esm/molecules/Dropzone/Dropzone.d.ts +87 -0
  100. package/dist/esm/molecules/Dropzone/Dropzone.d.ts.map +1 -0
  101. package/dist/esm/molecules/Dropzone/Dropzone.js +82 -0
  102. package/dist/esm/molecules/Dropzone/Dropzone.js.map +1 -0
  103. package/dist/esm/molecules/Dropzone/index.d.ts +3 -0
  104. package/dist/esm/molecules/Dropzone/index.d.ts.map +1 -0
  105. package/dist/esm/molecules/Dropzone/index.js +2 -0
  106. package/dist/esm/molecules/Dropzone/index.js.map +1 -0
  107. package/dist/esm/molecules/FileUploadCard/FileUploadCard.d.ts +113 -0
  108. package/dist/esm/molecules/FileUploadCard/FileUploadCard.d.ts.map +1 -0
  109. package/dist/esm/molecules/FileUploadCard/FileUploadCard.js +166 -0
  110. package/dist/esm/molecules/FileUploadCard/FileUploadCard.js.map +1 -0
  111. package/dist/esm/molecules/FileUploadCard/index.d.ts +3 -0
  112. package/dist/esm/molecules/FileUploadCard/index.d.ts.map +1 -0
  113. package/dist/esm/molecules/FileUploadCard/index.js +2 -0
  114. package/dist/esm/molecules/FileUploadCard/index.js.map +1 -0
  115. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.d.ts +93 -0
  116. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.d.ts.map +1 -0
  117. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.js +73 -0
  118. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.js.map +1 -0
  119. package/dist/esm/molecules/FileUploadStatus/index.d.ts +3 -0
  120. package/dist/esm/molecules/FileUploadStatus/index.d.ts.map +1 -0
  121. package/dist/esm/molecules/FileUploadStatus/index.js +2 -0
  122. package/dist/esm/molecules/FileUploadStatus/index.js.map +1 -0
  123. package/dist/esm/molecules/SearchInputField/SearchInputField.d.ts +23 -1
  124. package/dist/esm/molecules/SearchInputField/SearchInputField.d.ts.map +1 -1
  125. package/dist/esm/molecules/SearchInputField/SearchInputField.js +9 -4
  126. package/dist/esm/molecules/SearchInputField/SearchInputField.js.map +1 -1
  127. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts +24 -0
  128. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts.map +1 -0
  129. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.js +11 -0
  130. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.js.map +1 -0
  131. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts +16 -0
  132. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts.map +1 -0
  133. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js +34 -0
  134. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js.map +1 -0
  135. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts +9 -0
  136. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts.map +1 -0
  137. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js +21 -0
  138. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js.map +1 -0
  139. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts +35 -0
  140. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts.map +1 -0
  141. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js +88 -0
  142. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js.map +1 -0
  143. package/dist/esm/organisms/QuickOrderDrawer/index.d.ts +11 -0
  144. package/dist/esm/organisms/QuickOrderDrawer/index.d.ts.map +1 -0
  145. package/dist/esm/organisms/QuickOrderDrawer/index.js +6 -0
  146. package/dist/esm/organisms/QuickOrderDrawer/index.js.map +1 -0
  147. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts +61 -0
  148. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts.map +1 -0
  149. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js +80 -0
  150. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js.map +1 -0
  151. package/package.json +5 -2
  152. package/src/atoms/Link/Link.tsx +4 -1
  153. package/src/atoms/List/List.tsx +18 -16
  154. package/src/hooks/index.ts +11 -3
  155. package/src/hooks/useCSVParser.ts +367 -0
  156. package/src/hooks/useFileUpload.ts +88 -0
  157. package/src/index.ts +97 -66
  158. package/src/molecules/Accordion/AccordionItem.tsx +4 -3
  159. package/src/molecules/Dropzone/Dropzone.tsx +248 -0
  160. package/src/molecules/Dropzone/index.ts +2 -0
  161. package/src/molecules/FileUploadCard/FileUploadCard.tsx +406 -0
  162. package/src/molecules/FileUploadCard/index.tsx +2 -0
  163. package/src/molecules/FileUploadStatus/FileUploadStatus.tsx +258 -0
  164. package/src/molecules/FileUploadStatus/index.tsx +6 -0
  165. package/src/molecules/SearchInputField/SearchInputField.tsx +72 -23
  166. package/src/organisms/QuickOrderDrawer/QuickOrderDrawer.tsx +58 -0
  167. package/src/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.tsx +72 -0
  168. package/src/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.tsx +43 -0
  169. package/src/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.tsx +323 -0
  170. package/src/organisms/QuickOrderDrawer/index.ts +19 -0
  171. package/src/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.tsx +205 -0
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { useFadeEffect } from '../../hooks';
3
+ import SlideOver from '../SlideOver/SlideOver';
4
+ import { QuickOrderDrawerProvider, } from './provider/QuickOrderDrawerProvider';
5
+ const QuickOrderDrawer = ({ testId = 'fs-quick-order-drawer', isOpen, overlayProps, providerProps, children, }) => {
6
+ const { fade } = useFadeEffect();
7
+ return (React.createElement(QuickOrderDrawerProvider, { ...providerProps },
8
+ React.createElement(SlideOver, { testId: testId, fade: fade, isOpen: isOpen, size: "partial", direction: "rightSide", overlayProps: overlayProps, "data-fs-quick-order-drawer": true }, children)));
9
+ };
10
+ export default QuickOrderDrawer;
11
+ //# sourceMappingURL=QuickOrderDrawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickOrderDrawer.js","sourceRoot":"","sources":["../../../../src/organisms/QuickOrderDrawer/QuickOrderDrawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,SAAS,MAAM,wBAAwB,CAAA;AAE9C,OAAO,EACL,wBAAwB,GAEzB,MAAM,qCAAqC,CAAA;AAwB5C,MAAM,gBAAgB,GAAG,CAAC,EACxB,MAAM,GAAG,uBAAuB,EAChC,MAAM,EACN,YAAY,EACZ,aAAa,EACb,QAAQ,GACiC,EAAE,EAAE;IAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAA;IAChC,OAAO,CACL,oBAAC,wBAAwB,OAAK,aAAa;QACzC,oBAAC,SAAS,IACR,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAC,SAAS,EACd,SAAS,EAAC,WAAW,EACrB,YAAY,EAAE,YAAY,wCAGzB,QAAQ,CACC,CACa,CAC5B,CAAA;AACH,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { type PriceFormatter } from '../../atoms/Price';
3
+ export type QuickOrderDrawerFooterProps = {
4
+ formatter?: PriceFormatter;
5
+ /**
6
+ * Text labels for CMS configuration
7
+ */
8
+ labels?: {
9
+ itemsLabel?: string;
10
+ addToCartLabel?: string;
11
+ addToCartAriaLabel?: string;
12
+ };
13
+ };
14
+ declare const QuickOrderDrawerFooter: ({ formatter, labels, }: QuickOrderDrawerFooterProps) => React.JSX.Element;
15
+ export default QuickOrderDrawerFooter;
16
+ //# sourceMappingURL=QuickOrderDrawerFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickOrderDrawerFooter.d.ts","sourceRoot":"","sources":["../../../../src/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAc,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAG9D,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAC5B,CAAA;CACF,CAAA;AAED,QAAA,MAAM,sBAAsB,2BAGzB,2BAA2B,sBAgD7B,CAAA;AAED,eAAe,sBAAsB,CAAA"}
@@ -0,0 +1,34 @@
1
+ import React, { useState } from 'react';
2
+ import Button from '../../atoms/Button';
3
+ import Icon from '../../atoms/Icon';
4
+ import Price from '../../atoms/Price';
5
+ import { useQuickOrderDrawer } from './provider/QuickOrderDrawerProvider';
6
+ const QuickOrderDrawerFooter = ({ formatter, labels, }) => {
7
+ const [loading, setLoading] = useState(false);
8
+ const { itemsCount, totalPrice, onAddToCart, formatter: contextFormatter, } = useQuickOrderDrawer();
9
+ const priceFormatter = formatter || contextFormatter;
10
+ const { itemsLabel, addToCartLabel, addToCartAriaLabel } = labels || {};
11
+ const handleAddToCart = async () => {
12
+ if (itemsCount === 0)
13
+ return;
14
+ setLoading(true);
15
+ try {
16
+ onAddToCart();
17
+ }
18
+ finally {
19
+ setLoading(false);
20
+ }
21
+ };
22
+ return (React.createElement("div", { "data-fs-quick-order-drawer-footer": true },
23
+ React.createElement("div", { "data-fs-quick-order-drawer-footer-items": true },
24
+ React.createElement(Icon, { name: "Inventory", width: 24, height: 24 }),
25
+ React.createElement("span", null,
26
+ itemsCount,
27
+ " ",
28
+ itemsLabel || '')),
29
+ React.createElement("div", { "data-fs-quick-order-drawer-footer-actions": true },
30
+ React.createElement(Price, { value: totalPrice, variant: "selling", formatter: priceFormatter }),
31
+ React.createElement(Button, { "data-fs-quick-order-drawer-add-to-cart-btn": true, variant: "primary", disabled: itemsCount === 0, loading: loading, onClick: handleAddToCart, "aria-label": addToCartAriaLabel }, addToCartLabel))));
32
+ };
33
+ export default QuickOrderDrawerFooter;
34
+ //# sourceMappingURL=QuickOrderDrawerFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickOrderDrawerFooter.js","sourceRoot":"","sources":["../../../../src/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,IAAI,MAAM,kBAAkB,CAAA;AACnC,OAAO,KAA8B,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAczE,MAAM,sBAAsB,GAAG,CAAC,EAC9B,SAAS,EACT,MAAM,GACsB,EAAE,EAAE;IAChC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EAAE,gBAAgB,GAC5B,GAAG,mBAAmB,EAAE,CAAA;IACzB,MAAM,cAAc,GAAG,SAAS,IAAI,gBAAgB,CAAA;IACpD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAEvE,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QACjC,IAAI,UAAU,KAAK,CAAC;YAAE,OAAM;QAC5B,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,IAAI,CAAC;YACH,WAAW,EAAE,CAAA;QACf,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL;QACE;YACE,oBAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI;YAChD;gBACG,UAAU;;gBAAG,UAAU,IAAI,EAAE,CACzB,CACH;QACN;YACE,oBAAC,KAAK,IACJ,KAAK,EAAE,UAAU,EACjB,OAAO,EAAC,SAAS,EACjB,SAAS,EAAE,cAAc,GACzB;YACF,oBAAC,MAAM,wDAEL,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,UAAU,KAAK,CAAC,EAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,eAAe,gBACZ,kBAAkB,IAE7B,cAAc,CACR,CACL,CACF,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,sBAAsB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export type QuickOrderDrawerHeaderProps = {
3
+ title: string;
4
+ titleCharLimit?: number;
5
+ onCloseDrawer?: () => void;
6
+ };
7
+ declare const QuickOrderDrawerHeader: ({ onCloseDrawer, title, titleCharLimit, }: QuickOrderDrawerHeaderProps) => React.JSX.Element;
8
+ export default QuickOrderDrawerHeader;
9
+ //# sourceMappingURL=QuickOrderDrawerHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickOrderDrawerHeader.d.ts","sourceRoot":"","sources":["../../../../src/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B,CAAA;AAED,QAAA,MAAM,sBAAsB,8CAIzB,2BAA2B,sBA0B7B,CAAA;AAED,eAAe,sBAAsB,CAAA"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import Icon from '../../atoms/Icon';
3
+ import { SlideOverHeader } from '../SlideOver';
4
+ const QuickOrderDrawerHeader = ({ onCloseDrawer, title, titleCharLimit = 30, }) => {
5
+ const leftOffset = Math.floor(titleCharLimit / 2) - 3;
6
+ const rightOffset = Math.floor(titleCharLimit / 2);
7
+ const titleFormatted = title.length > titleCharLimit
8
+ ? `${title.slice(0, leftOffset)}...${title.slice(-rightOffset)}`
9
+ : title;
10
+ return (React.createElement(SlideOverHeader, { "data-fs-quick-order-drawer-header": true, closeBtnProps: {
11
+ variant: 'tertiary',
12
+ color: 'black',
13
+ 'aria-label': 'Close quick order drawer',
14
+ }, onClose: () => onCloseDrawer?.() },
15
+ React.createElement("div", { "data-fs-quick-order-drawer-title-container": true },
16
+ React.createElement("div", { "data-fs-quick-order-drawer-icon": true },
17
+ React.createElement(Icon, { name: "Table", weight: "bold", width: 32, height: 32 })),
18
+ React.createElement("div", { "data-fs-quick-order-drawer-title": true }, titleFormatted))));
19
+ };
20
+ export default QuickOrderDrawerHeader;
21
+ //# sourceMappingURL=QuickOrderDrawerHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickOrderDrawerHeader.js","sourceRoot":"","sources":["../../../../src/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,IAAI,MAAM,kBAAkB,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAQ9C,MAAM,sBAAsB,GAAG,CAAC,EAC9B,aAAa,EACb,KAAK,EACL,cAAc,GAAG,EAAE,GACS,EAAE,EAAE;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAA;IAClD,MAAM,cAAc,GAClB,KAAK,CAAC,MAAM,GAAG,cAAc;QAC3B,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE;QAChE,CAAC,CAAC,KAAK,CAAA;IAEX,OAAO,CACL,oBAAC,eAAe,+CAEd,aAAa,EAAE;YACb,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,0BAA0B;SACzC,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE;QAEhC;YACE;gBACE,oBAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,CACtD;YACN,yEAAuC,cAAc,CAAO,CACxD,CACU,CACnB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,sBAAsB,CAAA"}
@@ -0,0 +1,35 @@
1
+ import React, { type FunctionComponent } from 'react';
2
+ import type { PriceFormatter } from '../../atoms/Price';
3
+ import { type VariationProductColumn } from './provider/QuickOrderDrawerProvider';
4
+ type ImageComponentType = FunctionComponent<{
5
+ src: string;
6
+ alt: string;
7
+ width?: number;
8
+ height?: number;
9
+ loading?: 'eager' | 'lazy';
10
+ }>;
11
+ export type QuickOrderDrawerProductsProps = {
12
+ columns: VariationProductColumn;
13
+ formatter?: PriceFormatter;
14
+ ImageComponent?: ImageComponentType;
15
+ /**
16
+ * Messages for CMS configuration
17
+ */
18
+ messages?: {
19
+ alertAriaLabel?: string;
20
+ tableAriaLabel?: string;
21
+ quantityUpdatedTooltip?: string;
22
+ quantityUpdatedAriaLabel?: string;
23
+ outOfStockLabel?: string;
24
+ availableLabel?: string;
25
+ selectQuantityAriaLabel?: string;
26
+ removeProductAriaLabel?: string;
27
+ invalidQuantityTitle?: string;
28
+ invalidQuantityMessage?: (min: number, max: number, quantity: number) => string;
29
+ emptyStateTitle?: string;
30
+ emptyStateMessage?: string;
31
+ };
32
+ };
33
+ declare const QuickOrderDrawerProducts: ({ columns, formatter, ImageComponent, messages, }: QuickOrderDrawerProductsProps) => React.JSX.Element;
34
+ export default QuickOrderDrawerProducts;
35
+ //# sourceMappingURL=QuickOrderDrawerProducts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickOrderDrawerProducts.d.ts","sourceRoot":"","sources":["../../../../src/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAarD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMvD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qCAAqC,CAAA;AAE5C,KAAK,kBAAkB,GAAG,iBAAiB,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAC3B,CAAC,CAAA;AAYF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,sBAAsB,CAAA;IAC/B,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B,cAAc,CAAC,EAAE,kBAAkB,CAAA;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,sBAAsB,CAAC,EAAE,MAAM,CAAA;QAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAA;QACjC,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,uBAAuB,CAAC,EAAE,MAAM,CAAA;QAChC,sBAAsB,CAAC,EAAE,MAAM,CAAA;QAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAA;QAC7B,sBAAsB,CAAC,EAAE,CACvB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,KACb,MAAM,CAAA;QACX,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAC3B,CAAA;CACF,CAAA;AAED,QAAA,MAAM,wBAAwB,sDAK3B,6BAA6B,sBAsP/B,CAAA;AAED,eAAe,wBAAwB,CAAA"}
@@ -0,0 +1,88 @@
1
+ import React from 'react';
2
+ import Icon from '../../atoms/Icon';
3
+ import IconButton from '../../molecules/IconButton';
4
+ import QuantitySelector from '../../molecules/QuantitySelector';
5
+ import { Table, TableBody, TableCell, TableHead, TableRow, } from '../../molecules/Table';
6
+ import Badge from '../../atoms/Badge';
7
+ import Price from '../../atoms/Price';
8
+ import Skeleton from '../../atoms/Skeleton';
9
+ import { useUI } from '../../hooks';
10
+ import Alert from '../../molecules/Alert';
11
+ import Tooltip from '../../molecules/Tooltip';
12
+ import { useQuickOrderDrawer, } from './provider/QuickOrderDrawerProvider';
13
+ // TODO: Replace with faststore Image component in final implementation
14
+ // This is a temporary reference component for storybook preview
15
+ const DefaultImageComponent = ({ src, alt, width, height, ...otherProps }) => React.createElement("img", { src: src, alt: alt, width: width, height: height, ...otherProps });
16
+ const QuickOrderDrawerProducts = ({ columns, formatter, ImageComponent = DefaultImageComponent, messages, }) => {
17
+ const { pushToast } = useUI();
18
+ const { products, onChangeQuantityItem, onDelete, isLoading, alertMessage, setAlertMessage, formatter: contextFormatter, } = useQuickOrderDrawer();
19
+ const priceFormatter = formatter || contextFormatter;
20
+ const showSkeleton = isLoading;
21
+ return (React.createElement("div", { "data-fs-quick-order-drawer-content": true },
22
+ React.createElement(React.Fragment, null,
23
+ !isLoading && alertMessage && (React.createElement(Alert, { icon: React.createElement(Icon, { name: "AlertFilled", weight: "bold" }), dismissible: true, onClick: () => setAlertMessage(''), "aria-label": messages?.alertAriaLabel }, alertMessage)),
24
+ React.createElement(Table, { "data-fs-quick-order-drawer-table": true, variant: "bordered", "aria-label": messages?.tableAriaLabel },
25
+ React.createElement(TableHead, null,
26
+ React.createElement(TableRow, null,
27
+ React.createElement(TableCell, { "data-fs-quick-order-drawer-product-header": true, align: "left", variant: "header", scope: "col" }, columns.name),
28
+ React.createElement(TableCell, { align: "left", variant: "header", scope: "col" }, columns.availability.label),
29
+ React.createElement(TableCell, { align: "center", variant: "header", scope: "col" }, columns.price),
30
+ React.createElement(TableCell, { align: "left", variant: "header", scope: "col" }, columns.quantity),
31
+ React.createElement(TableCell, { align: "right", variant: "header", scope: "col" }))),
32
+ React.createElement(TableBody, null, showSkeleton ? (React.createElement(React.Fragment, null, Array.from({ length: 5 }).map((_, index) => {
33
+ return (React.createElement(TableRow, { key: `table-row-skeleton-${index}` }, Array.from({
34
+ length: 5,
35
+ }).map((_, cellIndex) => {
36
+ return (React.createElement(TableCell, { key: `table-cell-skeleton-${cellIndex}` },
37
+ React.createElement(Skeleton, { size: { width: '96%', height: '30px' } })));
38
+ })));
39
+ }))) : products.length > 0 ? (React.createElement(React.Fragment, null, products.map((variantProduct) => (React.createElement(TableRow, { key: `${variantProduct.name}-${variantProduct.id}`, "data-fs-quick-order-table-row": variantProduct.availability },
40
+ React.createElement(TableCell, { "data-fs-quick-order-cell": "product", align: "left" },
41
+ React.createElement("div", { "data-fs-quick-order-table-cell-img-container": true },
42
+ React.createElement(ImageComponent, { height: 48, src: variantProduct.image.url, alt: variantProduct.image.alternateName ||
43
+ variantProduct.name })),
44
+ React.createElement("div", { "data-fs-quick-order-table-cell-name-container": true },
45
+ React.createElement("div", { "data-fs-quick-order-text": 'primary' }, variantProduct.name),
46
+ React.createElement("span", { "data-fs-quick-order-text": 'secondary' }, variantProduct.id)),
47
+ variantProduct.availability === 'available' &&
48
+ variantProduct.quantityUpdated && (React.createElement(Tooltip, { content: messages?.quantityUpdatedTooltip, placement: "left-center" },
49
+ React.createElement(IconButton, { "aria-label": messages?.quantityUpdatedAriaLabel, icon: React.createElement(Icon, { name: "CircleWarning", weight: "bold" }) })))),
50
+ React.createElement(TableCell, { align: "left" },
51
+ columns.availability.stockDisplaySettings ===
52
+ 'showAvailability' && (React.createElement(Badge, { variant: variantProduct.availability === 'outOfStock'
53
+ ? 'warning'
54
+ : 'success' }, variantProduct.availability === 'outOfStock'
55
+ ? messages?.outOfStockLabel
56
+ : messages?.availableLabel)),
57
+ columns.availability.stockDisplaySettings ===
58
+ 'showStockQuantity' && variantProduct.inventory),
59
+ React.createElement(TableCell, { "data-fs-quick-order-cell": "price", align: "right" },
60
+ React.createElement(Price, { value: variantProduct.price, variant: "spot", formatter: priceFormatter, "data-fs-quick-order-table-price": variantProduct.availability })),
61
+ React.createElement(TableCell, { align: "right", "data-fs-quick-order-cell": "quantity-selector" },
62
+ React.createElement("div", { "data-fs-quick-order-table-action": true },
63
+ React.createElement(QuantitySelector, { min: 0, max: variantProduct.inventory, disabled: !variantProduct.inventory ||
64
+ variantProduct.availability === 'outOfStock', initial: variantProduct.selectedCount, onChange: (value) => onChangeQuantityItem(variantProduct.id, value), "aria-label": messages?.selectQuantityAriaLabel?.replace('{productName}', variantProduct.name), onValidateBlur: (min, maxValue, quantity) => {
65
+ const title = messages?.invalidQuantityTitle;
66
+ const message = messages?.invalidQuantityMessage
67
+ ? messages.invalidQuantityMessage(min, maxValue, quantity)
68
+ : '';
69
+ pushToast({
70
+ title,
71
+ message,
72
+ status: 'INFO',
73
+ icon: (React.createElement(Icon, { name: "CircleWavyWarning", width: 30, height: 30 })),
74
+ });
75
+ } }))),
76
+ React.createElement(TableCell, { align: "right", "data-fs-quick-order-delete-cell": true },
77
+ React.createElement(IconButton, { onClick: () => onDelete(variantProduct.id), icon: React.createElement(Icon, { name: "Thrash", color: "#1F1F1F" }), "aria-label": messages?.removeProductAriaLabel?.replace('{productName}', variantProduct.name) }))))))) : (React.createElement(TableRow, null,
78
+ React.createElement(TableCell, { align: "center", "data-fs-quick-order-empty-state": true, ...{
79
+ colSpan: 5,
80
+ } },
81
+ React.createElement("div", { "data-fs-quick-order-empty-state-container": true },
82
+ React.createElement(Icon, { name: "MagnifyingGlass", width: 48, height: 48, weight: "thin", "data-fs-quick-order-empty-state-icon": true }),
83
+ React.createElement("div", { "data-fs-quick-order-empty-state-content": true },
84
+ React.createElement("p", { "data-fs-quick-order-empty-state-title": true }, messages?.emptyStateTitle),
85
+ React.createElement("p", { "data-fs-quick-order-empty-state-message": true }, messages?.emptyStateMessage)))))))))));
86
+ };
87
+ export default QuickOrderDrawerProducts;
88
+ //# sourceMappingURL=QuickOrderDrawerProducts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickOrderDrawerProducts.js","sourceRoot":"","sources":["../../../../src/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { default as QuickOrderDrawer, default } from './QuickOrderDrawer';
2
+ export type { QuickOrderDrawerProps } from './QuickOrderDrawer';
3
+ export { default as QuickOrderDrawerHeader } from './QuickOrderDrawerHeader';
4
+ export type { QuickOrderDrawerHeaderProps } from './QuickOrderDrawerHeader';
5
+ export { default as QuickOrderDrawerProducts } from './QuickOrderDrawerProducts';
6
+ export type { QuickOrderDrawerProductsProps } from './QuickOrderDrawerProducts';
7
+ export { default as QuickOrderDrawerFooter } from './QuickOrderDrawerFooter';
8
+ export type { QuickOrderDrawerFooterProps } from './QuickOrderDrawerFooter';
9
+ export { useQuickOrderDrawer } from './provider/QuickOrderDrawerProvider';
10
+ export type { AlertMessages, Product, QuickOrderDrawerProviderProps, VariationProductColumn, } from './provider/QuickOrderDrawerProvider';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/organisms/QuickOrderDrawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACzE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAC5E,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAE3E,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAChF,YAAY,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAA;AAE/E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAC5E,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,YAAY,EACV,aAAa,EACb,OAAO,EACP,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,qCAAqC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { default as QuickOrderDrawer, default } from './QuickOrderDrawer';
2
+ export { default as QuickOrderDrawerHeader } from './QuickOrderDrawerHeader';
3
+ export { default as QuickOrderDrawerProducts } from './QuickOrderDrawerProducts';
4
+ export { default as QuickOrderDrawerFooter } from './QuickOrderDrawerFooter';
5
+ export { useQuickOrderDrawer } from './provider/QuickOrderDrawerProvider';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/organisms/QuickOrderDrawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAGzE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAG5E,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAGhF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAG5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA"}
@@ -0,0 +1,61 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import type { PriceFormatter } from '../../../atoms/Price';
3
+ export interface Product {
4
+ id: string;
5
+ name: string;
6
+ price: number;
7
+ quantityUpdated: boolean;
8
+ image: {
9
+ url: string;
10
+ alternateName: string;
11
+ };
12
+ inventory: number;
13
+ availability: 'available' | 'outOfStock';
14
+ selectedCount: number;
15
+ }
16
+ export interface VariationProductColumn {
17
+ name: string;
18
+ availability: {
19
+ label: string;
20
+ stockDisplaySettings: 'showStockQuantity' | 'showAvailability';
21
+ };
22
+ price: string;
23
+ quantity: string;
24
+ }
25
+ interface QuickOrderDrawerContextValue {
26
+ products: Product[];
27
+ totalPrice: number;
28
+ itemsCount: number;
29
+ alertMessage: string;
30
+ isLoading: boolean;
31
+ setAlertMessage: (message: string) => void;
32
+ onChangeQuantityItem: (id: string, value: number) => void;
33
+ onDelete: (id: string) => void;
34
+ onAddToCart: () => void;
35
+ formatter?: PriceFormatter;
36
+ }
37
+ export interface AlertMessages {
38
+ notFoundAndOutOfStock?: string;
39
+ notFound?: string;
40
+ outOfStock?: string;
41
+ }
42
+ export interface QuickOrderDrawerProviderProps {
43
+ children: ReactNode;
44
+ initialProducts?: Product[];
45
+ isLoading?: boolean;
46
+ totalRequestedSkus?: number;
47
+ onAddToCart?: (products: Product[], totalPrice: number, itemsCount: number) => void;
48
+ formatter?: PriceFormatter;
49
+ /**
50
+ * Initial alert message for CMS configuration
51
+ */
52
+ initialAlertMessage?: string;
53
+ /**
54
+ * Alert messages from CMS for different scenarios.
55
+ */
56
+ alertMessages?: AlertMessages;
57
+ }
58
+ export declare const QuickOrderDrawerProvider: ({ children, initialProducts, isLoading, totalRequestedSkus, onAddToCart: onAddToCartCallback, formatter, initialAlertMessage, alertMessages, }: QuickOrderDrawerProviderProps) => React.JSX.Element;
59
+ export declare const useQuickOrderDrawer: () => QuickOrderDrawerContextValue;
60
+ export {};
61
+ //# sourceMappingURL=QuickOrderDrawerProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickOrderDrawerProvider.d.ts","sourceRoot":"","sources":["../../../../../src/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAA;QACX,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,WAAW,GAAG,YAAY,CAAA;IACxC,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,oBAAoB,EAAE,mBAAmB,GAAG,kBAAkB,CAAA;KAC/D,CAAA;IACD,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,4BAA4B;IACpC,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,cAAc,CAAA;CAC3B;AAMD,MAAM,WAAW,aAAa;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,SAAS,CAAA;IACnB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,WAAW,CAAC,EAAE,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,KACf,IAAI,CAAA;IACT,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,eAAO,MAAM,wBAAwB,mJASlC,6BAA6B,sBAwG/B,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAO,4BAUtC,CAAA"}
@@ -0,0 +1,80 @@
1
+ import React, { createContext, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
2
+ const QuickOrderDrawerContext = createContext(undefined);
3
+ export const QuickOrderDrawerProvider = ({ children, initialProducts = [], isLoading = false, totalRequestedSkus, onAddToCart: onAddToCartCallback, formatter, initialAlertMessage, alertMessages, }) => {
4
+ const [products, setProducts] = useState(initialProducts || []);
5
+ const getAlertMessage = (prods, totalRequestedSkus) => {
6
+ if (prods.length === 0) {
7
+ return '';
8
+ }
9
+ const hasOutOfStock = prods.some((p) => p.availability === 'outOfStock');
10
+ const hasNotFound = totalRequestedSkus !== undefined &&
11
+ totalRequestedSkus > 0 &&
12
+ prods.length < totalRequestedSkus;
13
+ if (hasNotFound && hasOutOfStock) {
14
+ return alertMessages?.notFoundAndOutOfStock ?? '';
15
+ }
16
+ if (hasNotFound) {
17
+ return alertMessages?.notFound ?? '';
18
+ }
19
+ if (hasOutOfStock) {
20
+ return alertMessages?.outOfStock ?? '';
21
+ }
22
+ return '';
23
+ };
24
+ const [alertMessage, setAlertMessage] = useState(initialAlertMessage ?? '');
25
+ useEffect(() => {
26
+ const newProducts = initialProducts || [];
27
+ setProducts(newProducts);
28
+ }, [initialProducts]);
29
+ useEffect(() => {
30
+ if (!isLoading) {
31
+ setAlertMessage(getAlertMessage(products, totalRequestedSkus));
32
+ }
33
+ else if (isLoading) {
34
+ setAlertMessage('');
35
+ }
36
+ }, [products, isLoading, totalRequestedSkus]);
37
+ const { totalPrice, itemsCount } = useMemo(() => {
38
+ const filteredProducts = products.filter((product) => product.selectedCount > 0 && product.availability === 'available');
39
+ return filteredProducts.reduce((prev, curr) => ({
40
+ totalPrice: prev.totalPrice + curr.price * curr.selectedCount,
41
+ itemsCount: prev.itemsCount + curr.selectedCount,
42
+ }), { totalPrice: 0, itemsCount: 0 });
43
+ }, [products]);
44
+ const onChangeQuantityItem = useCallback((id, value) => {
45
+ setProducts((oldProducts) => oldProducts.map((product) => {
46
+ if (product.id !== id) {
47
+ return product;
48
+ }
49
+ return { ...product, selectedCount: value };
50
+ }));
51
+ }, []);
52
+ const onDelete = useCallback((id) => {
53
+ setProducts((oldProducts) => oldProducts.filter((product) => product.id !== id));
54
+ }, []);
55
+ const onAddToCart = useCallback(() => {
56
+ const productsToAdd = products.filter((product) => product.selectedCount > 0 && product.availability === 'available');
57
+ onAddToCartCallback?.(productsToAdd, totalPrice, itemsCount);
58
+ }, [products, totalPrice, itemsCount, onAddToCartCallback]);
59
+ const value = {
60
+ products,
61
+ totalPrice,
62
+ itemsCount,
63
+ alertMessage,
64
+ isLoading,
65
+ setAlertMessage,
66
+ onChangeQuantityItem,
67
+ onDelete,
68
+ onAddToCart,
69
+ formatter,
70
+ };
71
+ return (React.createElement(QuickOrderDrawerContext.Provider, { value: value }, children));
72
+ };
73
+ export const useQuickOrderDrawer = () => {
74
+ const context = useContext(QuickOrderDrawerContext);
75
+ if (context === undefined) {
76
+ throw new Error('useQuickOrderDrawer should be used within a QuickOrderDrawerProvider');
77
+ }
78
+ return context;
79
+ };
80
+ //# sourceMappingURL=QuickOrderDrawerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickOrderDrawerProvider.js","sourceRoot":"","sources":["../../../../../src/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/components",
3
- "version": "3.98.0-dev.3",
3
+ "version": "3.98.0-dev.8",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "typings": "dist/esm/index.d.ts",
@@ -34,6 +34,8 @@
34
34
  "react-dom": "^18.2.0"
35
35
  },
36
36
  "dependencies": {
37
+ "papaparse": "^5.5.3",
38
+ "react-dropzone": "^14.3.8",
37
39
  "react-intersection-observer": "^8.32.5",
38
40
  "react-swipeable": "^7.0.0",
39
41
  "tabbable": "^5.2.1"
@@ -44,6 +46,7 @@
44
46
  "@testing-library/react": "^14.3.0",
45
47
  "@types/jest": "29.1.0",
46
48
  "@types/jest-axe": "^3.5.9",
49
+ "@types/papaparse": "^5.5.0",
47
50
  "@types/react": "^18.2.42",
48
51
  "@types/react-dom": "^18.2.17",
49
52
  "@types/tabbable": "^3.1.1",
@@ -59,5 +62,5 @@
59
62
  "publishConfig": {
60
63
  "access": "public"
61
64
  },
62
- "gitHead": "c6e0f65660673a92f9de733b7502551ef755e86c"
65
+ "gitHead": "c1d0239ddbd1a792e45d82ef15f018d47b854ca0"
63
66
  }
@@ -29,7 +29,10 @@ export type LinkElementType = ElementType
29
29
  export type LinkProps<C extends LinkElementType = 'a'> =
30
30
  PolymorphicComponentPropsWithRef<C, LinkBaseProps>
31
31
 
32
- const Link = forwardRef(function Link<C extends LinkElementType = 'a'>(
32
+ const Link = forwardRef<
33
+ HTMLAnchorElement,
34
+ Omit<LinkProps<LinkElementType>, 'ref'>
35
+ >(function Link<C extends LinkElementType = 'a'>(
33
36
  {
34
37
  as,
35
38
  children,
@@ -24,22 +24,24 @@ type ListComponent = <T extends ElementType = 'ul'>(
24
24
  props: ListProps<T>
25
25
  ) => ReactElement | null
26
26
 
27
- const List = forwardRef(function List<T extends ElementType = 'ul'>(
28
- { as, marker, testId = 'fs-list', ...otherProps }: ListProps<T>,
29
- ref: PolymorphicRef<T>
30
- ) {
31
- const Component = as ?? 'ul'
27
+ const List = forwardRef<HTMLUListElement, Omit<ListProps<'ul'>, 'ref'>>(
28
+ function List<T extends ElementType = 'ul'>(
29
+ { as, marker, testId = 'fs-list', ...otherProps }: ListProps<T>,
30
+ ref: PolymorphicRef<T>
31
+ ) {
32
+ const Component = as ?? 'ul'
32
33
 
33
- return (
34
- <Component
35
- ref={ref}
36
- role="list"
37
- data-fs-list
38
- data-fs-list-marker={marker}
39
- data-testid={testId}
40
- {...otherProps}
41
- />
42
- )
43
- }) as ListComponent
34
+ return (
35
+ <Component
36
+ ref={ref}
37
+ role="list"
38
+ data-fs-list
39
+ data-fs-list-marker={marker}
40
+ data-testid={testId}
41
+ {...otherProps}
42
+ />
43
+ )
44
+ }
45
+ ) as ListComponent
44
46
 
45
47
  export default List
@@ -1,11 +1,20 @@
1
1
  export {
2
- regionSliderTypes,
3
2
  Toast as ToastProps,
4
3
  default as UIProvider,
4
+ regionSliderTypes,
5
5
  useUI,
6
6
  } from './UIProvider'
7
+ export { useCSVParser } from './useCSVParser'
8
+ export type {
9
+ CSVData,
10
+ CSVParserError,
11
+ CSVParserOptions,
12
+ } from './useCSVParser'
7
13
  export { useFadeEffect } from './useFadeEffect'
14
+ export { useFileUpload } from './useFileUpload'
8
15
  export { useOnClickOutside } from './useOnClickOutside'
16
+ export { useProductComparison } from './useProductComparison'
17
+ export { useRTL } from './useRTL'
9
18
  export { useScrollDirection } from './useScrollDirection'
10
19
  export { useSearch } from './useSearch'
11
20
  export { useSKUMatrix } from './useSKUMatrix'
@@ -18,5 +27,4 @@ export type {
18
27
  } from './useSlider'
19
28
  export { useSlideVisibility } from './useSlideVisibility'
20
29
  export { useTrapFocus } from './useTrapFocus'
21
- export { useProductComparison } from './useProductComparison'
22
- export { useRTL } from './useRTL'
30
+ export { FileRejectionCode } from './useFileUpload'