bananas-commerce-admin 0.2.2 → 0.2.5

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 (361) hide show
  1. package/README.md +4 -8
  2. package/dist/cjs/Admin.js +54 -27
  3. package/dist/cjs/Admin.js.map +1 -0
  4. package/dist/cjs/App.js +23 -11
  5. package/dist/cjs/App.js.map +1 -0
  6. package/dist/cjs/api.js +125 -65
  7. package/dist/cjs/api.js.map +1 -0
  8. package/dist/cjs/components/Branding.js +10 -8
  9. package/dist/cjs/components/Branding.js.map +1 -0
  10. package/dist/cjs/components/Hamburger.js +23 -11
  11. package/dist/cjs/components/Hamburger.js.map +1 -0
  12. package/dist/cjs/components/Link.js +9 -7
  13. package/dist/cjs/components/Link.js.map +1 -0
  14. package/dist/cjs/components/Logo.js +5 -3
  15. package/dist/cjs/components/Logo.js.map +1 -0
  16. package/dist/cjs/components/NavBar.js +48 -31
  17. package/dist/cjs/components/NavBar.js.map +1 -0
  18. package/dist/cjs/components/NavBarItem.js +16 -14
  19. package/dist/cjs/components/NavBarItem.js.map +1 -0
  20. package/dist/cjs/components/NavBarRoutes.js +23 -18
  21. package/dist/cjs/components/NavBarRoutes.js.map +1 -0
  22. package/dist/cjs/components/ProgressBar.js +5 -3
  23. package/dist/cjs/components/ProgressBar.js.map +1 -0
  24. package/dist/cjs/components/TitleBar.js +18 -17
  25. package/dist/cjs/components/TitleBar.js.map +1 -0
  26. package/dist/cjs/components/User.js +34 -21
  27. package/dist/cjs/components/User.js.map +1 -0
  28. package/dist/cjs/containers/Content.js +8 -6
  29. package/dist/cjs/containers/Content.js.map +1 -0
  30. package/dist/cjs/containers/ErrorScreen.js +21 -19
  31. package/dist/cjs/containers/ErrorScreen.js.map +1 -0
  32. package/dist/cjs/containers/LoadingScreen.js +64 -49
  33. package/dist/cjs/containers/LoadingScreen.js.map +1 -0
  34. package/dist/cjs/containers/PageErrorBoundary.js +33 -14
  35. package/dist/cjs/containers/PageErrorBoundary.js.map +1 -0
  36. package/dist/cjs/containers/PageLoader.js +129 -40
  37. package/dist/cjs/containers/PageLoader.js.map +1 -0
  38. package/dist/cjs/contexts/ApiContext.js +53 -16
  39. package/dist/cjs/contexts/ApiContext.js.map +1 -0
  40. package/dist/cjs/contexts/DialogContext.js +82 -0
  41. package/dist/cjs/contexts/DialogContext.js.map +1 -0
  42. package/dist/cjs/contexts/I18nContext.js +58 -18
  43. package/dist/cjs/contexts/I18nContext.js.map +1 -0
  44. package/dist/cjs/contexts/RouterContext.js +52 -44
  45. package/dist/cjs/contexts/RouterContext.js.map +1 -0
  46. package/dist/cjs/contexts/UserContext.js +96 -43
  47. package/dist/cjs/contexts/UserContext.js.map +1 -0
  48. package/dist/cjs/extensions/bananas/components/PasswordChangeForm.js +45 -32
  49. package/dist/cjs/extensions/bananas/components/PasswordChangeForm.js.map +1 -0
  50. package/dist/cjs/extensions/bananas/index.js +3 -2
  51. package/dist/cjs/extensions/bananas/index.js.map +1 -0
  52. package/dist/cjs/extensions/bananas/pages/me/list.js +10 -9
  53. package/dist/cjs/extensions/bananas/pages/me/list.js.map +1 -0
  54. package/dist/cjs/extensions/fulfillment/components/AddressInfo.js +8 -6
  55. package/dist/cjs/extensions/fulfillment/components/AddressInfo.js.map +1 -0
  56. package/dist/cjs/extensions/fulfillment/components/ContactInfo.js +9 -7
  57. package/dist/cjs/extensions/fulfillment/components/ContactInfo.js.map +1 -0
  58. package/dist/cjs/extensions/fulfillment/components/RecipientCard.js +14 -12
  59. package/dist/cjs/extensions/fulfillment/components/RecipientCard.js.map +1 -0
  60. package/dist/cjs/extensions/fulfillment/components/ShipmentAccordion.js +124 -65
  61. package/dist/cjs/extensions/fulfillment/components/ShipmentAccordion.js.map +1 -0
  62. package/dist/cjs/extensions/fulfillment/components/ShipmentCard.js +19 -17
  63. package/dist/cjs/extensions/fulfillment/components/ShipmentCard.js.map +1 -0
  64. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationButtons.js +32 -19
  65. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationButtons.js.map +1 -0
  66. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationIcon.js +23 -11
  67. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationIcon.js.map +1 -0
  68. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsCard.js +73 -46
  69. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsCard.js.map +1 -0
  70. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsTable.js +49 -27
  71. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsTable.js.map +1 -0
  72. package/dist/cjs/extensions/fulfillment/components/ShipmentRow.js +12 -10
  73. package/dist/cjs/extensions/fulfillment/components/ShipmentRow.js.map +1 -0
  74. package/dist/cjs/extensions/fulfillment/components/order/OrderAccordion.js +244 -0
  75. package/dist/cjs/extensions/fulfillment/components/order/OrderAccordion.js.map +1 -0
  76. package/dist/cjs/extensions/fulfillment/components/order/OrderItemsTable.js +96 -0
  77. package/dist/cjs/extensions/fulfillment/components/order/OrderItemsTable.js.map +1 -0
  78. package/dist/cjs/extensions/fulfillment/components/order/OrderStateChip.js +98 -0
  79. package/dist/cjs/extensions/fulfillment/components/order/OrderStateChip.js.map +1 -0
  80. package/dist/cjs/extensions/fulfillment/index.js +59 -12
  81. package/dist/cjs/extensions/fulfillment/index.js.map +1 -0
  82. package/dist/cjs/extensions/fulfillment/pages/order/list.js +50 -36
  83. package/dist/cjs/extensions/fulfillment/pages/order/list.js.map +1 -0
  84. package/dist/cjs/extensions/fulfillment/pages/recipient/detail.js +7 -5
  85. package/dist/cjs/extensions/fulfillment/pages/recipient/detail.js.map +1 -0
  86. package/dist/cjs/extensions/fulfillment/pages/shipment/detail.js +57 -42
  87. package/dist/cjs/extensions/fulfillment/pages/shipment/detail.js.map +1 -0
  88. package/dist/cjs/extensions/fulfillment/pages/shipment/list.js +35 -31
  89. package/dist/cjs/extensions/fulfillment/pages/shipment/list.js.map +1 -0
  90. package/dist/cjs/extensions/fulfillment/types/order.js +3 -0
  91. package/dist/cjs/extensions/fulfillment/types/order.js.map +1 -0
  92. package/dist/cjs/extensions/fulfillment/types/recipient.js +1 -0
  93. package/dist/cjs/extensions/fulfillment/types/recipient.js.map +1 -0
  94. package/dist/cjs/extensions/fulfillment/types/shipment.js +1 -0
  95. package/dist/cjs/extensions/fulfillment/types/shipment.js.map +1 -0
  96. package/dist/cjs/extensions/fulfillment/types/util.js +1 -0
  97. package/dist/cjs/extensions/fulfillment/types/util.js.map +1 -0
  98. package/dist/cjs/extensions/pos/components/PurchaseRow.js +13 -11
  99. package/dist/cjs/extensions/pos/components/PurchaseRow.js.map +1 -0
  100. package/dist/cjs/extensions/pos/components/ReceiptCard.js +99 -44
  101. package/dist/cjs/extensions/pos/components/ReceiptCard.js.map +1 -0
  102. package/dist/cjs/extensions/pos/components/ReceiptLine.js +17 -12
  103. package/dist/cjs/extensions/pos/components/ReceiptLine.js.map +1 -0
  104. package/dist/cjs/extensions/pos/components/ReceiptTable.js +168 -43
  105. package/dist/cjs/extensions/pos/components/ReceiptTable.js.map +1 -0
  106. package/dist/cjs/extensions/pos/components/SearchBar.js +40 -25
  107. package/dist/cjs/extensions/pos/components/SearchBar.js.map +1 -0
  108. package/dist/cjs/extensions/pos/index.js +57 -12
  109. package/dist/cjs/extensions/pos/index.js.map +1 -0
  110. package/dist/cjs/extensions/pos/pages/purchase/detail.js +31 -20
  111. package/dist/cjs/extensions/pos/pages/purchase/detail.js.map +1 -0
  112. package/dist/cjs/extensions/pos/pages/purchase/list.js +39 -32
  113. package/dist/cjs/extensions/pos/pages/purchase/list.js.map +1 -0
  114. package/dist/cjs/extensions/pos/types/purchase.js +1 -0
  115. package/dist/cjs/extensions/pos/types/purchase.js.map +1 -0
  116. package/dist/cjs/extensions/pos/types/receipt.js +8 -0
  117. package/dist/cjs/extensions/pos/types/receipt.js.map +1 -0
  118. package/dist/cjs/forms/LoginForm.js +31 -30
  119. package/dist/cjs/forms/LoginForm.js.map +1 -0
  120. package/dist/cjs/hooks/useAsyncError.js +5 -4
  121. package/dist/cjs/hooks/useAsyncError.js.map +1 -0
  122. package/dist/cjs/hooks/useLocalStorage.js +8 -7
  123. package/dist/cjs/hooks/useLocalStorage.js.map +1 -0
  124. package/dist/cjs/index.js +1 -0
  125. package/dist/cjs/index.js.map +1 -0
  126. package/dist/cjs/pages/DashboardPage.js +4 -3
  127. package/dist/cjs/pages/DashboardPage.js.map +1 -0
  128. package/dist/cjs/pages/LoginPage.js +12 -10
  129. package/dist/cjs/pages/LoginPage.js.map +1 -0
  130. package/dist/cjs/router/Router.js +25 -19
  131. package/dist/cjs/router/Router.js.map +1 -0
  132. package/dist/cjs/router/routes.js +8 -7
  133. package/dist/cjs/router/routes.js.map +1 -0
  134. package/dist/cjs/types/index.js +1 -0
  135. package/dist/cjs/types/index.js.map +1 -0
  136. package/dist/cjs/util/format_purchase_number.js +2 -1
  137. package/dist/cjs/util/format_purchase_number.js.map +1 -0
  138. package/dist/cjs/util/get_cookie.js +4 -3
  139. package/dist/cjs/util/get_cookie.js.map +1 -0
  140. package/dist/cjs/util/index.js +10 -7
  141. package/dist/cjs/util/index.js.map +1 -0
  142. package/dist/cjs/util/is_email.js +1 -0
  143. package/dist/cjs/util/is_email.js.map +1 -0
  144. package/dist/cjs/util/is_positive_integer.js +2 -1
  145. package/dist/cjs/util/is_positive_integer.js.map +1 -0
  146. package/dist/cjs/util/select_styles.js +24 -7
  147. package/dist/cjs/util/select_styles.js.map +1 -0
  148. package/dist/esm/Admin.js +20 -16
  149. package/dist/esm/Admin.js.map +1 -0
  150. package/dist/esm/App.js +15 -3
  151. package/dist/esm/App.js.map +1 -0
  152. package/dist/esm/api.js +125 -63
  153. package/dist/esm/api.js.map +1 -0
  154. package/dist/esm/components/Branding.js +4 -2
  155. package/dist/esm/components/Branding.js.map +1 -0
  156. package/dist/esm/components/Hamburger.js +17 -5
  157. package/dist/esm/components/Hamburger.js.map +1 -0
  158. package/dist/esm/components/Link.js +6 -4
  159. package/dist/esm/components/Link.js.map +1 -0
  160. package/dist/esm/components/Logo.js +4 -2
  161. package/dist/esm/components/Logo.js.map +1 -0
  162. package/dist/esm/components/NavBar.js +38 -21
  163. package/dist/esm/components/NavBar.js.map +1 -0
  164. package/dist/esm/components/NavBarItem.js +8 -6
  165. package/dist/esm/components/NavBarItem.js.map +1 -0
  166. package/dist/esm/components/NavBarRoutes.js +19 -14
  167. package/dist/esm/components/NavBarRoutes.js.map +1 -0
  168. package/dist/esm/components/ProgressBar.js +3 -1
  169. package/dist/esm/components/ProgressBar.js.map +1 -0
  170. package/dist/esm/components/TitleBar.js +9 -8
  171. package/dist/esm/components/TitleBar.js.map +1 -0
  172. package/dist/esm/components/User.js +24 -11
  173. package/dist/esm/components/User.js.map +1 -0
  174. package/dist/esm/containers/Content.js +5 -3
  175. package/dist/esm/containers/Content.js.map +1 -0
  176. package/dist/esm/containers/ErrorScreen.js +10 -8
  177. package/dist/esm/containers/ErrorScreen.js.map +1 -0
  178. package/dist/esm/containers/LoadingScreen.js +56 -41
  179. package/dist/esm/containers/LoadingScreen.js.map +1 -0
  180. package/dist/esm/containers/PageErrorBoundary.js +33 -13
  181. package/dist/esm/containers/PageErrorBoundary.js.map +1 -0
  182. package/dist/esm/containers/PageLoader.js +124 -34
  183. package/dist/esm/containers/PageLoader.js.map +1 -0
  184. package/dist/esm/contexts/ApiContext.js +49 -12
  185. package/dist/esm/contexts/ApiContext.js.map +1 -0
  186. package/dist/esm/contexts/DialogContext.js +51 -0
  187. package/dist/esm/contexts/DialogContext.js.map +1 -0
  188. package/dist/esm/contexts/I18nContext.js +55 -15
  189. package/dist/esm/contexts/I18nContext.js.map +1 -0
  190. package/dist/esm/contexts/RouterContext.js +47 -39
  191. package/dist/esm/contexts/RouterContext.js.map +1 -0
  192. package/dist/esm/contexts/UserContext.js +93 -40
  193. package/dist/esm/contexts/UserContext.js.map +1 -0
  194. package/dist/esm/extensions/bananas/components/PasswordChangeForm.js +32 -19
  195. package/dist/esm/extensions/bananas/components/PasswordChangeForm.js.map +1 -0
  196. package/dist/esm/extensions/bananas/index.js +3 -2
  197. package/dist/esm/extensions/bananas/index.js.map +1 -0
  198. package/dist/esm/extensions/bananas/pages/me/list.js +3 -2
  199. package/dist/esm/extensions/bananas/pages/me/list.js.map +1 -0
  200. package/dist/esm/extensions/fulfillment/components/AddressInfo.js +5 -3
  201. package/dist/esm/extensions/fulfillment/components/AddressInfo.js.map +1 -0
  202. package/dist/esm/extensions/fulfillment/components/ContactInfo.js +5 -3
  203. package/dist/esm/extensions/fulfillment/components/ContactInfo.js.map +1 -0
  204. package/dist/esm/extensions/fulfillment/components/RecipientCard.js +6 -4
  205. package/dist/esm/extensions/fulfillment/components/RecipientCard.js.map +1 -0
  206. package/dist/esm/extensions/fulfillment/components/ShipmentAccordion.js +109 -50
  207. package/dist/esm/extensions/fulfillment/components/ShipmentAccordion.js.map +1 -0
  208. package/dist/esm/extensions/fulfillment/components/ShipmentCard.js +8 -6
  209. package/dist/esm/extensions/fulfillment/components/ShipmentCard.js.map +1 -0
  210. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationButtons.js +27 -14
  211. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationButtons.js.map +1 -0
  212. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationIcon.js +18 -6
  213. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationIcon.js.map +1 -0
  214. package/dist/esm/extensions/fulfillment/components/ShipmentItemsCard.js +54 -27
  215. package/dist/esm/extensions/fulfillment/components/ShipmentItemsCard.js.map +1 -0
  216. package/dist/esm/extensions/fulfillment/components/ShipmentItemsTable.js +40 -18
  217. package/dist/esm/extensions/fulfillment/components/ShipmentItemsTable.js.map +1 -0
  218. package/dist/esm/extensions/fulfillment/components/ShipmentRow.js +8 -6
  219. package/dist/esm/extensions/fulfillment/components/ShipmentRow.js.map +1 -0
  220. package/dist/esm/extensions/fulfillment/components/order/OrderAccordion.js +239 -0
  221. package/dist/esm/extensions/fulfillment/components/order/OrderAccordion.js.map +1 -0
  222. package/dist/esm/extensions/fulfillment/components/order/OrderItemsTable.js +91 -0
  223. package/dist/esm/extensions/fulfillment/components/order/OrderItemsTable.js.map +1 -0
  224. package/dist/esm/extensions/fulfillment/components/order/OrderStateChip.js +70 -0
  225. package/dist/esm/extensions/fulfillment/components/order/OrderStateChip.js.map +1 -0
  226. package/dist/esm/extensions/fulfillment/index.js +61 -14
  227. package/dist/esm/extensions/fulfillment/index.js.map +1 -0
  228. package/dist/esm/extensions/fulfillment/pages/order/list.js +40 -26
  229. package/dist/esm/extensions/fulfillment/pages/order/list.js.map +1 -0
  230. package/dist/esm/extensions/fulfillment/pages/recipient/detail.js +4 -2
  231. package/dist/esm/extensions/fulfillment/pages/recipient/detail.js.map +1 -0
  232. package/dist/esm/extensions/fulfillment/pages/shipment/detail.js +38 -23
  233. package/dist/esm/extensions/fulfillment/pages/shipment/detail.js.map +1 -0
  234. package/dist/esm/extensions/fulfillment/pages/shipment/list.js +24 -20
  235. package/dist/esm/extensions/fulfillment/pages/shipment/list.js.map +1 -0
  236. package/dist/esm/extensions/fulfillment/types/order.js +2 -0
  237. package/dist/esm/extensions/fulfillment/types/order.js.map +1 -0
  238. package/dist/esm/extensions/fulfillment/types/recipient.js +1 -0
  239. package/dist/esm/extensions/fulfillment/types/recipient.js.map +1 -0
  240. package/dist/esm/extensions/fulfillment/types/shipment.js +1 -0
  241. package/dist/esm/extensions/fulfillment/types/shipment.js.map +1 -0
  242. package/dist/esm/extensions/fulfillment/types/util.js +1 -0
  243. package/dist/esm/extensions/fulfillment/types/util.js.map +1 -0
  244. package/dist/esm/extensions/pos/components/PurchaseRow.js +8 -6
  245. package/dist/esm/extensions/pos/components/PurchaseRow.js.map +1 -0
  246. package/dist/esm/extensions/pos/components/ReceiptCard.js +83 -28
  247. package/dist/esm/extensions/pos/components/ReceiptCard.js.map +1 -0
  248. package/dist/esm/extensions/pos/components/ReceiptLine.js +11 -6
  249. package/dist/esm/extensions/pos/components/ReceiptLine.js.map +1 -0
  250. package/dist/esm/extensions/pos/components/ReceiptTable.js +159 -34
  251. package/dist/esm/extensions/pos/components/ReceiptTable.js.map +1 -0
  252. package/dist/esm/extensions/pos/components/SearchBar.js +28 -13
  253. package/dist/esm/extensions/pos/components/SearchBar.js.map +1 -0
  254. package/dist/esm/extensions/pos/index.js +58 -13
  255. package/dist/esm/extensions/pos/index.js.map +1 -0
  256. package/dist/esm/extensions/pos/pages/purchase/detail.js +23 -12
  257. package/dist/esm/extensions/pos/pages/purchase/detail.js.map +1 -0
  258. package/dist/esm/extensions/pos/pages/purchase/list.js +23 -16
  259. package/dist/esm/extensions/pos/pages/purchase/list.js.map +1 -0
  260. package/dist/esm/extensions/pos/types/purchase.js +1 -0
  261. package/dist/esm/extensions/pos/types/purchase.js.map +1 -0
  262. package/dist/esm/extensions/pos/types/receipt.js +7 -1
  263. package/dist/esm/extensions/pos/types/receipt.js.map +1 -0
  264. package/dist/esm/forms/LoginForm.js +19 -18
  265. package/dist/esm/forms/LoginForm.js.map +1 -0
  266. package/dist/esm/hooks/useAsyncError.js +4 -3
  267. package/dist/esm/hooks/useAsyncError.js.map +1 -0
  268. package/dist/esm/hooks/useLocalStorage.js +7 -6
  269. package/dist/esm/hooks/useLocalStorage.js.map +1 -0
  270. package/dist/esm/index.js +1 -0
  271. package/dist/esm/index.js.map +1 -0
  272. package/dist/esm/pages/DashboardPage.js +3 -2
  273. package/dist/esm/pages/DashboardPage.js.map +1 -0
  274. package/dist/esm/pages/LoginPage.js +5 -3
  275. package/dist/esm/pages/LoginPage.js.map +1 -0
  276. package/dist/esm/router/Router.js +17 -11
  277. package/dist/esm/router/Router.js.map +1 -0
  278. package/dist/esm/router/routes.js +7 -6
  279. package/dist/esm/router/routes.js.map +1 -0
  280. package/dist/esm/types/index.js +1 -0
  281. package/dist/esm/types/index.js.map +1 -0
  282. package/dist/esm/util/format_purchase_number.js +2 -1
  283. package/dist/esm/util/format_purchase_number.js.map +1 -0
  284. package/dist/esm/util/get_cookie.js +4 -3
  285. package/dist/esm/util/get_cookie.js.map +1 -0
  286. package/dist/esm/util/index.js +10 -7
  287. package/dist/esm/util/index.js.map +1 -0
  288. package/dist/esm/util/is_email.js +1 -0
  289. package/dist/esm/util/is_email.js.map +1 -0
  290. package/dist/esm/util/is_positive_integer.js +2 -1
  291. package/dist/esm/util/is_positive_integer.js.map +1 -0
  292. package/dist/esm/util/select_styles.js +25 -8
  293. package/dist/esm/util/select_styles.js.map +1 -0
  294. package/dist/types/Admin.d.ts +1 -1
  295. package/dist/types/App.d.ts +1 -1
  296. package/dist/types/components/Hamburger.d.ts +1 -1
  297. package/dist/types/components/Link.d.ts +1 -1
  298. package/dist/types/components/User.d.ts +4 -7
  299. package/dist/types/containers/PageErrorBoundary.d.ts +1 -1
  300. package/dist/types/containers/PageLoader.d.ts +1 -0
  301. package/dist/types/contexts/DialogContext.d.ts +7 -0
  302. package/dist/types/contexts/RouterContext.d.ts +2 -2
  303. package/dist/types/extensions/fulfillment/components/ShipmentDestinationIcon.d.ts +1 -1
  304. package/dist/types/extensions/fulfillment/components/order/OrderAccordion.d.ts +7 -0
  305. package/dist/types/extensions/fulfillment/components/order/OrderItemsTable.d.ts +9 -0
  306. package/dist/types/extensions/fulfillment/components/order/OrderStateChip.d.ts +10 -0
  307. package/dist/types/extensions/fulfillment/pages/order/list.d.ts +2 -2
  308. package/dist/types/extensions/fulfillment/types/order.d.ts +38 -0
  309. package/dist/types/extensions/fulfillment/types/shipment.d.ts +1 -1
  310. package/dist/types/extensions/pos/components/PurchaseRow.d.ts +2 -2
  311. package/dist/types/extensions/pos/components/ReceiptCard.d.ts +3 -3
  312. package/dist/types/extensions/pos/components/ReceiptLine.d.ts +1 -0
  313. package/dist/types/extensions/pos/components/ReceiptTable.d.ts +4 -3
  314. package/dist/types/extensions/pos/components/SearchBar.d.ts +1 -1
  315. package/dist/types/extensions/pos/pages/purchase/list.d.ts +2 -2
  316. package/dist/types/extensions/pos/types/purchase.d.ts +32 -6
  317. package/dist/types/extensions/pos/types/receipt.d.ts +7 -9
  318. package/dist/types/router/Router.d.ts +2 -1
  319. package/dist/types/types/index.d.ts +7 -4
  320. package/example/index.tsx +28 -9
  321. package/example/package-lock.json +7906 -1003
  322. package/example/package.json +18 -8
  323. package/example/scripts/build.js +4 -0
  324. package/example/scripts/options.js +81 -0
  325. package/{example/pages/.gitkeep → nodemon.json} +0 -0
  326. package/package.json +8 -4
  327. package/src/Admin.tsx +31 -27
  328. package/src/App.tsx +8 -4
  329. package/src/components/TitleBar.tsx +23 -18
  330. package/src/containers/Content.tsx +1 -1
  331. package/src/containers/PageLoader.tsx +32 -14
  332. package/src/contexts/DialogContext.tsx +76 -0
  333. package/src/contexts/UserContext.tsx +15 -14
  334. package/src/extensions/fulfillment/components/ShipmentAccordion.tsx +126 -116
  335. package/src/extensions/fulfillment/components/ShipmentCard.tsx +3 -9
  336. package/src/extensions/fulfillment/components/ShipmentItemsCard.tsx +42 -45
  337. package/src/extensions/fulfillment/components/order/OrderAccordion.tsx +231 -0
  338. package/src/extensions/fulfillment/components/order/OrderItemsTable.tsx +128 -0
  339. package/src/extensions/fulfillment/components/order/OrderStateChip.tsx +79 -0
  340. package/src/extensions/fulfillment/index.tsx +27 -9
  341. package/src/extensions/fulfillment/pages/order/list.tsx +43 -54
  342. package/src/extensions/fulfillment/pages/shipment/detail.tsx +47 -55
  343. package/src/extensions/fulfillment/types/order.ts +53 -0
  344. package/src/extensions/pos/components/PurchaseRow.tsx +3 -5
  345. package/src/extensions/pos/components/ReceiptCard.tsx +92 -46
  346. package/src/extensions/pos/components/ReceiptLine.tsx +6 -5
  347. package/src/extensions/pos/components/ReceiptTable.tsx +214 -73
  348. package/src/extensions/pos/index.tsx +3 -3
  349. package/src/extensions/pos/pages/purchase/detail.tsx +28 -33
  350. package/src/extensions/pos/pages/purchase/list.tsx +14 -20
  351. package/src/extensions/pos/types/purchase.ts +33 -6
  352. package/src/extensions/pos/types/receipt.ts +8 -9
  353. package/src/pages/DashboardPage.tsx +1 -1
  354. package/src/router/Router.tsx +14 -15
  355. package/src/types/index.ts +4 -1
  356. package/tsconfig.json +5 -13
  357. package/example/Dockerfile +0 -27
  358. package/example/README.md +0 -6
  359. package/example/build.js +0 -19
  360. package/example/docker-compose.yml +0 -7
  361. package/example/public/index.html +0 -14
@@ -22,9 +22,7 @@ import Menu from "@mui/material/Menu";
22
22
  import { useApi } from "../../../../contexts/ApiContext";
23
23
  import { useSnackbar } from "notistack";
24
24
 
25
- const ShipmentDetailPage: PageComponent<ShipmentDetail> = (
26
- { data },
27
- ) => {
25
+ const ShipmentDetailPage: PageComponent<ShipmentDetail> = ({ data }) => {
28
26
  const api = useApi();
29
27
  const { enqueueSnackbar } = useSnackbar();
30
28
  const { getCurrent } = useRouter();
@@ -43,48 +41,52 @@ const ShipmentDetailPage: PageComponent<ShipmentDetail> = (
43
41
  };
44
42
 
45
43
  const markAsCanceled = () => {
46
- api.operations["fulfillment.shipment:cancel"].call({
47
- params: { shipment_reference: shipment.shipment_reference },
48
- }).then((response) => {
49
- if (response.ok) {
50
- enqueueSnackbar("Successfully canceled shipment!", {
51
- variant: "success",
52
- });
53
- } else {
54
- enqueueSnackbar(
55
- "Failed to cancel shipment, view console for more info",
56
- {
57
- variant: "error",
58
- },
59
- );
60
- throw response;
61
- }
62
- });
44
+ api.operations["fulfillment.shipment:cancel"]
45
+ .call({
46
+ params: { shipment_reference: shipment.shipment_reference },
47
+ })
48
+ .then((response) => {
49
+ if (response.ok) {
50
+ enqueueSnackbar("Successfully canceled shipment!", {
51
+ variant: "success",
52
+ });
53
+ } else {
54
+ enqueueSnackbar(
55
+ "Failed to cancel shipment, view console for more info",
56
+ {
57
+ variant: "error",
58
+ }
59
+ );
60
+ throw response;
61
+ }
62
+ });
63
63
  };
64
64
 
65
65
  const markAsDelivered = () => {
66
- api.operations["fulfillment.shipment:delivered"].call({
67
- params: { shipment_reference: shipment.shipment_reference },
68
- }).then((response) => {
69
- if (response.ok) {
70
- enqueueSnackbar("Successfully marked shipment as delivered!", {
71
- variant: "success",
72
- });
73
- } else {
74
- enqueueSnackbar(
75
- "Failed to mark shipment as delivered, view console for more info",
76
- {
77
- variant: "error",
78
- },
79
- );
80
- throw response;
81
- }
82
- });
66
+ api.operations["fulfillment.shipment:delivered"]
67
+ .call({
68
+ params: { shipment_reference: shipment.shipment_reference },
69
+ })
70
+ .then((response) => {
71
+ if (response.ok) {
72
+ enqueueSnackbar("Order is now ready for pickup", {
73
+ variant: "success",
74
+ });
75
+ } else {
76
+ enqueueSnackbar(
77
+ "Failed to mark shipment as delivered, view console for more info",
78
+ {
79
+ variant: "error",
80
+ }
81
+ );
82
+ throw response;
83
+ }
84
+ });
83
85
  };
84
86
 
85
87
  return (
86
88
  <>
87
- <TitleBar back title={`Shipment ${shipment.shipment_reference}`}>
89
+ <TitleBar back title={`Purchase number ${shipment.shipment_reference}`}>
88
90
  <IconButton
89
91
  aria-label="more"
90
92
  aria-expanded={open ? "true" : undefined}
@@ -93,11 +95,7 @@ const ShipmentDetailPage: PageComponent<ShipmentDetail> = (
93
95
  >
94
96
  <MoreVertIcon />
95
97
  </IconButton>
96
- <Menu
97
- anchorEl={anchorEl}
98
- open={open}
99
- onClose={handleClose}
100
- >
98
+ <Menu anchorEl={anchorEl} open={open} onClose={handleClose}>
101
99
  <MenuItem
102
100
  key={"delivered"}
103
101
  onClick={() => {
@@ -124,9 +122,7 @@ const ShipmentDetailPage: PageComponent<ShipmentDetail> = (
124
122
  <CardHeader
125
123
  title={
126
124
  <Typography variant="h6">
127
- <b>
128
- Info
129
- </b>
125
+ <b>Info</b>
130
126
  </Typography>
131
127
  }
132
128
  avatar={<PersonIcon />}
@@ -149,15 +145,11 @@ const ShipmentDetailPage: PageComponent<ShipmentDetail> = (
149
145
  </CardContent>
150
146
  </Card>
151
147
  </Grid>
152
- {shipment.items.length !== 0
153
- ? (
154
- <Grid item sm={12} md={6}>
155
- <ShipmentItemsCard
156
- shipment={shipment}
157
- />
158
- </Grid>
159
- )
160
- : null}
148
+ {shipment.items.length !== 0 ? (
149
+ <Grid item sm={12} md={6}>
150
+ <ShipmentItemsCard shipment={shipment} />
151
+ </Grid>
152
+ ) : null}
161
153
  </Content>
162
154
  </>
163
155
  );
@@ -0,0 +1,53 @@
1
+ export type OrderDestinationType =
2
+ | "HOME"
3
+ | "STORE"
4
+ | "SERVICE_POINT"
5
+ | "LOCKER";
6
+
7
+ export type OrderStateType =
8
+ | "PENDING"
9
+ | "CONFIRMED"
10
+ | "SENT"
11
+ | "IN_TRANSIT"
12
+ | "READY_FOR_PICKUP"
13
+ | "DELIVERED"
14
+ | "CANCELLED";
15
+
16
+ export interface OrderListItem {
17
+ shipment_reference: string;
18
+ purchase_number: number;
19
+ email: string;
20
+ phone?: string;
21
+ option_name: string;
22
+ carrier: string;
23
+ destination_type: OrderDestinationType;
24
+ name: string;
25
+ tracking_number: string;
26
+ state: OrderStateType;
27
+ }
28
+
29
+ export interface OrderDetail {
30
+ option_name: string;
31
+ destination_type: OrderDestinationType;
32
+ state: OrderStateType;
33
+ destination_reference?: string;
34
+ name: string;
35
+ care_of: string;
36
+ street_address: string;
37
+ street_address2: string;
38
+ postal_code: string;
39
+ city: string;
40
+ country_code: string;
41
+ region: string;
42
+ items: OrderItem[];
43
+ shipment: {
44
+ carrier: string;
45
+ tracking_number: string;
46
+ } | null;
47
+ }
48
+
49
+ export interface OrderItem {
50
+ code: string;
51
+ name: string | null;
52
+ quantity: number;
53
+ }
@@ -3,15 +3,13 @@ import TableRow from "@mui/material/TableRow";
3
3
  import React from "react";
4
4
  import { useRouter } from "../../../contexts/RouterContext";
5
5
  import { formatPurchaseNumber } from "../../../util/format_purchase_number";
6
- import { Purchase } from "../types/purchase";
6
+ import { PurchaseDetail } from "../types/purchase";
7
7
 
8
8
  interface PurchaseRowProps {
9
- purchase: Purchase;
9
+ purchase: PurchaseDetail;
10
10
  }
11
11
 
12
- export const PurchaseRow: React.FC<PurchaseRowProps> = ({
13
- purchase,
14
- }) => {
12
+ export const PurchaseRow: React.FC<PurchaseRowProps> = ({ purchase }) => {
15
13
  const { navigate } = useRouter();
16
14
 
17
15
  const onClick = () => {
@@ -13,64 +13,75 @@ import TableCell, { tableCellClasses } from "@mui/material/TableCell";
13
13
  import TableContainer from "@mui/material/TableContainer";
14
14
  import TableRow from "@mui/material/TableRow";
15
15
  import Typography from "@mui/material/Typography";
16
+ import { Line, PurchaseDetail } from "../types/purchase";
16
17
 
17
18
  import { Receipt, ReceiptLine } from "../types/receipt";
18
19
  import { ReceiptTable } from "./ReceiptTable";
19
20
  import FormControlLabel from "@mui/material/FormControlLabel";
20
21
  import Button from "@mui/material/Button";
22
+ import {
23
+ Dialog,
24
+ DialogActions,
25
+ DialogContent,
26
+ DialogTitle,
27
+ } from "@mui/material";
28
+ import { useDialog } from "../../../contexts/DialogContext";
21
29
 
22
30
  interface ReceiptCardProps {
23
- receipt: Receipt;
24
- refund?: (lines: ReceiptLine[]) => void;
31
+ purchase: PurchaseDetail;
32
+ refund?: (lines: Line[]) => void;
25
33
  }
26
34
 
27
35
  interface ReceiptPriceRowProps {
28
36
  title: string;
29
37
  price: string;
38
+ currency: string;
30
39
  }
31
40
 
32
- const ReceiptPriceRow: React.FC<ReceiptPriceRowProps> = ({ title, price }) => {
41
+ const ReceiptPriceRow: React.FC<ReceiptPriceRowProps> = ({
42
+ title,
43
+ price,
44
+ currency,
45
+ }) => {
33
46
  return (
34
47
  <TableRow>
35
48
  <TableCell sx={{ whiteSpace: "nowrap" }} align="right">
36
- <strong>
37
- {title}
38
- </strong>
49
+ <strong>{title}</strong>
39
50
  </TableCell>
40
51
  <TableCell sx={{ whiteSpace: "nowrap", paddingLeft: 2 }} align="right">
41
- {`${price} SEK`}
52
+ {price} {currency}
42
53
  </TableCell>
43
54
  </TableRow>
44
55
  );
45
56
  };
46
57
 
47
58
  export const ReceiptCard: React.FC<ReceiptCardProps> = ({
48
- receipt,
59
+ purchase,
49
60
  refund,
50
61
  }) => {
51
62
  const theme = useTheme();
52
63
 
53
64
  const [editing, setEditing] = React.useState(false);
54
- const [selected, setSelected] = React.useState<ReceiptLine[]>([]);
55
- const [refundable, setRefundable] = React.useState(receipt.intention === 1);
65
+ const [selected, setSelected] = React.useState<Line[]>([]);
66
+ const openDialog = useDialog();
56
67
 
57
68
  return (
58
- <Card>
69
+ <Card sx={{ width: "100%" }}>
59
70
  <CardHeader
60
71
  title={
61
72
  <Typography variant="h6">
62
- <b>
63
- Receipt
64
- </b>
73
+ <b>Receipt</b>
65
74
  </Typography>
66
75
  }
67
76
  avatar={<ReceiptIcon />}
68
77
  action={
69
78
  <FormControlLabel
70
- disabled={!refundable}
79
+ disabled={
80
+ !purchase.accounts || purchase.accounts.captured === "0.00"
81
+ }
71
82
  control={
72
83
  <Switch
73
- value={editing}
84
+ checked={editing}
74
85
  onChange={(_, checked) => setEditing(checked)}
75
86
  color="secondary"
76
87
  />
@@ -86,15 +97,15 @@ export const ReceiptCard: React.FC<ReceiptCardProps> = ({
86
97
  />
87
98
  <CardContent>
88
99
  <ReceiptTable
89
- lines={receipt.lines}
100
+ currency={purchase.currency}
101
+ lines={purchase.lines}
90
102
  editable={editing}
91
103
  onSelect={setSelected}
92
104
  />
93
- <Divider />
94
105
  <TableContainer
95
106
  sx={{
96
107
  paddingTop: theme.spacing(2),
97
- paddingX: theme.spacing(4),
108
+ paddingX: theme.spacing(2),
98
109
  }}
99
110
  >
100
111
  <Table
@@ -108,41 +119,76 @@ export const ReceiptCard: React.FC<ReceiptCardProps> = ({
108
119
  <TableBody sx={{ border: "none" }}>
109
120
  <TableRow>
110
121
  <TableCell align="left" sx={{ width: "100%" }}>
111
- {editing
112
- ? (
113
- <Button
114
- variant="contained"
115
- color="error"
116
- disabled={selected.length === 0}
117
- onClick={() => {
122
+ {editing ? (
123
+ <Button
124
+ variant="contained"
125
+ color="error"
126
+ disabled={selected.length === 0}
127
+ onClick={async () => {
128
+ if (
129
+ await openDialog(
130
+ "Are you sure?",
131
+ "This will refund the selected quantity / amount to the customer and cannot be reversed"
132
+ )
133
+ ) {
118
134
  refund?.(selected);
119
- setRefundable(false);
120
135
  setEditing(false);
121
- }}
122
- >
123
- Refund
124
- </Button>
125
- )
126
- : null}
136
+ }
137
+ }}
138
+ >
139
+ Refund
140
+ </Button>
141
+ ) : null}
127
142
  </TableCell>
128
-
129
143
  <TableCell align="right">
130
- {receipt.total_discount_amount !== "0.00"
131
- ? (
132
- <ReceiptPriceRow
133
- title="Discount"
134
- price={receipt.total_discount_amount}
135
- />
136
- )
137
- : null}
138
144
  <ReceiptPriceRow
139
- title="Tax"
140
- price={receipt.total_tax_amount}
145
+ title="Total"
146
+ price={purchase.total_debit_amount}
147
+ currency={purchase.currency}
141
148
  />
149
+ {purchase.total_discount_amount !== "0.00" ? (
150
+ <ReceiptPriceRow
151
+ title="Discount"
152
+ price={purchase.total_discount_amount}
153
+ currency={purchase.currency}
154
+ />
155
+ ) : null}
142
156
  <ReceiptPriceRow
143
- title="Total"
144
- price={receipt.total_amount}
157
+ title="Tax"
158
+ price={purchase.total_tax_amount}
159
+ currency={purchase.currency}
145
160
  />
161
+ {(() => {
162
+ if (!purchase.accounts) {
163
+ return null;
164
+ }
165
+
166
+ return (
167
+ <>
168
+ {purchase.accounts.reserved !== "0.00" ? (
169
+ <ReceiptPriceRow
170
+ title="Reserved"
171
+ price={purchase.accounts.reserved}
172
+ currency={purchase.currency}
173
+ />
174
+ ) : null}
175
+ {purchase.accounts.captured !== "0.00" ? (
176
+ <ReceiptPriceRow
177
+ title="Captured"
178
+ price={purchase.accounts.captured}
179
+ currency={purchase.currency}
180
+ />
181
+ ) : null}
182
+ {purchase.accounts.reverted !== "0.00" ? (
183
+ <ReceiptPriceRow
184
+ title="Refunded/Cancelled"
185
+ price={purchase.accounts.reverted}
186
+ currency={purchase.currency}
187
+ />
188
+ ) : null}
189
+ </>
190
+ );
191
+ })()}
146
192
  </TableCell>
147
193
  </TableRow>
148
194
  </TableBody>
@@ -7,6 +7,7 @@ import Tooltip from "@mui/material/Tooltip";
7
7
  import Checkbox from "@mui/material/Checkbox";
8
8
 
9
9
  interface ReceiptLineProps {
10
+ currency: string;
10
11
  line: ReceiptLineType;
11
12
  editable?: boolean;
12
13
  onSelect?: (selected: boolean) => void;
@@ -14,6 +15,7 @@ interface ReceiptLineProps {
14
15
 
15
16
  export const ReceiptLine: React.FC<ReceiptLineProps> = ({
16
17
  line,
18
+ currency,
17
19
  editable,
18
20
  onSelect,
19
21
  }) => {
@@ -38,17 +40,16 @@ export const ReceiptLine: React.FC<ReceiptLineProps> = ({
38
40
  secondary={line.reference}
39
41
  />
40
42
  <Tooltip title="Quantity">
41
- <ListItemText
42
- sx={{ width: "20%" }}
43
- primary={`${line.quantity} st`}
44
- />
43
+ <ListItemText sx={{ width: "20%" }} primary={`${line.quantity} st`} />
45
44
  </Tooltip>
46
45
  <ListItemText
47
46
  disableTypography
48
47
  sx={{ width: "30%" }}
49
48
  primary={
50
49
  <Tooltip title="Price">
51
- <Typography>{`${line.total_amount} SEK`}</Typography>
50
+ <Typography>
51
+ {line.total_amount} {currency}
52
+ </Typography>
52
53
  </Tooltip>
53
54
  }
54
55
  />