@aglyn/plugins-commerce 1.0.0-beta.284 → 1.0.0-beta.287

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 (420) hide show
  1. package/README.md +1 -1
  2. package/package.json +13 -13
  3. package/src/lib/components/cart.js +25 -12
  4. package/src/lib/components/cart.js.map +1 -1
  5. package/src/lib/components/commerce-console-page.js +70 -13
  6. package/src/lib/components/commerce-console-page.js.map +1 -1
  7. package/src/lib/components/console/order-detail-dialog.component.js +2 -1
  8. package/src/lib/components/console/order-detail-dialog.component.js.map +1 -1
  9. package/src/lib/components/console/payment-methods-card.component.js +1 -1
  10. package/src/lib/components/console/payment-methods-card.component.js.map +1 -1
  11. package/src/lib/components/console/pos/pos-cart-panel.component.d.ts +5 -0
  12. package/src/lib/components/console/pos/pos-cart-panel.component.js +18 -12
  13. package/src/lib/components/console/pos/pos-cart-panel.component.js.map +1 -1
  14. package/src/lib/components/console/pos/pos-hardware-api.d.ts +76 -5
  15. package/src/lib/components/console/pos/pos-hardware-api.js +53 -11
  16. package/src/lib/components/console/pos/pos-hardware-api.js.map +1 -1
  17. package/src/lib/components/console/pos/pos-hardware-buyer.component.d.ts +18 -0
  18. package/src/lib/components/console/pos/pos-hardware-buyer.component.js +629 -0
  19. package/src/lib/components/console/pos/pos-hardware-buyer.component.js.map +1 -0
  20. package/src/lib/components/console/pos/pos-hardware-sale-api.d.ts +162 -0
  21. package/src/lib/components/console/pos/pos-hardware-sale-api.js +122 -0
  22. package/src/lib/components/console/pos/pos-hardware-sale-api.js.map +1 -0
  23. package/src/lib/components/console/pos/pos-hardware-sale-terms.component.d.ts +39 -0
  24. package/src/lib/components/console/pos/pos-hardware-sale-terms.component.js +251 -0
  25. package/src/lib/components/console/pos/pos-hardware-sale-terms.component.js.map +1 -0
  26. package/src/lib/components/console/pos/use-pos-display.js +50 -0
  27. package/src/lib/components/console/pos/use-pos-display.js.map +1 -1
  28. package/src/lib/components/console/pos-cellular-control.component.d.ts +41 -0
  29. package/src/lib/components/console/pos-cellular-control.component.js +211 -0
  30. package/src/lib/components/console/pos-cellular-control.component.js.map +1 -0
  31. package/src/lib/components/console/pos-devices-card.component.d.ts +9 -1
  32. package/src/lib/components/console/pos-devices-card.component.js +47 -15
  33. package/src/lib/components/console/pos-devices-card.component.js.map +1 -1
  34. package/src/lib/components/console/pos-display/pos-display-api.d.ts +6 -0
  35. package/src/lib/components/console/pos-display/pos-display-api.js +8 -1
  36. package/src/lib/components/console/pos-display/pos-display-api.js.map +1 -1
  37. package/src/lib/components/console/pos-display-page.component.d.ts +13 -0
  38. package/src/lib/components/console/pos-display-page.component.js +44 -2
  39. package/src/lib/components/console/pos-display-page.component.js.map +1 -1
  40. package/src/lib/components/console/pos-hardware-card.component.d.ts +12 -4
  41. package/src/lib/components/console/pos-hardware-card.component.js +157 -36
  42. package/src/lib/components/console/pos-hardware-card.component.js.map +1 -1
  43. package/src/lib/components/console/pos-hardware-orders-staff-page.component.js +360 -80
  44. package/src/lib/components/console/pos-hardware-orders-staff-page.component.js.map +1 -1
  45. package/src/lib/components/console/pos-hardware-terms-page.component.d.ts +34 -0
  46. package/src/lib/components/console/pos-hardware-terms-page.component.js +257 -0
  47. package/src/lib/components/console/pos-hardware-terms-page.component.js.map +1 -0
  48. package/src/lib/components/console/pos-hardware-terms-sign-page.component.d.ts +27 -0
  49. package/src/lib/components/console/pos-hardware-terms-sign-page.component.js +104 -0
  50. package/src/lib/components/console/pos-hardware-terms-sign-page.component.js.map +1 -0
  51. package/src/lib/components/console/pos-hardware-waiting-card.component.d.ts +24 -0
  52. package/src/lib/components/console/pos-hardware-waiting-card.component.js +205 -0
  53. package/src/lib/components/console/pos-hardware-waiting-card.component.js.map +1 -0
  54. package/src/lib/components/console/pos-ops/pos-check-in-dialog.component.js +297 -201
  55. package/src/lib/components/console/pos-ops/pos-check-in-dialog.component.js.map +1 -1
  56. package/src/lib/components/console/pos-ops/pos-check-ins-card.component.d.ts +3 -0
  57. package/src/lib/components/console/pos-ops/pos-check-ins-card.component.js +260 -92
  58. package/src/lib/components/console/pos-ops/pos-check-ins-card.component.js.map +1 -1
  59. package/src/lib/components/console/pos-ops/pos-operations-bar.component.d.ts +9 -0
  60. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js +15 -6
  61. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js.map +1 -1
  62. package/src/lib/components/console/pos-ops/pos-rain-check-dialog.component.d.ts +25 -0
  63. package/src/lib/components/console/pos-ops/pos-rain-check-dialog.component.js +136 -0
  64. package/src/lib/components/console/pos-ops/pos-rain-check-dialog.component.js.map +1 -0
  65. package/src/lib/components/console/pos-ops/pos-shift-panel.component.d.ts +6 -0
  66. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js +48 -31
  67. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js.map +1 -1
  68. package/src/lib/components/console/pos-page.component.d.ts +1 -1
  69. package/src/lib/components/console/pos-page.component.js +63 -12
  70. package/src/lib/components/console/pos-page.component.js.map +1 -1
  71. package/src/lib/components/console/pos-reader-splash-setting.component.js +1 -1
  72. package/src/lib/components/console/pos-reader-splash-setting.component.js.map +1 -1
  73. package/src/lib/components/console/product-check-in-fields.component.d.ts +4 -2
  74. package/src/lib/components/console/product-check-in-fields.component.js +60 -14
  75. package/src/lib/components/console/product-check-in-fields.component.js.map +1 -1
  76. package/src/lib/components/console/product-editor-dialog.component.js +44 -1
  77. package/src/lib/components/console/product-editor-dialog.component.js.map +1 -1
  78. package/src/lib/components/console/product-hardware-sku-field.component.d.ts +19 -0
  79. package/src/lib/components/console/product-hardware-sku-field.component.js +92 -0
  80. package/src/lib/components/console/product-hardware-sku-field.component.js.map +1 -0
  81. package/src/lib/components/console/product-kiosk-offer-field.component.d.ts +22 -0
  82. package/src/lib/components/console/product-kiosk-offer-field.component.js +94 -0
  83. package/src/lib/components/console/product-kiosk-offer-field.component.js.map +1 -0
  84. package/src/lib/components/console/product-register-fields.component.d.ts +4 -0
  85. package/src/lib/components/console/product-register-fields.component.js +31 -2
  86. package/src/lib/components/console/product-register-fields.component.js.map +1 -1
  87. package/src/lib/components/console/products-hub-card.component.js +11 -2
  88. package/src/lib/components/console/products-hub-card.component.js.map +1 -1
  89. package/src/lib/components/console/register-hardware-card.component.d.ts +11 -0
  90. package/src/lib/components/console/register-hardware-card.component.js +56 -27
  91. package/src/lib/components/console/register-hardware-card.component.js.map +1 -1
  92. package/src/lib/components/console/reservation-guests-dialog.component.d.ts +28 -0
  93. package/src/lib/components/console/reservation-guests-dialog.component.js +189 -0
  94. package/src/lib/components/console/reservation-guests-dialog.component.js.map +1 -0
  95. package/src/lib/components/console/reservations-card.component.d.ts +9 -0
  96. package/src/lib/components/console/reservations-card.component.js +158 -23
  97. package/src/lib/components/console/reservations-card.component.js.map +1 -1
  98. package/src/lib/components/console/shippingeasy-card.component.js +1 -1
  99. package/src/lib/components/console/shippingeasy-card.component.js.map +1 -1
  100. package/src/lib/components/console/shipstation-card.component.d.ts +1 -1
  101. package/src/lib/components/console/shipstation-card.component.js +3 -3
  102. package/src/lib/components/console/shipstation-card.component.js.map +1 -1
  103. package/src/lib/components/product-detail.d.ts +4 -0
  104. package/src/lib/components/product-detail.js +40 -5
  105. package/src/lib/components/product-detail.js.map +1 -1
  106. package/src/lib/components/product-reviews.js +28 -11
  107. package/src/lib/components/product-reviews.js.map +1 -1
  108. package/src/lib/components/reservation-widget.js +28 -5
  109. package/src/lib/components/reservation-widget.js.map +1 -1
  110. package/src/lib/components/use-day-picker.d.ts +25 -0
  111. package/src/lib/components/use-day-picker.js +57 -0
  112. package/src/lib/components/use-day-picker.js.map +1 -0
  113. package/src/lib/constants/operator-alerts.d.ts +55 -0
  114. package/src/lib/constants/operator-alerts.js +156 -1
  115. package/src/lib/constants/operator-alerts.js.map +1 -1
  116. package/src/lib/declarations.console-server.js +54 -1
  117. package/src/lib/declarations.console-server.js.map +1 -1
  118. package/src/lib/declarations.d.ts +4 -2
  119. package/src/lib/declarations.js +11 -4
  120. package/src/lib/declarations.js.map +1 -1
  121. package/src/lib/declarations.server.js +9 -0
  122. package/src/lib/declarations.server.js.map +1 -1
  123. package/src/lib/model/commerce-cart.d.ts +9 -1
  124. package/src/lib/model/commerce-cart.js +4 -3
  125. package/src/lib/model/commerce-cart.js.map +1 -1
  126. package/src/lib/model/commerce-check-in-product.d.ts +26 -0
  127. package/src/lib/model/commerce-check-in-product.js +64 -2
  128. package/src/lib/model/commerce-check-in-product.js.map +1 -1
  129. package/src/lib/model/commerce-check-in-record.d.ts +127 -0
  130. package/src/lib/model/commerce-check-in-record.js +36 -0
  131. package/src/lib/model/commerce-check-in-record.js.map +1 -0
  132. package/src/lib/model/commerce-check-in.d.ts +91 -87
  133. package/src/lib/model/commerce-check-in.js +186 -62
  134. package/src/lib/model/commerce-check-in.js.map +1 -1
  135. package/src/lib/model/commerce-kiosk-offer.d.ts +31 -0
  136. package/src/lib/model/commerce-kiosk-offer.js +35 -0
  137. package/src/lib/model/commerce-kiosk-offer.js.map +1 -0
  138. package/src/lib/model/commerce-orders.d.ts +76 -0
  139. package/src/lib/model/commerce-orders.js +6 -0
  140. package/src/lib/model/commerce-orders.js.map +1 -1
  141. package/src/lib/model/commerce-pos-day-report.d.ts +54 -1
  142. package/src/lib/model/commerce-pos-day-report.js +39 -2
  143. package/src/lib/model/commerce-pos-day-report.js.map +1 -1
  144. package/src/lib/model/commerce-pos-offline.d.ts +1 -1
  145. package/src/lib/model/commerce-pos-offline.js +6 -1
  146. package/src/lib/model/commerce-pos-offline.js.map +1 -1
  147. package/src/lib/model/commerce-pos-ops.js +3 -2
  148. package/src/lib/model/commerce-pos-ops.js.map +1 -1
  149. package/src/lib/model/commerce-pos.d.ts +36 -3
  150. package/src/lib/model/commerce-pos.js +14 -6
  151. package/src/lib/model/commerce-pos.js.map +1 -1
  152. package/src/lib/model/commerce-receipt.js +3 -2
  153. package/src/lib/model/commerce-receipt.js.map +1 -1
  154. package/src/lib/model/commerce-reservations.d.ts +69 -4
  155. package/src/lib/model/commerce-reservations.js +57 -5
  156. package/src/lib/model/commerce-reservations.js.map +1 -1
  157. package/src/lib/model/commerce.d.ts +66 -0
  158. package/src/lib/model/commerce.js +15 -0
  159. package/src/lib/model/commerce.js.map +1 -1
  160. package/src/lib/model/order-list-fields.d.ts +11 -0
  161. package/src/lib/model/order-list-fields.js +17 -1
  162. package/src/lib/model/order-list-fields.js.map +1 -1
  163. package/src/lib/model/own-store-tax-summary.d.ts +152 -0
  164. package/src/lib/model/own-store-tax-summary.js +288 -0
  165. package/src/lib/model/own-store-tax-summary.js.map +1 -0
  166. package/src/lib/model/plugin-permissions.d.ts +67 -0
  167. package/src/lib/model/plugin-permissions.js +224 -7
  168. package/src/lib/model/plugin-permissions.js.map +1 -1
  169. package/src/lib/model/pos-cellular.d.ts +223 -0
  170. package/src/lib/model/pos-cellular.js +293 -0
  171. package/src/lib/model/pos-cellular.js.map +1 -0
  172. package/src/lib/model/pos-hardware-in-person.d.ts +98 -0
  173. package/src/lib/model/pos-hardware-in-person.js +224 -0
  174. package/src/lib/model/pos-hardware-in-person.js.map +1 -0
  175. package/src/lib/model/pos-hardware-tax-summary.d.ts +166 -0
  176. package/src/lib/model/pos-hardware-tax-summary.js +225 -0
  177. package/src/lib/model/pos-hardware-tax-summary.js.map +1 -0
  178. package/src/lib/model/pos-hardware-terms.d.ts +74 -0
  179. package/src/lib/model/pos-hardware-terms.js +115 -0
  180. package/src/lib/model/pos-hardware-terms.js.map +1 -0
  181. package/src/lib/model/pos-hardware.d.ts +349 -7
  182. package/src/lib/model/pos-hardware.js +291 -20
  183. package/src/lib/model/pos-hardware.js.map +1 -1
  184. package/src/lib/model/product-write.d.ts +10 -0
  185. package/src/lib/model/product-write.js +4 -2
  186. package/src/lib/model/product-write.js.map +1 -1
  187. package/src/lib/plugin.js +16 -0
  188. package/src/lib/plugin.js.map +1 -1
  189. package/src/lib/server/billing-webhook.js +25 -1
  190. package/src/lib/server/billing-webhook.js.map +1 -1
  191. package/src/lib/server/cancel-order.js +7 -5
  192. package/src/lib/server/cancel-order.js.map +1 -1
  193. package/src/lib/server/cart-checkout.js +20 -8
  194. package/src/lib/server/cart-checkout.js.map +1 -1
  195. package/src/lib/server/cart.js +29 -0
  196. package/src/lib/server/cart.js.map +1 -1
  197. package/src/lib/server/checkout.js +42 -13
  198. package/src/lib/server/checkout.js.map +1 -1
  199. package/src/lib/server/collection-membership.d.ts +4 -0
  200. package/src/lib/server/collection-membership.js +5 -10
  201. package/src/lib/server/collection-membership.js.map +1 -1
  202. package/src/lib/server/commerce-site-keys.d.ts +29 -0
  203. package/src/lib/server/commerce-site-keys.js +40 -0
  204. package/src/lib/server/commerce-site-keys.js.map +1 -0
  205. package/src/lib/server/draft-order.js +8 -5
  206. package/src/lib/server/draft-order.js.map +1 -1
  207. package/src/lib/server/fulfill-order.js +7 -5
  208. package/src/lib/server/fulfill-order.js.map +1 -1
  209. package/src/lib/server/gift-cards.js +8 -5
  210. package/src/lib/server/gift-cards.js.map +1 -1
  211. package/src/lib/server/local-fulfillment-status.js +9 -6
  212. package/src/lib/server/local-fulfillment-status.js.map +1 -1
  213. package/src/lib/server/member-post.js +6 -5
  214. package/src/lib/server/member-post.js.map +1 -1
  215. package/src/lib/server/membership-admin-password.d.ts +4 -2
  216. package/src/lib/server/membership-admin-password.js +10 -8
  217. package/src/lib/server/membership-admin-password.js.map +1 -1
  218. package/src/lib/server/membership-admin-remove.d.ts +7 -5
  219. package/src/lib/server/membership-admin-remove.js +9 -9
  220. package/src/lib/server/membership-admin-remove.js.map +1 -1
  221. package/src/lib/server/order-notifications.js +5 -2
  222. package/src/lib/server/order-notifications.js.map +1 -1
  223. package/src/lib/server/order-print.js +7 -5
  224. package/src/lib/server/order-print.js.map +1 -1
  225. package/src/lib/server/order-receipt-send.js +8 -5
  226. package/src/lib/server/order-receipt-send.js.map +1 -1
  227. package/src/lib/server/orders-shipping-prepare.js +9 -6
  228. package/src/lib/server/orders-shipping-prepare.js.map +1 -1
  229. package/src/lib/server/own-store-tax-return-source.d.ts +47 -0
  230. package/src/lib/server/own-store-tax-return-source.js +312 -0
  231. package/src/lib/server/own-store-tax-return-source.js.map +1 -0
  232. package/src/lib/server/payment-methods.js +13 -9
  233. package/src/lib/server/payment-methods.js.map +1 -1
  234. package/src/lib/server/pos-auth.d.ts +37 -6
  235. package/src/lib/server/pos-auth.js +40 -15
  236. package/src/lib/server/pos-auth.js.map +1 -1
  237. package/src/lib/server/pos-cellular-billing.d.ts +81 -0
  238. package/src/lib/server/pos-cellular-billing.js +711 -0
  239. package/src/lib/server/pos-cellular-billing.js.map +1 -0
  240. package/src/lib/server/pos-cellular-notify.d.ts +47 -0
  241. package/src/lib/server/pos-cellular-notify.js +150 -0
  242. package/src/lib/server/pos-cellular-notify.js.map +1 -0
  243. package/src/lib/server/pos-cellular.d.ts +88 -0
  244. package/src/lib/server/pos-cellular.js +339 -0
  245. package/src/lib/server/pos-cellular.js.map +1 -0
  246. package/src/lib/server/pos-check-in.d.ts +5 -1
  247. package/src/lib/server/pos-check-in.js +296 -28
  248. package/src/lib/server/pos-check-in.js.map +1 -1
  249. package/src/lib/server/pos-day-report.js +29 -3
  250. package/src/lib/server/pos-day-report.js.map +1 -1
  251. package/src/lib/server/pos-display.d.ts +16 -0
  252. package/src/lib/server/pos-display.js +129 -2
  253. package/src/lib/server/pos-display.js.map +1 -1
  254. package/src/lib/server/pos-hardware-admin.d.ts +10 -1
  255. package/src/lib/server/pos-hardware-admin.js +250 -84
  256. package/src/lib/server/pos-hardware-admin.js.map +1 -1
  257. package/src/lib/server/pos-hardware-attach.d.ts +105 -0
  258. package/src/lib/server/pos-hardware-attach.js +443 -0
  259. package/src/lib/server/pos-hardware-attach.js.map +1 -0
  260. package/src/lib/server/pos-hardware-buyer-lookup.d.ts +58 -0
  261. package/src/lib/server/pos-hardware-buyer-lookup.js +180 -0
  262. package/src/lib/server/pos-hardware-buyer-lookup.js.map +1 -0
  263. package/src/lib/server/pos-hardware-buyer-record.d.ts +29 -0
  264. package/src/lib/server/pos-hardware-buyer-record.js +86 -0
  265. package/src/lib/server/pos-hardware-buyer-record.js.map +1 -0
  266. package/src/lib/server/pos-hardware-cancel.d.ts +58 -0
  267. package/src/lib/server/pos-hardware-cancel.js +147 -0
  268. package/src/lib/server/pos-hardware-cancel.js.map +1 -0
  269. package/src/lib/server/pos-hardware-closure-notices.d.ts +27 -0
  270. package/src/lib/server/pos-hardware-closure-notices.js +85 -0
  271. package/src/lib/server/pos-hardware-closure-notices.js.map +1 -0
  272. package/src/lib/server/pos-hardware-closure.d.ts +60 -0
  273. package/src/lib/server/pos-hardware-closure.js +153 -0
  274. package/src/lib/server/pos-hardware-closure.js.map +1 -0
  275. package/src/lib/server/pos-hardware-in-person.d.ts +61 -0
  276. package/src/lib/server/pos-hardware-in-person.js +236 -0
  277. package/src/lib/server/pos-hardware-in-person.js.map +1 -0
  278. package/src/lib/server/pos-hardware-notify.d.ts +40 -2
  279. package/src/lib/server/pos-hardware-notify.js +195 -14
  280. package/src/lib/server/pos-hardware-notify.js.map +1 -1
  281. package/src/lib/server/pos-hardware-readers.d.ts +115 -0
  282. package/src/lib/server/pos-hardware-readers.js +430 -0
  283. package/src/lib/server/pos-hardware-readers.js.map +1 -0
  284. package/src/lib/server/pos-hardware-returns.d.ts +116 -0
  285. package/src/lib/server/pos-hardware-returns.js +502 -0
  286. package/src/lib/server/pos-hardware-returns.js.map +1 -0
  287. package/src/lib/server/pos-hardware-sale-fields.d.ts +28 -0
  288. package/src/lib/server/pos-hardware-sale-fields.js +44 -0
  289. package/src/lib/server/pos-hardware-sale-fields.js.map +1 -0
  290. package/src/lib/server/pos-hardware-sale.d.ts +54 -0
  291. package/src/lib/server/pos-hardware-sale.js +369 -0
  292. package/src/lib/server/pos-hardware-sale.js.map +1 -0
  293. package/src/lib/server/pos-hardware-tax-return-source.d.ts +99 -0
  294. package/src/lib/server/pos-hardware-tax-return-source.js +462 -0
  295. package/src/lib/server/pos-hardware-tax-return-source.js.map +1 -0
  296. package/src/lib/server/pos-hardware-terms.d.ts +64 -0
  297. package/src/lib/server/pos-hardware-terms.js +154 -0
  298. package/src/lib/server/pos-hardware-terms.js.map +1 -0
  299. package/src/lib/server/pos-hardware-user-eraser.d.ts +3 -0
  300. package/src/lib/server/pos-hardware-user-eraser.js +31 -7
  301. package/src/lib/server/pos-hardware-user-eraser.js.map +1 -1
  302. package/src/lib/server/pos-hardware-webhook.d.ts +5 -0
  303. package/src/lib/server/pos-hardware-webhook.js +51 -6
  304. package/src/lib/server/pos-hardware-webhook.js.map +1 -1
  305. package/src/lib/server/pos-hardware.d.ts +74 -1
  306. package/src/lib/server/pos-hardware.js +175 -10
  307. package/src/lib/server/pos-hardware.js.map +1 -1
  308. package/src/lib/server/pos-kiosk.d.ts +2 -0
  309. package/src/lib/server/pos-kiosk.js +17 -12
  310. package/src/lib/server/pos-kiosk.js.map +1 -1
  311. package/src/lib/server/pos-offline-card-order.d.ts +64 -0
  312. package/src/lib/server/pos-offline-card-order.js +102 -0
  313. package/src/lib/server/pos-offline-card-order.js.map +1 -0
  314. package/src/lib/server/pos-offline-card-reconcile.d.ts +67 -1
  315. package/src/lib/server/pos-offline-card-reconcile.js +215 -18
  316. package/src/lib/server/pos-offline-card-reconcile.js.map +1 -1
  317. package/src/lib/server/pos-offline-sync.d.ts +39 -0
  318. package/src/lib/server/pos-offline-sync.js +190 -55
  319. package/src/lib/server/pos-offline-sync.js.map +1 -1
  320. package/src/lib/server/pos-ops-gate.d.ts +15 -4
  321. package/src/lib/server/pos-ops-gate.js +42 -9
  322. package/src/lib/server/pos-ops-gate.js.map +1 -1
  323. package/src/lib/server/pos-ops-routes.js +24 -0
  324. package/src/lib/server/pos-ops-routes.js.map +1 -1
  325. package/src/lib/server/pos-order-refund-ids.d.ts +28 -0
  326. package/src/lib/server/pos-order-refund-ids.js +31 -0
  327. package/src/lib/server/pos-order-refund-ids.js.map +1 -0
  328. package/src/lib/server/pos-order.js +52 -49
  329. package/src/lib/server/pos-order.js.map +1 -1
  330. package/src/lib/server/pos-payment.js +1 -1
  331. package/src/lib/server/pos-payment.js.map +1 -1
  332. package/src/lib/server/pos-reader-splash-admin.js +30 -32
  333. package/src/lib/server/pos-reader-splash-admin.js.map +1 -1
  334. package/src/lib/server/pos-reader-splash-images-route.d.ts +17 -0
  335. package/src/lib/server/pos-reader-splash-images-route.js +113 -0
  336. package/src/lib/server/pos-reader-splash-images-route.js.map +1 -0
  337. package/src/lib/server/pos-reader-splash-images.d.ts +51 -0
  338. package/src/lib/server/pos-reader-splash-images.js +123 -0
  339. package/src/lib/server/pos-reader-splash-images.js.map +1 -0
  340. package/src/lib/server/pos-reader-splash.d.ts +68 -1
  341. package/src/lib/server/pos-reader-splash.js +182 -11
  342. package/src/lib/server/pos-reader-splash.js.map +1 -1
  343. package/src/lib/server/pos-readers.d.ts +29 -0
  344. package/src/lib/server/pos-readers.js +134 -35
  345. package/src/lib/server/pos-readers.js.map +1 -1
  346. package/src/lib/server/pos-return.d.ts +10 -0
  347. package/src/lib/server/pos-return.js +26 -1
  348. package/src/lib/server/pos-return.js.map +1 -1
  349. package/src/lib/server/pos-sale.js +6 -1
  350. package/src/lib/server/pos-sale.js.map +1 -1
  351. package/src/lib/server/pos-shift.js +11 -0
  352. package/src/lib/server/pos-shift.js.map +1 -1
  353. package/src/lib/server/pos-staff-pin.js +25 -20
  354. package/src/lib/server/pos-staff-pin.js.map +1 -1
  355. package/src/lib/server/pos-terminal.d.ts +14 -4
  356. package/src/lib/server/pos-terminal.js +34 -38
  357. package/src/lib/server/pos-terminal.js.map +1 -1
  358. package/src/lib/server/printers.d.ts +7 -3
  359. package/src/lib/server/printers.js +18 -12
  360. package/src/lib/server/printers.js.map +1 -1
  361. package/src/lib/server/product-drafts.d.ts +11 -1
  362. package/src/lib/server/product-drafts.js +12 -8
  363. package/src/lib/server/product-drafts.js.map +1 -1
  364. package/src/lib/server/product.d.ts +15 -1
  365. package/src/lib/server/product.js +16 -3
  366. package/src/lib/server/product.js.map +1 -1
  367. package/src/lib/server/products-write.d.ts +26 -2
  368. package/src/lib/server/products-write.js +19 -7
  369. package/src/lib/server/products-write.js.map +1 -1
  370. package/src/lib/server/refund.js +34 -11
  371. package/src/lib/server/refund.js.map +1 -1
  372. package/src/lib/server/reservation-availability-query.d.ts +8 -0
  373. package/src/lib/server/reservation-availability-query.js +11 -1
  374. package/src/lib/server/reservation-availability-query.js.map +1 -1
  375. package/src/lib/server/reservation-availability.d.ts +1 -1
  376. package/src/lib/server/reservation-availability.js +7 -2
  377. package/src/lib/server/reservation-availability.js.map +1 -1
  378. package/src/lib/server/reservation-guests.d.ts +32 -0
  379. package/src/lib/server/reservation-guests.js +285 -0
  380. package/src/lib/server/reservation-guests.js.map +1 -0
  381. package/src/lib/server/reservation-walk-in.d.ts +11 -1
  382. package/src/lib/server/reservation-walk-in.js +56 -12
  383. package/src/lib/server/reservation-walk-in.js.map +1 -1
  384. package/src/lib/server/reserve.js +18 -5
  385. package/src/lib/server/reserve.js.map +1 -1
  386. package/src/lib/server/returns.js +9 -6
  387. package/src/lib/server/returns.js.map +1 -1
  388. package/src/lib/server/reviews.d.ts +22 -2
  389. package/src/lib/server/reviews.js +88 -20
  390. package/src/lib/server/reviews.js.map +1 -1
  391. package/src/lib/server/shipping-connectors.js +10 -11
  392. package/src/lib/server/shipping-connectors.js.map +1 -1
  393. package/src/lib/server/site-page-resolver.js +20 -3
  394. package/src/lib/server/site-page-resolver.js.map +1 -1
  395. package/src/lib/server/store-day.d.ts +33 -0
  396. package/src/lib/server/store-day.js +46 -0
  397. package/src/lib/server/store-day.js.map +1 -0
  398. package/src/lib/server/store-setup-ai-writer.d.ts +2 -1
  399. package/src/lib/server/store-setup-ai-writer.js +5 -6
  400. package/src/lib/server/store-setup-ai-writer.js.map +1 -1
  401. package/src/lib/server/storefront-tax.d.ts +13 -0
  402. package/src/lib/server/storefront-tax.js +8 -1
  403. package/src/lib/server/storefront-tax.js.map +1 -1
  404. package/src/lib/server/tax-return-source.d.ts +32 -3
  405. package/src/lib/server/tax-return-source.js +99 -20
  406. package/src/lib/server/tax-return-source.js.map +1 -1
  407. package/src/lib/server.js +100 -2
  408. package/src/lib/server.js.map +1 -1
  409. package/src/lib/testing/fake-firestore.js +58 -16
  410. package/src/lib/testing/fake-firestore.js.map +1 -1
  411. package/src/lib/testing/pos-ops-memory-firestore.js +18 -4
  412. package/src/lib/testing/pos-ops-memory-firestore.js.map +1 -1
  413. package/src/lib/testing/site-register-permissions.d.ts +29 -0
  414. package/src/lib/testing/site-register-permissions.js +38 -0
  415. package/src/lib/testing/site-register-permissions.js.map +1 -0
  416. package/src/lib/transfer/tracking.server.js +8 -5
  417. package/src/lib/transfer/tracking.server.js.map +1 -1
  418. package/src/lib/utils/add-to-cart.d.ts +2 -0
  419. package/src/lib/utils/add-to-cart.js +6 -3
  420. package/src/lib/utils/add-to-cart.js.map +1 -1
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */ 'use client';
17
17
  import { _ as _extends } from "@swc/helpers/_/_extends";
18
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
19
19
  import { pluginDocsHelp } from "@aglyn/aglyn";
20
20
  import { resolveStaffRoleGate } from "@aglyn/aglyn/app-utils/staff-role-gate";
21
21
  import { CardDisplay, useConfirmationContext } from "@aglyn/shared-ui-jsx";
@@ -24,7 +24,7 @@ import { ListPagination } from "@aglyn/shared-ui-jsx/components/list-pagination.
24
24
  import { ListTable } from "@aglyn/shared-ui-jsx/components/list-table.component";
25
25
  import { useSnackbar } from "@aglyn/shared-ui-snackstack";
26
26
  import { useUser } from "@aglyn/tenant-feature-instance";
27
- import { Alert, Button, Chip, Dialog, DialogActions, DialogContent, DialogTitle, Link, MenuItem, Stack, TextField, Typography } from "@mui/material";
27
+ import { Alert, Button, Chip, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, FormControlLabel, FormHelperText, Link, MenuItem, Stack, Switch, TextField, Typography } from "@mui/material";
28
28
  import { useCallback, useEffect, useMemo, useState } from "react";
29
29
  import { formatPosHardwareCents, nextPosHardwareStatus, POS_HARDWARE_ORDER_STATUSES, POS_HARDWARE_STAFF_STATUS_LABELS, posHardwareRefundable, posHardwareSku } from "../../model/pos-hardware.js";
30
30
  import { POS_HARDWARE_STATUS_COLOR } from "./pos-hardware-card.component.js";
@@ -34,7 +34,14 @@ const WRITE_ROLES = [
34
34
  'billing'
35
35
  ];
36
36
  const NOT_REFUNDABLE = 'Only an order that has not shipped can be canceled or refunded.';
37
+ /** Dollars typed by staff as whole cents; empty is 0, anything else unreadable is null. */ function centsOf(text) {
38
+ const trimmed = text.trim().replace(/^\$/, '');
39
+ if (!trimmed) return 0;
40
+ if (!/^\d+(\.\d{1,2})?$/.test(trimmed)) return null;
41
+ return Math.round(Number(trimmed) * 100);
42
+ }
37
43
  const CLOSED = 'A canceled or refunded order can no longer change.';
44
+ const REFUNDED = 'This order is refunded in full.';
38
45
  /** A control disabled with its reason, or passed through when there is none. */ function Guarded(props) {
39
46
  var _props_reason;
40
47
  return /*#__PURE__*/ _jsx(BlockedControl, {
@@ -44,6 +51,24 @@ const CLOSED = 'A canceled or refunded order can no longer change.';
44
51
  });
45
52
  }
46
53
  const when = (ms)=>ms ? new Date(ms).toLocaleString() : '—';
54
+ /** How a register sale was paid, as staff read it (AGL-4038). */ const TENDER_LABELS = {
55
+ cash: 'cash',
56
+ card_present: 'card on a reader',
57
+ card_keyed: 'typed card',
58
+ card_link: 'payment link',
59
+ gift_card: 'gift card',
60
+ folio: 'room charge',
61
+ credit: 'store credit'
62
+ };
63
+ /** Whose an in-person order is, in a line (AGL-4038). */ function attachedTo(order) {
64
+ var _attachment_orgId;
65
+ const attachment = order.attachment;
66
+ if (!attachment) return '—';
67
+ if (attachment.state === 'attached') return `Workspace ${(_attachment_orgId = attachment.orgId) != null ? _attachment_orgId : order.orgId}`;
68
+ if (attachment.uid) return 'To attach: has an account, no workspace yet';
69
+ if (attachment.email) return `To attach: invited ${attachment.email}`;
70
+ return 'To attach';
71
+ }
47
72
  function shipTo(order) {
48
73
  var _order_shipping, _order_shipping1;
49
74
  const address = (_order_shipping = order.shipping) == null ? void 0 : _order_shipping.address;
@@ -75,8 +100,8 @@ function shipTo(order) {
75
100
  * as it ships and is delivered. Canceling or refunding returns the whole
76
101
  * payment and is offered only before the order ships.
77
102
  */ export function PosHardwareOrdersStaffPage(props) {
78
- var _ref, _ref1;
79
- var _open_shipping, _open_shipping1;
103
+ var _ref, _ref1, _open_returnRequest_reason, _ref2, _centsOf, _returning_restockingFee, _returning_restockingFee1, _returning_restockingFee2, _returning_restockingFee3, _ref3, _returning_restockingFee4;
104
+ var _open_returnRequest, _open_shipping, _open_posSale, _open_posSale1, _open_posSale2, _open_paidTo, _open_paidTo1, _open_attachment, _open_shipping1, _open_shipping2, _open_attachment1, _open_attachment2;
80
105
  const { staffRole = null, staffPaths } = props;
81
106
  const { data: user } = useUser();
82
107
  const { enqueueSnackbar } = useSnackbar();
@@ -101,6 +126,11 @@ function shipTo(order) {
101
126
  number: '',
102
127
  url: ''
103
128
  });
129
+ /** The note for declining a return request, while its dialog is open. */ const [declineNote, setDeclineNote] = useState(null);
130
+ /**
131
+ * The cancel or refund being confirmed, and whether to email the buyer
132
+ * about it (AGL-4038): on unless staff turn it off.
133
+ */ const [returning, setReturning] = useState(null);
104
134
  const gate = resolveStaffRoleGate(staffRole, WRITE_ROLES);
105
135
  const uid = (_ref = user == null ? void 0 : user.uid) != null ? _ref : '';
106
136
  const load = useCallback(async (targetPage = 0, after = null)=>{
@@ -149,12 +179,12 @@ function shipTo(order) {
149
179
  setBusy(true);
150
180
  try {
151
181
  var _cursors_page;
152
- const { order } = await staffHardwareOrderAction(user, _extends({}, body, {
182
+ const answer = await staffHardwareOrderAction(user, _extends({}, body, {
153
183
  orgId: open.orgId,
154
184
  orderId: open.id
155
185
  }));
156
- setOpen(order);
157
- enqueueSnackbar(done, {
186
+ setOpen(answer.order);
187
+ enqueueSnackbar(typeof done === 'string' ? done : done(answer), {
158
188
  variant: 'success',
159
189
  persist: false
160
190
  });
@@ -185,19 +215,50 @@ function shipTo(order) {
185
215
  status: advance
186
216
  } : {}), advance ? `Marked ${POS_HARDWARE_STAFF_STATUS_LABELS[advance].toLowerCase()}` : 'Saved');
187
217
  };
188
- const returnMoney = async (action)=>{
218
+ const forgetBuyer = async ()=>{
189
219
  if (!open) return;
190
220
  const confirmed = await confirm({
191
- title: action === 'cancel' ? 'Cancel and refund this order?' : 'Refund this order?',
192
- description: `${formatPosHardwareCents(open.totalCents)} goes back to the card it was paid with. ` + 'Cancel the order in the Stripe Dashboard too if it was already placed there.',
193
- confirmationText: action === 'cancel' ? 'Cancel and refund' : 'Refund',
221
+ title: "Remove the buyer's details?",
222
+ description: 'The address and account are taken off this order for good. The order, its amounts and where it was taxed stay.',
223
+ confirmationText: 'Remove',
194
224
  confirmationButtonProps: {
195
225
  color: 'error'
196
226
  }
197
227
  }).then(()=>true).catch(()=>false);
198
228
  if (confirmed) await act({
199
- action
200
- }, action === 'cancel' ? 'Canceled and refunded' : 'Refunded');
229
+ action: 'forget-buyer'
230
+ }, "Buyer's details removed");
231
+ };
232
+ const declineReturn = async ()=>{
233
+ if (!open || declineNote === null) return;
234
+ await act({
235
+ action: 'decline-return',
236
+ note: declineNote.trim()
237
+ }, 'Return request declined');
238
+ setDeclineNote(null);
239
+ };
240
+ /** Opens the confirm for a cancel or a refund, emailing the buyer by default. */ const returnMoney = (action)=>{
241
+ if (open) setReturning(_extends({
242
+ action,
243
+ notifyBuyer: true
244
+ }, action === 'refund-return' ? {
245
+ restockingFee: ''
246
+ } : {}));
247
+ };
248
+ const confirmReturn = async ()=>{
249
+ var _returning_restockingFee;
250
+ if (!open || !returning) return;
251
+ const { action, notifyBuyer } = returning;
252
+ const verb = action === 'cancel' && open.source !== 'in_person' ? 'Canceled and refunded' : 'Refunded';
253
+ const restockingFeeCents = action === 'refund-return' ? centsOf((_returning_restockingFee = returning.restockingFee) != null ? _returning_restockingFee : '') : undefined;
254
+ if (restockingFeeCents === null) return;
255
+ await act(_extends({
256
+ action,
257
+ notifyBuyer
258
+ }, restockingFeeCents ? {
259
+ restockingFeeCents
260
+ } : {}), ({ buyerEmail })=>buyerEmail === 'sent' ? `${verb}. The buyer was emailed.` : buyerEmail === 'already' ? `${verb}. The buyer had already been emailed.` : buyerEmail === 'skipped' ? `${verb}. The buyer has no address to email.` : buyerEmail === 'failed' ? `${verb}. The email to the buyer did not send; press again to retry it.` : `${verb}. The buyer was not emailed.`);
261
+ setReturning(null);
201
262
  };
202
263
  const columns = useMemo(()=>[
203
264
  {
@@ -205,6 +266,15 @@ function shipTo(order) {
205
266
  headerName: 'Order',
206
267
  minWidth: 110
207
268
  },
269
+ {
270
+ field: 'source',
271
+ headerName: 'Sold',
272
+ minWidth: 110,
273
+ valueGetter: (_value, row)=>{
274
+ var _row_attachment;
275
+ return row.source === 'in_person' ? ((_row_attachment = row.attachment) == null ? void 0 : _row_attachment.state) === 'pending' ? 'In person · to attach' : 'In person' : 'Online';
276
+ }
277
+ },
208
278
  {
209
279
  field: 'createdAtMs',
210
280
  headerName: 'Placed',
@@ -281,9 +351,21 @@ function shipTo(order) {
281
351
  ], [
282
352
  staffPaths
283
353
  ]);
354
+ const inPerson = (open == null ? void 0 : open.source) === 'in_person';
284
355
  const next = open ? nextPosHardwareStatus(open.status) : null;
285
356
  const closed = open ? open.status === 'canceled' || open.status === 'refunded' : true;
286
- const refundable = open ? posHardwareRefundable(open.status) && !open.refundPending : false;
357
+ // A reader sold in person refunds what is left of it, its own way, until
358
+ // it is refunded in full (AGL-4038).
359
+ const refundable = open ? inPerson ? open.status !== 'refunded' && open.status !== 'canceled' && open.refundedCents < open.totalCents : posHardwareRefundable(open.status) && !open.refundPending : false;
360
+ const returnRequested = (open == null ? void 0 : (_open_returnRequest = open.returnRequest) == null ? void 0 : _open_returnRequest.state) === 'requested';
361
+ // An online order sent back after its return was requested (AGL-4038):
362
+ // refunded as a return, the items and their tax less any restocking fee.
363
+ const onlineReturn = Boolean(open) && !inPerson && returnRequested && [
364
+ 'shipped',
365
+ 'delivered',
366
+ 'registered'
367
+ ].includes(String(open == null ? void 0 : open.status));
368
+ const returnCents = open ? Math.max(0, open.totalCents - ((_ref1 = (_open_shipping = open.shipping) == null ? void 0 : _open_shipping.cents) != null ? _ref1 : 0)) : 0;
287
369
  const writeReason = gate.blocked ? gate.reason : undefined;
288
370
  return /*#__PURE__*/ _jsxs(CardDisplay, {
289
371
  header: 'Hardware orders',
@@ -303,6 +385,14 @@ function shipTo(order) {
303
385
  value: "",
304
386
  children: 'All'
305
387
  }),
388
+ /*#__PURE__*/ _jsx(MenuItem, {
389
+ value: "to-attach",
390
+ children: 'Sold in person, to attach'
391
+ }),
392
+ /*#__PURE__*/ _jsx(MenuItem, {
393
+ value: "returns",
394
+ children: 'Return requested'
395
+ }),
306
396
  POS_HARDWARE_ORDER_STATUSES.map((value)=>/*#__PURE__*/ _jsx(MenuItem, {
307
397
  value: value,
308
398
  children: POS_HARDWARE_STAFF_STATUS_LABELS[value]
@@ -323,7 +413,7 @@ function shipTo(order) {
323
413
  orders && orders.length === 0 && !error ? /*#__PURE__*/ _jsx(Typography, {
324
414
  variant: "body2",
325
415
  color: "text.secondary",
326
- children: status ? `No orders are ${POS_HARDWARE_STAFF_STATUS_LABELS[status].toLowerCase()}.` : 'No hardware orders yet.'
416
+ children: status === 'to-attach' ? 'Every card reader sold in person is attached to a workspace.' : status === 'returns' ? 'No return requests are waiting.' : status ? `No orders are ${POS_HARDWARE_STAFF_STATUS_LABELS[status].toLowerCase()}.` : 'No hardware orders yet.'
327
417
  }) : /*#__PURE__*/ _jsx(ListTable, {
328
418
  rows: (orders != null ? orders : []).map((order)=>_extends({}, order, {
329
419
  $id: order.id
@@ -361,7 +451,7 @@ function shipTo(order) {
361
451
  gap: 2
362
452
  },
363
453
  children: [
364
- /*#__PURE__*/ _jsxs(Stack, {
454
+ inPerson ? /*#__PURE__*/ _jsxs(Stack, {
365
455
  spacing: 0.5,
366
456
  sx: {
367
457
  mt: 1
@@ -369,92 +459,154 @@ function shipTo(order) {
369
459
  children: [
370
460
  /*#__PURE__*/ _jsx(Typography, {
371
461
  variant: "subtitle2",
372
- children: 'Order in the Stripe hardware shop'
462
+ children: 'Sold in person'
373
463
  }),
374
- open.lines.map((line)=>{
375
- var _ref;
376
- var _posHardwareSku;
377
- return /*#__PURE__*/ _jsx(Typography, {
464
+ open.lines.map((line)=>/*#__PURE__*/ _jsx(Typography, {
378
465
  variant: "body2",
379
- children: `${line.quantity} × ${(_ref = (_posHardwareSku = posHardwareSku(line.sku)) == null ? void 0 : _posHardwareSku.stripeProductName) != null ? _ref : line.name}`
380
- }, line.sku);
381
- }),
466
+ children: `${line.quantity} × ${line.name}`
467
+ }, line.sku)),
382
468
  /*#__PURE__*/ _jsx(Typography, {
383
469
  variant: "body2",
384
470
  color: "text.secondary",
385
- children: `${(_ref1 = (_open_shipping = open.shipping) == null ? void 0 : _open_shipping.label) != null ? _ref1 : 'Shipping'} · paid ${formatPosHardwareCents(open.totalCents)}`
386
- })
387
- ]
388
- }),
389
- /*#__PURE__*/ _jsxs(Stack, {
390
- spacing: 0.5,
391
- children: [
392
- /*#__PURE__*/ _jsx(Typography, {
393
- variant: "subtitle2",
394
- children: 'Ship to'
471
+ children: [
472
+ ((_open_posSale = open.posSale) == null ? void 0 : _open_posSale.number) ? `Register sale #${open.posSale.number}` : 'Register sale',
473
+ ((_open_posSale1 = open.posSale) == null ? void 0 : _open_posSale1.kiosk) ? 'at the kiosk' : null,
474
+ ((_open_posSale2 = open.posSale) == null ? void 0 : _open_posSale2.offline) ? 'rung offline' : null,
475
+ `paid ${formatPosHardwareCents(open.totalCents)}`,
476
+ ((_open_paidTo = open.paidTo) == null ? void 0 : _open_paidTo.tenders.length) ? `by ${open.paidTo.tenders.map((tender)=>{
477
+ var _TENDER_LABELS_tender;
478
+ return (_TENDER_LABELS_tender = TENDER_LABELS[tender]) != null ? _TENDER_LABELS_tender : tender;
479
+ }).join(' and ')}` : null
480
+ ].filter(Boolean).join(' · ')
395
481
  }),
396
482
  /*#__PURE__*/ _jsx(Typography, {
397
483
  variant: "body2",
398
- sx: {
399
- whiteSpace: 'pre-line'
400
- },
401
- children: shipTo(open)
484
+ color: "text.secondary",
485
+ children: `Into the store's own account${((_open_paidTo1 = open.paidTo) == null ? void 0 : _open_paidTo1.stripeAccountId) ? ` (${open.paidTo.stripeAccountId})` : ''}, not the platform's.`
402
486
  }),
403
487
  /*#__PURE__*/ _jsx(Typography, {
488
+ variant: "body2",
489
+ children: attachedTo(open)
490
+ }),
491
+ ((_open_attachment = open.attachment) == null ? void 0 : _open_attachment.state) === 'pending' ? /*#__PURE__*/ _jsx(Typography, {
404
492
  variant: "body2",
405
493
  color: "text.secondary",
406
- children: [
407
- (_open_shipping1 = open.shipping) == null ? void 0 : _open_shipping1.phone,
408
- open.contactEmail
409
- ].filter(Boolean).join(' · ')
410
- })
494
+ children: 'Attach it from the selling store’s register, under To attach, with the buyer’s email, name or workspace.'
495
+ }) : null,
496
+ open.refundedCents ? /*#__PURE__*/ _jsx(Typography, {
497
+ variant: "body2",
498
+ color: "text.secondary",
499
+ children: `Refunded ${formatPosHardwareCents(open.refundedCents)}${open.refunds.some((refund)=>refund.via === 'register') ? ', partly as a return at the register' : ''}`
500
+ }) : null,
501
+ open.returnRequest ? /*#__PURE__*/ _jsx(Alert, {
502
+ severity: returnRequested ? 'warning' : 'info',
503
+ children: returnRequested ? `Return requested ${when(open.returnRequest.requestedAtMs)}: “${(_open_returnRequest_reason = open.returnRequest.reason) != null ? _open_returnRequest_reason : ''}”. Refund it, or decline it with a note.` : `Return request ${open.returnRequest.state}${open.returnRequest.note ? `: ${open.returnRequest.note}` : ''}.`
504
+ }) : null,
505
+ open.contactEmail ? /*#__PURE__*/ _jsx(Typography, {
506
+ variant: "body2",
507
+ color: "text.secondary",
508
+ children: open.contactEmail
509
+ }) : null
411
510
  ]
412
- }),
413
- /*#__PURE__*/ _jsx(TextField, {
414
- label: "Stripe hardware order id",
415
- value: form.stripeHardwareOrderId,
416
- disabled: closed,
417
- onChange: (event)=>setForm(_extends({}, form, {
418
- stripeHardwareOrderId: event.target.value
419
- }))
420
- }),
421
- /*#__PURE__*/ _jsxs(Stack, {
422
- direction: {
423
- xs: 'column',
424
- sm: 'row'
425
- },
426
- spacing: 2,
511
+ }) : null,
512
+ inPerson ? null : /*#__PURE__*/ _jsxs(_Fragment, {
427
513
  children: [
514
+ /*#__PURE__*/ _jsxs(Stack, {
515
+ spacing: 0.5,
516
+ sx: {
517
+ mt: 1
518
+ },
519
+ children: [
520
+ /*#__PURE__*/ _jsx(Typography, {
521
+ variant: "subtitle2",
522
+ children: 'Order in the Stripe hardware shop'
523
+ }),
524
+ open.lines.map((line)=>{
525
+ var _ref;
526
+ var _posHardwareSku;
527
+ return /*#__PURE__*/ _jsx(Typography, {
528
+ variant: "body2",
529
+ children: `${line.quantity} × ${(_ref = (_posHardwareSku = posHardwareSku(line.sku)) == null ? void 0 : _posHardwareSku.stripeProductName) != null ? _ref : line.name}`
530
+ }, line.sku);
531
+ }),
532
+ /*#__PURE__*/ _jsx(Typography, {
533
+ variant: "body2",
534
+ color: "text.secondary",
535
+ children: `${(_ref2 = (_open_shipping1 = open.shipping) == null ? void 0 : _open_shipping1.label) != null ? _ref2 : 'Shipping'} · paid ${formatPosHardwareCents(open.totalCents)}`
536
+ })
537
+ ]
538
+ }),
539
+ /*#__PURE__*/ _jsxs(Stack, {
540
+ spacing: 0.5,
541
+ children: [
542
+ /*#__PURE__*/ _jsx(Typography, {
543
+ variant: "subtitle2",
544
+ children: 'Ship to'
545
+ }),
546
+ /*#__PURE__*/ _jsx(Typography, {
547
+ variant: "body2",
548
+ sx: {
549
+ whiteSpace: 'pre-line'
550
+ },
551
+ children: shipTo(open)
552
+ }),
553
+ /*#__PURE__*/ _jsx(Typography, {
554
+ variant: "body2",
555
+ color: "text.secondary",
556
+ children: [
557
+ (_open_shipping2 = open.shipping) == null ? void 0 : _open_shipping2.phone,
558
+ open.contactEmail
559
+ ].filter(Boolean).join(' · ')
560
+ })
561
+ ]
562
+ }),
428
563
  /*#__PURE__*/ _jsx(TextField, {
429
- label: "Carrier",
430
- value: form.carrier,
564
+ label: "Stripe hardware order id",
565
+ value: form.stripeHardwareOrderId,
431
566
  disabled: closed,
432
567
  onChange: (event)=>setForm(_extends({}, form, {
433
- carrier: event.target.value
568
+ stripeHardwareOrderId: event.target.value
434
569
  }))
435
570
  }),
571
+ /*#__PURE__*/ _jsxs(Stack, {
572
+ direction: {
573
+ xs: 'column',
574
+ sm: 'row'
575
+ },
576
+ spacing: 2,
577
+ children: [
578
+ /*#__PURE__*/ _jsx(TextField, {
579
+ label: "Carrier",
580
+ value: form.carrier,
581
+ disabled: closed,
582
+ onChange: (event)=>setForm(_extends({}, form, {
583
+ carrier: event.target.value
584
+ }))
585
+ }),
586
+ /*#__PURE__*/ _jsx(TextField, {
587
+ label: "Tracking number",
588
+ value: form.number,
589
+ disabled: closed,
590
+ onChange: (event)=>setForm(_extends({}, form, {
591
+ number: event.target.value
592
+ })),
593
+ sx: {
594
+ flex: 1
595
+ }
596
+ })
597
+ ]
598
+ }),
436
599
  /*#__PURE__*/ _jsx(TextField, {
437
- label: "Tracking number",
438
- value: form.number,
600
+ label: "Tracking link (optional)",
601
+ helperText: "Built from the carrier when left empty",
602
+ value: form.url,
439
603
  disabled: closed,
440
604
  onChange: (event)=>setForm(_extends({}, form, {
441
- number: event.target.value
442
- })),
443
- sx: {
444
- flex: 1
445
- }
605
+ url: event.target.value
606
+ }))
446
607
  })
447
608
  ]
448
609
  }),
449
- /*#__PURE__*/ _jsx(TextField, {
450
- label: "Tracking link (optional)",
451
- helperText: "Built from the carrier when left empty",
452
- value: form.url,
453
- disabled: closed,
454
- onChange: (event)=>setForm(_extends({}, form, {
455
- url: event.target.value
456
- }))
457
- }),
458
610
  open.refundPending ? /*#__PURE__*/ _jsx(Alert, {
459
611
  severity: "warning",
460
612
  children: 'A refund is in progress.'
@@ -467,7 +619,24 @@ function shipTo(order) {
467
619
  gap: 1
468
620
  },
469
621
  children: [
470
- /*#__PURE__*/ _jsx(Guarded, {
622
+ returnRequested ? /*#__PURE__*/ _jsx(Guarded, {
623
+ reason: writeReason,
624
+ children: /*#__PURE__*/ _jsx(Button, {
625
+ disabled: busy,
626
+ onClick: ()=>setDeclineNote(''),
627
+ children: 'Decline return'
628
+ })
629
+ }) : null,
630
+ inPerson && ((open == null ? void 0 : open.contactEmail) || (open == null ? void 0 : (_open_attachment1 = open.attachment) == null ? void 0 : _open_attachment1.email) || (open == null ? void 0 : (_open_attachment2 = open.attachment) == null ? void 0 : _open_attachment2.uid)) ? /*#__PURE__*/ _jsx(Guarded, {
631
+ reason: writeReason,
632
+ children: /*#__PURE__*/ _jsx(Button, {
633
+ color: "error",
634
+ disabled: busy,
635
+ onClick: ()=>void forgetBuyer(),
636
+ children: "Remove buyer's details"
637
+ })
638
+ }) : null,
639
+ inPerson ? null : /*#__PURE__*/ _jsx(Guarded, {
471
640
  reason: writeReason != null ? writeReason : refundable ? undefined : NOT_REFUNDABLE,
472
641
  children: /*#__PURE__*/ _jsx(Button, {
473
642
  color: "error",
@@ -476,8 +645,16 @@ function shipTo(order) {
476
645
  children: 'Cancel and refund'
477
646
  })
478
647
  }),
479
- /*#__PURE__*/ _jsx(Guarded, {
480
- reason: writeReason != null ? writeReason : refundable ? undefined : NOT_REFUNDABLE,
648
+ onlineReturn ? /*#__PURE__*/ _jsx(Guarded, {
649
+ reason: writeReason != null ? writeReason : (open == null ? void 0 : open.refundPending) ? 'A refund is in progress.' : undefined,
650
+ children: /*#__PURE__*/ _jsx(Button, {
651
+ color: "error",
652
+ disabled: busy,
653
+ onClick: ()=>void returnMoney('refund-return'),
654
+ children: 'Refund return'
655
+ })
656
+ }) : /*#__PURE__*/ _jsx(Guarded, {
657
+ reason: writeReason != null ? writeReason : refundable ? undefined : inPerson ? REFUNDED : NOT_REFUNDABLE,
481
658
  children: /*#__PURE__*/ _jsx(Button, {
482
659
  color: "error",
483
660
  disabled: busy,
@@ -509,6 +686,109 @@ function shipTo(order) {
509
686
  ]
510
687
  })
511
688
  ]
689
+ }),
690
+ /*#__PURE__*/ _jsxs(Dialog, {
691
+ open: returning !== null,
692
+ onClose: ()=>setReturning(null),
693
+ maxWidth: "xs",
694
+ fullWidth: true,
695
+ children: [
696
+ /*#__PURE__*/ _jsx(DialogTitle, {
697
+ children: (returning == null ? void 0 : returning.action) === 'cancel' && (open == null ? void 0 : open.source) !== 'in_person' ? 'Cancel and refund this order?' : 'Refund this order?'
698
+ }),
699
+ /*#__PURE__*/ _jsx(DialogContent, {
700
+ children: /*#__PURE__*/ _jsxs(Stack, {
701
+ spacing: 2,
702
+ children: [
703
+ /*#__PURE__*/ _jsx(DialogContentText, {
704
+ children: (returning == null ? void 0 : returning.action) === 'refund-return' && open ? `${formatPosHardwareCents(Math.max(0, returnCents - ((_centsOf = centsOf((_returning_restockingFee = returning.restockingFee) != null ? _returning_restockingFee : '')) != null ? _centsOf : 0)))} goes back to the card it was paid with: the items and their tax. The original shipping is not refunded, and a restocking fee Stripe charged for the return comes off.` : (open == null ? void 0 : open.source) === 'in_person' ? `${formatPosHardwareCents(open.totalCents - open.refundedCents)} goes back to the card the register sale was paid with, from the selling store's own account. Under the hardware terms of sale the buyer sends the reader back at their cost.` : open ? `${formatPosHardwareCents(open.totalCents)} goes back to the card it was paid with. Cancel the order in the Stripe Dashboard too if it was already placed there.` : ''
705
+ }),
706
+ (returning == null ? void 0 : returning.action) === 'refund-return' ? /*#__PURE__*/ _jsx(TextField, {
707
+ label: "Restocking fee Stripe charged (optional)",
708
+ value: (_returning_restockingFee1 = returning.restockingFee) != null ? _returning_restockingFee1 : '',
709
+ onChange: (event)=>setReturning((current)=>current ? _extends({}, current, {
710
+ restockingFee: event.target.value
711
+ }) : current),
712
+ error: centsOf((_returning_restockingFee2 = returning.restockingFee) != null ? _returning_restockingFee2 : '') === null,
713
+ helperText: centsOf((_returning_restockingFee3 = returning.restockingFee) != null ? _returning_restockingFee3 : '') === null ? 'Enter an amount like 15.00, or leave it empty.' : 'In dollars. Leave it empty when Stripe charged none.',
714
+ slotProps: {
715
+ htmlInput: {
716
+ inputMode: 'decimal'
717
+ }
718
+ }
719
+ }) : null,
720
+ /*#__PURE__*/ _jsxs(Stack, {
721
+ children: [
722
+ /*#__PURE__*/ _jsx(FormControlLabel, {
723
+ control: /*#__PURE__*/ _jsx(Switch, {
724
+ checked: (_ref3 = returning == null ? void 0 : returning.notifyBuyer) != null ? _ref3 : true,
725
+ onChange: (event)=>setReturning((current)=>current ? _extends({}, current, {
726
+ notifyBuyer: event.target.checked
727
+ }) : current)
728
+ }),
729
+ label: "Email the buyer"
730
+ }),
731
+ /*#__PURE__*/ _jsx(FormHelperText, {
732
+ children: (returning == null ? void 0 : returning.action) === 'refund-return' ? 'Sends the buyer the return refund email with what came back and what did not.' : (open == null ? void 0 : open.source) === 'in_person' ? 'Sends the buyer the refund email with what came back to their card.' : 'Sends the buyer the canceled-and-refunded email. They get it once, even if their workspace or account later closes.'
733
+ })
734
+ ]
735
+ })
736
+ ]
737
+ })
738
+ }),
739
+ /*#__PURE__*/ _jsxs(DialogActions, {
740
+ children: [
741
+ /*#__PURE__*/ _jsx(Button, {
742
+ onClick: ()=>setReturning(null),
743
+ children: 'Keep the order'
744
+ }),
745
+ /*#__PURE__*/ _jsx(Button, {
746
+ color: "error",
747
+ disabled: busy || (returning == null ? void 0 : returning.action) === 'refund-return' && centsOf((_returning_restockingFee4 = returning.restockingFee) != null ? _returning_restockingFee4 : '') === null,
748
+ onClick: ()=>void confirmReturn(),
749
+ children: (returning == null ? void 0 : returning.action) === 'cancel' && (open == null ? void 0 : open.source) !== 'in_person' ? 'Cancel and refund' : (returning == null ? void 0 : returning.action) === 'refund-return' ? 'Refund return' : 'Refund'
750
+ })
751
+ ]
752
+ })
753
+ ]
754
+ }),
755
+ /*#__PURE__*/ _jsxs(Dialog, {
756
+ open: declineNote !== null,
757
+ onClose: ()=>setDeclineNote(null),
758
+ maxWidth: "xs",
759
+ fullWidth: true,
760
+ children: [
761
+ /*#__PURE__*/ _jsx(DialogTitle, {
762
+ children: 'Decline this return?'
763
+ }),
764
+ /*#__PURE__*/ _jsx(DialogContent, {
765
+ children: /*#__PURE__*/ _jsx(TextField, {
766
+ label: "Note for the buyer (optional)",
767
+ value: declineNote != null ? declineNote : '',
768
+ onChange: (event)=>setDeclineNote(event.target.value),
769
+ multiline: true,
770
+ minRows: 2,
771
+ fullWidth: true,
772
+ sx: {
773
+ mt: 1
774
+ }
775
+ })
776
+ }),
777
+ /*#__PURE__*/ _jsxs(DialogActions, {
778
+ children: [
779
+ /*#__PURE__*/ _jsx(Button, {
780
+ onClick: ()=>setDeclineNote(null),
781
+ children: 'Keep it open'
782
+ }),
783
+ /*#__PURE__*/ _jsx(Button, {
784
+ color: "error",
785
+ disabled: busy,
786
+ onClick: ()=>void declineReturn(),
787
+ children: 'Decline'
788
+ })
789
+ ]
790
+ })
791
+ ]
512
792
  })
513
793
  ]
514
794
  });