@pdfme/schemas 5.3.8-dev.36 → 5.3.8-dev.41
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/dist/node/__tests__/barcode.test.js +119 -114
- package/dist/node/__tests__/barcode.test.js.map +1 -1
- package/dist/node/__tests__/multiVariableText.test.js +17 -15
- package/dist/node/__tests__/multiVariableText.test.js.map +1 -1
- package/dist/node/__tests__/text.test.js +102 -77
- package/dist/node/__tests__/text.test.js.map +1 -1
- package/dist/node/__tests__/utils.test.js +35 -33
- package/dist/node/__tests__/utils.test.js.map +1 -1
- package/dist/node/src/barcodes/constants.js +7 -4
- package/dist/node/src/barcodes/constants.js.map +1 -1
- package/dist/node/src/barcodes/helper.js +26 -16
- package/dist/node/src/barcodes/helper.js.map +1 -1
- package/dist/node/src/barcodes/index.js +14 -12
- package/dist/node/src/barcodes/index.js.map +1 -1
- package/dist/node/src/barcodes/pdfRender.js +10 -6
- package/dist/node/src/barcodes/pdfRender.js.map +1 -1
- package/dist/node/src/barcodes/propPanel.js +24 -20
- package/dist/node/src/barcodes/propPanel.js.map +1 -1
- package/dist/node/src/barcodes/types.js +2 -1
- package/dist/node/src/barcodes/uiRender.js +12 -8
- package/dist/node/src/barcodes/uiRender.js.map +1 -1
- package/dist/node/src/checkbox/index.js +17 -12
- package/dist/node/src/checkbox/index.js.map +1 -1
- package/dist/node/src/constants.js +5 -2
- package/dist/node/src/constants.js.map +1 -1
- package/dist/node/src/date/date.js +7 -5
- package/dist/node/src/date/date.js.map +1 -1
- package/dist/node/src/date/dateTime.js +7 -5
- package/dist/node/src/date/dateTime.js.map +1 -1
- package/dist/node/src/date/helper.js +132 -102
- package/dist/node/src/date/helper.js.map +1 -1
- package/dist/node/src/date/time.js +7 -5
- package/dist/node/src/date/time.js.map +1 -1
- package/dist/node/src/date/types.js +2 -1
- package/dist/node/src/graphics/cacheKey.js +5 -1
- package/dist/node/src/graphics/cacheKey.js.map +1 -1
- package/dist/node/src/graphics/image.js +17 -15
- package/dist/node/src/graphics/image.js.map +1 -1
- package/dist/node/src/graphics/imagehelper.js +7 -3
- package/dist/node/src/graphics/imagehelper.js.map +1 -1
- package/dist/node/src/graphics/svg.js +12 -10
- package/dist/node/src/graphics/svg.js.map +1 -1
- package/dist/node/src/index.js +37 -18
- package/dist/node/src/index.js.map +1 -1
- package/dist/node/src/multiVariableText/helper.js +7 -2
- package/dist/node/src/multiVariableText/helper.js.map +1 -1
- package/dist/node/src/multiVariableText/index.js +12 -10
- package/dist/node/src/multiVariableText/index.js.map +1 -1
- package/dist/node/src/multiVariableText/pdfRender.js +10 -6
- package/dist/node/src/multiVariableText/pdfRender.js.map +1 -1
- package/dist/node/src/multiVariableText/propPanel.js +9 -6
- package/dist/node/src/multiVariableText/propPanel.js.map +1 -1
- package/dist/node/src/multiVariableText/types.js +2 -1
- package/dist/node/src/multiVariableText/uiRender.js +17 -13
- package/dist/node/src/multiVariableText/uiRender.js.map +1 -1
- package/dist/node/src/radioGroup/index.js +16 -11
- package/dist/node/src/radioGroup/index.js.map +1 -1
- package/dist/node/src/select/index.js +18 -13
- package/dist/node/src/select/index.js.map +1 -1
- package/dist/node/src/shapes/line.js +12 -10
- package/dist/node/src/shapes/line.js.map +1 -1
- package/dist/node/src/shapes/rectAndEllipse.js +21 -18
- package/dist/node/src/shapes/rectAndEllipse.js.map +1 -1
- package/dist/node/src/tables/cell.js +20 -15
- package/dist/node/src/tables/cell.js.map +1 -1
- package/dist/node/src/tables/classes.js +18 -11
- package/dist/node/src/tables/classes.js.map +1 -1
- package/dist/node/src/tables/dynamicTemplate.js +9 -5
- package/dist/node/src/tables/dynamicTemplate.js.map +1 -1
- package/dist/node/src/tables/helper.js +35 -27
- package/dist/node/src/tables/helper.js.map +1 -1
- package/dist/node/src/tables/index.js +12 -10
- package/dist/node/src/tables/index.js.map +1 -1
- package/dist/node/src/tables/pdfRender.js +16 -9
- package/dist/node/src/tables/pdfRender.js.map +1 -1
- package/dist/node/src/tables/propPanel.js +15 -12
- package/dist/node/src/tables/propPanel.js.map +1 -1
- package/dist/node/src/tables/tableHelper.js +15 -11
- package/dist/node/src/tables/tableHelper.js.map +1 -1
- package/dist/node/src/tables/types.js +2 -1
- package/dist/node/src/tables/uiRender.js +22 -15
- package/dist/node/src/tables/uiRender.js.map +1 -1
- package/dist/node/src/text/constants.js +25 -22
- package/dist/node/src/text/constants.js.map +1 -1
- package/dist/node/src/text/extraFormatter.js +21 -17
- package/dist/node/src/text/extraFormatter.js.map +1 -1
- package/dist/node/src/text/helper.js +85 -48
- package/dist/node/src/text/helper.js.map +1 -1
- package/dist/node/src/text/icons/index.js +14 -11
- package/dist/node/src/text/icons/index.js.map +1 -1
- package/dist/node/src/text/index.js +12 -10
- package/dist/node/src/text/index.js.map +1 -1
- package/dist/node/src/text/pdfRender.js +36 -32
- package/dist/node/src/text/pdfRender.js.map +1 -1
- package/dist/node/src/text/propPanel.js +25 -22
- package/dist/node/src/text/propPanel.js.map +1 -1
- package/dist/node/src/text/types.js +2 -1
- package/dist/node/src/text/uiRender.js +42 -34
- package/dist/node/src/text/uiRender.js.map +1 -1
- package/dist/node/src/utils.js +38 -26
- package/dist/node/src/utils.js.map +1 -1
- package/package.json +1 -2
@@ -1,10 +1,35 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
const fs_1 = require("fs");
|
27
|
+
const path = __importStar(require("path"));
|
28
|
+
const common_1 = require("@pdfme/common");
|
29
|
+
const helper_js_1 = require("../src/text/helper.js");
|
30
|
+
const constants_js_1 = require("../src/text/constants.js");
|
31
|
+
const sansData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/SauceHanSansJP.ttf`));
|
32
|
+
const serifData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/SauceHanSerifJP.ttf`));
|
8
33
|
const getSampleFont = () => ({
|
9
34
|
SauceHanSansJP: { fallback: true, data: sansData },
|
10
35
|
SauceHanSerifJP: { data: serifData },
|
@@ -52,39 +77,39 @@ describe('getSplitPosition test with mocked font width calculations', () => {
|
|
52
77
|
boxWidthInPt: 5,
|
53
78
|
};
|
54
79
|
it('does not split an empty string', () => {
|
55
|
-
expect(getSplittedLines('', mockCalcValues)).toEqual(['']);
|
80
|
+
expect((0, helper_js_1.getSplittedLines)('', mockCalcValues)).toEqual(['']);
|
56
81
|
});
|
57
82
|
it('does not split a short line', () => {
|
58
|
-
expect(getSplittedLines('a', mockCalcValues)).toEqual(['a']);
|
59
|
-
expect(getSplittedLines('aaaa', mockCalcValues)).toEqual(['aaaa']);
|
83
|
+
expect((0, helper_js_1.getSplittedLines)('a', mockCalcValues)).toEqual(['a']);
|
84
|
+
expect((0, helper_js_1.getSplittedLines)('aaaa', mockCalcValues)).toEqual(['aaaa']);
|
60
85
|
});
|
61
86
|
it('splits a line to the nearest previous breakable char', () => {
|
62
|
-
expect(getSplittedLines('aaa bbb', mockCalcValues)).toEqual(['aaa', 'bbb']);
|
63
|
-
expect(getSplittedLines('top-hat', mockCalcValues)).toEqual(['top-', 'hat']);
|
64
|
-
expect(getSplittedLines('top—hat', mockCalcValues)).toEqual(['top—', 'hat']); // em dash
|
65
|
-
expect(getSplittedLines('top–hat', mockCalcValues)).toEqual(['top–', 'hat']); // en dash
|
87
|
+
expect((0, helper_js_1.getSplittedLines)('aaa bbb', mockCalcValues)).toEqual(['aaa', 'bbb']);
|
88
|
+
expect((0, helper_js_1.getSplittedLines)('top-hat', mockCalcValues)).toEqual(['top-', 'hat']);
|
89
|
+
expect((0, helper_js_1.getSplittedLines)('top—hat', mockCalcValues)).toEqual(['top—', 'hat']); // em dash
|
90
|
+
expect((0, helper_js_1.getSplittedLines)('top–hat', mockCalcValues)).toEqual(['top–', 'hat']); // en dash
|
66
91
|
});
|
67
92
|
it('splits a line where the split point is on a breakable char', () => {
|
68
|
-
expect(getSplittedLines('aaaaa bbbbb', mockCalcValues)).toEqual(['aaaaa', 'bbbbb']);
|
69
|
-
expect(getSplittedLines('left-hand', mockCalcValues)).toEqual(['left-', 'hand']);
|
93
|
+
expect((0, helper_js_1.getSplittedLines)('aaaaa bbbbb', mockCalcValues)).toEqual(['aaaaa', 'bbbbb']);
|
94
|
+
expect((0, helper_js_1.getSplittedLines)('left-hand', mockCalcValues)).toEqual(['left-', 'hand']);
|
70
95
|
});
|
71
96
|
it('splits a long line in the middle of a word if too long', () => {
|
72
|
-
expect(getSplittedLines('aaaaaa bbb', mockCalcValues)).toEqual(['aaaaa', 'a bbb']);
|
73
|
-
expect(getSplittedLines('aaaaaa-a b', mockCalcValues)).toEqual(['aaaaa', 'a-a b']);
|
74
|
-
expect(getSplittedLines('aaaaa-aa b', mockCalcValues)).toEqual(['aaaaa', '-aa b']);
|
97
|
+
expect((0, helper_js_1.getSplittedLines)('aaaaaa bbb', mockCalcValues)).toEqual(['aaaaa', 'a bbb']);
|
98
|
+
expect((0, helper_js_1.getSplittedLines)('aaaaaa-a b', mockCalcValues)).toEqual(['aaaaa', 'a-a b']);
|
99
|
+
expect((0, helper_js_1.getSplittedLines)('aaaaa-aa b', mockCalcValues)).toEqual(['aaaaa', '-aa b']);
|
75
100
|
});
|
76
101
|
it('splits a long line without breakable chars at exactly 5 chars', () => {
|
77
|
-
expect(getSplittedLines('abcdef', mockCalcValues)).toEqual(['abcde', 'f']);
|
102
|
+
expect((0, helper_js_1.getSplittedLines)('abcdef', mockCalcValues)).toEqual(['abcde', 'f']);
|
78
103
|
});
|
79
104
|
it('splits a very long line without breakable chars at exactly 5 chars', () => {
|
80
|
-
expect(getSplittedLines('abcdefghijklmn', mockCalcValues)).toEqual(['abcde', 'fghij', 'klmn']);
|
105
|
+
expect((0, helper_js_1.getSplittedLines)('abcdefghijklmn', mockCalcValues)).toEqual(['abcde', 'fghij', 'klmn']);
|
81
106
|
});
|
82
107
|
it('splits a line with lots of words', () => {
|
83
|
-
expect(getSplittedLines('a b c d e', mockCalcValues)).toEqual(['a b c', 'd e']);
|
108
|
+
expect((0, helper_js_1.getSplittedLines)('a b c d e', mockCalcValues)).toEqual(['a b c', 'd e']);
|
84
109
|
});
|
85
110
|
});
|
86
111
|
describe('getSplittedLines test with real font width calculations', () => {
|
87
|
-
const font = getDefaultFont();
|
112
|
+
const font = (0, common_1.getDefaultFont)();
|
88
113
|
const baseCalcValues = {
|
89
114
|
fontSize: 12,
|
90
115
|
characterSpacing: 1,
|
@@ -92,34 +117,34 @@ describe('getSplittedLines test with real font width calculations', () => {
|
|
92
117
|
};
|
93
118
|
it('should not split a line when the text is shorter than the width', async () => {
|
94
119
|
const _cache = new Map();
|
95
|
-
await getFontKitFont(getTextSchema().fontName, font, _cache).then((fontKitFont) => {
|
120
|
+
await (0, helper_js_1.getFontKitFont)(getTextSchema().fontName, font, _cache).then((fontKitFont) => {
|
96
121
|
const fontWidthCalcs = Object.assign({}, baseCalcValues, { font: fontKitFont });
|
97
|
-
const result = getSplittedLines('short', fontWidthCalcs);
|
122
|
+
const result = (0, helper_js_1.getSplittedLines)('short', fontWidthCalcs);
|
98
123
|
expect(result).toEqual(['short']);
|
99
124
|
});
|
100
125
|
});
|
101
126
|
it('should split a line when the text is longer than the width', async () => {
|
102
127
|
const _cache = new Map();
|
103
|
-
await getFontKitFont(getTextSchema().fontName, font, _cache).then((fontKitFont) => {
|
128
|
+
await (0, helper_js_1.getFontKitFont)(getTextSchema().fontName, font, _cache).then((fontKitFont) => {
|
104
129
|
const fontWidthCalcs = Object.assign({}, baseCalcValues, { font: fontKitFont });
|
105
|
-
const result = getSplittedLines('this will wrap', fontWidthCalcs);
|
130
|
+
const result = (0, helper_js_1.getSplittedLines)('this will wrap', fontWidthCalcs);
|
106
131
|
expect(result).toEqual(['this', 'will', 'wrap']);
|
107
132
|
});
|
108
133
|
});
|
109
134
|
it('should split a line in the middle when unspaced text will not fit on a line', async () => {
|
110
135
|
const _cache = new Map();
|
111
|
-
await getFontKitFont(getTextSchema().fontName, font, _cache).then((fontKitFont) => {
|
136
|
+
await (0, helper_js_1.getFontKitFont)(getTextSchema().fontName, font, _cache).then((fontKitFont) => {
|
112
137
|
const fontWidthCalcs = Object.assign({}, baseCalcValues, { font: fontKitFont });
|
113
|
-
const result = getSplittedLines('thiswillbecut', fontWidthCalcs);
|
138
|
+
const result = (0, helper_js_1.getSplittedLines)('thiswillbecut', fontWidthCalcs);
|
114
139
|
expect(result).toEqual(['thiswi', 'llbecu', 't']);
|
115
140
|
});
|
116
141
|
});
|
117
142
|
it('should not split text when it is impossible due to size constraints', async () => {
|
118
143
|
const _cache = new Map();
|
119
|
-
await getFontKitFont(getTextSchema().fontName, font, _cache).then((fontKitFont) => {
|
144
|
+
await (0, helper_js_1.getFontKitFont)(getTextSchema().fontName, font, _cache).then((fontKitFont) => {
|
120
145
|
const fontWidthCalcs = Object.assign({}, baseCalcValues, { font: fontKitFont });
|
121
146
|
fontWidthCalcs.boxWidthInPt = 2;
|
122
|
-
const result = getSplittedLines('thiswillnotbecut', fontWidthCalcs);
|
147
|
+
const result = (0, helper_js_1.getSplittedLines)('thiswillnotbecut', fontWidthCalcs);
|
123
148
|
expect(result).toEqual(['thiswillnotbecut']);
|
124
149
|
});
|
125
150
|
});
|
@@ -127,31 +152,31 @@ describe('getSplittedLines test with real font width calculations', () => {
|
|
127
152
|
describe('calculateDynamicFontSize with Default font', () => {
|
128
153
|
let fontKitFont;
|
129
154
|
beforeAll(async () => {
|
130
|
-
fontKitFont = await getFontKitFont('SauceHanSansJP', getDefaultFont(), new Map());
|
155
|
+
fontKitFont = await (0, helper_js_1.getFontKitFont)('SauceHanSansJP', (0, common_1.getDefaultFont)(), new Map());
|
131
156
|
});
|
132
157
|
it('should return default font size when dynamicFontSizeSetting is not provided', async () => {
|
133
158
|
const textSchema = getTextSchema();
|
134
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value: 'test' });
|
159
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value: 'test' });
|
135
160
|
expect(result).toBe(14);
|
136
161
|
});
|
137
162
|
it('should return default font size when dynamicFontSizeSetting max is less than min', async () => {
|
138
163
|
const textSchema = getTextSchema();
|
139
164
|
textSchema.dynamicFontSize = { min: 11, max: 10, fit: 'vertical' };
|
140
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value: 'test' });
|
165
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value: 'test' });
|
141
166
|
expect(result).toBe(14);
|
142
167
|
});
|
143
168
|
it('should calculate a dynamic font size of vertical fit between min and max', async () => {
|
144
169
|
const textSchema = getTextSchema();
|
145
170
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'vertical' };
|
146
171
|
const value = 'test with a length string\n and a new line';
|
147
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
172
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
148
173
|
expect(result).toBe(19.25);
|
149
174
|
});
|
150
175
|
it('should calculate a dynamic font size of horizontal fit between min and max', async () => {
|
151
176
|
const textSchema = getTextSchema();
|
152
177
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'horizontal' };
|
153
178
|
const value = 'test with a length string\n and a new line';
|
154
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
179
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
155
180
|
expect(result).toBe(11.25);
|
156
181
|
});
|
157
182
|
it('should calculate a dynamic font size between min and max regardless of current font size', async () => {
|
@@ -159,10 +184,10 @@ describe('calculateDynamicFontSize with Default font', () => {
|
|
159
184
|
textSchema.fontSize = 2;
|
160
185
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'vertical' };
|
161
186
|
const value = 'test with a length string\n and a new line';
|
162
|
-
let result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
187
|
+
let result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
163
188
|
expect(result).toBe(19.25);
|
164
189
|
textSchema.fontSize = 40;
|
165
|
-
result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
190
|
+
result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
166
191
|
expect(result).toBe(19.25);
|
167
192
|
});
|
168
193
|
it('should return min font size when content is too big to fit given constraints', async () => {
|
@@ -170,7 +195,7 @@ describe('calculateDynamicFontSize with Default font', () => {
|
|
170
195
|
textSchema.width = 10;
|
171
196
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'vertical' };
|
172
197
|
const value = 'test with a length string\n and a new line';
|
173
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
198
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
174
199
|
expect(result).toBe(10);
|
175
200
|
});
|
176
201
|
it('should return max font size when content is too small to fit given constraints', async () => {
|
@@ -179,7 +204,7 @@ describe('calculateDynamicFontSize with Default font', () => {
|
|
179
204
|
textSchema.height = 200;
|
180
205
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'vertical' };
|
181
206
|
const value = 'test with a length string\n and a new line';
|
182
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
207
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
183
208
|
expect(result).toBe(30);
|
184
209
|
});
|
185
210
|
it('should not reduce font size below 0', async () => {
|
@@ -188,7 +213,7 @@ describe('calculateDynamicFontSize with Default font', () => {
|
|
188
213
|
textSchema.width = 4;
|
189
214
|
textSchema.height = 1;
|
190
215
|
const value = 'a very \nlong \nmulti-line \nstring\nto';
|
191
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
216
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
192
217
|
expect(result).toBeGreaterThan(0);
|
193
218
|
});
|
194
219
|
it('should calculate a dynamic font size when a starting font size is passed that is lower than the eventual', async () => {
|
@@ -196,7 +221,7 @@ describe('calculateDynamicFontSize with Default font', () => {
|
|
196
221
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'vertical' };
|
197
222
|
const value = 'test with a length string\n and a new line';
|
198
223
|
const startingFontSize = 18;
|
199
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value, startingFontSize });
|
224
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value, startingFontSize });
|
200
225
|
expect(result).toBe(19.25);
|
201
226
|
});
|
202
227
|
it('should calculate a dynamic font size when a starting font size is passed that is higher than the eventual', async () => {
|
@@ -204,97 +229,97 @@ describe('calculateDynamicFontSize with Default font', () => {
|
|
204
229
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'horizontal' };
|
205
230
|
const value = 'test with a length string\n and a new line';
|
206
231
|
const startingFontSize = 36;
|
207
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value, startingFontSize });
|
232
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value, startingFontSize });
|
208
233
|
expect(result).toBe(11.25);
|
209
234
|
});
|
210
235
|
it('should calculate a dynamic font size using vertical fit as a default if no fit provided', async () => {
|
211
236
|
const textSchema = getTextSchema();
|
212
237
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'vertical' };
|
213
238
|
const value = 'test with a length string\n and a new line';
|
214
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
239
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
215
240
|
expect(result).toBe(19.25);
|
216
241
|
});
|
217
242
|
});
|
218
243
|
describe('calculateDynamicFontSize with Custom font', () => {
|
219
244
|
let fontKitFont;
|
220
245
|
beforeAll(async () => {
|
221
|
-
fontKitFont = await getFontKitFont('SauceHanSansJP', getSampleFont(), new Map());
|
246
|
+
fontKitFont = await (0, helper_js_1.getFontKitFont)('SauceHanSansJP', getSampleFont(), new Map());
|
222
247
|
});
|
223
248
|
it('should return smaller font size when dynamicFontSizeSetting is provided with horizontal fit', async () => {
|
224
249
|
const textSchema = getTextSchema();
|
225
250
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'horizontal' };
|
226
251
|
const value = 'あいうあいうあい';
|
227
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
252
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
228
253
|
expect(result).toBe(16.75);
|
229
254
|
});
|
230
255
|
it('should return smaller font size when dynamicFontSizeSetting is provided with vertical fit', async () => {
|
231
256
|
const textSchema = getTextSchema();
|
232
257
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'vertical' };
|
233
258
|
const value = 'あいうあいうあい';
|
234
|
-
const result = calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
259
|
+
const result = (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
235
260
|
expect(result).toBe(26);
|
236
261
|
});
|
237
262
|
it('should return min font size when content is too big to fit given constraints', async () => {
|
238
263
|
const textSchema = getTextSchema();
|
239
264
|
textSchema.dynamicFontSize = { min: 20, max: 30, fit: 'vertical' };
|
240
265
|
const value = 'あいうあいうあいうあいうあいうあいうあいうあいうあいう';
|
241
|
-
const result = await calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
266
|
+
const result = await (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
242
267
|
expect(result).toBe(20);
|
243
268
|
});
|
244
269
|
it('should return max font size when content is too small to fit given constraints', async () => {
|
245
270
|
const textSchema = getTextSchema();
|
246
271
|
textSchema.dynamicFontSize = { min: 10, max: 30, fit: 'vertical' };
|
247
272
|
const value = 'あ';
|
248
|
-
const result = await calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
273
|
+
const result = await (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
249
274
|
expect(result).toBe(30);
|
250
275
|
});
|
251
276
|
it('should return min font size when content is multi-line with too many lines for the container', async () => {
|
252
277
|
const textSchema = getTextSchema();
|
253
278
|
textSchema.dynamicFontSize = { min: 5, max: 20, fit: 'vertical' };
|
254
279
|
const value = 'あ\nいう\nあ\nいう\nあ\nいう\nあ\nいう\nあ\nいう\nあ\nいう';
|
255
|
-
const result = await calculateDynamicFontSize({ textSchema, fontKitFont, value });
|
280
|
+
const result = await (0, helper_js_1.calculateDynamicFontSize)({ textSchema, fontKitFont, value });
|
256
281
|
expect(result).toBe(5);
|
257
282
|
});
|
258
283
|
});
|
259
284
|
describe('getFontDescentInPt test', () => {
|
260
285
|
test('it gets a descent size relative to the font size', () => {
|
261
|
-
expect(getFontDescentInPt({ descent: -400, unitsPerEm: 1000 }, 12)).toBe(-4.800000000000001);
|
262
|
-
expect(getFontDescentInPt({ descent: 54, unitsPerEm: 1000 }, 20)).toBe(1.08);
|
263
|
-
expect(getFontDescentInPt({ descent: -512, unitsPerEm: 2048 }, 54)).toBe(-13.5);
|
286
|
+
expect((0, helper_js_1.getFontDescentInPt)({ descent: -400, unitsPerEm: 1000 }, 12)).toBe(-4.800000000000001);
|
287
|
+
expect((0, helper_js_1.getFontDescentInPt)({ descent: 54, unitsPerEm: 1000 }, 20)).toBe(1.08);
|
288
|
+
expect((0, helper_js_1.getFontDescentInPt)({ descent: -512, unitsPerEm: 2048 }, 54)).toBe(-13.5);
|
264
289
|
});
|
265
290
|
});
|
266
291
|
describe('getBrowserVerticalFontAdjustments test', () => {
|
267
292
|
// Font with a base line-height of 1.349
|
268
293
|
const font = { ascent: 1037, descent: -312, unitsPerEm: 1000 };
|
269
294
|
test('it gets a top adjustment when vertically aligning top', () => {
|
270
|
-
expect(getBrowserVerticalFontAdjustments(font, 12, 1.0, 'top')).toEqual({
|
295
|
+
expect((0, helper_js_1.getBrowserVerticalFontAdjustments)(font, 12, 1.0, 'top')).toEqual({
|
271
296
|
topAdj: 2.791301999999999,
|
272
297
|
bottomAdj: 0,
|
273
298
|
});
|
274
|
-
expect(getBrowserVerticalFontAdjustments(font, 36, 2.0, 'top')).toEqual({
|
299
|
+
expect((0, helper_js_1.getBrowserVerticalFontAdjustments)(font, 36, 2.0, 'top')).toEqual({
|
275
300
|
topAdj: 8.373906,
|
276
301
|
bottomAdj: 0,
|
277
302
|
});
|
278
303
|
});
|
279
304
|
test('it gets a bottom adjustment when vertically aligning middle or bottom', () => {
|
280
|
-
expect(getBrowserVerticalFontAdjustments(font, 12, 1.0, 'bottom')).toEqual({
|
305
|
+
expect((0, helper_js_1.getBrowserVerticalFontAdjustments)(font, 12, 1.0, 'bottom')).toEqual({
|
281
306
|
topAdj: 0,
|
282
307
|
bottomAdj: 2.791302,
|
283
308
|
});
|
284
|
-
expect(getBrowserVerticalFontAdjustments(font, 12, 1.15, 'middle')).toEqual({
|
309
|
+
expect((0, helper_js_1.getBrowserVerticalFontAdjustments)(font, 12, 1.15, 'middle')).toEqual({
|
285
310
|
topAdj: 0,
|
286
311
|
bottomAdj: 1.5916020000000004,
|
287
312
|
});
|
288
313
|
});
|
289
314
|
test('it does not get a bottom adjustment if the line height exceeds that of the font', () => {
|
290
|
-
expect(getBrowserVerticalFontAdjustments(font, 12, 1.35, 'bottom')).toEqual({
|
315
|
+
expect((0, helper_js_1.getBrowserVerticalFontAdjustments)(font, 12, 1.35, 'bottom')).toEqual({
|
291
316
|
topAdj: 0,
|
292
317
|
bottomAdj: 0,
|
293
318
|
});
|
294
319
|
});
|
295
320
|
test('it does not get a bottom adjustment if the font base line-height is 1.0 or less', () => {
|
296
321
|
const thisFont = { ascent: 900, descent: -50, unitsPerEm: 1000 };
|
297
|
-
expect(getBrowserVerticalFontAdjustments(thisFont, 20, 1.0, 'bottom')).toEqual({
|
322
|
+
expect((0, helper_js_1.getBrowserVerticalFontAdjustments)(thisFont, 20, 1.0, 'bottom')).toEqual({
|
298
323
|
topAdj: 0,
|
299
324
|
bottomAdj: 0,
|
300
325
|
});
|
@@ -302,59 +327,59 @@ describe('getBrowserVerticalFontAdjustments test', () => {
|
|
302
327
|
});
|
303
328
|
describe('filterStartJP', () => {
|
304
329
|
test('空の配列を渡すと空の配列を返す', () => {
|
305
|
-
expect(filterStartJP([])).toEqual([]);
|
330
|
+
expect((0, helper_js_1.filterStartJP)([])).toEqual([]);
|
306
331
|
});
|
307
332
|
test('禁則文字を含まない行はそのまま返す', () => {
|
308
333
|
const input = ['これは', '普通の', '文章です。'];
|
309
|
-
expect(filterStartJP(input)).toEqual(input);
|
334
|
+
expect((0, helper_js_1.filterStartJP)(input)).toEqual(input);
|
310
335
|
});
|
311
336
|
test('行頭の禁則文字を前の行の末尾に移動する', () => {
|
312
337
|
const input = ['これは', '。文章', 'です'];
|
313
338
|
const expected = ['これは。', '文章', 'です'];
|
314
|
-
expect(filterStartJP(input)).toEqual(expected);
|
339
|
+
expect((0, helper_js_1.filterStartJP)(input)).toEqual(expected);
|
315
340
|
});
|
316
341
|
test('複数の禁則文字を正しく処理する', () => {
|
317
342
|
const input = ['これは', '。とても', '、長い', '」文章', 'です'];
|
318
343
|
const expected = ['これは。', 'とても、', '長い」', '文章', 'です'];
|
319
|
-
expect(filterStartJP(input)).toEqual(expected);
|
344
|
+
expect((0, helper_js_1.filterStartJP)(input)).toEqual(expected);
|
320
345
|
});
|
321
346
|
test('空の行を保持する', () => {
|
322
347
|
const input = ['これは', '', '。文章', 'です'];
|
323
348
|
const expected = ['これは。', '', '文章', 'です'];
|
324
|
-
expect(filterStartJP(input)).toEqual(expected);
|
349
|
+
expect((0, helper_js_1.filterStartJP)(input)).toEqual(expected);
|
325
350
|
});
|
326
351
|
test('1文字の行(禁則文字のみ)はそのまま保持する', () => {
|
327
352
|
const input = ['これは', '。', '文章', 'です'];
|
328
353
|
// const expected = ['これは。', '文章', 'です'];
|
329
354
|
const expected = ['これは', '。', '文章', 'です'];
|
330
|
-
expect(filterStartJP(input)).toEqual(expected);
|
355
|
+
expect((0, helper_js_1.filterStartJP)(input)).toEqual(expected);
|
331
356
|
});
|
332
357
|
test('すべての禁則文字を正しく処理する', () => {
|
333
|
-
const input = LINE_START_FORBIDDEN_CHARS.map((char) => ['この', char + '文字']).flat();
|
334
|
-
const expected = LINE_START_FORBIDDEN_CHARS.map((char) => [
|
358
|
+
const input = constants_js_1.LINE_START_FORBIDDEN_CHARS.map((char) => ['この', char + '文字']).flat();
|
359
|
+
const expected = constants_js_1.LINE_START_FORBIDDEN_CHARS.map((char) => [
|
335
360
|
'この' + char,
|
336
361
|
'文字',
|
337
362
|
]).flat();
|
338
|
-
expect(filterStartJP(input)).toEqual(expected);
|
363
|
+
expect((0, helper_js_1.filterStartJP)(input)).toEqual(expected);
|
339
364
|
});
|
340
365
|
});
|
341
366
|
describe('filterEndJP', () => {
|
342
367
|
test('空の配列を渡すと空の配列を返す', () => {
|
343
|
-
expect(filterEndJP([])).toEqual([]);
|
368
|
+
expect((0, helper_js_1.filterEndJP)([])).toEqual([]);
|
344
369
|
});
|
345
370
|
test('禁則文字を含まない行はそのまま返す', () => {
|
346
371
|
const input = ['これは', '普通の', '文章です。'];
|
347
|
-
expect(filterEndJP(input)).toEqual(input);
|
372
|
+
expect((0, helper_js_1.filterEndJP)(input)).toEqual(input);
|
348
373
|
});
|
349
374
|
test('行末の禁則文字を次の行の先頭に移動する', () => {
|
350
375
|
const input = ['これは「', '文章', 'です。'];
|
351
376
|
const expected = ['これは', '「文章', 'です。'];
|
352
|
-
expect(filterEndJP(input)).toEqual(expected);
|
377
|
+
expect((0, helper_js_1.filterEndJP)(input)).toEqual(expected);
|
353
378
|
});
|
354
379
|
test('複数の禁則文字を正しく処理する', () => {
|
355
380
|
const input = ['これは「', '長い『', '文章(', 'です。'];
|
356
381
|
const expected = ['これは', '「長い', '『文章', '(です。'];
|
357
|
-
expect(filterEndJP(input)).toEqual(expected);
|
382
|
+
expect((0, helper_js_1.filterEndJP)(input)).toEqual(expected);
|
358
383
|
});
|
359
384
|
// Cant understand purpose of this test...
|
360
385
|
// test('空の行を保持する', () => {
|
@@ -365,20 +390,20 @@ describe('filterEndJP', () => {
|
|
365
390
|
test('1文字の行(禁則文字のみ)はそのまま保持する', () => {
|
366
391
|
const input = ['これは', '「', '文章', 'です。'];
|
367
392
|
const expected = ['これは', '「', '文章', 'です。'];
|
368
|
-
expect(filterEndJP(input)).toEqual(expected);
|
393
|
+
expect((0, helper_js_1.filterEndJP)(input)).toEqual(expected);
|
369
394
|
});
|
370
395
|
test('すべての禁則文字を正しく処理する', () => {
|
371
|
-
const input = LINE_END_FORBIDDEN_CHARS.map((char) => ['これは' + char, '文章']).flat();
|
372
|
-
const expected = LINE_END_FORBIDDEN_CHARS.map((char) => [
|
396
|
+
const input = constants_js_1.LINE_END_FORBIDDEN_CHARS.map((char) => ['これは' + char, '文章']).flat();
|
397
|
+
const expected = constants_js_1.LINE_END_FORBIDDEN_CHARS.map((char) => [
|
373
398
|
'これは',
|
374
399
|
char + '文章',
|
375
400
|
]).flat();
|
376
|
-
expect(filterEndJP(input)).toEqual(expected);
|
401
|
+
expect((0, helper_js_1.filterEndJP)(input)).toEqual(expected);
|
377
402
|
});
|
378
403
|
test('最後の行の禁則文字は移動しない', () => {
|
379
404
|
const input = ['これは「', '文章「', 'です「'];
|
380
405
|
const expected = ['これは', '「文章', '「です「'];
|
381
|
-
expect(filterEndJP(input)).toEqual(expected);
|
406
|
+
expect((0, helper_js_1.filterEndJP)(input)).toEqual(expected);
|
382
407
|
});
|
383
408
|
});
|
384
409
|
//# sourceMappingURL=text.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"text.test.js","sourceRoot":"","sources":["../../../__tests__/text.test.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"text.test.js","sourceRoot":"","sources":["../../../__tests__/text.test.ts"],"names":[],"mappings":"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"}
|