@aglyn/plugins-commerce 1.0.0-beta.230 → 1.0.0-beta.232

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 (609) hide show
  1. package/package.json +13 -13
  2. package/src/index.d.ts +0 -1
  3. package/src/index.js +0 -1
  4. package/src/index.js.map +1 -1
  5. package/src/lib/barcode/barcode-decode.d.ts +71 -0
  6. package/src/lib/barcode/barcode-decode.js +498 -0
  7. package/src/lib/barcode/barcode-decode.js.map +1 -0
  8. package/src/lib/barcode/barcode-encode.d.ts +44 -0
  9. package/src/lib/barcode/barcode-encode.js +138 -0
  10. package/src/lib/barcode/barcode-encode.js.map +1 -0
  11. package/src/lib/barcode/barcode-scanner.component.d.ts +23 -0
  12. package/src/lib/barcode/barcode-scanner.component.js +260 -0
  13. package/src/lib/barcode/barcode-scanner.component.js.map +1 -0
  14. package/src/lib/barcode/scan-button.component.d.ts +10 -0
  15. package/src/lib/barcode/scan-button.component.js +62 -0
  16. package/src/lib/barcode/scan-button.component.js.map +1 -0
  17. package/src/lib/barcode/scanner-wedge.d.ts +35 -0
  18. package/src/lib/barcode/scanner-wedge.js +108 -0
  19. package/src/lib/barcode/scanner-wedge.js.map +1 -0
  20. package/src/lib/components/account.js +10 -1
  21. package/src/lib/components/account.js.map +1 -1
  22. package/src/lib/components/cart-extras.d.ts +45 -0
  23. package/src/lib/components/cart-extras.js +127 -0
  24. package/src/lib/components/cart-extras.js.map +1 -0
  25. package/src/lib/components/cart.js +82 -15
  26. package/src/lib/components/cart.js.map +1 -1
  27. package/src/lib/components/checkout-return-notice.d.ts +26 -0
  28. package/src/lib/components/checkout-return-notice.js +48 -0
  29. package/src/lib/components/checkout-return-notice.js.map +1 -0
  30. package/src/lib/components/commerce-console-page.js +124 -0
  31. package/src/lib/components/commerce-console-page.js.map +1 -1
  32. package/src/lib/components/commerce-console-sections.d.ts +1 -1
  33. package/src/lib/components/commerce-console-sections.js +4 -0
  34. package/src/lib/components/commerce-console-sections.js.map +1 -1
  35. package/src/lib/components/console/bulk-fulfill.d.ts +44 -0
  36. package/src/lib/components/console/bulk-fulfill.js +84 -0
  37. package/src/lib/components/console/bulk-fulfill.js.map +1 -0
  38. package/src/lib/components/console/catalog-organization-card.component.js +1 -0
  39. package/src/lib/components/console/catalog-organization-card.component.js.map +1 -1
  40. package/src/lib/components/console/customer-notifications-card.component.d.ts +19 -0
  41. package/src/lib/components/console/customer-notifications-card.component.js +149 -0
  42. package/src/lib/components/console/customer-notifications-card.component.js.map +1 -0
  43. package/src/lib/components/console/host-orders-card.component.js +88 -6
  44. package/src/lib/components/console/host-orders-card.component.js.map +1 -1
  45. package/src/lib/components/console/locations-card.component.js +164 -57
  46. package/src/lib/components/console/locations-card.component.js.map +1 -1
  47. package/src/lib/components/console/order-detail-dialog.component.js +209 -61
  48. package/src/lib/components/console/order-detail-dialog.component.js.map +1 -1
  49. package/src/lib/components/console/order-fulfillment-panel.component.d.ts +48 -0
  50. package/src/lib/components/console/order-fulfillment-panel.component.js +542 -0
  51. package/src/lib/components/console/order-fulfillment-panel.component.js.map +1 -0
  52. package/src/lib/components/console/order-invoice.component.d.ts +33 -0
  53. package/src/lib/components/console/order-invoice.component.js +81 -0
  54. package/src/lib/components/console/order-invoice.component.js.map +1 -0
  55. package/src/lib/components/console/order-receipt-resend.component.d.ts +21 -0
  56. package/src/lib/components/console/order-receipt-resend.component.js +203 -0
  57. package/src/lib/components/console/order-receipt-resend.component.js.map +1 -0
  58. package/src/lib/components/console/order-returns.component.d.ts +36 -0
  59. package/src/lib/components/console/order-returns.component.js +142 -0
  60. package/src/lib/components/console/order-returns.component.js.map +1 -0
  61. package/src/lib/components/console/order-shipping-actions.component.d.ts +54 -0
  62. package/src/lib/components/console/order-shipping-actions.component.js +149 -0
  63. package/src/lib/components/console/order-shipping-actions.component.js.map +1 -0
  64. package/src/lib/components/console/order-webhooks-card.component.d.ts +50 -0
  65. package/src/lib/components/console/order-webhooks-card.component.js +623 -0
  66. package/src/lib/components/console/order-webhooks-card.component.js.map +1 -0
  67. package/src/lib/components/console/order-zones.d.ts +155 -0
  68. package/src/lib/components/console/order-zones.js +40 -0
  69. package/src/lib/components/console/order-zones.js.map +1 -0
  70. package/src/lib/components/console/payment-methods-card.component.d.ts +67 -0
  71. package/src/lib/components/console/payment-methods-card.component.js +395 -0
  72. package/src/lib/components/console/payment-methods-card.component.js.map +1 -0
  73. package/src/lib/components/console/pos/pos-api.d.ts +124 -0
  74. package/src/lib/components/console/pos/pos-api.js +101 -0
  75. package/src/lib/components/console/pos/pos-api.js.map +1 -0
  76. package/src/lib/components/console/pos/pos-cart-panel.component.d.ts +36 -0
  77. package/src/lib/components/console/pos/pos-cart-panel.component.js +160 -0
  78. package/src/lib/components/console/pos/pos-cart-panel.component.js.map +1 -0
  79. package/src/lib/components/console/pos/pos-item-dialog.component.d.ts +39 -0
  80. package/src/lib/components/console/pos/pos-item-dialog.component.js +352 -0
  81. package/src/lib/components/console/pos/pos-item-dialog.component.js.map +1 -0
  82. package/src/lib/components/console/pos/pos-product-grid.component.d.ts +47 -0
  83. package/src/lib/components/console/pos/pos-product-grid.component.js +272 -0
  84. package/src/lib/components/console/pos/pos-product-grid.component.js.map +1 -0
  85. package/src/lib/components/console/pos/pos-receipt-panel.component.d.ts +27 -0
  86. package/src/lib/components/console/pos/pos-receipt-panel.component.js +282 -0
  87. package/src/lib/components/console/pos/pos-receipt-panel.component.js.map +1 -0
  88. package/src/lib/components/console/pos/pos-tender-dialogs.component.d.ts +53 -0
  89. package/src/lib/components/console/pos/pos-tender-dialogs.component.js +445 -0
  90. package/src/lib/components/console/pos/pos-tender-dialogs.component.js.map +1 -0
  91. package/src/lib/components/console/pos/pos-tender-panel.component.d.ts +31 -0
  92. package/src/lib/components/console/pos/pos-tender-panel.component.js +640 -0
  93. package/src/lib/components/console/pos/pos-tender-panel.component.js.map +1 -0
  94. package/src/lib/components/console/pos/use-pos-display.d.ts +43 -0
  95. package/src/lib/components/console/pos/use-pos-display.js +161 -0
  96. package/src/lib/components/console/pos/use-pos-display.js.map +1 -0
  97. package/src/lib/components/console/pos-devices-card.component.d.ts +14 -0
  98. package/src/lib/components/console/pos-devices-card.component.js +546 -0
  99. package/src/lib/components/console/pos-devices-card.component.js.map +1 -0
  100. package/src/lib/components/console/pos-display/brand-screen.d.ts +33 -0
  101. package/src/lib/components/console/pos-display/brand-screen.js +85 -0
  102. package/src/lib/components/console/pos-display/brand-screen.js.map +1 -0
  103. package/src/lib/components/console/pos-display/cart-screen.d.ts +29 -0
  104. package/src/lib/components/console/pos-display/cart-screen.js +166 -0
  105. package/src/lib/components/console/pos-display/cart-screen.js.map +1 -0
  106. package/src/lib/components/console/pos-display/pairing-screen.d.ts +24 -0
  107. package/src/lib/components/console/pos-display/pairing-screen.js +127 -0
  108. package/src/lib/components/console/pos-display/pairing-screen.js.map +1 -0
  109. package/src/lib/components/console/pos-display/pos-display-api.d.ts +90 -0
  110. package/src/lib/components/console/pos-display/pos-display-api.js +140 -0
  111. package/src/lib/components/console/pos-display/pos-display-api.js.map +1 -0
  112. package/src/lib/components/console/pos-display/receipt-screen.d.ts +35 -0
  113. package/src/lib/components/console/pos-display/receipt-screen.js +200 -0
  114. package/src/lib/components/console/pos-display/receipt-screen.js.map +1 -0
  115. package/src/lib/components/console/pos-display/tip-screen.d.ts +36 -0
  116. package/src/lib/components/console/pos-display/tip-screen.js +211 -0
  117. package/src/lib/components/console/pos-display/tip-screen.js.map +1 -0
  118. package/src/lib/components/console/pos-display-page.component.d.ts +16 -0
  119. package/src/lib/components/console/pos-display-page.component.js +407 -0
  120. package/src/lib/components/console/pos-display-page.component.js.map +1 -0
  121. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.d.ts +40 -0
  122. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js +289 -0
  123. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js.map +1 -0
  124. package/src/lib/components/console/pos-ops/pos-last-receipt.component.d.ts +34 -0
  125. package/src/lib/components/console/pos-ops/pos-last-receipt.component.js +61 -0
  126. package/src/lib/components/console/pos-ops/pos-last-receipt.component.js.map +1 -0
  127. package/src/lib/components/console/pos-ops/pos-operations-bar.component.d.ts +38 -0
  128. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js +129 -0
  129. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js.map +1 -0
  130. package/src/lib/components/console/pos-ops/pos-ops-api.d.ts +37 -0
  131. package/src/lib/components/console/pos-ops/pos-ops-api.js +60 -0
  132. package/src/lib/components/console/pos-ops/pos-ops-api.js.map +1 -0
  133. package/src/lib/components/console/pos-ops/pos-pin-pad.component.d.ts +48 -0
  134. package/src/lib/components/console/pos-ops/pos-pin-pad.component.js +220 -0
  135. package/src/lib/components/console/pos-ops/pos-pin-pad.component.js.map +1 -0
  136. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.d.ts +63 -0
  137. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js +186 -0
  138. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js.map +1 -0
  139. package/src/lib/components/console/pos-ops/pos-receipt.d.ts +39 -0
  140. package/src/lib/components/console/pos-ops/pos-receipt.js +182 -0
  141. package/src/lib/components/console/pos-ops/pos-receipt.js.map +1 -0
  142. package/src/lib/components/console/pos-ops/pos-return-dialog.component.d.ts +40 -0
  143. package/src/lib/components/console/pos-ops/pos-return-dialog.component.js +465 -0
  144. package/src/lib/components/console/pos-ops/pos-return-dialog.component.js.map +1 -0
  145. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.d.ts +29 -0
  146. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js +253 -0
  147. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js.map +1 -0
  148. package/src/lib/components/console/pos-ops/pos-shift-panel.component.d.ts +34 -0
  149. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js +494 -0
  150. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js.map +1 -0
  151. package/src/lib/components/console/pos-ops/pos-shift-report.component.d.ts +37 -0
  152. package/src/lib/components/console/pos-ops/pos-shift-report.component.js +102 -0
  153. package/src/lib/components/console/pos-ops/pos-shift-report.component.js.map +1 -0
  154. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.d.ts +30 -0
  155. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js +277 -0
  156. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js.map +1 -0
  157. package/src/lib/components/console/pos-ops/register-ops.d.ts +28 -0
  158. package/src/lib/components/console/pos-ops/register-ops.js +28 -0
  159. package/src/lib/components/console/pos-ops/register-ops.js.map +1 -0
  160. package/src/lib/components/console/pos-ops/use-pos-cashier.d.ts +46 -0
  161. package/src/lib/components/console/pos-ops/use-pos-cashier.js +128 -0
  162. package/src/lib/components/console/pos-ops/use-pos-cashier.js.map +1 -0
  163. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.d.ts +36 -0
  164. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js +64 -0
  165. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js.map +1 -0
  166. package/src/lib/components/console/pos-page.component.d.ts +13 -5
  167. package/src/lib/components/console/pos-page.component.js +756 -654
  168. package/src/lib/components/console/pos-page.component.js.map +1 -1
  169. package/src/lib/components/console/pos-zones.d.ts +23 -0
  170. package/src/lib/components/console/pos-zones.js +31 -0
  171. package/src/lib/components/console/pos-zones.js.map +1 -0
  172. package/src/lib/components/console/product-editor-dialog.component.js +61 -71
  173. package/src/lib/components/console/product-editor-dialog.component.js.map +1 -1
  174. package/src/lib/components/console/product-labels-dialog.component.d.ts +13 -0
  175. package/src/lib/components/console/product-labels-dialog.component.js +197 -0
  176. package/src/lib/components/console/product-labels-dialog.component.js.map +1 -0
  177. package/src/lib/components/console/product-register-fields.component.d.ts +19 -0
  178. package/src/lib/components/console/product-register-fields.component.js +241 -0
  179. package/src/lib/components/console/product-register-fields.component.js.map +1 -0
  180. package/src/lib/components/console/product-zones.d.ts +44 -0
  181. package/src/lib/components/console/product-zones.js.map +1 -1
  182. package/src/lib/components/console/products-hub-card.component.js +23 -20
  183. package/src/lib/components/console/products-hub-card.component.js.map +1 -1
  184. package/src/lib/components/console/register-hardware-card.component.d.ts +33 -0
  185. package/src/lib/components/console/register-hardware-card.component.js +826 -0
  186. package/src/lib/components/console/register-hardware-card.component.js.map +1 -0
  187. package/src/lib/components/console/registers-card.component.js +24 -5
  188. package/src/lib/components/console/registers-card.component.js.map +1 -1
  189. package/src/lib/components/console/return-actions.d.ts +38 -0
  190. package/src/lib/components/console/return-actions.js +76 -0
  191. package/src/lib/components/console/return-actions.js.map +1 -0
  192. package/src/lib/components/console/return-detail-dialog.component.d.ts +34 -0
  193. package/src/lib/components/console/return-detail-dialog.component.js +718 -0
  194. package/src/lib/components/console/return-detail-dialog.component.js.map +1 -0
  195. package/src/lib/components/console/return-settings-card.component.d.ts +34 -0
  196. package/src/lib/components/console/return-settings-card.component.js +195 -0
  197. package/src/lib/components/console/return-settings-card.component.js.map +1 -0
  198. package/src/lib/components/console/return-zones.d.ts +87 -0
  199. package/src/lib/components/console/return-zones.js +31 -0
  200. package/src/lib/components/console/return-zones.js.map +1 -0
  201. package/src/lib/components/console/returns-card.component.d.ts +45 -0
  202. package/src/lib/components/console/returns-card.component.js +159 -0
  203. package/src/lib/components/console/returns-card.component.js.map +1 -0
  204. package/src/lib/components/console/shipping-settings-card.component.js +161 -5
  205. package/src/lib/components/console/shipping-settings-card.component.js.map +1 -1
  206. package/src/lib/components/console/shippingeasy-card.component.d.ts +59 -0
  207. package/src/lib/components/console/shippingeasy-card.component.js +378 -0
  208. package/src/lib/components/console/shippingeasy-card.component.js.map +1 -0
  209. package/src/lib/components/console/shipstation-card.component.d.ts +35 -0
  210. package/src/lib/components/console/shipstation-card.component.js +345 -0
  211. package/src/lib/components/console/shipstation-card.component.js.map +1 -0
  212. package/src/lib/components/console/start-return-dialog.component.d.ts +40 -0
  213. package/src/lib/components/console/start-return-dialog.component.js +243 -0
  214. package/src/lib/components/console/start-return-dialog.component.js.map +1 -0
  215. package/src/lib/components/console/stock-movements-card.component.js +2 -1
  216. package/src/lib/components/console/stock-movements-card.component.js.map +1 -1
  217. package/src/lib/components/console/store-settings-card.component.js +2 -66
  218. package/src/lib/components/console/store-settings-card.component.js.map +1 -1
  219. package/src/lib/components/console/store-zones.d.ts +42 -0
  220. package/src/lib/components/console/store-zones.js +39 -0
  221. package/src/lib/components/console/store-zones.js.map +1 -0
  222. package/src/lib/components/console/storefront-tax-summary-card.component.js +1 -0
  223. package/src/lib/components/console/storefront-tax-summary-card.component.js.map +1 -1
  224. package/src/lib/components/order-status.d.ts +36 -0
  225. package/src/lib/components/order-status.js +502 -0
  226. package/src/lib/components/order-status.js.map +1 -0
  227. package/src/lib/components/product-detail.js +41 -2
  228. package/src/lib/components/product-detail.js.map +1 -1
  229. package/src/lib/components/return-request.d.ts +32 -0
  230. package/src/lib/components/return-request.js +576 -0
  231. package/src/lib/components/return-request.js.map +1 -0
  232. package/src/lib/components/storefront-payment-appearance.d.ts +32 -0
  233. package/src/lib/components/storefront-payment-appearance.js +114 -0
  234. package/src/lib/components/storefront-payment-appearance.js.map +1 -0
  235. package/src/lib/components/storefront-payment-element.d.ts +57 -1
  236. package/src/lib/components/storefront-payment-element.js +332 -33
  237. package/src/lib/components/storefront-payment-element.js.map +1 -1
  238. package/src/lib/constants/order-status.d.ts +22 -0
  239. package/src/lib/constants/order-status.js +22 -0
  240. package/src/lib/constants/order-status.js.map +1 -0
  241. package/src/lib/constants/return-request.d.ts +27 -0
  242. package/src/lib/constants/return-request.js +32 -0
  243. package/src/lib/constants/return-request.js.map +1 -0
  244. package/src/lib/constants/stock-movement-query.js +2 -1
  245. package/src/lib/constants/stock-movement-query.js.map +1 -1
  246. package/src/lib/declarations.console-server.js +9 -0
  247. package/src/lib/declarations.console-server.js.map +1 -1
  248. package/src/lib/declarations.server.d.ts +2 -1
  249. package/src/lib/declarations.server.js +68 -1
  250. package/src/lib/declarations.server.js.map +1 -1
  251. package/src/lib/model/buyer-notifications.d.ts +59 -0
  252. package/src/lib/model/buyer-notifications.js +97 -0
  253. package/src/lib/model/buyer-notifications.js.map +1 -0
  254. package/src/lib/model/commerce-orders.d.ts +171 -2
  255. package/src/lib/model/commerce-orders.js +26 -16
  256. package/src/lib/model/commerce-orders.js.map +1 -1
  257. package/src/lib/model/commerce-payment-methods.d.ts +146 -0
  258. package/src/lib/model/commerce-payment-methods.js +247 -0
  259. package/src/lib/model/commerce-payment-methods.js.map +1 -0
  260. package/src/lib/model/commerce-pos-ops.d.ts +437 -0
  261. package/src/lib/model/commerce-pos-ops.js +721 -0
  262. package/src/lib/model/commerce-pos-ops.js.map +1 -0
  263. package/src/lib/model/commerce-pos.d.ts +263 -0
  264. package/src/lib/model/commerce-pos.js +375 -0
  265. package/src/lib/model/commerce-pos.js.map +1 -0
  266. package/src/lib/model/commerce-printers.d.ts +211 -0
  267. package/src/lib/model/commerce-printers.js +181 -0
  268. package/src/lib/model/commerce-printers.js.map +1 -0
  269. package/src/lib/model/commerce-receipt.d.ts +97 -0
  270. package/src/lib/model/commerce-receipt.js +180 -0
  271. package/src/lib/model/commerce-receipt.js.map +1 -0
  272. package/src/lib/model/commerce-returns.d.ts +207 -0
  273. package/src/lib/model/commerce-returns.js +300 -0
  274. package/src/lib/model/commerce-returns.js.map +1 -0
  275. package/src/lib/model/commerce-shipping.d.ts +44 -1
  276. package/src/lib/model/commerce-shipping.js +53 -9
  277. package/src/lib/model/commerce-shipping.js.map +1 -1
  278. package/src/lib/model/commerce-tax-engine.d.ts +90 -0
  279. package/src/lib/model/commerce-tax-engine.js +129 -0
  280. package/src/lib/model/commerce-tax-engine.js.map +1 -0
  281. package/src/lib/model/commerce.d.ts +91 -2
  282. package/src/lib/model/commerce.js +89 -1
  283. package/src/lib/model/commerce.js.map +1 -1
  284. package/src/lib/model/index.d.ts +16 -0
  285. package/src/lib/model/index.js +16 -0
  286. package/src/lib/model/index.js.map +1 -1
  287. package/src/lib/model/order-events.d.ts +154 -0
  288. package/src/lib/model/order-events.js +153 -0
  289. package/src/lib/model/order-events.js.map +1 -0
  290. package/src/lib/model/order-fulfillment.d.ts +117 -0
  291. package/src/lib/model/order-fulfillment.js +217 -0
  292. package/src/lib/model/order-fulfillment.js.map +1 -0
  293. package/src/lib/model/order-history.d.ts +58 -0
  294. package/src/lib/model/order-history.js +22 -0
  295. package/src/lib/model/order-history.js.map +1 -0
  296. package/src/lib/model/order-list-fields.d.ts +9 -1
  297. package/src/lib/model/order-list-fields.js +7 -1
  298. package/src/lib/model/order-list-fields.js.map +1 -1
  299. package/src/lib/model/order-shipping-export.d.ts +91 -0
  300. package/src/lib/model/order-shipping-export.js +192 -0
  301. package/src/lib/model/order-shipping-export.js.map +1 -0
  302. package/src/lib/model/order-status-view.d.ts +103 -0
  303. package/src/lib/model/order-status-view.js +156 -0
  304. package/src/lib/model/order-status-view.js.map +1 -0
  305. package/src/lib/model/order-webhooks.d.ts +142 -0
  306. package/src/lib/model/order-webhooks.js +91 -0
  307. package/src/lib/model/order-webhooks.js.map +1 -0
  308. package/src/lib/model/product-channel.d.ts +56 -0
  309. package/src/lib/model/product-channel.js +86 -0
  310. package/src/lib/model/product-channel.js.map +1 -0
  311. package/src/lib/model/product-modifiers.d.ts +80 -0
  312. package/src/lib/model/product-modifiers.js +140 -0
  313. package/src/lib/model/product-modifiers.js.map +1 -0
  314. package/src/lib/model/product-write.d.ts +186 -0
  315. package/src/lib/model/product-write.js +116 -0
  316. package/src/lib/model/product-write.js.map +1 -0
  317. package/src/lib/model/shippingeasy.d.ts +94 -0
  318. package/src/lib/model/shippingeasy.js +267 -0
  319. package/src/lib/model/shippingeasy.js.map +1 -0
  320. package/src/lib/model/shipstation.d.ts +125 -0
  321. package/src/lib/model/shipstation.js +399 -0
  322. package/src/lib/model/shipstation.js.map +1 -0
  323. package/src/lib/model/smart-collection-reads.d.ts +32 -0
  324. package/src/lib/model/smart-collection-reads.js +63 -0
  325. package/src/lib/model/smart-collection-reads.js.map +1 -0
  326. package/src/lib/model/tracking-url.d.ts +74 -0
  327. package/src/lib/model/tracking-url.js +159 -0
  328. package/src/lib/model/tracking-url.js.map +1 -0
  329. package/src/lib/plugin-config.d.ts +13 -0
  330. package/src/lib/plugin-config.js +77 -5
  331. package/src/lib/plugin-config.js.map +1 -1
  332. package/src/lib/plugin.js +26 -0
  333. package/src/lib/plugin.js.map +1 -1
  334. package/src/lib/pos-ops-config.d.ts +39 -0
  335. package/src/lib/pos-ops-config.js +88 -0
  336. package/src/lib/pos-ops-config.js.map +1 -0
  337. package/src/lib/printing/print-document.d.ts +106 -0
  338. package/src/lib/printing/print-document.js +464 -0
  339. package/src/lib/printing/print-document.js.map +1 -0
  340. package/src/lib/printing/product-labels.d.ts +58 -0
  341. package/src/lib/printing/product-labels.js +116 -0
  342. package/src/lib/printing/product-labels.js.map +1 -0
  343. package/src/lib/printing/render-epson.d.ts +57 -0
  344. package/src/lib/printing/render-epson.js +135 -0
  345. package/src/lib/printing/render-epson.js.map +1 -0
  346. package/src/lib/printing/render-star.d.ts +45 -0
  347. package/src/lib/printing/render-star.js +100 -0
  348. package/src/lib/printing/render-star.js.map +1 -0
  349. package/src/lib/printing/render-text.d.ts +25 -0
  350. package/src/lib/printing/render-text.js +53 -0
  351. package/src/lib/printing/render-text.js.map +1 -0
  352. package/src/lib/server/api-v1/openapi.js +27 -4
  353. package/src/lib/server/api-v1/openapi.js.map +1 -1
  354. package/src/lib/server/api-v1/order-view.d.ts +67 -0
  355. package/src/lib/server/api-v1/order-view.js +120 -0
  356. package/src/lib/server/api-v1/order-view.js.map +1 -0
  357. package/src/lib/server/api-v1/orders-and-products.js +58 -65
  358. package/src/lib/server/api-v1/orders-and-products.js.map +1 -1
  359. package/src/lib/server/billing-webhook.js +135 -28
  360. package/src/lib/server/billing-webhook.js.map +1 -1
  361. package/src/lib/server/cancel-order.js +29 -0
  362. package/src/lib/server/cancel-order.js.map +1 -1
  363. package/src/lib/server/carrier-rates-availability.d.ts +26 -0
  364. package/src/lib/server/carrier-rates-availability.js +76 -0
  365. package/src/lib/server/carrier-rates-availability.js.map +1 -0
  366. package/src/lib/server/carrier-shipping.d.ts +84 -0
  367. package/src/lib/server/carrier-shipping.js +135 -0
  368. package/src/lib/server/carrier-shipping.js.map +1 -0
  369. package/src/lib/server/cart-checkout.d.ts +2 -0
  370. package/src/lib/server/cart-checkout.js +226 -22
  371. package/src/lib/server/cart-checkout.js.map +1 -1
  372. package/src/lib/server/channel-order-updates.d.ts +50 -0
  373. package/src/lib/server/channel-order-updates.js +290 -0
  374. package/src/lib/server/channel-order-updates.js.map +1 -0
  375. package/src/lib/server/channel-orders.d.ts +85 -0
  376. package/src/lib/server/channel-orders.js +543 -0
  377. package/src/lib/server/channel-orders.js.map +1 -0
  378. package/src/lib/server/checkout-extras.d.ts +64 -0
  379. package/src/lib/server/checkout-extras.js +157 -0
  380. package/src/lib/server/checkout-extras.js.map +1 -0
  381. package/src/lib/server/{feed.d.ts → checkout-status.d.ts} +2 -7
  382. package/src/lib/server/checkout-status.js +111 -0
  383. package/src/lib/server/checkout-status.js.map +1 -0
  384. package/src/lib/server/checkout.js +86 -9
  385. package/src/lib/server/checkout.js.map +1 -1
  386. package/src/lib/server/draft-order.js +34 -5
  387. package/src/lib/server/draft-order.js.map +1 -1
  388. package/src/lib/server/fulfill-order.d.ts +127 -10
  389. package/src/lib/server/fulfill-order.js +451 -49
  390. package/src/lib/server/fulfill-order.js.map +1 -1
  391. package/src/lib/server/legacy-feed.d.ts +28 -0
  392. package/src/lib/server/legacy-feed.js +52 -0
  393. package/src/lib/server/legacy-feed.js.map +1 -0
  394. package/src/lib/server/native-checkout.d.ts +34 -15
  395. package/src/lib/server/native-checkout.js +32 -17
  396. package/src/lib/server/native-checkout.js.map +1 -1
  397. package/src/lib/server/order-event-host-emit.d.ts +23 -0
  398. package/src/lib/server/order-event-host-emit.js +30 -0
  399. package/src/lib/server/order-event-host-emit.js.map +1 -0
  400. package/src/lib/server/order-event-triggers.d.ts +37 -0
  401. package/src/lib/server/order-event-triggers.js +119 -0
  402. package/src/lib/server/order-event-triggers.js.map +1 -0
  403. package/src/lib/server/order-events.d.ts +62 -0
  404. package/src/lib/server/order-events.js +109 -0
  405. package/src/lib/server/order-events.js.map +1 -0
  406. package/src/lib/server/order-history.d.ts +23 -0
  407. package/src/lib/server/order-history.js +65 -0
  408. package/src/lib/server/order-history.js.map +1 -0
  409. package/src/lib/server/order-notifications.d.ts +185 -0
  410. package/src/lib/server/order-notifications.js +567 -0
  411. package/src/lib/server/order-notifications.js.map +1 -0
  412. package/src/lib/server/order-receipt-send.d.ts +39 -0
  413. package/src/lib/server/order-receipt-send.js +151 -0
  414. package/src/lib/server/order-receipt-send.js.map +1 -0
  415. package/src/lib/server/order-status-token.d.ts +31 -0
  416. package/src/lib/server/order-status-token.js +75 -0
  417. package/src/lib/server/order-status-token.js.map +1 -0
  418. package/src/lib/server/order-status.d.ts +58 -0
  419. package/src/lib/server/order-status.js +141 -0
  420. package/src/lib/server/order-status.js.map +1 -0
  421. package/src/lib/server/order-webhooks.d.ts +108 -0
  422. package/src/lib/server/order-webhooks.js +622 -0
  423. package/src/lib/server/order-webhooks.js.map +1 -0
  424. package/src/lib/server/orders-shipping-prepare.d.ts +26 -0
  425. package/src/lib/server/orders-shipping-prepare.js +121 -0
  426. package/src/lib/server/orders-shipping-prepare.js.map +1 -0
  427. package/src/lib/server/payment-method-domains.d.ts +209 -0
  428. package/src/lib/server/payment-method-domains.js +444 -0
  429. package/src/lib/server/payment-method-domains.js.map +1 -0
  430. package/src/lib/server/payment-methods.d.ts +77 -0
  431. package/src/lib/server/payment-methods.js +284 -0
  432. package/src/lib/server/payment-methods.js.map +1 -0
  433. package/src/lib/server/pos-auth.d.ts +50 -0
  434. package/src/lib/server/pos-auth.js +121 -0
  435. package/src/lib/server/pos-auth.js.map +1 -0
  436. package/src/lib/server/pos-customer.d.ts +49 -0
  437. package/src/lib/server/pos-customer.js +257 -0
  438. package/src/lib/server/pos-customer.js.map +1 -0
  439. package/src/lib/server/pos-display.d.ts +57 -0
  440. package/src/lib/server/pos-display.js +419 -0
  441. package/src/lib/server/pos-display.js.map +1 -0
  442. package/src/lib/server/pos-fee-month.d.ts +34 -0
  443. package/src/lib/server/pos-fee-month.js +36 -0
  444. package/src/lib/server/pos-fee-month.js.map +1 -0
  445. package/src/lib/server/pos-ops-gate.d.ts +161 -0
  446. package/src/lib/server/pos-ops-gate.js +295 -0
  447. package/src/lib/server/pos-ops-gate.js.map +1 -0
  448. package/src/lib/server/pos-ops-routes.d.ts +22 -0
  449. package/src/lib/server/pos-ops-routes.js +36 -0
  450. package/src/lib/server/pos-ops-routes.js.map +1 -0
  451. package/src/lib/server/pos-order.d.ts +1 -18
  452. package/src/lib/server/pos-order.js +222 -42
  453. package/src/lib/server/pos-order.js.map +1 -1
  454. package/src/lib/server/pos-payment.d.ts +39 -0
  455. package/src/lib/server/pos-payment.js +922 -0
  456. package/src/lib/server/pos-payment.js.map +1 -0
  457. package/src/lib/server/pos-print.d.ts +82 -0
  458. package/src/lib/server/pos-print.js +193 -0
  459. package/src/lib/server/pos-print.js.map +1 -0
  460. package/src/lib/server/pos-readers.d.ts +27 -0
  461. package/src/lib/server/pos-readers.js +276 -0
  462. package/src/lib/server/pos-readers.js.map +1 -0
  463. package/src/lib/server/pos-refund-authority.d.ts +60 -0
  464. package/src/lib/server/pos-refund-authority.js +72 -0
  465. package/src/lib/server/pos-refund-authority.js.map +1 -0
  466. package/src/lib/server/pos-return.d.ts +58 -0
  467. package/src/lib/server/pos-return.js +891 -0
  468. package/src/lib/server/pos-return.js.map +1 -0
  469. package/src/lib/server/pos-sale-stamp.d.ts +66 -0
  470. package/src/lib/server/pos-sale-stamp.js +84 -0
  471. package/src/lib/server/pos-sale-stamp.js.map +1 -0
  472. package/src/lib/server/pos-sale.d.ts +170 -0
  473. package/src/lib/server/pos-sale.js +461 -0
  474. package/src/lib/server/pos-sale.js.map +1 -0
  475. package/src/lib/server/pos-shift.d.ts +45 -0
  476. package/src/lib/server/pos-shift.js +484 -0
  477. package/src/lib/server/pos-shift.js.map +1 -0
  478. package/src/lib/server/pos-staff-pin.d.ts +26 -0
  479. package/src/lib/server/pos-staff-pin.js +339 -0
  480. package/src/lib/server/pos-staff-pin.js.map +1 -0
  481. package/src/lib/server/pos-stripe.d.ts +91 -0
  482. package/src/lib/server/pos-stripe.js +129 -0
  483. package/src/lib/server/pos-stripe.js.map +1 -0
  484. package/src/lib/server/pos-terminal-connection-token.d.ts +48 -0
  485. package/src/lib/server/pos-terminal-connection-token.js +166 -0
  486. package/src/lib/server/pos-terminal-connection-token.js.map +1 -0
  487. package/src/lib/server/pos-terminal.d.ts +218 -0
  488. package/src/lib/server/pos-terminal.js +1014 -0
  489. package/src/lib/server/pos-terminal.js.map +1 -0
  490. package/src/lib/server/print-queue.d.ts +124 -0
  491. package/src/lib/server/print-queue.js +301 -0
  492. package/src/lib/server/print-queue.js.map +1 -0
  493. package/src/lib/server/printer-poll.d.ts +75 -0
  494. package/src/lib/server/printer-poll.js +325 -0
  495. package/src/lib/server/printer-poll.js.map +1 -0
  496. package/src/lib/server/printer-secret.d.ts +39 -0
  497. package/src/lib/server/printer-secret.js +56 -0
  498. package/src/lib/server/printer-secret.js.map +1 -0
  499. package/src/lib/server/printers.d.ts +114 -0
  500. package/src/lib/server/printers.js +546 -0
  501. package/src/lib/server/printers.js.map +1 -0
  502. package/src/lib/server/product-catalog.d.ts +42 -0
  503. package/src/lib/server/product-catalog.js +309 -0
  504. package/src/lib/server/product-catalog.js.map +1 -0
  505. package/src/lib/server/product-drafts.d.ts +5 -1
  506. package/src/lib/server/product-drafts.js +3 -3
  507. package/src/lib/server/product-drafts.js.map +1 -1
  508. package/src/lib/server/product-writer.d.ts +19 -0
  509. package/src/lib/server/product-writer.js +261 -0
  510. package/src/lib/server/product-writer.js.map +1 -0
  511. package/src/lib/server/products-write.d.ts +61 -0
  512. package/src/lib/server/products-write.js +375 -0
  513. package/src/lib/server/products-write.js.map +1 -0
  514. package/src/lib/server/refund.js +110 -45
  515. package/src/lib/server/refund.js.map +1 -1
  516. package/src/lib/server/reserve.js +2 -0
  517. package/src/lib/server/reserve.js.map +1 -1
  518. package/src/lib/server/return-status-action.d.ts +37 -0
  519. package/src/lib/server/return-status-action.js +57 -0
  520. package/src/lib/server/return-status-action.js.map +1 -0
  521. package/src/lib/server/returns.d.ts +119 -0
  522. package/src/lib/server/returns.js +938 -0
  523. package/src/lib/server/returns.js.map +1 -0
  524. package/src/lib/server/shipment-records.d.ts +36 -0
  525. package/src/lib/server/shipment-records.js +289 -0
  526. package/src/lib/server/shipment-records.js.map +1 -0
  527. package/src/lib/server/shipping-connector-gates.d.ts +40 -0
  528. package/src/lib/server/shipping-connector-gates.js +97 -0
  529. package/src/lib/server/shipping-connector-gates.js.map +1 -0
  530. package/src/lib/server/shipping-connectors.d.ts +29 -0
  531. package/src/lib/server/shipping-connectors.js +236 -0
  532. package/src/lib/server/shipping-connectors.js.map +1 -0
  533. package/src/lib/server/shippingeasy.d.ts +238 -0
  534. package/src/lib/server/shippingeasy.js +787 -0
  535. package/src/lib/server/shippingeasy.js.map +1 -0
  536. package/src/lib/server/shipstation.d.ts +129 -0
  537. package/src/lib/server/shipstation.js +483 -0
  538. package/src/lib/server/shipstation.js.map +1 -0
  539. package/src/lib/server/site-page-resolver.d.ts +5 -0
  540. package/src/lib/server/site-page-resolver.js +156 -1
  541. package/src/lib/server/site-page-resolver.js.map +1 -1
  542. package/src/lib/server/stock-levels.d.ts +21 -0
  543. package/src/lib/server/stock-levels.js +263 -0
  544. package/src/lib/server/stock-levels.js.map +1 -0
  545. package/src/lib/server/stripe-refund.d.ts +47 -0
  546. package/src/lib/server/stripe-refund.js +87 -0
  547. package/src/lib/server/stripe-refund.js.map +1 -0
  548. package/src/lib/server/supplier-update.js +46 -5
  549. package/src/lib/server/supplier-update.js.map +1 -1
  550. package/src/lib/server/tax-engine-quote.d.ts +47 -0
  551. package/src/lib/server/tax-engine-quote.js +105 -0
  552. package/src/lib/server/tax-engine-quote.js.map +1 -0
  553. package/src/lib/server.js +143 -2
  554. package/src/lib/server.js.map +1 -1
  555. package/src/lib/site.js +12 -0
  556. package/src/lib/site.js.map +1 -1
  557. package/src/lib/subprocessors.d.ts +26 -0
  558. package/src/lib/subprocessors.js +50 -0
  559. package/src/lib/subprocessors.js.map +1 -0
  560. package/src/lib/tenant-emails.js +461 -3
  561. package/src/lib/tenant-emails.js.map +1 -1
  562. package/src/lib/testing/fake-firestore.d.ts +45 -0
  563. package/src/lib/testing/fake-firestore.js +189 -0
  564. package/src/lib/testing/fake-firestore.js.map +1 -0
  565. package/src/lib/testing/memory-firestore.d.ts +136 -0
  566. package/src/lib/testing/memory-firestore.js +282 -0
  567. package/src/lib/testing/memory-firestore.js.map +1 -0
  568. package/src/lib/testing/pos-ops-harness.d.ts +50 -0
  569. package/src/lib/testing/pos-ops-harness.js +184 -0
  570. package/src/lib/testing/pos-ops-harness.js.map +1 -0
  571. package/src/lib/testing/pos-ops-memory-firestore.d.ts +55 -0
  572. package/src/lib/testing/pos-ops-memory-firestore.js +376 -0
  573. package/src/lib/testing/pos-ops-memory-firestore.js.map +1 -0
  574. package/src/lib/transfer/products.server.d.ts +5 -0
  575. package/src/lib/transfer/products.server.js +2 -2
  576. package/src/lib/transfer/products.server.js.map +1 -1
  577. package/src/lib/transfer/records-transfer.d.ts +11 -1
  578. package/src/lib/transfer/records-transfer.js +127 -5
  579. package/src/lib/transfer/records-transfer.js.map +1 -1
  580. package/src/lib/transfer/records.server.d.ts +9 -2
  581. package/src/lib/transfer/records.server.js +58 -7
  582. package/src/lib/transfer/records.server.js.map +1 -1
  583. package/src/lib/transfer/register-transfer-resources.js +40 -1
  584. package/src/lib/transfer/register-transfer-resources.js.map +1 -1
  585. package/src/lib/transfer/register-transfer-ui.js +4 -1
  586. package/src/lib/transfer/register-transfer-ui.js.map +1 -1
  587. package/src/lib/transfer/shipping-presets.d.ts +23 -0
  588. package/src/lib/transfer/shipping-presets.js +156 -0
  589. package/src/lib/transfer/shipping-presets.js.map +1 -0
  590. package/src/lib/transfer/tracking-transfer.d.ts +101 -0
  591. package/src/lib/transfer/tracking-transfer.js +546 -0
  592. package/src/lib/transfer/tracking-transfer.js.map +1 -0
  593. package/src/lib/transfer/tracking.server.d.ts +37 -0
  594. package/src/lib/transfer/tracking.server.js +393 -0
  595. package/src/lib/transfer/tracking.server.js.map +1 -0
  596. package/src/lib/transfer/transfer-keys.d.ts +2 -1
  597. package/src/lib/transfer/transfer-keys.js +6 -2
  598. package/src/lib/transfer/transfer-keys.js.map +1 -1
  599. package/src/lib/utils/code128.d.ts +37 -0
  600. package/src/lib/utils/code128.js +199 -0
  601. package/src/lib/utils/code128.js.map +1 -0
  602. package/src/lib/utils/order-invoice.d.ts +55 -0
  603. package/src/lib/utils/order-invoice.js +127 -0
  604. package/src/lib/utils/order-invoice.js.map +1 -0
  605. package/src/lib/utils/use-checkout-return-notice.d.ts +34 -0
  606. package/src/lib/utils/use-checkout-return-notice.js +78 -0
  607. package/src/lib/utils/use-checkout-return-notice.js.map +1 -0
  608. package/src/lib/server/feed.js +0 -69
  609. package/src/lib/server/feed.js.map +0 -1
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ 'use client';
17
+ import { _ as _extends } from "@swc/helpers/_/_extends";
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
+ import { Alert, Divider, Stack, Typography } from "@mui/material";
20
+ import { posShiftReportRows } from "../../../model/commerce-pos-ops.js";
21
+ import { escapeHtml } from "../../../utils/escape-html.js";
22
+ import { POS_RECEIPT_STYLES } from "./pos-receipt.js";
23
+ export { posShiftReportRows };
24
+ function Row(props) {
25
+ return /*#__PURE__*/ _jsxs(Stack, {
26
+ direction: "row",
27
+ sx: {
28
+ justifyContent: 'space-between',
29
+ gap: 2
30
+ },
31
+ children: [
32
+ /*#__PURE__*/ _jsx(Typography, {
33
+ variant: "body2",
34
+ color: props.strong ? 'text.primary' : 'text.secondary',
35
+ children: props.label
36
+ }),
37
+ /*#__PURE__*/ _jsx(Typography, {
38
+ variant: props.strong ? 'subtitle2' : 'body2',
39
+ sx: {
40
+ fontVariantNumeric: 'tabular-nums'
41
+ },
42
+ children: props.value
43
+ })
44
+ ]
45
+ });
46
+ }
47
+ /** An X report (mid-shift) or a Z report (closed), on screen. */ export function PosShiftReportView(props) {
48
+ const sections = posShiftReportRows(props.report, props.shift);
49
+ return /*#__PURE__*/ _jsxs(Stack, {
50
+ spacing: 1.5,
51
+ children: [
52
+ props.report.truncated ? /*#__PURE__*/ _jsx(Alert, {
53
+ severity: "warning",
54
+ children: 'This shift had more sales than one report reads; the figures are partial.'
55
+ }) : null,
56
+ sections.map((section, index)=>/*#__PURE__*/ _jsxs(Stack, {
57
+ spacing: 0.5,
58
+ children: [
59
+ index > 0 ? /*#__PURE__*/ _jsx(Divider, {}) : null,
60
+ /*#__PURE__*/ _jsx(Typography, {
61
+ variant: "overline",
62
+ children: section.section
63
+ }),
64
+ section.rows.map((row)=>/*#__PURE__*/ _jsx(Row, _extends({}, row), row.label))
65
+ ]
66
+ }, section.section))
67
+ ]
68
+ });
69
+ }
70
+ PosShiftReportView.displayName = 'PosShiftReportView';
71
+ /** The report as a printable 80 mm document, for the receipt printer. */ export function posShiftReportDocument(input) {
72
+ const sections = posShiftReportRows(input.report, input.shift);
73
+ const body = sections.map((section)=>`<hr class="rule"><div class="title">${escapeHtml(section.section.toUpperCase())}</div>` + section.rows.map((row)=>`<div class="row${row.strong ? ' total' : ''}"><span>${escapeHtml(row.label)}</span><span>${escapeHtml(row.value)}</span></div>`).join('')).join('');
74
+ return '<!doctype html><html><head><meta charset="utf-8">' + `<title>${escapeHtml(input.title)}</title><style>${POS_RECEIPT_STYLES}</style></head><body>` + `<div class="receipt"><div class="center"><div class="store">${escapeHtml(input.storeName)}</div>` + `<div class="title">${escapeHtml(input.title)}</div><div class="muted">${escapeHtml(input.subtitle)}</div></div>` + `${body}</div></body></html>`;
75
+ }
76
+ /** Prints a document from a hidden frame, as the receipt does. */ export function printPosDocument(html) {
77
+ var _frame_contentDocument;
78
+ if (typeof document === 'undefined') return;
79
+ const frame = document.createElement('iframe');
80
+ frame.setAttribute('aria-hidden', 'true');
81
+ Object.assign(frame.style, {
82
+ position: 'fixed',
83
+ width: '0',
84
+ height: '0',
85
+ border: '0'
86
+ });
87
+ document.body.appendChild(frame);
88
+ const win = frame.contentWindow;
89
+ const doc = (_frame_contentDocument = frame.contentDocument) != null ? _frame_contentDocument : win == null ? void 0 : win.document;
90
+ if (!win || !doc) return void frame.remove();
91
+ doc.open();
92
+ doc.write(html);
93
+ doc.close();
94
+ win.addEventListener('afterprint', ()=>window.setTimeout(()=>frame.remove(), 1000), {
95
+ once: true
96
+ });
97
+ win.focus();
98
+ win.print();
99
+ window.setTimeout(()=>frame.isConnected && frame.remove(), 60000);
100
+ }
101
+
102
+ //# sourceMappingURL=pos-shift-report.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../../libs/plugins/commerce/src/lib/components/console/pos-ops/pos-shift-report.component.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use client'\n\nimport { Alert, Divider, Stack, Typography } from '@mui/material'\nimport {\n posShiftReportRows,\n type PosShift,\n type PosShiftReport,\n} from '../../../model/commerce-pos-ops'\nimport { escapeHtml } from '../../../utils/escape-html'\nimport { POS_RECEIPT_STYLES } from './pos-receipt'\n\nexport { posShiftReportRows }\n\nfunction Row(props: { label: string; value: string; strong?: boolean }) {\n return (\n <Stack direction=\"row\" sx={{ justifyContent: 'space-between', gap: 2 }}>\n <Typography variant=\"body2\" color={props.strong ? 'text.primary' : 'text.secondary'}>\n {props.label}\n </Typography>\n <Typography variant={props.strong ? 'subtitle2' : 'body2'} sx={{ fontVariantNumeric: 'tabular-nums' }}>\n {props.value}\n </Typography>\n </Stack>\n )\n}\n\nexport interface PosShiftReportViewProps {\n report: PosShiftReport\n shift?: Pick<PosShift, 'countedCashCents' | 'varianceCents'>\n}\n\n/** An X report (mid-shift) or a Z report (closed), on screen. */\nexport function PosShiftReportView(props: PosShiftReportViewProps) {\n const sections = posShiftReportRows(props.report, props.shift)\n return (\n <Stack spacing={1.5}>\n {props.report.truncated ? (\n <Alert severity=\"warning\">\n {'This shift had more sales than one report reads; the figures are partial.'}\n </Alert>\n ) : null}\n {sections.map((section, index) => (\n <Stack key={section.section} spacing={0.5}>\n {index > 0 ? <Divider /> : null}\n <Typography variant=\"overline\">{section.section}</Typography>\n {section.rows.map((row) => (\n <Row key={row.label} {...row} />\n ))}\n </Stack>\n ))}\n </Stack>\n )\n}\n\nPosShiftReportView.displayName = 'PosShiftReportView'\n\n/** The report as a printable 80 mm document, for the receipt printer. */\nexport function posShiftReportDocument(input: {\n title: string\n storeName: string\n subtitle: string\n report: PosShiftReport\n shift?: Pick<PosShift, 'countedCashCents' | 'varianceCents'>\n}): string {\n const sections = posShiftReportRows(input.report, input.shift)\n const body = sections\n .map(\n (section) =>\n `<hr class=\"rule\"><div class=\"title\">${escapeHtml(section.section.toUpperCase())}</div>` +\n section.rows\n .map(\n (row) =>\n `<div class=\"row${row.strong ? ' total' : ''}\"><span>${escapeHtml(row.label)}</span><span>${escapeHtml(row.value)}</span></div>`,\n )\n .join(''),\n )\n .join('')\n return (\n '<!doctype html><html><head><meta charset=\"utf-8\">' +\n `<title>${escapeHtml(input.title)}</title><style>${POS_RECEIPT_STYLES}</style></head><body>` +\n `<div class=\"receipt\"><div class=\"center\"><div class=\"store\">${escapeHtml(input.storeName)}</div>` +\n `<div class=\"title\">${escapeHtml(input.title)}</div><div class=\"muted\">${escapeHtml(input.subtitle)}</div></div>` +\n `${body}</div></body></html>`\n )\n}\n\n/** Prints a document from a hidden frame, as the receipt does. */\nexport function printPosDocument(html: string): void {\n if (typeof document === 'undefined') return\n const frame = document.createElement('iframe')\n frame.setAttribute('aria-hidden', 'true')\n Object.assign(frame.style, { position: 'fixed', width: '0', height: '0', border: '0' })\n document.body.appendChild(frame)\n const win = frame.contentWindow\n const doc = frame.contentDocument ?? win?.document\n if (!win || !doc) return void frame.remove()\n doc.open()\n doc.write(html)\n doc.close()\n win.addEventListener('afterprint', () => window.setTimeout(() => frame.remove(), 1000), { once: true })\n win.focus()\n win.print()\n window.setTimeout(() => frame.isConnected && frame.remove(), 60_000)\n}\n"],"names":["Alert","Divider","Stack","Typography","posShiftReportRows","escapeHtml","POS_RECEIPT_STYLES","Row","props","direction","sx","justifyContent","gap","variant","color","strong","label","fontVariantNumeric","value","PosShiftReportView","sections","report","shift","spacing","truncated","severity","map","section","index","rows","row","displayName","posShiftReportDocument","input","body","toUpperCase","join","title","storeName","subtitle","printPosDocument","html","frame","document","createElement","setAttribute","Object","assign","style","position","width","height","border","appendChild","win","contentWindow","doc","contentDocument","remove","open","write","close","addEventListener","window","setTimeout","once","focus","print","isConnected"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export interface PosStaffPinsCardProps {
18
+ hostId: string;
19
+ }
20
+ /**
21
+ * Staff PINs (AGL-3609). Each member who works the register sets their own
22
+ * 4–6 digit PIN here; it switches the cashier on a shared tablet without
23
+ * signing anybody out, and it never grants more than that member's role. A
24
+ * workspace admin can reset or remove anyone's — which also lifts a lockout.
25
+ */
26
+ export declare function PosStaffPinsCard(props: PosStaffPinsCardProps): import("react").JSX.Element;
27
+ export declare namespace PosStaffPinsCard {
28
+ var displayName: string;
29
+ }
30
+ export default PosStaffPinsCard;
@@ -0,0 +1,277 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ 'use client';
17
+ import { _ as _extends } from "@swc/helpers/_/_extends";
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
+ import { pluginDocsHelp } from "@aglyn/aglyn";
20
+ import { CardDisplay, useConfirmationContext } from "@aglyn/shared-ui-jsx";
21
+ import { useSnackbar } from "@aglyn/shared-ui-snackstack";
22
+ import { Alert, Button, Dialog, DialogActions, DialogContent, DialogTitle, Stack, TextField, Typography } from "@mui/material";
23
+ import { collection, limit, query } from "firebase/firestore";
24
+ import { useFirestore, useFirestoreCollection, useUser } from "@aglyn/tenant-feature-instance";
25
+ import { useCallback, useEffect, useState } from "react";
26
+ import { posPinProblem } from "../../../model/commerce-pos-ops.js";
27
+ import { callPosOps } from "./pos-ops-api.js";
28
+ /**
29
+ * Staff PINs (AGL-3609). Each member who works the register sets their own
30
+ * 4–6 digit PIN here; it switches the cashier on a shared tablet without
31
+ * signing anybody out, and it never grants more than that member's role. A
32
+ * workspace admin can reset or remove anyone's — which also lifts a lockout.
33
+ */ export function PosStaffPinsCard(props) {
34
+ const { hostId } = props;
35
+ const { data: user } = useUser();
36
+ const firestore = useFirestore();
37
+ const { enqueueSnackbar } = useSnackbar();
38
+ // PINs are for registers: a store with none has nothing to switch.
39
+ const { data: registers, status: registersStatus } = useFirestoreCollection(()=>query(collection(firestore, 'hosts', hostId, 'registers'), limit(1)), [
40
+ firestore,
41
+ hostId
42
+ ]);
43
+ const { confirm } = useConfirmationContext();
44
+ const [hasPin, setHasPin] = useState(null);
45
+ const [isManager, setIsManager] = useState(false);
46
+ const [roster, setRoster] = useState([]);
47
+ const [editing, setEditing] = useState(null);
48
+ const [pin, setPin] = useState('');
49
+ const [confirmPin, setConfirmPin] = useState('');
50
+ const [error, setError] = useState('');
51
+ const [busy, setBusy] = useState(false);
52
+ const [refusal, setRefusal] = useState('');
53
+ const load = useCallback(async ()=>{
54
+ if (!user) return;
55
+ const status = await callPosOps(user, 'pos-staff-pin', {
56
+ hostId,
57
+ action: 'status'
58
+ });
59
+ if (!status.ok) {
60
+ var _status_body_error;
61
+ setRefusal((_status_body_error = status.body.error) != null ? _status_body_error : '');
62
+ return;
63
+ }
64
+ setRefusal('');
65
+ setHasPin(Boolean(status.body.hasPin));
66
+ setIsManager(Boolean(status.body.isManager));
67
+ if (status.body.isManager) {
68
+ var _answer_body_members;
69
+ const answer = await callPosOps(user, 'pos-staff-pin', {
70
+ hostId,
71
+ action: 'roster'
72
+ });
73
+ setRoster(answer.ok ? (_answer_body_members = answer.body.members) != null ? _answer_body_members : [] : []);
74
+ }
75
+ }, [
76
+ user,
77
+ hostId
78
+ ]);
79
+ useEffect(()=>{
80
+ void load();
81
+ }, [
82
+ load
83
+ ]);
84
+ const save = async ()=>{
85
+ var _answer_body_error;
86
+ const problem = posPinProblem(pin);
87
+ if (problem) return setError(problem);
88
+ if (pin !== confirmPin) return setError('The two PINs do not match.');
89
+ setBusy(true);
90
+ const answer = await callPosOps(user, 'pos-staff-pin', _extends({
91
+ hostId,
92
+ action: 'set',
93
+ pin
94
+ }, (editing == null ? void 0 : editing.uid) ? {
95
+ memberUid: editing.uid
96
+ } : {}));
97
+ setBusy(false);
98
+ if (!answer.ok) return setError((_answer_body_error = answer.body.error) != null ? _answer_body_error : 'Could not save the PIN.');
99
+ enqueueSnackbar((editing == null ? void 0 : editing.uid) ? `PIN reset for ${editing.name}` : 'Your PIN is set', {
100
+ variant: 'success',
101
+ persist: false
102
+ });
103
+ setEditing(null);
104
+ void load();
105
+ };
106
+ const remove = (uid, name)=>async ()=>{
107
+ const confirmed = await confirm({
108
+ title: uid ? `Remove ${name}'s PIN?` : 'Remove your PIN?',
109
+ description: 'They will not be able to switch in at the register until a PIN is set again.',
110
+ confirmationText: 'Remove',
111
+ confirmationButtonProps: {
112
+ color: 'error'
113
+ }
114
+ }).then(()=>true).catch(()=>false);
115
+ if (!confirmed) return;
116
+ const answer = await callPosOps(user, 'pos-staff-pin', _extends({
117
+ hostId,
118
+ action: 'clear'
119
+ }, uid ? {
120
+ memberUid: uid
121
+ } : {}));
122
+ if (!answer.ok) {
123
+ var _answer_body_error;
124
+ enqueueSnackbar((_answer_body_error = answer.body.error) != null ? _answer_body_error : 'Could not remove the PIN.', {
125
+ variant: 'warning',
126
+ persist: false
127
+ });
128
+ return;
129
+ }
130
+ void load();
131
+ };
132
+ const startEdit = (uid, name)=>()=>{
133
+ setEditing({
134
+ uid,
135
+ name
136
+ });
137
+ setPin('');
138
+ setConfirmPin('');
139
+ setError('');
140
+ };
141
+ if (registersStatus === 'success' && !(registers == null ? void 0 : registers.length)) return null;
142
+ return /*#__PURE__*/ _jsxs(CardDisplay, {
143
+ header: 'Staff PINs',
144
+ help: pluginDocsHelp('posOperations', {
145
+ anchor: '#staff-pins'
146
+ }),
147
+ HeaderProps: {
148
+ action: hasPin === null ? null : /*#__PURE__*/ _jsx(Button, {
149
+ size: "small",
150
+ onClick: startEdit(null, 'you'),
151
+ children: hasPin ? 'Change my PIN' : 'Set my PIN'
152
+ })
153
+ },
154
+ contentGutterX: true,
155
+ contentGutterY: true,
156
+ children: [
157
+ /*#__PURE__*/ _jsxs(Stack, {
158
+ spacing: 1,
159
+ children: [
160
+ refusal ? /*#__PURE__*/ _jsx(Typography, {
161
+ variant: "body2",
162
+ color: "text.secondary",
163
+ children: refusal === 'Not permitted' ? 'Only members who can use the register have a PIN.' : refusal
164
+ }) : /*#__PURE__*/ _jsx(Typography, {
165
+ variant: "body2",
166
+ color: "text.secondary",
167
+ children: hasPin ? 'Your PIN switches you in at a shared register. Five wrong tries lock it for 15 minutes.' : 'Set a 4–6 digit PIN to switch in at a shared register without signing anyone out.'
168
+ }),
169
+ hasPin ? /*#__PURE__*/ _jsx(Button, {
170
+ size: "small",
171
+ color: "error",
172
+ onClick: remove(null, 'you'),
173
+ sx: {
174
+ alignSelf: 'flex-start'
175
+ },
176
+ children: 'Remove my PIN'
177
+ }) : null,
178
+ isManager && roster.length ? /*#__PURE__*/ _jsxs(Stack, {
179
+ spacing: 0.5,
180
+ children: [
181
+ /*#__PURE__*/ _jsx(Typography, {
182
+ variant: "overline",
183
+ children: 'Staff with a PIN'
184
+ }),
185
+ roster.map((member)=>/*#__PURE__*/ _jsxs(Stack, {
186
+ direction: "row",
187
+ spacing: 1,
188
+ sx: {
189
+ alignItems: 'center'
190
+ },
191
+ children: [
192
+ /*#__PURE__*/ _jsx(Typography, {
193
+ variant: "body2",
194
+ sx: {
195
+ flex: 1
196
+ },
197
+ noWrap: true,
198
+ children: member.name
199
+ }),
200
+ /*#__PURE__*/ _jsx(Button, {
201
+ size: "small",
202
+ onClick: startEdit(member.uid, member.name),
203
+ children: 'Reset'
204
+ }),
205
+ /*#__PURE__*/ _jsx(Button, {
206
+ size: "small",
207
+ color: "error",
208
+ onClick: remove(member.uid, member.name),
209
+ children: 'Remove'
210
+ })
211
+ ]
212
+ }, member.uid))
213
+ ]
214
+ }) : null
215
+ ]
216
+ }),
217
+ /*#__PURE__*/ _jsxs(Dialog, {
218
+ open: Boolean(editing),
219
+ onClose: ()=>setEditing(null),
220
+ maxWidth: "xs",
221
+ fullWidth: true,
222
+ children: [
223
+ /*#__PURE__*/ _jsx(DialogTitle, {
224
+ children: (editing == null ? void 0 : editing.uid) ? `Reset ${editing.name}'s PIN` : 'Your register PIN'
225
+ }),
226
+ /*#__PURE__*/ _jsx(DialogContent, {
227
+ children: /*#__PURE__*/ _jsxs(Stack, {
228
+ spacing: 2,
229
+ sx: {
230
+ pt: 1
231
+ },
232
+ children: [
233
+ /*#__PURE__*/ _jsx(TextField, {
234
+ autoFocus: true,
235
+ label: "PIN",
236
+ type: "password",
237
+ inputMode: "numeric",
238
+ value: pin,
239
+ onChange: (event)=>setPin(event.target.value.replace(/\D/g, '').slice(0, 6))
240
+ }),
241
+ /*#__PURE__*/ _jsx(TextField, {
242
+ label: "PIN again",
243
+ type: "password",
244
+ inputMode: "numeric",
245
+ value: confirmPin,
246
+ onChange: (event)=>setConfirmPin(event.target.value.replace(/\D/g, '').slice(0, 6))
247
+ }),
248
+ error ? /*#__PURE__*/ _jsx(Alert, {
249
+ severity: "warning",
250
+ children: error
251
+ }) : null
252
+ ]
253
+ })
254
+ }),
255
+ /*#__PURE__*/ _jsxs(DialogActions, {
256
+ children: [
257
+ /*#__PURE__*/ _jsx(Button, {
258
+ onClick: ()=>setEditing(null),
259
+ children: 'Cancel'
260
+ }),
261
+ /*#__PURE__*/ _jsx(Button, {
262
+ variant: "contained",
263
+ disabled: busy,
264
+ onClick: save,
265
+ children: 'Save PIN'
266
+ })
267
+ ]
268
+ })
269
+ ]
270
+ })
271
+ ]
272
+ });
273
+ }
274
+ PosStaffPinsCard.displayName = 'PosStaffPinsCard';
275
+ export default PosStaffPinsCard;
276
+
277
+ //# sourceMappingURL=pos-staff-pins-card.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../../libs/plugins/commerce/src/lib/components/console/pos-ops/pos-staff-pins-card.component.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use client'\n\nimport { pluginDocsHelp } from '@aglyn/aglyn'\nimport { CardDisplay, useConfirmationContext } from '@aglyn/shared-ui-jsx'\nimport { useSnackbar } from '@aglyn/shared-ui-snackstack'\nimport {\n Alert,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport { collection, limit, query } from 'firebase/firestore'\nimport { useFirestore, useFirestoreCollection, useUser } from '@aglyn/tenant-feature-instance'\nimport { useCallback, useEffect, useState } from 'react'\nimport { posPinProblem } from '../../../model/commerce-pos-ops'\nimport { callPosOps } from './pos-ops-api'\n\nexport interface PosStaffPinsCardProps {\n hostId: string\n}\n\n/**\n * Staff PINs (AGL-3609). Each member who works the register sets their own\n * 4–6 digit PIN here; it switches the cashier on a shared tablet without\n * signing anybody out, and it never grants more than that member's role. A\n * workspace admin can reset or remove anyone's — which also lifts a lockout.\n */\nexport function PosStaffPinsCard(props: PosStaffPinsCardProps) {\n const { hostId } = props\n const { data: user } = useUser()\n const firestore = useFirestore()\n const { enqueueSnackbar } = useSnackbar()\n // PINs are for registers: a store with none has nothing to switch.\n const { data: registers, status: registersStatus } = useFirestoreCollection<any>(\n () => query(collection(firestore, 'hosts', hostId, 'registers'), limit(1)),\n [firestore, hostId],\n )\n const { confirm } = useConfirmationContext()\n const [hasPin, setHasPin] = useState<boolean | null>(null)\n const [isManager, setIsManager] = useState(false)\n const [roster, setRoster] = useState<Array<{ uid: string; name: string }>>([])\n const [editing, setEditing] = useState<{ uid: string | null; name: string } | null>(null)\n const [pin, setPin] = useState('')\n const [confirmPin, setConfirmPin] = useState('')\n const [error, setError] = useState('')\n const [busy, setBusy] = useState(false)\n const [refusal, setRefusal] = useState('')\n\n const load = useCallback(async () => {\n if (!user) return\n const status = await callPosOps<{ hasPin?: boolean; isManager?: boolean }>(user, 'pos-staff-pin', {\n hostId,\n action: 'status',\n })\n if (!status.ok) {\n setRefusal(status.body.error ?? '')\n return\n }\n setRefusal('')\n setHasPin(Boolean(status.body.hasPin))\n setIsManager(Boolean(status.body.isManager))\n if (status.body.isManager) {\n const answer = await callPosOps<{ members?: Array<{ uid: string; name: string }> }>(\n user,\n 'pos-staff-pin',\n { hostId, action: 'roster' },\n )\n setRoster(answer.ok ? (answer.body.members ?? []) : [])\n }\n }, [user, hostId])\n\n useEffect(() => {\n void load()\n }, [load])\n\n const save = async () => {\n const problem = posPinProblem(pin)\n if (problem) return setError(problem)\n if (pin !== confirmPin) return setError('The two PINs do not match.')\n setBusy(true)\n const answer = await callPosOps(user, 'pos-staff-pin', {\n hostId,\n action: 'set',\n pin,\n ...(editing?.uid ? { memberUid: editing.uid } : {}),\n })\n setBusy(false)\n if (!answer.ok) return setError(answer.body.error ?? 'Could not save the PIN.')\n enqueueSnackbar(editing?.uid ? `PIN reset for ${editing.name}` : 'Your PIN is set', {\n variant: 'success',\n persist: false,\n })\n setEditing(null)\n void load()\n }\n\n const remove = (uid: string | null, name: string) => async () => {\n const confirmed = await confirm({\n title: uid ? `Remove ${name}'s PIN?` : 'Remove your PIN?',\n description: 'They will not be able to switch in at the register until a PIN is set again.',\n confirmationText: 'Remove',\n confirmationButtonProps: { color: 'error' },\n })\n .then(() => true)\n .catch(() => false)\n if (!confirmed) return\n const answer = await callPosOps(user, 'pos-staff-pin', {\n hostId,\n action: 'clear',\n ...(uid ? { memberUid: uid } : {}),\n })\n if (!answer.ok) {\n enqueueSnackbar(answer.body.error ?? 'Could not remove the PIN.', { variant: 'warning', persist: false })\n return\n }\n void load()\n }\n\n const startEdit = (uid: string | null, name: string) => () => {\n setEditing({ uid, name })\n setPin('')\n setConfirmPin('')\n setError('')\n }\n\n if (registersStatus === 'success' && !registers?.length) return null\n\n return (\n <CardDisplay\n header={'Staff PINs'}\n help={pluginDocsHelp('posOperations', { anchor: '#staff-pins' })}\n HeaderProps={{\n action:\n hasPin === null ? null : (\n <Button size=\"small\" onClick={startEdit(null, 'you')}>\n {hasPin ? 'Change my PIN' : 'Set my PIN'}\n </Button>\n ),\n }}\n contentGutterX\n contentGutterY\n >\n <Stack spacing={1}>\n {refusal ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {refusal === 'Not permitted'\n ? 'Only members who can use the register have a PIN.'\n : refusal}\n </Typography>\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {hasPin\n ? 'Your PIN switches you in at a shared register. Five wrong tries lock it for 15 minutes.'\n : 'Set a 4–6 digit PIN to switch in at a shared register without signing anyone out.'}\n </Typography>\n )}\n {hasPin ? (\n <Button size=\"small\" color=\"error\" onClick={remove(null, 'you')} sx={{ alignSelf: 'flex-start' }}>\n {'Remove my PIN'}\n </Button>\n ) : null}\n {isManager && roster.length ? (\n <Stack spacing={0.5}>\n <Typography variant=\"overline\">{'Staff with a PIN'}</Typography>\n {roster.map((member) => (\n <Stack key={member.uid} direction=\"row\" spacing={1} sx={{ alignItems: 'center' }}>\n <Typography variant=\"body2\" sx={{ flex: 1 }} noWrap>\n {member.name}\n </Typography>\n <Button size=\"small\" onClick={startEdit(member.uid, member.name)}>\n {'Reset'}\n </Button>\n <Button size=\"small\" color=\"error\" onClick={remove(member.uid, member.name)}>\n {'Remove'}\n </Button>\n </Stack>\n ))}\n </Stack>\n ) : null}\n </Stack>\n <Dialog open={Boolean(editing)} onClose={() => setEditing(null)} maxWidth=\"xs\" fullWidth>\n <DialogTitle>{editing?.uid ? `Reset ${editing.name}'s PIN` : 'Your register PIN'}</DialogTitle>\n <DialogContent>\n <Stack spacing={2} sx={{ pt: 1 }}>\n <TextField\n autoFocus\n label=\"PIN\"\n type=\"password\"\n inputMode=\"numeric\"\n value={pin}\n onChange={(event) => setPin(event.target.value.replace(/\\D/g, '').slice(0, 6))}\n />\n <TextField\n label=\"PIN again\"\n type=\"password\"\n inputMode=\"numeric\"\n value={confirmPin}\n onChange={(event) => setConfirmPin(event.target.value.replace(/\\D/g, '').slice(0, 6))}\n />\n {error ? <Alert severity=\"warning\">{error}</Alert> : null}\n </Stack>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setEditing(null)}>{'Cancel'}</Button>\n <Button variant=\"contained\" disabled={busy} onClick={save}>\n {'Save PIN'}\n </Button>\n </DialogActions>\n </Dialog>\n </CardDisplay>\n )\n}\n\nPosStaffPinsCard.displayName = 'PosStaffPinsCard'\n\nexport default PosStaffPinsCard\n"],"names":["pluginDocsHelp","CardDisplay","useConfirmationContext","useSnackbar","Alert","Button","Dialog","DialogActions","DialogContent","DialogTitle","Stack","TextField","Typography","collection","limit","query","useFirestore","useFirestoreCollection","useUser","useCallback","useEffect","useState","posPinProblem","callPosOps","PosStaffPinsCard","props","hostId","data","user","firestore","enqueueSnackbar","registers","status","registersStatus","confirm","hasPin","setHasPin","isManager","setIsManager","roster","setRoster","editing","setEditing","pin","setPin","confirmPin","setConfirmPin","error","setError","busy","setBusy","refusal","setRefusal","load","action","ok","body","Boolean","answer","members","save","problem","uid","memberUid","name","variant","persist","remove","confirmed","title","description","confirmationText","confirmationButtonProps","color","then","catch","startEdit","length","header","help","anchor","HeaderProps","size","onClick","contentGutterX","contentGutterY","spacing","sx","alignSelf","map","member","direction","alignItems","flex","noWrap","open","onClose","maxWidth","fullWidth","pt","autoFocus","label","type","inputMode","value","onChange","event","target","replace","slice","severity","disabled","displayName"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * What the register page takes from the operations work (AGL-3609), in one
19
+ * module: the page's own specs stand it in with one `jest.mock`, and the
20
+ * operations have specs of their own.
21
+ */
22
+ export { PosCustomerLookup, type PosSelectedCustomer } from './pos-customer-lookup.component';
23
+ export { PosLastReceipt } from './pos-last-receipt.component';
24
+ export { PosOperationsBar } from './pos-operations-bar.component';
25
+ export { usePosOpsSettings, usePosRegisterHasPrinter } from './pos-receipt-actions.component';
26
+ export { usePosCashier } from './use-pos-cashier';
27
+ export { usePosSaleReceipt, type PosSaleReceipt } from './use-pos-sale-receipt';
28
+ export { PosReceiptActions } from './pos-receipt-actions.component';
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ /**
17
+ * What the register page takes from the operations work (AGL-3609), in one
18
+ * module: the page's own specs stand it in with one `jest.mock`, and the
19
+ * operations have specs of their own.
20
+ */ export { PosCustomerLookup } from "./pos-customer-lookup.component.js";
21
+ export { PosLastReceipt } from "./pos-last-receipt.component.js";
22
+ export { PosOperationsBar } from "./pos-operations-bar.component.js";
23
+ export { usePosOpsSettings, usePosRegisterHasPrinter } from "./pos-receipt-actions.component.js";
24
+ export { usePosCashier } from "./use-pos-cashier.js";
25
+ export { usePosSaleReceipt } from "./use-pos-sale-receipt.js";
26
+ export { PosReceiptActions } from "./pos-receipt-actions.component.js";
27
+
28
+ //# sourceMappingURL=register-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../../libs/plugins/commerce/src/lib/components/console/pos-ops/register-ops.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * What the register page takes from the operations work (AGL-3609), in one\n * module: the page's own specs stand it in with one `jest.mock`, and the\n * operations have specs of their own.\n */\nexport { PosCustomerLookup, type PosSelectedCustomer } from './pos-customer-lookup.component'\nexport { PosLastReceipt } from './pos-last-receipt.component'\nexport { PosOperationsBar } from './pos-operations-bar.component'\nexport { usePosOpsSettings, usePosRegisterHasPrinter } from './pos-receipt-actions.component'\nexport { usePosCashier } from './use-pos-cashier'\nexport { usePosSaleReceipt, type PosSaleReceipt } from './use-pos-sale-receipt'\nexport { PosReceiptActions } from './pos-receipt-actions.component'\n"],"names":["PosCustomerLookup","PosLastReceipt","PosOperationsBar","usePosOpsSettings","usePosRegisterHasPrinter","usePosCashier","usePosSaleReceipt","PosReceiptActions"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;CAIC,GACD,SAASA,iBAAiB,QAAkC,qCAAiC;AAC7F,SAASC,cAAc,QAAQ,kCAA8B;AAC7D,SAASC,gBAAgB,QAAQ,oCAAgC;AACjE,SAASC,iBAAiB,EAAEC,wBAAwB,QAAQ,qCAAiC;AAC7F,SAASC,aAAa,QAAQ,uBAAmB;AACjD,SAASC,iBAAiB,QAA6B,4BAAwB;AAC/E,SAASC,iBAAiB,QAAQ,qCAAiC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import type { PosStaffAssertion } from './pos-pin-pad.component';
18
+ export interface PosCashierState {
19
+ /** The member a PIN switched in, or `null` for whoever is signed in. */
20
+ cashier: PosStaffAssertion | null;
21
+ /** The assertion every register call carries, or `undefined`. */
22
+ assertion: string | undefined;
23
+ /** The register is locked and waits for a PIN. */
24
+ locked: boolean;
25
+ switchTo: (assertion: PosStaffAssertion) => void;
26
+ /** Back to the signed-in member. */
27
+ signOutCashier: () => void;
28
+ lock: () => void;
29
+ /** Lifts a lock without a PIN: only for a site where nobody has one. */
30
+ unlock: () => void;
31
+ }
32
+ /**
33
+ * Who is at the register (AGL-3609).
34
+ *
35
+ * Holds the cashier a PIN switched in, refreshes their assertion while they
36
+ * keep working (the server re-checks their role on every refresh), and LOCKS
37
+ * the register after `autoLockMinutes` without a tap or a key — dropping the
38
+ * assertion, so the next person has to enter their own PIN. An expired
39
+ * assertion the refresh could not renew drops back to the signed-in member
40
+ * rather than ringing sales under a name the server would refuse.
41
+ */
42
+ export declare function usePosCashier(options: {
43
+ hostId: string;
44
+ registerId: string;
45
+ autoLockMinutes: number;
46
+ }): PosCashierState;