From 3a35e7e800d50aa9a7237a67c4946a6fdfd83ee3 Mon Sep 17 00:00:00 2001 From: Peter Ward Date: Fri, 22 Mar 2024 00:16:53 +0000 Subject: [PATCH] Support for line breaking on hyphens (#451) * support for line breaking on hyphens * update test pdfs --- .../pdfs/assert/dynamicFontSizeVertical.pdf | Bin 99089 -> 57677 bytes .../__tests__/assets/pdfs/assert/pet.pdf | Bin 64873 -> 64870 bytes .../assets/pdfs/assert/労働条件通知書.pdf | Bin 66961 -> 78226 bytes packages/schemas/__tests__/text.test.ts | 14 +++++--- packages/schemas/src/text/helper.ts | 32 ++++++++++++++---- 5 files changed, 36 insertions(+), 10 deletions(-) diff --git a/packages/generator/__tests__/assets/pdfs/assert/dynamicFontSizeVertical.pdf b/packages/generator/__tests__/assets/pdfs/assert/dynamicFontSizeVertical.pdf index f01e62db874140e21d387dc6baeedf5cafac4cb8..816731e0fe28278bb839bff0100fa1c26da17093 100644 GIT binary patch delta 4165 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 LIWY<)B}Gq041faW diff --git a/packages/generator/__tests__/assets/pdfs/assert/pet.pdf b/packages/generator/__tests__/assets/pdfs/assert/pet.pdf index e149a6367d19d5471db41da6ecab84dc1e204beb..208796fac04ae64c1808e8b828f312d40250085c 100644 GIT binary patch delta 4270 zcmV;f5K-^x`UB?r1F!-E0x>z01OrY2kEF9y1I__|xeT-!B}_}TYyvuy6;RZf`bcvg zDYNe3b=WE+oI_qu;;c#CTJF{|cXJ=JaXI$F0N|1QAO)T_GVQPO;0Kja3m-IOaf8oG zS!5*L>w;QpsFu?v7l>;`-oisF#I*y2(&byh zj_Vnca!|NdWz6X?U|C>Tmb@&pU1tU1a!$MUqMkM#TE^~Sv1$GZ@?MN1=VTOQdZChk zIe`X|AYgFa0*%!!bC%^VP%JRD<<0f&!UkHEJPjh9lExA97C87GrY+-acFi)69$2@y zfOMWW{#vijMlYgqg$sgx3|Y>uQ3|8rei$+&lpdSNR{^q^e!U7hU3uPCIdnCK>dCot zpzQ-}S@z7-cCDKk!lfO#n#Nqn7FiU3x!HXaEQV&HBzD;Vi+G<&a~;`iyjlgf{8Z3$K2N_It0KT z0z1}{JuE%>T?I!mg2%nr}C9^EaxUTh~=e0@& zZIfJRzfKxKl*`73!sTJaifccVKS#lOD?r62g=K0WAE|ULC_aVQ_I=oK>DvAIP`aM~ zd{(*|XV44mrAI1VQ8Wrhx~GSKN>{XfV~MMsG!gWCE?t*W^?Ewi9QN(}_i8R}pUAFaJmWl?z_gVCR zQM0a?q`ia-x}m|Y+j?xYL*l5($_BZH#&ucqWop(r0Kd5OcN<3{n4b@KqV9vpE1P>o zt+W9m)WSXHe17IxYejm06zMBtwn>jFC+3oDOQu8p-qoXDba&-KB}(x) zEsC{G=7XT@sOM}$`+PE@Sm|*YebKKU2`qX7c z{hQ}%XX#4wyw9R_qT$T4Jb3BdH&RxwXcyMoDON^glhL8ot zbppMKLVQ!vY3sy)$Np`n5%jD3UcB_Sa+r--sZ2+cj#RDOKR2Ps^Ww>PnY$zzjoeKK z&pJx-piR*{3Z&p4Jh+AFbLcro z80v9^Esxf2-qcZwdMYKMGelT}hoff!iBPL0hag1FF=|zRw3)S{+aX*MgGgX`sz#(l z77x!6ZAUMUQSjp~^T@@fZ&}7-alYeo8M)eQ3Wg!`SCaxzAetx_nw3ejNE|5|+kC*# z5reQYsxVrL+kghlv2+Z~03f#LWFH+ALeHPd+N7AJVts~w$IZE9Tx(EJPYoa>qZHc} z21?)-rWGWAMn`J|Pmdg}8=AtL7-rTsCgr2`PSD=%2nB>|F+*0(UdV<9GsiRvr??+B;jCB(Tv>%mZKGtp0`1}4X2jJHK+tPrvp^cC$HfuJ1(PCphGthm z;fCNr$sQXQ!XMxb7Fz}NC1#%%mR1wk;wj7%!0-xx7)VBQTdIzVqbg7u8pOJS*e0(r z94M6xm4?nfl5}{{d?=iBGThFu$>$TxaAw|Y`Oz$A>kF5i;m|?r9MU?R0pE>-b1!1X z)2KSXRv9|sdG5oBb{)6f?HX+{4FUz?nrDO%C-J1EHflEZ=L}XhczE_740ck`Qc9j8 z>1YLiWr?x7U4$Q@l!3~_MmK2kBKI{Zuw$T_ z1NCU;yQms6+)RK5Vgk!WYbD5S^~`vnock;r2Z``T@x`w?`Q z1W{Xf^;2x+99`tdr|*!C5%7Y!6GbjPTP6|$p}>< z`3ju1x}a|AD@;PsI((jg%0^V+aNtE+<-KDGt#EzlSQY!7x) zOsB^a!=schOA$08HJ{2h*?7r#B-bRxl*b}pi z4&&tlGcdDp^h5!FXG`8$0OHdBo?}tdvS{jm-l@gBRXy44+0nfD@-H~{V|n{mJq7ZM ziE-n6{^`&1vbn#$sG4zkceTa^rGOG)S}ISLO!!#N>iP5%)KI(A8c+1(=enuSi^=SV z4+kI1tNFN?9^}YglGltuYAjxEwF;IcdmFo~Lh>x)i5`uARZgqVD`qjJl$}E$G%Gg^ z=A%t6=NzPaFbY93QnqWXERu+bGj)#Td<^7$LQZ!K#=!?0eH7n07$?c#Kn}TcFoZ0F zeBO5jHiqmIWDNSzVI|^Rh$&j?wDJ^KqCAepx|MSfCx>N9r&T1f!4mYYYetME!k~R8 z#R4VKRdy18F=9sNG9v2bU#wB7~@8+l|uA z)#wS6f`;A9ffTy{=68Az$!1W;%e`Mv(cy3JzsW3r)baK8r*bqZM;}I?RZ|a;ya~aJ zDH~Z1dv>k&;kk85v%|Qx2QHCdRaPY{u0HVAg%mIpR-5kUe*Lw1bKdAqq_e*{KhT{e z*^ra0lm+)zgW+YdtOL|GhUmde>0_G&V@8(%?^aufB?r$ghV8cCA2Da-;#O0EDq)*} z4D@h+7xfbYrd8HfTS#$oNU0vf#^^0J0-t-V40{TtKw^8?Mo7Hwe98B4*9pa(3Dse% z?eWoy56Ux+d96s?=z#EgC?oZVnaj|38@LC5AqmM7h&OR}72rtDdo%^UN5s&ZF!~4^ z`b0M)d$F)hBwNoPr(y=>>fr+~64>=YLO2FQBKAoN(n8u%?!(B0N(n`w>y;D%B{*rV z-Xjj!;xlK6dJiAKafil1dc@ZS6hFxN)Pp)G%TRs>?u8qqUrSKCA!chrLJ^%Q^^$ad z)H#we_|R>-{6BnGj;i8S{T2PH#XsoaA(S|=J473f-t}lQsT=KP7k%ucL5HGO>8`hZ zH7?6h$NLx4>U#6zwJu0|oJH5vEH3q?#RSEyTy#If^8#J)+hX##!hi~3C!So^qYBOQ z@N5JhtLFCL?O=FP&MwQzsF*Z5ggWkj-JRzb^)HhOFO|mM7ZXo#=26d(P~Gm}O=$5( zcK4>W6>`Koc#{9_3E3xl@~G&8loYG!z8|7xikXr)k&;4d03j}{u$H`*n5aMl##>hfrEH7*Sn zdZfNK=+njCdES@<^0+!KZr+yF)t9@czkR#H>3LIL|EecC<7qW6(ZlDhu{}OJ(L4GK z!Nb)>{pRfCU2*dezuvlqx6f~XXK>?e^0{6pHlA0rW_oL$9gXTw<@3St{d9!f)-ML{ zhJUW!+}w=IYh9*YDEWHO^;^(I`|@7|5$fG0wp$=-Rkl`)(8ewx$_i0dh;kQ1!L2}q zZF?OeecBC?r@cYcy5{|1#81R%v)=C;pXl=gJi&1bKxBN}1t8l4pv?<^-XA#W0UU=T z5W*Ld3Bl>_2>A36L^d3)K^tvIe`kP=kk&b@zauL} zpiM*#Z}e-!AWD5O1nI_qIT`)7M(^v7MFI9G%uU4Jjkp3Sf*n|dV2YLdF?poNb5d8;d}1`8^W|d7RnP{H-L?0WhC+yBAJf%iSM1ZDrH{0XWj$?vo+d6O$PHSOGVaar`TP%gYJ@0TjmZ zbH?46aldRP-o+Eh#?mWDiIDOL@(fDKY*`_@v83^Roz1VW|LKTG96Qn%Axa#T zl89rdJ;=>{+XmhTc51d)Hc%wDdVfdo4i36`jDR1HKKBKN1Hc Q&yzv@AqO-HB_%~qM#_vpf&c&j delta 4245 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 diff --git a/packages/generator/__tests__/assets/pdfs/assert/労働条件通知書.pdf b/packages/generator/__tests__/assets/pdfs/assert/労働条件通知書.pdf index a97cf216f676645a5e56898565ca7a17b7fd1463..83c60a9e01837c0ab6de757ad8f88b3829b80803 100644 GIT binary patch delta 13463 zcma)?V{j(ivhQO%nb@|?iEVRY+kRr(HfCZ?@&psxw(UHb*yr8%oT_{Ft^MJys;=t( zu-2zl-M{YsC&xmi96+H{sYpmMu`%-?PzC>U5D+*U(KVsKS(DLeniHUwB2z7)Xq#i> zs3F0*Q=1Zlzz1{&&w--u3egNLD_C7!NKBqq3c)Uo6jeM@iRE1ufKK$+`Dwx}DxC^;6+j2YJ z0Fx)ExhqaL-Ccgqx7YP;sD%K)*Fvs#kFfvq-;=Eq?X7S|8Kw;CiK{oo >6p9#M z%y|AldzS<9EeV%{k*O!(a)WjEXT#=aWBZ4rTfkeo%wK{MTU3E)2?==*@m(T_1M9wk zcLmZsQZ2~SI?WpOhXt^H1T@=0l<$kAfZSlJ(0Y{1^Rmf|>tHZSenX$b!JMPOi9kcZfz4-um)W?uoWK{E85$d!8k#sX)-^gt zF#hfO?NU1jTvn-rInE&l|E$+RR=dR}W-+aG5BnYb6Q(5TY>&5m;dK^ttvPHb4p6%K zJ7$%nKViV0nCl{F&Lb@D!S#YqX*uXG^OKmWtoFXn@G)M;rqMc_(z_}MEaW>gI2sjh z0F3Z3-(DWO%@5?(KIgQucCiA126v>^5^(|OD*;Yyb%uF-#TC*ZGFAoSEDWqHss>r( z49DdsH3@gxsb@-7xDs0F*Q~t;0>B`ypMTMHNFBXi zMwJisK6RS1(QRxK2BMrsJ^=evfV3*3q-aXXJvuZ=Oo+{ER85>NC+_**6_d|DSequqBF>;8YiHzPzd5d~kbQ?Fj%+EEGSPEJlxs{f4vVb)dk{Jm zbH2{+P^3y|B2^!Ga0BA%0XYjp*e}uZMALX?hZ>F z0?GAhZLA8I}hb-1ess>el0cbC~$n@j;T(I|IFx`lD!SM0cEJcy!;I zKsxu?6UlGQHDUQKch2bU51SP-d^wY)e)(Y2H@6ifeI&w4lR3cW_NZM`groN4Y6|3b ztn4y}Yy`?U$1kuVneV)bpEr~Trrw%|w@bH+Z>LWe@)3La;K!SBW6+$@EPdfburqD- zV|UEyS6NZ}zE0@@_L?*5-W`fVjUOM7j)_km2o{d!|C8DN@tjO;5fIq9Nm)t%if%?i&9Dtm3J`Ps9KYR#v`$%cfUZN9x$q*dxjz?)=DATspt*u()*sXugYDkdL%T&IA+gHfj{%iKymRq;q@nyl<7EdfGM3nW)I+oL4 z#OQdqhg%N^9E@cac2aKbr)lSDR%(Jg_85~0NDE$oYecGfIuEFR@JB8o<12rbel4Dw5m*^MOr~aFj&&_Vq>2uVx z#D`+g_g>N>W0>P4*uP@J4PcOmkr2i&mHc)M;Q9@aezb7mMXXrCB`QdSz36$pcyTI( za^Gd0gVj{<$G_{+!X6bvXh3N@LwbRN%=ou@dWj|vUvYRpUWavu+7KlLh-zA=M+=v5NLuLelZe&$tVKVz25(2pb-*j-Y>kO60? zgnl+&6q;SiypRQFnCX5#UR0c2a)XcwfHQPmKNk>%XP0_2WWyQux?c#0in>cC7%~Ea zD(L6%Mq$~d>Izu_!EE;nc%zb#5()RyJR|+sW$+KZ0YS2pVg`y~n~S5ohwNneoxtNk zf18>myfZeMjKsF?eb)hFnnS3agK?NcxoRZE?(f%uiZx|(|1Rw=X2ogh!Wc{in1hx# zv0)6gXe7)SLC`@roI~E4gJdwVs0q<*#Mc_Z*TJ+iai|IPXe3@9fmuZpYDD)nF|!X* zY{cW1cDnDwUd7Niv9k~DUd7%hCTSf(Sw$BxvAQ2&Uj5c-;&mA;)QAIPObTPd8evQu zVZtkA>~tBLj2k{@-H&@2+lU(pxLrkkGlM|sl^~1?Wrc@5KqHJ9aOO?uP3A?AKENf6 zJ#ZFO>NU@cN_A#e>ifluTzP<$7v1d4J>A#Ni+XYZVGtGT%*NbT4n)d4Kro1|cIK+< z`wc`{Ie^)W%5~;&?5hPLx0xYS?4xW(cRKT2_x%B)KAGVY_lA1Ip&p#1Yt6|BT#ofI8W$@E)z370>sK_$3GsBR9oRW2bN%7x$qf z(M<~es}9~o$)CHm(V zs-zm0WNNhOPnIDy!Xb5$b7gqWAPgH)bG{&hUzP&KxBUYwD?zHO|Q6dBGfIL~AmplA)HcjCpoFB?fD%+LEP~h~;^HJ!JxG z3Wt)Zmhjej?sX+PK$@I@HO*DYR!ijLyzsiRje8KvJQ=@&^eHV->4AHQ(mWl%qSYy5 ze(9ZiF!MZBhl2JgyB)VF(L95%qSGnU zpVFuM;Q2F(fRdT}@a}n@S0xeJQ1&w#3svr;S(ewS-qFEHK>xU<{j?7+%ZV8xw{swK zZ-)KQvi(4-{m7$15~7O+`y-q#}^e8I5JR&%claBpx`J_yR9-Wc8l+10)|fRR4n9bL912AmYpqI8=Vm z?g457Yfk$zaAmttjNsHqv0rKM%Ct7(nP`urmOHl(>ZXed~gqLD$brdcKH z@r#VBJYz9~Urqa5HsGHhJ*18woynO&JrB^xk#)PpCb1!7Do=08;NE9&D9?YE^*bXa zDo=IC2Aq)_mgl->63?sq$_7EnB|*tYg~?@w$%ox%2xHKxVlYuhCwF5oxL~k+l=V=K zg2|=@v&*EIHy|Y!vnxbQz~RxAnzzIyH?k`YPe93LM6=6MPhe%!FPL{sCS|kBTLLBs zvl;HpyBU+hn`E#jFm&lB%-d^{(wpS8Ch&C`F3kVfC&f3(a!+8d(QlY{mdR9ICgnHD zdrlCqF}#`gl#PM&(MBFN5GI$pDkMz6^U+lvw&W!@yDCjjK)2Io9yS>ySGy|KO(3_^ zwH>x@CU?3jUr#{#&?X)>3MNx@ZV9` zOQz>V3Fl?gwu}3EV)9k78T0dcQWLg(O!ePdN;;}?JE|kK=EwCUt8KYz>$m_d70dJM zdeRrRLbdhCEycdJ6c6*m>k_%P91eBc=cP<7<*oC}>rw%~Yg^St9O{W$NE#iTbrm4^vo$QW^T@ATLGDoHIkVg<(f7!8T)|RYBI;20I&<7A_46pa zUf~off_+FLUZ(KXNIY{9DyDfzD_G|6)tWi;`BQ}RkYcpV;Hz1G=J5wm%=3`3y)59X zeRCENP=xxBEWAwfs!@367EsLcklww_^QyIT=J!!__Npp!X7y3>;~_V2g(Rmq`&GS} zQ{U}A^OGAgw&(qb1@JQQMFICL@Pt|vkU_@8@evNlQS{ZTaLT#5zGn;#usokB%hPB^ z%DgOi)YWD;;93}GwDSXaO8af-i@0v(VIK1l2S2tyCNiu6{1YeL-wYTSRv5sNa`|Q= zHc1+Txph-hiCS!$bmh9SV$(Wd1`0C(C4H|}DO-g;tn2;W5~ivgcY;25y10LF8d{oK z8-F*m==^j}E*T;u%+HG-l23D|)9g@Kb3J0vaQAR~`l-<_w`6OzWVcwO*{QVU`#`{X zZ-2N1lwGi#`V*knV!zZ8@3i3=cqQO|xwzINzv8&%cYpZ}4Ht_L10S1su2b1uqlK=* z$=<-f=Mx?h0~SRNU(o!tVUI#80bj`S5_pUGxia#Xm)L7&@I3LZAu9L~h&ZnttA2-WsqW(oJ%6yI% z{wrQZO$T2sYb8}#!|;k>+DgFLp9i_-arqmiKar&Tz@}oE(6wq<&4A^>3QqN_U`apeqWy5l0hzx3avU;PSO`b+2yv+G2gpu&2gDp*7L7>(f>bOvDPSNl;O zor5Uyc9C#??!_3L#tS=#3JC7Pvv@z{Ex>l4B8ogyfCa;ev5L*2exS#&hEYI3qD2Se zhS5rxv6`aA@*?%AAPoSV<9cNV&9E?%q9`dTpnu7T^Glf_4U1eT#22Lg0<*WP;eb?_fXR*%j*52wA%tZMYgQv>F?*nh5EQ>flX6 zvMWwFNai1w=z=Tlj5Xp+NaKuAxU23TF>?#uJxG@~jF&gW=O2FejK8xB(LLn#OpN0K zpXmav?Sj1G0?7log$x{2e#UD9AqGkc@Ph~fM@XJA+gxD1ilu3;`+}I=4}^(lpF6^- zIm_{;Y((Yt=5n|-<}y56Dj|u^B&<4A6ty2sogRw`w$4PAedlr!0!}Bo?@L7>aYspE zIKn;k_kse<4ieWIU*Y44$x4JSW!;k63hXD(rm%e3a0GpS>v1)Zk!{| zj2u~GjFudc2fPKCSrgHDgJXI9zw(C9^7;g)%OYMFjmctlCNVOa;+l1)5wx0O^t9Z# z?R4acE_fp!@+M%W5B#}Z!E=F0vA`^OVA=#QkKrGl{ufY8+3(5K?c3Jv>D3+h3ir{x zU=<$202~iF{4-{5eY$&bUNC+fQ#&3r_@~$3dUW^kykNIEGwd95JDv#mX9}#2=Wh;e zZ4Ug|9QhFJeOeuUdI1+X6eZr5e$R^Z36u7T8}SLD`M)4iuy0ear(1BKEjaTJk+6XD z14nLrk~6)twY}3D~J@pBSXU7?gb&&EOas9{qqhFbQgZwAL%U$zS&qbZ`OMgHbuPWyQy8!!)0wE_E`3-Xf4ik_C?r_YZ0Hb&BxMPU ztKGV3`hM+}k5ru_1ei?8ozkz>chF<`sUbAgDtY8xKUYqJI)oSNH@PynIJwzBKfW$y zVP|!-dwO_T;(4{ynV8!dS((|kf3UGKBSOkb%Uky2YqkLt1)dBED=CSZ5FJmz?!F2_ zr#O(NqNJv(EUPF_BkN|#JVSqvJwf63?UA~{pu8mm=AtB{`hoy6mjxwx#K0vRBJjlXE}5KW#ELi z;){j^kOmlR2Le9}0Th>_R$kW6s3G+tc()j9K4t0y`GfbmLGG4rZ)*{Ixjxs(Qk{{j z+qjM>NIYnXQAbqO1)ndEBkR!wJ)^&4uQMw%nX%t0QD>~=7aHAmFCh)9(nv7*-WJ$Y zA2#i6JU94g{ZUxBXX1>K#S6!{*Ih#39b0>2cLC!&i86i?%RD7<*5TWwW()lYLDDR* zR^pGpPobvbHnjvTFMm(2+Ow2q;%u8x+g*LyMv(OSETVGxf&GL+%Yde5*hO|&!uK-! z;X1TbTepwAec}GwkinA^gR0(D@d}ve&w|~-{KqF-#)nAQ^V$qYSgzk>g4g~V3TxJW z5+;DNy|u1oU!YM*TzN(O48D&-$Y#hF!&gi$uWFj+=;&=c8;8}+18=BtzMSZyqf(Y$ zGlj*yDy&-dHAY6Xp-sHBLegCK?%r zAtsx1O1Y|QIZt)+toDjvkREjl286mTP_a52Lc75%TE9lOg3H0Ud$Z zbj-xKwd-b{SKAeyufD_-%R$<1_S?bZnR^C3v%4QpU#p=2CfDcbr~uPKPro~-_d)!) zC8y}b7xX)?At#(aDhq*^sgI&Pr#SI;#iwrDIOJ`B88p7(qrQXT78hsZO;#AQA-a#B zfwaGswPT2;BhMa+U3dN*cCZejSV!ceO5*K!2-duS6~xH#{@T(7{q!F(YuANGZT4^b zA%UQJI|V|k4qWPC<}CHEY+O9sRrUdueYO5YkV4x7V4lq!#a|+0#qsR@;M73g*l; zZ_p#%YGv1|_zthn&4Xcf(C=cim@c{-_L_AOwiYJe(b+<6GYa8+p~!A)=U}+PhHRmQ zVy?5HlxQ~%4sXqOrRsncfE}IFw%X~<*^SWO#U0AAesa_)7o^`$AwKG~Wp+rH? zoY+HbLsQz3_zl-mm}90CU`uzt=|fb;AO!)vJC zL|XGvKZq~;R9u3Xr%oP_4FfU+N?^QaOasu zdFzYk#F{EOGJ&w4foWQAI?vPiW^dvuCX>V3WJaZCx5O}qA<%}Wl!{9=scdjTl-8Oq zP9UJFU!^nD!XAi{>%EHN@kegTxBNQ=_fNI?hBtC$upp#4IQiHlDUEJVlM?iA0IXivqzf*1@ks<^;RuXtp@Z@U{$0)wjfCq?KbI0|Z}46|qZSXf61NTFZj$ zyFU^t_(GoeW1 zZ%mq{uH4rF=um~7X|%<{Xnxgjjl{ZQD|?BLPD>%o^Y){>1KbKA}<(2m{sJGl#N~h|~~nc=_@r5P+ioa{PknT*(>I=#?y#kipQ)vCMcnr z$E?7j%PKHK4Ntb$n5Nh{?R3L9X1Y#XLoH7LTSv*I={=VPPHA>ego@gJ_{x{Pc+!OxiqZQU6LW>;A<(#!PZ z^{^~q58tEe-{$@XiP97GX+jE1Czp42JpW1;xx_v*6!G$`T{myKa zzjD#cNZ`j*-tT{F13s!_Q@2nCq|Y#x*R;Y*#_tmn^dm!Mh)(-S~y zt#AZ;`DmRh`&&quD&_Rs!*@Dd?#6B@@e}4}_wfo$QD7tc1=IYIp!v|)olH=x9Ffn`?Cm_g691q+H^ zNmeyi$@pg_o!;&Xv}NG@{kOPNi5RKez$o+~x6(LlJf;XwxG(#ZBhp#QoKH_Q-ZVCZ zH}hC@q;Vg`Lf7?jva5c7C?R)RJI+hBE8eyv`T|+h6Q1J>rtvfc+$Rlbj|Q)Q4 z4-xzIIjP+XFhDcIiNC_yrN)hUq-#XPA6Fdc)G$l9Do-x4nysjsTA~!DOXc0u0ki(<&hmcJRf^-!-NcH{QFaB;uFKDJA|e;^6dCy3 zQrYo{dY)_{s@9D74JIq1k?MSEQjTWPLH zYNRN+IrN)vMkqyFLBqNmLEI=)#j^Gs>0uIN5KMXUm_|SOi%a04ri$sBBQU00?fMAg zoi1`w0>)};-|SB2MLUCT&&=Q1Fk@wJx=56j$N|ansTRy?X>|l7dn>#~lvc^n3XRbd zk-L5RZGh1Gzm4S~!%f1i3qD36>nF)z1)RnJ$kM0Eb9DH)@T}#i3~AGLhH?d0E(Zz5 zn%4^D)OAe{d~wx;{oPqjvV^az#WXC;eh&eY_f?f_$F!?T^omlDL&xQ8Tr|~$?qK%O z0rhl)fB&Fv#t&|ngd;Xg)W#M?!O6eC=sU(9Q@}oY22FfblK()l8pO8e&%7Wz6d@a^ z_{^T5c;&ufn#Q(}ct*sA|NHM@-;$(OtCL2eyuk>IwS8J0bVm|qqwEeuiUvJjp zmw??B6shCAGpl(1{M9!Pkom`+xbpytP~OPUrBe#3jDs%A(9AfVw>!e;!0y16q=~dV zNPK{tkg!1V7x!qD#=BI+~2M8&rJ$&nKy1vn+FTE796Lw>CZihXdQ}pOx zt_B8dhicOu3a4@VO(1UMup2E7w;V}wJC6#T_Hm&rh?y-{j}{NZSA!7A`Jms3T%(ja z4Y6?u8)u4(Tv4xLh}KF?O`*1@S|+vx5a~n)*i>-Grk+fTs^O*($5@YCeA4um0La2| z&68;Nj{0SZXm z8wX_8O;G05 ziV=Qp7xll+9qrH4J|Hm5b{HZn0w9In5z|Z$zBB{ug`YC3q!9U%Zp3Dr8>jnD-+IPB zaokzJghXJNd3OIQ`10L)j0ok`&C+cSISHD+Gy2vE@+(#b|6sc(9K@HdO#oJD`j5Z5 z_%1o~&ExO#DB=Xb?COK1^tCB!Q&T7gnVaYHc?2OJv+|A*!sJexI2Z7-03iJ%`H+mv zP#_EWkRXn|!Emw$c0G<+pPAioyZZ7pgLtwBcFEmv!zNA8*hZjNO;JLz-Edp72aGpn zvqiJKbc!vCVqjD)+-F=8l9bqb}?}R8KCB z|EZpw$>?;cPjASnjc)`HTwMPh(L!)>r;@$10ysGTr8jbQb0=lz;y_?guyC|;ww~SBLN>qz=}4AEi{~IJJtXSoKQeXu(<%Yk)y2_m8kl_nzS1ESA6_epmHNq zbbiZbipf;}DYG_-QH;l^X|kFa0#gm9lmtbdvoHb+p{{618m1_e9Y7LmI0;J*{vZ!y zyn(Wqu`Dv-JfTDd>K{ps>Z**WHCNh9>h$+e~6I^u&c~48*YtJB=#0F<4!8#AGLzvgrp8^*KUOa|2hpLc> z;K>)?2Sa7lO^C#D4RDfY6J)5HcrkvS@aDuR^d?mEN6QS|Gx6Z54ae{D<DsJ`WZD70I&NFAMJ|0xtQ!`s;cjrhBXKa zh=^kMBwuO)*aN8qlWi-ge?g)J#yPE)H2Nu0Dm3XL<9#3xHkQ=JfrZ2olCRghAC)J5 zl?P`_D+tR9^;L7Y&0gN@^py|5?j1iKT;lY*YFB>x3a*s{3v}%2{gPK+qEaQgG^5q7 z<)DF7iqHP6z)h4i!JfjEqp7ib`E>>+;nwbF?E6z^vIMp6OD`vx@j?};^GvW8<*@Qnx*g|q5A94tXC1s5aC_eqy+&b zFvZyYZ&3baxl_*S9wlNS8Olcf zEr0xo8N=WN7wKmxyf7PdG8;4#oH#Xdl!7p+gjkmhb(ls%(l7(3j5V2ag9C2RD4O+m z##_ozI6TumDZA7IQiFtEm*pXik)f`HfeNQTCYfU9%;CcuoK#`7(r~HMFhkeDqo)yo z2&RIk04Y<%=uyg?p`)fDk1>2#WFxS+)g%gTax&ISyQs;P*(7>k3q2`&M=@Dwu>_HX zB{-+f_cT3v2heK_Pb&i`t?<8y;kT}Cdv|0_kwMUuE`^Rk)WX#!CA z!<@SoT&-;MNEI~ZFDjJl^#fcvHQ38``{$30gA$V%I$+}Jprux$xvqU68Yhn_s^MyM zsMvyqPa-wTjB*UAQzs)K(x0~gyx=K%qyl}M1Vj^?qyzf-?5jZ-QByRqjU&5Ls>z~d zKlx6nPC}+UhuO{Ws+37SAWt_)3+HM|7Hf{+(}D$))0Qg0lYLH#T9LR@3oI-hqvQ}sR`x3{Dt?+zI*%^p2dOvM?=2uPdzttvByaBTb{g+9O8tLRJDOiNjY0aJbYs}*<%voT|%BN z`kaML8utz1PnT)og9MUkHh+l&1jCH@icyXmQb;)0T7!hOBPJgf&Ss%^ixTY{Dtuy|woC74cCJ*|}4>zJ4ucLhTXat4?dHio${&Li_mR6Znu z4L~)Lt2Z+1$o%74%H;X@*o_ZAy|j4_C&AnggpG}BD^dL3By};rr`a)rTaZ!eG6!|+ zehxj+caD`(xj+xde_dc&ZDGz80Q=nqkZ$%=VJ-`s z^nd#E;O$Ih=R7UAetR6tnsRUC*wXPLCrBRkF7OVeKXo=yKJ)% zQJnwuHopKI(n`r;NmkIZOWv}@tSe%xv$X~7^PlyqTb!~1Pai#CC z0i~h)g=sbJZ#fDO%L^Ilr z319-;*%7dJ@7mv!XP7zuh;boWN~~vUr#th%6JWhh7m&k2W%uZynrDmeFcvZq(Y>3(=%yUaMCojJ zG_5!n@TO0#`Dt|783mK0HIwL(z>mA8?}Rj9E_yoREaMordL5s-x-1h2c-vnB6xtV> zx)kbGD+@dq9&4l=$}4V?7m91-cBm@^&=(GCWS#0Oes(@ykFe8waL?fJKZy=AZJ@!4 R5P5ibd3X`1s3eu8{tMXGuYdpm delta 3675 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 diff --git a/packages/schemas/__tests__/text.test.ts b/packages/schemas/__tests__/text.test.ts index bc95eea9..91c5dcef 100644 --- a/packages/schemas/__tests__/text.test.ts +++ b/packages/schemas/__tests__/text.test.ts @@ -74,23 +74,29 @@ describe('getSplitPosition test with mocked font width calculations', () => { expect(getSplittedLines('aaaa', mockCalcValues)).toEqual(['aaaa']); }); - it('splits a line to the nearest previous space', () => { + it('splits a line to the nearest previous breakable char', () => { expect(getSplittedLines('aaa bbb', mockCalcValues)).toEqual(['aaa', 'bbb']); + expect(getSplittedLines('top-hat', mockCalcValues)).toEqual(['top-', 'hat']); + expect(getSplittedLines('top—hat', mockCalcValues)).toEqual(['top—', 'hat']); // em dash + expect(getSplittedLines('top–hat', mockCalcValues)).toEqual(['top–', 'hat']); // en dash }); - it('splits a line where the split point is on a space', () => { + it('splits a line where the split point is on a breakable char', () => { expect(getSplittedLines('aaaaa bbbbb', mockCalcValues)).toEqual(['aaaaa', 'bbbbb']); + expect(getSplittedLines('left-hand', mockCalcValues)).toEqual(['left-', 'hand']); }); it('splits a long line in the middle of a word if too long', () => { expect(getSplittedLines('aaaaaa bbb', mockCalcValues)).toEqual(['aaaaa', 'a bbb']); + expect(getSplittedLines('aaaaaa-a b', mockCalcValues)).toEqual(['aaaaa', 'a-a b']); + expect(getSplittedLines('aaaaa-aa b', mockCalcValues)).toEqual(['aaaaa', '-aa b']); }); - it('splits a long line without spaces at exactly 5 chars', () => { + it('splits a long line without breakable chars at exactly 5 chars', () => { expect(getSplittedLines('abcdef', mockCalcValues)).toEqual(['abcde', 'f']); }); - it('splits a very long line without spaces at exactly 5 chars', () => { + it('splits a very long line without breakable chars at exactly 5 chars', () => { expect(getSplittedLines('abcdefghijklmn', mockCalcValues)).toEqual(['abcde', 'fghij', 'klmn']); }); diff --git a/packages/schemas/src/text/helper.ts b/packages/schemas/src/text/helper.ts index 30393c34..234b9345 100644 --- a/packages/schemas/src/text/helper.ts +++ b/packages/schemas/src/text/helper.ts @@ -152,21 +152,41 @@ const getOverPosition = (textLine: string, calcValues: FontWidthCalcValues) => { return null; }; +/** + * Line breakable chars depend on the language and writing system. + * Western writing systems typically use spaces and hyphens as line breakable chars. + * Other writing systems often break on word boundaries so the following + * does not negatively impact them. + * However, this might need to be revisited for broader language support. + */ +const isLineBreakableChar = (char: string) => { + const lineBreakableChars = [' ', '-', "\u2014", "\u2013"]; + return lineBreakableChars.includes(char); +} + /** * Gets the position of the split. Splits the exceeding line at - * the last whitespace prior to it exceeding the bounding box width. + * the last breakable char prior to it exceeding the bounding box width. */ const getSplitPosition = (textLine: string, calcValues: FontWidthCalcValues) => { const overPos = getOverPosition(textLine, calcValues); if (overPos === null) return textLine.length; // input line is shorter than the available space - let overPosTmp = overPos; - while (textLine[overPosTmp] !== ' ' && overPosTmp >= 0) { + if (textLine[overPos] === ' ') { + // if the character immediately beyond the boundary is a space, split + return overPos; + } + + let overPosTmp = overPos - 1; + while (overPosTmp >= 0) { + if (isLineBreakableChar(textLine[overPosTmp])) { + return overPosTmp+1; + } overPosTmp--; } - // For very long lines with no whitespace use the original overPos - return overPosTmp > 0 ? overPosTmp : overPos; + // For very long lines with no breakable chars use the original overPos + return overPos; }; /** @@ -175,7 +195,7 @@ const getSplitPosition = (textLine: string, calcValues: FontWidthCalcValues) => */ export const getSplittedLines = (textLine: string, calcValues: FontWidthCalcValues): string[] => { const splitPos = getSplitPosition(textLine, calcValues); - const splittedLine = textLine.substring(0, splitPos); + const splittedLine = textLine.substring(0, splitPos).trimEnd(); const rest = textLine.substring(splitPos).trimStart(); if (rest === textLine) {