@aglyn/plugins-commerce 1.0.0-beta.230 → 1.0.0-beta.231
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.
- package/package.json +13 -13
- package/src/index.d.ts +0 -1
- package/src/index.js +0 -1
- package/src/index.js.map +1 -1
- package/src/lib/barcode/barcode-decode.d.ts +71 -0
- package/src/lib/barcode/barcode-decode.js +498 -0
- package/src/lib/barcode/barcode-decode.js.map +1 -0
- package/src/lib/barcode/barcode-encode.d.ts +44 -0
- package/src/lib/barcode/barcode-encode.js +138 -0
- package/src/lib/barcode/barcode-encode.js.map +1 -0
- package/src/lib/barcode/barcode-scanner.component.d.ts +23 -0
- package/src/lib/barcode/barcode-scanner.component.js +260 -0
- package/src/lib/barcode/barcode-scanner.component.js.map +1 -0
- package/src/lib/barcode/scan-button.component.d.ts +10 -0
- package/src/lib/barcode/scan-button.component.js +62 -0
- package/src/lib/barcode/scan-button.component.js.map +1 -0
- package/src/lib/barcode/scanner-wedge.d.ts +35 -0
- package/src/lib/barcode/scanner-wedge.js +108 -0
- package/src/lib/barcode/scanner-wedge.js.map +1 -0
- package/src/lib/components/account.js +10 -1
- package/src/lib/components/account.js.map +1 -1
- package/src/lib/components/cart-extras.d.ts +45 -0
- package/src/lib/components/cart-extras.js +127 -0
- package/src/lib/components/cart-extras.js.map +1 -0
- package/src/lib/components/cart.js +82 -15
- package/src/lib/components/cart.js.map +1 -1
- package/src/lib/components/checkout-return-notice.d.ts +26 -0
- package/src/lib/components/checkout-return-notice.js +48 -0
- package/src/lib/components/checkout-return-notice.js.map +1 -0
- package/src/lib/components/commerce-console-page.js +124 -0
- package/src/lib/components/commerce-console-page.js.map +1 -1
- package/src/lib/components/commerce-console-sections.d.ts +1 -1
- package/src/lib/components/commerce-console-sections.js +4 -0
- package/src/lib/components/commerce-console-sections.js.map +1 -1
- package/src/lib/components/console/bulk-fulfill.d.ts +44 -0
- package/src/lib/components/console/bulk-fulfill.js +84 -0
- package/src/lib/components/console/bulk-fulfill.js.map +1 -0
- package/src/lib/components/console/customer-notifications-card.component.d.ts +19 -0
- package/src/lib/components/console/customer-notifications-card.component.js +149 -0
- package/src/lib/components/console/customer-notifications-card.component.js.map +1 -0
- package/src/lib/components/console/host-orders-card.component.js +84 -5
- package/src/lib/components/console/host-orders-card.component.js.map +1 -1
- package/src/lib/components/console/locations-card.component.js +164 -57
- package/src/lib/components/console/locations-card.component.js.map +1 -1
- package/src/lib/components/console/order-detail-dialog.component.js +209 -61
- package/src/lib/components/console/order-detail-dialog.component.js.map +1 -1
- package/src/lib/components/console/order-fulfillment-panel.component.d.ts +48 -0
- package/src/lib/components/console/order-fulfillment-panel.component.js +542 -0
- package/src/lib/components/console/order-fulfillment-panel.component.js.map +1 -0
- package/src/lib/components/console/order-invoice.component.d.ts +33 -0
- package/src/lib/components/console/order-invoice.component.js +81 -0
- package/src/lib/components/console/order-invoice.component.js.map +1 -0
- package/src/lib/components/console/order-receipt-resend.component.d.ts +21 -0
- package/src/lib/components/console/order-receipt-resend.component.js +203 -0
- package/src/lib/components/console/order-receipt-resend.component.js.map +1 -0
- package/src/lib/components/console/order-returns.component.d.ts +36 -0
- package/src/lib/components/console/order-returns.component.js +142 -0
- package/src/lib/components/console/order-returns.component.js.map +1 -0
- package/src/lib/components/console/order-shipping-actions.component.d.ts +54 -0
- package/src/lib/components/console/order-shipping-actions.component.js +149 -0
- package/src/lib/components/console/order-shipping-actions.component.js.map +1 -0
- package/src/lib/components/console/order-webhooks-card.component.d.ts +50 -0
- package/src/lib/components/console/order-webhooks-card.component.js +623 -0
- package/src/lib/components/console/order-webhooks-card.component.js.map +1 -0
- package/src/lib/components/console/order-zones.d.ts +155 -0
- package/src/lib/components/console/order-zones.js +40 -0
- package/src/lib/components/console/order-zones.js.map +1 -0
- package/src/lib/components/console/payment-methods-card.component.d.ts +67 -0
- package/src/lib/components/console/payment-methods-card.component.js +395 -0
- package/src/lib/components/console/payment-methods-card.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-api.d.ts +124 -0
- package/src/lib/components/console/pos/pos-api.js +101 -0
- package/src/lib/components/console/pos/pos-api.js.map +1 -0
- package/src/lib/components/console/pos/pos-cart-panel.component.d.ts +36 -0
- package/src/lib/components/console/pos/pos-cart-panel.component.js +160 -0
- package/src/lib/components/console/pos/pos-cart-panel.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-item-dialog.component.d.ts +39 -0
- package/src/lib/components/console/pos/pos-item-dialog.component.js +352 -0
- package/src/lib/components/console/pos/pos-item-dialog.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-product-grid.component.d.ts +47 -0
- package/src/lib/components/console/pos/pos-product-grid.component.js +272 -0
- package/src/lib/components/console/pos/pos-product-grid.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-receipt-panel.component.d.ts +27 -0
- package/src/lib/components/console/pos/pos-receipt-panel.component.js +282 -0
- package/src/lib/components/console/pos/pos-receipt-panel.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-tender-dialogs.component.d.ts +53 -0
- package/src/lib/components/console/pos/pos-tender-dialogs.component.js +445 -0
- package/src/lib/components/console/pos/pos-tender-dialogs.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-tender-panel.component.d.ts +31 -0
- package/src/lib/components/console/pos/pos-tender-panel.component.js +640 -0
- package/src/lib/components/console/pos/pos-tender-panel.component.js.map +1 -0
- package/src/lib/components/console/pos/use-pos-display.d.ts +43 -0
- package/src/lib/components/console/pos/use-pos-display.js +161 -0
- package/src/lib/components/console/pos/use-pos-display.js.map +1 -0
- package/src/lib/components/console/pos-devices-card.component.d.ts +14 -0
- package/src/lib/components/console/pos-devices-card.component.js +546 -0
- package/src/lib/components/console/pos-devices-card.component.js.map +1 -0
- package/src/lib/components/console/pos-display/brand-screen.d.ts +33 -0
- package/src/lib/components/console/pos-display/brand-screen.js +85 -0
- package/src/lib/components/console/pos-display/brand-screen.js.map +1 -0
- package/src/lib/components/console/pos-display/cart-screen.d.ts +29 -0
- package/src/lib/components/console/pos-display/cart-screen.js +166 -0
- package/src/lib/components/console/pos-display/cart-screen.js.map +1 -0
- package/src/lib/components/console/pos-display/pairing-screen.d.ts +24 -0
- package/src/lib/components/console/pos-display/pairing-screen.js +127 -0
- package/src/lib/components/console/pos-display/pairing-screen.js.map +1 -0
- package/src/lib/components/console/pos-display/pos-display-api.d.ts +90 -0
- package/src/lib/components/console/pos-display/pos-display-api.js +140 -0
- package/src/lib/components/console/pos-display/pos-display-api.js.map +1 -0
- package/src/lib/components/console/pos-display/receipt-screen.d.ts +35 -0
- package/src/lib/components/console/pos-display/receipt-screen.js +200 -0
- package/src/lib/components/console/pos-display/receipt-screen.js.map +1 -0
- package/src/lib/components/console/pos-display/tip-screen.d.ts +36 -0
- package/src/lib/components/console/pos-display/tip-screen.js +211 -0
- package/src/lib/components/console/pos-display/tip-screen.js.map +1 -0
- package/src/lib/components/console/pos-display-page.component.d.ts +16 -0
- package/src/lib/components/console/pos-display-page.component.js +407 -0
- package/src/lib/components/console/pos-display-page.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-customer-lookup.component.d.ts +40 -0
- package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js +289 -0
- package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-last-receipt.component.d.ts +34 -0
- package/src/lib/components/console/pos-ops/pos-last-receipt.component.js +61 -0
- package/src/lib/components/console/pos-ops/pos-last-receipt.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-operations-bar.component.d.ts +38 -0
- package/src/lib/components/console/pos-ops/pos-operations-bar.component.js +129 -0
- package/src/lib/components/console/pos-ops/pos-operations-bar.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-ops-api.d.ts +37 -0
- package/src/lib/components/console/pos-ops/pos-ops-api.js +60 -0
- package/src/lib/components/console/pos-ops/pos-ops-api.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-pin-pad.component.d.ts +48 -0
- package/src/lib/components/console/pos-ops/pos-pin-pad.component.js +220 -0
- package/src/lib/components/console/pos-ops/pos-pin-pad.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-receipt-actions.component.d.ts +63 -0
- package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js +186 -0
- package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-receipt.d.ts +39 -0
- package/src/lib/components/console/pos-ops/pos-receipt.js +182 -0
- package/src/lib/components/console/pos-ops/pos-receipt.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-return-dialog.component.d.ts +40 -0
- package/src/lib/components/console/pos-ops/pos-return-dialog.component.js +465 -0
- package/src/lib/components/console/pos-ops/pos-return-dialog.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-shift-history-card.component.d.ts +29 -0
- package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js +253 -0
- package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-shift-panel.component.d.ts +34 -0
- package/src/lib/components/console/pos-ops/pos-shift-panel.component.js +494 -0
- package/src/lib/components/console/pos-ops/pos-shift-panel.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-shift-report.component.d.ts +37 -0
- package/src/lib/components/console/pos-ops/pos-shift-report.component.js +102 -0
- package/src/lib/components/console/pos-ops/pos-shift-report.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.d.ts +30 -0
- package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js +277 -0
- package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/register-ops.d.ts +28 -0
- package/src/lib/components/console/pos-ops/register-ops.js +28 -0
- package/src/lib/components/console/pos-ops/register-ops.js.map +1 -0
- package/src/lib/components/console/pos-ops/use-pos-cashier.d.ts +46 -0
- package/src/lib/components/console/pos-ops/use-pos-cashier.js +128 -0
- package/src/lib/components/console/pos-ops/use-pos-cashier.js.map +1 -0
- package/src/lib/components/console/pos-ops/use-pos-sale-receipt.d.ts +36 -0
- package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js +64 -0
- package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js.map +1 -0
- package/src/lib/components/console/pos-page.component.d.ts +13 -5
- package/src/lib/components/console/pos-page.component.js +729 -657
- package/src/lib/components/console/pos-page.component.js.map +1 -1
- package/src/lib/components/console/product-editor-dialog.component.js +51 -7
- package/src/lib/components/console/product-editor-dialog.component.js.map +1 -1
- package/src/lib/components/console/product-labels-dialog.component.d.ts +13 -0
- package/src/lib/components/console/product-labels-dialog.component.js +197 -0
- package/src/lib/components/console/product-labels-dialog.component.js.map +1 -0
- package/src/lib/components/console/product-register-fields.component.d.ts +19 -0
- package/src/lib/components/console/product-register-fields.component.js +241 -0
- package/src/lib/components/console/product-register-fields.component.js.map +1 -0
- package/src/lib/components/console/product-zones.d.ts +44 -0
- package/src/lib/components/console/product-zones.js.map +1 -1
- package/src/lib/components/console/products-hub-card.component.js +12 -0
- package/src/lib/components/console/products-hub-card.component.js.map +1 -1
- package/src/lib/components/console/register-hardware-card.component.d.ts +33 -0
- package/src/lib/components/console/register-hardware-card.component.js +826 -0
- package/src/lib/components/console/register-hardware-card.component.js.map +1 -0
- package/src/lib/components/console/registers-card.component.js +24 -5
- package/src/lib/components/console/registers-card.component.js.map +1 -1
- package/src/lib/components/console/return-actions.d.ts +38 -0
- package/src/lib/components/console/return-actions.js +76 -0
- package/src/lib/components/console/return-actions.js.map +1 -0
- package/src/lib/components/console/return-detail-dialog.component.d.ts +34 -0
- package/src/lib/components/console/return-detail-dialog.component.js +718 -0
- package/src/lib/components/console/return-detail-dialog.component.js.map +1 -0
- package/src/lib/components/console/return-settings-card.component.d.ts +34 -0
- package/src/lib/components/console/return-settings-card.component.js +195 -0
- package/src/lib/components/console/return-settings-card.component.js.map +1 -0
- package/src/lib/components/console/return-zones.d.ts +87 -0
- package/src/lib/components/console/return-zones.js +31 -0
- package/src/lib/components/console/return-zones.js.map +1 -0
- package/src/lib/components/console/returns-card.component.d.ts +45 -0
- package/src/lib/components/console/returns-card.component.js +159 -0
- package/src/lib/components/console/returns-card.component.js.map +1 -0
- package/src/lib/components/console/shipping-settings-card.component.js +161 -5
- package/src/lib/components/console/shipping-settings-card.component.js.map +1 -1
- package/src/lib/components/console/shippingeasy-card.component.d.ts +59 -0
- package/src/lib/components/console/shippingeasy-card.component.js +378 -0
- package/src/lib/components/console/shippingeasy-card.component.js.map +1 -0
- package/src/lib/components/console/shipstation-card.component.d.ts +35 -0
- package/src/lib/components/console/shipstation-card.component.js +345 -0
- package/src/lib/components/console/shipstation-card.component.js.map +1 -0
- package/src/lib/components/console/start-return-dialog.component.d.ts +40 -0
- package/src/lib/components/console/start-return-dialog.component.js +243 -0
- package/src/lib/components/console/start-return-dialog.component.js.map +1 -0
- package/src/lib/components/console/stock-movements-card.component.js +2 -1
- package/src/lib/components/console/stock-movements-card.component.js.map +1 -1
- package/src/lib/components/console/store-settings-card.component.js +2 -66
- package/src/lib/components/console/store-settings-card.component.js.map +1 -1
- package/src/lib/components/console/store-zones.d.ts +42 -0
- package/src/lib/components/console/store-zones.js +39 -0
- package/src/lib/components/console/store-zones.js.map +1 -0
- package/src/lib/components/order-status.d.ts +36 -0
- package/src/lib/components/order-status.js +502 -0
- package/src/lib/components/order-status.js.map +1 -0
- package/src/lib/components/product-detail.js +41 -2
- package/src/lib/components/product-detail.js.map +1 -1
- package/src/lib/components/return-request.d.ts +32 -0
- package/src/lib/components/return-request.js +576 -0
- package/src/lib/components/return-request.js.map +1 -0
- package/src/lib/components/storefront-payment-appearance.d.ts +32 -0
- package/src/lib/components/storefront-payment-appearance.js +114 -0
- package/src/lib/components/storefront-payment-appearance.js.map +1 -0
- package/src/lib/components/storefront-payment-element.d.ts +57 -1
- package/src/lib/components/storefront-payment-element.js +332 -33
- package/src/lib/components/storefront-payment-element.js.map +1 -1
- package/src/lib/constants/order-status.d.ts +22 -0
- package/src/lib/constants/order-status.js +22 -0
- package/src/lib/constants/order-status.js.map +1 -0
- package/src/lib/constants/return-request.d.ts +27 -0
- package/src/lib/constants/return-request.js +32 -0
- package/src/lib/constants/return-request.js.map +1 -0
- package/src/lib/constants/stock-movement-query.js +2 -1
- package/src/lib/constants/stock-movement-query.js.map +1 -1
- package/src/lib/declarations.console-server.js +9 -0
- package/src/lib/declarations.console-server.js.map +1 -1
- package/src/lib/declarations.server.d.ts +2 -1
- package/src/lib/declarations.server.js +47 -1
- package/src/lib/declarations.server.js.map +1 -1
- package/src/lib/model/buyer-notifications.d.ts +59 -0
- package/src/lib/model/buyer-notifications.js +97 -0
- package/src/lib/model/buyer-notifications.js.map +1 -0
- package/src/lib/model/commerce-orders.d.ts +127 -1
- package/src/lib/model/commerce-orders.js +24 -15
- package/src/lib/model/commerce-orders.js.map +1 -1
- package/src/lib/model/commerce-payment-methods.d.ts +146 -0
- package/src/lib/model/commerce-payment-methods.js +247 -0
- package/src/lib/model/commerce-payment-methods.js.map +1 -0
- package/src/lib/model/commerce-pos-ops.d.ts +437 -0
- package/src/lib/model/commerce-pos-ops.js +721 -0
- package/src/lib/model/commerce-pos-ops.js.map +1 -0
- package/src/lib/model/commerce-pos.d.ts +263 -0
- package/src/lib/model/commerce-pos.js +375 -0
- package/src/lib/model/commerce-pos.js.map +1 -0
- package/src/lib/model/commerce-printers.d.ts +211 -0
- package/src/lib/model/commerce-printers.js +181 -0
- package/src/lib/model/commerce-printers.js.map +1 -0
- package/src/lib/model/commerce-receipt.d.ts +97 -0
- package/src/lib/model/commerce-receipt.js +180 -0
- package/src/lib/model/commerce-receipt.js.map +1 -0
- package/src/lib/model/commerce-returns.d.ts +207 -0
- package/src/lib/model/commerce-returns.js +300 -0
- package/src/lib/model/commerce-returns.js.map +1 -0
- package/src/lib/model/commerce-shipping.d.ts +44 -1
- package/src/lib/model/commerce-shipping.js +53 -9
- package/src/lib/model/commerce-shipping.js.map +1 -1
- package/src/lib/model/commerce-tax-engine.d.ts +90 -0
- package/src/lib/model/commerce-tax-engine.js +129 -0
- package/src/lib/model/commerce-tax-engine.js.map +1 -0
- package/src/lib/model/commerce.d.ts +88 -2
- package/src/lib/model/commerce.js +89 -1
- package/src/lib/model/commerce.js.map +1 -1
- package/src/lib/model/index.d.ts +15 -0
- package/src/lib/model/index.js +15 -0
- package/src/lib/model/index.js.map +1 -1
- package/src/lib/model/order-events.d.ts +154 -0
- package/src/lib/model/order-events.js +153 -0
- package/src/lib/model/order-events.js.map +1 -0
- package/src/lib/model/order-fulfillment.d.ts +117 -0
- package/src/lib/model/order-fulfillment.js +217 -0
- package/src/lib/model/order-fulfillment.js.map +1 -0
- package/src/lib/model/order-history.d.ts +58 -0
- package/src/lib/model/order-history.js +22 -0
- package/src/lib/model/order-history.js.map +1 -0
- package/src/lib/model/order-list-fields.d.ts +9 -1
- package/src/lib/model/order-list-fields.js +7 -1
- package/src/lib/model/order-list-fields.js.map +1 -1
- package/src/lib/model/order-shipping-export.d.ts +91 -0
- package/src/lib/model/order-shipping-export.js +192 -0
- package/src/lib/model/order-shipping-export.js.map +1 -0
- package/src/lib/model/order-status-view.d.ts +103 -0
- package/src/lib/model/order-status-view.js +156 -0
- package/src/lib/model/order-status-view.js.map +1 -0
- package/src/lib/model/order-webhooks.d.ts +142 -0
- package/src/lib/model/order-webhooks.js +91 -0
- package/src/lib/model/order-webhooks.js.map +1 -0
- package/src/lib/model/product-channel.d.ts +56 -0
- package/src/lib/model/product-channel.js +86 -0
- package/src/lib/model/product-channel.js.map +1 -0
- package/src/lib/model/product-modifiers.d.ts +80 -0
- package/src/lib/model/product-modifiers.js +140 -0
- package/src/lib/model/product-modifiers.js.map +1 -0
- package/src/lib/model/shippingeasy.d.ts +94 -0
- package/src/lib/model/shippingeasy.js +267 -0
- package/src/lib/model/shippingeasy.js.map +1 -0
- package/src/lib/model/shipstation.d.ts +125 -0
- package/src/lib/model/shipstation.js +399 -0
- package/src/lib/model/shipstation.js.map +1 -0
- package/src/lib/model/smart-collection-reads.d.ts +32 -0
- package/src/lib/model/smart-collection-reads.js +63 -0
- package/src/lib/model/smart-collection-reads.js.map +1 -0
- package/src/lib/model/tracking-url.d.ts +74 -0
- package/src/lib/model/tracking-url.js +159 -0
- package/src/lib/model/tracking-url.js.map +1 -0
- package/src/lib/plugin-config.d.ts +13 -0
- package/src/lib/plugin-config.js +77 -5
- package/src/lib/plugin-config.js.map +1 -1
- package/src/lib/plugin.js +23 -0
- package/src/lib/plugin.js.map +1 -1
- package/src/lib/pos-ops-config.d.ts +39 -0
- package/src/lib/pos-ops-config.js +88 -0
- package/src/lib/pos-ops-config.js.map +1 -0
- package/src/lib/printing/print-document.d.ts +106 -0
- package/src/lib/printing/print-document.js +464 -0
- package/src/lib/printing/print-document.js.map +1 -0
- package/src/lib/printing/product-labels.d.ts +58 -0
- package/src/lib/printing/product-labels.js +116 -0
- package/src/lib/printing/product-labels.js.map +1 -0
- package/src/lib/printing/render-epson.d.ts +57 -0
- package/src/lib/printing/render-epson.js +135 -0
- package/src/lib/printing/render-epson.js.map +1 -0
- package/src/lib/printing/render-star.d.ts +45 -0
- package/src/lib/printing/render-star.js +100 -0
- package/src/lib/printing/render-star.js.map +1 -0
- package/src/lib/printing/render-text.d.ts +25 -0
- package/src/lib/printing/render-text.js +53 -0
- package/src/lib/printing/render-text.js.map +1 -0
- package/src/lib/server/api-v1/openapi.js +27 -4
- package/src/lib/server/api-v1/openapi.js.map +1 -1
- package/src/lib/server/api-v1/order-view.d.ts +67 -0
- package/src/lib/server/api-v1/order-view.js +120 -0
- package/src/lib/server/api-v1/order-view.js.map +1 -0
- package/src/lib/server/api-v1/orders-and-products.js +58 -65
- package/src/lib/server/api-v1/orders-and-products.js.map +1 -1
- package/src/lib/server/billing-webhook.js +135 -28
- package/src/lib/server/billing-webhook.js.map +1 -1
- package/src/lib/server/cancel-order.js +29 -0
- package/src/lib/server/cancel-order.js.map +1 -1
- package/src/lib/server/carrier-rates-availability.d.ts +26 -0
- package/src/lib/server/carrier-rates-availability.js +76 -0
- package/src/lib/server/carrier-rates-availability.js.map +1 -0
- package/src/lib/server/carrier-shipping.d.ts +84 -0
- package/src/lib/server/carrier-shipping.js +135 -0
- package/src/lib/server/carrier-shipping.js.map +1 -0
- package/src/lib/server/cart-checkout.d.ts +2 -0
- package/src/lib/server/cart-checkout.js +226 -22
- package/src/lib/server/cart-checkout.js.map +1 -1
- package/src/lib/server/checkout-extras.d.ts +64 -0
- package/src/lib/server/checkout-extras.js +157 -0
- package/src/lib/server/checkout-extras.js.map +1 -0
- package/src/lib/server/{feed.d.ts → checkout-status.d.ts} +2 -7
- package/src/lib/server/checkout-status.js +111 -0
- package/src/lib/server/checkout-status.js.map +1 -0
- package/src/lib/server/checkout.js +86 -9
- package/src/lib/server/checkout.js.map +1 -1
- package/src/lib/server/draft-order.js +34 -5
- package/src/lib/server/draft-order.js.map +1 -1
- package/src/lib/server/fulfill-order.d.ts +127 -10
- package/src/lib/server/fulfill-order.js +451 -49
- package/src/lib/server/fulfill-order.js.map +1 -1
- package/src/lib/server/legacy-feed.d.ts +28 -0
- package/src/lib/server/legacy-feed.js +52 -0
- package/src/lib/server/legacy-feed.js.map +1 -0
- package/src/lib/server/native-checkout.d.ts +34 -15
- package/src/lib/server/native-checkout.js +32 -17
- package/src/lib/server/native-checkout.js.map +1 -1
- package/src/lib/server/order-event-host-emit.d.ts +23 -0
- package/src/lib/server/order-event-host-emit.js +30 -0
- package/src/lib/server/order-event-host-emit.js.map +1 -0
- package/src/lib/server/order-event-triggers.d.ts +37 -0
- package/src/lib/server/order-event-triggers.js +119 -0
- package/src/lib/server/order-event-triggers.js.map +1 -0
- package/src/lib/server/order-events.d.ts +62 -0
- package/src/lib/server/order-events.js +109 -0
- package/src/lib/server/order-events.js.map +1 -0
- package/src/lib/server/order-history.d.ts +23 -0
- package/src/lib/server/order-history.js +65 -0
- package/src/lib/server/order-history.js.map +1 -0
- package/src/lib/server/order-notifications.d.ts +185 -0
- package/src/lib/server/order-notifications.js +567 -0
- package/src/lib/server/order-notifications.js.map +1 -0
- package/src/lib/server/order-receipt-send.d.ts +39 -0
- package/src/lib/server/order-receipt-send.js +151 -0
- package/src/lib/server/order-receipt-send.js.map +1 -0
- package/src/lib/server/order-status-token.d.ts +31 -0
- package/src/lib/server/order-status-token.js +75 -0
- package/src/lib/server/order-status-token.js.map +1 -0
- package/src/lib/server/order-status.d.ts +58 -0
- package/src/lib/server/order-status.js +141 -0
- package/src/lib/server/order-status.js.map +1 -0
- package/src/lib/server/order-webhooks.d.ts +108 -0
- package/src/lib/server/order-webhooks.js +622 -0
- package/src/lib/server/order-webhooks.js.map +1 -0
- package/src/lib/server/orders-shipping-prepare.d.ts +26 -0
- package/src/lib/server/orders-shipping-prepare.js +121 -0
- package/src/lib/server/orders-shipping-prepare.js.map +1 -0
- package/src/lib/server/payment-method-domains.d.ts +209 -0
- package/src/lib/server/payment-method-domains.js +444 -0
- package/src/lib/server/payment-method-domains.js.map +1 -0
- package/src/lib/server/payment-methods.d.ts +77 -0
- package/src/lib/server/payment-methods.js +284 -0
- package/src/lib/server/payment-methods.js.map +1 -0
- package/src/lib/server/pos-auth.d.ts +50 -0
- package/src/lib/server/pos-auth.js +121 -0
- package/src/lib/server/pos-auth.js.map +1 -0
- package/src/lib/server/pos-customer.d.ts +49 -0
- package/src/lib/server/pos-customer.js +257 -0
- package/src/lib/server/pos-customer.js.map +1 -0
- package/src/lib/server/pos-display.d.ts +57 -0
- package/src/lib/server/pos-display.js +419 -0
- package/src/lib/server/pos-display.js.map +1 -0
- package/src/lib/server/pos-fee-month.d.ts +34 -0
- package/src/lib/server/pos-fee-month.js +36 -0
- package/src/lib/server/pos-fee-month.js.map +1 -0
- package/src/lib/server/pos-ops-gate.d.ts +161 -0
- package/src/lib/server/pos-ops-gate.js +295 -0
- package/src/lib/server/pos-ops-gate.js.map +1 -0
- package/src/lib/server/pos-ops-routes.d.ts +22 -0
- package/src/lib/server/pos-ops-routes.js +36 -0
- package/src/lib/server/pos-ops-routes.js.map +1 -0
- package/src/lib/server/pos-order.d.ts +1 -18
- package/src/lib/server/pos-order.js +222 -42
- package/src/lib/server/pos-order.js.map +1 -1
- package/src/lib/server/pos-payment.d.ts +39 -0
- package/src/lib/server/pos-payment.js +922 -0
- package/src/lib/server/pos-payment.js.map +1 -0
- package/src/lib/server/pos-print.d.ts +82 -0
- package/src/lib/server/pos-print.js +193 -0
- package/src/lib/server/pos-print.js.map +1 -0
- package/src/lib/server/pos-readers.d.ts +27 -0
- package/src/lib/server/pos-readers.js +276 -0
- package/src/lib/server/pos-readers.js.map +1 -0
- package/src/lib/server/pos-refund-authority.d.ts +60 -0
- package/src/lib/server/pos-refund-authority.js +72 -0
- package/src/lib/server/pos-refund-authority.js.map +1 -0
- package/src/lib/server/pos-return.d.ts +58 -0
- package/src/lib/server/pos-return.js +891 -0
- package/src/lib/server/pos-return.js.map +1 -0
- package/src/lib/server/pos-sale-stamp.d.ts +66 -0
- package/src/lib/server/pos-sale-stamp.js +84 -0
- package/src/lib/server/pos-sale-stamp.js.map +1 -0
- package/src/lib/server/pos-sale.d.ts +170 -0
- package/src/lib/server/pos-sale.js +461 -0
- package/src/lib/server/pos-sale.js.map +1 -0
- package/src/lib/server/pos-shift.d.ts +45 -0
- package/src/lib/server/pos-shift.js +484 -0
- package/src/lib/server/pos-shift.js.map +1 -0
- package/src/lib/server/pos-staff-pin.d.ts +26 -0
- package/src/lib/server/pos-staff-pin.js +339 -0
- package/src/lib/server/pos-staff-pin.js.map +1 -0
- package/src/lib/server/pos-stripe.d.ts +91 -0
- package/src/lib/server/pos-stripe.js +129 -0
- package/src/lib/server/pos-stripe.js.map +1 -0
- package/src/lib/server/pos-terminal-connection-token.d.ts +48 -0
- package/src/lib/server/pos-terminal-connection-token.js +166 -0
- package/src/lib/server/pos-terminal-connection-token.js.map +1 -0
- package/src/lib/server/pos-terminal.d.ts +218 -0
- package/src/lib/server/pos-terminal.js +1014 -0
- package/src/lib/server/pos-terminal.js.map +1 -0
- package/src/lib/server/print-queue.d.ts +124 -0
- package/src/lib/server/print-queue.js +301 -0
- package/src/lib/server/print-queue.js.map +1 -0
- package/src/lib/server/printer-poll.d.ts +75 -0
- package/src/lib/server/printer-poll.js +325 -0
- package/src/lib/server/printer-poll.js.map +1 -0
- package/src/lib/server/printer-secret.d.ts +39 -0
- package/src/lib/server/printer-secret.js +56 -0
- package/src/lib/server/printer-secret.js.map +1 -0
- package/src/lib/server/printers.d.ts +114 -0
- package/src/lib/server/printers.js +546 -0
- package/src/lib/server/printers.js.map +1 -0
- package/src/lib/server/product-catalog.d.ts +42 -0
- package/src/lib/server/product-catalog.js +305 -0
- package/src/lib/server/product-catalog.js.map +1 -0
- package/src/lib/server/refund.js +110 -45
- package/src/lib/server/refund.js.map +1 -1
- package/src/lib/server/reserve.js +2 -0
- package/src/lib/server/reserve.js.map +1 -1
- package/src/lib/server/return-status-action.d.ts +37 -0
- package/src/lib/server/return-status-action.js +57 -0
- package/src/lib/server/return-status-action.js.map +1 -0
- package/src/lib/server/returns.d.ts +119 -0
- package/src/lib/server/returns.js +938 -0
- package/src/lib/server/returns.js.map +1 -0
- package/src/lib/server/shipment-records.d.ts +36 -0
- package/src/lib/server/shipment-records.js +289 -0
- package/src/lib/server/shipment-records.js.map +1 -0
- package/src/lib/server/shipping-connector-gates.d.ts +40 -0
- package/src/lib/server/shipping-connector-gates.js +97 -0
- package/src/lib/server/shipping-connector-gates.js.map +1 -0
- package/src/lib/server/shipping-connectors.d.ts +29 -0
- package/src/lib/server/shipping-connectors.js +236 -0
- package/src/lib/server/shipping-connectors.js.map +1 -0
- package/src/lib/server/shippingeasy.d.ts +238 -0
- package/src/lib/server/shippingeasy.js +787 -0
- package/src/lib/server/shippingeasy.js.map +1 -0
- package/src/lib/server/shipstation.d.ts +129 -0
- package/src/lib/server/shipstation.js +483 -0
- package/src/lib/server/shipstation.js.map +1 -0
- package/src/lib/server/site-page-resolver.d.ts +5 -0
- package/src/lib/server/site-page-resolver.js +156 -1
- package/src/lib/server/site-page-resolver.js.map +1 -1
- package/src/lib/server/stock-levels.d.ts +21 -0
- package/src/lib/server/stock-levels.js +263 -0
- package/src/lib/server/stock-levels.js.map +1 -0
- package/src/lib/server/stripe-refund.d.ts +47 -0
- package/src/lib/server/stripe-refund.js +87 -0
- package/src/lib/server/stripe-refund.js.map +1 -0
- package/src/lib/server/supplier-update.js +46 -5
- package/src/lib/server/supplier-update.js.map +1 -1
- package/src/lib/server/tax-engine-quote.d.ts +47 -0
- package/src/lib/server/tax-engine-quote.js +105 -0
- package/src/lib/server/tax-engine-quote.js.map +1 -0
- package/src/lib/server.js +138 -2
- package/src/lib/server.js.map +1 -1
- package/src/lib/site.js +12 -0
- package/src/lib/site.js.map +1 -1
- package/src/lib/subprocessors.d.ts +26 -0
- package/src/lib/subprocessors.js +50 -0
- package/src/lib/subprocessors.js.map +1 -0
- package/src/lib/tenant-emails.js +461 -3
- package/src/lib/tenant-emails.js.map +1 -1
- package/src/lib/testing/fake-firestore.d.ts +45 -0
- package/src/lib/testing/fake-firestore.js +189 -0
- package/src/lib/testing/fake-firestore.js.map +1 -0
- package/src/lib/testing/memory-firestore.d.ts +123 -0
- package/src/lib/testing/memory-firestore.js +274 -0
- package/src/lib/testing/memory-firestore.js.map +1 -0
- package/src/lib/testing/pos-ops-harness.d.ts +50 -0
- package/src/lib/testing/pos-ops-harness.js +184 -0
- package/src/lib/testing/pos-ops-harness.js.map +1 -0
- package/src/lib/testing/pos-ops-memory-firestore.d.ts +55 -0
- package/src/lib/testing/pos-ops-memory-firestore.js +376 -0
- package/src/lib/testing/pos-ops-memory-firestore.js.map +1 -0
- package/src/lib/transfer/records-transfer.d.ts +11 -1
- package/src/lib/transfer/records-transfer.js +127 -5
- package/src/lib/transfer/records-transfer.js.map +1 -1
- package/src/lib/transfer/records.server.d.ts +9 -2
- package/src/lib/transfer/records.server.js +58 -7
- package/src/lib/transfer/records.server.js.map +1 -1
- package/src/lib/transfer/register-transfer-resources.js +40 -1
- package/src/lib/transfer/register-transfer-resources.js.map +1 -1
- package/src/lib/transfer/register-transfer-ui.js +4 -1
- package/src/lib/transfer/register-transfer-ui.js.map +1 -1
- package/src/lib/transfer/shipping-presets.d.ts +23 -0
- package/src/lib/transfer/shipping-presets.js +156 -0
- package/src/lib/transfer/shipping-presets.js.map +1 -0
- package/src/lib/transfer/tracking-transfer.d.ts +101 -0
- package/src/lib/transfer/tracking-transfer.js +546 -0
- package/src/lib/transfer/tracking-transfer.js.map +1 -0
- package/src/lib/transfer/tracking.server.d.ts +37 -0
- package/src/lib/transfer/tracking.server.js +393 -0
- package/src/lib/transfer/tracking.server.js.map +1 -0
- package/src/lib/transfer/transfer-keys.d.ts +2 -1
- package/src/lib/transfer/transfer-keys.js +6 -2
- package/src/lib/transfer/transfer-keys.js.map +1 -1
- package/src/lib/utils/code128.d.ts +37 -0
- package/src/lib/utils/code128.js +199 -0
- package/src/lib/utils/code128.js.map +1 -0
- package/src/lib/utils/order-invoice.d.ts +55 -0
- package/src/lib/utils/order-invoice.js +127 -0
- package/src/lib/utils/order-invoice.js.map +1 -0
- package/src/lib/utils/use-checkout-return-notice.d.ts +34 -0
- package/src/lib/utils/use-checkout-return-notice.js +78 -0
- package/src/lib/utils/use-checkout-return-notice.js.map +1 -0
- package/src/lib/server/feed.js +0 -69
- package/src/lib/server/feed.js.map +0 -1
|
@@ -0,0 +1,88 @@
|
|
|
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
|
+
* HOW THE REGISTER IS RUN (AGL-3609): shifts, refunds at the till, the
|
|
18
|
+
* staff lock and what the receipt prints. Pure data, spread into
|
|
19
|
+
* `COMMERCE_CONFIG_SCHEMA`, so the settings form, the routes and the
|
|
20
|
+
* register read one set of keys with one set of bounds.
|
|
21
|
+
*=========================================*/ /**
|
|
22
|
+
* The most a register refund may be without a manager's PIN, by default:
|
|
23
|
+
* nothing. Before this, only an admin of the whole workspace could refund at
|
|
24
|
+
* all, so a default above zero would hand every cashier refunds on the day it
|
|
25
|
+
* shipped. A merchant who trusts the till raises it.
|
|
26
|
+
*/ export const POS_REFUND_LIMIT_DEFAULT = 0;
|
|
27
|
+
export const POS_OPS_CONFIG_FIELDS = [
|
|
28
|
+
{
|
|
29
|
+
key: 'posRequireOpenShift',
|
|
30
|
+
label: 'Require an open shift to sell',
|
|
31
|
+
type: 'boolean',
|
|
32
|
+
description: 'A register refuses sales and cash refunds until someone opens a shift ' + 'with a starting float, so every sale is counted in a drawer.'
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
key: 'posRefundLimit',
|
|
36
|
+
label: 'Cashier refund limit ($)',
|
|
37
|
+
type: 'number',
|
|
38
|
+
min: 0,
|
|
39
|
+
max: 100000,
|
|
40
|
+
description: 'The largest return a cashier may refund at the register without a ' + 'manager entering their PIN. Workspace admins have no limit. Set to 0 to ' + 'have a manager approve every register refund.'
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
key: 'posAutoLockMinutes',
|
|
44
|
+
label: 'Lock the register after (minutes idle)',
|
|
45
|
+
type: 'number',
|
|
46
|
+
min: 0,
|
|
47
|
+
max: 240,
|
|
48
|
+
description: 'After this many minutes without a tap the register locks and asks for ' + 'a staff PIN. Set to 0 to never lock.'
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
key: 'posReceiptAddress',
|
|
52
|
+
label: 'Address on printed receipts',
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'Printed under your store name. Put each line on its own line.'
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
key: 'posReturnPolicy',
|
|
58
|
+
label: 'Return policy on printed receipts',
|
|
59
|
+
type: 'string',
|
|
60
|
+
description: 'Printed at the foot of every receipt and gift receipt.'
|
|
61
|
+
}
|
|
62
|
+
];
|
|
63
|
+
export const POS_OPS_CONFIG_DEFAULTS = {
|
|
64
|
+
posRequireOpenShift: false,
|
|
65
|
+
posRefundLimit: POS_REFUND_LIMIT_DEFAULT,
|
|
66
|
+
posAutoLockMinutes: 0,
|
|
67
|
+
posReceiptAddress: '',
|
|
68
|
+
posReturnPolicy: ''
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Read defensively: the framework has already clamped a schema'd value, and
|
|
72
|
+
* this second bound is for a config read without the schema.
|
|
73
|
+
*/ export function posOpsSettings(config) {
|
|
74
|
+
var _ref, _ref1;
|
|
75
|
+
const number = (key, max, fallback)=>{
|
|
76
|
+
const raw = Number(config == null ? void 0 : config[key]);
|
|
77
|
+
return Number.isFinite(raw) ? Math.min(max, Math.max(0, raw)) : fallback;
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
requireOpenShift: (config == null ? void 0 : config['posRequireOpenShift']) === true,
|
|
81
|
+
refundLimitCents: Math.round(number('posRefundLimit', 100000, POS_REFUND_LIMIT_DEFAULT) * 100),
|
|
82
|
+
autoLockMinutes: Math.round(number('posAutoLockMinutes', 240, 0)),
|
|
83
|
+
receiptAddress: String((_ref = config == null ? void 0 : config['posReceiptAddress']) != null ? _ref : '').slice(0, 500),
|
|
84
|
+
returnPolicy: String((_ref1 = config == null ? void 0 : config['posReturnPolicy']) != null ? _ref1 : '').slice(0, 1000)
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=pos-ops-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/plugins/commerce/src/lib/pos-ops-config.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\nimport type { PluginConfigField } from '@aglyn/aglyn'\n\n/*==========================================\n * HOW THE REGISTER IS RUN (AGL-3609): shifts, refunds at the till, the\n * staff lock and what the receipt prints. Pure data, spread into\n * `COMMERCE_CONFIG_SCHEMA`, so the settings form, the routes and the\n * register read one set of keys with one set of bounds.\n *=========================================*/\n\n/**\n * The most a register refund may be without a manager's PIN, by default:\n * nothing. Before this, only an admin of the whole workspace could refund at\n * all, so a default above zero would hand every cashier refunds on the day it\n * shipped. A merchant who trusts the till raises it.\n */\nexport const POS_REFUND_LIMIT_DEFAULT = 0\n\nexport const POS_OPS_CONFIG_FIELDS: PluginConfigField[] = [\n {\n key: 'posRequireOpenShift',\n label: 'Require an open shift to sell',\n type: 'boolean',\n description:\n 'A register refuses sales and cash refunds until someone opens a shift ' +\n 'with a starting float, so every sale is counted in a drawer.',\n },\n {\n key: 'posRefundLimit',\n label: 'Cashier refund limit ($)',\n type: 'number',\n min: 0,\n max: 100000,\n description:\n 'The largest return a cashier may refund at the register without a ' +\n 'manager entering their PIN. Workspace admins have no limit. Set to 0 to ' +\n 'have a manager approve every register refund.',\n },\n {\n key: 'posAutoLockMinutes',\n label: 'Lock the register after (minutes idle)',\n type: 'number',\n min: 0,\n max: 240,\n description:\n 'After this many minutes without a tap the register locks and asks for ' +\n 'a staff PIN. Set to 0 to never lock.',\n },\n {\n key: 'posReceiptAddress',\n label: 'Address on printed receipts',\n type: 'string',\n description: 'Printed under your store name. Put each line on its own line.',\n },\n {\n key: 'posReturnPolicy',\n label: 'Return policy on printed receipts',\n type: 'string',\n description: 'Printed at the foot of every receipt and gift receipt.',\n },\n]\n\nexport const POS_OPS_CONFIG_DEFAULTS: Record<string, unknown> = {\n posRequireOpenShift: false,\n posRefundLimit: POS_REFUND_LIMIT_DEFAULT,\n posAutoLockMinutes: 0,\n posReceiptAddress: '',\n posReturnPolicy: '',\n}\n\n/** The register settings, typed and bounded, for one site's merged config. */\nexport interface PosOpsSettings {\n requireOpenShift: boolean\n refundLimitCents: number\n autoLockMinutes: number\n receiptAddress: string\n returnPolicy: string\n}\n\n/**\n * Read defensively: the framework has already clamped a schema'd value, and\n * this second bound is for a config read without the schema.\n */\nexport function posOpsSettings(config: Record<string, unknown> | null | undefined): PosOpsSettings {\n const number = (key: string, max: number, fallback: number) => {\n const raw = Number(config?.[key])\n return Number.isFinite(raw) ? Math.min(max, Math.max(0, raw)) : fallback\n }\n return {\n requireOpenShift: config?.['posRequireOpenShift'] === true,\n refundLimitCents: Math.round(number('posRefundLimit', 100000, POS_REFUND_LIMIT_DEFAULT) * 100),\n autoLockMinutes: Math.round(number('posAutoLockMinutes', 240, 0)),\n receiptAddress: String(config?.['posReceiptAddress'] ?? '').slice(0, 500),\n returnPolicy: String(config?.['posReturnPolicy'] ?? '').slice(0, 1000),\n }\n}\n"],"names":["POS_REFUND_LIMIT_DEFAULT","POS_OPS_CONFIG_FIELDS","key","label","type","description","min","max","POS_OPS_CONFIG_DEFAULTS","posRequireOpenShift","posRefundLimit","posAutoLockMinutes","posReceiptAddress","posReturnPolicy","posOpsSettings","config","number","fallback","raw","Number","isFinite","Math","requireOpenShift","refundLimitCents","round","autoLockMinutes","receiptAddress","String","slice","returnPolicy"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAID;;;;;2CAK2C,GAE3C;;;;;CAKC,GACD,OAAO,MAAMA,2BAA2B,EAAC;AAEzC,OAAO,MAAMC,wBAA6C;IACxD;QACEC,KAAK;QACLC,OAAO;QACPC,MAAM;QACNC,aACE,2EACA;IACJ;IACA;QACEH,KAAK;QACLC,OAAO;QACPC,MAAM;QACNE,KAAK;QACLC,KAAK;QACLF,aACE,uEACA,6EACA;IACJ;IACA;QACEH,KAAK;QACLC,OAAO;QACPC,MAAM;QACNE,KAAK;QACLC,KAAK;QACLF,aACE,2EACA;IACJ;IACA;QACEH,KAAK;QACLC,OAAO;QACPC,MAAM;QACNC,aAAa;IACf;IACA;QACEH,KAAK;QACLC,OAAO;QACPC,MAAM;QACNC,aAAa;IACf;CACD,CAAA;AAED,OAAO,MAAMG,0BAAmD;IAC9DC,qBAAqB;IACrBC,gBAAgBV;IAChBW,oBAAoB;IACpBC,mBAAmB;IACnBC,iBAAiB;AACnB,EAAC;AAWD;;;CAGC,GACD,OAAO,SAASC,eAAeC,MAAkD;;IAC/E,MAAMC,SAAS,CAACd,KAAaK,KAAaU;QACxC,MAAMC,MAAMC,OAAOJ,0BAAAA,MAAQ,CAACb,IAAI;QAChC,OAAOiB,OAAOC,QAAQ,CAACF,OAAOG,KAAKf,GAAG,CAACC,KAAKc,KAAKd,GAAG,CAAC,GAAGW,QAAQD;IAClE;IACA,OAAO;QACLK,kBAAkBP,CAAAA,0BAAAA,MAAQ,CAAC,sBAAsB,MAAK;QACtDQ,kBAAkBF,KAAKG,KAAK,CAACR,OAAO,kBAAkB,QAAQhB,4BAA4B;QAC1FyB,iBAAiBJ,KAAKG,KAAK,CAACR,OAAO,sBAAsB,KAAK;QAC9DU,gBAAgBC,eAAOZ,0BAAAA,MAAQ,CAAC,oBAAoB,mBAAI,IAAIa,KAAK,CAAC,GAAG;QACrEC,cAAcF,gBAAOZ,0BAAAA,MAAQ,CAAC,kBAAkB,oBAAI,IAAIa,KAAK,CAAC,GAAG;IACnE;AACF"}
|
|
@@ -0,0 +1,106 @@
|
|
|
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 ReceiptData } from '../model/commerce-receipt';
|
|
18
|
+
import type { PrintReport } from '../model/commerce-printers';
|
|
19
|
+
/**
|
|
20
|
+
* A printer-neutral document (AGL-3619): what a receipt, a test page or a
|
|
21
|
+
* drawer kick IS, laid out in fixed columns, before any vendor's bytes. Each
|
|
22
|
+
* renderer (`render-star.ts`, `render-epson.ts`, `render-text.ts`) translates
|
|
23
|
+
* these operations one for one, so the layout is decided once and a Star and
|
|
24
|
+
* an Epson print the same receipt.
|
|
25
|
+
*
|
|
26
|
+
* Text operations are one printed LINE each and already fit the paper: the
|
|
27
|
+
* layout wraps and pads here, because a thermal printer's own wrapping breaks
|
|
28
|
+
* mid-word and cannot right-align a price.
|
|
29
|
+
*/
|
|
30
|
+
export type PrintAlign = 'left' | 'center' | 'right';
|
|
31
|
+
export type PrintOp = {
|
|
32
|
+
op: 'text';
|
|
33
|
+
text: string;
|
|
34
|
+
align?: PrintAlign;
|
|
35
|
+
bold?: boolean;
|
|
36
|
+
size?: 1 | 2;
|
|
37
|
+
} | {
|
|
38
|
+
op: 'feed';
|
|
39
|
+
lines: number;
|
|
40
|
+
} | {
|
|
41
|
+
op: 'barcode';
|
|
42
|
+
data: string;
|
|
43
|
+
} | {
|
|
44
|
+
op: 'logo';
|
|
45
|
+
} | {
|
|
46
|
+
op: 'drawer';
|
|
47
|
+
} | {
|
|
48
|
+
op: 'cut';
|
|
49
|
+
};
|
|
50
|
+
export interface PrintDocument {
|
|
51
|
+
/** Characters per line at size 1. */
|
|
52
|
+
columns: number;
|
|
53
|
+
ops: PrintOp[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Text as the printer's built-in ASCII font can print it. Accents are folded
|
|
57
|
+
* (`Crème brûlée` → `Creme brulee`), the punctuation a product name or a money
|
|
58
|
+
* format carries is spelled in ASCII, and anything left becomes `?` rather
|
|
59
|
+
* than the mojibake a raw UTF-8 byte prints as on a code-page printer.
|
|
60
|
+
*/
|
|
61
|
+
export declare function toPrintable(value: unknown): string;
|
|
62
|
+
/** Words wrapped to `width`, breaking a word only when it alone is too long. */
|
|
63
|
+
export declare function wrapText(text: string, width: number): string[];
|
|
64
|
+
/**
|
|
65
|
+
* A left label and a right amount on one line; a label too long to share the
|
|
66
|
+
* line wraps above, so the amount always lands flush right.
|
|
67
|
+
*/
|
|
68
|
+
export declare function twoColumnLines(left: string, right: string, width: number): string[];
|
|
69
|
+
export interface LayoutOptions {
|
|
70
|
+
columns: number;
|
|
71
|
+
/** Print the logo stored in the printer. */
|
|
72
|
+
logo?: boolean;
|
|
73
|
+
/** Kick the cash drawer as the receipt starts printing. */
|
|
74
|
+
openDrawer?: boolean;
|
|
75
|
+
}
|
|
76
|
+
/** The customer receipt. */
|
|
77
|
+
export declare function layoutReceipt(receipt: ReceiptData, options: LayoutOptions): PrintDocument;
|
|
78
|
+
/**
|
|
79
|
+
* The ticket the kitchen, the bar or the packing bench works from: the order
|
|
80
|
+
* number large enough to call out, when it was rung and on which register,
|
|
81
|
+
* then each item with its quantity and options. No prices, no tenders and no
|
|
82
|
+
* barcode: the people reading it are making the order, not paying for it.
|
|
83
|
+
*/
|
|
84
|
+
export declare function layoutKitchenTicket(receipt: ReceiptData, options: {
|
|
85
|
+
columns: number;
|
|
86
|
+
}): PrintDocument;
|
|
87
|
+
/**
|
|
88
|
+
* Code128 code set B carries printable ASCII, and a scanner reads a short
|
|
89
|
+
* symbol more reliably than a long one, so the data is the order number
|
|
90
|
+
* reduced to those characters and capped well under a receipt's width.
|
|
91
|
+
*/
|
|
92
|
+
export declare function code128Printable(value: unknown): string;
|
|
93
|
+
/** The page "Print test" sends: proves the URL, the paper, the cutter and, if asked, the drawer. */
|
|
94
|
+
export declare function layoutTestPage(input: {
|
|
95
|
+
columns: number;
|
|
96
|
+
printerName: string;
|
|
97
|
+
storeName: string;
|
|
98
|
+
atMs: number;
|
|
99
|
+
timeZone?: string;
|
|
100
|
+
logo?: boolean;
|
|
101
|
+
openDrawer?: boolean;
|
|
102
|
+
}): PrintDocument;
|
|
103
|
+
/** A titled report on the receipt roll: a shift's X or Z report (AGL-3609). */
|
|
104
|
+
export declare function layoutReport(report: PrintReport, options: Pick<LayoutOptions, 'columns' | 'logo'>): PrintDocument;
|
|
105
|
+
/** A drawer kick with nothing printed: a paid-out, a cash refund, "Open drawer". */
|
|
106
|
+
export declare function layoutDrawerKick(columns: number): PrintDocument;
|
|
@@ -0,0 +1,464 @@
|
|
|
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
|
+
*/ import { formatReceiptMoney, formatReceiptTime } from "../model/commerce-receipt.js";
|
|
17
|
+
const SYMBOLS = {
|
|
18
|
+
'•': '*',
|
|
19
|
+
'·': '*',
|
|
20
|
+
'–': '-',
|
|
21
|
+
'—': '-',
|
|
22
|
+
'‘': "'",
|
|
23
|
+
'’': "'",
|
|
24
|
+
'“': '"',
|
|
25
|
+
'”': '"',
|
|
26
|
+
'…': '...',
|
|
27
|
+
' ': ' ',
|
|
28
|
+
' ': ' ',
|
|
29
|
+
'€': 'EUR',
|
|
30
|
+
'£': 'GBP',
|
|
31
|
+
'¥': 'JPY',
|
|
32
|
+
'₹': 'INR'
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Text as the printer's built-in ASCII font can print it. Accents are folded
|
|
36
|
+
* (`Crème brûlée` → `Creme brulee`), the punctuation a product name or a money
|
|
37
|
+
* format carries is spelled in ASCII, and anything left becomes `?` rather
|
|
38
|
+
* than the mojibake a raw UTF-8 byte prints as on a code-page printer.
|
|
39
|
+
*/ export function toPrintable(value) {
|
|
40
|
+
return String(value != null ? value : '').normalize('NFKD').replace(/[̀-ͯ]/g, '').replace(/[^\x20-\x7e]/g, (char)=>{
|
|
41
|
+
var _SYMBOLS_char;
|
|
42
|
+
return (_SYMBOLS_char = SYMBOLS[char]) != null ? _SYMBOLS_char : /\s/.test(char) ? ' ' : '?';
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/** Words wrapped to `width`, breaking a word only when it alone is too long. */ export function wrapText(text, width) {
|
|
46
|
+
const lines = [];
|
|
47
|
+
let current = '';
|
|
48
|
+
for (const word of toPrintable(text).split(/\s+/).filter(Boolean)){
|
|
49
|
+
let rest = word;
|
|
50
|
+
while(rest.length > width){
|
|
51
|
+
if (current) {
|
|
52
|
+
lines.push(current);
|
|
53
|
+
current = '';
|
|
54
|
+
}
|
|
55
|
+
lines.push(rest.slice(0, width));
|
|
56
|
+
rest = rest.slice(width);
|
|
57
|
+
}
|
|
58
|
+
if (!rest) continue;
|
|
59
|
+
if (!current) current = rest;
|
|
60
|
+
else if (current.length + 1 + rest.length <= width) current += ` ${rest}`;
|
|
61
|
+
else {
|
|
62
|
+
lines.push(current);
|
|
63
|
+
current = rest;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (current) lines.push(current);
|
|
67
|
+
return lines.length ? lines : [
|
|
68
|
+
''
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A left label and a right amount on one line; a label too long to share the
|
|
73
|
+
* line wraps above, so the amount always lands flush right.
|
|
74
|
+
*/ export function twoColumnLines(left, right, width) {
|
|
75
|
+
var _wrapped_pop;
|
|
76
|
+
const amount = toPrintable(right);
|
|
77
|
+
const room = Math.max(1, width - amount.length - 1);
|
|
78
|
+
const wrapped = wrapText(left, room);
|
|
79
|
+
const last = (_wrapped_pop = wrapped.pop()) != null ? _wrapped_pop : '';
|
|
80
|
+
return [
|
|
81
|
+
...wrapped,
|
|
82
|
+
`${last}${' '.repeat(Math.max(1, width - last.length - amount.length))}${amount}`
|
|
83
|
+
];
|
|
84
|
+
}
|
|
85
|
+
const rule = (columns)=>({
|
|
86
|
+
op: 'text',
|
|
87
|
+
text: '-'.repeat(columns)
|
|
88
|
+
});
|
|
89
|
+
/** The customer receipt. */ export function layoutReceipt(receipt, options) {
|
|
90
|
+
var _receipt_storeLines, _receipt_tenders, _receipt_barcode;
|
|
91
|
+
var _receipt_tenders1;
|
|
92
|
+
const { columns } = options;
|
|
93
|
+
const money = (cents)=>formatReceiptMoney(cents, receipt.currency);
|
|
94
|
+
const ops = [];
|
|
95
|
+
const line = (left, right, bold = false)=>{
|
|
96
|
+
for (const text of twoColumnLines(left, right, columns))ops.push({
|
|
97
|
+
op: 'text',
|
|
98
|
+
text,
|
|
99
|
+
bold
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
// The drawer first: the cashier makes change while the receipt prints.
|
|
103
|
+
if (options.openDrawer) ops.push({
|
|
104
|
+
op: 'drawer'
|
|
105
|
+
});
|
|
106
|
+
if (options.logo) ops.push({
|
|
107
|
+
op: 'logo'
|
|
108
|
+
});
|
|
109
|
+
if (receipt.banner) {
|
|
110
|
+
ops.push({
|
|
111
|
+
op: 'text',
|
|
112
|
+
text: toPrintable(receipt.banner).slice(0, Math.floor(columns / 2)),
|
|
113
|
+
align: 'center',
|
|
114
|
+
bold: true,
|
|
115
|
+
size: 2
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
for (const text of wrapText(receipt.storeName, Math.floor(columns / 2))){
|
|
119
|
+
ops.push({
|
|
120
|
+
op: 'text',
|
|
121
|
+
text,
|
|
122
|
+
align: 'center',
|
|
123
|
+
bold: true,
|
|
124
|
+
size: 2
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
for (const storeLine of (_receipt_storeLines = receipt.storeLines) != null ? _receipt_storeLines : []){
|
|
128
|
+
for (const text of wrapText(storeLine, columns))ops.push({
|
|
129
|
+
op: 'text',
|
|
130
|
+
text,
|
|
131
|
+
align: 'center'
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
ops.push({
|
|
135
|
+
op: 'feed',
|
|
136
|
+
lines: 1
|
|
137
|
+
});
|
|
138
|
+
line(`Order #${receipt.orderNumber}`, formatReceiptTime(receipt.createdAtMs, receipt.timeZone));
|
|
139
|
+
const who = [
|
|
140
|
+
receipt.registerName,
|
|
141
|
+
receipt.cashierName
|
|
142
|
+
].filter(Boolean).join(' - ');
|
|
143
|
+
if (who) for (const text of wrapText(who, columns))ops.push({
|
|
144
|
+
op: 'text',
|
|
145
|
+
text
|
|
146
|
+
});
|
|
147
|
+
ops.push(rule(columns));
|
|
148
|
+
for (const item of receipt.lines){
|
|
149
|
+
const label = item.quantity > 1 ? `${item.quantity} x ${item.name}` : item.name;
|
|
150
|
+
line(label, money(item.totalCents));
|
|
151
|
+
if (item.detail) {
|
|
152
|
+
for (const text of wrapText(item.detail, columns - 2))ops.push({
|
|
153
|
+
op: 'text',
|
|
154
|
+
text: ` ${text}`
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
if (item.quantity > 1) {
|
|
158
|
+
ops.push({
|
|
159
|
+
op: 'text',
|
|
160
|
+
text: toPrintable(` @ ${money(item.unitCents)} each`).slice(0, columns)
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
ops.push(rule(columns));
|
|
165
|
+
line('Subtotal', money(receipt.subtotalCents));
|
|
166
|
+
if (receipt.discountCents) line('Discount', `-${money(receipt.discountCents)}`);
|
|
167
|
+
if (receipt.shippingCents) line('Shipping', money(receipt.shippingCents));
|
|
168
|
+
if (receipt.taxCents) line('Tax', money(receipt.taxCents));
|
|
169
|
+
if (receipt.tipCents) line('Tip', money(receipt.tipCents));
|
|
170
|
+
for (const text of twoColumnLines('TOTAL', money(receipt.totalCents), Math.floor(columns / 2))){
|
|
171
|
+
ops.push({
|
|
172
|
+
op: 'text',
|
|
173
|
+
text,
|
|
174
|
+
bold: true,
|
|
175
|
+
size: 2
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
if (((_receipt_tenders1 = receipt.tenders) == null ? void 0 : _receipt_tenders1.length) || receipt.changeCents) ops.push({
|
|
179
|
+
op: 'feed',
|
|
180
|
+
lines: 1
|
|
181
|
+
});
|
|
182
|
+
for (const tender of (_receipt_tenders = receipt.tenders) != null ? _receipt_tenders : [])line(tender.label, money(tender.amountCents));
|
|
183
|
+
if (receipt.changeCents) line('Change', money(receipt.changeCents), true);
|
|
184
|
+
if (receipt.refundedCents) line('Refunded', `-${money(receipt.refundedCents)}`);
|
|
185
|
+
const barcode = code128Printable((_receipt_barcode = receipt.barcode) != null ? _receipt_barcode : receipt.orderNumber);
|
|
186
|
+
if (barcode) {
|
|
187
|
+
ops.push({
|
|
188
|
+
op: 'feed',
|
|
189
|
+
lines: 1
|
|
190
|
+
});
|
|
191
|
+
ops.push({
|
|
192
|
+
op: 'barcode',
|
|
193
|
+
data: barcode
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
if (receipt.footer) {
|
|
197
|
+
ops.push({
|
|
198
|
+
op: 'feed',
|
|
199
|
+
lines: 1
|
|
200
|
+
});
|
|
201
|
+
for (const text of wrapText(receipt.footer, columns))ops.push({
|
|
202
|
+
op: 'text',
|
|
203
|
+
text,
|
|
204
|
+
align: 'center'
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
ops.push({
|
|
208
|
+
op: 'feed',
|
|
209
|
+
lines: 2
|
|
210
|
+
});
|
|
211
|
+
ops.push({
|
|
212
|
+
op: 'cut'
|
|
213
|
+
});
|
|
214
|
+
return {
|
|
215
|
+
columns,
|
|
216
|
+
ops
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* The ticket the kitchen, the bar or the packing bench works from: the order
|
|
221
|
+
* number large enough to call out, when it was rung and on which register,
|
|
222
|
+
* then each item with its quantity and options. No prices, no tenders and no
|
|
223
|
+
* barcode: the people reading it are making the order, not paying for it.
|
|
224
|
+
*/ export function layoutKitchenTicket(receipt, options) {
|
|
225
|
+
var _receipt_registerName;
|
|
226
|
+
const { columns } = options;
|
|
227
|
+
const half = Math.floor(columns / 2);
|
|
228
|
+
const ops = [];
|
|
229
|
+
if (receipt.banner) {
|
|
230
|
+
ops.push({
|
|
231
|
+
op: 'text',
|
|
232
|
+
text: toPrintable(receipt.banner).slice(0, half),
|
|
233
|
+
align: 'center',
|
|
234
|
+
bold: true,
|
|
235
|
+
size: 2
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
ops.push({
|
|
239
|
+
op: 'text',
|
|
240
|
+
text: toPrintable(`#${receipt.orderNumber}`).slice(0, half),
|
|
241
|
+
align: 'center',
|
|
242
|
+
bold: true,
|
|
243
|
+
size: 2
|
|
244
|
+
});
|
|
245
|
+
for (const text of twoColumnLines((_receipt_registerName = receipt.registerName) != null ? _receipt_registerName : '', formatReceiptTime(receipt.createdAtMs, receipt.timeZone), columns)){
|
|
246
|
+
ops.push({
|
|
247
|
+
op: 'text',
|
|
248
|
+
text
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
ops.push(rule(columns));
|
|
252
|
+
for (const item of receipt.lines){
|
|
253
|
+
// Quantity first and large: "2 x Latte" read across a kitchen.
|
|
254
|
+
for (const text of wrapText(`${item.quantity} x ${item.name}`, half)){
|
|
255
|
+
ops.push({
|
|
256
|
+
op: 'text',
|
|
257
|
+
text,
|
|
258
|
+
bold: true,
|
|
259
|
+
size: 2
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
if (item.detail) {
|
|
263
|
+
for (const text of wrapText(item.detail, columns - 2))ops.push({
|
|
264
|
+
op: 'text',
|
|
265
|
+
text: ` ${text}`
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
ops.push(rule(columns));
|
|
270
|
+
const count = receipt.lines.reduce((sum, item)=>sum + item.quantity, 0);
|
|
271
|
+
ops.push({
|
|
272
|
+
op: 'text',
|
|
273
|
+
text: `${count} ${count === 1 ? 'item' : 'items'}`,
|
|
274
|
+
align: 'right'
|
|
275
|
+
});
|
|
276
|
+
ops.push({
|
|
277
|
+
op: 'feed',
|
|
278
|
+
lines: 2
|
|
279
|
+
});
|
|
280
|
+
ops.push({
|
|
281
|
+
op: 'cut'
|
|
282
|
+
});
|
|
283
|
+
return {
|
|
284
|
+
columns,
|
|
285
|
+
ops
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Code128 code set B carries printable ASCII, and a scanner reads a short
|
|
290
|
+
* symbol more reliably than a long one, so the data is the order number
|
|
291
|
+
* reduced to those characters and capped well under a receipt's width.
|
|
292
|
+
*/ export function code128Printable(value) {
|
|
293
|
+
return toPrintable(value).replace(/[^\x21-\x7e]/g, '').slice(0, 20);
|
|
294
|
+
}
|
|
295
|
+
/** The page "Print test" sends: proves the URL, the paper, the cutter and, if asked, the drawer. */ export function layoutTestPage(input) {
|
|
296
|
+
const { columns } = input;
|
|
297
|
+
const ops = [];
|
|
298
|
+
if (input.openDrawer) ops.push({
|
|
299
|
+
op: 'drawer'
|
|
300
|
+
});
|
|
301
|
+
if (input.logo) ops.push({
|
|
302
|
+
op: 'logo'
|
|
303
|
+
});
|
|
304
|
+
ops.push({
|
|
305
|
+
op: 'text',
|
|
306
|
+
text: 'TEST PRINT',
|
|
307
|
+
align: 'center',
|
|
308
|
+
bold: true,
|
|
309
|
+
size: 2
|
|
310
|
+
});
|
|
311
|
+
for (const text of wrapText(input.storeName, columns))ops.push({
|
|
312
|
+
op: 'text',
|
|
313
|
+
text,
|
|
314
|
+
align: 'center'
|
|
315
|
+
});
|
|
316
|
+
ops.push({
|
|
317
|
+
op: 'feed',
|
|
318
|
+
lines: 1
|
|
319
|
+
});
|
|
320
|
+
for (const text of twoColumnLines('Printer', input.printerName, columns))ops.push({
|
|
321
|
+
op: 'text',
|
|
322
|
+
text
|
|
323
|
+
});
|
|
324
|
+
for (const text of twoColumnLines('Sent', formatReceiptTime(input.atMs, input.timeZone), columns)){
|
|
325
|
+
ops.push({
|
|
326
|
+
op: 'text',
|
|
327
|
+
text
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
ops.push({
|
|
331
|
+
op: 'text',
|
|
332
|
+
text: '-'.repeat(columns)
|
|
333
|
+
});
|
|
334
|
+
ops.push({
|
|
335
|
+
op: 'text',
|
|
336
|
+
text: 'Left aligned'
|
|
337
|
+
});
|
|
338
|
+
ops.push({
|
|
339
|
+
op: 'text',
|
|
340
|
+
text: 'Centered',
|
|
341
|
+
align: 'center'
|
|
342
|
+
});
|
|
343
|
+
ops.push({
|
|
344
|
+
op: 'text',
|
|
345
|
+
text: 'Right aligned',
|
|
346
|
+
align: 'right'
|
|
347
|
+
});
|
|
348
|
+
ops.push({
|
|
349
|
+
op: 'text',
|
|
350
|
+
text: 'Bold text',
|
|
351
|
+
bold: true
|
|
352
|
+
});
|
|
353
|
+
ops.push({
|
|
354
|
+
op: 'text',
|
|
355
|
+
text: 'Large',
|
|
356
|
+
size: 2
|
|
357
|
+
});
|
|
358
|
+
ops.push({
|
|
359
|
+
op: 'text',
|
|
360
|
+
text: '0123456789'.repeat(Math.ceil(columns / 10)).slice(0, columns)
|
|
361
|
+
});
|
|
362
|
+
ops.push({
|
|
363
|
+
op: 'feed',
|
|
364
|
+
lines: 1
|
|
365
|
+
});
|
|
366
|
+
ops.push({
|
|
367
|
+
op: 'barcode',
|
|
368
|
+
data: 'TEST-PRINT'
|
|
369
|
+
});
|
|
370
|
+
ops.push({
|
|
371
|
+
op: 'feed',
|
|
372
|
+
lines: 1
|
|
373
|
+
});
|
|
374
|
+
for (const text of wrapText('If you can read this, receipts will print here.', columns)){
|
|
375
|
+
ops.push({
|
|
376
|
+
op: 'text',
|
|
377
|
+
text,
|
|
378
|
+
align: 'center'
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
ops.push({
|
|
382
|
+
op: 'feed',
|
|
383
|
+
lines: 2
|
|
384
|
+
});
|
|
385
|
+
ops.push({
|
|
386
|
+
op: 'cut'
|
|
387
|
+
});
|
|
388
|
+
return {
|
|
389
|
+
columns,
|
|
390
|
+
ops
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
/** A titled report on the receipt roll: a shift's X or Z report (AGL-3609). */ export function layoutReport(report, options) {
|
|
394
|
+
const { columns } = options;
|
|
395
|
+
const ops = [];
|
|
396
|
+
if (options.logo) ops.push({
|
|
397
|
+
op: 'logo'
|
|
398
|
+
});
|
|
399
|
+
for (const text of wrapText(report.storeName, Math.floor(columns / 2))){
|
|
400
|
+
ops.push({
|
|
401
|
+
op: 'text',
|
|
402
|
+
text,
|
|
403
|
+
align: 'center',
|
|
404
|
+
bold: true,
|
|
405
|
+
size: 2
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
for (const text of wrapText(report.title, Math.floor(columns / 2))){
|
|
409
|
+
ops.push({
|
|
410
|
+
op: 'text',
|
|
411
|
+
text,
|
|
412
|
+
align: 'center',
|
|
413
|
+
bold: true,
|
|
414
|
+
size: 2
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
if (report.subtitle) {
|
|
418
|
+
for (const text of wrapText(report.subtitle, columns))ops.push({
|
|
419
|
+
op: 'text',
|
|
420
|
+
text,
|
|
421
|
+
align: 'center'
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
for (const section of report.sections){
|
|
425
|
+
ops.push(rule(columns));
|
|
426
|
+
ops.push({
|
|
427
|
+
op: 'text',
|
|
428
|
+
text: toPrintable(section.section.toUpperCase()).slice(0, columns),
|
|
429
|
+
bold: true
|
|
430
|
+
});
|
|
431
|
+
for (const row of section.rows){
|
|
432
|
+
for (const text of twoColumnLines(row.label, row.value, columns)){
|
|
433
|
+
ops.push({
|
|
434
|
+
op: 'text',
|
|
435
|
+
text,
|
|
436
|
+
bold: row.strong === true
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
ops.push({
|
|
442
|
+
op: 'feed',
|
|
443
|
+
lines: 2
|
|
444
|
+
});
|
|
445
|
+
ops.push({
|
|
446
|
+
op: 'cut'
|
|
447
|
+
});
|
|
448
|
+
return {
|
|
449
|
+
columns,
|
|
450
|
+
ops
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
/** A drawer kick with nothing printed: a paid-out, a cash refund, "Open drawer". */ export function layoutDrawerKick(columns) {
|
|
454
|
+
return {
|
|
455
|
+
columns,
|
|
456
|
+
ops: [
|
|
457
|
+
{
|
|
458
|
+
op: 'drawer'
|
|
459
|
+
}
|
|
460
|
+
]
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
//# sourceMappingURL=print-document.js.map
|