@pdfme/schemas 5.3.4 → 5.3.5-dev.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/dist/cjs/__tests__/text.test.js +82 -0
 - package/dist/cjs/__tests__/text.test.js.map +1 -1
 - package/dist/cjs/src/tables/propPanel.js +1 -1
 - package/dist/cjs/src/text/constants.js +75 -1
 - package/dist/cjs/src/text/constants.js.map +1 -1
 - package/dist/cjs/src/text/extraFormatter.js +2 -1
 - package/dist/cjs/src/text/extraFormatter.js.map +1 -1
 - package/dist/cjs/src/text/helper.js +182 -5
 - package/dist/cjs/src/text/helper.js.map +1 -1
 - package/dist/cjs/src/text/icons/index.js +2 -1
 - package/dist/cjs/src/text/icons/index.js.map +1 -1
 - package/dist/cjs/src/text/pdfRender.js +17 -3
 - package/dist/cjs/src/text/pdfRender.js.map +1 -1
 - package/dist/cjs/src/text/propPanel.js +3 -3
 - package/dist/esm/__tests__/text.test.js +83 -1
 - package/dist/esm/__tests__/text.test.js.map +1 -1
 - package/dist/esm/src/tables/propPanel.js +1 -1
 - package/dist/esm/src/text/constants.js +74 -0
 - package/dist/esm/src/text/constants.js.map +1 -1
 - package/dist/esm/src/text/extraFormatter.js +4 -3
 - package/dist/esm/src/text/extraFormatter.js.map +1 -1
 - package/dist/esm/src/text/helper.js +180 -5
 - package/dist/esm/src/text/helper.js.map +1 -1
 - package/dist/esm/src/text/icons/index.js +2 -1
 - package/dist/esm/src/text/icons/index.js.map +1 -1
 - package/dist/esm/src/text/pdfRender.js +17 -3
 - package/dist/esm/src/text/pdfRender.js.map +1 -1
 - package/dist/esm/src/text/propPanel.js +3 -3
 - package/dist/types/src/tables/types.d.ts +1 -1
 - package/dist/types/src/text/constants.d.ts +3 -0
 - package/dist/types/src/text/helper.d.ts +2 -0
 - package/dist/types/src/text/icons/index.d.ts +1 -0
 - package/dist/types/src/text/types.d.ts +1 -1
 - package/package.json +1 -1
 - package/src/tables/propPanel.ts +1 -1
 - package/src/tables/types.ts +1 -1
 - package/src/text/constants.ts +81 -0
 - package/src/text/extraFormatter.ts +4 -1
 - package/src/text/helper.ts +181 -6
 - package/src/text/icons/index.ts +3 -0
 - package/src/text/pdfRender.ts +21 -6
 - package/src/text/propPanel.ts +3 -3
 - package/src/text/types.ts +1 -1
 
| 
         @@ -56,7 +56,6 @@ const pdfRender = async (arg) => { 
     | 
|
| 
       56 
56 
     | 
    
         
             
                    const color = (0, utils_js_1.hex2PrintingColor)(schema.backgroundColor, colorType);
         
     | 
| 
       57 
57 
     | 
    
         
             
                    page.drawRectangle({ x, y, width, height, rotate, color });
         
     | 
| 
       58 
58 
     | 
    
         
             
                }
         
     | 
| 
       59 
     | 
    
         
            -
                page.pushOperators(pdfLib.setCharacterSpacing(characterSpacing ?? constants_js_1.DEFAULT_CHARACTER_SPACING));
         
     | 
| 
       60 
59 
     | 
    
         
             
                const firstLineTextHeight = (0, helper_js_1.heightOfFontAtSize)(fontKitFont, fontSize);
         
     | 
| 
       61 
60 
     | 
    
         
             
                const descent = (0, helper_js_1.getFontDescentInPt)(fontKitFont, fontSize);
         
     | 
| 
       62 
61 
     | 
    
         
             
                const halfLineHeightAdjustment = lineHeight === 0 ? 0 : ((lineHeight - 1) * fontSize) / 2;
         
     | 
| 
         @@ -83,10 +82,17 @@ const pdfRender = async (arg) => { 
     | 
|
| 
       83 
82 
     | 
    
         
             
                    }
         
     | 
| 
       84 
83 
     | 
    
         
             
                }
         
     | 
| 
       85 
84 
     | 
    
         
             
                const pivotPoint = { x: x + width / 2, y: pageHeight - (0, common_1.mm2pt)(schema.position.y) - height / 2 };
         
     | 
| 
      
 85 
     | 
    
         
            +
                const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
         
     | 
| 
       86 
86 
     | 
    
         
             
                lines.forEach((line, rowIndex) => {
         
     | 
| 
       87 
     | 
    
         
            -
                    const  
     | 
| 
      
 87 
     | 
    
         
            +
                    const trimmed = line.replace('\n', '');
         
     | 
| 
      
 88 
     | 
    
         
            +
                    const textWidth = (0, helper_js_1.widthOfTextAtSize)(trimmed, fontKitFont, fontSize, characterSpacing);
         
     | 
| 
       88 
89 
     | 
    
         
             
                    const textHeight = (0, helper_js_1.heightOfFontAtSize)(fontKitFont, fontSize);
         
     | 
| 
       89 
90 
     | 
    
         
             
                    const rowYOffset = lineHeight * fontSize * rowIndex;
         
     | 
| 
      
 91 
     | 
    
         
            +
                    // Adobe Acrobat Reader shows an error if `drawText` is called with an empty text
         
     | 
| 
      
 92 
     | 
    
         
            +
                    if (line === '') {
         
     | 
| 
      
 93 
     | 
    
         
            +
                        // return; // this also works
         
     | 
| 
      
 94 
     | 
    
         
            +
                        line = '\r\n';
         
     | 
| 
      
 95 
     | 
    
         
            +
                    }
         
     | 
| 
       90 
96 
     | 
    
         
             
                    let xLine = x;
         
     | 
| 
       91 
97 
     | 
    
         
             
                    if (alignment === 'center') {
         
     | 
| 
       92 
98 
     | 
    
         
             
                        xLine += (width - textWidth) / 2;
         
     | 
| 
         @@ -126,7 +132,15 @@ const pdfRender = async (arg) => { 
     | 
|
| 
       126 
132 
     | 
    
         
             
                        xLine = rotatedPoint.x;
         
     | 
| 
       127 
133 
     | 
    
         
             
                        yLine = rotatedPoint.y;
         
     | 
| 
       128 
134 
     | 
    
         
             
                    }
         
     | 
| 
       129 
     | 
    
         
            -
                     
     | 
| 
      
 135 
     | 
    
         
            +
                    let spacing = characterSpacing;
         
     | 
| 
      
 136 
     | 
    
         
            +
                    if (alignment === 'justify' && line.slice(-1) !== '\n') {
         
     | 
| 
      
 137 
     | 
    
         
            +
                        // if alignment is `justify` but the end of line is not newline, then adjust the spacing
         
     | 
| 
      
 138 
     | 
    
         
            +
                        const iterator = segmenter.segment(trimmed)[Symbol.iterator]();
         
     | 
| 
      
 139 
     | 
    
         
            +
                        const len = Array.from(iterator).length;
         
     | 
| 
      
 140 
     | 
    
         
            +
                        spacing += (width - textWidth) / len;
         
     | 
| 
      
 141 
     | 
    
         
            +
                    }
         
     | 
| 
      
 142 
     | 
    
         
            +
                    page.pushOperators(pdfLib.setCharacterSpacing(spacing));
         
     | 
| 
      
 143 
     | 
    
         
            +
                    page.drawText(trimmed, {
         
     | 
| 
       130 
144 
     | 
    
         
             
                        x: xLine,
         
     | 
| 
       131 
145 
     | 
    
         
             
                        y: yLine,
         
     | 
| 
       132 
146 
     | 
    
         
             
                        rotate,
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"pdfRender.js","sourceRoot":"","sources":["../../../../src/text/pdfRender.ts"],"names":[],"mappings":"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 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"pdfRender.js","sourceRoot":"","sources":["../../../../src/text/pdfRender.ts"],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -66,7 +66,7 @@ exports.propPanel = { 
     | 
|
| 
       66 
66 
     | 
    
         
             
                            type: 'number',
         
     | 
| 
       67 
67 
     | 
    
         
             
                            widget: 'inputNumber',
         
     | 
| 
       68 
68 
     | 
    
         
             
                            props: { step: 0.1, min: 0 },
         
     | 
| 
       69 
     | 
    
         
            -
                            span:  
     | 
| 
      
 69 
     | 
    
         
            +
                            span: 8,
         
     | 
| 
       70 
70 
     | 
    
         
             
                        },
         
     | 
| 
       71 
71 
     | 
    
         
             
                        useDynamicFontSize: { type: 'boolean', widget: 'UseDynamicFontSize', bind: false, span: 16 },
         
     | 
| 
       72 
72 
     | 
    
         
             
                        dynamicFontSize: {
         
     | 
| 
         @@ -107,7 +107,7 @@ exports.propPanel = { 
     | 
|
| 
       107 
107 
     | 
    
         
             
                            type: 'string',
         
     | 
| 
       108 
108 
     | 
    
         
             
                            widget: 'color',
         
     | 
| 
       109 
109 
     | 
    
         
             
                            props: {
         
     | 
| 
       110 
     | 
    
         
            -
                                disabledAlpha: true
         
     | 
| 
      
 110 
     | 
    
         
            +
                                disabledAlpha: true,
         
     | 
| 
       111 
111 
     | 
    
         
             
                            },
         
     | 
| 
       112 
112 
     | 
    
         
             
                            rules: [
         
     | 
| 
       113 
113 
     | 
    
         
             
                                {
         
     | 
| 
         @@ -121,7 +121,7 @@ exports.propPanel = { 
     | 
|
| 
       121 
121 
     | 
    
         
             
                            type: 'string',
         
     | 
| 
       122 
122 
     | 
    
         
             
                            widget: 'color',
         
     | 
| 
       123 
123 
     | 
    
         
             
                            props: {
         
     | 
| 
       124 
     | 
    
         
            -
                                disabledAlpha: true
         
     | 
| 
      
 124 
     | 
    
         
            +
                                disabledAlpha: true,
         
     | 
| 
       125 
125 
     | 
    
         
             
                            },
         
     | 
| 
       126 
126 
     | 
    
         
             
                            rules: [
         
     | 
| 
       127 
127 
     | 
    
         
             
                                {
         
     | 
| 
         @@ -1,7 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import { readFileSync } from 'fs';
         
     | 
| 
       2 
2 
     | 
    
         
             
            import * as path from 'path';
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { getDefaultFont } from '@pdfme/common';
         
     | 
| 
       4 
     | 
    
         
            -
            import { calculateDynamicFontSize, getBrowserVerticalFontAdjustments, getFontDescentInPt, getFontKitFont, getSplittedLines, } from '../src/text/helper';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { calculateDynamicFontSize, getBrowserVerticalFontAdjustments, getFontDescentInPt, getFontKitFont, getSplittedLines, filterStartJP, filterEndJP, } from '../src/text/helper';
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { LINE_START_FORBIDDEN_CHARS, LINE_END_FORBIDDEN_CHARS } from '../src/text/constants';
         
     | 
| 
       5 
6 
     | 
    
         
             
            const sansData = readFileSync(path.join(__dirname, `/assets/fonts/SauceHanSansJP.ttf`));
         
     | 
| 
       6 
7 
     | 
    
         
             
            const serifData = readFileSync(path.join(__dirname, `/assets/fonts/SauceHanSerifJP.ttf`));
         
     | 
| 
       7 
8 
     | 
    
         
             
            const getSampleFont = () => ({
         
     | 
| 
         @@ -299,4 +300,85 @@ describe('getBrowserVerticalFontAdjustments test', () => { 
     | 
|
| 
       299 
300 
     | 
    
         
             
                    });
         
     | 
| 
       300 
301 
     | 
    
         
             
                });
         
     | 
| 
       301 
302 
     | 
    
         
             
            });
         
     | 
| 
      
 303 
     | 
    
         
            +
            describe('filterStartJP', () => {
         
     | 
| 
      
 304 
     | 
    
         
            +
                test('空の配列を渡すと空の配列を返す', () => {
         
     | 
| 
      
 305 
     | 
    
         
            +
                    expect(filterStartJP([])).toEqual([]);
         
     | 
| 
      
 306 
     | 
    
         
            +
                });
         
     | 
| 
      
 307 
     | 
    
         
            +
                test('禁則文字を含まない行はそのまま返す', () => {
         
     | 
| 
      
 308 
     | 
    
         
            +
                    const input = ['これは', '普通の', '文章です。'];
         
     | 
| 
      
 309 
     | 
    
         
            +
                    expect(filterStartJP(input)).toEqual(input);
         
     | 
| 
      
 310 
     | 
    
         
            +
                });
         
     | 
| 
      
 311 
     | 
    
         
            +
                test('行頭の禁則文字を前の行の末尾に移動する', () => {
         
     | 
| 
      
 312 
     | 
    
         
            +
                    const input = ['これは', '。文章', 'です'];
         
     | 
| 
      
 313 
     | 
    
         
            +
                    const expected = ['これは。', '文章', 'です'];
         
     | 
| 
      
 314 
     | 
    
         
            +
                    expect(filterStartJP(input)).toEqual(expected);
         
     | 
| 
      
 315 
     | 
    
         
            +
                });
         
     | 
| 
      
 316 
     | 
    
         
            +
                test('複数の禁則文字を正しく処理する', () => {
         
     | 
| 
      
 317 
     | 
    
         
            +
                    const input = ['これは', '。とても', '、長い', '」文章', 'です'];
         
     | 
| 
      
 318 
     | 
    
         
            +
                    const expected = ['これは。', 'とても、', '長い」', '文章', 'です'];
         
     | 
| 
      
 319 
     | 
    
         
            +
                    expect(filterStartJP(input)).toEqual(expected);
         
     | 
| 
      
 320 
     | 
    
         
            +
                });
         
     | 
| 
      
 321 
     | 
    
         
            +
                test('空の行を保持する', () => {
         
     | 
| 
      
 322 
     | 
    
         
            +
                    const input = ['これは', '', '。文章', 'です'];
         
     | 
| 
      
 323 
     | 
    
         
            +
                    const expected = ['これは。', '', '文章', 'です'];
         
     | 
| 
      
 324 
     | 
    
         
            +
                    expect(filterStartJP(input)).toEqual(expected);
         
     | 
| 
      
 325 
     | 
    
         
            +
                });
         
     | 
| 
      
 326 
     | 
    
         
            +
                test('1文字の行(禁則文字のみ)はそのまま保持する', () => {
         
     | 
| 
      
 327 
     | 
    
         
            +
                    const input = ['これは', '。', '文章', 'です'];
         
     | 
| 
      
 328 
     | 
    
         
            +
                    // const expected = ['これは。', '文章', 'です'];
         
     | 
| 
      
 329 
     | 
    
         
            +
                    const expected = ['これは', '。', '文章', 'です'];
         
     | 
| 
      
 330 
     | 
    
         
            +
                    expect(filterStartJP(input)).toEqual(expected);
         
     | 
| 
      
 331 
     | 
    
         
            +
                });
         
     | 
| 
      
 332 
     | 
    
         
            +
                test('すべての禁則文字を正しく処理する', () => {
         
     | 
| 
      
 333 
     | 
    
         
            +
                    const input = LINE_START_FORBIDDEN_CHARS.map((char) => ['この', char + '文字']).flat();
         
     | 
| 
      
 334 
     | 
    
         
            +
                    const expected = LINE_START_FORBIDDEN_CHARS.map((char) => [
         
     | 
| 
      
 335 
     | 
    
         
            +
                        'この' + char,
         
     | 
| 
      
 336 
     | 
    
         
            +
                        '文字',
         
     | 
| 
      
 337 
     | 
    
         
            +
                    ]).flat();
         
     | 
| 
      
 338 
     | 
    
         
            +
                    expect(filterStartJP(input)).toEqual(expected);
         
     | 
| 
      
 339 
     | 
    
         
            +
                });
         
     | 
| 
      
 340 
     | 
    
         
            +
            });
         
     | 
| 
      
 341 
     | 
    
         
            +
            describe('filterEndJP', () => {
         
     | 
| 
      
 342 
     | 
    
         
            +
                test('空の配列を渡すと空の配列を返す', () => {
         
     | 
| 
      
 343 
     | 
    
         
            +
                    expect(filterEndJP([])).toEqual([]);
         
     | 
| 
      
 344 
     | 
    
         
            +
                });
         
     | 
| 
      
 345 
     | 
    
         
            +
                test('禁則文字を含まない行はそのまま返す', () => {
         
     | 
| 
      
 346 
     | 
    
         
            +
                    const input = ['これは', '普通の', '文章です。'];
         
     | 
| 
      
 347 
     | 
    
         
            +
                    expect(filterEndJP(input)).toEqual(input);
         
     | 
| 
      
 348 
     | 
    
         
            +
                });
         
     | 
| 
      
 349 
     | 
    
         
            +
                test('行末の禁則文字を次の行の先頭に移動する', () => {
         
     | 
| 
      
 350 
     | 
    
         
            +
                    const input = ['これは「', '文章', 'です。'];
         
     | 
| 
      
 351 
     | 
    
         
            +
                    const expected = ['これは', '「文章', 'です。'];
         
     | 
| 
      
 352 
     | 
    
         
            +
                    expect(filterEndJP(input)).toEqual(expected);
         
     | 
| 
      
 353 
     | 
    
         
            +
                });
         
     | 
| 
      
 354 
     | 
    
         
            +
                test('複数の禁則文字を正しく処理する', () => {
         
     | 
| 
      
 355 
     | 
    
         
            +
                    const input = ['これは「', '長い『', '文章(', 'です。'];
         
     | 
| 
      
 356 
     | 
    
         
            +
                    const expected = ['これは', '「長い', '『文章', '(です。'];
         
     | 
| 
      
 357 
     | 
    
         
            +
                    expect(filterEndJP(input)).toEqual(expected);
         
     | 
| 
      
 358 
     | 
    
         
            +
                });
         
     | 
| 
      
 359 
     | 
    
         
            +
                // Cant understand purpose of this test...
         
     | 
| 
      
 360 
     | 
    
         
            +
                // test('空の行を保持する', () => {
         
     | 
| 
      
 361 
     | 
    
         
            +
                //   const input = ['これは「', '', '文章', 'です。'];
         
     | 
| 
      
 362 
     | 
    
         
            +
                //   const expected = ['これは', '「', '', '文章', 'です。'];
         
     | 
| 
      
 363 
     | 
    
         
            +
                //   expect(filterEndJP(input)).toEqual(expected);
         
     | 
| 
      
 364 
     | 
    
         
            +
                // });
         
     | 
| 
      
 365 
     | 
    
         
            +
                test('1文字の行(禁則文字のみ)はそのまま保持する', () => {
         
     | 
| 
      
 366 
     | 
    
         
            +
                    const input = ['これは', '「', '文章', 'です。'];
         
     | 
| 
      
 367 
     | 
    
         
            +
                    const expected = ['これは', '「', '文章', 'です。'];
         
     | 
| 
      
 368 
     | 
    
         
            +
                    expect(filterEndJP(input)).toEqual(expected);
         
     | 
| 
      
 369 
     | 
    
         
            +
                });
         
     | 
| 
      
 370 
     | 
    
         
            +
                test('すべての禁則文字を正しく処理する', () => {
         
     | 
| 
      
 371 
     | 
    
         
            +
                    const input = LINE_END_FORBIDDEN_CHARS.map((char) => ['これは' + char, '文章']).flat();
         
     | 
| 
      
 372 
     | 
    
         
            +
                    const expected = LINE_END_FORBIDDEN_CHARS.map((char) => [
         
     | 
| 
      
 373 
     | 
    
         
            +
                        'これは',
         
     | 
| 
      
 374 
     | 
    
         
            +
                        char + '文章',
         
     | 
| 
      
 375 
     | 
    
         
            +
                    ]).flat();
         
     | 
| 
      
 376 
     | 
    
         
            +
                    expect(filterEndJP(input)).toEqual(expected);
         
     | 
| 
      
 377 
     | 
    
         
            +
                });
         
     | 
| 
      
 378 
     | 
    
         
            +
                test('最後の行の禁則文字は移動しない', () => {
         
     | 
| 
      
 379 
     | 
    
         
            +
                    const input = ['これは「', '文章「', 'です「'];
         
     | 
| 
      
 380 
     | 
    
         
            +
                    const expected = ['これは', '「文章', '「です「'];
         
     | 
| 
      
 381 
     | 
    
         
            +
                    expect(filterEndJP(input)).toEqual(expected);
         
     | 
| 
      
 382 
     | 
    
         
            +
                });
         
     | 
| 
      
 383 
     | 
    
         
            +
            });
         
     | 
| 
       302 
384 
     | 
    
         
             
            //# 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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"}
         
     | 
| 
         @@ -2,6 +2,7 @@ export const DEFAULT_FONT_SIZE = 13; 
     | 
|
| 
       2 
2 
     | 
    
         
             
            export const ALIGN_LEFT = 'left';
         
     | 
| 
       3 
3 
     | 
    
         
             
            export const ALIGN_CENTER = 'center';
         
     | 
| 
       4 
4 
     | 
    
         
             
            export const ALIGN_RIGHT = 'right';
         
     | 
| 
      
 5 
     | 
    
         
            +
            export const ALIGN_JUSTIFY = 'justify';
         
     | 
| 
       5 
6 
     | 
    
         
             
            export const DEFAULT_ALIGNMENT = ALIGN_LEFT;
         
     | 
| 
       6 
7 
     | 
    
         
             
            export const VERTICAL_ALIGN_TOP = 'top';
         
     | 
| 
       7 
8 
     | 
    
         
             
            export const VERTICAL_ALIGN_MIDDLE = 'middle';
         
     | 
| 
         @@ -17,4 +18,77 @@ export const DEFAULT_DYNAMIC_FIT = DYNAMIC_FIT_VERTICAL; 
     | 
|
| 
       17 
18 
     | 
    
         
             
            export const DEFAULT_DYNAMIC_MIN_FONT_SIZE = 4;
         
     | 
| 
       18 
19 
     | 
    
         
             
            export const DEFAULT_DYNAMIC_MAX_FONT_SIZE = 72;
         
     | 
| 
       19 
20 
     | 
    
         
             
            export const FONT_SIZE_ADJUSTMENT = 0.25;
         
     | 
| 
      
 21 
     | 
    
         
            +
            export const LINE_START_FORBIDDEN_CHARS = [
         
     | 
| 
      
 22 
     | 
    
         
            +
                // 句読点
         
     | 
| 
      
 23 
     | 
    
         
            +
                '、',
         
     | 
| 
      
 24 
     | 
    
         
            +
                '。',
         
     | 
| 
      
 25 
     | 
    
         
            +
                ',',
         
     | 
| 
      
 26 
     | 
    
         
            +
                '.',
         
     | 
| 
      
 27 
     | 
    
         
            +
                // 閉じカッコ類
         
     | 
| 
      
 28 
     | 
    
         
            +
                '」',
         
     | 
| 
      
 29 
     | 
    
         
            +
                '』',
         
     | 
| 
      
 30 
     | 
    
         
            +
                ')',
         
     | 
| 
      
 31 
     | 
    
         
            +
                '}',
         
     | 
| 
      
 32 
     | 
    
         
            +
                '】',
         
     | 
| 
      
 33 
     | 
    
         
            +
                '>',
         
     | 
| 
      
 34 
     | 
    
         
            +
                '≫',
         
     | 
| 
      
 35 
     | 
    
         
            +
                ']',
         
     | 
| 
      
 36 
     | 
    
         
            +
                // 記号
         
     | 
| 
      
 37 
     | 
    
         
            +
                '・',
         
     | 
| 
      
 38 
     | 
    
         
            +
                'ー',
         
     | 
| 
      
 39 
     | 
    
         
            +
                '―',
         
     | 
| 
      
 40 
     | 
    
         
            +
                '-',
         
     | 
| 
      
 41 
     | 
    
         
            +
                // 約物
         
     | 
| 
      
 42 
     | 
    
         
            +
                '!',
         
     | 
| 
      
 43 
     | 
    
         
            +
                '!',
         
     | 
| 
      
 44 
     | 
    
         
            +
                '?',
         
     | 
| 
      
 45 
     | 
    
         
            +
                '?',
         
     | 
| 
      
 46 
     | 
    
         
            +
                ':',
         
     | 
| 
      
 47 
     | 
    
         
            +
                ':',
         
     | 
| 
      
 48 
     | 
    
         
            +
                ';',
         
     | 
| 
      
 49 
     | 
    
         
            +
                ';',
         
     | 
| 
      
 50 
     | 
    
         
            +
                '/',
         
     | 
| 
      
 51 
     | 
    
         
            +
                '/',
         
     | 
| 
      
 52 
     | 
    
         
            +
                // 繰り返し記号
         
     | 
| 
      
 53 
     | 
    
         
            +
                'ゝ',
         
     | 
| 
      
 54 
     | 
    
         
            +
                '々',
         
     | 
| 
      
 55 
     | 
    
         
            +
                '〃',
         
     | 
| 
      
 56 
     | 
    
         
            +
                // 拗音・促音(小書きのかな)
         
     | 
| 
      
 57 
     | 
    
         
            +
                'ぁ',
         
     | 
| 
      
 58 
     | 
    
         
            +
                'ぃ',
         
     | 
| 
      
 59 
     | 
    
         
            +
                'ぅ',
         
     | 
| 
      
 60 
     | 
    
         
            +
                'ぇ',
         
     | 
| 
      
 61 
     | 
    
         
            +
                'ぉ',
         
     | 
| 
      
 62 
     | 
    
         
            +
                'っ',
         
     | 
| 
      
 63 
     | 
    
         
            +
                'ゃ',
         
     | 
| 
      
 64 
     | 
    
         
            +
                'ゅ',
         
     | 
| 
      
 65 
     | 
    
         
            +
                'ょ',
         
     | 
| 
      
 66 
     | 
    
         
            +
                'ァ',
         
     | 
| 
      
 67 
     | 
    
         
            +
                'ィ',
         
     | 
| 
      
 68 
     | 
    
         
            +
                'ゥ',
         
     | 
| 
      
 69 
     | 
    
         
            +
                'ェ',
         
     | 
| 
      
 70 
     | 
    
         
            +
                'ォ',
         
     | 
| 
      
 71 
     | 
    
         
            +
                'ッ',
         
     | 
| 
      
 72 
     | 
    
         
            +
                'ャ',
         
     | 
| 
      
 73 
     | 
    
         
            +
                'ュ',
         
     | 
| 
      
 74 
     | 
    
         
            +
                'ョ',
         
     | 
| 
      
 75 
     | 
    
         
            +
            ];
         
     | 
| 
      
 76 
     | 
    
         
            +
            export const LINE_END_FORBIDDEN_CHARS = [
         
     | 
| 
      
 77 
     | 
    
         
            +
                // 始め括弧類
         
     | 
| 
      
 78 
     | 
    
         
            +
                '「',
         
     | 
| 
      
 79 
     | 
    
         
            +
                '『',
         
     | 
| 
      
 80 
     | 
    
         
            +
                '(',
         
     | 
| 
      
 81 
     | 
    
         
            +
                '{',
         
     | 
| 
      
 82 
     | 
    
         
            +
                '【',
         
     | 
| 
      
 83 
     | 
    
         
            +
                '<',
         
     | 
| 
      
 84 
     | 
    
         
            +
                '≪',
         
     | 
| 
      
 85 
     | 
    
         
            +
                '[',
         
     | 
| 
      
 86 
     | 
    
         
            +
                '〘',
         
     | 
| 
      
 87 
     | 
    
         
            +
                '〖',
         
     | 
| 
      
 88 
     | 
    
         
            +
                '〝',
         
     | 
| 
      
 89 
     | 
    
         
            +
                '‘',
         
     | 
| 
      
 90 
     | 
    
         
            +
                '“',
         
     | 
| 
      
 91 
     | 
    
         
            +
                '⦅',
         
     | 
| 
      
 92 
     | 
    
         
            +
                '«',
         
     | 
| 
      
 93 
     | 
    
         
            +
            ];
         
     | 
| 
       20 
94 
     | 
    
         
             
            //# sourceMappingURL=constants.js.map
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/text/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAmB,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,QAAqB,CAAC;AAClD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAoB,CAAC;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAA2B,CAAC;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAA8B,CAAC;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAA8B,CAAC;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAmC,CAAC;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAqC,CAAC;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC"}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/text/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAmB,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,QAAqB,CAAC;AAClD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAoB,CAAC;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG,SAAsB,CAAC;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAA2B,CAAC;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAA8B,CAAC;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAA8B,CAAC;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAmC,CAAC;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAqC,CAAC;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM;IACN,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IAEH,SAAS;IACT,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IAEH,KAAK;IACL,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IAEH,KAAK;IACL,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IAEH,SAAS;IACT,GAAG;IACH,GAAG;IACH,GAAG;IAEH,gBAAgB;IAChB,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,QAAQ;IACR,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACJ,CAAC"}
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { TextAlignCenterIcon, TextAlignLeftIcon, TextAlignRightIcon, TextStrikethroughIcon, TextUnderlineIcon, TextVerticalAlignBottomIcon, TextVerticalAlignMiddleIcon, TextVerticalAlignTopIcon, } from './icons';
         
     | 
| 
       2 
     | 
    
         
            -
            import { ALIGN_CENTER, ALIGN_RIGHT, DEFAULT_ALIGNMENT, DEFAULT_VERTICAL_ALIGNMENT, VERTICAL_ALIGN_BOTTOM, VERTICAL_ALIGN_MIDDLE, } from './constants';
         
     | 
| 
      
 1 
     | 
    
         
            +
            import { TextAlignCenterIcon, TextAlignLeftIcon, TextAlignRightIcon, TextAlignJustifyIcon, TextStrikethroughIcon, TextUnderlineIcon, TextVerticalAlignBottomIcon, TextVerticalAlignMiddleIcon, TextVerticalAlignTopIcon, } from './icons';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { ALIGN_CENTER, ALIGN_RIGHT, DEFAULT_ALIGNMENT, DEFAULT_VERTICAL_ALIGNMENT, VERTICAL_ALIGN_BOTTOM, VERTICAL_ALIGN_MIDDLE, ALIGN_JUSTIFY, } from './constants';
         
     | 
| 
       3 
3 
     | 
    
         
             
            export var Formatter;
         
     | 
| 
       4 
4 
     | 
    
         
             
            (function (Formatter) {
         
     | 
| 
       5 
5 
     | 
    
         
             
                Formatter["STRIKETHROUGH"] = "strikethrough";
         
     | 
| 
         @@ -14,6 +14,7 @@ export function getExtraFormatterSchema(i18n) { 
     | 
|
| 
       14 
14 
     | 
    
         
             
                    { key: Formatter.ALIGNMENT, icon: TextAlignLeftIcon, type: 'select', value: DEFAULT_ALIGNMENT },
         
     | 
| 
       15 
15 
     | 
    
         
             
                    { key: Formatter.ALIGNMENT, icon: TextAlignCenterIcon, type: 'select', value: ALIGN_CENTER },
         
     | 
| 
       16 
16 
     | 
    
         
             
                    { key: Formatter.ALIGNMENT, icon: TextAlignRightIcon, type: 'select', value: ALIGN_RIGHT },
         
     | 
| 
      
 17 
     | 
    
         
            +
                    { key: Formatter.ALIGNMENT, icon: TextAlignJustifyIcon, type: 'select', value: ALIGN_JUSTIFY },
         
     | 
| 
       17 
18 
     | 
    
         
             
                    {
         
     | 
| 
       18 
19 
     | 
    
         
             
                        key: Formatter.VERTICAL_ALIGNMENT,
         
     | 
| 
       19 
20 
     | 
    
         
             
                        icon: TextVerticalAlignTopIcon,
         
     | 
| 
         @@ -37,7 +38,7 @@ export function getExtraFormatterSchema(i18n) { 
     | 
|
| 
       37 
38 
     | 
    
         
             
                    title: i18n('schemas.text.format'),
         
     | 
| 
       38 
39 
     | 
    
         
             
                    widget: 'ButtonGroup',
         
     | 
| 
       39 
40 
     | 
    
         
             
                    buttons,
         
     | 
| 
       40 
     | 
    
         
            -
                    span:  
     | 
| 
      
 41 
     | 
    
         
            +
                    span: 24,
         
     | 
| 
       41 
42 
     | 
    
         
             
                };
         
     | 
| 
       42 
43 
     | 
    
         
             
            }
         
     | 
| 
       43 
44 
     | 
    
         
             
            //# sourceMappingURL=extraFormatter.js.map
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"extraFormatter.js","sourceRoot":"","sources":["../../../../src/text/extraFormatter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB, 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"extraFormatter.js","sourceRoot":"","sources":["../../../../src/text/extraFormatter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,4CAA+B,CAAA;IAC/B,oCAAuB,CAAA;IACvB,oCAAuB,CAAA;IACvB,qDAAwC,CAAA;AAC1C,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAiBD,MAAM,UAAU,uBAAuB,CAAC,IAA0C;IAMhF,MAAM,OAAO,GAAkB;QAC7B,EAAE,GAAG,EAAE,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9E,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE;QACtE,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE;QAC/F,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE;QAC5F,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;QAC1F,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;QAC9F;YACE,GAAG,EAAE,SAAS,CAAC,kBAAkB;YACjC,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,0BAA0B;SAClC;QACD;YACE,GAAG,EAAE,SAAS,CAAC,kBAAkB;YACjC,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,qBAAqB;SAC7B;QACD;YACE,GAAG,EAAE,SAAS,CAAC,kBAAkB;YACjC,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,qBAAqB;SAC7B;KACF,CAAC;IACF,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC;QAClC,MAAM,EAAE,aAAa;QACrB,OAAO;QACP,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC"}
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import * as fontkit from 'fontkit';
         
     | 
| 
       2 
2 
     | 
    
         
             
            import { b64toUint8Array, mm2pt, pt2mm, pt2px, getFallbackFontName, getDefaultFont, DEFAULT_FONT_NAME, } from '@pdfme/common';
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { Buffer } from 'buffer';
         
     | 
| 
       4 
     | 
    
         
            -
            import { DEFAULT_FONT_SIZE, DEFAULT_CHARACTER_SPACING, DEFAULT_LINE_HEIGHT, FONT_SIZE_ADJUSTMENT, DEFAULT_DYNAMIC_FIT, DYNAMIC_FIT_HORIZONTAL, DYNAMIC_FIT_VERTICAL, VERTICAL_ALIGN_TOP, } from './constants.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { DEFAULT_FONT_SIZE, DEFAULT_CHARACTER_SPACING, DEFAULT_LINE_HEIGHT, FONT_SIZE_ADJUSTMENT, DEFAULT_DYNAMIC_FIT, DYNAMIC_FIT_HORIZONTAL, DYNAMIC_FIT_VERTICAL, VERTICAL_ALIGN_TOP, LINE_END_FORBIDDEN_CHARS, LINE_START_FORBIDDEN_CHARS, } from './constants.js';
         
     | 
| 
       5 
5 
     | 
    
         
             
            export const getBrowserVerticalFontAdjustments = (fontKitFont, fontSize, lineHeight, verticalAlignment) => {
         
     | 
| 
       6 
6 
     | 
    
         
             
                const { ascent, descent, unitsPerEm } = fontKitFont;
         
     | 
| 
       7 
7 
     | 
    
         
             
                // Fonts have a designed line height that the browser renders when using `line-height: normal`
         
     | 
| 
         @@ -102,7 +102,7 @@ const getOverPosition = (textLine, calcValues) => { 
     | 
|
| 
       102 
102 
     | 
    
         
             
             * However, this might need to be revisited for broader language support.
         
     | 
| 
       103 
103 
     | 
    
         
             
             */
         
     | 
| 
       104 
104 
     | 
    
         
             
            const isLineBreakableChar = (char) => {
         
     | 
| 
       105 
     | 
    
         
            -
                const lineBreakableChars = [' ', '-',  
     | 
| 
      
 105 
     | 
    
         
            +
                const lineBreakableChars = [' ', '-', '\u2014', '\u2013'];
         
     | 
| 
       106 
106 
     | 
    
         
             
                return lineBreakableChars.includes(char);
         
     | 
| 
       107 
107 
     | 
    
         
             
            };
         
     | 
| 
       108 
108 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -177,7 +177,7 @@ export const calculateDynamicFontSize = ({ textSchema, fontKitFont, value, start 
     | 
|
| 
       177 
177 
     | 
    
         
             
                    const firstLineHeightInMm = pt2mm(firstLineTextHeight * lineHeight);
         
     | 
| 
       178 
178 
     | 
    
         
             
                    const otherRowHeightInMm = pt2mm(size * lineHeight);
         
     | 
| 
       179 
179 
     | 
    
         
             
                    paragraphs.forEach((paragraph, paraIndex) => {
         
     | 
| 
       180 
     | 
    
         
            -
                        const lines =  
     | 
| 
      
 180 
     | 
    
         
            +
                        const lines = getSplittedLinesBySegmenter(paragraph, {
         
     | 
| 
       181 
181 
     | 
    
         
             
                            font: fontKitFont,
         
     | 
| 
       182 
182 
     | 
    
         
             
                            fontSize: size,
         
     | 
| 
       183 
183 
     | 
    
         
             
                            characterSpacing,
         
     | 
| 
         @@ -186,7 +186,7 @@ export const calculateDynamicFontSize = ({ textSchema, fontKitFont, value, start 
     | 
|
| 
       186 
186 
     | 
    
         
             
                        lines.forEach((line, lineIndex) => {
         
     | 
| 
       187 
187 
     | 
    
         
             
                            if (dynamicFontFit === DYNAMIC_FIT_VERTICAL) {
         
     | 
| 
       188 
188 
     | 
    
         
             
                                // For vertical fit we want to consider the width of text lines where we detect a split
         
     | 
| 
       189 
     | 
    
         
            -
                                const textWidth = widthOfTextAtSize(line, fontKitFont, size, characterSpacing);
         
     | 
| 
      
 189 
     | 
    
         
            +
                                const textWidth = widthOfTextAtSize(line.replace('\n', ''), fontKitFont, size, characterSpacing);
         
     | 
| 
       190 
190 
     | 
    
         
             
                                const textWidthInMm = pt2mm(textWidth);
         
     | 
| 
       191 
191 
     | 
    
         
             
                                totalWidthInMm = Math.max(totalWidthInMm, textWidthInMm);
         
     | 
| 
       192 
192 
     | 
    
         
             
                            }
         
     | 
| 
         @@ -252,9 +252,184 @@ export const splitTextToSize = (arg) => { 
     | 
|
| 
       252 
252 
     | 
    
         
             
                };
         
     | 
| 
       253 
253 
     | 
    
         
             
                let lines = [];
         
     | 
| 
       254 
254 
     | 
    
         
             
                value.split(/\r\n|\r|\n|\f|\u000B/g).forEach((line) => {
         
     | 
| 
       255 
     | 
    
         
            -
                    lines = lines.concat( 
     | 
| 
      
 255 
     | 
    
         
            +
                    lines = lines.concat(getSplittedLinesBySegmenter(line, fontWidthCalcValues));
         
     | 
| 
       256 
256 
     | 
    
         
             
                });
         
     | 
| 
       257 
257 
     | 
    
         
             
                return lines;
         
     | 
| 
       258 
258 
     | 
    
         
             
            };
         
     | 
| 
       259 
259 
     | 
    
         
             
            export const isFirefox = () => navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
         
     | 
| 
      
 260 
     | 
    
         
            +
            const getSplittedLinesBySegmenter = (line, calcValues) => {
         
     | 
| 
      
 261 
     | 
    
         
            +
                // nothing to process but need to keep this for new lines.
         
     | 
| 
      
 262 
     | 
    
         
            +
                if (line.trim() === '') {
         
     | 
| 
      
 263 
     | 
    
         
            +
                    return [''];
         
     | 
| 
      
 264 
     | 
    
         
            +
                }
         
     | 
| 
      
 265 
     | 
    
         
            +
                const { font, fontSize, characterSpacing, boxWidthInPt } = calcValues;
         
     | 
| 
      
 266 
     | 
    
         
            +
                const segmenter = new Intl.Segmenter(undefined, { granularity: 'word' });
         
     | 
| 
      
 267 
     | 
    
         
            +
                const iterator = segmenter.segment(line.trimEnd())[Symbol.iterator]();
         
     | 
| 
      
 268 
     | 
    
         
            +
                let lines = [];
         
     | 
| 
      
 269 
     | 
    
         
            +
                let lineCounter = 0;
         
     | 
| 
      
 270 
     | 
    
         
            +
                let currentTextSize = 0;
         
     | 
| 
      
 271 
     | 
    
         
            +
                while (true) {
         
     | 
| 
      
 272 
     | 
    
         
            +
                    const chunk = iterator.next();
         
     | 
| 
      
 273 
     | 
    
         
            +
                    if (chunk.done)
         
     | 
| 
      
 274 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 275 
     | 
    
         
            +
                    const segment = chunk.value.segment;
         
     | 
| 
      
 276 
     | 
    
         
            +
                    const textWidth = widthOfTextAtSize(segment, font, fontSize, characterSpacing);
         
     | 
| 
      
 277 
     | 
    
         
            +
                    if (currentTextSize + textWidth <= boxWidthInPt) {
         
     | 
| 
      
 278 
     | 
    
         
            +
                        // the size of boxWidth is large enough to add the segment
         
     | 
| 
      
 279 
     | 
    
         
            +
                        if (lines[lineCounter]) {
         
     | 
| 
      
 280 
     | 
    
         
            +
                            lines[lineCounter] += segment;
         
     | 
| 
      
 281 
     | 
    
         
            +
                            currentTextSize += textWidth + characterSpacing;
         
     | 
| 
      
 282 
     | 
    
         
            +
                        }
         
     | 
| 
      
 283 
     | 
    
         
            +
                        else {
         
     | 
| 
      
 284 
     | 
    
         
            +
                            lines[lineCounter] = segment;
         
     | 
| 
      
 285 
     | 
    
         
            +
                            currentTextSize = textWidth + characterSpacing;
         
     | 
| 
      
 286 
     | 
    
         
            +
                        }
         
     | 
| 
      
 287 
     | 
    
         
            +
                    }
         
     | 
| 
      
 288 
     | 
    
         
            +
                    else if (segment.trim() === '') {
         
     | 
| 
      
 289 
     | 
    
         
            +
                        // a segment can be consist of multiple spaces like '     '
         
     | 
| 
      
 290 
     | 
    
         
            +
                        // if they overflow the box, treat them as a line break and move to the next line
         
     | 
| 
      
 291 
     | 
    
         
            +
                        lines[++lineCounter] = '';
         
     | 
| 
      
 292 
     | 
    
         
            +
                        currentTextSize = 0;
         
     | 
| 
      
 293 
     | 
    
         
            +
                    }
         
     | 
| 
      
 294 
     | 
    
         
            +
                    else if (textWidth <= boxWidthInPt) {
         
     | 
| 
      
 295 
     | 
    
         
            +
                        // the segment is small enough to be added to the next line
         
     | 
| 
      
 296 
     | 
    
         
            +
                        lines[++lineCounter] = segment;
         
     | 
| 
      
 297 
     | 
    
         
            +
                        currentTextSize = textWidth + characterSpacing;
         
     | 
| 
      
 298 
     | 
    
         
            +
                    }
         
     | 
| 
      
 299 
     | 
    
         
            +
                    else {
         
     | 
| 
      
 300 
     | 
    
         
            +
                        // the segment is too large to fit in the boxWidth, we wrap the segment
         
     | 
| 
      
 301 
     | 
    
         
            +
                        for (const char of segment) {
         
     | 
| 
      
 302 
     | 
    
         
            +
                            const size = widthOfTextAtSize(char, font, fontSize, characterSpacing);
         
     | 
| 
      
 303 
     | 
    
         
            +
                            if (currentTextSize + size <= boxWidthInPt) {
         
     | 
| 
      
 304 
     | 
    
         
            +
                                if (lines[lineCounter]) {
         
     | 
| 
      
 305 
     | 
    
         
            +
                                    lines[lineCounter] += char;
         
     | 
| 
      
 306 
     | 
    
         
            +
                                    currentTextSize += size + characterSpacing;
         
     | 
| 
      
 307 
     | 
    
         
            +
                                }
         
     | 
| 
      
 308 
     | 
    
         
            +
                                else {
         
     | 
| 
      
 309 
     | 
    
         
            +
                                    lines[lineCounter] = char;
         
     | 
| 
      
 310 
     | 
    
         
            +
                                    currentTextSize = size + characterSpacing;
         
     | 
| 
      
 311 
     | 
    
         
            +
                                }
         
     | 
| 
      
 312 
     | 
    
         
            +
                            }
         
     | 
| 
      
 313 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 314 
     | 
    
         
            +
                                lines[++lineCounter] = char;
         
     | 
| 
      
 315 
     | 
    
         
            +
                                currentTextSize = size + characterSpacing;
         
     | 
| 
      
 316 
     | 
    
         
            +
                            }
         
     | 
| 
      
 317 
     | 
    
         
            +
                        }
         
     | 
| 
      
 318 
     | 
    
         
            +
                    }
         
     | 
| 
      
 319 
     | 
    
         
            +
                }
         
     | 
| 
      
 320 
     | 
    
         
            +
                if (lines.some(containsJapanese)) {
         
     | 
| 
      
 321 
     | 
    
         
            +
                    return adjustEndOfLine(filterEndJP(filterStartJP(lines)));
         
     | 
| 
      
 322 
     | 
    
         
            +
                }
         
     | 
| 
      
 323 
     | 
    
         
            +
                else {
         
     | 
| 
      
 324 
     | 
    
         
            +
                    return adjustEndOfLine(lines);
         
     | 
| 
      
 325 
     | 
    
         
            +
                }
         
     | 
| 
      
 326 
     | 
    
         
            +
            };
         
     | 
| 
      
 327 
     | 
    
         
            +
            // add a newline if the line is the end of the paragraph
         
     | 
| 
      
 328 
     | 
    
         
            +
            const adjustEndOfLine = (lines) => {
         
     | 
| 
      
 329 
     | 
    
         
            +
                return lines.map((line, index) => {
         
     | 
| 
      
 330 
     | 
    
         
            +
                    if (index === lines.length - 1) {
         
     | 
| 
      
 331 
     | 
    
         
            +
                        return line.trimEnd() + '\n';
         
     | 
| 
      
 332 
     | 
    
         
            +
                    }
         
     | 
| 
      
 333 
     | 
    
         
            +
                    else {
         
     | 
| 
      
 334 
     | 
    
         
            +
                        return line.trimEnd();
         
     | 
| 
      
 335 
     | 
    
         
            +
                    }
         
     | 
| 
      
 336 
     | 
    
         
            +
                });
         
     | 
| 
      
 337 
     | 
    
         
            +
            };
         
     | 
| 
      
 338 
     | 
    
         
            +
            function containsJapanese(text) {
         
     | 
| 
      
 339 
     | 
    
         
            +
                return /[\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Han}]/u.test(text);
         
     | 
| 
      
 340 
     | 
    
         
            +
            }
         
     | 
| 
      
 341 
     | 
    
         
            +
            //
         
     | 
| 
      
 342 
     | 
    
         
            +
            // 日本語禁則処理
         
     | 
| 
      
 343 
     | 
    
         
            +
            //
         
     | 
| 
      
 344 
     | 
    
         
            +
            // https://www.morisawa.co.jp/blogs/MVP/8760
         
     | 
| 
      
 345 
     | 
    
         
            +
            //
         
     | 
| 
      
 346 
     | 
    
         
            +
            // 行頭禁則
         
     | 
| 
      
 347 
     | 
    
         
            +
            export const filterStartJP = (lines) => {
         
     | 
| 
      
 348 
     | 
    
         
            +
                const filtered = [];
         
     | 
| 
      
 349 
     | 
    
         
            +
                let charToAppend = null;
         
     | 
| 
      
 350 
     | 
    
         
            +
                lines
         
     | 
| 
      
 351 
     | 
    
         
            +
                    .slice()
         
     | 
| 
      
 352 
     | 
    
         
            +
                    .reverse()
         
     | 
| 
      
 353 
     | 
    
         
            +
                    .forEach((line) => {
         
     | 
| 
      
 354 
     | 
    
         
            +
                    if (line.trim().length === 0) {
         
     | 
| 
      
 355 
     | 
    
         
            +
                        filtered.push('');
         
     | 
| 
      
 356 
     | 
    
         
            +
                    }
         
     | 
| 
      
 357 
     | 
    
         
            +
                    else {
         
     | 
| 
      
 358 
     | 
    
         
            +
                        const charAtStart = line.charAt(0);
         
     | 
| 
      
 359 
     | 
    
         
            +
                        if (LINE_START_FORBIDDEN_CHARS.includes(charAtStart)) {
         
     | 
| 
      
 360 
     | 
    
         
            +
                            if (line.trim().length === 1) {
         
     | 
| 
      
 361 
     | 
    
         
            +
                                filtered.push(line);
         
     | 
| 
      
 362 
     | 
    
         
            +
                                charToAppend = null;
         
     | 
| 
      
 363 
     | 
    
         
            +
                            }
         
     | 
| 
      
 364 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 365 
     | 
    
         
            +
                                if (charToAppend) {
         
     | 
| 
      
 366 
     | 
    
         
            +
                                    filtered.push(line.slice(1) + charToAppend);
         
     | 
| 
      
 367 
     | 
    
         
            +
                                }
         
     | 
| 
      
 368 
     | 
    
         
            +
                                else {
         
     | 
| 
      
 369 
     | 
    
         
            +
                                    filtered.push(line.slice(1));
         
     | 
| 
      
 370 
     | 
    
         
            +
                                }
         
     | 
| 
      
 371 
     | 
    
         
            +
                                charToAppend = charAtStart;
         
     | 
| 
      
 372 
     | 
    
         
            +
                            }
         
     | 
| 
      
 373 
     | 
    
         
            +
                        }
         
     | 
| 
      
 374 
     | 
    
         
            +
                        else {
         
     | 
| 
      
 375 
     | 
    
         
            +
                            if (charToAppend) {
         
     | 
| 
      
 376 
     | 
    
         
            +
                                filtered.push(line + charToAppend);
         
     | 
| 
      
 377 
     | 
    
         
            +
                                charToAppend = null;
         
     | 
| 
      
 378 
     | 
    
         
            +
                            }
         
     | 
| 
      
 379 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 380 
     | 
    
         
            +
                                filtered.push(line);
         
     | 
| 
      
 381 
     | 
    
         
            +
                            }
         
     | 
| 
      
 382 
     | 
    
         
            +
                        }
         
     | 
| 
      
 383 
     | 
    
         
            +
                    }
         
     | 
| 
      
 384 
     | 
    
         
            +
                });
         
     | 
| 
      
 385 
     | 
    
         
            +
                if (charToAppend) {
         
     | 
| 
      
 386 
     | 
    
         
            +
                    return [charToAppend + filtered.slice(0, 1)[0], ...filtered.slice(1)].reverse();
         
     | 
| 
      
 387 
     | 
    
         
            +
                }
         
     | 
| 
      
 388 
     | 
    
         
            +
                else {
         
     | 
| 
      
 389 
     | 
    
         
            +
                    return filtered.reverse();
         
     | 
| 
      
 390 
     | 
    
         
            +
                }
         
     | 
| 
      
 391 
     | 
    
         
            +
            };
         
     | 
| 
      
 392 
     | 
    
         
            +
            // 行末禁則
         
     | 
| 
      
 393 
     | 
    
         
            +
            export const filterEndJP = (lines) => {
         
     | 
| 
      
 394 
     | 
    
         
            +
                const filtered = [];
         
     | 
| 
      
 395 
     | 
    
         
            +
                let charToPrepend = null;
         
     | 
| 
      
 396 
     | 
    
         
            +
                lines.forEach((line) => {
         
     | 
| 
      
 397 
     | 
    
         
            +
                    if (line.trim().length === 0) {
         
     | 
| 
      
 398 
     | 
    
         
            +
                        filtered.push('');
         
     | 
| 
      
 399 
     | 
    
         
            +
                    }
         
     | 
| 
      
 400 
     | 
    
         
            +
                    else {
         
     | 
| 
      
 401 
     | 
    
         
            +
                        const chartAtEnd = line.slice(-1);
         
     | 
| 
      
 402 
     | 
    
         
            +
                        if (LINE_END_FORBIDDEN_CHARS.includes(chartAtEnd)) {
         
     | 
| 
      
 403 
     | 
    
         
            +
                            if (line.trim().length === 1) {
         
     | 
| 
      
 404 
     | 
    
         
            +
                                filtered.push(line);
         
     | 
| 
      
 405 
     | 
    
         
            +
                                charToPrepend = null;
         
     | 
| 
      
 406 
     | 
    
         
            +
                            }
         
     | 
| 
      
 407 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 408 
     | 
    
         
            +
                                if (charToPrepend) {
         
     | 
| 
      
 409 
     | 
    
         
            +
                                    filtered.push(charToPrepend + line.slice(0, -1));
         
     | 
| 
      
 410 
     | 
    
         
            +
                                }
         
     | 
| 
      
 411 
     | 
    
         
            +
                                else {
         
     | 
| 
      
 412 
     | 
    
         
            +
                                    filtered.push(line.slice(0, -1));
         
     | 
| 
      
 413 
     | 
    
         
            +
                                }
         
     | 
| 
      
 414 
     | 
    
         
            +
                                charToPrepend = chartAtEnd;
         
     | 
| 
      
 415 
     | 
    
         
            +
                            }
         
     | 
| 
      
 416 
     | 
    
         
            +
                        }
         
     | 
| 
      
 417 
     | 
    
         
            +
                        else {
         
     | 
| 
      
 418 
     | 
    
         
            +
                            if (charToPrepend) {
         
     | 
| 
      
 419 
     | 
    
         
            +
                                filtered.push(charToPrepend + line);
         
     | 
| 
      
 420 
     | 
    
         
            +
                                charToPrepend = null;
         
     | 
| 
      
 421 
     | 
    
         
            +
                            }
         
     | 
| 
      
 422 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 423 
     | 
    
         
            +
                                filtered.push(line);
         
     | 
| 
      
 424 
     | 
    
         
            +
                            }
         
     | 
| 
      
 425 
     | 
    
         
            +
                        }
         
     | 
| 
      
 426 
     | 
    
         
            +
                    }
         
     | 
| 
      
 427 
     | 
    
         
            +
                });
         
     | 
| 
      
 428 
     | 
    
         
            +
                if (charToPrepend) {
         
     | 
| 
      
 429 
     | 
    
         
            +
                    return [...filtered.slice(0, -1), filtered.slice(-1)[0] + charToPrepend];
         
     | 
| 
      
 430 
     | 
    
         
            +
                }
         
     | 
| 
      
 431 
     | 
    
         
            +
                else {
         
     | 
| 
      
 432 
     | 
    
         
            +
                    return filtered;
         
     | 
| 
      
 433 
     | 
    
         
            +
                }
         
     | 
| 
      
 434 
     | 
    
         
            +
            };
         
     | 
| 
       260 
435 
     | 
    
         
             
            //# sourceMappingURL=helper.js.map
         
     |