@pdfme/schemas 2.2.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.
Files changed (153) hide show
  1. package/.eslintrc.js +31 -0
  2. package/dist/cjs/__tests__/barcode.test.js +341 -0
  3. package/dist/cjs/__tests__/barcode.test.js.map +1 -0
  4. package/dist/cjs/__tests__/text.test.js +318 -0
  5. package/dist/cjs/__tests__/text.test.js.map +1 -0
  6. package/dist/cjs/src/barcodes/constants.js +19 -0
  7. package/dist/cjs/src/barcodes/constants.js.map +1 -0
  8. package/dist/cjs/src/barcodes/helper.js +147 -0
  9. package/dist/cjs/src/barcodes/helper.js.map +1 -0
  10. package/dist/cjs/src/barcodes/index.js +11 -0
  11. package/dist/cjs/src/barcodes/index.js.map +1 -0
  12. package/dist/cjs/src/barcodes/pdfRender.js +37 -0
  13. package/dist/cjs/src/barcodes/pdfRender.js.map +1 -0
  14. package/dist/cjs/src/barcodes/propPanel.js +69 -0
  15. package/dist/cjs/src/barcodes/propPanel.js.map +1 -0
  16. package/dist/cjs/src/barcodes/types.js +3 -0
  17. package/dist/cjs/src/barcodes/types.js.map +1 -0
  18. package/dist/cjs/src/barcodes/uiRender.js +92 -0
  19. package/dist/cjs/src/barcodes/uiRender.js.map +1 -0
  20. package/dist/cjs/src/image/constants.js +3 -0
  21. package/dist/cjs/src/image/constants.js.map +1 -0
  22. package/dist/cjs/src/image/helper.js +3 -0
  23. package/dist/cjs/src/image/helper.js.map +1 -0
  24. package/dist/cjs/src/image/index.js +8 -0
  25. package/dist/cjs/src/image/index.js.map +1 -0
  26. package/dist/cjs/src/image/pdfRender.js +34 -0
  27. package/dist/cjs/src/image/pdfRender.js.map +1 -0
  28. package/dist/cjs/src/image/propPanel.js +9 -0
  29. package/dist/cjs/src/image/propPanel.js.map +1 -0
  30. package/dist/cjs/src/image/types.js +3 -0
  31. package/dist/cjs/src/image/types.js.map +1 -0
  32. package/dist/cjs/src/image/uiRender.js +108 -0
  33. package/dist/cjs/src/image/uiRender.js.map +1 -0
  34. package/dist/cjs/src/index.js +13 -0
  35. package/dist/cjs/src/index.js.map +1 -0
  36. package/dist/cjs/src/renderUtils.js +65 -0
  37. package/dist/cjs/src/renderUtils.js.map +1 -0
  38. package/dist/cjs/src/text/constants.js +22 -0
  39. package/dist/cjs/src/text/constants.js.map +1 -0
  40. package/dist/cjs/src/text/helper.js +270 -0
  41. package/dist/cjs/src/text/helper.js.map +1 -0
  42. package/dist/cjs/src/text/index.js +8 -0
  43. package/dist/cjs/src/text/index.js.map +1 -0
  44. package/dist/cjs/src/text/pdfRender.js +111 -0
  45. package/dist/cjs/src/text/pdfRender.js.map +1 -0
  46. package/dist/cjs/src/text/propPanel.js +122 -0
  47. package/dist/cjs/src/text/propPanel.js.map +1 -0
  48. package/dist/cjs/src/text/types.js +3 -0
  49. package/dist/cjs/src/text/types.js.map +1 -0
  50. package/dist/cjs/src/text/uiRender.js +118 -0
  51. package/dist/cjs/src/text/uiRender.js.map +1 -0
  52. package/dist/esm/__tests__/barcode.test.js +336 -0
  53. package/dist/esm/__tests__/barcode.test.js.map +1 -0
  54. package/dist/esm/__tests__/text.test.js +293 -0
  55. package/dist/esm/__tests__/text.test.js.map +1 -0
  56. package/dist/esm/src/barcodes/constants.js +16 -0
  57. package/dist/esm/src/barcodes/constants.js.map +1 -0
  58. package/dist/esm/src/barcodes/helper.js +137 -0
  59. package/dist/esm/src/barcodes/helper.js.map +1 -0
  60. package/dist/esm/src/barcodes/index.js +9 -0
  61. package/dist/esm/src/barcodes/index.js.map +1 -0
  62. package/dist/esm/src/barcodes/pdfRender.js +33 -0
  63. package/dist/esm/src/barcodes/pdfRender.js.map +1 -0
  64. package/dist/esm/src/barcodes/propPanel.js +65 -0
  65. package/dist/esm/src/barcodes/propPanel.js.map +1 -0
  66. package/dist/esm/src/barcodes/types.js +2 -0
  67. package/dist/esm/src/barcodes/types.js.map +1 -0
  68. package/dist/esm/src/barcodes/uiRender.js +88 -0
  69. package/dist/esm/src/barcodes/uiRender.js.map +1 -0
  70. package/dist/esm/src/image/constants.js +2 -0
  71. package/dist/esm/src/image/constants.js.map +1 -0
  72. package/dist/esm/src/image/helper.js +2 -0
  73. package/dist/esm/src/image/helper.js.map +1 -0
  74. package/dist/esm/src/image/index.js +6 -0
  75. package/dist/esm/src/image/index.js.map +1 -0
  76. package/dist/esm/src/image/pdfRender.js +30 -0
  77. package/dist/esm/src/image/pdfRender.js.map +1 -0
  78. package/dist/esm/src/image/propPanel.js +6 -0
  79. package/dist/esm/src/image/propPanel.js.map +1 -0
  80. package/dist/esm/src/image/types.js +2 -0
  81. package/dist/esm/src/image/types.js.map +1 -0
  82. package/dist/esm/src/image/uiRender.js +104 -0
  83. package/dist/esm/src/image/uiRender.js.map +1 -0
  84. package/dist/esm/src/index.js +7 -0
  85. package/dist/esm/src/index.js.map +1 -0
  86. package/dist/esm/src/renderUtils.js +56 -0
  87. package/dist/esm/src/renderUtils.js.map +1 -0
  88. package/dist/esm/src/text/constants.js +19 -0
  89. package/dist/esm/src/text/constants.js.map +1 -0
  90. package/dist/esm/src/text/helper.js +237 -0
  91. package/dist/esm/src/text/helper.js.map +1 -0
  92. package/dist/esm/src/text/index.js +6 -0
  93. package/dist/esm/src/text/index.js.map +1 -0
  94. package/dist/esm/src/text/pdfRender.js +107 -0
  95. package/dist/esm/src/text/pdfRender.js.map +1 -0
  96. package/dist/esm/src/text/propPanel.js +119 -0
  97. package/dist/esm/src/text/propPanel.js.map +1 -0
  98. package/dist/esm/src/text/types.js +2 -0
  99. package/dist/esm/src/text/types.js.map +1 -0
  100. package/dist/esm/src/text/uiRender.js +114 -0
  101. package/dist/esm/src/text/uiRender.js.map +1 -0
  102. package/dist/types/__tests__/barcode.test.d.ts +1 -0
  103. package/dist/types/__tests__/text.test.d.ts +1 -0
  104. package/dist/types/src/barcodes/constants.d.ts +3 -0
  105. package/dist/types/src/barcodes/helper.d.ts +20 -0
  106. package/dist/types/src/barcodes/index.d.ts +4 -0
  107. package/dist/types/src/barcodes/pdfRender.d.ts +3 -0
  108. package/dist/types/src/barcodes/propPanel.d.ts +3 -0
  109. package/dist/types/src/barcodes/types.d.ts +9 -0
  110. package/dist/types/src/barcodes/uiRender.d.ts +3 -0
  111. package/dist/types/src/image/constants.d.ts +1 -0
  112. package/dist/types/src/image/helper.d.ts +1 -0
  113. package/dist/types/src/image/index.d.ts +4 -0
  114. package/dist/types/src/image/pdfRender.d.ts +3 -0
  115. package/dist/types/src/image/propPanel.d.ts +3 -0
  116. package/dist/types/src/image/types.d.ts +3 -0
  117. package/dist/types/src/image/uiRender.d.ts +3 -0
  118. package/dist/types/src/index.d.ts +3 -0
  119. package/dist/types/src/renderUtils.d.ts +16 -0
  120. package/dist/types/src/text/constants.d.ts +19 -0
  121. package/dist/types/src/text/helper.d.ts +29 -0
  122. package/dist/types/src/text/index.d.ts +4 -0
  123. package/dist/types/src/text/pdfRender.d.ts +3 -0
  124. package/dist/types/src/text/propPanel.d.ts +3 -0
  125. package/dist/types/src/text/types.d.ts +26 -0
  126. package/dist/types/src/text/uiRender.d.ts +3 -0
  127. package/package.json +86 -0
  128. package/src/barcodes/constants.ts +17 -0
  129. package/src/barcodes/helper.ts +161 -0
  130. package/src/barcodes/index.ts +16 -0
  131. package/src/barcodes/pdfRender.ts +29 -0
  132. package/src/barcodes/propPanel.ts +133 -0
  133. package/src/barcodes/types.ts +11 -0
  134. package/src/barcodes/uiRender.ts +116 -0
  135. package/src/image/constants.ts +1 -0
  136. package/src/image/helper.ts +1 -0
  137. package/src/image/index.ts +8 -0
  138. package/src/image/pdfRender.ts +24 -0
  139. package/src/image/propPanel.ts +8 -0
  140. package/src/image/types.ts +3 -0
  141. package/src/image/uiRender.ts +118 -0
  142. package/src/index.ts +7 -0
  143. package/src/renderUtils.ts +74 -0
  144. package/src/text/constants.ts +22 -0
  145. package/src/text/helper.ts +317 -0
  146. package/src/text/index.ts +9 -0
  147. package/src/text/pdfRender.ts +155 -0
  148. package/src/text/propPanel.ts +148 -0
  149. package/src/text/types.ts +29 -0
  150. package/src/text/uiRender.ts +153 -0
  151. package/tsconfig.cjs.json +10 -0
  152. package/tsconfig.esm.json +10 -0
  153. package/tsconfig.json +6 -0
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.uiRender = void 0;
13
+ const common_1 = require("@pdfme/common");
14
+ const constants_1 = require("./constants");
15
+ const helper_1 = require("./helper");
16
+ const mapVerticalAlignToFlex = (verticalAlignmentValue) => {
17
+ switch (verticalAlignmentValue) {
18
+ case constants_1.VERTICAL_ALIGN_TOP:
19
+ return 'flex-start';
20
+ case constants_1.VERTICAL_ALIGN_MIDDLE:
21
+ return 'center';
22
+ case constants_1.VERTICAL_ALIGN_BOTTOM:
23
+ return 'flex-end';
24
+ }
25
+ return 'flex-start';
26
+ };
27
+ const uiRender = (arg) => __awaiter(void 0, void 0, void 0, function* () {
28
+ var _a, _b, _c, _d, _e, _f, _g;
29
+ const { value, schema, rootElement, mode, onChange, stopEditing, tabIndex, placeholder, options, } = arg;
30
+ const font = (options === null || options === void 0 ? void 0 : options.font) || (0, common_1.getDefaultFont)();
31
+ let dynamicFontSize = undefined;
32
+ if (schema.dynamicFontSize && value) {
33
+ dynamicFontSize = yield (0, helper_1.calculateDynamicFontSize)({
34
+ textSchema: schema,
35
+ font,
36
+ value,
37
+ startingFontSize: dynamicFontSize,
38
+ });
39
+ }
40
+ const fontKitFont = yield (0, helper_1.getFontKitFont)(schema, font);
41
+ // Depending on vertical alignment, we need to move the top or bottom of the font to keep
42
+ // it within it's defined box and align it with the generated pdf.
43
+ const { topAdj, bottomAdj } = (0, helper_1.getBrowserVerticalFontAdjustments)(fontKitFont, (_a = dynamicFontSize !== null && dynamicFontSize !== void 0 ? dynamicFontSize : schema.fontSize) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_FONT_SIZE, (_b = schema.lineHeight) !== null && _b !== void 0 ? _b : constants_1.DEFAULT_LINE_HEIGHT, (_c = schema.verticalAlignment) !== null && _c !== void 0 ? _c : constants_1.DEFAULT_VERTICAL_ALIGNMENT);
44
+ const topAdjustment = topAdj;
45
+ const bottomAdjustment = bottomAdj;
46
+ const container = document.createElement('div');
47
+ function getBackgroundColor(mode, value, schema) {
48
+ var _a;
49
+ if (mode === 'form' && value && schema.backgroundColor) {
50
+ return schema.backgroundColor;
51
+ }
52
+ else if (mode === 'viewer') {
53
+ return (_a = schema.backgroundColor) !== null && _a !== void 0 ? _a : 'transparent';
54
+ }
55
+ else {
56
+ return 'rgb(242 244 255 / 75%)';
57
+ }
58
+ }
59
+ const containerStyle = {
60
+ padding: 0,
61
+ resize: 'none',
62
+ backgroundColor: getBackgroundColor(mode, value, schema),
63
+ border: 'none',
64
+ display: 'flex',
65
+ flexDirection: 'column',
66
+ justifyContent: mapVerticalAlignToFlex(schema.verticalAlignment),
67
+ width: '100%',
68
+ height: '100%',
69
+ };
70
+ Object.assign(container.style, containerStyle);
71
+ rootElement.innerHTML = '';
72
+ rootElement.appendChild(container);
73
+ const fontStyles = {
74
+ fontFamily: schema.fontName ? `'${schema.fontName}'` : 'inherit',
75
+ color: schema.fontColor ? schema.fontColor : constants_1.DEFAULT_FONT_COLOR,
76
+ fontSize: `${(_d = dynamicFontSize !== null && dynamicFontSize !== void 0 ? dynamicFontSize : schema.fontSize) !== null && _d !== void 0 ? _d : constants_1.DEFAULT_FONT_SIZE}pt`,
77
+ letterSpacing: `${(_e = schema.characterSpacing) !== null && _e !== void 0 ? _e : constants_1.DEFAULT_CHARACTER_SPACING}pt`,
78
+ lineHeight: `${(_f = schema.lineHeight) !== null && _f !== void 0 ? _f : constants_1.DEFAULT_LINE_HEIGHT}em`,
79
+ textAlign: (_g = schema.alignment) !== null && _g !== void 0 ? _g : constants_1.DEFAULT_ALIGNMENT,
80
+ whiteSpace: 'pre-wrap',
81
+ wordBreak: 'break-word',
82
+ };
83
+ if (mode === 'form') {
84
+ const textarea = document.createElement('textarea');
85
+ const textareaStyle = {
86
+ padding: 0,
87
+ resize: 'none',
88
+ border: 'none',
89
+ outline: 'none',
90
+ paddingTop: topAdjustment + 'px',
91
+ backgroundColor: 'transparent',
92
+ width: '100%',
93
+ height: '100%',
94
+ };
95
+ Object.assign(textarea.style, textareaStyle, fontStyles);
96
+ textarea.rows = 1;
97
+ textarea.placeholder = placeholder || '';
98
+ textarea.tabIndex = tabIndex || 0;
99
+ textarea.addEventListener('change', (e) => onChange && onChange(e.target.value));
100
+ textarea.addEventListener('blur', () => stopEditing && stopEditing());
101
+ textarea.value = value;
102
+ container.appendChild(textarea);
103
+ textarea.setSelectionRange(value.length, value.length);
104
+ textarea.focus();
105
+ }
106
+ else {
107
+ const div = document.createElement('div');
108
+ const divStyle = Object.assign(Object.assign({}, fontStyles), { marginBottom: bottomAdjustment + 'px', paddingTop: topAdjustment + 'px' });
109
+ Object.assign(div.style, divStyle);
110
+ div.innerHTML = value
111
+ .split('')
112
+ .map((l, i) => `<span style="letter-spacing:${String(value).length === i + 1 ? 0 : 'inherit'};">${l}</span>`)
113
+ .join('');
114
+ container.appendChild(div);
115
+ }
116
+ });
117
+ exports.uiRender = uiRender;
118
+ //# sourceMappingURL=uiRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uiRender.js","sourceRoot":"","sources":["../../../../src/text/uiRender.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,336 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import jsQR from 'jsqr';
11
+ import { PNG } from 'pngjs';
12
+ import { validateBarcodeInput, createBarCode, barCodeType2Bcid, mapHexColorForBwipJsLib } from "../src/barcodes/helper";
13
+ describe('validateBarcodeInput test', () => {
14
+ test('qrcode', () => {
15
+ // 500文字以下
16
+ const type = 'qrcode';
17
+ const valid = 'https://www.google.com/';
18
+ const valid2 = '漢字を含む文字列';
19
+ const invalid2 = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYIIiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQ';
20
+ const blank = '';
21
+ expect(validateBarcodeInput(type, valid)).toEqual(true);
22
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
23
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
24
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
25
+ });
26
+ test('japanpost', () => {
27
+ // https://barcode-place.azurewebsites.net/Barcode/zip
28
+ // 郵便番号は数字(0-9)のみ、住所表示番号は英数字(0-9,A-Z)とハイフン(-)が使用可能です。
29
+ const type = 'japanpost';
30
+ const valid1 = '10000131-3-2-503';
31
+ const valid2 = '10000131-3-2-B503';
32
+ const invalid1 = 'invalid';
33
+ const invalid2 = '10000131=3=2-503';
34
+ const invalid3 = '10000131=3=2-503';
35
+ const invalid4 = '10000131-3-2-b503';
36
+ const blank = '';
37
+ expect(validateBarcodeInput(type, valid1)).toEqual(true);
38
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
39
+ expect(validateBarcodeInput(type, invalid1)).toEqual(false);
40
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
41
+ expect(validateBarcodeInput(type, invalid3)).toEqual(false);
42
+ expect(validateBarcodeInput(type, invalid4)).toEqual(false);
43
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
44
+ });
45
+ test('ean13', () => {
46
+ // https://barcode-place.azurewebsites.net/Barcode/jan
47
+ // 有効文字は数値(0-9)のみ。標準タイプはチェックデジットを含まない12桁orチェックデジットを含む13桁
48
+ const type = 'ean13';
49
+ const valid1 = '111111111111';
50
+ const valid2 = '1111111111116';
51
+ const valid3 = '2822224229221';
52
+ const valid4 = '3433333133331';
53
+ const valid5 = '8434244447413';
54
+ expect(validateBarcodeInput(type, valid1)).toEqual(true);
55
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
56
+ expect(validateBarcodeInput(type, valid3)).toEqual(true);
57
+ expect(validateBarcodeInput(type, valid4)).toEqual(true);
58
+ expect(validateBarcodeInput(type, valid5)).toEqual(true);
59
+ const invalid1 = '111';
60
+ const invalid2 = '111111111111111111111111';
61
+ const invalid3 = 'invalid';
62
+ const invalid4 = '11111a111111';
63
+ const invalid5 = '1111111111111';
64
+ const blank = '';
65
+ expect(validateBarcodeInput(type, invalid1)).toEqual(false);
66
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
67
+ expect(validateBarcodeInput(type, invalid3)).toEqual(false);
68
+ expect(validateBarcodeInput(type, invalid4)).toEqual(false);
69
+ expect(validateBarcodeInput(type, invalid5)).toEqual(false);
70
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
71
+ });
72
+ test('ean8', () => {
73
+ // https://barcode-place.azurewebsites.net/Barcode/jan
74
+ // 有効文字は数値(0-9)のみ。短縮タイプはチェックデジットを含まない7桁orチェックデジットを含む8桁
75
+ const type = 'ean8';
76
+ const valid1 = '1111111';
77
+ const valid2 = '11111115';
78
+ const valid3 = '22222220';
79
+ const valid4 = '33333335';
80
+ const valid5 = '44444440';
81
+ expect(validateBarcodeInput(type, valid1)).toEqual(true);
82
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
83
+ expect(validateBarcodeInput(type, valid3)).toEqual(true);
84
+ expect(validateBarcodeInput(type, valid4)).toEqual(true);
85
+ expect(validateBarcodeInput(type, valid5)).toEqual(true);
86
+ const invalid1 = '111';
87
+ const invalid2 = '11111111111111111111';
88
+ const invalid3 = 'invalid';
89
+ const invalid4 = '111a111';
90
+ const invalid5 = '44444441';
91
+ const blank = '';
92
+ expect(validateBarcodeInput(type, invalid1)).toEqual(false);
93
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
94
+ expect(validateBarcodeInput(type, invalid3)).toEqual(false);
95
+ expect(validateBarcodeInput(type, invalid4)).toEqual(false);
96
+ expect(validateBarcodeInput(type, invalid5)).toEqual(false);
97
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
98
+ });
99
+ test('code39', () => {
100
+ // https://barcode-place.azurewebsites.net/Barcode/code39
101
+ // CODE39は数字(0-9)、アルファベット大文字(A-Z)、記号(-.$/+%)、半角スペースに対応しています。
102
+ const type = 'code39';
103
+ const valid1 = '12345';
104
+ const valid2 = 'ABCDE';
105
+ const valid3 = '1A2B3C4D5G';
106
+ const valid4 = '1-A $2/B+3%C4D5G';
107
+ const invalid1 = '123a45';
108
+ const invalid2 = '1-A$2/B+3%C4=D5G';
109
+ const blank = '';
110
+ expect(validateBarcodeInput(type, valid1)).toEqual(true);
111
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
112
+ expect(validateBarcodeInput(type, valid3)).toEqual(true);
113
+ expect(validateBarcodeInput(type, valid4)).toEqual(true);
114
+ expect(validateBarcodeInput(type, invalid1)).toEqual(false);
115
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
116
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
117
+ });
118
+ test('code128', () => {
119
+ // https://www.keyence.co.jp/ss/products/autoid/codereader/basic_code128.jsp
120
+ // コンピュータのキーボードから打てる文字(漢字、ひらがな、カタカナ以外)可能
121
+ const type = 'code128';
122
+ const valid1 = '12345';
123
+ const valid2 = '1-A$2/B+3%C4=D5G';
124
+ const valid3 = '1-A$2/B+3%C4=D5Ga~';
125
+ const invalid1 = '1-A$2/B+3%C4=D5Gひらがな';
126
+ const invalid2 = '1-A$2/B+3%C4=D5G〜';
127
+ const invalid3 = '1ーA$2・B+3%C4=D5G〜';
128
+ const blank = '';
129
+ expect(validateBarcodeInput(type, valid1)).toEqual(true);
130
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
131
+ expect(validateBarcodeInput(type, valid3)).toEqual(true);
132
+ expect(validateBarcodeInput(type, invalid1)).toEqual(false);
133
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
134
+ expect(validateBarcodeInput(type, invalid3)).toEqual(false);
135
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
136
+ });
137
+ test('nw7', () => {
138
+ // https://barcode-place.azurewebsites.net/Barcode/nw7
139
+ // https://en.wikipedia.org/wiki/Codabar
140
+ // NW-7は数字(0-9)と記号(-.$:/+)に対応しています。
141
+ // スタートコード/ストップコードとして、コードの始まりと終わりはアルファベット(A-D)のいずれかを使用してください。
142
+ const type = 'nw7';
143
+ const valid1 = 'A12345D';
144
+ const valid2 = 'A$2/+345D';
145
+ const valid3 = 'a4321D';
146
+ const invalid1 = 'A12345G';
147
+ const invalid2 = 'A12a45D';
148
+ const blank = '';
149
+ expect(validateBarcodeInput(type, valid1)).toEqual(true);
150
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
151
+ expect(validateBarcodeInput(type, valid3)).toEqual(true);
152
+ expect(validateBarcodeInput(type, invalid1)).toEqual(false);
153
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
154
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
155
+ });
156
+ test('itf14', () => {
157
+ // https://barcode-place.azurewebsites.net/Barcode/itf
158
+ // 有効文字は数値(0-9)のみ。 チェックデジットを含まない13桁orチェックデジットを含む14桁
159
+ const type = 'itf14';
160
+ const valid1 = '1111111111111';
161
+ const valid2 = '11111111111113';
162
+ const valid3 = '22222222222226';
163
+ const valid4 = '33333333333339';
164
+ const valid5 = '44444444444442';
165
+ expect(validateBarcodeInput(type, valid1)).toEqual(true);
166
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
167
+ expect(validateBarcodeInput(type, valid3)).toEqual(true);
168
+ expect(validateBarcodeInput(type, valid4)).toEqual(true);
169
+ expect(validateBarcodeInput(type, valid5)).toEqual(true);
170
+ const invalid1 = '111';
171
+ const invalid2 = '11111111111111111111111111111';
172
+ const invalid3 = '11111111111112';
173
+ const blank = '';
174
+ expect(validateBarcodeInput(type, invalid1)).toEqual(false);
175
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
176
+ expect(validateBarcodeInput(type, invalid3)).toEqual(false);
177
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
178
+ });
179
+ test('upca', () => {
180
+ // https://barcode-place.azurewebsites.net/Barcode/upc
181
+ // 有効文字は数値(0-9)のみ。 チェックデジットを含まない11桁orチェックデジットを含む12桁。
182
+ const type = 'upca';
183
+ const valid1 = '12345678901';
184
+ const valid2 = '123456789012';
185
+ const valid3 = '123456789036';
186
+ const valid4 = '126456789013';
187
+ const valid5 = '123456759015';
188
+ expect(validateBarcodeInput(type, valid1)).toEqual(true);
189
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
190
+ expect(validateBarcodeInput(type, valid3)).toEqual(true);
191
+ expect(validateBarcodeInput(type, valid4)).toEqual(true);
192
+ expect(validateBarcodeInput(type, valid5)).toEqual(true);
193
+ const invalid1 = '1234567890';
194
+ const invalid2 = '1234567890123';
195
+ const invalid3 = '123456789011';
196
+ const invalid4 = '126456789014';
197
+ const blank = '';
198
+ expect(validateBarcodeInput(type, invalid1)).toEqual(false);
199
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
200
+ expect(validateBarcodeInput(type, invalid3)).toEqual(false);
201
+ expect(validateBarcodeInput(type, invalid4)).toEqual(false);
202
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
203
+ });
204
+ test('upce', () => {
205
+ // https://barcode-place.azurewebsites.net/Barcode/upc
206
+ // 有効文字は数値(0-9)のみ。 1桁目に指定できる数字(ナンバーシステムキャラクタ)は0のみ。
207
+ // チェックデジットを含まない7桁orチェックデジットを含む8桁。
208
+ const type = 'upce';
209
+ const valid1 = '0111111';
210
+ const valid2 = '01111118';
211
+ const valid3 = '01111125';
212
+ const valid4 = '01114126';
213
+ const valid5 = '01101126';
214
+ const blank = '';
215
+ expect(validateBarcodeInput(type, valid1)).toEqual(true);
216
+ expect(validateBarcodeInput(type, valid2)).toEqual(true);
217
+ expect(validateBarcodeInput(type, valid3)).toEqual(true);
218
+ expect(validateBarcodeInput(type, valid4)).toEqual(true);
219
+ expect(validateBarcodeInput(type, valid5)).toEqual(true);
220
+ const invalid1 = '1111111';
221
+ const invalid2 = '011111111';
222
+ const invalid3 = '01111128';
223
+ const invalid4 = '01114125';
224
+ expect(validateBarcodeInput(type, invalid1)).toEqual(false);
225
+ expect(validateBarcodeInput(type, invalid2)).toEqual(false);
226
+ expect(validateBarcodeInput(type, invalid3)).toEqual(false);
227
+ expect(validateBarcodeInput(type, invalid4)).toEqual(false);
228
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
229
+ });
230
+ test('gs1datamatrix', () => {
231
+ // https://www.gs1.org/docs/barcodes/GS1_DataMatrix_Guideline.pdf
232
+ // find the GTIN application identifier, regex for "(01)" and the digits after it until
233
+ // another "(" or end of string
234
+ const type = 'gs1datamatrix';
235
+ let valid = "(01)12244668801011(17)250712(10)22322SSD3";
236
+ let valid_12 = "(01)1224466880108(17)250712(10)22322SSD3";
237
+ let invalid_bad_checkdigit = "(01)12244668801014(17)250712(10)22322SSD3";
238
+ let invalid_input_length = "(01)12244668801011(17)250712(10)22322SSD3(10)22322SSD3";
239
+ const blank = '';
240
+ expect(validateBarcodeInput(type, valid)).toEqual(true);
241
+ expect(validateBarcodeInput(type, valid_12)).toEqual(true);
242
+ expect(validateBarcodeInput(type, invalid_bad_checkdigit)).toEqual(false);
243
+ expect(validateBarcodeInput(type, blank)).toEqual(false);
244
+ expect(validateBarcodeInput(type, invalid_input_length)).toEqual(false);
245
+ });
246
+ });
247
+ /**
248
+ * 生成したQRコード(png)画像から入力データが正常に読み取れるかをテスト
249
+ */
250
+ describe('createBarCode', () => {
251
+ // テスト名, input, expected
252
+ const tests = [
253
+ ['URL', 'https://www.google.com/', 'https://www.google.com/'],
254
+ ['ひらがな', 'てすとです', 'てすとです'],
255
+ ['ひらがな2', 'あいうえおあいうえお2', 'あいうえおあいうえお2'],
256
+ ['カタカナ', 'テストです', 'テストです'],
257
+ ['漢字', 'お正月', 'お正月'],
258
+ ['中国語', '新年快乐', '新年快乐'],
259
+ ['タイ語', 'สวัสดีปีใหม่', 'สวัสดีปีใหม่'],
260
+ ];
261
+ const upcaCode = '416000336108';
262
+ describe('generate qrcode with default colours', () => {
263
+ for (const t of tests) {
264
+ // eslint-disable-next-line no-loop-func
265
+ test(`${t[0]}: ${t[1]}`, () => __awaiter(void 0, void 0, void 0, function* () {
266
+ const buffer = (yield createBarCode({
267
+ type: 'qrcode',
268
+ input: t[1],
269
+ width: 10,
270
+ height: 10,
271
+ backgroundColor: '00000000', // 背景色を指定しないとjsQRでうまく解析できない
272
+ }));
273
+ const png = PNG.sync.read(buffer);
274
+ const pngData = new Uint8ClampedArray(png.data);
275
+ const qr = jsQR(pngData, png.width, png.height);
276
+ expect(qr).not.toBeNull();
277
+ const dataBuffer = Buffer.from(qr.binaryData);
278
+ expect(dataBuffer.toString('utf8')).toEqual(t[2]);
279
+ }));
280
+ }
281
+ });
282
+ describe('generate qrcode with custom colours', () => {
283
+ for (const t of tests) {
284
+ // eslint-disable-next-line no-loop-func
285
+ test(`${t[0]}: ${t[1]}`, () => __awaiter(void 0, void 0, void 0, function* () {
286
+ const buffer = (yield createBarCode({
287
+ type: 'qrcode',
288
+ input: t[1],
289
+ width: 10,
290
+ height: 10,
291
+ backgroundColor: 'ffffff',
292
+ barColor: 'f50505',
293
+ }));
294
+ const png = PNG.sync.read(buffer);
295
+ const pngData = new Uint8ClampedArray(png.data);
296
+ const qr = jsQR(pngData, png.width, png.height);
297
+ expect(qr).not.toBeNull();
298
+ const dataBuffer = Buffer.from(qr.binaryData);
299
+ expect(dataBuffer.toString('utf8')).toEqual(t[2]);
300
+ }));
301
+ }
302
+ });
303
+ });
304
+ describe('barCodeType2Bcid test', () => {
305
+ test('it maps the nw7 barcode type', () => {
306
+ expect(barCodeType2Bcid('nw7')).toEqual('rationalizedCodabar');
307
+ });
308
+ test('it returns all other types as they are', () => {
309
+ expect(barCodeType2Bcid('qrcode')).toEqual('qrcode');
310
+ expect(barCodeType2Bcid('japanpost')).toEqual('japanpost');
311
+ expect(barCodeType2Bcid('ean8')).toEqual('ean8');
312
+ expect(barCodeType2Bcid('ean13')).toEqual('ean13');
313
+ expect(barCodeType2Bcid('code39')).toEqual('code39');
314
+ expect(barCodeType2Bcid('code128')).toEqual('code128');
315
+ expect(barCodeType2Bcid('itf14')).toEqual('itf14');
316
+ expect(barCodeType2Bcid('upca')).toEqual('upca');
317
+ expect(barCodeType2Bcid('upce')).toEqual('upce');
318
+ expect(barCodeType2Bcid('gs1datamatrix')).toEqual('gs1datamatrix');
319
+ });
320
+ });
321
+ describe('mapHexColorForBwipJsLib text', () => {
322
+ test('it strips a hex if there is one', () => {
323
+ expect(mapHexColorForBwipJsLib('#ffffff')).toEqual('ffffff');
324
+ expect(mapHexColorForBwipJsLib('#eee')).toEqual('eee');
325
+ expect(mapHexColorForBwipJsLib('ffffff')).toEqual('ffffff');
326
+ });
327
+ test('it strips a hex from a fallback color if main color not defined', () => {
328
+ expect(mapHexColorForBwipJsLib(undefined, '#ffffff')).toEqual('ffffff');
329
+ expect(mapHexColorForBwipJsLib(undefined, '#eee')).toEqual('eee');
330
+ expect(mapHexColorForBwipJsLib(undefined, 'ffffff')).toEqual('ffffff');
331
+ });
332
+ test('it defaults to black if neither color nor fallback passed', () => {
333
+ expect(mapHexColorForBwipJsLib(undefined)).toEqual('000000');
334
+ });
335
+ });
336
+ //# sourceMappingURL=barcode.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barcode.test.js","sourceRoot":"","sources":["../../../__tests__/barcode.test.ts"],"names":[],"mappings":"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"}