@kreiseck/kasseneck-api 1.1.0 → 1.1.1
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 +32 -0
- package/dist/cjs/pos/texte.d.ts +22 -3
- package/dist/cjs/pos/texte.js +22 -6
- package/dist/cjs/printing/code-table-preview.d.ts +15 -0
- package/dist/cjs/printing/code-table-preview.js +24 -0
- package/dist/cjs/printing/index.d.ts +1 -0
- package/dist/cjs/printing/index.js +3 -1
- package/dist/cjs/receipt/code-table-test-sheet.d.ts +8 -2
- package/dist/cjs/receipt/code-table-test-sheet.js +2 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/pos/texte.d.ts +22 -3
- package/dist/esm/pos/texte.js +22 -6
- package/dist/esm/printing/code-table-preview.d.ts +15 -0
- package/dist/esm/printing/code-table-preview.js +21 -0
- package/dist/esm/printing/index.d.ts +1 -0
- package/dist/esm/printing/index.js +1 -0
- package/dist/esm/receipt/code-table-test-sheet.d.ts +8 -2
- package/dist/esm/receipt/code-table-test-sheet.js +2 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/fixtures/code-table-preview.json +14 -0
- package/fixtures/expected/code-table-test-sheet.lines.json +22 -4
- package/fixtures/expected/code-table-test-sheet.mm58.hex +58 -55
- package/fixtures/expected/code-table-test-sheet.mm80.hex +59 -56
- package/fixtures/hobex-hps-codes.json +1 -1
- package/fixtures/invoice-api.schema.json +1 -1
- package/fixtures/invoice-texts.json +1 -1
- package/fixtures/pos-texts.json +25 -4
- package/fixtures/surface.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,38 @@ Was vor 0.7.0 geschah, steht in der Commit-Historie (`git log`); ab hier wird
|
|
|
4
4
|
es hier geführt. Ein Eintrag nennt die Änderung **und ihren Grund** —
|
|
5
5
|
nur der Grund überlebt den nächsten Umbau.
|
|
6
6
|
|
|
7
|
+
## 1.1.1
|
|
8
|
+
|
|
9
|
+
The code-table test sheet asks for the right row. Reason: a Bluetooth
|
|
10
|
+
printer that only knows PC437 printed rows 2 and 3 with correct umlauts but
|
|
11
|
+
wrong glyphs for `€` and `§` (`╒`, `⌡`), and row 4 correct with gaps for
|
|
12
|
+
`€` and `§`. "The first row that looks exactly like above" confused users,
|
|
13
|
+
and "the row with correct umlauts" would pick row 2. The rule now is: the
|
|
14
|
+
row with no wrong character; a gap is fine; if several fit, the one with
|
|
15
|
+
the fewest gaps; if none fits, 6.
|
|
16
|
+
|
|
17
|
+
Additive, no breaking change; receipts are byte for byte the same (the 24
|
|
18
|
+
`code-table-receipt.*.hex` files are unchanged).
|
|
19
|
+
|
|
20
|
+
- **Test sheet** (`./receipt`): reference heading `codetable.reference` is
|
|
21
|
+
now "So sehen die Zeichen richtig aus" (32 columns; with a colon it would
|
|
22
|
+
wrap), the footer is the new rule: `codetable.instruction_title` (bold),
|
|
23
|
+
`codetable.instruction`, `codetable.instruction_none` ("Passt keine:
|
|
24
|
+
{number}.", the replacement row). As before, everything outside the test
|
|
25
|
+
rows prints with replacement letters (pure ASCII), so "Lücke" from the
|
|
26
|
+
catalogue stands as "Luecke" on the sheet, on paper and in the line model.
|
|
27
|
+
Rows, big numbers, margins and the end reset are unchanged. Contract:
|
|
28
|
+
`fixtures/expected/code-table-test-sheet.*`.
|
|
29
|
+
- **Screen texts** (`fixtures/pos-texts.json`): `codetable.question` is now
|
|
30
|
+
"In welcher Zeile steht kein falsches Zeichen?"; new
|
|
31
|
+
`codetable.question_hint`, `codetable.preview_title`, `codetable.apply`,
|
|
32
|
+
`codetable.other_row`.
|
|
33
|
+
- **Preview** (`./printing`): `codeTablePreviewText(table)` returns the
|
|
34
|
+
sample "Käsekrainer 3,50 €" / "Tee 80°" as it prints with that table
|
|
35
|
+
(lines joined by `\n`), e.g. `pc437` gives "Käsekrainer 3,50 EUR", so the
|
|
36
|
+
user sees the effect of a row before applying it. Shared contract with the
|
|
37
|
+
Dart twin: `fixtures/code-table-preview.json`.
|
|
38
|
+
|
|
7
39
|
## 1.1.0
|
|
8
40
|
|
|
9
41
|
Receipt printers that print umlauts and special characters correctly.
|
package/dist/cjs/pos/texte.d.ts
CHANGED
|
@@ -470,10 +470,17 @@ declare const MELDUNGEN_ROH: {
|
|
|
470
470
|
readonly text: "Nichts gespeichert.";
|
|
471
471
|
};
|
|
472
472
|
readonly 'codetable.question': {
|
|
473
|
-
readonly text: "
|
|
473
|
+
readonly text: "In welcher Zeile steht kein falsches Zeichen?";
|
|
474
|
+
};
|
|
475
|
+
readonly 'codetable.question_hint': {
|
|
476
|
+
readonly text: "Lücken sind in Ordnung.";
|
|
474
477
|
};
|
|
475
478
|
readonly 'codetable.instruction': {
|
|
476
|
-
readonly text: "Die
|
|
479
|
+
readonly text: "Die Zeile, in der KEIN falsches Zeichen steht. Eine Lücke ist in Ordnung. Passen mehrere, die mit den wenigsten Lücken.";
|
|
480
|
+
};
|
|
481
|
+
readonly 'codetable.instruction_none': {
|
|
482
|
+
readonly text: "Passt keine: {number}.";
|
|
483
|
+
readonly placeholders: readonly ["number"];
|
|
477
484
|
};
|
|
478
485
|
readonly 'bluetooth.off': {
|
|
479
486
|
readonly text: "Bluetooth ist ausgeschaltet. Bitte einschalten und erneut suchen.";
|
|
@@ -974,7 +981,7 @@ declare const BESCHRIFTUNGEN_ROH: {
|
|
|
974
981
|
readonly text: "ZEICHENSATZ-TEST";
|
|
975
982
|
};
|
|
976
983
|
readonly 'codetable.reference': {
|
|
977
|
-
readonly text: "So
|
|
984
|
+
readonly text: "So sehen die Zeichen richtig aus";
|
|
978
985
|
};
|
|
979
986
|
readonly 'codetable.replacement_note': {
|
|
980
987
|
readonly text: "(Ersatz, passt immer)";
|
|
@@ -996,6 +1003,18 @@ declare const BESCHRIFTUNGEN_ROH: {
|
|
|
996
1003
|
readonly text: "Zeichensatz: Nr. {number}";
|
|
997
1004
|
readonly placeholders: readonly ["number"];
|
|
998
1005
|
};
|
|
1006
|
+
readonly 'codetable.instruction_title': {
|
|
1007
|
+
readonly text: "Welche Zeile nehmen?";
|
|
1008
|
+
};
|
|
1009
|
+
readonly 'codetable.preview_title': {
|
|
1010
|
+
readonly text: "So steht es dann am Bon:";
|
|
1011
|
+
};
|
|
1012
|
+
readonly 'codetable.apply': {
|
|
1013
|
+
readonly text: "Übernehmen";
|
|
1014
|
+
};
|
|
1015
|
+
readonly 'codetable.other_row': {
|
|
1016
|
+
readonly text: "Andere Zeile";
|
|
1017
|
+
};
|
|
999
1018
|
};
|
|
1000
1019
|
export type LabelKey = keyof typeof BESCHRIFTUNGEN_ROH;
|
|
1001
1020
|
export declare const LABELS: Record<LabelKey, TextEntry>;
|
package/dist/cjs/pos/texte.js
CHANGED
|
@@ -256,9 +256,17 @@ const MELDUNGEN_ROH = {
|
|
|
256
256
|
// damit niemand einen halb eingerichteten Drucker vermutet.
|
|
257
257
|
'print.wizard_cancelled': { text: 'Nichts gespeichert.' },
|
|
258
258
|
// Zeichensatz-Test im Drucker-Wizard: das Testblatt nennt die Anleitung,
|
|
259
|
-
// der Bildschirm stellt die Frage daneben.
|
|
260
|
-
|
|
261
|
-
|
|
259
|
+
// der Bildschirm stellt die Frage daneben. Die Regel ist „kein falsches
|
|
260
|
+
// Zeichen“, nicht „erste Zeile“ und nicht „Umlaute richtig“: ein Drucker
|
|
261
|
+
// mit nur PC437 druckt Zeile 2 und 3 mit richtigen Umlauten, aber falschem
|
|
262
|
+
// € und § (╒, ⌡); richtig ist dort Zeile 4, mit Luecken fuer € und §.
|
|
263
|
+
// Am Papier steht „Lücke“ als „Luecke“ (Ersatzbuchstaben wie jeder Text
|
|
264
|
+
// ausserhalb der Testzeilen), am Bildschirm mit Umlaut.
|
|
265
|
+
'codetable.question': { text: 'In welcher Zeile steht kein falsches Zeichen?' },
|
|
266
|
+
'codetable.question_hint': { text: 'Lücken sind in Ordnung.' },
|
|
267
|
+
'codetable.instruction': { text: 'Die Zeile, in der KEIN falsches Zeichen steht. Eine Lücke ist in Ordnung. Passen mehrere, die mit den wenigsten Lücken.' },
|
|
268
|
+
// `{number}` ist die Ersatz-Zeile (6), die immer passt.
|
|
269
|
+
'codetable.instruction_none': { text: 'Passt keine: {number}.', placeholders: ['number'] },
|
|
262
270
|
'bluetooth.off': { text: 'Bluetooth ist ausgeschaltet. Bitte einschalten und erneut suchen.', only: ['app'] },
|
|
263
271
|
'bluetooth.permission_missing': { text: 'Bitte die Freigabe in den Geräte-Einstellungen erteilen.', only: ['app'] },
|
|
264
272
|
'bluetooth.search_failed': { text: 'Die Suche ist fehlgeschlagen: {reason}', placeholders: ['reason'], only: ['app'] },
|
|
@@ -571,17 +579,25 @@ const BESCHRIFTUNGEN_ROH = {
|
|
|
571
579
|
'cancellation.payment_remainder': { text: 'Rest {amount}', placeholders: ['amount'] },
|
|
572
580
|
'cancellation.difference': { text: 'Differenz' },
|
|
573
581
|
// --- Zeichensatz-Test (Testblatt und Drucker & Lade) ----------------------
|
|
574
|
-
// Das Testblatt druckt diese Texte
|
|
575
|
-
// Knoepfe am Bildschirm. `{chars}` sind die fehlenden Zeichen einer Zeile
|
|
582
|
+
// Das Testblatt druckt diese Texte mit Ersatzbuchstaben (reines ASCII);
|
|
583
|
+
// die Knoepfe stehen nur am Bildschirm. `{chars}` sind die fehlenden Zeichen einer Zeile
|
|
576
584
|
// („€“ bzw. „€ §“), `{number}` die gewaehlte Zeile (1-6).
|
|
577
585
|
'codetable.title': { text: 'ZEICHENSATZ-TEST' },
|
|
578
|
-
|
|
586
|
+
// Genau 32 Spalten: mit Doppelpunkt waeren es 33, die Ueberschrift braeche um.
|
|
587
|
+
'codetable.reference': { text: 'So sehen die Zeichen richtig aus' },
|
|
579
588
|
'codetable.replacement_note': { text: '(Ersatz, passt immer)' },
|
|
580
589
|
'codetable.missing': { text: 'ohne {chars}', placeholders: ['chars'] },
|
|
581
590
|
'codetable.print_again': { text: 'Nochmal drucken' },
|
|
582
591
|
'codetable.not_checked': { text: 'Umlaute noch nicht geprüft' },
|
|
583
592
|
'codetable.check': { text: 'Umlaute prüfen' },
|
|
584
593
|
'codetable.current': { text: 'Zeichensatz: Nr. {number}', placeholders: ['number'] },
|
|
594
|
+
// Ueberschrift der Anleitung am Testblatt.
|
|
595
|
+
'codetable.instruction_title': { text: 'Welche Zeile nehmen?' },
|
|
596
|
+
// Nach der Wahl: das Beispiel so, wie es mit der Zeile am Bon steht
|
|
597
|
+
// (`codeTablePreviewText`), dann uebernehmen oder zurueck zur Frage.
|
|
598
|
+
'codetable.preview_title': { text: 'So steht es dann am Bon:' },
|
|
599
|
+
'codetable.apply': { text: 'Übernehmen' },
|
|
600
|
+
'codetable.other_row': { text: 'Andere Zeile' },
|
|
585
601
|
};
|
|
586
602
|
exports.LABELS = BESCHRIFTUNGEN_ROH;
|
|
587
603
|
/** Die Beschriftung zum Schluessel, Platzhalter ersetzt; fehlt ein Wert, wirft es wie `messageText`. */
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Die Vorschau im Drucker-Wizard: nach der Wahl einer Zeile zeigt der
|
|
3
|
+
* Bildschirm ein Beispiel so, wie es mit dieser Tabelle am Bon steht. Wer
|
|
4
|
+
* Zeile 4 (PC437) waehlt, sieht „3,50 EUR“ statt „3,50 €“, bevor er
|
|
5
|
+
* uebernimmt. Gemeinsamer Prueffall mit dem Dart-Zwilling:
|
|
6
|
+
* `fixtures/code-table-preview.json`.
|
|
7
|
+
*/
|
|
8
|
+
import { type CodeTableId } from './code-tables.js';
|
|
9
|
+
/**
|
|
10
|
+
* Das Beispiel mit den Ersetzungen der Tabelle, Zeilen durch `\n` getrennt:
|
|
11
|
+
* fehlt der Tabelle ein Zeichen, stehen seine Ersatzbuchstaben da
|
|
12
|
+
* (`pc437` -> „Käsekrainer 3,50 EUR“, `replacement` -> „Kaesekrainer 3,50 EUR“).
|
|
13
|
+
* Eine unbekannte Kennung wird gemeldet.
|
|
14
|
+
*/
|
|
15
|
+
export declare function codeTablePreviewText(table: CodeTableId): string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.codeTablePreviewText = codeTablePreviewText;
|
|
4
|
+
/**
|
|
5
|
+
* Die Vorschau im Drucker-Wizard: nach der Wahl einer Zeile zeigt der
|
|
6
|
+
* Bildschirm ein Beispiel so, wie es mit dieser Tabelle am Bon steht. Wer
|
|
7
|
+
* Zeile 4 (PC437) waehlt, sieht „3,50 EUR“ statt „3,50 €“, bevor er
|
|
8
|
+
* uebernimmt. Gemeinsamer Prueffall mit dem Dart-Zwilling:
|
|
9
|
+
* `fixtures/code-table-preview.json`.
|
|
10
|
+
*/
|
|
11
|
+
const code_tables_js_1 = require("./code-tables.js");
|
|
12
|
+
const printable_js_1 = require("./printable.js");
|
|
13
|
+
/** Das Beispiel: Umlaut, €, °. */
|
|
14
|
+
const BEISPIEL = ['Käsekrainer 3,50 €', 'Tee 80°'];
|
|
15
|
+
/**
|
|
16
|
+
* Das Beispiel mit den Ersetzungen der Tabelle, Zeilen durch `\n` getrennt:
|
|
17
|
+
* fehlt der Tabelle ein Zeichen, stehen seine Ersatzbuchstaben da
|
|
18
|
+
* (`pc437` -> „Käsekrainer 3,50 EUR“, `replacement` -> „Kaesekrainer 3,50 EUR“).
|
|
19
|
+
* Eine unbekannte Kennung wird gemeldet.
|
|
20
|
+
*/
|
|
21
|
+
function codeTablePreviewText(table) {
|
|
22
|
+
(0, code_tables_js_1.codeTableById)(table);
|
|
23
|
+
return BEISPIEL.map((zeile) => (0, printable_js_1.escPosPrintableText)(zeile, table)).join('\n');
|
|
24
|
+
}
|
|
@@ -2,4 +2,5 @@ export { type PosPaperSize, type PosAlign, type PosFont, type PosCutMode, type P
|
|
|
2
2
|
export { type CodeTableId, type CodeTable, CODE_TABLES, codeTableById, codeTableFromSetting, encodeForCodeTable, } from './code-tables.js';
|
|
3
3
|
export { type QrModuleSize, type QrSizing, QR_MODULE_SIZE_CAP, QR_QUIET_ZONE_MODULES, QR_MIN_MODULE_DOTS, QR_EXCEPTION_MODULE_DOTS, QR_MAX_MODULE_DOTS, QR_PRINT_WIDTH_DOTS, qrModuleCount, qrFitsInVersion, computeQrSizing, qrSizingFor, } from './qr-groesse.js';
|
|
4
4
|
export { escPosPrintableText } from './printable.js';
|
|
5
|
+
export { codeTablePreviewText } from './code-table-preview.js';
|
|
5
6
|
export { type UsbEndpointLike, type UsbAlternateLike, type UsbInterfaceLike, type UsbConfigurationLike, type UsbTransferOutResultLike, type UsbWriterLike, type UsbIdentityLike, type UsbDeviceLike, type UsbPrinterEndpoint, type UsbPrinterConnection, USB_VENDOR_EPSON, USB_CLASS_PRINTER, UsbTimeoutError, usbDeviceKey, usbFindPrinterEndpoint, usbWriteAll, usbConnectPrinter, usbPrint, usbDisconnect, } from './webusb.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.usbDisconnect = exports.usbPrint = exports.usbConnectPrinter = exports.usbWriteAll = exports.usbFindPrinterEndpoint = exports.usbDeviceKey = exports.UsbTimeoutError = exports.USB_CLASS_PRINTER = exports.USB_VENDOR_EPSON = exports.escPosPrintableText = exports.qrSizingFor = exports.computeQrSizing = exports.qrFitsInVersion = exports.qrModuleCount = exports.QR_PRINT_WIDTH_DOTS = exports.QR_MAX_MODULE_DOTS = exports.QR_EXCEPTION_MODULE_DOTS = exports.QR_MIN_MODULE_DOTS = exports.QR_QUIET_ZONE_MODULES = exports.QR_MODULE_SIZE_CAP = exports.encodeForCodeTable = exports.codeTableFromSetting = exports.codeTableById = exports.CODE_TABLES = exports.wrapText = exports.escPosWrapLines = exports.escPosMaxCharsPerLine = exports.qrCodeBytes = exports.encodeEscPosText = exports.escPosRasterImage = exports.rasterRowsBase64 = exports.rasterRowsBytes = exports.qrRasterDots = exports.escPosQrRaster = exports.escPosQrCode = exports.escPosRow = exports.escPosHr = exports.escPosCut = exports.escPosFeed = exports.escPosEmptyLines = exports.escPosText = exports.escPosSetStyles = exports.escPosSetGlobalFont = exports.escPosSetGlobalCodeTable = exports.escPosReset = exports.escPosBytes = exports.createEscPosDocument = void 0;
|
|
3
|
+
exports.usbDisconnect = exports.usbPrint = exports.usbConnectPrinter = exports.usbWriteAll = exports.usbFindPrinterEndpoint = exports.usbDeviceKey = exports.UsbTimeoutError = exports.USB_CLASS_PRINTER = exports.USB_VENDOR_EPSON = exports.codeTablePreviewText = exports.escPosPrintableText = exports.qrSizingFor = exports.computeQrSizing = exports.qrFitsInVersion = exports.qrModuleCount = exports.QR_PRINT_WIDTH_DOTS = exports.QR_MAX_MODULE_DOTS = exports.QR_EXCEPTION_MODULE_DOTS = exports.QR_MIN_MODULE_DOTS = exports.QR_QUIET_ZONE_MODULES = exports.QR_MODULE_SIZE_CAP = exports.encodeForCodeTable = exports.codeTableFromSetting = exports.codeTableById = exports.CODE_TABLES = exports.wrapText = exports.escPosWrapLines = exports.escPosMaxCharsPerLine = exports.qrCodeBytes = exports.encodeEscPosText = exports.escPosRasterImage = exports.rasterRowsBase64 = exports.rasterRowsBytes = exports.qrRasterDots = exports.escPosQrRaster = exports.escPosQrCode = exports.escPosRow = exports.escPosHr = exports.escPosCut = exports.escPosFeed = exports.escPosEmptyLines = exports.escPosText = exports.escPosSetStyles = exports.escPosSetGlobalFont = exports.escPosSetGlobalCodeTable = exports.escPosReset = exports.escPosBytes = exports.createEscPosDocument = void 0;
|
|
4
4
|
var escpos_js_1 = require("./escpos.js");
|
|
5
5
|
Object.defineProperty(exports, "createEscPosDocument", { enumerable: true, get: function () { return escpos_js_1.createEscPosDocument; } });
|
|
6
6
|
Object.defineProperty(exports, "escPosBytes", { enumerable: true, get: function () { return escpos_js_1.escPosBytes; } });
|
|
@@ -43,6 +43,8 @@ Object.defineProperty(exports, "computeQrSizing", { enumerable: true, get: funct
|
|
|
43
43
|
Object.defineProperty(exports, "qrSizingFor", { enumerable: true, get: function () { return qr_groesse_js_1.qrSizingFor; } });
|
|
44
44
|
var printable_js_1 = require("./printable.js");
|
|
45
45
|
Object.defineProperty(exports, "escPosPrintableText", { enumerable: true, get: function () { return printable_js_1.escPosPrintableText; } });
|
|
46
|
+
var code_table_preview_js_1 = require("./code-table-preview.js");
|
|
47
|
+
Object.defineProperty(exports, "codeTablePreviewText", { enumerable: true, get: function () { return code_table_preview_js_1.codeTablePreviewText; } });
|
|
46
48
|
var webusb_js_1 = require("./webusb.js");
|
|
47
49
|
Object.defineProperty(exports, "USB_VENDOR_EPSON", { enumerable: true, get: function () { return webusb_js_1.USB_VENDOR_EPSON; } });
|
|
48
50
|
Object.defineProperty(exports, "USB_CLASS_PRINTER", { enumerable: true, get: function () { return webusb_js_1.USB_CLASS_PRINTER; } });
|
|
@@ -5,8 +5,14 @@
|
|
|
5
5
|
* Oben steht die Vorlage-Zeile als Rasterbild -- ein Bild druckt jeder
|
|
6
6
|
* Drucker gleich, egal welche Tabelle er gerade hat. Darunter je Tabelle des
|
|
7
7
|
* Katalogs eine Zeile mit ihrer Nummer (gross), umgeschaltet mit `ESC t n`
|
|
8
|
-
* und mit den Bytes dieser Tabelle.
|
|
9
|
-
*
|
|
8
|
+
* und mit den Bytes dieser Tabelle. Richtig ist die Zeile ohne falsches
|
|
9
|
+
* Zeichen; eine Luecke (Zeichen fehlt der Tabelle) ist in Ordnung, bei
|
|
10
|
+
* mehreren die mit den wenigsten Luecken, sonst Zeile 6 (Ersatzbuchstaben).
|
|
11
|
+
* Nicht „die erste Zeile mit richtigen Umlauten“: ein Drucker mit nur PC437
|
|
12
|
+
* druckt Zeile 2 und 3 mit richtigen Umlauten, aber falschem € und §.
|
|
13
|
+
*
|
|
14
|
+
* Alles ausserhalb der Testzeilen steht mit Ersatzbuchstaben (reines ASCII),
|
|
15
|
+
* auch die Anleitung: „Lücke“ aus dem Katalog steht am Blatt als „Luecke“.
|
|
10
16
|
*
|
|
11
17
|
* Bildschirm und Papier zeigen dasselbe Blatt: `codeTableTestSheet` liefert
|
|
12
18
|
* es im Zeilenmodell des Beleg-Blatts (`ReceiptSheet`), `codeTableTestSheetBytes`
|
|
@@ -93,7 +93,9 @@ function blattBauen(options) {
|
|
|
93
93
|
bloecke.push(zeile(einzug + t));
|
|
94
94
|
bloecke.push(zeile(einzug + nurAscii((0, texte_js_1.labelText)('codetable.replacement_note'))));
|
|
95
95
|
bloecke.push(doppelt);
|
|
96
|
+
bloecke.push(...zeilen((0, texte_js_1.labelText)('codetable.instruction_title'), true));
|
|
96
97
|
bloecke.push(...zeilen((0, texte_js_1.messageText)('codetable.instruction')));
|
|
98
|
+
bloecke.push(...zeilen((0, texte_js_1.messageText)('codetable.instruction_none', { number: ersatz.number })));
|
|
97
99
|
bloecke.push(doppelt);
|
|
98
100
|
return {
|
|
99
101
|
blatt: {
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED
package/dist/esm/pos/texte.d.ts
CHANGED
|
@@ -470,10 +470,17 @@ declare const MELDUNGEN_ROH: {
|
|
|
470
470
|
readonly text: "Nichts gespeichert.";
|
|
471
471
|
};
|
|
472
472
|
readonly 'codetable.question': {
|
|
473
|
-
readonly text: "
|
|
473
|
+
readonly text: "In welcher Zeile steht kein falsches Zeichen?";
|
|
474
|
+
};
|
|
475
|
+
readonly 'codetable.question_hint': {
|
|
476
|
+
readonly text: "Lücken sind in Ordnung.";
|
|
474
477
|
};
|
|
475
478
|
readonly 'codetable.instruction': {
|
|
476
|
-
readonly text: "Die
|
|
479
|
+
readonly text: "Die Zeile, in der KEIN falsches Zeichen steht. Eine Lücke ist in Ordnung. Passen mehrere, die mit den wenigsten Lücken.";
|
|
480
|
+
};
|
|
481
|
+
readonly 'codetable.instruction_none': {
|
|
482
|
+
readonly text: "Passt keine: {number}.";
|
|
483
|
+
readonly placeholders: readonly ["number"];
|
|
477
484
|
};
|
|
478
485
|
readonly 'bluetooth.off': {
|
|
479
486
|
readonly text: "Bluetooth ist ausgeschaltet. Bitte einschalten und erneut suchen.";
|
|
@@ -974,7 +981,7 @@ declare const BESCHRIFTUNGEN_ROH: {
|
|
|
974
981
|
readonly text: "ZEICHENSATZ-TEST";
|
|
975
982
|
};
|
|
976
983
|
readonly 'codetable.reference': {
|
|
977
|
-
readonly text: "So
|
|
984
|
+
readonly text: "So sehen die Zeichen richtig aus";
|
|
978
985
|
};
|
|
979
986
|
readonly 'codetable.replacement_note': {
|
|
980
987
|
readonly text: "(Ersatz, passt immer)";
|
|
@@ -996,6 +1003,18 @@ declare const BESCHRIFTUNGEN_ROH: {
|
|
|
996
1003
|
readonly text: "Zeichensatz: Nr. {number}";
|
|
997
1004
|
readonly placeholders: readonly ["number"];
|
|
998
1005
|
};
|
|
1006
|
+
readonly 'codetable.instruction_title': {
|
|
1007
|
+
readonly text: "Welche Zeile nehmen?";
|
|
1008
|
+
};
|
|
1009
|
+
readonly 'codetable.preview_title': {
|
|
1010
|
+
readonly text: "So steht es dann am Bon:";
|
|
1011
|
+
};
|
|
1012
|
+
readonly 'codetable.apply': {
|
|
1013
|
+
readonly text: "Übernehmen";
|
|
1014
|
+
};
|
|
1015
|
+
readonly 'codetable.other_row': {
|
|
1016
|
+
readonly text: "Andere Zeile";
|
|
1017
|
+
};
|
|
999
1018
|
};
|
|
1000
1019
|
export type LabelKey = keyof typeof BESCHRIFTUNGEN_ROH;
|
|
1001
1020
|
export declare const LABELS: Record<LabelKey, TextEntry>;
|
package/dist/esm/pos/texte.js
CHANGED
|
@@ -246,9 +246,17 @@ const MELDUNGEN_ROH = {
|
|
|
246
246
|
// damit niemand einen halb eingerichteten Drucker vermutet.
|
|
247
247
|
'print.wizard_cancelled': { text: 'Nichts gespeichert.' },
|
|
248
248
|
// Zeichensatz-Test im Drucker-Wizard: das Testblatt nennt die Anleitung,
|
|
249
|
-
// der Bildschirm stellt die Frage daneben.
|
|
250
|
-
|
|
251
|
-
|
|
249
|
+
// der Bildschirm stellt die Frage daneben. Die Regel ist „kein falsches
|
|
250
|
+
// Zeichen“, nicht „erste Zeile“ und nicht „Umlaute richtig“: ein Drucker
|
|
251
|
+
// mit nur PC437 druckt Zeile 2 und 3 mit richtigen Umlauten, aber falschem
|
|
252
|
+
// € und § (╒, ⌡); richtig ist dort Zeile 4, mit Luecken fuer € und §.
|
|
253
|
+
// Am Papier steht „Lücke“ als „Luecke“ (Ersatzbuchstaben wie jeder Text
|
|
254
|
+
// ausserhalb der Testzeilen), am Bildschirm mit Umlaut.
|
|
255
|
+
'codetable.question': { text: 'In welcher Zeile steht kein falsches Zeichen?' },
|
|
256
|
+
'codetable.question_hint': { text: 'Lücken sind in Ordnung.' },
|
|
257
|
+
'codetable.instruction': { text: 'Die Zeile, in der KEIN falsches Zeichen steht. Eine Lücke ist in Ordnung. Passen mehrere, die mit den wenigsten Lücken.' },
|
|
258
|
+
// `{number}` ist die Ersatz-Zeile (6), die immer passt.
|
|
259
|
+
'codetable.instruction_none': { text: 'Passt keine: {number}.', placeholders: ['number'] },
|
|
252
260
|
'bluetooth.off': { text: 'Bluetooth ist ausgeschaltet. Bitte einschalten und erneut suchen.', only: ['app'] },
|
|
253
261
|
'bluetooth.permission_missing': { text: 'Bitte die Freigabe in den Geräte-Einstellungen erteilen.', only: ['app'] },
|
|
254
262
|
'bluetooth.search_failed': { text: 'Die Suche ist fehlgeschlagen: {reason}', placeholders: ['reason'], only: ['app'] },
|
|
@@ -561,17 +569,25 @@ const BESCHRIFTUNGEN_ROH = {
|
|
|
561
569
|
'cancellation.payment_remainder': { text: 'Rest {amount}', placeholders: ['amount'] },
|
|
562
570
|
'cancellation.difference': { text: 'Differenz' },
|
|
563
571
|
// --- Zeichensatz-Test (Testblatt und Drucker & Lade) ----------------------
|
|
564
|
-
// Das Testblatt druckt diese Texte
|
|
565
|
-
// Knoepfe am Bildschirm. `{chars}` sind die fehlenden Zeichen einer Zeile
|
|
572
|
+
// Das Testblatt druckt diese Texte mit Ersatzbuchstaben (reines ASCII);
|
|
573
|
+
// die Knoepfe stehen nur am Bildschirm. `{chars}` sind die fehlenden Zeichen einer Zeile
|
|
566
574
|
// („€“ bzw. „€ §“), `{number}` die gewaehlte Zeile (1-6).
|
|
567
575
|
'codetable.title': { text: 'ZEICHENSATZ-TEST' },
|
|
568
|
-
|
|
576
|
+
// Genau 32 Spalten: mit Doppelpunkt waeren es 33, die Ueberschrift braeche um.
|
|
577
|
+
'codetable.reference': { text: 'So sehen die Zeichen richtig aus' },
|
|
569
578
|
'codetable.replacement_note': { text: '(Ersatz, passt immer)' },
|
|
570
579
|
'codetable.missing': { text: 'ohne {chars}', placeholders: ['chars'] },
|
|
571
580
|
'codetable.print_again': { text: 'Nochmal drucken' },
|
|
572
581
|
'codetable.not_checked': { text: 'Umlaute noch nicht geprüft' },
|
|
573
582
|
'codetable.check': { text: 'Umlaute prüfen' },
|
|
574
583
|
'codetable.current': { text: 'Zeichensatz: Nr. {number}', placeholders: ['number'] },
|
|
584
|
+
// Ueberschrift der Anleitung am Testblatt.
|
|
585
|
+
'codetable.instruction_title': { text: 'Welche Zeile nehmen?' },
|
|
586
|
+
// Nach der Wahl: das Beispiel so, wie es mit der Zeile am Bon steht
|
|
587
|
+
// (`codeTablePreviewText`), dann uebernehmen oder zurueck zur Frage.
|
|
588
|
+
'codetable.preview_title': { text: 'So steht es dann am Bon:' },
|
|
589
|
+
'codetable.apply': { text: 'Übernehmen' },
|
|
590
|
+
'codetable.other_row': { text: 'Andere Zeile' },
|
|
575
591
|
};
|
|
576
592
|
export const LABELS = BESCHRIFTUNGEN_ROH;
|
|
577
593
|
/** Die Beschriftung zum Schluessel, Platzhalter ersetzt; fehlt ein Wert, wirft es wie `messageText`. */
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Die Vorschau im Drucker-Wizard: nach der Wahl einer Zeile zeigt der
|
|
3
|
+
* Bildschirm ein Beispiel so, wie es mit dieser Tabelle am Bon steht. Wer
|
|
4
|
+
* Zeile 4 (PC437) waehlt, sieht „3,50 EUR“ statt „3,50 €“, bevor er
|
|
5
|
+
* uebernimmt. Gemeinsamer Prueffall mit dem Dart-Zwilling:
|
|
6
|
+
* `fixtures/code-table-preview.json`.
|
|
7
|
+
*/
|
|
8
|
+
import { type CodeTableId } from './code-tables.js';
|
|
9
|
+
/**
|
|
10
|
+
* Das Beispiel mit den Ersetzungen der Tabelle, Zeilen durch `\n` getrennt:
|
|
11
|
+
* fehlt der Tabelle ein Zeichen, stehen seine Ersatzbuchstaben da
|
|
12
|
+
* (`pc437` -> „Käsekrainer 3,50 EUR“, `replacement` -> „Kaesekrainer 3,50 EUR“).
|
|
13
|
+
* Eine unbekannte Kennung wird gemeldet.
|
|
14
|
+
*/
|
|
15
|
+
export declare function codeTablePreviewText(table: CodeTableId): string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Die Vorschau im Drucker-Wizard: nach der Wahl einer Zeile zeigt der
|
|
3
|
+
* Bildschirm ein Beispiel so, wie es mit dieser Tabelle am Bon steht. Wer
|
|
4
|
+
* Zeile 4 (PC437) waehlt, sieht „3,50 EUR“ statt „3,50 €“, bevor er
|
|
5
|
+
* uebernimmt. Gemeinsamer Prueffall mit dem Dart-Zwilling:
|
|
6
|
+
* `fixtures/code-table-preview.json`.
|
|
7
|
+
*/
|
|
8
|
+
import { codeTableById } from './code-tables.js';
|
|
9
|
+
import { escPosPrintableText } from './printable.js';
|
|
10
|
+
/** Das Beispiel: Umlaut, €, °. */
|
|
11
|
+
const BEISPIEL = ['Käsekrainer 3,50 €', 'Tee 80°'];
|
|
12
|
+
/**
|
|
13
|
+
* Das Beispiel mit den Ersetzungen der Tabelle, Zeilen durch `\n` getrennt:
|
|
14
|
+
* fehlt der Tabelle ein Zeichen, stehen seine Ersatzbuchstaben da
|
|
15
|
+
* (`pc437` -> „Käsekrainer 3,50 EUR“, `replacement` -> „Kaesekrainer 3,50 EUR“).
|
|
16
|
+
* Eine unbekannte Kennung wird gemeldet.
|
|
17
|
+
*/
|
|
18
|
+
export function codeTablePreviewText(table) {
|
|
19
|
+
codeTableById(table);
|
|
20
|
+
return BEISPIEL.map((zeile) => escPosPrintableText(zeile, table)).join('\n');
|
|
21
|
+
}
|
|
@@ -2,4 +2,5 @@ export { type PosPaperSize, type PosAlign, type PosFont, type PosCutMode, type P
|
|
|
2
2
|
export { type CodeTableId, type CodeTable, CODE_TABLES, codeTableById, codeTableFromSetting, encodeForCodeTable, } from './code-tables.js';
|
|
3
3
|
export { type QrModuleSize, type QrSizing, QR_MODULE_SIZE_CAP, QR_QUIET_ZONE_MODULES, QR_MIN_MODULE_DOTS, QR_EXCEPTION_MODULE_DOTS, QR_MAX_MODULE_DOTS, QR_PRINT_WIDTH_DOTS, qrModuleCount, qrFitsInVersion, computeQrSizing, qrSizingFor, } from './qr-groesse.js';
|
|
4
4
|
export { escPosPrintableText } from './printable.js';
|
|
5
|
+
export { codeTablePreviewText } from './code-table-preview.js';
|
|
5
6
|
export { type UsbEndpointLike, type UsbAlternateLike, type UsbInterfaceLike, type UsbConfigurationLike, type UsbTransferOutResultLike, type UsbWriterLike, type UsbIdentityLike, type UsbDeviceLike, type UsbPrinterEndpoint, type UsbPrinterConnection, USB_VENDOR_EPSON, USB_CLASS_PRINTER, UsbTimeoutError, usbDeviceKey, usbFindPrinterEndpoint, usbWriteAll, usbConnectPrinter, usbPrint, usbDisconnect, } from './webusb.js';
|
|
@@ -2,4 +2,5 @@ export { createEscPosDocument, escPosBytes, escPosReset, escPosSetGlobalCodeTabl
|
|
|
2
2
|
export { CODE_TABLES, codeTableById, codeTableFromSetting, encodeForCodeTable, } from './code-tables.js';
|
|
3
3
|
export { QR_MODULE_SIZE_CAP, QR_QUIET_ZONE_MODULES, QR_MIN_MODULE_DOTS, QR_EXCEPTION_MODULE_DOTS, QR_MAX_MODULE_DOTS, QR_PRINT_WIDTH_DOTS, qrModuleCount, qrFitsInVersion, computeQrSizing, qrSizingFor, } from './qr-groesse.js';
|
|
4
4
|
export { escPosPrintableText } from './printable.js';
|
|
5
|
+
export { codeTablePreviewText } from './code-table-preview.js';
|
|
5
6
|
export { USB_VENDOR_EPSON, USB_CLASS_PRINTER, UsbTimeoutError, usbDeviceKey, usbFindPrinterEndpoint, usbWriteAll, usbConnectPrinter, usbPrint, usbDisconnect, } from './webusb.js';
|
|
@@ -5,8 +5,14 @@
|
|
|
5
5
|
* Oben steht die Vorlage-Zeile als Rasterbild -- ein Bild druckt jeder
|
|
6
6
|
* Drucker gleich, egal welche Tabelle er gerade hat. Darunter je Tabelle des
|
|
7
7
|
* Katalogs eine Zeile mit ihrer Nummer (gross), umgeschaltet mit `ESC t n`
|
|
8
|
-
* und mit den Bytes dieser Tabelle.
|
|
9
|
-
*
|
|
8
|
+
* und mit den Bytes dieser Tabelle. Richtig ist die Zeile ohne falsches
|
|
9
|
+
* Zeichen; eine Luecke (Zeichen fehlt der Tabelle) ist in Ordnung, bei
|
|
10
|
+
* mehreren die mit den wenigsten Luecken, sonst Zeile 6 (Ersatzbuchstaben).
|
|
11
|
+
* Nicht „die erste Zeile mit richtigen Umlauten“: ein Drucker mit nur PC437
|
|
12
|
+
* druckt Zeile 2 und 3 mit richtigen Umlauten, aber falschem € und §.
|
|
13
|
+
*
|
|
14
|
+
* Alles ausserhalb der Testzeilen steht mit Ersatzbuchstaben (reines ASCII),
|
|
15
|
+
* auch die Anleitung: „Lücke“ aus dem Katalog steht am Blatt als „Luecke“.
|
|
10
16
|
*
|
|
11
17
|
* Bildschirm und Papier zeigen dasselbe Blatt: `codeTableTestSheet` liefert
|
|
12
18
|
* es im Zeilenmodell des Beleg-Blatts (`ReceiptSheet`), `codeTableTestSheetBytes`
|
|
@@ -87,7 +87,9 @@ function blattBauen(options) {
|
|
|
87
87
|
bloecke.push(zeile(einzug + t));
|
|
88
88
|
bloecke.push(zeile(einzug + nurAscii(labelText('codetable.replacement_note'))));
|
|
89
89
|
bloecke.push(doppelt);
|
|
90
|
+
bloecke.push(...zeilen(labelText('codetable.instruction_title'), true));
|
|
90
91
|
bloecke.push(...zeilen(messageText('codetable.instruction')));
|
|
92
|
+
bloecke.push(...zeilen(messageText('codetable.instruction_none', { number: ersatz.number })));
|
|
91
93
|
bloecke.push(doppelt);
|
|
92
94
|
return {
|
|
93
95
|
blatt: {
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sample": [
|
|
3
|
+
"Käsekrainer 3,50 €",
|
|
4
|
+
"Tee 80°"
|
|
5
|
+
],
|
|
6
|
+
"tables": {
|
|
7
|
+
"wpc1252": "Käsekrainer 3,50 €\nTee 80°",
|
|
8
|
+
"pc858": "Käsekrainer 3,50 €\nTee 80°",
|
|
9
|
+
"pc850": "Käsekrainer 3,50 EUR\nTee 80°",
|
|
10
|
+
"pc437": "Käsekrainer 3,50 EUR\nTee 80°",
|
|
11
|
+
"iso8859_15": "Käsekrainer 3,50 €\nTee 80°",
|
|
12
|
+
"replacement": "Kaesekrainer 3,50 EUR\nTee 80Grad"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"kind": "line",
|
|
35
|
-
"text": "So
|
|
35
|
+
"text": "So sehen die Zeichen richtig aus",
|
|
36
36
|
"bold": false,
|
|
37
37
|
"blank": false
|
|
38
38
|
},
|
|
@@ -116,19 +116,37 @@
|
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
"kind": "line",
|
|
119
|
-
"text": "
|
|
119
|
+
"text": "Welche Zeile nehmen? ",
|
|
120
|
+
"bold": true,
|
|
121
|
+
"blank": false
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"kind": "line",
|
|
125
|
+
"text": "Die Zeile, in der KEIN falsches ",
|
|
126
|
+
"bold": false,
|
|
127
|
+
"blank": false
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"kind": "line",
|
|
131
|
+
"text": "Zeichen steht. Eine Luecke ist ",
|
|
132
|
+
"bold": false,
|
|
133
|
+
"blank": false
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"kind": "line",
|
|
137
|
+
"text": "in Ordnung. Passen mehrere, die ",
|
|
120
138
|
"bold": false,
|
|
121
139
|
"blank": false
|
|
122
140
|
},
|
|
123
141
|
{
|
|
124
142
|
"kind": "line",
|
|
125
|
-
"text": "
|
|
143
|
+
"text": "mit den wenigsten Luecken. ",
|
|
126
144
|
"bold": false,
|
|
127
145
|
"blank": false
|
|
128
146
|
},
|
|
129
147
|
{
|
|
130
148
|
"kind": "line",
|
|
131
|
-
"text": "
|
|
149
|
+
"text": "Passt keine: 6. ",
|
|
132
150
|
"bold": false,
|
|
133
151
|
"blank": false
|
|
134
152
|
},
|
|
@@ -2,58 +2,61 @@
|
|
|
2
2
|
3d3d3d3d3d3d3d3d3d3d3d3d0a1b45011c2e20202020202020205a4549434845
|
|
3
3
|
4e5341545a2d544553540a1b45001c2e2020204b61737365204b45434b2d3120
|
|
4
4
|
2033302e30392e2031343a30350a1c2e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
12
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
39
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
40
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
41
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
5
|
+
3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a1c2e536f20736568656e2064696520
|
|
6
|
+
5a65696368656e2072696368746967206175730a1c2e1d763000300018000000
|
|
7
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
8
|
+
0000000000000000000000000000000000000000000000000000000000000198
|
|
9
|
+
0001980001980000000000000000000000000000000000000000000000000000
|
|
10
|
+
0000000000000000000000000000019800019800019800000000000000000000
|
|
11
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
12
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
13
|
+
000000000001980001980001980000600000f00002040001f800007c0000f800
|
|
14
|
+
00f00000000000000000000000000000000000000001980001980001980000f0
|
|
15
|
+
0001f800070e00039c0000fc0001f80001f80000000000000000000000000000
|
|
16
|
+
000000000000000000000000000000f000030c00070e00030c0001c000018000
|
|
17
|
+
01080000000000000000000000000000000000000000000000000000000000f0
|
|
18
|
+
00030c00070e00030c0003800001800001080000000000000000000000000000
|
|
19
|
+
000000000003f80001f800030c00019800070e00070e0003300003000001c000
|
|
20
|
+
019800000000000000000000000000000000000000039c00039c00030c000198
|
|
21
|
+
00060600070e0003600007f00001e00000f00000000000000000000000000000
|
|
22
|
+
0000000000000c00030c00030c00019800060600070e0003600007f000033800
|
|
23
|
+
000000000000000000000000000000000000000000000c00070e00030c00019c
|
|
24
|
+
00060600070e00037000030000031c0000000000000000000000000000000000
|
|
25
|
+
000000000001fc00060600030c00030c00060600070e0003380007e000030c00
|
|
26
|
+
00000000000000000000000000000000000000000003fc00060600030c0003fc
|
|
27
|
+
00060600070e00031c000fe000038c0000000000000000000000000000000000
|
|
28
|
+
0000000000070c00060600030c0003fc00070600070e0003060003000001ec00
|
|
29
|
+
000000000000000000000000000000000000000000060c00070e00030c00070e
|
|
30
|
+
00070e00070e0003060003800000780000000000000000000000000000000000
|
|
31
|
+
0000000000060c00030c00030c00060600030c00030c00030600018000001800
|
|
32
|
+
00000000000000000000000000000000000000000003bc00039c0003fc000606
|
|
33
|
+
0003fc0003fc0003ce0001fc00001c0000000000000000000000000000000000
|
|
34
|
+
000000000003fc0001f80001fc000e070001f80001f80003fc0000fc00001c00
|
|
35
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
36
|
+
0000000000000000000000000001f80000000000000000000000000000000000
|
|
37
|
+
000000000000000000000000000000000000000000000000000000000001f000
|
|
38
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
39
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
40
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
41
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
42
|
+
0000000000000000000000000000000000000000000000000000000000001c2e
|
|
43
|
+
2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d
|
|
44
|
+
0a1b45011d21111c2e311b45001d21001c2e1b7410207c20e420f620fc20c420
|
|
45
|
+
d620dc20df208020a720b00a1b45011d21111c2e321b45001d21001c2e1b7413
|
|
46
|
+
207c208420942081208e2099209a20e120d520f520f80a1b45011d21111c2e33
|
|
47
|
+
1b45001d21001c2e1b7402207c208420942081208e2099209a20e1202020f520
|
|
48
|
+
f80a1b45011d21111c2e341b45001d21001c2e1b7400207c208420942081208e
|
|
49
|
+
2099209a20e12020202020f80a1b45011d21111c2e351b45001d21001c2e1b74
|
|
50
|
+
28207c20e420f620fc20c420d620dc20df20a420a720b00a1c2e2d2d2d2d2d2d
|
|
51
|
+
2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a1b45011d21
|
|
52
|
+
111c2e361b45001d21001c2e1b7400207c206165206f65207565204165204f65
|
|
53
|
+
205565207373204555520a1c2e20202020205061722e20477261640a1c2e2020
|
|
54
|
+
2020202845727361747a2c20706173737420696d6d6572290a1c2e3d3d3d3d3d
|
|
55
|
+
3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a1b45011c
|
|
56
|
+
2e57656c636865205a65696c65206e65686d656e3f0a1b45001c2e446965205a
|
|
57
|
+
65696c652c20696e20646572204b45494e2066616c73636865730a1c2e5a6569
|
|
58
|
+
6368656e2073746568742e2045696e65204c7565636b65206973740a1c2e696e
|
|
59
|
+
204f72646e756e672e2050617373656e206d6568726572652c206469650a1c2e
|
|
60
|
+
6d69742064656e2077656e69677374656e204c7565636b656e2e0a1c2e506173
|
|
61
|
+
7374206b65696e653a20362e0a1c2e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d
|
|
62
|
+
3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a1b74100a0a0a0a0a1d5630
|
|
@@ -2,59 +2,62 @@
|
|
|
2
2
|
3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a1b45011c2e20202020202020205a45
|
|
3
3
|
494348454e5341545a2d544553540a1b45001c2e2020204b61737365204b4543
|
|
4
4
|
4b2d31202033302e30392e2031343a30350a1c2e3d3d3d3d3d3d3d3d3d3d3d3d
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
12
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
40
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
41
|
-
0000000000000000000000000000000000000000000000000000000000000000
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
5
|
+
3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a1c2e536f20736568656e20
|
|
6
|
+
646965205a65696368656e2072696368746967206175730a1c2e1d7630003000
|
|
7
|
+
1800000000000000000000000000000000000000000000000000000000000000
|
|
8
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
9
|
+
0000019800019800019800000000000000000000000000000000000000000000
|
|
10
|
+
0000000000000000000000000000000000000198000198000198000000000000
|
|
11
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
12
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
13
|
+
00000000000000000001980001980001980000600000f00002040001f800007c
|
|
14
|
+
0000f80000f00000000000000000000000000000000000000001980001980001
|
|
15
|
+
980000f00001f800070e00039c0000fc0001f80001f800000000000000000000
|
|
16
|
+
00000000000000000000000000000000000000f000030c00070e00030c0001c0
|
|
17
|
+
0001800001080000000000000000000000000000000000000000000000000000
|
|
18
|
+
000000f000030c00070e00030c00038000018000010800000000000000000000
|
|
19
|
+
00000000000000000003f80001f800030c00019800070e00070e000330000300
|
|
20
|
+
0001c000019800000000000000000000000000000000000000039c00039c0003
|
|
21
|
+
0c00019800060600070e0003600007f00001e00000f000000000000000000000
|
|
22
|
+
000000000000000000000c00030c00030c00019800060600070e0003600007f0
|
|
23
|
+
00033800000000000000000000000000000000000000000000000c00070e0003
|
|
24
|
+
0c00019c00060600070e00037000030000031c00000000000000000000000000
|
|
25
|
+
00000000000000000001fc00060600030c00030c00060600070e0003380007e0
|
|
26
|
+
00030c0000000000000000000000000000000000000000000003fc0006060003
|
|
27
|
+
0c0003fc00060600070e00031c000fe000038c00000000000000000000000000
|
|
28
|
+
000000000000000000070c00060600030c0003fc00070600070e000306000300
|
|
29
|
+
0001ec00000000000000000000000000000000000000000000060c00070e0003
|
|
30
|
+
0c00070e00070e00070e00030600038000007800000000000000000000000000
|
|
31
|
+
000000000000000000060c00030c00030c00060600030c00030c000306000180
|
|
32
|
+
0000180000000000000000000000000000000000000000000003bc00039c0003
|
|
33
|
+
fc0006060003fc0003fc0003ce0001fc00001c00000000000000000000000000
|
|
34
|
+
00000000000000000003fc0001f80001fc000e070001f80001f80003fc0000fc
|
|
35
|
+
00001c0000000000000000000000000000000000000000000000000000000000
|
|
36
|
+
000000000000000000000000000000000001f800000000000000000000000000
|
|
37
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
38
|
+
0001f00000000000000000000000000000000000000000000000000000000000
|
|
39
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
40
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
41
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
42
|
+
0000000000000000000000000000000000000000000000000000000000000000
|
|
43
|
+
00001c2e2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d
|
|
44
|
+
2d2d2d2d0a1b45011d21111c2e311b45001d21001c2e1b7410207c20e420f620
|
|
45
|
+
fc20c420d620dc20df208020a720b00a1b45011d21111c2e321b45001d21001c
|
|
46
|
+
2e1b7413207c208420942081208e2099209a20e120d520f520f80a1b45011d21
|
|
47
|
+
111c2e331b45001d21001c2e1b7402207c208420942081208e2099209a20e120
|
|
48
|
+
2020f520f80a1b45011d21111c2e341b45001d21001c2e1b7400207c20842094
|
|
49
|
+
2081208e2099209a20e12020202020f80a1b45011d21111c2e351b45001d2100
|
|
50
|
+
1c2e1b7428207c20e420f620fc20c420d620dc20df20a420a720b00a1c2e2d2d
|
|
51
|
+
2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a1b
|
|
52
|
+
45011d21111c2e361b45001d21001c2e1b7400207c206165206f652075652041
|
|
53
|
+
65204f65205565207373204555520a1c2e20202020205061722e20477261640a
|
|
54
|
+
1c2e20202020202845727361747a2c20706173737420696d6d6572290a1c2e3d
|
|
55
|
+
3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a
|
|
56
|
+
1b45011c2e57656c636865205a65696c65206e65686d656e3f0a1b45001c2e44
|
|
57
|
+
6965205a65696c652c20696e20646572204b45494e2066616c73636865730a1c
|
|
58
|
+
2e5a65696368656e2073746568742e2045696e65204c7565636b65206973740a
|
|
59
|
+
1c2e696e204f72646e756e672e2050617373656e206d6568726572652c206469
|
|
60
|
+
650a1c2e6d69742064656e2077656e69677374656e204c7565636b656e2e0a1c
|
|
61
|
+
2e5061737374206b65696e653a20362e0a1c2e3d3d3d3d3d3d3d3d3d3d3d3d3d
|
|
62
|
+
3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a1b74101d4c00000a0a0a0a0a
|
|
63
|
+
1d5630
|
package/fixtures/pos-texts.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.1.
|
|
2
|
+
"version": "1.1.1",
|
|
3
3
|
"messages": {
|
|
4
4
|
"network.no_connection": {
|
|
5
5
|
"text": "Keine Verbindung zum Server. Bitte die Internetverbindung prüfen und erneut versuchen."
|
|
@@ -553,10 +553,19 @@
|
|
|
553
553
|
"text": "Nichts gespeichert."
|
|
554
554
|
},
|
|
555
555
|
"codetable.question": {
|
|
556
|
-
"text": "
|
|
556
|
+
"text": "In welcher Zeile steht kein falsches Zeichen?"
|
|
557
|
+
},
|
|
558
|
+
"codetable.question_hint": {
|
|
559
|
+
"text": "Lücken sind in Ordnung."
|
|
557
560
|
},
|
|
558
561
|
"codetable.instruction": {
|
|
559
|
-
"text": "Die
|
|
562
|
+
"text": "Die Zeile, in der KEIN falsches Zeichen steht. Eine Lücke ist in Ordnung. Passen mehrere, die mit den wenigsten Lücken."
|
|
563
|
+
},
|
|
564
|
+
"codetable.instruction_none": {
|
|
565
|
+
"text": "Passt keine: {number}.",
|
|
566
|
+
"placeholders": [
|
|
567
|
+
"number"
|
|
568
|
+
]
|
|
560
569
|
},
|
|
561
570
|
"bluetooth.off": {
|
|
562
571
|
"text": "Bluetooth ist ausgeschaltet. Bitte einschalten und erneut suchen.",
|
|
@@ -1030,7 +1039,7 @@
|
|
|
1030
1039
|
"text": "ZEICHENSATZ-TEST"
|
|
1031
1040
|
},
|
|
1032
1041
|
"codetable.reference": {
|
|
1033
|
-
"text": "So
|
|
1042
|
+
"text": "So sehen die Zeichen richtig aus"
|
|
1034
1043
|
},
|
|
1035
1044
|
"codetable.replacement_note": {
|
|
1036
1045
|
"text": "(Ersatz, passt immer)"
|
|
@@ -1055,6 +1064,18 @@
|
|
|
1055
1064
|
"placeholders": [
|
|
1056
1065
|
"number"
|
|
1057
1066
|
]
|
|
1067
|
+
},
|
|
1068
|
+
"codetable.instruction_title": {
|
|
1069
|
+
"text": "Welche Zeile nehmen?"
|
|
1070
|
+
},
|
|
1071
|
+
"codetable.preview_title": {
|
|
1072
|
+
"text": "So steht es dann am Bon:"
|
|
1073
|
+
},
|
|
1074
|
+
"codetable.apply": {
|
|
1075
|
+
"text": "Übernehmen"
|
|
1076
|
+
},
|
|
1077
|
+
"codetable.other_row": {
|
|
1078
|
+
"text": "Andere Zeile"
|
|
1058
1079
|
}
|
|
1059
1080
|
}
|
|
1060
1081
|
}
|
package/fixtures/surface.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kreiseck/kasseneck-api",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Austrian fiscal cash register (RKSV) client for JavaScript and TypeScript: signed receipts, cancellations, card payments, receipt printing (ESC/POS), invoices. RKSV-Registrierkasse für JavaScript und TypeScript.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Kreiseck",
|