From 2a0c23887fa3eb5d19183b1b425c050f3c7f6e70 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Thu, 29 Jun 2023 21:41:01 +0200 Subject: [PATCH 1/4] TASK: Deprecated `autoparagraph: false` and rename it to `DisabledAutoparagraphMode` --- packages/neos-ui-ckeditor5-bindings/src/manifest.config.js | 1 + .../src/plugins/disabledAutoparagraphMode.js | 6 ++---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/neos-ui-ckeditor5-bindings/src/manifest.config.js b/packages/neos-ui-ckeditor5-bindings/src/manifest.config.js index 70e25db8af..6de045d1ea 100644 --- a/packages/neos-ui-ckeditor5-bindings/src/manifest.config.js +++ b/packages/neos-ui-ckeditor5-bindings/src/manifest.config.js @@ -102,6 +102,7 @@ export default ckEditorRegistry => { // config.set('essentials', addPlugin(Essentials)); config.set('paragraph', addPlugin(Paragraph)); + // @deprecated config.set('disabledAutoparagraphMode', addPlugin(DisabledAutoparagraphMode, disableAutoparagraph)); config.set('sub', addPlugin(Sub, $get('formatting.sub'))); config.set('sup', addPlugin(Sup, $get('formatting.sup'))); diff --git a/packages/neos-ui-ckeditor5-bindings/src/plugins/disabledAutoparagraphMode.js b/packages/neos-ui-ckeditor5-bindings/src/plugins/disabledAutoparagraphMode.js index 17d42ef41e..5956110ac5 100644 --- a/packages/neos-ui-ckeditor5-bindings/src/plugins/disabledAutoparagraphMode.js +++ b/packages/neos-ui-ckeditor5-bindings/src/plugins/disabledAutoparagraphMode.js @@ -1,10 +1,8 @@ import Plugin from '@ckeditor/ckeditor5-core/src/plugin'; /** - * HACK, since there is yet no native support for CKEditor 4 autoparagraph false - * see https://github.com/ckeditor/ckeditor5/issues/762 - * - * We will try to find a serious alternative see https://github.com/neos/neos-ui/pull/3553 + * Legacy HACK -> our previous "inlineMode" the `autoparagraph: false` mode (from CKEditor 4) for backwards compatibility + * @deprecated in favour of the serious "inlineMode" */ export default class DisabledAutoparagraphMode extends Plugin { static get pluginName() { From 2c72e4c5a483a7f22b97661dead13f1b5dbd15e7 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Thu, 29 Jun 2023 22:23:00 +0200 Subject: [PATCH 2/4] FEATURE: Serious ckeditor inlineMode `isInline` --- ...-decoupled-patch-4948255868-bdaefd4a0b.zip | Bin 0 -> 12427 bytes .yarnrc.yml | 2 + .../NodeTypes/Content/InlineHeadline.yaml | 2 +- package.json | 3 +- .../neos-ui-ckeditor5-bindings/package.json | 2 +- .../src/ckEditorApi.js | 12 +++- .../tests/manual/index.js | 2 +- ...tor-decoupled-npm-16.0.0-inline-mode.patch | 64 ++++++++++++++++++ yarn.lock | 17 ++++- 9 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 .yarn/cache/@ckeditor-ckeditor5-editor-decoupled-patch-4948255868-bdaefd4a0b.zip create mode 100644 patches/@ckeditor-ckeditor5-editor-decoupled-npm-16.0.0-inline-mode.patch diff --git a/.yarn/cache/@ckeditor-ckeditor5-editor-decoupled-patch-4948255868-bdaefd4a0b.zip b/.yarn/cache/@ckeditor-ckeditor5-editor-decoupled-patch-4948255868-bdaefd4a0b.zip new file mode 100644 index 0000000000000000000000000000000000000000..3d0898d66b66020603c06f0309f7866e257ebf78 GIT binary patch literal 12427 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É>@~Eo3*Eq6rdxS>+Ur0m`!AIWM3B}mj<|8VUa+s z&S8=2Hx*Jnmra47d_uV8QsL*r74HA?k4G&&_{q0zD(o^u9 zI9~M;RiwzBA0Oj8YI%hl;D%qNkmq<|tnY?epZEnD}t!^v1xNgCk$!O|BIZW+5qy}OI;JpaNo;v3pb0OS~B6sSO)$x3hFNlnnu{+ z*q)>$R~#&R&8B>XPYh2FE7TuM2BzITfJq*O$^f5n{t1MdQnCadJgB?9J8l@qWsTuK z@Fg?7-;j15x(2o%75QGU{s-0~R=FwR#urPD7UU#ukirlqgI$rZ5v4YK;2JZQOi?<( z=J+QpGdLY0(MttJR!TSQ2&)g{AN%`j7sH4#HhtXwi16~lt64hUUd z@60h2${7`;H?yCgjLfhx+uXfhq&Q_L+-B9ws~q(>kzqrJSba0_$jySFkU_kp9Vs7lO~Y_CYrYQJFYb4Qp@0IHf?lhL!T-Q<6s(aZdiUn4NrW+$#AZq6)<2%`mj=7?<8UTO+B%(!yi+Qq>E0POStfcW3W z{8yjhpM8g4|BZ9aQ%CG3)OQ&kFeDd2$-?ADCYz%0J;}Iz%>?%0CC6FWA|_y00i7EZ}w&b&E&G*Ehr{By{y8yRd@K?$5g&K;$mN$kPR9oiR>`TfZ5a$sj2R> zQH8}`NF_j%Rn{HLs~7gEp_?7*b@9X;g!!c~9ilzhGlzdy`Ia@DzceORnm$tR<*Z-9 zbM*=|K0Prp#KglU5l6M1LQ2KjPoy$j@*1&uMaH9-x)$c-K|<{-syOYGVGI)p{~)E#FHfB zGLRUzL}ZOQ?kB!05w%YM-}%}GEyuT#sGQei{amg(`ogx+y=r-@%+Wq2rS6?w)-tk| zOkHDsB%15B6u#KKAKs*DOq3*)=4FKD;YUdSWPyo8DpTGtIDIrrH6T3f;YIKi_ zNirm5CgZXCL7baOGE_8nIPiiFwZWS7es()95zo1>p`WTL4uK3fJBdCl0DWuVhp|0t zcAe%AUa;bAsq3ALMR9~oU{w=j9xx6B?(6;rRNDr>Ub3OQE*x&*+33Q+7Y>ku%=80i zdg^2*+{vv+d}!EWaYXcmw3hcz$pLn>4H<-_b@G_m`Z~IOa1%ICX+@@=#3AeLl%b#< zBl^w-`#oxjOy?^jv&3bj%?OnqQDP>^KdbtmH~AGj5>b#|;W|Sa%VU1oOIlXlSgW`` zQy%6)biKThlh1gN+xNYkzN4? zAetCT&jgI?L)A#Bou!!B1h+n*v%UW+XKh5)j6Y|ofj8bTg`BtM4 zpnvX6R$}phjN{o>yWH+El4p8ENNtj?M7$9_N#ve>88Kqal`=jhI6Uv`L%(yQC1FP_ zq0+!*ck)}<#?9ujh(klTra>4+O3V#$-fc@8;XgZ)*ke+WCjV-*oxjD@e{s6UqUkKF zn~jyWr8*@p;vIbIR6g@59-~>qHvD*Ow7@nys48mBPhg)%YaR1#=~q_tXtL)UNSO}C z`GA+V+g3#l`d<7D?q{nDn2SsT`9M!lUO%akZO~$LB+68GlqanWK?Mqv1Pmx`_*wgV z22nXWWmy!Pl=-eWvbTaRL6*aPc_p*O!r=ASk5IFNZqE|w_iS%PBgbWK`e0g+G*vrGf^m3 z0um1U zSqR8{z0dPz$3&x)u-(`2>*-%!nr)PYTO{JwM=-(uq1}86MLh9YXjz5-Ho4N@&6YgUw zt?TVZi@*v7mULI^g=HqBes4Sai)CfuQp?+2%2 zl}K59LpZOt=W<|{1&L5(0`q)W-cnqVjJ58s_n<8s-yu<}8Uh-=AYd48P_e>KmGY14 z2mWdHIs2&*&~Kuqq}(S(r@aY9O-{iX3We5P5TGU48F*+M(oH{Sfp#x44FqdsabrbD z9%_ZMNS!27_@ZFzJhrjZ<`)=(tekN~sb`z8A^Y{+lh^5J2+|8@05o@*;7oH|oRYh- z(pA!Zv7<_QV%X^N+*El2EII$c$WqLonJr$M#GLjHMno(CC zl`Da*fZm=iG|?#yb?c1!dl(d2XbfiRoO)?RcDt&!uA&~yseTi)z7K$!sjfmO;?lzT zV&fi+x^dXHL1f5!ZxbXaOkT$+KC&}^U033Vkw}!!+m#{q6PBU1I2#~DE@HGw_|7Qr z1{H!rTKA=`GcD%W1lfce#HFBR(a5USf9uq>F?X-N(#%@8dosU9LUppYK~kNvWnd98 zV|W>6(q?mHa8@$|BxfLt^>zbV+0tmXFQ{MbE z#r8-xZUZNcO1ieZj&Y`{A#$QzE*Gd+g?4NbcSvI0Y`&C)^;+}($#h^;n{U0_yQBb1 zsC_0GK5i7+{sH{^g&t{>04b>~_r_DiH-UCR zW-dFjV1)Gdj4FtS6e_df*LW4OL(VE}o%5Z_ZhuNFSw$}sksj_@X4ZiH>g2k{7VRf+ zBpN6gEK3b12Fhcw$*(3#xtU7X{q~mV#llMgzxwiGOLT{L%@MbfB@M!9Rt(Jg;Xi0^ z;4Zz5j|g8VY(PFwPI=$=F|ssU4ic4_Ilv7i6ny?nO!tD9be!(q9>;`zeo&kJpIRxR_fV}&PzsBl$=#|3znTs!>`ghBm zsA_?U;4`^B7yAnzn_z-vZ-w7)6W93Jz)R)J^Q0YNWK6P)DAO%rDqQPeZ-UqaYgT}9 zXoy^x3+gn;I@OK6UK_93j26Wn8hr>K#y%;*D;h{@vW9tGFWORv=wIqFLm=)4Fzmg8 zfuv4En;uKum9xHAgb+L1rhX&P>WpHxPW;i_86~rxpD0R)YVAhdeI|#EhbIzZ9u(QLFz-nCT*YMdIpg)+#7Q1bt zPCokgsHb*68kC&cqBTKUFNRIOW7*i^E-XwLk|bc$C?$XZz8Vtp^4@oWy}heXCA)YN z+-At>V;LoO+T=?2j-?}FyaM}w%IH~XkV4k*gV+s<_)JzI@kY?BYE36yXbD%Xd{U_ADi75e!kw}uaaw$ zUek9&Cj~J~rJj48LNL8cky?knS%Rcr*k-f$Gb4W#yxVvPmAZ`jPPXc zJWQ^GO+;R-Co~|i+x))&v`HtonVIu2YDz$oN$<6{N3qJ9e*|#~ffIW*m4uaZ2HRY^ z^b@aoOoo*Qa=qjr#YpAn*kqZd0LZ*w|8$&E6Wou63M3uzWF{Ps$LV2N()L(yWVNH+ znDmZXiVn?3toMPT#U`AM=JAzf^GdcB2eDL82Tt!xvYB-;+Wm&|>N2Aj0v>l@K7KNk zV4GDJRV8e#7k|Dtg6$dc*G^40je`4>*3vt;`-Lg1^oM;_4(A z7$fUh(?xFVyEsTE0*kMmO=BP8+k?L)=`+nN!hicXJ@n4MonE zG6_U7t6FyNSQcfZhVNIS*L#0CDo^=%Hl>^RH8-iGPhv+((N!5aoe5i1tx_F9+nK}Y zSq!+MqVUZx3$UlpLjR<>I<5^`*q2dW7je0%gW^J3-4a#vX)r>>y^;zyi(XQVK5|8T zmL9hSA-dM5TN?+5rgo;GTr*#oSG9DeAxdHXo3A8SrR<{fIy-(p7`;z3lGUXpBhT^P z9dH*fRhC-B)~LwFv3=2ZP6V*gD38lb4T%rUb5+^rlbIwNH}J-J7_8Y!ksm{Lia04RyfEM1+U0NFJYVIOFD7T1c;0Y95Ek}1 z>qCtp?6JxkegnB)UHw3$cMV9!NWib%z^}q^bYSpz61uYq!>*(Gk{ykQ1d%YsTDFP! z^=gp>k!hH>ys*&_P3LwI-*$@ESq){ASzd}51 z&QND`57FpG2|Mzvmn&3N&)MF^7VlA2MRdBu50Ds(v$1%mC3oCGsUE1pCbc))gM!1u z`6E2Zvq5Kq(-d@k4oS+KVcOQ8Jk?DT{V>US5m57`s;u$j^*o~j^+&{6ad8|os_Qb_ zpD3(#tf*e&bQz%q79`bQsg7#*#qt8p1Iv(1osY;0SJfE?)nb_yQYzy*Q&`YX1st~p zGCMmsQ9p}*SEE(T5;QP2>j_8}qK2Ni@}#L_@mk3bBGAaLm%|hhj_tn1e;4u?#V&=l zOAyTqPD?}=tRhA-OynPq)57eN?71O{&?Jj^ZUmzl!M2=}gw;>F69tj{9&DVK1;-;F zXc=4pu!Ao%RB&9+z(w;ku#Xc+ev^!I;F{emi-Hrv=7d{lO)|6oC*teDa>FdW?|!_;u^_9=V3!*#QS z#KLGz601i>U6_9QvAwzR0zKhfVf&bEbG@xNlY^~|20PAqxf`c0Zy*NsG54M zC=IH5eVaaO&Llqr9>UqpIMFOD0?VRsnVvSc`}#mC$U&S3=j-9066S>EmJeOa?qkl8 zo>6rwX2vZ^Ujjd;xJ-IoWW-j|_RSM`95S7BunooEeWub2zvhx9DKVB$1ln4jA9; za-(oL=-Jc!m=mR;s)00X3~~P%FqE{vHeE$rX3J9K9nInvTSRF;s}+0kwV7$FZAO3< zHXJ_YD%!CHx~fW=$qtw&kIkv;q^e#dQpTlOntY04y1~ql9^-QNLQBT~UU&<(HawEZ zz{%|`U6-Gz47QBwAayRx`i`renSg-oYFeHNmPn>?E@F%3b$-Wx<64gag9~>m9v+5vXR*P~kW>ozM z%;2qUnGw-|*E@blg{&7|=8e^jjYmjbWFGLQOnA&#QgC$HLApP!*Tpw4B2hZhsPi@) zDmh=>iKXbU-o?ho!5A5j+n2Xd0ZrUXvz09p<5;1pdDpFlspCkmbsJFLEZUykbzKVG z>X}k$SYC4C&Ov!r(Pc?kpNT-2vO8KTORU0GW>B8p355f%MyZc&=hvq?J6Gzf57B{q z6yeC^<(lJ1zwDoV6F1ZJ;oD6tom4(AQ8*0Acl#+u(;|u3=|+edc59V4W}o$skVp5C z@F`-2ZR}fpp>Jf{{N3dkPGQx?ALeA?QqSHX2nQ+5KCWYh;PND@wg!c&X5mWRUgf1% zX0~x$sv|eI>+aMm3O~(xJE9Q5Tsyg5vHj;vr7`P=U@a&B@D&CCko~_qOutx|xc+gV zs!G}IvLf)Vb{YEN-1yNJYTZqt0JUcruj<#06D~g>fWp#7*|4He#wyp^5_~+s>D4B2 zuF}Ltm_)J1*d1hG9zZ|{vHOK>fk_71e>*8WxD5{OFvQ=$#d~M>aeeHaBxZkdF2vFy zh}_N}Kw_as@rt+R6iMsxB7oVLM zTt#0Ux|TciV zQdC3?p9tm6j>AHUF9}h0j$DG(v&fE3QNJKvBy%TrZ!CF83v&fn7;VR`27e<@kUAWk zQ@_Hb_p=z^!=X+@n}ea*4|`OnmH-y2?%2D#soQN-YA53L)r+0%9fgV-BU-abxjf%& zn21v$h_#TgWd_b@-8v5#*^@%cPuo(9sAZ;1hW+u7+O{$lX$Sp!LaDkF$?`*xFqN^I zB`((ME=aD|KYzh5fc@GbgCE%_tso9j>4|7R^P5`soOB&jHWFYocsQ6UwR=9;w;n;4 z=j%%;Jp~J*nU`=b7g1S}U#-oA{Dcm2tKaM72%(jCiLfX9>{H}r9yMo>4z2d7IZ9$c zeE5Q^Gshb?^y-hOGFr769KMDoX8ZlfN$l}V$Q|@l%AA_)gwC4HDn7l;Pjd4O{WL5J zua2w1XF+}flC-=arPez<$;4Y#l;)vwVLDMNsKG)U$WoBpGzP7A7cZ1Cec?tGd@ZVP z{!6Cz60vv0Z0t8%2d_XT;ib157)_k4aXz^VB4ljxSeCj91OAWYWQuPs{7*HAJ7{Zs zD@ZaEl0e4ULmo!fYttLGW^0Qz8HP#WR(gxqAyhzz4fsy zRCdm~rvuV~da`)_KHnJ8Ul-||7o2E4`^XBG9TOSEN502AsyIO1=)A50t%_j1k`XgE znu=9y>IAxLik8OqtB)*(WnesZ<%@trC#F2(nj&;s-#i|W0!^NHGyco#n@FI$Yds;%GRC0w*)x69HUNkx{C*P4N1!Pq#L{Ji z#fFHgi))r_Wwz@cFUMX2_25An)uGHBDvhjfpnfQRNNIq0j{R`p8?T1F!bK0P^$wmu zPF>Tq71t}eyc7^HAIM*;gMU3D|6%6>e_Vdk3jek1A8O%0?OcHR*YZDH|GRehuR;D$ z5C3WB0{Xv}e*yA8YKi}e|ECh^cQx_9@cpa*7XE+N7XSHM{>k;b>gnHH&c9UH|NFiC zTLbkw)9-4Se=`k0{T-%%X=8pT`dyOnZ=$kaTJrz>mj1gy;ZLqVFn<@S|1m=T)6NA< z5&jO>KL^VH84kaXl>f!y-}<*X{{I2wgPk#Q* h`%d async options => { propertyDomNode }); + const isInline = editorOptions?.isInline === true || + propertyDomNode.tagName === 'SPAN' || + propertyDomNode.tagName === 'H1' || + propertyDomNode.tagName === 'H2' || + propertyDomNode.tagName === 'H3' || + propertyDomNode.tagName === 'H4' || + propertyDomNode.tagName === 'H5' || + propertyDomNode.tagName === 'H6' || + propertyDomNode.tagName === 'P'; + class NeosEditor extends DecoupledEditor { constructor(...args) { super(...args); @@ -55,7 +65,7 @@ export const createEditor = store => async options => { } return NeosEditor - .create(propertyDomNode, ckEditorConfig) + .create(propertyDomNode, ckEditorConfig, /* this option is introduced via patch */ isInline) .then(editor => { editor.ui.focusTracker.on('change:isFocused', event => { if (event.source.isFocused) { diff --git a/packages/neos-ui-ckeditor5-bindings/tests/manual/index.js b/packages/neos-ui-ckeditor5-bindings/tests/manual/index.js index 8b1d73e9b4..1113368d4b 100644 --- a/packages/neos-ui-ckeditor5-bindings/tests/manual/index.js +++ b/packages/neos-ui-ckeditor5-bindings/tests/manual/index.js @@ -34,7 +34,7 @@ createInlineEditor({ propertyDomNode: document.getElementById('input'), propertyName: 'test', editorOptions: { - autoparagraph: false, + isInline: true, formatting: { h1: true, h2: true, diff --git a/patches/@ckeditor-ckeditor5-editor-decoupled-npm-16.0.0-inline-mode.patch b/patches/@ckeditor-ckeditor5-editor-decoupled-npm-16.0.0-inline-mode.patch new file mode 100644 index 0000000000..0f5a8ba4f7 --- /dev/null +++ b/patches/@ckeditor-ckeditor5-editor-decoupled-npm-16.0.0-inline-mode.patch @@ -0,0 +1,64 @@ + +fixes https://github.com/neos/neos-ui/issues/3545 + +diff --git a/src/decouplededitor.js b/src/decouplededitor.js +index 807e531075bdbded8a34a15ddc5fe50370e0fd61..73afd7a95c8d6b9adf16fe48bf4774d0cfade361 100755 +--- a/src/decouplededitor.js ++++ b/src/decouplededitor.js +@@ -64,7 +64,7 @@ export default class DecoupledEditor extends Editor { + * {@link module:editor-balloon/ballooneditor~BalloonEditor.create `BalloonEditor.create()`}. + * @param {module:core/editor/editorconfig~EditorConfig} config The editor configuration. + */ +- constructor( sourceElementOrData, config ) { ++ constructor( sourceElementOrData, config, isInlineMode ) { + super( config ); + + if ( isElement( sourceElementOrData ) ) { +@@ -74,7 +74,25 @@ export default class DecoupledEditor extends Editor { + + this.data.processor = new HtmlDataProcessor(); + +- this.model.document.createRoot(); ++ if (isInlineMode === false) { ++ this.model.document.createRoot(); ++ } else { ++ // patched ala https://github.com/ckeditor/ckeditor5/issues/762#issuecomment-370762111 ++ ++ // we define paragraph as root instead of $root. This will give us no outer tags out of the box and also disable the splitting ++ this.model.document.createRoot('paragraph'); ++ ++ // it is enforced that the root cannot be splitted, but to make this obvious for other plugins we set isLimit ++ this.on('ready', () => this.model.schema.extend('paragraph', {isLimit: true})); ++ ++ // we redefine enter key to create soft breaks (
) instead of new paragraphs ++ this.editing.view.document.on('enter', (evt, data) => { ++ this.execute('shiftEnter'); ++ data.preventDefault(); ++ evt.stop(); ++ this.editing.view.scrollToTheSelection(); ++ }, {priority: 'high'}); ++ } + + const shouldToolbarGroupWhenFull = !this.config.get( 'toolbar.shouldNotGroupWhenFull' ); + const view = new DecoupledEditorUIView( this.locale, this.editing.view, { +@@ -218,9 +236,10 @@ export default class DecoupledEditor extends Editor { + * {@link module:editor-decoupled/decouplededitorui~DecoupledEditorUI#getEditableElement `editor.ui.getEditableElement()`}. + * + * @param {module:core/editor/editorconfig~EditorConfig} [config] The editor configuration. ++ * @param {Boolean} isInlineMode Patched inline mode https://github.com/ckeditor/ckeditor5/issues/762#issuecomment-370762111 + * @returns {Promise} A promise resolved once the editor is ready. The promise resolves with the created editor instance. + */ +- static create( sourceElementOrData, config = {} ) { ++ static create( sourceElementOrData, config = {}, isInlineMode ) { + return new Promise( resolve => { + const isHTMLElement = isElement( sourceElementOrData ); + +@@ -230,7 +249,7 @@ export default class DecoupledEditor extends Editor { + 'editor-wrong-element: This type of editor cannot be initialized inside