@kreiseck/kasseneck-api 0.31.0 → 1.0.0-rc.2
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/CHANGELOG.md +317 -0
- package/README.de.md +11 -7
- package/README.md +509 -126
- package/dist/cjs/client/api.d.ts +7 -6
- package/dist/cjs/client/api.js +2 -2
- package/dist/cjs/client/aufrufe.d.ts +29 -5
- package/dist/cjs/client/aufrufe.js +114 -2
- package/dist/cjs/client/auth.d.ts +2 -0
- package/dist/cjs/client/auth.js +17 -1
- package/dist/cjs/client/cashregisters.d.ts +1 -1
- package/dist/cjs/client/cashregisters.js +2 -2
- package/dist/cjs/client/errors.d.ts +94 -19
- package/dist/cjs/client/errors.js +132 -28
- package/dist/cjs/client/fehlercodes.d.ts +9 -0
- package/dist/cjs/client/fehlercodes.js +36 -0
- package/dist/cjs/client/index.d.ts +5 -5
- package/dist/cjs/client/index.js +11 -3
- package/dist/cjs/client/receipts.d.ts +131 -124
- package/dist/cjs/client/receipts.js +196 -137
- package/dist/cjs/client/reports.d.ts +26 -4
- package/dist/cjs/client/reports.js +37 -4
- package/dist/cjs/client/status.d.ts +3 -3
- package/dist/cjs/client/status.js +7 -7
- package/dist/cjs/client/transport.d.ts +56 -4
- package/dist/cjs/client/transport.js +234 -25
- package/dist/cjs/enums/vat-rate.d.ts +2 -2
- package/dist/cjs/enums/vat-rate.js +1 -1
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +42 -13
- package/dist/{esm/rechnung → cjs/invoice}/api.d.ts +18 -17
- package/dist/cjs/{rechnung → invoice}/api.js +6 -6
- package/dist/{esm/rechnung → cjs/invoice}/auth.d.ts +2 -2
- package/dist/cjs/{rechnung → invoice}/auth.js +5 -5
- package/dist/{esm/rechnung/rechnen.d.ts → cjs/invoice/calc.d.ts} +27 -27
- package/dist/cjs/{rechnung/rechnen.js → invoice/calc.js} +54 -54
- package/dist/{esm/rechnung → cjs/invoice}/endpunkte.d.ts +23 -21
- package/dist/cjs/{rechnung → invoice}/endpunkte.js +52 -42
- package/dist/cjs/invoice/fehler.d.ts +31 -0
- package/dist/cjs/invoice/fehler.js +39 -0
- package/dist/cjs/invoice/index.d.ts +21 -0
- package/dist/cjs/invoice/index.js +86 -0
- package/dist/cjs/{rechnung → invoice}/summen.d.ts +12 -12
- package/dist/cjs/{rechnung → invoice}/summen.js +14 -14
- package/dist/cjs/invoice/texte.d.ts +224 -0
- package/dist/cjs/invoice/texte.js +425 -0
- package/dist/{esm/rechnung → cjs/invoice}/typen.d.ts +32 -11
- package/dist/cjs/{rechnung → invoice}/vertrag.d.ts +97 -71
- package/dist/cjs/{rechnung → invoice}/vertrag.js +144 -82
- package/dist/cjs/models/cancellation.d.ts +43 -24
- package/dist/cjs/models/cancellation.js +94 -46
- package/dist/cjs/models/hobex-receipt.d.ts +3 -3
- package/dist/cjs/models/hobex-receipt.js +35 -35
- package/dist/cjs/models/index.d.ts +6 -5
- package/dist/cjs/models/index.js +22 -2
- package/dist/cjs/models/payment-errors.d.ts +32 -15
- package/dist/cjs/models/payment-errors.js +80 -32
- package/dist/cjs/models/receipt-company.d.ts +6 -5
- package/dist/cjs/models/receipt-company.js +4 -4
- package/dist/cjs/models/receipt-email.d.ts +32 -18
- package/dist/cjs/models/receipt-email.js +69 -24
- package/dist/cjs/models/receipt-errors.d.ts +39 -0
- package/dist/cjs/models/receipt-errors.js +94 -0
- package/dist/cjs/models/receipt-item.d.ts +9 -1
- package/dist/cjs/models/receipt-item.js +3 -0
- package/dist/cjs/models/receipt-summary.d.ts +10 -4
- package/dist/cjs/models/receipt-summary.js +10 -4
- package/dist/cjs/models/receipt.d.ts +31 -2
- package/dist/cjs/models/receipt.js +12 -1
- package/dist/cjs/models/voucher.d.ts +7 -6
- package/dist/cjs/models/voucher.js +2 -7
- package/dist/cjs/partner/ablauf.d.ts +10 -10
- package/dist/cjs/partner/ablauf.js +29 -29
- package/dist/cjs/partner/api.d.ts +26 -23
- package/dist/cjs/partner/api.js +11 -13
- package/dist/cjs/partner/auth.d.ts +1 -1
- package/dist/cjs/partner/auth.js +2 -2
- package/dist/cjs/partner/betrieb.d.ts +7 -7
- package/dist/cjs/partner/betrieb.js +10 -10
- package/dist/cjs/partner/endpunkte.d.ts +27 -14
- package/dist/cjs/partner/endpunkte.js +80 -39
- package/dist/cjs/partner/fehler.d.ts +60 -30
- package/dist/cjs/partner/fehler.js +99 -43
- package/dist/cjs/partner/index.d.ts +13 -12
- package/dist/cjs/partner/index.js +35 -22
- package/dist/cjs/partner/secret.d.ts +3 -3
- package/dist/cjs/partner/secret.js +6 -6
- package/dist/cjs/partner/typen.d.ts +129 -71
- package/dist/cjs/partner/typen.js +76 -3
- package/dist/cjs/partner/webhook-signatur.d.ts +2 -2
- package/dist/cjs/partner/webhook-signatur.js +12 -12
- package/dist/cjs/partner/webhooks.d.ts +60 -32
- package/dist/cjs/partner/webhooks.js +40 -34
- package/dist/cjs/payments/hobex.d.ts +11 -3
- package/dist/cjs/payments/hobex.js +17 -5
- package/dist/cjs/payments/stripe.d.ts +5 -2
- package/dist/cjs/payments/stripe.js +10 -5
- package/dist/cjs/pos/artikel.d.ts +90 -0
- package/dist/cjs/pos/artikel.js +89 -0
- package/dist/cjs/pos/client.d.ts +27 -0
- package/dist/cjs/pos/client.js +144 -0
- package/dist/cjs/pos/drucker.d.ts +86 -0
- package/dist/cjs/pos/drucker.js +78 -0
- package/dist/cjs/pos/errors.d.ts +36 -0
- package/dist/cjs/pos/errors.js +95 -0
- package/dist/cjs/pos/index.d.ts +15 -0
- package/dist/cjs/pos/index.js +102 -0
- package/dist/cjs/pos/settings.d.ts +313 -0
- package/dist/cjs/pos/settings.js +376 -0
- package/dist/cjs/pos/texte.d.ts +883 -0
- package/dist/cjs/pos/texte.js +489 -0
- package/dist/cjs/{kasse → pos}/trinkgeld.d.ts +1 -1
- package/dist/cjs/{kasse → pos}/trinkgeld.js +2 -2
- package/dist/cjs/printing/escpos.d.ts +29 -29
- package/dist/cjs/printing/escpos.js +61 -61
- package/dist/cjs/printing/index.d.ts +2 -2
- package/dist/cjs/printing/index.js +17 -17
- package/dist/cjs/printing/qr-groesse.d.ts +38 -38
- package/dist/cjs/printing/qr-groesse.js +47 -47
- package/dist/cjs/printing/webusb.d.ts +2 -2
- package/dist/cjs/printing/webusb.js +4 -4
- package/dist/cjs/react/index.d.ts +21 -21
- package/dist/cjs/react/index.js +40 -30
- package/dist/cjs/receipt/bild.d.ts +4 -4
- package/dist/cjs/receipt/bild.js +11 -11
- package/dist/cjs/receipt/blatt.d.ts +46 -46
- package/dist/cjs/receipt/blatt.js +59 -59
- package/dist/cjs/receipt/discount.d.ts +1 -1
- package/dist/cjs/receipt/discount.js +8 -8
- package/dist/cjs/receipt/due.d.ts +86 -0
- package/dist/cjs/receipt/due.js +261 -0
- package/dist/cjs/receipt/epos.d.ts +22 -22
- package/dist/cjs/receipt/epos.js +45 -45
- package/dist/cjs/receipt/grid.d.ts +10 -10
- package/dist/cjs/receipt/grid.js +20 -20
- package/dist/cjs/receipt/index.d.ts +9 -8
- package/dist/cjs/receipt/index.js +26 -23
- package/dist/cjs/receipt/layout-escpos.d.ts +24 -24
- package/dist/cjs/receipt/layout-escpos.js +49 -49
- package/dist/cjs/receipt/layout.d.ts +28 -23
- package/dist/cjs/receipt/layout.js +45 -21
- package/dist/cjs/receipt/marke-daten.d.ts +8 -8
- package/dist/cjs/receipt/marke-daten.js +8 -8
- package/dist/cjs/receipt/marke.d.ts +7 -7
- package/dist/cjs/receipt/marke.js +10 -10
- package/dist/cjs/register/errors.d.ts +61 -0
- package/dist/cjs/register/errors.js +112 -0
- package/dist/cjs/register/index.d.ts +14 -1
- package/dist/cjs/register/index.js +20 -1
- package/dist/cjs/register/pairing.d.ts +55 -36
- package/dist/cjs/register/pairing.js +33 -29
- package/dist/cjs/register/session.d.ts +5 -5
- package/dist/cjs/register/session.js +7 -7
- package/dist/cjs/stored/draht.d.ts +45 -0
- package/dist/cjs/stored/draht.js +220 -0
- package/dist/cjs/stored/einstellungen.d.ts +23 -0
- package/dist/cjs/stored/einstellungen.js +200 -0
- package/dist/cjs/stored/index.d.ts +109 -0
- package/dist/cjs/stored/index.js +225 -0
- package/dist/cjs/stored/vokabular.d.ts +18 -0
- package/dist/cjs/stored/vokabular.js +389 -0
- package/dist/cjs/version.d.ts +7 -0
- package/dist/cjs/version.js +10 -0
- package/dist/cjs/vienna-time.d.ts +1 -1
- package/dist/cjs/vienna-time.js +2 -2
- package/dist/esm/client/api.d.ts +7 -6
- package/dist/esm/client/api.js +4 -4
- package/dist/esm/client/aufrufe.d.ts +29 -5
- package/dist/esm/client/aufrufe.js +111 -1
- package/dist/esm/client/auth.d.ts +2 -0
- package/dist/esm/client/auth.js +16 -1
- package/dist/esm/client/cashregisters.d.ts +1 -1
- package/dist/esm/client/cashregisters.js +2 -2
- package/dist/esm/client/errors.d.ts +94 -19
- package/dist/esm/client/errors.js +129 -27
- package/dist/esm/client/fehlercodes.d.ts +9 -0
- package/dist/esm/client/fehlercodes.js +32 -0
- package/dist/esm/client/index.d.ts +5 -5
- package/dist/esm/client/index.js +5 -5
- package/dist/esm/client/receipts.d.ts +131 -124
- package/dist/esm/client/receipts.js +195 -140
- package/dist/esm/client/reports.d.ts +26 -4
- package/dist/esm/client/reports.js +36 -4
- package/dist/esm/client/status.d.ts +3 -3
- package/dist/esm/client/status.js +7 -7
- package/dist/esm/client/transport.d.ts +56 -4
- package/dist/esm/client/transport.js +233 -24
- package/dist/esm/enums/vat-rate.d.ts +2 -2
- package/dist/esm/enums/vat-rate.js +1 -1
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +4 -3
- package/dist/{cjs/rechnung → esm/invoice}/api.d.ts +18 -17
- package/dist/esm/{rechnung → invoice}/api.js +6 -6
- package/dist/{cjs/rechnung → esm/invoice}/auth.d.ts +2 -2
- package/dist/esm/{rechnung → invoice}/auth.js +4 -4
- package/dist/{cjs/rechnung/rechnen.d.ts → esm/invoice/calc.d.ts} +27 -27
- package/dist/esm/{rechnung/rechnen.js → invoice/calc.js} +45 -45
- package/dist/{cjs/rechnung → esm/invoice}/endpunkte.d.ts +23 -21
- package/dist/esm/{rechnung → invoice}/endpunkte.js +52 -42
- package/dist/esm/invoice/fehler.d.ts +31 -0
- package/dist/esm/invoice/fehler.js +33 -0
- package/dist/esm/invoice/index.d.ts +21 -0
- package/dist/esm/invoice/index.js +20 -0
- package/dist/esm/{rechnung → invoice}/summen.d.ts +12 -12
- package/dist/esm/{rechnung → invoice}/summen.js +12 -12
- package/dist/esm/invoice/texte.d.ts +224 -0
- package/dist/esm/invoice/texte.js +421 -0
- package/dist/{cjs/rechnung → esm/invoice}/typen.d.ts +32 -11
- package/dist/esm/{rechnung → invoice}/vertrag.d.ts +97 -71
- package/dist/esm/{rechnung → invoice}/vertrag.js +143 -81
- package/dist/esm/models/cancellation.d.ts +43 -24
- package/dist/esm/models/cancellation.js +90 -45
- package/dist/esm/models/hobex-receipt.d.ts +3 -3
- package/dist/esm/models/hobex-receipt.js +35 -35
- package/dist/esm/models/index.d.ts +6 -5
- package/dist/esm/models/index.js +6 -5
- package/dist/esm/models/payment-errors.d.ts +32 -15
- package/dist/esm/models/payment-errors.js +77 -32
- package/dist/esm/models/receipt-company.d.ts +6 -5
- package/dist/esm/models/receipt-company.js +4 -4
- package/dist/esm/models/receipt-email.d.ts +32 -18
- package/dist/esm/models/receipt-email.js +65 -23
- package/dist/esm/models/receipt-errors.d.ts +39 -0
- package/dist/esm/models/receipt-errors.js +87 -0
- package/dist/esm/models/receipt-item.d.ts +9 -1
- package/dist/esm/models/receipt-item.js +3 -0
- package/dist/esm/models/receipt-summary.d.ts +10 -4
- package/dist/esm/models/receipt-summary.js +9 -3
- package/dist/esm/models/receipt.d.ts +31 -2
- package/dist/esm/models/receipt.js +12 -2
- package/dist/esm/models/voucher.d.ts +7 -6
- package/dist/esm/models/voucher.js +2 -7
- package/dist/esm/partner/ablauf.d.ts +10 -10
- package/dist/esm/partner/ablauf.js +27 -27
- package/dist/esm/partner/api.d.ts +26 -23
- package/dist/esm/partner/api.js +13 -15
- package/dist/esm/partner/auth.d.ts +1 -1
- package/dist/esm/partner/auth.js +2 -2
- package/dist/esm/partner/betrieb.d.ts +7 -7
- package/dist/esm/partner/betrieb.js +8 -8
- package/dist/esm/partner/endpunkte.d.ts +27 -14
- package/dist/esm/partner/endpunkte.js +79 -39
- package/dist/esm/partner/fehler.d.ts +60 -30
- package/dist/esm/partner/fehler.js +91 -35
- package/dist/esm/partner/index.d.ts +13 -12
- package/dist/esm/partner/index.js +12 -11
- package/dist/esm/partner/secret.d.ts +3 -3
- package/dist/esm/partner/secret.js +5 -5
- package/dist/esm/partner/typen.d.ts +129 -71
- package/dist/esm/partner/typen.js +75 -2
- package/dist/esm/partner/webhook-signatur.d.ts +2 -2
- package/dist/esm/partner/webhook-signatur.js +12 -12
- package/dist/esm/partner/webhooks.d.ts +60 -32
- package/dist/esm/partner/webhooks.js +38 -32
- package/dist/esm/payments/hobex.d.ts +11 -3
- package/dist/esm/payments/hobex.js +18 -6
- package/dist/esm/payments/stripe.d.ts +5 -2
- package/dist/esm/payments/stripe.js +11 -6
- package/dist/esm/pos/artikel.d.ts +90 -0
- package/dist/esm/pos/artikel.js +79 -0
- package/dist/esm/pos/client.d.ts +27 -0
- package/dist/esm/pos/client.js +137 -0
- package/dist/esm/pos/drucker.d.ts +86 -0
- package/dist/esm/pos/drucker.js +71 -0
- package/dist/esm/pos/errors.d.ts +36 -0
- package/dist/esm/pos/errors.js +88 -0
- package/dist/esm/pos/index.d.ts +15 -0
- package/dist/esm/pos/index.js +20 -0
- package/dist/esm/pos/settings.d.ts +313 -0
- package/dist/esm/pos/settings.js +367 -0
- package/dist/esm/pos/texte.d.ts +883 -0
- package/dist/esm/pos/texte.js +481 -0
- package/dist/esm/{kasse → pos}/trinkgeld.d.ts +1 -1
- package/dist/esm/{kasse → pos}/trinkgeld.js +2 -2
- package/dist/esm/printing/escpos.d.ts +29 -29
- package/dist/esm/printing/escpos.js +56 -56
- package/dist/esm/printing/index.d.ts +2 -2
- package/dist/esm/printing/index.js +2 -2
- package/dist/esm/printing/qr-groesse.d.ts +38 -38
- package/dist/esm/printing/qr-groesse.js +42 -42
- package/dist/esm/printing/webusb.d.ts +2 -2
- package/dist/esm/printing/webusb.js +4 -4
- package/dist/esm/react/index.d.ts +21 -21
- package/dist/esm/react/index.js +39 -29
- package/dist/esm/receipt/bild.d.ts +4 -4
- package/dist/esm/receipt/bild.js +11 -11
- package/dist/esm/receipt/blatt.d.ts +46 -46
- package/dist/esm/receipt/blatt.js +55 -55
- package/dist/esm/receipt/discount.d.ts +1 -1
- package/dist/esm/receipt/discount.js +7 -7
- package/dist/esm/receipt/due.d.ts +86 -0
- package/dist/esm/receipt/due.js +257 -0
- package/dist/esm/receipt/epos.d.ts +22 -22
- package/dist/esm/receipt/epos.js +47 -47
- package/dist/esm/receipt/grid.d.ts +10 -10
- package/dist/esm/receipt/grid.js +18 -18
- package/dist/esm/receipt/index.d.ts +9 -8
- package/dist/esm/receipt/index.js +9 -8
- package/dist/esm/receipt/layout-escpos.d.ts +24 -24
- package/dist/esm/receipt/layout-escpos.js +51 -51
- package/dist/esm/receipt/layout.d.ts +28 -23
- package/dist/esm/receipt/layout.js +44 -20
- package/dist/esm/receipt/marke-daten.d.ts +8 -8
- package/dist/esm/receipt/marke-daten.js +7 -7
- package/dist/esm/receipt/marke.d.ts +7 -7
- package/dist/esm/receipt/marke.js +10 -10
- package/dist/esm/register/errors.d.ts +61 -0
- package/dist/esm/register/errors.js +104 -0
- package/dist/esm/register/index.d.ts +14 -1
- package/dist/esm/register/index.js +13 -0
- package/dist/esm/register/pairing.d.ts +55 -36
- package/dist/esm/register/pairing.js +33 -29
- package/dist/esm/register/session.d.ts +5 -5
- package/dist/esm/register/session.js +7 -7
- package/dist/esm/stored/draht.d.ts +45 -0
- package/dist/esm/stored/draht.js +208 -0
- package/dist/esm/stored/einstellungen.d.ts +23 -0
- package/dist/esm/stored/einstellungen.js +196 -0
- package/dist/esm/stored/index.d.ts +109 -0
- package/dist/esm/stored/index.js +217 -0
- package/dist/esm/stored/vokabular.d.ts +18 -0
- package/dist/esm/stored/vokabular.js +386 -0
- package/dist/esm/version.d.ts +7 -0
- package/dist/esm/version.js +7 -0
- package/dist/esm/vienna-time.d.ts +1 -1
- package/dist/esm/vienna-time.js +2 -2
- package/fixtures/{erwartet/storno-rabatt.lines.json → expected/cancellation-discount.lines.json} +2 -2
- package/fixtures/expected/cancellation-discount.sheet32.json +248 -0
- package/fixtures/{erwartet/storno-rabatt.blatt48.json → expected/cancellation-discount.sheet48.json} +119 -119
- package/fixtures/{erwartet/storno-voll.lines.json → expected/cancellation-full.lines.json} +2 -2
- package/fixtures/expected/cancellation-full.sheet32.json +218 -0
- package/fixtures/{erwartet/storno-voll.blatt48.json → expected/cancellation-full.sheet48.json} +107 -107
- package/fixtures/{erwartet/storno-teil.lines.json → expected/cancellation-partial.lines.json} +2 -2
- package/fixtures/expected/cancellation-partial.sheet32.json +206 -0
- package/fixtures/{erwartet/storno-teil.blatt48.json → expected/cancellation-partial.sheet48.json} +101 -101
- package/fixtures/{erwartet/storno-split-voll.lines.json → expected/cancellation-split-full.lines.json} +2 -2
- package/fixtures/expected/cancellation-split-full.sheet32.json +320 -0
- package/fixtures/{erwartet/storno-split-voll.blatt48.json → expected/cancellation-split-full.sheet48.json} +158 -158
- package/fixtures/{erwartet/storno-split-teil.lines.json → expected/cancellation-split-partial.lines.json} +2 -2
- package/fixtures/expected/cancellation-split-partial.sheet32.json +230 -0
- package/fixtures/{erwartet/storno-split-teil.blatt48.json → expected/cancellation-split-partial.sheet48.json} +113 -113
- package/fixtures/{erwartet/karte-eigener.lines.json → expected/card-custom.lines.json} +1 -1
- package/fixtures/expected/card-custom.sheet32.json +158 -0
- package/fixtures/{erwartet/karte-eigener.blatt48.json → expected/card-custom.sheet48.json} +80 -80
- package/fixtures/{erwartet/karte-gptom-ios.lines.json → expected/card-gptom-ios.lines.json} +1 -1
- package/fixtures/expected/card-gptom-ios.sheet32.json +230 -0
- package/fixtures/{erwartet/karte-gptom-ios.blatt48.json → expected/card-gptom-ios.sheet48.json} +116 -116
- package/fixtures/{erwartet/karte-gptom.lines.json → expected/card-gptom.lines.json} +1 -1
- package/fixtures/expected/card-gptom.sheet32.json +230 -0
- package/fixtures/{erwartet/karte-gptom.blatt48.json → expected/card-gptom.sheet48.json} +116 -116
- package/fixtures/{erwartet/karte-hobex-cloud.lines.json → expected/card-hobex-cloud.lines.json} +1 -1
- package/fixtures/expected/card-hobex-cloud.sheet32.json +200 -0
- package/fixtures/{erwartet/karte-hobex-cloud.blatt48.json → expected/card-hobex-cloud.sheet48.json} +101 -101
- package/fixtures/{erwartet/karte-hobex-hps.lines.json → expected/card-hobex-hps.lines.json} +1 -1
- package/fixtures/expected/card-hobex-hps.sheet32.json +224 -0
- package/fixtures/{erwartet/karte-hobex-hps.blatt48.json → expected/card-hobex-hps.sheet48.json} +113 -113
- package/fixtures/{erwartet/karte-mypos.lines.json → expected/card-mypos.lines.json} +1 -1
- package/fixtures/expected/card-mypos.sheet32.json +254 -0
- package/fixtures/{erwartet/karte-mypos.blatt48.json → expected/card-mypos.sheet48.json} +122 -122
- package/fixtures/{erwartet/karte-stripe-eps.lines.json → expected/card-stripe-eps.lines.json} +1 -1
- package/fixtures/expected/card-stripe-eps.sheet32.json +194 -0
- package/fixtures/{erwartet/karte-stripe-eps.blatt48.json → expected/card-stripe-eps.sheet48.json} +98 -98
- package/fixtures/{erwartet/karte-stripe.lines.json → expected/card-stripe.lines.json} +1 -1
- package/fixtures/expected/card-stripe.sheet32.json +212 -0
- package/fixtures/{erwartet/karte-stripe.blatt48.json → expected/card-stripe.sheet48.json} +107 -107
- package/fixtures/{erwartet/karte-sumup.lines.json → expected/card-sumup.lines.json} +1 -1
- package/fixtures/expected/card-sumup.sheet32.json +218 -0
- package/fixtures/{erwartet/karte-sumup.blatt48.json → expected/card-sumup.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabattzeilen.lines.json → expected/discount-lines.lines.json} +1 -1
- package/fixtures/expected/discount-lines.sheet32.json +200 -0
- package/fixtures/{erwartet/rabattzeilen.blatt48.json → expected/discount-lines.sheet48.json} +98 -98
- package/fixtures/{erwartet/rabatt-chef-trinkgeld.lines.json → expected/discount-owner-tip.lines.json} +1 -1
- package/fixtures/expected/discount-owner-tip.sheet32.json +212 -0
- package/fixtures/{erwartet/rabatt-chef-trinkgeld.blatt48.json → expected/discount-owner-tip.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabatt-einfach.lines.json → expected/discount-simple.lines.json} +1 -1
- package/fixtures/expected/discount-simple.sheet32.json +182 -0
- package/fixtures/{erwartet/rabatt-einfach.blatt48.json → expected/discount-simple.sheet48.json} +89 -89
- package/fixtures/{erwartet/rabatt-trinkgeld.lines.json → expected/discount-tip.lines.json} +1 -1
- package/fixtures/expected/discount-tip.sheet32.json +212 -0
- package/fixtures/{erwartet/rabatt-trinkgeld.blatt48.json → expected/discount-tip.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabatt-wertgutschein.lines.json → expected/discount-value-voucher.lines.json} +1 -1
- package/fixtures/expected/discount-value-voucher.sheet32.json +218 -0
- package/fixtures/{erwartet/rabatt-wertgutschein.blatt48.json → expected/discount-value-voucher.sheet48.json} +107 -107
- package/fixtures/{erwartet/langer-artikelname.lines.json → expected/long-item-name.lines.json} +1 -1
- package/fixtures/expected/long-item-name.sheet32.json +176 -0
- package/fixtures/{erwartet/langer-artikelname.blatt48.json → expected/long-item-name.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-karte.lines.json → expected/sale-card.lines.json} +1 -1
- package/fixtures/expected/sale-card.sheet32.json +176 -0
- package/fixtures/{erwartet/verkauf-karte.blatt48.json → expected/sale-card.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-bar.lines.json → expected/sale-cash.lines.json} +1 -1
- package/fixtures/expected/sale-cash.sheet32.json +176 -0
- package/fixtures/{erwartet/verkauf-bar.blatt48.json → expected/sale-cash.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-kleinunternehmer.lines.json → expected/sale-small-business.lines.json} +1 -1
- package/fixtures/expected/sale-small-business.sheet32.json +182 -0
- package/fixtures/{erwartet/verkauf-kleinunternehmer.blatt48.json → expected/sale-small-business.sheet48.json} +89 -89
- package/fixtures/{erwartet/signaturausfall-verkauf.lines.json → expected/signature-outage-sale.lines.json} +1 -1
- package/fixtures/expected/signature-outage-sale.sheet32.json +194 -0
- package/fixtures/{erwartet/signaturausfall-verkauf.blatt48.json → expected/signature-outage-sale.sheet48.json} +92 -92
- package/fixtures/{erwartet/split-karte-karte-bar.lines.json → expected/split-card-card-cash.lines.json} +1 -1
- package/fixtures/expected/split-card-card-cash.sheet32.json +356 -0
- package/fixtures/{erwartet/split-karte-karte-bar.blatt48.json → expected/split-card-card-cash.sheet48.json} +170 -170
- package/fixtures/{erwartet/split-bar-rueckgeld.lines.json → expected/split-cash-change.lines.json} +1 -1
- package/fixtures/expected/split-cash-change.sheet32.json +194 -0
- package/fixtures/{erwartet/split-bar-rueckgeld.blatt48.json → expected/split-cash-change.sheet48.json} +92 -92
- package/fixtures/{erwartet/split-langer-betrag.lines.json → expected/split-long-amount.lines.json} +1 -1
- package/fixtures/expected/split-long-amount.sheet32.json +266 -0
- package/fixtures/{erwartet/split-langer-betrag.blatt48.json → expected/split-long-amount.sheet48.json} +131 -131
- package/fixtures/{erwartet/split-eine-karte-trinkgeld.lines.json → expected/split-one-card-tip.lines.json} +1 -1
- package/fixtures/expected/split-one-card-tip.sheet32.json +242 -0
- package/fixtures/{erwartet/split-eine-karte-trinkgeld.blatt48.json → expected/split-one-card-tip.sheet48.json} +113 -113
- package/fixtures/{erwartet/split-tischrunde-trinkgeld.lines.json → expected/split-table-round-tip.lines.json} +1 -1
- package/fixtures/expected/split-table-round-tip.sheet32.json +470 -0
- package/fixtures/{erwartet/split-tischrunde-trinkgeld.blatt48.json → expected/split-table-round-tip.sheet48.json} +218 -218
- package/fixtures/{erwartet/split-trinkgeld-karte.lines.json → expected/split-tip-card.lines.json} +1 -1
- package/fixtures/expected/split-tip-card.sheet32.json +272 -0
- package/fixtures/{erwartet/split-trinkgeld-karte.blatt48.json → expected/split-tip-card.sheet48.json} +128 -128
- package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.lines.json → expected/split-two-cards-same-provider.lines.json} +1 -1
- package/fixtures/expected/split-two-cards-same-provider.sheet32.json +326 -0
- package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.blatt48.json → expected/split-two-cards-same-provider.sheet48.json} +149 -149
- package/fixtures/{erwartet/testkasse-verkauf.lines.json → expected/test-cashregister-sale.lines.json} +3 -3
- package/fixtures/expected/test-cashregister-sale.sheet32.json +224 -0
- package/fixtures/{erwartet/testkasse-verkauf.blatt48.json → expected/test-cashregister-sale.sheet48.json} +110 -110
- package/fixtures/{erwartet/testsignatur-verkauf.lines.json → expected/test-signature-sale.lines.json} +3 -3
- package/fixtures/expected/test-signature-sale.sheet32.json +236 -0
- package/fixtures/{erwartet/testsignatur-verkauf.blatt48.json → expected/test-signature-sale.sheet48.json} +110 -110
- package/fixtures/{erwartet → expected}/training.lines.json +2 -2
- package/fixtures/expected/training.sheet32.json +236 -0
- package/fixtures/{erwartet/training.blatt48.json → expected/training.sheet48.json} +110 -110
- package/fixtures/{erwartet/null-jahr.lines.json → expected/zero-annual.lines.json} +2 -2
- package/fixtures/expected/zero-annual.sheet32.json +212 -0
- package/fixtures/{erwartet/null-jahr.blatt48.json → expected/zero-annual.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-schluss.lines.json → expected/zero-final.lines.json} +2 -2
- package/fixtures/expected/zero-final.sheet32.json +206 -0
- package/fixtures/{erwartet/null-schluss.blatt48.json → expected/zero-final.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-pruef.lines.json → expected/zero-manual.lines.json} +2 -2
- package/fixtures/expected/zero-manual.sheet32.json +206 -0
- package/fixtures/{erwartet/null-pruef.blatt48.json → expected/zero-manual.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-monat.lines.json → expected/zero-monthly.lines.json} +2 -2
- package/fixtures/expected/zero-monthly.sheet32.json +206 -0
- package/fixtures/{erwartet/null-monat.blatt48.json → expected/zero-monthly.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-ausfall.lines.json → expected/zero-outage-end.lines.json} +2 -2
- package/fixtures/expected/zero-outage-end.sheet32.json +206 -0
- package/fixtures/{erwartet/null-ausfall.blatt48.json → expected/zero-outage-end.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-start.lines.json → expected/zero-start.lines.json} +2 -2
- package/fixtures/expected/zero-start.sheet32.json +206 -0
- package/fixtures/{erwartet/null-start.blatt48.json → expected/zero-start.sheet48.json} +95 -95
- package/fixtures/hobex-hps-codes.json +12 -12
- package/fixtures/invoice-api-examples/brands-ok.json +8 -0
- package/fixtures/{rechnung-api-beispiele/credit-fehler-grund.json → invoice-api-examples/credit-error-reason.json} +6 -6
- package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/credit-ok.json +6 -6
- package/fixtures/{rechnung-api-beispiele/customer-fehler-uid.json → invoice-api-examples/customer-error-vat-id.json} +4 -4
- package/fixtures/invoice-api-examples/customer-get-error-both.json +15 -0
- package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/customer-ok.json +4 -4
- package/fixtures/{rechnung-api-beispiele/customer-search-fehler-leer.json → invoice-api-examples/customer-search-error-empty.json} +4 -4
- package/fixtures/{rechnung-api-beispiele/issue-rabatt.json → invoice-api-examples/issue-discount.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-englisch.json → invoice-api-examples/issue-english.json} +7 -7
- package/fixtures/{rechnung-api-beispiele/issue-fehler-cent.json → invoice-api-examples/issue-error-cent.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-sprache.json → invoice-api-examples/issue-error-language.json} +5 -5
- package/fixtures/{rechnung-api-beispiele/issue-fehler-negativ.json → invoice-api-examples/issue-error-negative.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-zahlungsart.json → invoice-api-examples/issue-error-payment-method.json} +8 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-beide.json → invoice-api-examples/issue-error-price-both.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-fehlt.json → invoice-api-examples/issue-error-price-missing.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-menge.json → invoice-api-examples/issue-error-quantity.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-satz.json → invoice-api-examples/issue-error-rate.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-einheit.json → invoice-api-examples/issue-error-unit.json} +5 -5
- package/fixtures/{rechnung-api-beispiele/issue-fehler-unbekannt.json → invoice-api-examples/issue-error-unknown.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-brutto-20.json → invoice-api-examples/issue-gross-20.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-mikropreis.json → invoice-api-examples/issue-micro-price.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-gemischt.json → invoice-api-examples/issue-mixed.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-netto-20.json → invoice-api-examples/issue-net-20.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-bezahlt.json → invoice-api-examples/issue-paid.json} +7 -7
- package/fixtures/{rechnung-api-beispiele/issue-kleinunternehmer.json → invoice-api-examples/issue-small-business.json} +6 -6
- package/fixtures/invoice-api-examples/payment-error-on-site.json +17 -0
- package/fixtures/invoice-api-examples/payment-error-without-key.json +16 -0
- package/fixtures/invoice-api-examples/payment-recorded-later.json +14 -0
- package/fixtures/{rechnung-api-beispiele/setup-status-fehler-feld.json → invoice-api-examples/setup-status-error-field.json} +4 -4
- package/fixtures/invoice-api-examples/setup-status-ok.json +8 -0
- package/fixtures/{rechnung-api.schema.json → invoice-api.schema.json} +24 -24
- package/fixtures/{rechnung-rechnen-zufall.json → invoice-calc-random.json} +828 -828
- package/fixtures/{rechnung-rechnen.json → invoice-calc.json} +47 -47
- package/fixtures/invoice-texts.json +464 -0
- package/fixtures/{rechnung-summen.json → invoice-totals.json} +25 -25
- package/fixtures/{position-aus-euro.json → item-from-euro.json} +26 -26
- package/fixtures/manifest.json +252 -252
- package/fixtures/pos-message-cases.json +32 -0
- package/fixtures/pos-settings-defaults.json +149 -0
- package/fixtures/{kasse-texte.json → pos-texts.json} +416 -416
- package/fixtures/receipt-due-generated.json +1218 -0
- package/fixtures/{belege/storno-rabatt.json → receipts/cancellation-discount.json} +3 -3
- package/fixtures/{belege/storno-voll.json → receipts/cancellation-full.json} +3 -3
- package/fixtures/{belege/storno-teil.json → receipts/cancellation-partial.json} +3 -3
- package/fixtures/{belege/storno-split-voll.json → receipts/cancellation-split-full.json} +3 -3
- package/fixtures/{belege/storno-split-teil.json → receipts/cancellation-split-partial.json} +3 -3
- package/fixtures/{belege/karte-eigener.json → receipts/card-custom.json} +2 -2
- package/fixtures/{belege/karte-gptom-ios.json → receipts/card-gptom-ios.json} +2 -2
- package/fixtures/{belege/karte-gptom.json → receipts/card-gptom.json} +2 -2
- package/fixtures/{belege/karte-hobex-cloud.json → receipts/card-hobex-cloud.json} +2 -2
- package/fixtures/{belege/karte-hobex-hps.json → receipts/card-hobex-hps.json} +2 -2
- package/fixtures/{belege/karte-mypos.json → receipts/card-mypos.json} +2 -2
- package/fixtures/{belege/karte-stripe-eps.json → receipts/card-stripe-eps.json} +2 -2
- package/fixtures/{belege/karte-stripe.json → receipts/card-stripe.json} +2 -2
- package/fixtures/{belege/karte-sumup.json → receipts/card-sumup.json} +2 -2
- package/fixtures/{belege/rabattzeilen.json → receipts/discount-lines.json} +2 -2
- package/fixtures/{belege/rabatt-chef-trinkgeld.json → receipts/discount-owner-tip.json} +2 -2
- package/fixtures/{belege/rabatt-einfach.json → receipts/discount-simple.json} +2 -2
- package/fixtures/{belege/rabatt-trinkgeld.json → receipts/discount-tip.json} +2 -2
- package/fixtures/{belege/rabatt-wertgutschein.json → receipts/discount-value-voucher.json} +2 -2
- package/fixtures/{belege/langer-artikelname.json → receipts/long-item-name.json} +2 -2
- package/fixtures/{belege/verkauf-karte.json → receipts/sale-card.json} +2 -2
- package/fixtures/{belege/verkauf-bar.json → receipts/sale-cash.json} +2 -2
- package/fixtures/{belege/verkauf-kleinunternehmer.json → receipts/sale-small-business.json} +1 -1
- package/fixtures/{belege/signaturausfall-verkauf.json → receipts/signature-outage-sale.json} +2 -2
- package/fixtures/{belege/split-karte-karte-bar.json → receipts/split-card-card-cash.json} +2 -2
- package/fixtures/{belege/split-bar-rueckgeld.json → receipts/split-cash-change.json} +2 -2
- package/fixtures/{belege/split-langer-betrag.json → receipts/split-long-amount.json} +2 -2
- package/fixtures/{belege/split-eine-karte-trinkgeld.json → receipts/split-one-card-tip.json} +2 -2
- package/fixtures/{belege/split-tischrunde-trinkgeld.json → receipts/split-table-round-tip.json} +2 -2
- package/fixtures/{belege/split-trinkgeld-karte.json → receipts/split-tip-card.json} +2 -2
- package/fixtures/{belege/split-zwei-karten-gleicher-anbieter.json → receipts/split-two-cards-same-provider.json} +2 -2
- package/fixtures/{belege/testsignatur-verkauf.json → receipts/test-cashregister-sale.json} +3 -3
- package/fixtures/{belege/testkasse-verkauf.json → receipts/test-signature-sale.json} +3 -3
- package/fixtures/{belege → receipts}/training.json +2 -2
- package/fixtures/{belege/null-jahr.json → receipts/zero-annual.json} +5 -5
- package/fixtures/{belege/null-schluss.json → receipts/zero-final.json} +5 -5
- package/fixtures/{belege/null-pruef.json → receipts/zero-manual.json} +5 -5
- package/fixtures/{belege/null-monat.json → receipts/zero-monthly.json} +5 -5
- package/fixtures/{belege/null-ausfall.json → receipts/zero-outage-end.json} +5 -5
- package/fixtures/{belege/null-start.json → receipts/zero-start.json} +5 -5
- package/fixtures/renames-1.0.json +1490 -0
- package/fixtures/{kasse-settings-standard.json → stored/pos-settings-defaults.json} +7 -7
- package/fixtures/surface.json +877 -0
- package/fixtures/v3/README.md +125 -0
- package/fixtures/v3/antworten/belege.json +4738 -0
- package/fixtures/v3/antworten/belegmail.json +154 -0
- package/fixtures/v3/antworten/kasse-belege.json +4304 -0
- package/fixtures/v3/antworten/kasse.json +12716 -0
- package/fixtures/v3/antworten/rechnungen.json +1712 -0
- package/fixtures/v3/antworten/storno.json +737 -0
- package/fixtures/v3/stored/belege.json +502 -0
- package/fixtures/v3/stored/kasse.json +3461 -0
- package/fixtures/v3/stored/rechnungen.json +750 -0
- package/fixtures/v3/v3-vokabular.json +3375 -0
- package/fixtures/v3/zahlbetrag-faelle.json +794 -0
- package/package.json +32 -18
- package/dist/cjs/kasse/artikel.d.ts +0 -83
- package/dist/cjs/kasse/artikel.js +0 -79
- package/dist/cjs/kasse/client.d.ts +0 -10
- package/dist/cjs/kasse/client.js +0 -38
- package/dist/cjs/kasse/drucker.d.ts +0 -59
- package/dist/cjs/kasse/drucker.js +0 -50
- package/dist/cjs/kasse/index.d.ts +0 -13
- package/dist/cjs/kasse/index.js +0 -83
- package/dist/cjs/kasse/settings.d.ts +0 -229
- package/dist/cjs/kasse/settings.js +0 -172
- package/dist/cjs/kasse/texte.d.ts +0 -868
- package/dist/cjs/kasse/texte.js +0 -474
- package/dist/cjs/rechnung/fehler.d.ts +0 -21
- package/dist/cjs/rechnung/fehler.js +0 -44
- package/dist/cjs/rechnung/index.d.ts +0 -21
- package/dist/cjs/rechnung/index.js +0 -82
- package/dist/cjs/rechnung/texte.d.ts +0 -222
- package/dist/cjs/rechnung/texte.js +0 -425
- package/dist/esm/kasse/artikel.d.ts +0 -83
- package/dist/esm/kasse/artikel.js +0 -70
- package/dist/esm/kasse/client.d.ts +0 -10
- package/dist/esm/kasse/client.js +0 -33
- package/dist/esm/kasse/drucker.d.ts +0 -59
- package/dist/esm/kasse/drucker.js +0 -45
- package/dist/esm/kasse/index.d.ts +0 -13
- package/dist/esm/kasse/index.js +0 -18
- package/dist/esm/kasse/settings.d.ts +0 -229
- package/dist/esm/kasse/settings.js +0 -168
- package/dist/esm/kasse/texte.d.ts +0 -868
- package/dist/esm/kasse/texte.js +0 -466
- package/dist/esm/rechnung/fehler.d.ts +0 -21
- package/dist/esm/rechnung/fehler.js +0 -39
- package/dist/esm/rechnung/index.d.ts +0 -21
- package/dist/esm/rechnung/index.js +0 -20
- package/dist/esm/rechnung/texte.d.ts +0 -222
- package/dist/esm/rechnung/texte.js +0 -421
- package/fixtures/erwartet/karte-eigener.blatt32.json +0 -158
- package/fixtures/erwartet/karte-gptom-ios.blatt32.json +0 -230
- package/fixtures/erwartet/karte-gptom.blatt32.json +0 -230
- package/fixtures/erwartet/karte-hobex-cloud.blatt32.json +0 -200
- package/fixtures/erwartet/karte-hobex-hps.blatt32.json +0 -224
- package/fixtures/erwartet/karte-mypos.blatt32.json +0 -254
- package/fixtures/erwartet/karte-stripe-eps.blatt32.json +0 -194
- package/fixtures/erwartet/karte-stripe.blatt32.json +0 -212
- package/fixtures/erwartet/karte-sumup.blatt32.json +0 -218
- package/fixtures/erwartet/langer-artikelname.blatt32.json +0 -176
- package/fixtures/erwartet/null-ausfall.blatt32.json +0 -206
- package/fixtures/erwartet/null-jahr.blatt32.json +0 -212
- package/fixtures/erwartet/null-monat.blatt32.json +0 -206
- package/fixtures/erwartet/null-pruef.blatt32.json +0 -206
- package/fixtures/erwartet/null-schluss.blatt32.json +0 -206
- package/fixtures/erwartet/null-start.blatt32.json +0 -206
- package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt32.json +0 -212
- package/fixtures/erwartet/rabatt-einfach.blatt32.json +0 -182
- package/fixtures/erwartet/rabatt-trinkgeld.blatt32.json +0 -212
- package/fixtures/erwartet/rabatt-wertgutschein.blatt32.json +0 -218
- package/fixtures/erwartet/rabattzeilen.blatt32.json +0 -200
- package/fixtures/erwartet/signaturausfall-verkauf.blatt32.json +0 -194
- package/fixtures/erwartet/split-bar-rueckgeld.blatt32.json +0 -194
- package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt32.json +0 -242
- package/fixtures/erwartet/split-karte-karte-bar.blatt32.json +0 -356
- package/fixtures/erwartet/split-langer-betrag.blatt32.json +0 -266
- package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt32.json +0 -470
- package/fixtures/erwartet/split-trinkgeld-karte.blatt32.json +0 -272
- package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt32.json +0 -326
- package/fixtures/erwartet/storno-rabatt.blatt32.json +0 -248
- package/fixtures/erwartet/storno-split-teil.blatt32.json +0 -230
- package/fixtures/erwartet/storno-split-voll.blatt32.json +0 -320
- package/fixtures/erwartet/storno-teil.blatt32.json +0 -206
- package/fixtures/erwartet/storno-voll.blatt32.json +0 -218
- package/fixtures/erwartet/testkasse-verkauf.blatt32.json +0 -224
- package/fixtures/erwartet/testsignatur-verkauf.blatt32.json +0 -236
- package/fixtures/erwartet/training.blatt32.json +0 -236
- package/fixtures/erwartet/verkauf-bar.blatt32.json +0 -176
- package/fixtures/erwartet/verkauf-karte.blatt32.json +0 -176
- package/fixtures/erwartet/verkauf-kleinunternehmer.blatt32.json +0 -182
- package/fixtures/kasse-meldungen-faelle.json +0 -32
- package/fixtures/oberflaeche.json +0 -558
- package/fixtures/rechnung-api-beispiele/brands-ok.json +0 -8
- package/fixtures/rechnung-api-beispiele/customer-get-fehler-beide.json +0 -15
- package/fixtures/rechnung-api-beispiele/setup-status-ok.json +0 -8
- package/fixtures/rechnung-api-beispiele/zahlung-fehler-ohne-schluessel.json +0 -14
- package/fixtures/rechnung-api-beispiele/zahlung-fehler-vor-ort.json +0 -15
- package/fixtures/rechnung-api-beispiele/zahlung-nachtrag.json +0 -14
- package/fixtures/rechnung-texte.json +0 -464
- /package/dist/cjs/{rechnung → invoice}/typen.js +0 -0
- /package/dist/esm/{rechnung → invoice}/typen.js +0 -0
- /package/fixtures/{erwartet/storno-rabatt.grid32.txt → expected/cancellation-discount.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-rabatt.grid48.txt → expected/cancellation-discount.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-voll.grid32.txt → expected/cancellation-full.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-voll.grid48.txt → expected/cancellation-full.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-teil.grid32.txt → expected/cancellation-partial.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-teil.grid48.txt → expected/cancellation-partial.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-voll.grid32.txt → expected/cancellation-split-full.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-voll.grid48.txt → expected/cancellation-split-full.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-teil.grid32.txt → expected/cancellation-split-partial.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-teil.grid48.txt → expected/cancellation-split-partial.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-eigener.grid32.txt → expected/card-custom.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-eigener.grid48.txt → expected/card-custom.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom-ios.grid32.txt → expected/card-gptom-ios.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom-ios.grid48.txt → expected/card-gptom-ios.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom.grid32.txt → expected/card-gptom.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom.grid48.txt → expected/card-gptom.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-cloud.grid32.txt → expected/card-hobex-cloud.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-cloud.grid48.txt → expected/card-hobex-cloud.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-hps.grid32.txt → expected/card-hobex-hps.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-hps.grid48.txt → expected/card-hobex-hps.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-mypos.grid32.txt → expected/card-mypos.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-mypos.grid48.txt → expected/card-mypos.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe-eps.grid32.txt → expected/card-stripe-eps.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe-eps.grid48.txt → expected/card-stripe-eps.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe.grid32.txt → expected/card-stripe.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe.grid48.txt → expected/card-stripe.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-sumup.grid32.txt → expected/card-sumup.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-sumup.grid48.txt → expected/card-sumup.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabattzeilen.grid32.txt → expected/discount-lines.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabattzeilen.grid48.txt → expected/discount-lines.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid32.txt → expected/discount-owner-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid48.txt → expected/discount-owner-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-einfach.grid32.txt → expected/discount-simple.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-einfach.grid48.txt → expected/discount-simple.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-trinkgeld.grid32.txt → expected/discount-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-trinkgeld.grid48.txt → expected/discount-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-wertgutschein.grid32.txt → expected/discount-value-voucher.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-wertgutschein.grid48.txt → expected/discount-value-voucher.grid48.txt} +0 -0
- /package/fixtures/{erwartet/logo-probe-hoch.raster32.txt → expected/logo-sample-tall.raster32.txt} +0 -0
- /package/fixtures/{erwartet/logo-probe.raster32.txt → expected/logo-sample.raster32.txt} +0 -0
- /package/fixtures/{erwartet/langer-artikelname.grid32.txt → expected/long-item-name.grid32.txt} +0 -0
- /package/fixtures/{erwartet/langer-artikelname.grid48.txt → expected/long-item-name.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-karte.grid32.txt → expected/sale-card.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-karte.grid48.txt → expected/sale-card.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-bar.grid32.txt → expected/sale-cash.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-bar.grid48.txt → expected/sale-cash.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid32.txt → expected/sale-small-business.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid48.txt → expected/sale-small-business.grid48.txt} +0 -0
- /package/fixtures/{erwartet/signaturausfall-verkauf.grid32.txt → expected/signature-outage-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/signaturausfall-verkauf.grid48.txt → expected/signature-outage-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-karte-karte-bar.grid32.txt → expected/split-card-card-cash.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-karte-karte-bar.grid48.txt → expected/split-card-card-cash.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-bar-rueckgeld.grid32.txt → expected/split-cash-change.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-bar-rueckgeld.grid48.txt → expected/split-cash-change.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-langer-betrag.grid32.txt → expected/split-long-amount.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-langer-betrag.grid48.txt → expected/split-long-amount.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid32.txt → expected/split-one-card-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid48.txt → expected/split-one-card-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid32.txt → expected/split-table-round-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid48.txt → expected/split-table-round-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-trinkgeld-karte.grid32.txt → expected/split-tip-card.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-trinkgeld-karte.grid48.txt → expected/split-tip-card.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid32.txt → expected/split-two-cards-same-provider.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid48.txt → expected/split-two-cards-same-provider.grid48.txt} +0 -0
- /package/fixtures/{erwartet/testkasse-verkauf.grid32.txt → expected/test-cashregister-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/testkasse-verkauf.grid48.txt → expected/test-cashregister-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet/testsignatur-verkauf.grid32.txt → expected/test-signature-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/testsignatur-verkauf.grid48.txt → expected/test-signature-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet → expected}/training.grid32.txt +0 -0
- /package/fixtures/{erwartet → expected}/training.grid48.txt +0 -0
- /package/fixtures/{erwartet/null-jahr.grid32.txt → expected/zero-annual.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-jahr.grid48.txt → expected/zero-annual.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-schluss.grid32.txt → expected/zero-final.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-schluss.grid48.txt → expected/zero-final.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-pruef.grid32.txt → expected/zero-manual.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-pruef.grid48.txt → expected/zero-manual.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-monat.grid32.txt → expected/zero-monthly.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-monat.grid48.txt → expected/zero-monthly.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-ausfall.grid32.txt → expected/zero-outage-end.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-ausfall.grid48.txt → expected/zero-outage-end.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-start.grid32.txt → expected/zero-start.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-start.grid48.txt → expected/zero-start.grid48.txt} +0 -0
package/dist/cjs/receipt/grid.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
3
|
+
exports.CHARS_PER_PAPER_SIZE = void 0;
|
|
4
|
+
exports.gridColumnWidths = gridColumnWidths;
|
|
5
5
|
exports.renderReceiptGrid = renderReceiptGrid;
|
|
6
|
-
exports.
|
|
6
|
+
exports.gridToText = gridToText;
|
|
7
7
|
const escpos_js_1 = require("../printing/escpos.js");
|
|
8
8
|
/**
|
|
9
9
|
* Zeichenraster: der Beleg als Zeilen mit **exakt N Zeichen** -- die einzige
|
|
@@ -16,7 +16,7 @@ const escpos_js_1 = require("../printing/escpos.js");
|
|
|
16
16
|
* letzte Spalte, jede mindestens 1. Zwischen zwei Spalten steht immer
|
|
17
17
|
* mindestens ein Leerzeichen (letztes Zeichen jeder nicht-letzten Spalte).
|
|
18
18
|
* Die letzte Spalte endet buendig am rechten Rand.
|
|
19
|
-
* - Text/Aufdruck/Spalteninhalt bricht **wortweise** um (`
|
|
19
|
+
* - Text/Aufdruck/Spalteninhalt bricht **wortweise** um (`wrapText`,
|
|
20
20
|
* dieselbe Regel wie der ESC/POS-Kern); ueberlange Woerter nach einem
|
|
21
21
|
* Bindestrich, sonst hart; geschuetztes Leerzeichen bricht nie.
|
|
22
22
|
* - Fliessregel: laeuft in einer Spaltenzeile nur eine Spalte ueber die erste
|
|
@@ -25,14 +25,14 @@ const escpos_js_1 = require("../printing/escpos.js");
|
|
|
25
25
|
* - Trennlinie ueber die volle Breite, Leerraum als Leerzeilen, QR als eigene
|
|
26
26
|
* Zeile mit Nutzlast (der Zeichner setzt das Bild).
|
|
27
27
|
*/
|
|
28
|
-
exports.
|
|
28
|
+
exports.CHARS_PER_PAPER_SIZE = { mm58: 32, mm80: 48 };
|
|
29
29
|
/** Zwoelftel -> Zeichen je Spalte (ganze Zeichen, Rest an die letzte, mindestens 1). */
|
|
30
|
-
function
|
|
30
|
+
function gridColumnWidths(twelfths, chars) {
|
|
31
31
|
const out = [];
|
|
32
32
|
let vergeben = 0;
|
|
33
|
-
|
|
34
|
-
const letzte = i ===
|
|
35
|
-
const b = letzte ? Math.max(1,
|
|
33
|
+
twelfths.forEach((w, i) => {
|
|
34
|
+
const letzte = i === twelfths.length - 1;
|
|
35
|
+
const b = letzte ? Math.max(1, chars - vergeben) : Math.max(1, Math.floor((chars * w) / 12));
|
|
36
36
|
out.push(b);
|
|
37
37
|
vergeben += b;
|
|
38
38
|
});
|
|
@@ -58,13 +58,13 @@ function restNach(text, erste) {
|
|
|
58
58
|
return text.slice(i);
|
|
59
59
|
}
|
|
60
60
|
function renderReceiptGrid(layout, options = {}) {
|
|
61
|
-
const zeichen = Math.max(8, Math.floor(options.
|
|
61
|
+
const zeichen = Math.max(8, Math.floor(options.charsPerLine ?? exports.CHARS_PER_PAPER_SIZE[layout.paperSize] ?? 32));
|
|
62
62
|
const leer = ' '.repeat(zeichen);
|
|
63
63
|
const lines = [];
|
|
64
64
|
for (const z of layout.lines) {
|
|
65
65
|
switch (z.kind) {
|
|
66
66
|
case 'text':
|
|
67
|
-
for (const t of (0, escpos_js_1.
|
|
67
|
+
for (const t of (0, escpos_js_1.wrapText)(z.text, zeichen))
|
|
68
68
|
lines.push({ text: ausrichten(t, zeichen, z.align), kind: 'text', bold: z.bold });
|
|
69
69
|
break;
|
|
70
70
|
case 'banner': {
|
|
@@ -73,10 +73,10 @@ function renderReceiptGrid(layout, options = {}) {
|
|
|
73
73
|
// myPOS -- Zeichen fuer Zeichen gleich. Vorher zeichnete jeder Weg seinen
|
|
74
74
|
// eigenen Rahmen (Rechteck, doppelt hoch, invers, gefuellt).
|
|
75
75
|
const rahmen = '='.repeat(zeichen);
|
|
76
|
-
lines.push({ text: rahmen, kind: 'banner', bold: true,
|
|
77
|
-
for (const t of (0, escpos_js_1.
|
|
78
|
-
lines.push({ text: ausrichten(t, zeichen, 'center'), kind: 'banner', bold: true,
|
|
79
|
-
lines.push({ text: rahmen, kind: 'banner', bold: true,
|
|
76
|
+
lines.push({ text: rahmen, kind: 'banner', bold: true, tone: z.tone });
|
|
77
|
+
for (const t of (0, escpos_js_1.wrapText)(z.text, zeichen))
|
|
78
|
+
lines.push({ text: ausrichten(t, zeichen, 'center'), kind: 'banner', bold: true, tone: z.tone });
|
|
79
|
+
lines.push({ text: rahmen, kind: 'banner', bold: true, tone: z.tone });
|
|
80
80
|
break;
|
|
81
81
|
}
|
|
82
82
|
case 'rule':
|
|
@@ -90,10 +90,10 @@ function renderReceiptGrid(layout, options = {}) {
|
|
|
90
90
|
lines.push({ text: ausrichten(QR_PLATZHALTER, zeichen, 'center'), kind: 'qr', bold: false, qr: z.data });
|
|
91
91
|
break;
|
|
92
92
|
case 'columns': {
|
|
93
|
-
const breiten =
|
|
93
|
+
const breiten = gridColumnWidths(z.columns.map((c) => c.width), zeichen);
|
|
94
94
|
// Inhalt jeder nicht-letzten Spalte um 1 Zeichen schmaler: garantierter Abstand.
|
|
95
95
|
const inhalt = breiten.map((b, i) => (i < breiten.length - 1 ? Math.max(1, b - 1) : b));
|
|
96
|
-
const teile = z.columns.map((c, i) => (0, escpos_js_1.
|
|
96
|
+
const teile = z.columns.map((c, i) => (0, escpos_js_1.wrapText)(c.text, inhalt[i]));
|
|
97
97
|
// Fliessregel: laeuft nach der ersten Zeile nur noch EINE Spalte weiter (die anderen sind
|
|
98
98
|
// fertig), bekommt ihr Rest die volle Breite -- auf 58 mm sonst 18-Zeichen-Schnipsel.
|
|
99
99
|
// Laufen mehrere weiter, bleibt das Raster (sonst verschoeben sich die Nachbarn).
|
|
@@ -113,7 +113,7 @@ function renderReceiptGrid(layout, options = {}) {
|
|
|
113
113
|
// Rest aus dem Originaltext (nicht aus den schmal umbrochenen Stuecken), damit
|
|
114
114
|
// Bindestrich-/Hartbrueche der schmalen Spalte nicht als Leerzeichen zurueckbleiben.
|
|
115
115
|
const rest = restNach(z.columns[i].text, teile[i][0]);
|
|
116
|
-
for (const t of (0, escpos_js_1.
|
|
116
|
+
for (const t of (0, escpos_js_1.wrapText)(rest, zeichen))
|
|
117
117
|
lines.push({ text: ausrichten(t, zeichen, z.columns[i].align), kind: 'columns', bold: false });
|
|
118
118
|
}
|
|
119
119
|
break;
|
|
@@ -122,9 +122,9 @@ function renderReceiptGrid(layout, options = {}) {
|
|
|
122
122
|
break;
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
|
-
return { lines, zeichen };
|
|
125
|
+
return { lines, charsPerLine: zeichen };
|
|
126
126
|
}
|
|
127
127
|
/** Klartext (eine Zeile je Rasterzeile) -- fuer Golden-Dateien und Logs. QR als Platzhalter. */
|
|
128
|
-
function
|
|
128
|
+
function gridToText(grid) {
|
|
129
129
|
return grid.lines.map((z) => z.text).join('\n');
|
|
130
130
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export { type LayoutAlign, type LayoutColumn, type LayoutTextLine, type LayoutColumnsLine, type LayoutRuleLine, type LayoutSpaceLine, type LayoutQrLine, type LayoutLine, type ReceiptLayout, type BuildReceiptLayoutOptions, buildReceiptLayout, receiptSignatureFailed, receiptSignatureIsTest, receiptIsZero, receiptAmountsAreZero, receiptIsSmallBusinessConsistent, receiptZdaText, type
|
|
2
|
-
export { type EscPosLayoutOptions, type
|
|
3
|
-
export { type GridLine, type GridLineKind, type ReceiptGrid, type RenderReceiptGridOptions, renderReceiptGrid,
|
|
4
|
-
export { type EposPrintXmlOptions, type
|
|
5
|
-
export { type
|
|
6
|
-
export {
|
|
7
|
-
export { type
|
|
8
|
-
export {
|
|
1
|
+
export { type LayoutAlign, type LayoutColumn, type LayoutTextLine, type LayoutColumnsLine, type LayoutRuleLine, type LayoutSpaceLine, type LayoutQrLine, type LayoutLine, type ReceiptLayout, type BuildReceiptLayoutOptions, buildReceiptLayout, receiptSignatureFailed, receiptSignatureIsTest, receiptIsZero, receiptAmountsAreZero, receiptIsSmallBusinessConsistent, receiptZdaText, CURRENT_LAYOUT_RULESET, type LayoutBannerLine, type LayoutBannerTone, type LayoutRuleset, SMALL_BUSINESS_NOTICE, formatCents, } from './layout.js';
|
|
2
|
+
export { type EscPosLayoutOptions, type EscPosLayoutResult, type QrPrintMode, type PrintLogo, assertLogoRaster, escPosLayoutBytes, escPosLayoutResult, } from './layout-escpos.js';
|
|
3
|
+
export { type GridLine, type GridLineKind, type ReceiptGrid, type RenderReceiptGridOptions, renderReceiptGrid, gridColumnWidths, gridToText, CHARS_PER_PAPER_SIZE, } from './grid.js';
|
|
4
|
+
export { type EposPrintXmlOptions, type EposPrintResult, type EposDirectOptions, type EposResponse, EposConnectionError, eposPrintXml, eposPrintXmlResult, eposXmlEscape, eposImageXml, eposServiceUrl, eposSoapEnvelope, eposParseResponse, eposDirectPrint, eposDirectStatus } from './epos.js';
|
|
5
|
+
export { type SheetLogoSize, type SheetLogo, type LogoDimensions, type SheetBlock, type ReceiptSheet, type ReceiptSheetOptions, SHEET_LOGO_SIZES, LOGO_MAX_PIXELS, DOTS_PER_CHAR, DOTS_PER_LINE, paperSizeForChars, logoDimensions, isLogoPixelSizeAllowed, logoRasterSize, qrSheetWidthFraction, receiptSheet, } from './blatt.js';
|
|
6
|
+
export { rasterizeLogo } from './bild.js';
|
|
7
|
+
export { type BrandMarkRaster, BRAND_MARK_RASTERS, BRAND_MARK_PATHS } from './marke-daten.js';
|
|
8
|
+
export { brandMarkImage } from './marke.js';
|
|
9
|
+
export { type ReceiptDueTip, type ReceiptDueTipRecipient, type ReceiptDueOptions, type ReceiptDueBuckets, type ReceiptDueBreakdown, receiptDueCents, receiptDueBreakdown, } from './due.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.receiptDueBreakdown = exports.receiptDueCents = exports.brandMarkImage = exports.BRAND_MARK_PATHS = exports.BRAND_MARK_RASTERS = exports.rasterizeLogo = exports.receiptSheet = exports.qrSheetWidthFraction = exports.logoRasterSize = exports.isLogoPixelSizeAllowed = exports.logoDimensions = exports.paperSizeForChars = exports.DOTS_PER_LINE = exports.DOTS_PER_CHAR = exports.LOGO_MAX_PIXELS = exports.SHEET_LOGO_SIZES = exports.eposDirectStatus = exports.eposDirectPrint = exports.eposParseResponse = exports.eposSoapEnvelope = exports.eposServiceUrl = exports.eposImageXml = exports.eposXmlEscape = exports.eposPrintXmlResult = exports.eposPrintXml = exports.EposConnectionError = exports.CHARS_PER_PAPER_SIZE = exports.gridToText = exports.gridColumnWidths = exports.renderReceiptGrid = exports.escPosLayoutResult = exports.escPosLayoutBytes = exports.assertLogoRaster = exports.formatCents = exports.SMALL_BUSINESS_NOTICE = exports.CURRENT_LAYOUT_RULESET = exports.receiptZdaText = exports.receiptIsSmallBusinessConsistent = exports.receiptAmountsAreZero = exports.receiptIsZero = exports.receiptSignatureIsTest = exports.receiptSignatureFailed = exports.buildReceiptLayout = void 0;
|
|
4
4
|
var layout_js_1 = require("./layout.js");
|
|
5
5
|
Object.defineProperty(exports, "buildReceiptLayout", { enumerable: true, get: function () { return layout_js_1.buildReceiptLayout; } });
|
|
6
6
|
Object.defineProperty(exports, "receiptSignatureFailed", { enumerable: true, get: function () { return layout_js_1.receiptSignatureFailed; } });
|
|
@@ -9,44 +9,47 @@ Object.defineProperty(exports, "receiptIsZero", { enumerable: true, get: functio
|
|
|
9
9
|
Object.defineProperty(exports, "receiptAmountsAreZero", { enumerable: true, get: function () { return layout_js_1.receiptAmountsAreZero; } });
|
|
10
10
|
Object.defineProperty(exports, "receiptIsSmallBusinessConsistent", { enumerable: true, get: function () { return layout_js_1.receiptIsSmallBusinessConsistent; } });
|
|
11
11
|
Object.defineProperty(exports, "receiptZdaText", { enumerable: true, get: function () { return layout_js_1.receiptZdaText; } });
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "CURRENT_LAYOUT_RULESET", { enumerable: true, get: function () { return layout_js_1.CURRENT_LAYOUT_RULESET; } });
|
|
13
13
|
Object.defineProperty(exports, "SMALL_BUSINESS_NOTICE", { enumerable: true, get: function () { return layout_js_1.SMALL_BUSINESS_NOTICE; } });
|
|
14
14
|
Object.defineProperty(exports, "formatCents", { enumerable: true, get: function () { return layout_js_1.formatCents; } });
|
|
15
15
|
var layout_escpos_js_1 = require("./layout-escpos.js");
|
|
16
|
-
Object.defineProperty(exports, "
|
|
16
|
+
Object.defineProperty(exports, "assertLogoRaster", { enumerable: true, get: function () { return layout_escpos_js_1.assertLogoRaster; } });
|
|
17
17
|
Object.defineProperty(exports, "escPosLayoutBytes", { enumerable: true, get: function () { return layout_escpos_js_1.escPosLayoutBytes; } });
|
|
18
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "escPosLayoutResult", { enumerable: true, get: function () { return layout_escpos_js_1.escPosLayoutResult; } });
|
|
19
19
|
var grid_js_1 = require("./grid.js");
|
|
20
20
|
Object.defineProperty(exports, "renderReceiptGrid", { enumerable: true, get: function () { return grid_js_1.renderReceiptGrid; } });
|
|
21
|
-
Object.defineProperty(exports, "
|
|
22
|
-
Object.defineProperty(exports, "
|
|
23
|
-
Object.defineProperty(exports, "
|
|
21
|
+
Object.defineProperty(exports, "gridColumnWidths", { enumerable: true, get: function () { return grid_js_1.gridColumnWidths; } });
|
|
22
|
+
Object.defineProperty(exports, "gridToText", { enumerable: true, get: function () { return grid_js_1.gridToText; } });
|
|
23
|
+
Object.defineProperty(exports, "CHARS_PER_PAPER_SIZE", { enumerable: true, get: function () { return grid_js_1.CHARS_PER_PAPER_SIZE; } });
|
|
24
24
|
var epos_js_1 = require("./epos.js");
|
|
25
25
|
Object.defineProperty(exports, "EposConnectionError", { enumerable: true, get: function () { return epos_js_1.EposConnectionError; } });
|
|
26
26
|
Object.defineProperty(exports, "eposPrintXml", { enumerable: true, get: function () { return epos_js_1.eposPrintXml; } });
|
|
27
|
-
Object.defineProperty(exports, "
|
|
27
|
+
Object.defineProperty(exports, "eposPrintXmlResult", { enumerable: true, get: function () { return epos_js_1.eposPrintXmlResult; } });
|
|
28
28
|
Object.defineProperty(exports, "eposXmlEscape", { enumerable: true, get: function () { return epos_js_1.eposXmlEscape; } });
|
|
29
|
-
Object.defineProperty(exports, "
|
|
29
|
+
Object.defineProperty(exports, "eposImageXml", { enumerable: true, get: function () { return epos_js_1.eposImageXml; } });
|
|
30
30
|
Object.defineProperty(exports, "eposServiceUrl", { enumerable: true, get: function () { return epos_js_1.eposServiceUrl; } });
|
|
31
31
|
Object.defineProperty(exports, "eposSoapEnvelope", { enumerable: true, get: function () { return epos_js_1.eposSoapEnvelope; } });
|
|
32
32
|
Object.defineProperty(exports, "eposParseResponse", { enumerable: true, get: function () { return epos_js_1.eposParseResponse; } });
|
|
33
33
|
Object.defineProperty(exports, "eposDirectPrint", { enumerable: true, get: function () { return epos_js_1.eposDirectPrint; } });
|
|
34
34
|
Object.defineProperty(exports, "eposDirectStatus", { enumerable: true, get: function () { return epos_js_1.eposDirectStatus; } });
|
|
35
35
|
var blatt_js_1 = require("./blatt.js");
|
|
36
|
-
Object.defineProperty(exports, "
|
|
37
|
-
Object.defineProperty(exports, "
|
|
38
|
-
Object.defineProperty(exports, "
|
|
39
|
-
Object.defineProperty(exports, "
|
|
40
|
-
Object.defineProperty(exports, "
|
|
41
|
-
Object.defineProperty(exports, "
|
|
42
|
-
Object.defineProperty(exports, "
|
|
43
|
-
Object.defineProperty(exports, "
|
|
44
|
-
Object.defineProperty(exports, "
|
|
45
|
-
Object.defineProperty(exports, "
|
|
36
|
+
Object.defineProperty(exports, "SHEET_LOGO_SIZES", { enumerable: true, get: function () { return blatt_js_1.SHEET_LOGO_SIZES; } });
|
|
37
|
+
Object.defineProperty(exports, "LOGO_MAX_PIXELS", { enumerable: true, get: function () { return blatt_js_1.LOGO_MAX_PIXELS; } });
|
|
38
|
+
Object.defineProperty(exports, "DOTS_PER_CHAR", { enumerable: true, get: function () { return blatt_js_1.DOTS_PER_CHAR; } });
|
|
39
|
+
Object.defineProperty(exports, "DOTS_PER_LINE", { enumerable: true, get: function () { return blatt_js_1.DOTS_PER_LINE; } });
|
|
40
|
+
Object.defineProperty(exports, "paperSizeForChars", { enumerable: true, get: function () { return blatt_js_1.paperSizeForChars; } });
|
|
41
|
+
Object.defineProperty(exports, "logoDimensions", { enumerable: true, get: function () { return blatt_js_1.logoDimensions; } });
|
|
42
|
+
Object.defineProperty(exports, "isLogoPixelSizeAllowed", { enumerable: true, get: function () { return blatt_js_1.isLogoPixelSizeAllowed; } });
|
|
43
|
+
Object.defineProperty(exports, "logoRasterSize", { enumerable: true, get: function () { return blatt_js_1.logoRasterSize; } });
|
|
44
|
+
Object.defineProperty(exports, "qrSheetWidthFraction", { enumerable: true, get: function () { return blatt_js_1.qrSheetWidthFraction; } });
|
|
45
|
+
Object.defineProperty(exports, "receiptSheet", { enumerable: true, get: function () { return blatt_js_1.receiptSheet; } });
|
|
46
46
|
var bild_js_1 = require("./bild.js");
|
|
47
|
-
Object.defineProperty(exports, "
|
|
47
|
+
Object.defineProperty(exports, "rasterizeLogo", { enumerable: true, get: function () { return bild_js_1.rasterizeLogo; } });
|
|
48
48
|
var marke_daten_js_1 = require("./marke-daten.js");
|
|
49
|
-
Object.defineProperty(exports, "
|
|
50
|
-
Object.defineProperty(exports, "
|
|
49
|
+
Object.defineProperty(exports, "BRAND_MARK_RASTERS", { enumerable: true, get: function () { return marke_daten_js_1.BRAND_MARK_RASTERS; } });
|
|
50
|
+
Object.defineProperty(exports, "BRAND_MARK_PATHS", { enumerable: true, get: function () { return marke_daten_js_1.BRAND_MARK_PATHS; } });
|
|
51
51
|
var marke_js_1 = require("./marke.js");
|
|
52
|
-
Object.defineProperty(exports, "
|
|
52
|
+
Object.defineProperty(exports, "brandMarkImage", { enumerable: true, get: function () { return marke_js_1.brandMarkImage; } });
|
|
53
|
+
var due_js_1 = require("./due.js");
|
|
54
|
+
Object.defineProperty(exports, "receiptDueCents", { enumerable: true, get: function () { return due_js_1.receiptDueCents; } });
|
|
55
|
+
Object.defineProperty(exports, "receiptDueBreakdown", { enumerable: true, get: function () { return due_js_1.receiptDueBreakdown; } });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type PosCodeTable, type PosCutMode, type PosPaperSize, type QrCorrection, type QrMatrix, type
|
|
1
|
+
import { type PosCodeTable, type PosCutMode, type PosPaperSize, type QrCorrection, type QrMatrix, type QrModuleSize, type QrSize, type RasterImage } from '../printing/index.js';
|
|
2
2
|
import type { ReceiptLayout } from './layout.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type ReceiptSheet, type SheetLogoSize, type LogoDimensions } from './blatt.js';
|
|
4
4
|
/**
|
|
5
5
|
* Bruecke vom Layout-Modell zu ESC/POS-Bytes — der Bondrucker-Ausgabeweg.
|
|
6
6
|
*
|
|
@@ -29,18 +29,18 @@ import { type BelegBlatt, type LogoStufe, type LogoMass } from './blatt.js';
|
|
|
29
29
|
* (`qrMatrix`), weil dieses Paket keine QR-Codes rechnet.
|
|
30
30
|
*/
|
|
31
31
|
export type QrPrintMode = 'native' | 'nativeModel1' | 'imageRaster';
|
|
32
|
-
/** Firmenlogo fuer den Druck: Stufe, Pixelmass des Originals und das fertige Rasterbild (`
|
|
33
|
-
export interface
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
raster:
|
|
32
|
+
/** Firmenlogo fuer den Druck: Stufe, Pixelmass des Originals und das fertige Rasterbild (`rasterizeLogo`). */
|
|
33
|
+
export interface PrintLogo {
|
|
34
|
+
size: SheetLogoSize;
|
|
35
|
+
pixelWidth: number;
|
|
36
|
+
pixelHeight: number;
|
|
37
|
+
raster: RasterImage;
|
|
38
38
|
}
|
|
39
39
|
/** Das Rasterbild muss genau so gross sein, wie das Blatt das Logo setzt -- sonst stuende am Bon ein anderes Logo als am Schirm. */
|
|
40
|
-
export declare function
|
|
40
|
+
export declare function assertLogoRaster(logo: PrintLogo, dimensions: LogoDimensions, chars: number): void;
|
|
41
41
|
/**
|
|
42
42
|
* Baut das Blatt fuer einen Druckweg (ESC/POS, ePOS) an EINER Stelle: die
|
|
43
|
-
* Zuordnung `
|
|
43
|
+
* Zuordnung `PrintLogo` -> `SheetLogo` und die Groessenpruefung des mitgebrachten
|
|
44
44
|
* Rasterbilds teilen sich beide Wege -- ohne das muesste eine Aenderung daran an
|
|
45
45
|
* zwei Stellen nachgezogen werden. Wirft VOR jeder Ausgabe (also bevor der
|
|
46
46
|
* Aufrufer auch nur ein Byte/Zeichen geschrieben hat), wenn das Rasterbild nicht
|
|
@@ -48,10 +48,10 @@ export declare function pruefeLogoRaster(logo: DruckLogo, mass: LogoMass, zeiche
|
|
|
48
48
|
*/
|
|
49
49
|
export declare function blattFuerDruck(layout: ReceiptLayout, optionen: {
|
|
50
50
|
zeichen: number;
|
|
51
|
-
logo?:
|
|
51
|
+
logo?: PrintLogo | null;
|
|
52
52
|
marke?: boolean;
|
|
53
|
-
qrGroesse:
|
|
54
|
-
}):
|
|
53
|
+
qrGroesse: QrModuleSize;
|
|
54
|
+
}): ReceiptSheet;
|
|
55
55
|
export interface EscPosLayoutOptions {
|
|
56
56
|
/** Papierbreite; Vorgabe ist die des Layouts (dessen Spaltenbreiten daran haengen). */
|
|
57
57
|
paperSize?: PosPaperSize;
|
|
@@ -67,9 +67,9 @@ export interface EscPosLayoutOptions {
|
|
|
67
67
|
/** Fehlerkorrekturstufe des QR-Codes; Vorgabe `M` (wie ePOS, Bildweg und Blatt). */
|
|
68
68
|
qrCorrection?: QrCorrection;
|
|
69
69
|
/** Deckel fuer die gerechnete Modulgroesse; Vorgabe `auto` (hoechstens 6 Punkte je Modul). */
|
|
70
|
-
|
|
70
|
+
qrModuleSize?: QrModuleSize;
|
|
71
71
|
/** Druckweg des QR; Vorgabe `native` (der Bestandsweg). */
|
|
72
|
-
|
|
72
|
+
qrMode?: QrPrintMode;
|
|
73
73
|
/**
|
|
74
74
|
* Raster fuer den Bildweg — ohne das gibt es keinen Notausgang.
|
|
75
75
|
*
|
|
@@ -77,24 +77,24 @@ export interface EscPosLayoutOptions {
|
|
|
77
77
|
* Kopf von `layout.ts`); der Aufrufer bringt das fertige Raster mit, etwa
|
|
78
78
|
* aus der QR-Bibliothek, die er ohnehin fuer den Bildschirm benutzt.
|
|
79
79
|
*/
|
|
80
|
-
qrMatrix?: (
|
|
80
|
+
qrMatrix?: (payload: string) => QrMatrix;
|
|
81
81
|
/** Firmenlogo; ohne Angabe kein Logo (Bestand). */
|
|
82
|
-
logo?:
|
|
82
|
+
logo?: PrintLogo | null;
|
|
83
83
|
/** Das Kasseneck-Logo am Ende (Konto-Flag `kreiseck_logo`). */
|
|
84
|
-
|
|
84
|
+
brandMark?: boolean;
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
87
87
|
* Der Bytestrom **samt** dem, was dem QR unterwegs zugestossen ist.
|
|
88
88
|
*
|
|
89
|
-
* Zwilling von `KeckPrintResult`: `
|
|
90
|
-
* nachdrucken oder elektronisch ausgeben", `
|
|
89
|
+
* Zwilling von `KeckPrintResult`: `qrError` heisst "Beleg ohne QR,
|
|
90
|
+
* nachdrucken oder elektronisch ausgeben", `qrFallback` heisst "gedruckt,
|
|
91
91
|
* aber der eingestellte Weg taugt fuer dieses Geraet nicht" — das eine gehoert
|
|
92
92
|
* dem Kunden gesagt, das andere dem Chef.
|
|
93
93
|
*/
|
|
94
|
-
export interface
|
|
94
|
+
export interface EscPosLayoutResult {
|
|
95
95
|
bytes: Uint8Array;
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
qrError: string | null;
|
|
97
|
+
qrFallback: string | null;
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
100
|
* Bytes fuer den Bondrucker -- **aus dem Zeichenraster** ([renderReceiptGrid]):
|
|
@@ -108,4 +108,4 @@ export declare function escPosLayoutBytes(layout: ReceiptLayout, options?: EscPo
|
|
|
108
108
|
* zugestossen ist. Die Bytes sind dieselben; wer die Meldungen braucht, nimmt
|
|
109
109
|
* diesen Weg.
|
|
110
110
|
*/
|
|
111
|
-
export declare function
|
|
111
|
+
export declare function escPosLayoutResult(layout: ReceiptLayout, options?: EscPosLayoutOptions): EscPosLayoutResult;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.assertLogoRaster = assertLogoRaster;
|
|
4
4
|
exports.blattFuerDruck = blattFuerDruck;
|
|
5
5
|
exports.escPosLayoutBytes = escPosLayoutBytes;
|
|
6
|
-
exports.
|
|
6
|
+
exports.escPosLayoutResult = escPosLayoutResult;
|
|
7
7
|
const index_js_1 = require("../printing/index.js");
|
|
8
8
|
const blatt_js_1 = require("./blatt.js");
|
|
9
9
|
const grid_js_1 = require("./grid.js");
|
|
10
10
|
const marke_js_1 = require("./marke.js");
|
|
11
11
|
/** Das Rasterbild muss genau so gross sein, wie das Blatt das Logo setzt -- sonst stuende am Bon ein anderes Logo als am Schirm. */
|
|
12
|
-
function
|
|
13
|
-
const soll = (0, blatt_js_1.
|
|
14
|
-
if (logo.raster.
|
|
15
|
-
throw new Error(`Logo-Raster ${logo.raster.
|
|
12
|
+
function assertLogoRaster(logo, dimensions, chars) {
|
|
13
|
+
const soll = (0, blatt_js_1.logoRasterSize)(dimensions, chars);
|
|
14
|
+
if (logo.raster.width !== soll.width || logo.raster.height !== soll.height) {
|
|
15
|
+
throw new Error(`Logo-Raster ${logo.raster.width}x${logo.raster.height} passt nicht zum Blatt (${soll.width}x${soll.height})`);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Baut das Blatt fuer einen Druckweg (ESC/POS, ePOS) an EINER Stelle: die
|
|
20
|
-
* Zuordnung `
|
|
20
|
+
* Zuordnung `PrintLogo` -> `SheetLogo` und die Groessenpruefung des mitgebrachten
|
|
21
21
|
* Rasterbilds teilen sich beide Wege -- ohne das muesste eine Aenderung daran an
|
|
22
22
|
* zwei Stellen nachgezogen werden. Wirft VOR jeder Ausgabe (also bevor der
|
|
23
23
|
* Aufrufer auch nur ein Byte/Zeichen geschrieben hat), wenn das Rasterbild nicht
|
|
@@ -25,16 +25,16 @@ function pruefeLogoRaster(logo, mass, zeichen) {
|
|
|
25
25
|
*/
|
|
26
26
|
function blattFuerDruck(layout, optionen) {
|
|
27
27
|
const blattOptionen = {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
charsPerLine: optionen.zeichen,
|
|
29
|
+
brandMark: optionen.marke === true,
|
|
30
|
+
qrModuleSize: optionen.qrGroesse,
|
|
31
31
|
};
|
|
32
32
|
if (optionen.logo)
|
|
33
|
-
blattOptionen.logo = {
|
|
34
|
-
const blatt = (0, blatt_js_1.
|
|
35
|
-
const logoBlock = blatt.
|
|
36
|
-
if (optionen.logo && logoBlock && logoBlock.
|
|
37
|
-
|
|
33
|
+
blattOptionen.logo = { size: optionen.logo.size, pixelWidth: optionen.logo.pixelWidth, pixelHeight: optionen.logo.pixelHeight };
|
|
34
|
+
const blatt = (0, blatt_js_1.receiptSheet)(layout, blattOptionen);
|
|
35
|
+
const logoBlock = blatt.blocks.find((b) => b.kind === 'logo');
|
|
36
|
+
if (optionen.logo && logoBlock && logoBlock.kind === 'logo')
|
|
37
|
+
assertLogoRaster(optionen.logo, logoBlock, blatt.charsPerLine);
|
|
38
38
|
return blatt;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
@@ -63,14 +63,14 @@ function druckbaresLayout(layout) {
|
|
|
63
63
|
* zeigt, druckt der Drucker (Monospace, Font A: 32/48 Zeichen).
|
|
64
64
|
*/
|
|
65
65
|
function escPosLayoutBytes(layout, options = {}) {
|
|
66
|
-
return
|
|
66
|
+
return escPosLayoutResult(layout, options).bytes;
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
69
|
* Wie [escPosLayoutBytes], gibt aber zusaetzlich zurueck, was dem QR
|
|
70
70
|
* zugestossen ist. Die Bytes sind dieselben; wer die Meldungen braucht, nimmt
|
|
71
71
|
* diesen Weg.
|
|
72
72
|
*/
|
|
73
|
-
function
|
|
73
|
+
function escPosLayoutResult(layout, options = {}) {
|
|
74
74
|
const paperSize = options.paperSize ?? layout.paperSize;
|
|
75
75
|
const dokumentOptionen = { paperSize };
|
|
76
76
|
if (options.codeTable !== undefined) {
|
|
@@ -78,38 +78,38 @@ function escPosLayoutErgebnis(layout, options = {}) {
|
|
|
78
78
|
}
|
|
79
79
|
const doc = (0, index_js_1.createEscPosDocument)(dokumentOptionen);
|
|
80
80
|
(0, index_js_1.escPosReset)(doc);
|
|
81
|
-
const modus = options.
|
|
81
|
+
const modus = options.qrMode ?? 'native';
|
|
82
82
|
const qrOptionen = { align: 'center' };
|
|
83
83
|
if (options.qrSize !== undefined)
|
|
84
84
|
qrOptionen.size = options.qrSize;
|
|
85
85
|
if (options.qrCorrection !== undefined)
|
|
86
86
|
qrOptionen.correction = options.qrCorrection;
|
|
87
|
-
if (options.
|
|
88
|
-
qrOptionen.
|
|
87
|
+
if (options.qrModuleSize !== undefined)
|
|
88
|
+
qrOptionen.moduleSize = options.qrModuleSize;
|
|
89
89
|
if (modus === 'nativeModel1')
|
|
90
|
-
qrOptionen.
|
|
90
|
+
qrOptionen.model1 = true;
|
|
91
91
|
if (modus === 'imageRaster' && options.qrMatrix === undefined) {
|
|
92
92
|
throw new Error("qrModus 'imageRaster' braucht ein qrMatrix -- dieses Paket rastert nicht selbst");
|
|
93
93
|
}
|
|
94
94
|
const rasterOptionen = { align: 'center' };
|
|
95
|
-
if (options.
|
|
96
|
-
rasterOptionen.
|
|
95
|
+
if (options.qrModuleSize !== undefined)
|
|
96
|
+
rasterOptionen.moduleSize = options.qrModuleSize;
|
|
97
97
|
/**
|
|
98
98
|
* Eine QR-Zeile des Rasters. Hier sitzt der **Notausgang**: passt das Symbol
|
|
99
99
|
* nativ auch mit der Ausnahmegroesse nicht aufs Papier, druckt der Drucker
|
|
100
100
|
* es GAR NICHT -- er schneidet nicht ab, er laesst weg. Ein Pflichtbeleg
|
|
101
101
|
* ohne QR ist der schlechteste aller Ausgaenge, also geht der QR dann als
|
|
102
|
-
* Bild hinaus, und der Aufrufer erfaehrt es ueber `
|
|
102
|
+
* Bild hinaus, und der Aufrufer erfaehrt es ueber `qrFallback`.
|
|
103
103
|
*
|
|
104
104
|
* Ohne `qrMatrix` gibt es diesen Weg nicht -- dann bleibt nur die Meldung
|
|
105
|
-
* `
|
|
105
|
+
* `qrError` aus `escPosQrCode`, und der Beleg geht ohne QR hinaus.
|
|
106
106
|
*/
|
|
107
107
|
const qrZeile = (nutzlast) => {
|
|
108
108
|
// Ein Inhalt, der in keine QR-Version passt, laesst sich weder als Befehl
|
|
109
109
|
// noch als Bild drucken -- beide Wege wuerfen. Der Beleg geht ohne QR
|
|
110
|
-
// hinaus und sagt es ueber `
|
|
111
|
-
if (nutzlast !== '' && !(0, index_js_1.
|
|
112
|
-
doc.
|
|
110
|
+
// hinaus und sagt es ueber `qrError`, wie das Blatt (Anteil 0).
|
|
111
|
+
if (nutzlast !== '' && !(0, index_js_1.qrFitsInVersion)(nutzlast)) {
|
|
112
|
+
doc.qrError = 'QR-Inhalt passt in keine QR-Version -- Beleg ohne QR';
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
115
|
const raster = options.qrMatrix;
|
|
@@ -121,15 +121,15 @@ function escPosLayoutErgebnis(layout, options = {}) {
|
|
|
121
121
|
// Feste `qrSize` heisst: der Aufrufer weiss, was er tut -- dann wird
|
|
122
122
|
// weder gerechnet noch ausgewichen.
|
|
123
123
|
if (options.qrSize === undefined) {
|
|
124
|
-
const mass = (0, index_js_1.
|
|
125
|
-
nutzlast,
|
|
126
|
-
|
|
127
|
-
|
|
124
|
+
const mass = (0, index_js_1.qrSizingFor)({
|
|
125
|
+
payload: nutzlast,
|
|
126
|
+
paperWidthDots: index_js_1.QR_PRINT_WIDTH_DOTS[paperSize],
|
|
127
|
+
moduleSize: options.qrModuleSize ?? 'auto',
|
|
128
128
|
});
|
|
129
|
-
if (!mass.
|
|
130
|
-
doc.
|
|
131
|
-
`QR mit ${mass.
|
|
132
|
-
`${paperSize === 'mm58' ? 58 : 80} mm (${index_js_1.
|
|
129
|
+
if (!mass.fits) {
|
|
130
|
+
doc.qrFallback =
|
|
131
|
+
`QR mit ${mass.modules} Modulen passt nativ nicht auf ` +
|
|
132
|
+
`${paperSize === 'mm58' ? 58 : 80} mm (${index_js_1.QR_PRINT_WIDTH_DOTS[paperSize]} Punkte) ` +
|
|
133
133
|
`-- als Bild gedruckt`;
|
|
134
134
|
(0, index_js_1.escPosQrRaster)(doc, raster(nutzlast), rasterOptionen);
|
|
135
135
|
return;
|
|
@@ -141,33 +141,33 @@ function escPosLayoutErgebnis(layout, options = {}) {
|
|
|
141
141
|
// `blattFuerDruck` prueft das Logo-Raster bereits VOR der Rueckgabe -- die
|
|
142
142
|
// Schleife unten schreibt darum nie ein Byte auf ein falsch grosses Logo.
|
|
143
143
|
const blatt = blattFuerDruck(druckbaresLayout(layout), {
|
|
144
|
-
zeichen: grid_js_1.
|
|
144
|
+
zeichen: grid_js_1.CHARS_PER_PAPER_SIZE[paperSize],
|
|
145
145
|
logo: options.logo,
|
|
146
|
-
marke: options.
|
|
147
|
-
qrGroesse: options.
|
|
146
|
+
marke: options.brandMark,
|
|
147
|
+
qrGroesse: options.qrModuleSize ?? 'auto',
|
|
148
148
|
});
|
|
149
|
-
for (const block of blatt.
|
|
150
|
-
switch (block.
|
|
149
|
+
for (const block of blatt.blocks) {
|
|
150
|
+
switch (block.kind) {
|
|
151
151
|
case 'qr':
|
|
152
|
-
qrZeile(block.
|
|
152
|
+
qrZeile(block.payload);
|
|
153
153
|
break;
|
|
154
154
|
case 'logo':
|
|
155
155
|
if (options.logo)
|
|
156
|
-
(0, index_js_1.
|
|
156
|
+
(0, index_js_1.escPosRasterImage)(doc, options.logo.raster, { align: 'center' });
|
|
157
157
|
break;
|
|
158
|
-
case '
|
|
159
|
-
(0, index_js_1.
|
|
158
|
+
case 'brandMark':
|
|
159
|
+
(0, index_js_1.escPosRasterImage)(doc, (0, marke_js_1.brandMarkImage)(paperSize), { align: 'center' });
|
|
160
160
|
break;
|
|
161
|
-
case '
|
|
162
|
-
if (block.
|
|
161
|
+
case 'line':
|
|
162
|
+
if (block.blank)
|
|
163
163
|
(0, index_js_1.escPosFeed)(doc, 1);
|
|
164
164
|
else
|
|
165
|
-
(0, index_js_1.escPosText)(doc, block.text.trimEnd(), { styles: { align: 'left', bold: block.
|
|
165
|
+
(0, index_js_1.escPosText)(doc, block.text.trimEnd(), { styles: { align: 'left', bold: block.bold } });
|
|
166
166
|
break;
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
if (options.cut !== false) {
|
|
170
170
|
(0, index_js_1.escPosCut)(doc, options.cut === 'partial' ? 'partial' : 'full');
|
|
171
171
|
}
|
|
172
|
-
return { bytes: (0, index_js_1.escPosBytes)(doc),
|
|
172
|
+
return { bytes: (0, index_js_1.escPosBytes)(doc), qrError: doc.qrError, qrFallback: doc.qrFallback };
|
|
173
173
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Receipt, type ReceiptCompany } from '../models/index.js';
|
|
1
|
+
import { type Receipt, type ReceiptCompany, type RegistrationInfo } from '../models/index.js';
|
|
2
2
|
import type { PosPaperSize } from '../printing/escpos.js';
|
|
3
3
|
/**
|
|
4
4
|
* Beleg-Layout — der Bauplan eines Kasseneck-Belegs als reines Datenmodell.
|
|
@@ -76,9 +76,14 @@ export interface LayoutQrLine {
|
|
|
76
76
|
export interface LayoutBannerLine {
|
|
77
77
|
kind: 'banner';
|
|
78
78
|
text: string;
|
|
79
|
-
/**
|
|
80
|
-
|
|
79
|
+
/**
|
|
80
|
+
* `warning` fuer Testkasse/Testsignatur (kein gueltiger Beleg), sonst
|
|
81
|
+
* `receipt_type` (Belegart). Werte wie am `/v3`-Draht (Katalog `LAYOUT_TON`).
|
|
82
|
+
*/
|
|
83
|
+
tone: LayoutBannerTone;
|
|
81
84
|
}
|
|
85
|
+
/** Ton einer hervorgehobenen Zeile, wie am `/v3`-Draht. */
|
|
86
|
+
export type LayoutBannerTone = 'receipt_type' | 'warning';
|
|
82
87
|
export type LayoutLine = LayoutTextLine | LayoutColumnsLine | LayoutRuleLine | LayoutSpaceLine | LayoutQrLine | LayoutBannerLine;
|
|
83
88
|
/**
|
|
84
89
|
* Version des Layout-Regelwerks. Alte Belege werden mit ihrer gespeicherten
|
|
@@ -88,25 +93,15 @@ export type LayoutLine = LayoutTextLine | LayoutColumnsLine | LayoutRuleLine | L
|
|
|
88
93
|
* Signaturkarte, Zertifizierungsdienst, Registrierdaten); reduziert nur,
|
|
89
94
|
* wenn alle Betraege wirklich 0 sind. Vollbelege unveraendert.
|
|
90
95
|
*/
|
|
91
|
-
export type
|
|
92
|
-
export declare const
|
|
93
|
-
/**
|
|
94
|
-
* Registrierdaten fuer den Block „Prüfangaben“ auf Nullbelegen (Regelwerk 2).
|
|
95
|
-
* Kennt sie nur das Backend (FinanzOnline-Registrierung der Signaturkarte und
|
|
96
|
-
* der Kasse); fehlen sie, entfallen die Zeilen. Datum als „YYYY-MM-DD“ oder
|
|
97
|
-
* ISO-Zeitstempel (Wiener Kalendertag).
|
|
98
|
-
*/
|
|
99
|
-
export interface Pruefangaben {
|
|
100
|
-
karteRegistriertAm?: string | null;
|
|
101
|
-
kasseRegistriertAm?: string | null;
|
|
102
|
-
}
|
|
96
|
+
export type LayoutRuleset = 1 | 2;
|
|
97
|
+
export declare const CURRENT_LAYOUT_RULESET: LayoutRuleset;
|
|
103
98
|
/** Der fertige Bauplan eines Belegs. */
|
|
104
99
|
export interface ReceiptLayout {
|
|
105
100
|
lines: LayoutLine[];
|
|
106
101
|
/** Papierbreite, nach der die Spaltenbreiten gewaehlt wurden. */
|
|
107
102
|
paperSize: PosPaperSize;
|
|
108
103
|
/** Regelwerk, nach dem gesetzt wurde. */
|
|
109
|
-
|
|
104
|
+
ruleset: LayoutRuleset;
|
|
110
105
|
}
|
|
111
106
|
export interface BuildReceiptLayoutOptions {
|
|
112
107
|
/**
|
|
@@ -115,17 +110,27 @@ export interface BuildReceiptLayoutOptions {
|
|
|
115
110
|
*/
|
|
116
111
|
paperSize?: PosPaperSize;
|
|
117
112
|
/** Layout-Regelwerk (Vorgabe: aktuelles). Unbekannt -> Fehler, nie stumm anders setzen. */
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
|
|
113
|
+
ruleset?: LayoutRuleset;
|
|
114
|
+
/**
|
|
115
|
+
* Beleg einer Testumgebung: Rahmen „TESTKASSE — kein gültiger Beleg“ oben
|
|
116
|
+
* und unten. Aus einer Antwort: `ReceiptWithCompany.testCashregister`.
|
|
117
|
+
*/
|
|
118
|
+
testCashregister?: boolean;
|
|
121
119
|
/**
|
|
122
120
|
* Produktionskonto hat mit einer Test-Signatureinheit signiert: Rahmen
|
|
123
121
|
* „TESTSIGNATUR — kein gültiger Beleg“. Der Aufrufer entscheidet (er kennt
|
|
124
|
-
* das Konto); [receiptSignatureIsTest] sagt nur, OB die Signatur eine
|
|
122
|
+
* das Konto); [receiptSignatureIsTest] sagt nur, OB die Signatur eine
|
|
123
|
+
* Testsignatur ist. Aus einer Antwort: `ReceiptWithCompany.testSignature`.
|
|
124
|
+
*/
|
|
125
|
+
testSignature?: boolean;
|
|
126
|
+
/**
|
|
127
|
+
* Registrierdaten fuer den Block „Prüfangaben“ (nur Nullbelege, Regelwerk 2).
|
|
128
|
+
* Kennt sie nur das Backend (FinanzOnline-Registrierung der Signaturkarte
|
|
129
|
+
* und der Kasse); fehlen sie, entfallen die Zeilen. Datum als „YYYY-MM-DD“
|
|
130
|
+
* oder ISO-Zeitstempel (Wiener Kalendertag). Aus einer Antwort:
|
|
131
|
+
* `ReceiptWithCompany.registrationInfo`.
|
|
125
132
|
*/
|
|
126
|
-
|
|
127
|
-
/** Registrierdaten fuer den Block „Prüfangaben“ (nur Nullbelege, Regelwerk 2). */
|
|
128
|
-
pruefangaben?: Pruefangaben | null;
|
|
133
|
+
registrationInfo?: RegistrationInfo | null;
|
|
129
134
|
}
|
|
130
135
|
/**
|
|
131
136
|
* Cent-Betrag als Anzeigetext: `1234` -> `"12,34"`. Die **einzige** Stelle, an
|