bananas-commerce-admin 0.2.2 → 0.2.4

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 (355) hide show
  1. package/README.md +4 -8
  2. package/dist/cjs/Admin.js +28 -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/I18nContext.js +58 -18
  41. package/dist/cjs/contexts/I18nContext.js.map +1 -0
  42. package/dist/cjs/contexts/RouterContext.js +52 -44
  43. package/dist/cjs/contexts/RouterContext.js.map +1 -0
  44. package/dist/cjs/contexts/UserContext.js +96 -43
  45. package/dist/cjs/contexts/UserContext.js.map +1 -0
  46. package/dist/cjs/extensions/bananas/components/PasswordChangeForm.js +45 -32
  47. package/dist/cjs/extensions/bananas/components/PasswordChangeForm.js.map +1 -0
  48. package/dist/cjs/extensions/bananas/index.js +3 -2
  49. package/dist/cjs/extensions/bananas/index.js.map +1 -0
  50. package/dist/cjs/extensions/bananas/pages/me/list.js +10 -9
  51. package/dist/cjs/extensions/bananas/pages/me/list.js.map +1 -0
  52. package/dist/cjs/extensions/fulfillment/components/AddressInfo.js +8 -6
  53. package/dist/cjs/extensions/fulfillment/components/AddressInfo.js.map +1 -0
  54. package/dist/cjs/extensions/fulfillment/components/ContactInfo.js +9 -7
  55. package/dist/cjs/extensions/fulfillment/components/ContactInfo.js.map +1 -0
  56. package/dist/cjs/extensions/fulfillment/components/RecipientCard.js +14 -12
  57. package/dist/cjs/extensions/fulfillment/components/RecipientCard.js.map +1 -0
  58. package/dist/cjs/extensions/fulfillment/components/ShipmentAccordion.js +124 -65
  59. package/dist/cjs/extensions/fulfillment/components/ShipmentAccordion.js.map +1 -0
  60. package/dist/cjs/extensions/fulfillment/components/ShipmentCard.js +19 -17
  61. package/dist/cjs/extensions/fulfillment/components/ShipmentCard.js.map +1 -0
  62. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationButtons.js +32 -19
  63. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationButtons.js.map +1 -0
  64. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationIcon.js +23 -11
  65. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationIcon.js.map +1 -0
  66. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsCard.js +73 -46
  67. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsCard.js.map +1 -0
  68. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsTable.js +49 -27
  69. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsTable.js.map +1 -0
  70. package/dist/cjs/extensions/fulfillment/components/ShipmentRow.js +12 -10
  71. package/dist/cjs/extensions/fulfillment/components/ShipmentRow.js.map +1 -0
  72. package/dist/cjs/extensions/fulfillment/components/order/OrderAccordion.js +212 -0
  73. package/dist/cjs/extensions/fulfillment/components/order/OrderAccordion.js.map +1 -0
  74. package/dist/cjs/extensions/fulfillment/components/order/OrderItemsTable.js +96 -0
  75. package/dist/cjs/extensions/fulfillment/components/order/OrderItemsTable.js.map +1 -0
  76. package/dist/cjs/extensions/fulfillment/components/order/OrderStateChip.js +98 -0
  77. package/dist/cjs/extensions/fulfillment/components/order/OrderStateChip.js.map +1 -0
  78. package/dist/cjs/extensions/fulfillment/index.js +59 -12
  79. package/dist/cjs/extensions/fulfillment/index.js.map +1 -0
  80. package/dist/cjs/extensions/fulfillment/pages/order/list.js +50 -36
  81. package/dist/cjs/extensions/fulfillment/pages/order/list.js.map +1 -0
  82. package/dist/cjs/extensions/fulfillment/pages/recipient/detail.js +7 -5
  83. package/dist/cjs/extensions/fulfillment/pages/recipient/detail.js.map +1 -0
  84. package/dist/cjs/extensions/fulfillment/pages/shipment/detail.js +57 -42
  85. package/dist/cjs/extensions/fulfillment/pages/shipment/detail.js.map +1 -0
  86. package/dist/cjs/extensions/fulfillment/pages/shipment/list.js +35 -31
  87. package/dist/cjs/extensions/fulfillment/pages/shipment/list.js.map +1 -0
  88. package/dist/cjs/extensions/fulfillment/types/order.js +3 -0
  89. package/dist/cjs/extensions/fulfillment/types/order.js.map +1 -0
  90. package/dist/cjs/extensions/fulfillment/types/recipient.js +1 -0
  91. package/dist/cjs/extensions/fulfillment/types/recipient.js.map +1 -0
  92. package/dist/cjs/extensions/fulfillment/types/shipment.js +1 -0
  93. package/dist/cjs/extensions/fulfillment/types/shipment.js.map +1 -0
  94. package/dist/cjs/extensions/fulfillment/types/util.js +1 -0
  95. package/dist/cjs/extensions/fulfillment/types/util.js.map +1 -0
  96. package/dist/cjs/extensions/pos/components/PurchaseRow.js +13 -11
  97. package/dist/cjs/extensions/pos/components/PurchaseRow.js.map +1 -0
  98. package/dist/cjs/extensions/pos/components/ReceiptCard.js +45 -43
  99. package/dist/cjs/extensions/pos/components/ReceiptCard.js.map +1 -0
  100. package/dist/cjs/extensions/pos/components/ReceiptLine.js +17 -12
  101. package/dist/cjs/extensions/pos/components/ReceiptLine.js.map +1 -0
  102. package/dist/cjs/extensions/pos/components/ReceiptTable.js +137 -41
  103. package/dist/cjs/extensions/pos/components/ReceiptTable.js.map +1 -0
  104. package/dist/cjs/extensions/pos/components/SearchBar.js +40 -25
  105. package/dist/cjs/extensions/pos/components/SearchBar.js.map +1 -0
  106. package/dist/cjs/extensions/pos/index.js +57 -12
  107. package/dist/cjs/extensions/pos/index.js.map +1 -0
  108. package/dist/cjs/extensions/pos/pages/purchase/detail.js +28 -20
  109. package/dist/cjs/extensions/pos/pages/purchase/detail.js.map +1 -0
  110. package/dist/cjs/extensions/pos/pages/purchase/list.js +39 -32
  111. package/dist/cjs/extensions/pos/pages/purchase/list.js.map +1 -0
  112. package/dist/cjs/extensions/pos/types/purchase.js +1 -0
  113. package/dist/cjs/extensions/pos/types/purchase.js.map +1 -0
  114. package/dist/cjs/extensions/pos/types/receipt.js +8 -0
  115. package/dist/cjs/extensions/pos/types/receipt.js.map +1 -0
  116. package/dist/cjs/forms/LoginForm.js +31 -30
  117. package/dist/cjs/forms/LoginForm.js.map +1 -0
  118. package/dist/cjs/hooks/useAsyncError.js +5 -4
  119. package/dist/cjs/hooks/useAsyncError.js.map +1 -0
  120. package/dist/cjs/hooks/useLocalStorage.js +8 -7
  121. package/dist/cjs/hooks/useLocalStorage.js.map +1 -0
  122. package/dist/cjs/index.js +1 -0
  123. package/dist/cjs/index.js.map +1 -0
  124. package/dist/cjs/pages/DashboardPage.js +4 -3
  125. package/dist/cjs/pages/DashboardPage.js.map +1 -0
  126. package/dist/cjs/pages/LoginPage.js +12 -10
  127. package/dist/cjs/pages/LoginPage.js.map +1 -0
  128. package/dist/cjs/router/Router.js +25 -19
  129. package/dist/cjs/router/Router.js.map +1 -0
  130. package/dist/cjs/router/routes.js +8 -7
  131. package/dist/cjs/router/routes.js.map +1 -0
  132. package/dist/cjs/types/index.js +1 -0
  133. package/dist/cjs/types/index.js.map +1 -0
  134. package/dist/cjs/util/format_purchase_number.js +2 -1
  135. package/dist/cjs/util/format_purchase_number.js.map +1 -0
  136. package/dist/cjs/util/get_cookie.js +4 -3
  137. package/dist/cjs/util/get_cookie.js.map +1 -0
  138. package/dist/cjs/util/index.js +10 -7
  139. package/dist/cjs/util/index.js.map +1 -0
  140. package/dist/cjs/util/is_email.js +1 -0
  141. package/dist/cjs/util/is_email.js.map +1 -0
  142. package/dist/cjs/util/is_positive_integer.js +2 -1
  143. package/dist/cjs/util/is_positive_integer.js.map +1 -0
  144. package/dist/cjs/util/select_styles.js +24 -7
  145. package/dist/cjs/util/select_styles.js.map +1 -0
  146. package/dist/esm/Admin.js +17 -16
  147. package/dist/esm/Admin.js.map +1 -0
  148. package/dist/esm/App.js +15 -3
  149. package/dist/esm/App.js.map +1 -0
  150. package/dist/esm/api.js +125 -63
  151. package/dist/esm/api.js.map +1 -0
  152. package/dist/esm/components/Branding.js +4 -2
  153. package/dist/esm/components/Branding.js.map +1 -0
  154. package/dist/esm/components/Hamburger.js +17 -5
  155. package/dist/esm/components/Hamburger.js.map +1 -0
  156. package/dist/esm/components/Link.js +6 -4
  157. package/dist/esm/components/Link.js.map +1 -0
  158. package/dist/esm/components/Logo.js +4 -2
  159. package/dist/esm/components/Logo.js.map +1 -0
  160. package/dist/esm/components/NavBar.js +38 -21
  161. package/dist/esm/components/NavBar.js.map +1 -0
  162. package/dist/esm/components/NavBarItem.js +8 -6
  163. package/dist/esm/components/NavBarItem.js.map +1 -0
  164. package/dist/esm/components/NavBarRoutes.js +19 -14
  165. package/dist/esm/components/NavBarRoutes.js.map +1 -0
  166. package/dist/esm/components/ProgressBar.js +3 -1
  167. package/dist/esm/components/ProgressBar.js.map +1 -0
  168. package/dist/esm/components/TitleBar.js +9 -8
  169. package/dist/esm/components/TitleBar.js.map +1 -0
  170. package/dist/esm/components/User.js +24 -11
  171. package/dist/esm/components/User.js.map +1 -0
  172. package/dist/esm/containers/Content.js +5 -3
  173. package/dist/esm/containers/Content.js.map +1 -0
  174. package/dist/esm/containers/ErrorScreen.js +10 -8
  175. package/dist/esm/containers/ErrorScreen.js.map +1 -0
  176. package/dist/esm/containers/LoadingScreen.js +56 -41
  177. package/dist/esm/containers/LoadingScreen.js.map +1 -0
  178. package/dist/esm/containers/PageErrorBoundary.js +33 -13
  179. package/dist/esm/containers/PageErrorBoundary.js.map +1 -0
  180. package/dist/esm/containers/PageLoader.js +124 -34
  181. package/dist/esm/containers/PageLoader.js.map +1 -0
  182. package/dist/esm/contexts/ApiContext.js +49 -12
  183. package/dist/esm/contexts/ApiContext.js.map +1 -0
  184. package/dist/esm/contexts/I18nContext.js +55 -15
  185. package/dist/esm/contexts/I18nContext.js.map +1 -0
  186. package/dist/esm/contexts/RouterContext.js +47 -39
  187. package/dist/esm/contexts/RouterContext.js.map +1 -0
  188. package/dist/esm/contexts/UserContext.js +93 -40
  189. package/dist/esm/contexts/UserContext.js.map +1 -0
  190. package/dist/esm/extensions/bananas/components/PasswordChangeForm.js +32 -19
  191. package/dist/esm/extensions/bananas/components/PasswordChangeForm.js.map +1 -0
  192. package/dist/esm/extensions/bananas/index.js +3 -2
  193. package/dist/esm/extensions/bananas/index.js.map +1 -0
  194. package/dist/esm/extensions/bananas/pages/me/list.js +3 -2
  195. package/dist/esm/extensions/bananas/pages/me/list.js.map +1 -0
  196. package/dist/esm/extensions/fulfillment/components/AddressInfo.js +5 -3
  197. package/dist/esm/extensions/fulfillment/components/AddressInfo.js.map +1 -0
  198. package/dist/esm/extensions/fulfillment/components/ContactInfo.js +5 -3
  199. package/dist/esm/extensions/fulfillment/components/ContactInfo.js.map +1 -0
  200. package/dist/esm/extensions/fulfillment/components/RecipientCard.js +6 -4
  201. package/dist/esm/extensions/fulfillment/components/RecipientCard.js.map +1 -0
  202. package/dist/esm/extensions/fulfillment/components/ShipmentAccordion.js +109 -50
  203. package/dist/esm/extensions/fulfillment/components/ShipmentAccordion.js.map +1 -0
  204. package/dist/esm/extensions/fulfillment/components/ShipmentCard.js +8 -6
  205. package/dist/esm/extensions/fulfillment/components/ShipmentCard.js.map +1 -0
  206. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationButtons.js +27 -14
  207. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationButtons.js.map +1 -0
  208. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationIcon.js +18 -6
  209. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationIcon.js.map +1 -0
  210. package/dist/esm/extensions/fulfillment/components/ShipmentItemsCard.js +54 -27
  211. package/dist/esm/extensions/fulfillment/components/ShipmentItemsCard.js.map +1 -0
  212. package/dist/esm/extensions/fulfillment/components/ShipmentItemsTable.js +40 -18
  213. package/dist/esm/extensions/fulfillment/components/ShipmentItemsTable.js.map +1 -0
  214. package/dist/esm/extensions/fulfillment/components/ShipmentRow.js +8 -6
  215. package/dist/esm/extensions/fulfillment/components/ShipmentRow.js.map +1 -0
  216. package/dist/esm/extensions/fulfillment/components/order/OrderAccordion.js +207 -0
  217. package/dist/esm/extensions/fulfillment/components/order/OrderAccordion.js.map +1 -0
  218. package/dist/esm/extensions/fulfillment/components/order/OrderItemsTable.js +91 -0
  219. package/dist/esm/extensions/fulfillment/components/order/OrderItemsTable.js.map +1 -0
  220. package/dist/esm/extensions/fulfillment/components/order/OrderStateChip.js +70 -0
  221. package/dist/esm/extensions/fulfillment/components/order/OrderStateChip.js.map +1 -0
  222. package/dist/esm/extensions/fulfillment/index.js +61 -14
  223. package/dist/esm/extensions/fulfillment/index.js.map +1 -0
  224. package/dist/esm/extensions/fulfillment/pages/order/list.js +40 -26
  225. package/dist/esm/extensions/fulfillment/pages/order/list.js.map +1 -0
  226. package/dist/esm/extensions/fulfillment/pages/recipient/detail.js +4 -2
  227. package/dist/esm/extensions/fulfillment/pages/recipient/detail.js.map +1 -0
  228. package/dist/esm/extensions/fulfillment/pages/shipment/detail.js +38 -23
  229. package/dist/esm/extensions/fulfillment/pages/shipment/detail.js.map +1 -0
  230. package/dist/esm/extensions/fulfillment/pages/shipment/list.js +24 -20
  231. package/dist/esm/extensions/fulfillment/pages/shipment/list.js.map +1 -0
  232. package/dist/esm/extensions/fulfillment/types/order.js +2 -0
  233. package/dist/esm/extensions/fulfillment/types/order.js.map +1 -0
  234. package/dist/esm/extensions/fulfillment/types/recipient.js +1 -0
  235. package/dist/esm/extensions/fulfillment/types/recipient.js.map +1 -0
  236. package/dist/esm/extensions/fulfillment/types/shipment.js +1 -0
  237. package/dist/esm/extensions/fulfillment/types/shipment.js.map +1 -0
  238. package/dist/esm/extensions/fulfillment/types/util.js +1 -0
  239. package/dist/esm/extensions/fulfillment/types/util.js.map +1 -0
  240. package/dist/esm/extensions/pos/components/PurchaseRow.js +8 -6
  241. package/dist/esm/extensions/pos/components/PurchaseRow.js.map +1 -0
  242. package/dist/esm/extensions/pos/components/ReceiptCard.js +28 -26
  243. package/dist/esm/extensions/pos/components/ReceiptCard.js.map +1 -0
  244. package/dist/esm/extensions/pos/components/ReceiptLine.js +11 -6
  245. package/dist/esm/extensions/pos/components/ReceiptLine.js.map +1 -0
  246. package/dist/esm/extensions/pos/components/ReceiptTable.js +128 -32
  247. package/dist/esm/extensions/pos/components/ReceiptTable.js.map +1 -0
  248. package/dist/esm/extensions/pos/components/SearchBar.js +28 -13
  249. package/dist/esm/extensions/pos/components/SearchBar.js.map +1 -0
  250. package/dist/esm/extensions/pos/index.js +58 -13
  251. package/dist/esm/extensions/pos/index.js.map +1 -0
  252. package/dist/esm/extensions/pos/pages/purchase/detail.js +20 -12
  253. package/dist/esm/extensions/pos/pages/purchase/detail.js.map +1 -0
  254. package/dist/esm/extensions/pos/pages/purchase/list.js +23 -16
  255. package/dist/esm/extensions/pos/pages/purchase/list.js.map +1 -0
  256. package/dist/esm/extensions/pos/types/purchase.js +1 -0
  257. package/dist/esm/extensions/pos/types/purchase.js.map +1 -0
  258. package/dist/esm/extensions/pos/types/receipt.js +7 -1
  259. package/dist/esm/extensions/pos/types/receipt.js.map +1 -0
  260. package/dist/esm/forms/LoginForm.js +19 -18
  261. package/dist/esm/forms/LoginForm.js.map +1 -0
  262. package/dist/esm/hooks/useAsyncError.js +4 -3
  263. package/dist/esm/hooks/useAsyncError.js.map +1 -0
  264. package/dist/esm/hooks/useLocalStorage.js +7 -6
  265. package/dist/esm/hooks/useLocalStorage.js.map +1 -0
  266. package/dist/esm/index.js +1 -0
  267. package/dist/esm/index.js.map +1 -0
  268. package/dist/esm/pages/DashboardPage.js +3 -2
  269. package/dist/esm/pages/DashboardPage.js.map +1 -0
  270. package/dist/esm/pages/LoginPage.js +5 -3
  271. package/dist/esm/pages/LoginPage.js.map +1 -0
  272. package/dist/esm/router/Router.js +17 -11
  273. package/dist/esm/router/Router.js.map +1 -0
  274. package/dist/esm/router/routes.js +7 -6
  275. package/dist/esm/router/routes.js.map +1 -0
  276. package/dist/esm/types/index.js +1 -0
  277. package/dist/esm/types/index.js.map +1 -0
  278. package/dist/esm/util/format_purchase_number.js +2 -1
  279. package/dist/esm/util/format_purchase_number.js.map +1 -0
  280. package/dist/esm/util/get_cookie.js +4 -3
  281. package/dist/esm/util/get_cookie.js.map +1 -0
  282. package/dist/esm/util/index.js +10 -7
  283. package/dist/esm/util/index.js.map +1 -0
  284. package/dist/esm/util/is_email.js +1 -0
  285. package/dist/esm/util/is_email.js.map +1 -0
  286. package/dist/esm/util/is_positive_integer.js +2 -1
  287. package/dist/esm/util/is_positive_integer.js.map +1 -0
  288. package/dist/esm/util/select_styles.js +25 -8
  289. package/dist/esm/util/select_styles.js.map +1 -0
  290. package/dist/types/Admin.d.ts +1 -1
  291. package/dist/types/App.d.ts +1 -1
  292. package/dist/types/components/Hamburger.d.ts +1 -1
  293. package/dist/types/components/Link.d.ts +1 -1
  294. package/dist/types/components/User.d.ts +4 -7
  295. package/dist/types/containers/PageErrorBoundary.d.ts +1 -1
  296. package/dist/types/containers/PageLoader.d.ts +1 -0
  297. package/dist/types/contexts/RouterContext.d.ts +2 -2
  298. package/dist/types/extensions/fulfillment/components/ShipmentDestinationIcon.d.ts +1 -1
  299. package/dist/types/extensions/fulfillment/components/order/OrderAccordion.d.ts +7 -0
  300. package/dist/types/extensions/fulfillment/components/order/OrderItemsTable.d.ts +9 -0
  301. package/dist/types/extensions/fulfillment/components/order/OrderStateChip.d.ts +10 -0
  302. package/dist/types/extensions/fulfillment/pages/order/list.d.ts +2 -2
  303. package/dist/types/extensions/fulfillment/types/order.d.ts +38 -0
  304. package/dist/types/extensions/fulfillment/types/shipment.d.ts +1 -1
  305. package/dist/types/extensions/pos/components/PurchaseRow.d.ts +2 -2
  306. package/dist/types/extensions/pos/components/ReceiptCard.d.ts +3 -3
  307. package/dist/types/extensions/pos/components/ReceiptLine.d.ts +1 -0
  308. package/dist/types/extensions/pos/components/ReceiptTable.d.ts +4 -3
  309. package/dist/types/extensions/pos/components/SearchBar.d.ts +1 -1
  310. package/dist/types/extensions/pos/pages/purchase/list.d.ts +2 -2
  311. package/dist/types/extensions/pos/types/purchase.d.ts +27 -6
  312. package/dist/types/extensions/pos/types/receipt.d.ts +7 -9
  313. package/dist/types/router/Router.d.ts +2 -1
  314. package/dist/types/types/index.d.ts +7 -4
  315. package/example/index.tsx +28 -9
  316. package/example/package.json +18 -8
  317. package/example/scripts/build.js +4 -0
  318. package/example/scripts/options.js +81 -0
  319. package/{example/pages/.gitkeep → nodemon.json} +0 -0
  320. package/package.json +8 -4
  321. package/src/Admin.tsx +36 -36
  322. package/src/App.tsx +8 -4
  323. package/src/components/TitleBar.tsx +23 -18
  324. package/src/containers/Content.tsx +1 -1
  325. package/src/containers/PageLoader.tsx +32 -14
  326. package/src/contexts/UserContext.tsx +15 -14
  327. package/src/extensions/fulfillment/components/ShipmentAccordion.tsx +126 -116
  328. package/src/extensions/fulfillment/components/ShipmentCard.tsx +3 -9
  329. package/src/extensions/fulfillment/components/ShipmentItemsCard.tsx +42 -45
  330. package/src/extensions/fulfillment/components/order/OrderAccordion.tsx +213 -0
  331. package/src/extensions/fulfillment/components/order/OrderItemsTable.tsx +128 -0
  332. package/src/extensions/fulfillment/components/order/OrderStateChip.tsx +79 -0
  333. package/src/extensions/fulfillment/index.tsx +27 -9
  334. package/src/extensions/fulfillment/pages/order/list.tsx +43 -54
  335. package/src/extensions/fulfillment/pages/shipment/detail.tsx +47 -55
  336. package/src/extensions/fulfillment/types/order.ts +53 -0
  337. package/src/extensions/pos/components/PurchaseRow.tsx +3 -5
  338. package/src/extensions/pos/components/ReceiptCard.tsx +50 -47
  339. package/src/extensions/pos/components/ReceiptLine.tsx +6 -5
  340. package/src/extensions/pos/components/ReceiptTable.tsx +183 -78
  341. package/src/extensions/pos/index.tsx +3 -3
  342. package/src/extensions/pos/pages/purchase/detail.tsx +29 -34
  343. package/src/extensions/pos/pages/purchase/list.tsx +14 -20
  344. package/src/extensions/pos/types/purchase.ts +28 -6
  345. package/src/extensions/pos/types/receipt.ts +8 -9
  346. package/src/pages/DashboardPage.tsx +1 -1
  347. package/src/router/Router.tsx +14 -15
  348. package/src/types/index.ts +4 -1
  349. package/tsconfig.json +5 -13
  350. package/example/Dockerfile +0 -27
  351. package/example/README.md +0 -6
  352. package/example/build.js +0 -19
  353. package/example/docker-compose.yml +0 -7
  354. package/example/package-lock.json +0 -1762
  355. package/example/public/index.html +0 -14
@@ -8,30 +8,40 @@ import TableCell from "@mui/material/TableCell";
8
8
  import TableContainer from "@mui/material/TableContainer";
9
9
  import TableHead from "@mui/material/TableHead";
10
10
  import TableRow from "@mui/material/TableRow";
11
- import { ReceiptLine } from "../types/receipt";
11
+ import { Adjustment, Line } from "../types/purchase";
12
+ import Typography from "@mui/material/Typography";
13
+ import useTheme from "@mui/material/styles/useTheme";
12
14
 
13
15
  export interface ReceiptTableProps {
14
- lines: ReceiptLine[];
16
+ currency: string;
17
+ lines: Line[];
15
18
  editable?: boolean;
16
- onSelect?: (selected: ReceiptLine[]) => void;
19
+ onSelect?: (selected: Line[]) => void;
17
20
  }
18
21
 
19
- export const ReceiptTable: React.FC<ReceiptTableProps> = (
20
- { lines, editable, onSelect },
21
- ) => {
22
- const [selected, setSelected] = React.useState<ReceiptLine[]>([]);
22
+ export const ReceiptTable: React.FC<ReceiptTableProps> = ({
23
+ lines,
24
+ currency,
25
+ editable,
26
+ onSelect,
27
+ }) => {
28
+ const [selected, setSelected] = React.useState<Line[]>([]);
29
+ const theme = useTheme();
30
+ const refundableLines = lines.filter(
31
+ (line) => !!line.adjustments.reduce((t, v) => t + v.quantity, line.quantity)
32
+ );
23
33
 
24
34
  const toggleSelectAll = (
25
35
  _: React.ChangeEvent<HTMLInputElement>,
26
- checked: boolean,
36
+ checked: boolean
27
37
  ) => {
28
- setSelected(checked ? lines : []);
38
+ setSelected(checked ? refundableLines : []);
29
39
  };
30
40
 
31
- const toggleLine = (item: ReceiptLine, checked: boolean) => {
32
- const index = selected.map(({ line_number }) => line_number).indexOf(
33
- item.line_number,
34
- );
41
+ const toggleLine = (item: Line, checked: boolean) => {
42
+ const index = selected
43
+ .map(({ line_number }) => line_number)
44
+ .indexOf(item.line_number);
35
45
 
36
46
  if (checked && index === -1) {
37
47
  setSelected([...selected, item]);
@@ -42,10 +52,10 @@ export const ReceiptTable: React.FC<ReceiptTableProps> = (
42
52
  }
43
53
  };
44
54
 
45
- const lineQuantityChange = (item: ReceiptLine) => {
46
- const index = selected.map(({ line_number }) => line_number).indexOf(
47
- item.line_number,
48
- );
55
+ const lineQuantityChange = (item: Line) => {
56
+ const index = selected
57
+ .map(({ line_number }) => line_number)
58
+ .indexOf(item.line_number);
49
59
  const changed = [...selected];
50
60
  changed[index] = item;
51
61
  setSelected(changed);
@@ -62,77 +72,172 @@ export const ReceiptTable: React.FC<ReceiptTableProps> = (
62
72
  <Table>
63
73
  <TableHead>
64
74
  <TableRow>
65
- {editable
66
- ? (
67
- <TableCell align="left" padding="checkbox">
68
- <Checkbox
69
- color="secondary"
70
- indeterminate={selected.length > 0 &&
71
- selected.length < lines.length}
72
- checked={lines.length !== 0 &&
73
- selected.length === lines.length}
74
- onChange={toggleSelectAll}
75
- disabled={lines.length === 0}
76
- />
77
- </TableCell>
78
- )
79
- : null}
75
+ {editable ? (
76
+ <TableCell align="left" padding="checkbox">
77
+ <Checkbox
78
+ color="secondary"
79
+ indeterminate={
80
+ selected.length > 0 &&
81
+ selected.length < refundableLines.length
82
+ }
83
+ checked={
84
+ lines.length !== 0 &&
85
+ selected.length === refundableLines.length
86
+ }
87
+ onChange={toggleSelectAll}
88
+ disabled={lines.length === 0}
89
+ />
90
+ </TableCell>
91
+ ) : null}
80
92
  <TableCell align="left" />
81
- <TableCell align="right">
82
- Quantity
83
- </TableCell>
84
- <TableCell align="right">
85
- Unit
86
- </TableCell>
87
- <TableCell align="right">
88
- Total
89
- </TableCell>
93
+ <TableCell align="right">Reference</TableCell>
94
+ <TableCell align="right">Quantity</TableCell>
95
+ <TableCell align="right">Unit Price</TableCell>
96
+ <TableCell align="right">Total</TableCell>
97
+ <TableCell align="right">Debit</TableCell>
90
98
  </TableRow>
91
99
  </TableHead>
92
100
  <TableBody>
93
101
  {lines.map((line) => {
94
- const isSelected = selected.map(({ line_number }) => line_number)
95
- .includes(
96
- line.line_number,
97
- );
102
+ const isSelected = selected
103
+ .map(({ line_number }) => line_number)
104
+ .includes(line.line_number);
105
+
106
+ const currentQuantity = line.adjustments.reduce(
107
+ (t, v) => t + v.quantity,
108
+ line.quantity
109
+ );
110
+
111
+ const getUnconfirmedStyle = (v: Adjustment) =>
112
+ v.receipt_number == null
113
+ ? { color: theme.palette.grey[700], fontStyle: "italic" }
114
+ : {};
115
+
98
116
  return (
99
117
  <TableRow key={line.line_number}>
100
- {editable
101
- ? (
102
- <TableCell align="left" padding="checkbox">
103
- <Checkbox
104
- color="secondary"
105
- checked={isSelected}
106
- onChange={(_, checked) => toggleLine(line, checked)}
107
- />
108
- </TableCell>
109
- )
110
- : null}
111
- <TableCell align="left">
112
- {line.title}
118
+ {editable ? (
119
+ <TableCell
120
+ sx={{ verticalAlign: "top", paddingTop: 0.7 }}
121
+ align="left"
122
+ padding="checkbox"
123
+ >
124
+ <Checkbox
125
+ color="secondary"
126
+ disabled={currentQuantity === 0}
127
+ checked={isSelected && currentQuantity !== 0}
128
+ onChange={(_, checked) =>
129
+ toggleLine(
130
+ { ...line, quantity: currentQuantity },
131
+ checked
132
+ )
133
+ }
134
+ />
135
+ </TableCell>
136
+ ) : null}
137
+
138
+ <TableCell style={{ verticalAlign: "top" }} align="left">
139
+ <Typography fontSize="0.875rem">{line.title}</Typography>
140
+ {line.adjustments.map((v) => {
141
+ const text = {
142
+ CANCELLATION: "Cancellation",
143
+ RETURN: "Return",
144
+ REFUND: "Refund",
145
+ DISCOUNT: "Discount: ",
146
+ }[v.adjustment_type];
147
+
148
+ return (
149
+ <Typography
150
+ sx={{ paddingLeft: 2, ...getUnconfirmedStyle(v) }}
151
+ fontSize="0.875rem"
152
+ >
153
+ {text + v.title}
154
+ </Typography>
155
+ );
156
+ })}
157
+ </TableCell>
158
+ <TableCell style={{ verticalAlign: "top" }} align="right">
159
+ {line.reference}
160
+ </TableCell>
161
+ <TableCell style={{ verticalAlign: "top" }} align="right">
162
+ {editable ? (
163
+ <Input
164
+ type="number"
165
+ defaultValue={currentQuantity}
166
+ inputProps={{
167
+ min: Math.min(currentQuantity, 1),
168
+ max: currentQuantity,
169
+ }}
170
+ disabled={!isSelected}
171
+ onChange={(event) =>
172
+ lineQuantityChange({
173
+ ...line,
174
+ quantity: parseInt(event.target.value),
175
+ })
176
+ }
177
+ />
178
+ ) : (
179
+ <>
180
+ <Typography fontSize="0.875rem">
181
+ {line.quantity}
182
+ </Typography>
183
+ {line.adjustments.map((v) => {
184
+ if (v.quantity === 0) {
185
+ return (
186
+ <Typography fontSize="0.875rem">
187
+ {/* EMPTY, for spacing :) */}
188
+ </Typography>
189
+ );
190
+ }
191
+
192
+ return (
193
+ <Typography
194
+ fontSize="0.875rem"
195
+ sx={getUnconfirmedStyle(v)}
196
+ >
197
+ {v.quantity}
198
+ </Typography>
199
+ );
200
+ })}
201
+ </>
202
+ )}
113
203
  </TableCell>
114
- <TableCell align="right">
115
- {editable
116
- ? (
117
- <Input
118
- type="number"
119
- defaultValue={line.quantity}
120
- inputProps={{ min: 0, max: line.quantity }}
121
- disabled={!isSelected}
122
- onChange={(event) =>
123
- lineQuantityChange({
124
- ...line,
125
- quantity: parseInt(event.target.value),
126
- })}
127
- />
128
- )
129
- : line.quantity}
204
+ <TableCell style={{ verticalAlign: "top" }} align="right">
205
+ {line.unit_price} {currency}
130
206
  </TableCell>
131
- <TableCell align="right">
132
- {`${line.unit_price} SEK`}
207
+ <TableCell style={{ verticalAlign: "top" }} align="right">
208
+ <Typography fontSize="0.875rem">
209
+ {line.total_amount} {currency}
210
+ </Typography>
211
+ {line.adjustments.map((v) => {
212
+ return (
213
+ <Typography
214
+ fontSize="0.875rem"
215
+ sx={getUnconfirmedStyle(v)}
216
+ >
217
+ {v.total_amount} {currency}
218
+ </Typography>
219
+ );
220
+ })}
133
221
  </TableCell>
134
- <TableCell align="right">
135
- {`${line.total_amount} SEK`}
222
+ <TableCell style={{ verticalAlign: "top" }} align="right">
223
+ <div>
224
+ <Typography fontSize="0.875rem">
225
+ {line.total_amount} {currency}
226
+ </Typography>
227
+ {line.adjustments
228
+ .slice(0)
229
+ .slice(1)
230
+ .map(() => (
231
+ <Typography fontSize="0.875rem">
232
+ {/* SPACING */}{" "}
233
+ </Typography>
234
+ ))}
235
+ {line.remaining_amount != line.total_amount ? (
236
+ <Typography fontSize="0.875rem">
237
+ ({line.remaining_amount} {currency})
238
+ </Typography>
239
+ ) : null}
240
+ </div>
136
241
  </TableCell>
137
242
  </TableRow>
138
243
  );
@@ -4,9 +4,9 @@ import { RouterExtension } from "../../router/Router";
4
4
  import { NavOverrides } from "../../types";
5
5
 
6
6
  const routes = {
7
- "purchase": {
8
- "detail": async () => (await import("./pages/purchase/detail")).default,
9
- "list": async () => (await import("./pages/purchase/list")).default,
7
+ purchase: {
8
+ detail: async () => (await import("./pages/purchase/detail")).default,
9
+ list: async () => (await import("./pages/purchase/list")).default,
10
10
  },
11
11
  } as const;
12
12
 
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { PurchaseDetail } from "../../types/purchase";
2
+ import { Line, PurchaseDetail } from "../../types/purchase";
3
3
  import { ReceiptCard } from "../../components/ReceiptCard";
4
4
  import Content from "../../../../containers/Content";
5
5
  import { PageComponent } from "../../../../types";
@@ -10,31 +10,33 @@ import { useApi } from "../../../../contexts/ApiContext";
10
10
  import { useSnackbar } from "notistack";
11
11
  import { ReceiptLine } from "../../types/receipt";
12
12
 
13
- const PurchaseDetailPage: PageComponent<PurchaseDetail> = (
14
- { data: { purchase, receipts } },
15
- ) => {
13
+ const PurchaseDetailPage: PageComponent<PurchaseDetail> = ({
14
+ data: purchase,
15
+ }) => {
16
16
  const api = useApi();
17
17
  const { enqueueSnackbar } = useSnackbar();
18
18
 
19
- const doRefund = (lines: ReceiptLine[]) => {
20
- api.operations["pos.purchase:refund-items"].call({
21
- params: { purchase_number: purchase.number },
22
- body: lines.map(({ reference, quantity }) => ({ reference, quantity })),
23
- }).then((response) => {
24
- if (response.ok) {
25
- enqueueSnackbar("Successfully refunded purchase!", {
26
- variant: "success",
27
- });
28
- } else {
29
- enqueueSnackbar(
30
- "Failed to refund purchase, view console for more info",
31
- {
32
- variant: "error",
33
- },
34
- );
35
- throw response;
36
- }
37
- });
19
+ const doRefund = (lines: Line[]) => {
20
+ api.operations["pos.purchase:refund-items"]
21
+ .call({
22
+ params: { purchase_number: purchase.number },
23
+ body: lines.map(({ reference, quantity }) => ({ reference, quantity })),
24
+ })
25
+ .then((response) => {
26
+ if (response.ok) {
27
+ enqueueSnackbar("Successfully refunded", {
28
+ variant: "success",
29
+ });
30
+ } else {
31
+ enqueueSnackbar(
32
+ "Failed to refund",
33
+ {
34
+ variant: "error",
35
+ }
36
+ );
37
+ throw response;
38
+ }
39
+ });
38
40
  };
39
41
 
40
42
  return (
@@ -42,18 +44,11 @@ const PurchaseDetailPage: PageComponent<PurchaseDetail> = (
42
44
  <TitleBar
43
45
  back
44
46
  title={`Purchase ${formatPurchaseNumber(purchase.number)}`}
45
- >
46
- </TitleBar>
47
+ ></TitleBar>
47
48
  <Content>
48
- {receipts.map((receipt) => (
49
- <Grid key={receipt.number} item xs={12}>
50
- <ReceiptCard
51
- key={receipt.number}
52
- receipt={receipt}
53
- refund={doRefund}
54
- />
55
- </Grid>
56
- ))}
49
+ <Grid item xs={12}>
50
+ <ReceiptCard purchase={purchase} refund={doRefund} />
51
+ </Grid>
57
52
  </Content>
58
53
  </>
59
54
  );
@@ -10,7 +10,6 @@ import TableRow from "@mui/material/TableRow";
10
10
 
11
11
  import Content from "../../../../containers/Content";
12
12
  import { PurchaseRow } from "../../components/PurchaseRow";
13
- import { Purchase } from "../../types/purchase";
14
13
  import { PageComponent } from "../../../../types";
15
14
  import { TitleBar } from "../../../../components/TitleBar";
16
15
  import Grid from "@mui/material/Grid";
@@ -18,20 +17,21 @@ import Stack from "@mui/material/Stack";
18
17
  import { useTheme } from "@mui/material/styles";
19
18
  import { useRouter } from "../../../../contexts/RouterContext";
20
19
  import { SearchBar, SearchInput } from "../../components/SearchBar";
20
+ import { PurchaseDetail } from "../../types/purchase";
21
21
 
22
- const PurchaseListPage: PageComponent<{ results: Purchase[] }> = ({ data }) => {
22
+ const PurchaseListPage: PageComponent<{ results: PurchaseDetail[] }> = ({
23
+ data,
24
+ }) => {
23
25
  const theme = useTheme();
24
- const { navigate, getCurrent } = useRouter();
26
+ const { navigate } = useRouter();
25
27
  const searchParams = new URLSearchParams(location.search);
26
- const [searchInputs, setSearchInputs] = React.useState<SearchInput[]>(
27
- [
28
- ...searchParams.getAll("email").map((v) => ({ "email": v })),
29
- ...searchParams.getAll("phone").map((v) => ({ "phone": v })),
30
- ...searchParams.getAll("purchase_number").map((v) => ({
31
- "purchase_number": parseInt(v),
32
- })),
33
- ],
34
- );
28
+ const [searchInputs, setSearchInputs] = React.useState<SearchInput[]>([
29
+ ...searchParams.getAll("email").map((v) => ({ email: v })),
30
+ ...searchParams.getAll("phone").map((v) => ({ phone: v })),
31
+ ...searchParams.getAll("purchase_number").map((v) => ({
32
+ purchase_number: parseInt(v),
33
+ })),
34
+ ]);
35
35
  const [initial, setInitial] = React.useState(true);
36
36
 
37
37
  const doSearch = (event?: React.FormEvent<HTMLFormElement>) => {
@@ -66,10 +66,7 @@ const PurchaseListPage: PageComponent<{ results: Purchase[] }> = ({ data }) => {
66
66
  component="form"
67
67
  onSubmit={doSearch}
68
68
  >
69
- <SearchBar
70
- defaultValue={searchInputs}
71
- onChange={setSearchInputs}
72
- />
69
+ <SearchBar defaultValue={searchInputs} onChange={setSearchInputs} />
73
70
  </Stack>
74
71
  <Content>
75
72
  <Grid item xs={12}>
@@ -85,10 +82,7 @@ const PurchaseListPage: PageComponent<{ results: Purchase[] }> = ({ data }) => {
85
82
  </TableHead>
86
83
  <TableBody>
87
84
  {data?.results.map((purchase) => (
88
- <PurchaseRow
89
- key={purchase.number}
90
- purchase={purchase}
91
- />
85
+ <PurchaseRow key={purchase.number} purchase={purchase} />
92
86
  ))}
93
87
  </TableBody>
94
88
  </Table>
@@ -1,20 +1,42 @@
1
1
  import { Receipt } from "./receipt";
2
2
 
3
- export interface Purchase {
4
- number: string;
3
+ export interface PurchaseDetail {
4
+ number: number;
5
5
  checkout_session?: string;
6
6
  main_payment_identifier?: string;
7
7
  date_initiated: string;
8
8
  date_confirmed: string;
9
- currency?: string;
9
+ currency: string;
10
10
  site_code: string;
11
11
  locale: string;
12
12
  country_code: string;
13
13
  email: string;
14
14
  phone?: string;
15
+ total_debit_amount: string;
16
+ total_remaining_amount: string;
17
+ total_discount_amount: string;
18
+ total_tax_amount: string;
19
+ receipts: Receipt[];
20
+ lines: Line[];
15
21
  }
16
22
 
17
- export interface PurchaseDetail {
18
- purchase: Purchase;
19
- receipts: Receipt[];
23
+ export interface Line {
24
+ line_number: number;
25
+ item_type: string;
26
+ title: string;
27
+ reference: string;
28
+ quantity: number;
29
+ unit_price: string;
30
+ total_amount: string;
31
+ debit_amount: string;
32
+ remaining_amount: string;
33
+ adjustments: Adjustment[];
34
+ }
35
+
36
+ export interface Adjustment {
37
+ adjustment_type: "CANCELLATION" | "RETURN" | "REFUND" | "DISCOUNT";
38
+ title: string;
39
+ receipt_number: number | null;
40
+ quantity: number;
41
+ total_amount: string;
20
42
  }
@@ -1,17 +1,16 @@
1
+ export enum ReceiptIntention {
2
+ Payment = 1,
3
+ Cancellation = 2,
4
+ Refund = 3,
5
+ }
6
+
1
7
  export interface Receipt {
2
- number: string;
8
+ number: number | null;
3
9
  total_amount: string;
4
10
  total_discount_amount: string;
5
11
  total_tax_amount: string;
6
12
  date_settled?: string;
7
- /**
8
- * | | Intention |
9
- * | - | ------------ |
10
- * | 1 | payment |
11
- * | 2 | cancellation |
12
- * | 3 | refund |
13
- */
14
- intention: 1 | 2 | 3;
13
+ intention: ReceiptIntention;
15
14
  lines: ReceiptLine[];
16
15
  }
17
16
 
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
 
3
3
  const DashboardPage: React.FC = () => {
4
- return <h1>Dashboard!</h1>;
4
+ return <></>;
5
5
  };
6
6
 
7
7
  export default DashboardPage;
@@ -11,10 +11,14 @@ import ErrorScreen from "../containers/ErrorScreen";
11
11
  import { OpenAPI } from "openapi-types";
12
12
  import Stack from "@mui/material/Stack";
13
13
 
14
- export type RouterExtensionPageHit = PageComponent | Promise<PageComponent> | {
15
- page: PageComponent | Promise<PageComponent>;
16
- request?: OpenAPI.Request;
17
- };
14
+ export type RouterExtensionPageHit =
15
+ | PageComponent
16
+ | Promise<PageComponent>
17
+ | {
18
+ page: PageComponent | Promise<PageComponent>;
19
+ request?: OpenAPI.Request;
20
+ defaultRequest?: OpenAPI.Request;
21
+ };
18
22
 
19
23
  export interface RouterExtension {
20
24
  app: string;
@@ -26,9 +30,7 @@ export interface RouterProps {
26
30
  extensions?: RouterExtension[];
27
31
  }
28
32
 
29
- export const Router: React.FC<RouterProps> = (
30
- { dashboard, extensions },
31
- ) => {
33
+ export const Router: React.FC<RouterProps> = ({ dashboard, extensions }) => {
32
34
  extensions ??= Array.isArray(extensions) ? extensions : [];
33
35
 
34
36
  const { routes } = useRouter();
@@ -36,7 +38,7 @@ export const Router: React.FC<RouterProps> = (
36
38
  const Dashboard = dashboard ?? DashboardPage;
37
39
 
38
40
  const extensionsMap = new Map(
39
- extensions.map(({ app, pages }) => [app, pages]),
41
+ extensions.map(({ app, pages }) => [app, pages])
40
42
  );
41
43
  const pageRoutes = routes.map((route) => {
42
44
  const hit = extensionsMap.get(route.app)?.(route);
@@ -46,24 +48,21 @@ export const Router: React.FC<RouterProps> = (
46
48
 
47
49
  const page = "page" in hit ? hit.page : hit;
48
50
  const request = "request" in hit ? hit.request : undefined;
51
+ const defaultRequest =
52
+ "defaultRequest" in hit ? hit.defaultRequest : undefined;
49
53
 
50
54
  const Element = () => (
51
55
  <PageErrorBoundary errorPage={ErrorScreen}>
52
56
  <PageLoader
53
57
  route={route}
54
58
  page={page}
59
+ defaultRequest={defaultRequest}
55
60
  request={request}
56
61
  />
57
62
  </PageErrorBoundary>
58
63
  );
59
64
 
60
- return (
61
- <Route
62
- key={route.path}
63
- path={route.path}
64
- element={<Element />}
65
- />
66
- );
65
+ return <Route key={route.path} path={route.path} element={<Element />} />;
67
66
  });
68
67
 
69
68
  return (
@@ -2,7 +2,10 @@ declare module "swagger-client";
2
2
 
3
3
  export type LogoType = boolean | string | React.ElementType;
4
4
  export type PageProps<T = unknown> = { data: T };
5
- export type PageComponent<T = unknown> = React.ComponentType<PageProps<T>>;
5
+ export type PageComponent<T = unknown> = React.ComponentType<PageProps<T>> & {
6
+ requiredQuery?: URLSearchParams;
7
+ defaultQuery?: URLSearchParams;
8
+ };
6
9
  export type NavOverrides = Record<
7
10
  string,
8
11
  { icon?: LogoType; title?: string } | null | undefined | false
package/tsconfig.json CHANGED
@@ -3,12 +3,8 @@
3
3
  "outDir": "dist/esm",
4
4
  "declarationDir": "dist/types",
5
5
  "module": "ESNext",
6
- "target": "ES6",
7
- "lib": [
8
- "ESNext",
9
- "DOM",
10
- "DOM.Iterable"
11
- ],
6
+ "target": "ES5",
7
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
12
8
  "jsx": "react",
13
9
  "declaration": true,
14
10
  "moduleResolution": "node",
@@ -18,6 +14,7 @@
18
14
  "noImplicitAny": true,
19
15
  "strictNullChecks": true,
20
16
  "suppressImplicitAnyIndexErrors": true,
17
+ "sourceMap": true,
21
18
  "allowSyntheticDefaultImports": true,
22
19
  "allowJs": true,
23
20
  "skipLibCheck": true,
@@ -27,11 +24,6 @@
27
24
  "resolveJsonModule": true,
28
25
  "isolatedModules": true
29
26
  },
30
- "include": [
31
- "src"
32
- ],
33
- "exclude": [
34
- "node_modules",
35
- "dist"
36
- ]
27
+ "include": ["src"],
28
+ "exclude": ["node_modules", "dist"]
37
29
  }