@ckeditor/ckeditor5-table 47.3.0 → 47.4.0-alpha.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/LICENSE.md +1 -1
- package/build/table.js +3 -3
- package/build/translations/af.js +1 -1
- package/build/translations/ar.js +1 -1
- package/build/translations/ast.js +1 -1
- package/build/translations/az.js +1 -1
- package/build/translations/be.js +1 -1
- package/build/translations/bg.js +1 -1
- package/build/translations/bn.js +1 -1
- package/build/translations/bs.js +1 -1
- package/build/translations/ca.js +1 -1
- package/build/translations/cs.js +1 -1
- package/build/translations/da.js +1 -1
- package/build/translations/de-ch.js +1 -1
- package/build/translations/de.js +1 -1
- package/build/translations/el.js +1 -1
- package/build/translations/en-au.js +1 -1
- package/build/translations/en-gb.js +1 -1
- package/build/translations/eo.js +1 -1
- package/build/translations/es-co.js +1 -1
- package/build/translations/es.js +1 -1
- package/build/translations/et.js +1 -1
- package/build/translations/eu.js +1 -1
- package/build/translations/fa.js +1 -1
- package/build/translations/fi.js +1 -1
- package/build/translations/fr.js +1 -1
- package/build/translations/gl.js +1 -1
- package/build/translations/gu.js +1 -1
- package/build/translations/he.js +1 -1
- package/build/translations/hi.js +1 -1
- package/build/translations/hr.js +1 -1
- package/build/translations/hu.js +1 -1
- package/build/translations/hy.js +1 -1
- package/build/translations/id.js +1 -1
- package/build/translations/it.js +1 -1
- package/build/translations/ja.js +1 -1
- package/build/translations/jv.js +1 -1
- package/build/translations/kk.js +1 -1
- package/build/translations/km.js +1 -1
- package/build/translations/kn.js +1 -1
- package/build/translations/ko.js +1 -1
- package/build/translations/ku.js +1 -1
- package/build/translations/lt.js +1 -1
- package/build/translations/lv.js +1 -1
- package/build/translations/ms.js +1 -1
- package/build/translations/nb.js +1 -1
- package/build/translations/ne.js +1 -1
- package/build/translations/nl.js +1 -1
- package/build/translations/no.js +1 -1
- package/build/translations/oc.js +1 -1
- package/build/translations/pl.js +1 -1
- package/build/translations/pt-br.js +1 -1
- package/build/translations/pt.js +1 -1
- package/build/translations/ro.js +1 -1
- package/build/translations/ru.js +1 -1
- package/build/translations/si.js +1 -1
- package/build/translations/sk.js +1 -1
- package/build/translations/sl.js +1 -1
- package/build/translations/sq.js +1 -1
- package/build/translations/sr-latn.js +1 -1
- package/build/translations/sr.js +1 -1
- package/build/translations/sv.js +1 -1
- package/build/translations/th.js +1 -1
- package/build/translations/ti.js +1 -1
- package/build/translations/tk.js +1 -1
- package/build/translations/tr.js +1 -1
- package/build/translations/tt.js +1 -1
- package/build/translations/ug.js +1 -1
- package/build/translations/uk.js +1 -1
- package/build/translations/ur.js +1 -1
- package/build/translations/uz.js +1 -1
- package/build/translations/vi.js +1 -1
- package/build/translations/zh-cn.js +1 -1
- package/build/translations/zh.js +1 -1
- package/dist/index-content.css +5 -1
- package/dist/index-editor.css +77 -86
- package/dist/index.css +124 -127
- package/dist/index.css.map +1 -1
- package/dist/index.js +863 -138
- package/dist/index.js.map +1 -1
- package/dist/translations/af.d.ts +1 -1
- package/dist/translations/af.js +2 -2
- package/dist/translations/af.umd.js +2 -2
- package/dist/translations/ar.d.ts +1 -1
- package/dist/translations/ar.js +2 -2
- package/dist/translations/ar.umd.js +2 -2
- package/dist/translations/ast.d.ts +1 -1
- package/dist/translations/ast.js +2 -2
- package/dist/translations/ast.umd.js +2 -2
- package/dist/translations/az.d.ts +1 -1
- package/dist/translations/az.js +2 -2
- package/dist/translations/az.umd.js +2 -2
- package/dist/translations/be.d.ts +1 -1
- package/dist/translations/be.js +2 -2
- package/dist/translations/be.umd.js +2 -2
- package/dist/translations/bg.d.ts +1 -1
- package/dist/translations/bg.js +2 -2
- package/dist/translations/bg.umd.js +2 -2
- package/dist/translations/bn.d.ts +1 -1
- package/dist/translations/bn.js +2 -2
- package/dist/translations/bn.umd.js +2 -2
- package/dist/translations/bs.d.ts +1 -1
- package/dist/translations/bs.js +2 -2
- package/dist/translations/bs.umd.js +2 -2
- package/dist/translations/ca.d.ts +1 -1
- package/dist/translations/ca.js +2 -2
- package/dist/translations/ca.umd.js +2 -2
- package/dist/translations/cs.d.ts +1 -1
- package/dist/translations/cs.js +2 -2
- package/dist/translations/cs.umd.js +2 -2
- package/dist/translations/da.d.ts +1 -1
- package/dist/translations/da.js +2 -2
- package/dist/translations/da.umd.js +2 -2
- package/dist/translations/de-ch.d.ts +1 -1
- package/dist/translations/de-ch.js +2 -2
- package/dist/translations/de-ch.umd.js +2 -2
- package/dist/translations/de.d.ts +1 -1
- package/dist/translations/de.js +2 -2
- package/dist/translations/de.umd.js +2 -2
- package/dist/translations/el.d.ts +1 -1
- package/dist/translations/el.js +2 -2
- package/dist/translations/el.umd.js +2 -2
- package/dist/translations/en-au.d.ts +1 -1
- package/dist/translations/en-au.js +2 -2
- package/dist/translations/en-au.umd.js +2 -2
- package/dist/translations/en-gb.d.ts +1 -1
- package/dist/translations/en-gb.js +2 -2
- package/dist/translations/en-gb.umd.js +2 -2
- package/dist/translations/en.d.ts +1 -1
- package/dist/translations/en.js +2 -2
- package/dist/translations/en.umd.js +2 -2
- package/dist/translations/eo.d.ts +1 -1
- package/dist/translations/eo.js +2 -2
- package/dist/translations/eo.umd.js +2 -2
- package/dist/translations/es-co.d.ts +1 -1
- package/dist/translations/es-co.js +2 -2
- package/dist/translations/es-co.umd.js +2 -2
- package/dist/translations/es.d.ts +1 -1
- package/dist/translations/es.js +2 -2
- package/dist/translations/es.umd.js +2 -2
- package/dist/translations/et.d.ts +1 -1
- package/dist/translations/et.js +2 -2
- package/dist/translations/et.umd.js +2 -2
- package/dist/translations/eu.d.ts +1 -1
- package/dist/translations/eu.js +2 -2
- package/dist/translations/eu.umd.js +2 -2
- package/dist/translations/fa.d.ts +1 -1
- package/dist/translations/fa.js +2 -2
- package/dist/translations/fa.umd.js +2 -2
- package/dist/translations/fi.d.ts +1 -1
- package/dist/translations/fi.js +2 -2
- package/dist/translations/fi.umd.js +2 -2
- package/dist/translations/fr.d.ts +1 -1
- package/dist/translations/fr.js +2 -2
- package/dist/translations/fr.umd.js +2 -2
- package/dist/translations/gl.d.ts +1 -1
- package/dist/translations/gl.js +2 -2
- package/dist/translations/gl.umd.js +2 -2
- package/dist/translations/gu.d.ts +1 -1
- package/dist/translations/gu.js +2 -2
- package/dist/translations/gu.umd.js +2 -2
- package/dist/translations/he.d.ts +1 -1
- package/dist/translations/he.js +2 -2
- package/dist/translations/he.umd.js +2 -2
- package/dist/translations/hi.d.ts +1 -1
- package/dist/translations/hi.js +2 -2
- package/dist/translations/hi.umd.js +2 -2
- package/dist/translations/hr.d.ts +1 -1
- package/dist/translations/hr.js +2 -2
- package/dist/translations/hr.umd.js +2 -2
- package/dist/translations/hu.d.ts +1 -1
- package/dist/translations/hu.js +2 -2
- package/dist/translations/hu.umd.js +2 -2
- package/dist/translations/hy.d.ts +1 -1
- package/dist/translations/hy.js +2 -2
- package/dist/translations/hy.umd.js +2 -2
- package/dist/translations/id.d.ts +1 -1
- package/dist/translations/id.js +2 -2
- package/dist/translations/id.umd.js +2 -2
- package/dist/translations/it.d.ts +1 -1
- package/dist/translations/it.js +2 -2
- package/dist/translations/it.umd.js +2 -2
- package/dist/translations/ja.d.ts +1 -1
- package/dist/translations/ja.js +2 -2
- package/dist/translations/ja.umd.js +2 -2
- package/dist/translations/jv.d.ts +1 -1
- package/dist/translations/jv.js +2 -2
- package/dist/translations/jv.umd.js +2 -2
- package/dist/translations/kk.d.ts +1 -1
- package/dist/translations/kk.js +2 -2
- package/dist/translations/kk.umd.js +2 -2
- package/dist/translations/km.d.ts +1 -1
- package/dist/translations/km.js +2 -2
- package/dist/translations/km.umd.js +2 -2
- package/dist/translations/kn.d.ts +1 -1
- package/dist/translations/kn.js +2 -2
- package/dist/translations/kn.umd.js +2 -2
- package/dist/translations/ko.d.ts +1 -1
- package/dist/translations/ko.js +2 -2
- package/dist/translations/ko.umd.js +2 -2
- package/dist/translations/ku.d.ts +1 -1
- package/dist/translations/ku.js +2 -2
- package/dist/translations/ku.umd.js +2 -2
- package/dist/translations/lt.d.ts +1 -1
- package/dist/translations/lt.js +2 -2
- package/dist/translations/lt.umd.js +2 -2
- package/dist/translations/lv.d.ts +1 -1
- package/dist/translations/lv.js +2 -2
- package/dist/translations/lv.umd.js +2 -2
- package/dist/translations/ms.d.ts +1 -1
- package/dist/translations/ms.js +2 -2
- package/dist/translations/ms.umd.js +2 -2
- package/dist/translations/nb.d.ts +1 -1
- package/dist/translations/nb.js +2 -2
- package/dist/translations/nb.umd.js +2 -2
- package/dist/translations/ne.d.ts +1 -1
- package/dist/translations/ne.js +2 -2
- package/dist/translations/ne.umd.js +2 -2
- package/dist/translations/nl.d.ts +1 -1
- package/dist/translations/nl.js +2 -2
- package/dist/translations/nl.umd.js +2 -2
- package/dist/translations/no.d.ts +1 -1
- package/dist/translations/no.js +2 -2
- package/dist/translations/no.umd.js +2 -2
- package/dist/translations/oc.d.ts +1 -1
- package/dist/translations/oc.js +2 -2
- package/dist/translations/oc.umd.js +2 -2
- package/dist/translations/pl.d.ts +1 -1
- package/dist/translations/pl.js +2 -2
- package/dist/translations/pl.umd.js +2 -2
- package/dist/translations/pt-br.d.ts +1 -1
- package/dist/translations/pt-br.js +2 -2
- package/dist/translations/pt-br.umd.js +2 -2
- package/dist/translations/pt.d.ts +1 -1
- package/dist/translations/pt.js +2 -2
- package/dist/translations/pt.umd.js +2 -2
- package/dist/translations/ro.d.ts +1 -1
- package/dist/translations/ro.js +2 -2
- package/dist/translations/ro.umd.js +2 -2
- package/dist/translations/ru.d.ts +1 -1
- package/dist/translations/ru.js +2 -2
- package/dist/translations/ru.umd.js +2 -2
- package/dist/translations/si.d.ts +1 -1
- package/dist/translations/si.js +2 -2
- package/dist/translations/si.umd.js +2 -2
- package/dist/translations/sk.d.ts +1 -1
- package/dist/translations/sk.js +2 -2
- package/dist/translations/sk.umd.js +2 -2
- package/dist/translations/sl.d.ts +1 -1
- package/dist/translations/sl.js +2 -2
- package/dist/translations/sl.umd.js +2 -2
- package/dist/translations/sq.d.ts +1 -1
- package/dist/translations/sq.js +2 -2
- package/dist/translations/sq.umd.js +2 -2
- package/dist/translations/sr-latn.d.ts +1 -1
- package/dist/translations/sr-latn.js +2 -2
- package/dist/translations/sr-latn.umd.js +2 -2
- package/dist/translations/sr.d.ts +1 -1
- package/dist/translations/sr.js +2 -2
- package/dist/translations/sr.umd.js +2 -2
- package/dist/translations/sv.d.ts +1 -1
- package/dist/translations/sv.js +2 -2
- package/dist/translations/sv.umd.js +2 -2
- package/dist/translations/th.d.ts +1 -1
- package/dist/translations/th.js +2 -2
- package/dist/translations/th.umd.js +2 -2
- package/dist/translations/ti.d.ts +1 -1
- package/dist/translations/ti.js +2 -2
- package/dist/translations/ti.umd.js +2 -2
- package/dist/translations/tk.d.ts +1 -1
- package/dist/translations/tk.js +2 -2
- package/dist/translations/tk.umd.js +2 -2
- package/dist/translations/tr.d.ts +1 -1
- package/dist/translations/tr.js +2 -2
- package/dist/translations/tr.umd.js +2 -2
- package/dist/translations/tt.d.ts +1 -1
- package/dist/translations/tt.js +2 -2
- package/dist/translations/tt.umd.js +2 -2
- package/dist/translations/ug.d.ts +1 -1
- package/dist/translations/ug.js +2 -2
- package/dist/translations/ug.umd.js +2 -2
- package/dist/translations/uk.d.ts +1 -1
- package/dist/translations/uk.js +2 -2
- package/dist/translations/uk.umd.js +2 -2
- package/dist/translations/ur.d.ts +1 -1
- package/dist/translations/ur.js +2 -2
- package/dist/translations/ur.umd.js +2 -2
- package/dist/translations/uz.d.ts +1 -1
- package/dist/translations/uz.js +2 -2
- package/dist/translations/uz.umd.js +2 -2
- package/dist/translations/vi.d.ts +1 -1
- package/dist/translations/vi.js +2 -2
- package/dist/translations/vi.umd.js +2 -2
- package/dist/translations/zh-cn.d.ts +1 -1
- package/dist/translations/zh-cn.js +2 -2
- package/dist/translations/zh-cn.umd.js +2 -2
- package/dist/translations/zh.d.ts +1 -1
- package/dist/translations/zh.js +2 -2
- package/dist/translations/zh.umd.js +2 -2
- package/lang/contexts.json +3 -0
- package/lang/translations/af.po +13 -1
- package/lang/translations/ar.po +13 -1
- package/lang/translations/ast.po +13 -1
- package/lang/translations/az.po +13 -1
- package/lang/translations/be.po +13 -1
- package/lang/translations/bg.po +13 -1
- package/lang/translations/bn.po +13 -1
- package/lang/translations/bs.po +13 -1
- package/lang/translations/ca.po +13 -1
- package/lang/translations/cs.po +13 -1
- package/lang/translations/da.po +13 -1
- package/lang/translations/de-ch.po +13 -1
- package/lang/translations/de.po +13 -1
- package/lang/translations/el.po +13 -1
- package/lang/translations/en-au.po +13 -1
- package/lang/translations/en-gb.po +13 -1
- package/lang/translations/en.po +13 -1
- package/lang/translations/eo.po +13 -1
- package/lang/translations/es-co.po +13 -1
- package/lang/translations/es.po +13 -1
- package/lang/translations/et.po +13 -1
- package/lang/translations/eu.po +13 -1
- package/lang/translations/fa.po +13 -1
- package/lang/translations/fi.po +13 -1
- package/lang/translations/fr.po +13 -1
- package/lang/translations/gl.po +13 -1
- package/lang/translations/gu.po +13 -1
- package/lang/translations/he.po +13 -1
- package/lang/translations/hi.po +13 -1
- package/lang/translations/hr.po +13 -1
- package/lang/translations/hu.po +13 -1
- package/lang/translations/hy.po +13 -1
- package/lang/translations/id.po +13 -1
- package/lang/translations/it.po +13 -1
- package/lang/translations/ja.po +13 -1
- package/lang/translations/jv.po +13 -1
- package/lang/translations/kk.po +13 -1
- package/lang/translations/km.po +13 -1
- package/lang/translations/kn.po +13 -1
- package/lang/translations/ko.po +13 -1
- package/lang/translations/ku.po +13 -1
- package/lang/translations/lt.po +13 -1
- package/lang/translations/lv.po +13 -1
- package/lang/translations/ms.po +13 -1
- package/lang/translations/nb.po +13 -1
- package/lang/translations/ne.po +13 -1
- package/lang/translations/nl.po +13 -1
- package/lang/translations/no.po +13 -1
- package/lang/translations/oc.po +13 -1
- package/lang/translations/pl.po +13 -1
- package/lang/translations/pt-br.po +13 -1
- package/lang/translations/pt.po +13 -1
- package/lang/translations/ro.po +13 -1
- package/lang/translations/ru.po +13 -1
- package/lang/translations/si.po +13 -1
- package/lang/translations/sk.po +13 -1
- package/lang/translations/sl.po +13 -1
- package/lang/translations/sq.po +13 -1
- package/lang/translations/sr-latn.po +13 -1
- package/lang/translations/sr.po +13 -1
- package/lang/translations/sv.po +13 -1
- package/lang/translations/th.po +13 -1
- package/lang/translations/ti.po +13 -1
- package/lang/translations/tk.po +13 -1
- package/lang/translations/tr.po +13 -1
- package/lang/translations/tt.po +13 -1
- package/lang/translations/ug.po +13 -1
- package/lang/translations/uk.po +13 -1
- package/lang/translations/ur.po +13 -1
- package/lang/translations/uz.po +13 -1
- package/lang/translations/vi.po +13 -1
- package/lang/translations/zh-cn.po +13 -1
- package/lang/translations/zh.po +13 -1
- package/package.json +10 -10
- package/src/augmentation.d.ts +11 -2
- package/src/augmentation.js +1 -1
- package/src/commands/insertcolumncommand.d.ts +1 -1
- package/src/commands/insertcolumncommand.js +1 -1
- package/src/commands/insertrowcommand.d.ts +1 -1
- package/src/commands/insertrowcommand.js +1 -1
- package/src/commands/inserttablecommand.d.ts +1 -1
- package/src/commands/inserttablecommand.js +1 -1
- package/src/commands/inserttablelayoutcommand.d.ts +1 -1
- package/src/commands/inserttablelayoutcommand.js +1 -1
- package/src/commands/mergecellcommand.d.ts +1 -1
- package/src/commands/mergecellcommand.js +1 -1
- package/src/commands/mergecellscommand.d.ts +1 -1
- package/src/commands/mergecellscommand.js +1 -1
- package/src/commands/removecolumncommand.d.ts +1 -1
- package/src/commands/removecolumncommand.js +1 -1
- package/src/commands/removerowcommand.d.ts +1 -1
- package/src/commands/removerowcommand.js +1 -1
- package/src/commands/selectcolumncommand.d.ts +1 -1
- package/src/commands/selectcolumncommand.js +1 -1
- package/src/commands/selectrowcommand.d.ts +1 -1
- package/src/commands/selectrowcommand.js +1 -1
- package/src/commands/setheadercolumncommand.d.ts +1 -1
- package/src/commands/setheadercolumncommand.js +3 -3
- package/src/commands/setheaderrowcommand.d.ts +1 -1
- package/src/commands/setheaderrowcommand.js +2 -3
- package/src/commands/splitcellcommand.d.ts +1 -1
- package/src/commands/splitcellcommand.js +1 -1
- package/src/converters/downcast.d.ts +5 -3
- package/src/converters/downcast.js +21 -9
- package/src/converters/table-caption-post-fixer.d.ts +1 -1
- package/src/converters/table-caption-post-fixer.js +1 -1
- package/src/converters/table-cell-paragraph-post-fixer.d.ts +1 -1
- package/src/converters/table-cell-paragraph-post-fixer.js +1 -1
- package/src/converters/table-cell-refresh-handler.d.ts +1 -1
- package/src/converters/table-cell-refresh-handler.js +1 -1
- package/src/converters/table-headings-refresh-handler.d.ts +1 -1
- package/src/converters/table-headings-refresh-handler.js +1 -1
- package/src/converters/table-layout-post-fixer.d.ts +1 -1
- package/src/converters/table-layout-post-fixer.js +1 -1
- package/src/converters/tableproperties.d.ts +1 -1
- package/src/converters/tableproperties.js +1 -1
- package/src/converters/upcasttable.d.ts +1 -1
- package/src/converters/upcasttable.js +13 -6
- package/src/index.d.ts +3 -2
- package/src/index.js +3 -2
- package/src/plaintableoutput.d.ts +1 -1
- package/src/plaintableoutput.js +1 -1
- package/src/table.d.ts +1 -1
- package/src/table.js +1 -1
- package/src/tablecaption/tablecaptionediting.d.ts +1 -1
- package/src/tablecaption/tablecaptionediting.js +1 -1
- package/src/tablecaption/tablecaptionui.d.ts +1 -1
- package/src/tablecaption/tablecaptionui.js +1 -1
- package/src/tablecaption/toggletablecaptioncommand.d.ts +1 -1
- package/src/tablecaption/toggletablecaptioncommand.js +1 -1
- package/src/tablecaption/utils.d.ts +1 -1
- package/src/tablecaption/utils.js +1 -1
- package/src/tablecaption.d.ts +1 -1
- package/src/tablecaption.js +1 -1
- package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +1 -1
- package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +1 -1
- package/src/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +1 -1
- package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +1 -1
- package/src/tablecellproperties/commands/tablecellborderstylecommand.d.ts +1 -1
- package/src/tablecellproperties/commands/tablecellborderstylecommand.js +1 -1
- package/src/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +1 -1
- package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +1 -1
- package/src/tablecellproperties/commands/tablecellheightcommand.d.ts +1 -1
- package/src/tablecellproperties/commands/tablecellheightcommand.js +1 -1
- package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +1 -1
- package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +1 -1
- package/src/tablecellproperties/commands/tablecellpaddingcommand.d.ts +1 -1
- package/src/tablecellproperties/commands/tablecellpaddingcommand.js +1 -1
- package/src/tablecellproperties/commands/tablecellpropertycommand.d.ts +20 -2
- package/src/tablecellproperties/commands/tablecellpropertycommand.js +9 -1
- package/src/tablecellproperties/commands/tablecelltypecommand.d.ts +53 -0
- package/src/tablecellproperties/commands/tablecelltypecommand.js +167 -0
- package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +1 -1
- package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +1 -1
- package/src/tablecellproperties/tablecellpropertiesediting.d.ts +1 -4
- package/src/tablecellproperties/tablecellpropertiesediting.js +121 -1
- package/src/tablecellproperties/tablecellpropertiesui.d.ts +1 -1
- package/src/tablecellproperties/tablecellpropertiesui.js +1 -1
- package/src/tablecellproperties/tablecellpropertiesuiexperimental.d.ts +1 -1
- package/src/tablecellproperties/tablecellpropertiesuiexperimental.js +34 -12
- package/src/tablecellproperties/ui/tablecellpropertiesview.d.ts +1 -1
- package/src/tablecellproperties/ui/tablecellpropertiesview.js +1 -1
- package/src/tablecellproperties/ui/tablecellpropertiesviewexperimental.d.ts +33 -4
- package/src/tablecellproperties/ui/tablecellpropertiesviewexperimental.js +130 -19
- package/src/tablecellproperties.d.ts +1 -1
- package/src/tablecellproperties.js +1 -1
- package/src/tablecellwidth/commands/tablecellwidthcommand.d.ts +1 -1
- package/src/tablecellwidth/commands/tablecellwidthcommand.js +1 -1
- package/src/tablecellwidth/tablecellwidthediting.d.ts +1 -1
- package/src/tablecellwidth/tablecellwidthediting.js +1 -1
- package/src/tableclipboard.d.ts +1 -1
- package/src/tableclipboard.js +1 -1
- package/src/tablecolumnresize/constants.d.ts +1 -1
- package/src/tablecolumnresize/constants.js +1 -1
- package/src/tablecolumnresize/converters.d.ts +1 -1
- package/src/tablecolumnresize/converters.js +1 -1
- package/src/tablecolumnresize/tablecolumnresizeediting.d.ts +1 -1
- package/src/tablecolumnresize/tablecolumnresizeediting.js +1 -1
- package/src/tablecolumnresize/tablewidthscommand.d.ts +1 -1
- package/src/tablecolumnresize/tablewidthscommand.js +1 -1
- package/src/tablecolumnresize/utils.d.ts +1 -1
- package/src/tablecolumnresize/utils.js +1 -1
- package/src/tablecolumnresize.d.ts +1 -1
- package/src/tablecolumnresize.js +1 -1
- package/src/tableconfig.d.ts +19 -1
- package/src/tableconfig.js +1 -1
- package/src/tableediting.d.ts +1 -1
- package/src/tableediting.js +24 -6
- package/src/tablekeyboard.d.ts +1 -1
- package/src/tablekeyboard.js +1 -1
- package/src/tablelayout/commands/tabletypecommand.d.ts +1 -1
- package/src/tablelayout/commands/tabletypecommand.js +1 -1
- package/src/tablelayout/tablelayoutediting.d.ts +1 -1
- package/src/tablelayout/tablelayoutediting.js +1 -1
- package/src/tablelayout/tablelayoutui.d.ts +1 -1
- package/src/tablelayout/tablelayoutui.js +12 -5
- package/src/tablelayout.d.ts +1 -1
- package/src/tablelayout.js +1 -1
- package/src/tablemouse/mouseeventsobserver.d.ts +1 -1
- package/src/tablemouse/mouseeventsobserver.js +1 -1
- package/src/tablemouse.d.ts +1 -1
- package/src/tablemouse.js +1 -1
- package/src/tableproperties/commands/tablealignmentcommand.d.ts +1 -1
- package/src/tableproperties/commands/tablealignmentcommand.js +1 -1
- package/src/tableproperties/commands/tablebackgroundcolorcommand.d.ts +1 -1
- package/src/tableproperties/commands/tablebackgroundcolorcommand.js +1 -1
- package/src/tableproperties/commands/tablebordercolorcommand.d.ts +1 -1
- package/src/tableproperties/commands/tablebordercolorcommand.js +1 -1
- package/src/tableproperties/commands/tableborderstylecommand.d.ts +1 -1
- package/src/tableproperties/commands/tableborderstylecommand.js +1 -1
- package/src/tableproperties/commands/tableborderwidthcommand.d.ts +1 -1
- package/src/tableproperties/commands/tableborderwidthcommand.js +1 -1
- package/src/tableproperties/commands/tableheightcommand.d.ts +1 -1
- package/src/tableproperties/commands/tableheightcommand.js +1 -1
- package/src/tableproperties/commands/tablepropertycommand.d.ts +1 -1
- package/src/tableproperties/commands/tablepropertycommand.js +1 -1
- package/src/tableproperties/commands/tablewidthcommand.d.ts +1 -1
- package/src/tableproperties/commands/tablewidthcommand.js +1 -1
- package/src/tableproperties/tablepropertiesediting.d.ts +1 -1
- package/src/tableproperties/tablepropertiesediting.js +1 -1
- package/src/tableproperties/tablepropertiesui.d.ts +1 -1
- package/src/tableproperties/tablepropertiesui.js +1 -1
- package/src/tableproperties/tablepropertiesuiexperimental.d.ts +1 -1
- package/src/tableproperties/tablepropertiesuiexperimental.js +1 -1
- package/src/tableproperties/ui/tablepropertiesview.d.ts +1 -1
- package/src/tableproperties/ui/tablepropertiesview.js +1 -1
- package/src/tableproperties/ui/tablepropertiesviewexperimental.d.ts +1 -1
- package/src/tableproperties/ui/tablepropertiesviewexperimental.js +1 -1
- package/src/tableproperties.d.ts +1 -1
- package/src/tableproperties.js +1 -1
- package/src/tableselection.d.ts +1 -1
- package/src/tableselection.js +1 -1
- package/src/tabletoolbar.d.ts +1 -1
- package/src/tabletoolbar.js +1 -1
- package/src/tableui.d.ts +1 -1
- package/src/tableui.js +1 -1
- package/src/tableutils.d.ts +39 -1
- package/src/tableutils.js +220 -14
- package/src/tablewalker.d.ts +1 -1
- package/src/tablewalker.js +1 -1
- package/src/ui/colorinputview.d.ts +1 -1
- package/src/ui/colorinputview.js +1 -1
- package/src/ui/inserttableview.d.ts +1 -1
- package/src/ui/inserttableview.js +1 -1
- package/src/utils/common.d.ts +24 -1
- package/src/utils/common.js +43 -1
- package/src/utils/structure.d.ts +1 -1
- package/src/utils/structure.js +1 -1
- package/src/utils/table-properties.d.ts +1 -1
- package/src/utils/table-properties.js +1 -1
- package/src/utils/ui/contextualballoon.d.ts +1 -1
- package/src/utils/ui/contextualballoon.js +1 -1
- package/src/utils/ui/table-properties.d.ts +1 -1
- package/src/utils/ui/table-properties.js +1 -1
- package/src/utils/ui/table-propertiesexperimental.d.ts +1 -1
- package/src/utils/ui/table-propertiesexperimental.js +1 -1
- package/src/utils/ui/widget.d.ts +1 -1
- package/src/utils/ui/widget.js +1 -1
- package/theme/colorinput.css +1 -1
- package/theme/formrow-experimental.css +1 -1
- package/theme/formrow.css +1 -1
- package/theme/inserttable.css +1 -1
- package/theme/table.css +7 -2
- package/theme/tablecaption.css +1 -1
- package/theme/tablecellproperties-experimental.css +4 -0
- package/theme/tablecellproperties.css +1 -1
- package/theme/tablecolumnresize.css +1 -1
- package/theme/tableediting.css +1 -1
- package/theme/tableform-experimental.css +1 -13
- package/theme/tableform.css +6 -7
- package/theme/tablelayout.css +1 -1
- package/theme/tableproperties-experimental.css +1 -1
- package/theme/tableproperties.css +1 -1
- package/theme/tableselection.css +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
import { createEmptyTableCell } from '../utils/common.js';
|
|
@@ -159,10 +159,13 @@ export function ensureParagraphInTableCell(elementName) {
|
|
|
159
159
|
* headingRows - The number of rows that go as table headers.
|
|
160
160
|
* headingColumns - The maximum number of row headings.
|
|
161
161
|
* rows - Sorted `<tr>` elements as they should go into the model - ie. if `<thead>` is inserted after `<tbody>` in the view.
|
|
162
|
+
*
|
|
163
|
+
* @param viewTable The view table element.
|
|
164
|
+
* @returns The table metadata.
|
|
162
165
|
*/
|
|
163
166
|
function scanTable(viewTable) {
|
|
164
|
-
let headingRows = 0;
|
|
165
167
|
let headingColumns = undefined;
|
|
168
|
+
let shouldAccumulateHeadingRows = true;
|
|
166
169
|
// The `<tbody>` and `<thead>` sections in the DOM do not have to be in order `<thead>` -> `<tbody>` and there might be more than one
|
|
167
170
|
// of them.
|
|
168
171
|
// As the model does not have these sections, rows from different sections must be sorted.
|
|
@@ -188,6 +191,7 @@ function scanTable(viewTable) {
|
|
|
188
191
|
}
|
|
189
192
|
// Save the first `<thead>` in the table as table header - all other ones will be converted to table body rows.
|
|
190
193
|
if (tableChild.name === 'thead' && !firstTheadElement) {
|
|
194
|
+
shouldAccumulateHeadingRows = true;
|
|
191
195
|
firstTheadElement = tableChild;
|
|
192
196
|
}
|
|
193
197
|
// There might be some extra empty text nodes between the `<tr>`s.
|
|
@@ -208,12 +212,15 @@ function scanTable(viewTable) {
|
|
|
208
212
|
// of the cell span from the previous row.
|
|
209
213
|
// Issue: https://github.com/ckeditor/ckeditor5/issues/17556
|
|
210
214
|
(maxPrevColumns === null || trColumns.length === maxPrevColumns) &&
|
|
211
|
-
trColumns.every(e => e.is('element', 'th'))
|
|
212
|
-
|
|
215
|
+
trColumns.every(e => e.is('element', 'th')) &&
|
|
216
|
+
// If there is at least one "normal" table row between heading rows, then stop accumulating heading rows.
|
|
217
|
+
shouldAccumulateHeadingRows)) {
|
|
213
218
|
headRows.push(tr);
|
|
219
|
+
shouldAccumulateHeadingRows = true;
|
|
214
220
|
}
|
|
215
221
|
else {
|
|
216
222
|
bodyRows.push(tr);
|
|
223
|
+
shouldAccumulateHeadingRows = false;
|
|
217
224
|
}
|
|
218
225
|
// We use the maximum number of columns to avoid false positives when detecting
|
|
219
226
|
// multiple rows with single column within `rowspan`. Without it the last row of `rowspan=3`
|
|
@@ -233,12 +240,12 @@ function scanTable(viewTable) {
|
|
|
233
240
|
index += 1;
|
|
234
241
|
}
|
|
235
242
|
// Update headingColumns.
|
|
236
|
-
if (
|
|
243
|
+
if (headingColumns === undefined || index < headingColumns) {
|
|
237
244
|
headingColumns = index;
|
|
238
245
|
}
|
|
239
246
|
}
|
|
240
247
|
return {
|
|
241
|
-
headingRows,
|
|
248
|
+
headingRows: headRows.length,
|
|
242
249
|
headingColumns: headingColumns || 0,
|
|
243
250
|
rows: [...headRows, ...bodyRows]
|
|
244
251
|
};
|
package/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -61,7 +61,6 @@ export { TableCellHeightCommand } from './tablecellproperties/commands/tablecell
|
|
|
61
61
|
export { TableCellHorizontalAlignmentCommand } from './tablecellproperties/commands/tablecellhorizontalalignmentcommand.js';
|
|
62
62
|
export { TableCellPaddingCommand } from './tablecellproperties/commands/tablecellpaddingcommand.js';
|
|
63
63
|
export { TableCellVerticalAlignmentCommand } from './tablecellproperties/commands/tablecellverticalalignmentcommand.js';
|
|
64
|
-
export { TableCellPropertyCommand } from './tablecellproperties/commands/tablecellpropertycommand.js';
|
|
65
64
|
export { TableCellWidthCommand } from './tablecellwidth/commands/tablecellwidthcommand.js';
|
|
66
65
|
export { TableAlignmentCommand } from './tableproperties/commands/tablealignmentcommand.js';
|
|
67
66
|
export { TableBackgroundColorCommand } from './tableproperties/commands/tablebackgroundcolorcommand.js';
|
|
@@ -71,6 +70,8 @@ export { TableBorderWidthCommand } from './tableproperties/commands/tableborderw
|
|
|
71
70
|
export { TableHeightCommand } from './tableproperties/commands/tableheightcommand.js';
|
|
72
71
|
export { TableWidthCommand } from './tableproperties/commands/tablewidthcommand.js';
|
|
73
72
|
export { TablePropertyCommand, type TablePropertyCommandExecuteOptions } from './tableproperties/commands/tablepropertycommand.js';
|
|
73
|
+
export { TableCellTypeCommand, type TableCellType } from './tablecellproperties/commands/tablecelltypecommand.js';
|
|
74
|
+
export { TableCellPropertyCommand, type TableCellPropertyCommandAfterExecuteEvent, type TableCellPropertyCommandAfterExecuteEventData } from './tablecellproperties/commands/tablecellpropertycommand.js';
|
|
74
75
|
export type { ViewDocumentTableMouseMoveEvent, ViewDocumentTableMouseLeaveEvent } from './tablemouse/mouseeventsobserver.js';
|
|
75
76
|
export type { TableConfig, TableAlignmentConfig, TablePropertiesConfig, TablePropertiesOptions, TableCellPropertiesConfig, TableColorConfig, TableCellPropertiesOptions, TableLayoutConfig, TableCaptionConfig, TableType } from './tableconfig.js';
|
|
76
77
|
export { downcastTable as _downcastTable, downcastRow as _downcastTableRow, downcastCell as _downcastTableCell, convertParagraphInTableCell as _convertParagraphInTableCell, isSingleParagraphWithoutAttributes as _isSingleTableParagraphWithoutAttributes } from './converters/downcast.js';
|
package/src/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -62,7 +62,6 @@ export { TableCellHeightCommand } from './tablecellproperties/commands/tablecell
|
|
|
62
62
|
export { TableCellHorizontalAlignmentCommand } from './tablecellproperties/commands/tablecellhorizontalalignmentcommand.js';
|
|
63
63
|
export { TableCellPaddingCommand } from './tablecellproperties/commands/tablecellpaddingcommand.js';
|
|
64
64
|
export { TableCellVerticalAlignmentCommand } from './tablecellproperties/commands/tablecellverticalalignmentcommand.js';
|
|
65
|
-
export { TableCellPropertyCommand } from './tablecellproperties/commands/tablecellpropertycommand.js';
|
|
66
65
|
export { TableCellWidthCommand } from './tablecellwidth/commands/tablecellwidthcommand.js';
|
|
67
66
|
export { TableAlignmentCommand } from './tableproperties/commands/tablealignmentcommand.js';
|
|
68
67
|
export { TableBackgroundColorCommand } from './tableproperties/commands/tablebackgroundcolorcommand.js';
|
|
@@ -72,6 +71,8 @@ export { TableBorderWidthCommand } from './tableproperties/commands/tableborderw
|
|
|
72
71
|
export { TableHeightCommand } from './tableproperties/commands/tableheightcommand.js';
|
|
73
72
|
export { TableWidthCommand } from './tableproperties/commands/tablewidthcommand.js';
|
|
74
73
|
export { TablePropertyCommand } from './tableproperties/commands/tablepropertycommand.js';
|
|
74
|
+
export { TableCellTypeCommand } from './tablecellproperties/commands/tablecelltypecommand.js';
|
|
75
|
+
export { TableCellPropertyCommand } from './tablecellproperties/commands/tablecellpropertycommand.js';
|
|
75
76
|
// Internal exports.
|
|
76
77
|
export { downcastTable as _downcastTable, downcastRow as _downcastTableRow, downcastCell as _downcastTableCell, convertParagraphInTableCell as _convertParagraphInTableCell, isSingleParagraphWithoutAttributes as _isSingleTableParagraphWithoutAttributes } from './converters/downcast.js';
|
|
77
78
|
export { injectTableCaptionPostFixer as _injectTableCaptionPostFixer } from './converters/table-caption-post-fixer.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
package/src/plaintableoutput.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
package/src/table.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
package/src/table.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
import { getSelectionAffectedTable } from '../utils/common.js';
|
package/src/tablecaption.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
package/src/tablecaption.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
import { TableCellPropertyCommand } from './tablecellpropertycommand.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
import { TableCellPropertyCommand } from './tablecellpropertycommand.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
import { TableCellPropertyCommand } from './tablecellpropertycommand.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
import { TableCellPropertyCommand } from './tablecellpropertycommand.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
import { TableCellPropertyCommand } from './tablecellpropertycommand.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
import { TableCellPropertyCommand } from './tablecellpropertycommand.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
import { TableCellPropertyCommand } from './tablecellpropertycommand.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* @module table/tablecellproperties/commands/tablecellpropertycommand
|
|
7
7
|
*/
|
|
8
8
|
import { Command, type Editor } from 'ckeditor5/src/core.js';
|
|
9
|
-
import type { ModelElement, Batch } from 'ckeditor5/src/engine.js';
|
|
9
|
+
import type { ModelElement, Batch, ModelWriter } from 'ckeditor5/src/engine.js';
|
|
10
10
|
/**
|
|
11
11
|
* The table cell attribute command.
|
|
12
12
|
*
|
|
@@ -70,3 +70,21 @@ export declare class TableCellPropertyCommand extends Command {
|
|
|
70
70
|
*/
|
|
71
71
|
private _getSingleValue;
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Fired after the {@link module:table/tablecellproperties/commands/tablecellpropertycommand~TableCellPropertyCommand}
|
|
75
|
+
*
|
|
76
|
+
* @eventName ~TableCellPropertyCommand#afterExecute
|
|
77
|
+
*/
|
|
78
|
+
export type TableCellPropertyCommandAfterExecuteEvent = {
|
|
79
|
+
name: 'afterExecute';
|
|
80
|
+
args: [data: TableCellPropertyCommandAfterExecuteEventData];
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* The data of the
|
|
84
|
+
* {@link module:table/tablecellproperties/commands/tablecellpropertycommand~TableCellPropertyCommandAfterExecuteEvent} event.
|
|
85
|
+
*/
|
|
86
|
+
export type TableCellPropertyCommandAfterExecuteEventData = {
|
|
87
|
+
writer: ModelWriter;
|
|
88
|
+
tableCells: Array<ModelElement>;
|
|
89
|
+
valueToSet: unknown;
|
|
90
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -44,6 +44,9 @@ export class TableCellPropertyCommand extends Command {
|
|
|
44
44
|
this._defaultContentTableValue = defaultValue;
|
|
45
45
|
// Hardcoded defaults for layout table.
|
|
46
46
|
switch (attributeName) {
|
|
47
|
+
case 'tableCellType':
|
|
48
|
+
this._defaultLayoutTableValue = 'data';
|
|
49
|
+
break;
|
|
47
50
|
case 'tableCellBorderStyle':
|
|
48
51
|
this._defaultLayoutTableValue = 'none';
|
|
49
52
|
break;
|
|
@@ -94,6 +97,11 @@ export class TableCellPropertyCommand extends Command {
|
|
|
94
97
|
else {
|
|
95
98
|
tableCells.forEach(tableCell => writer.removeAttribute(this.attributeName, tableCell));
|
|
96
99
|
}
|
|
100
|
+
this.fire('afterExecute', {
|
|
101
|
+
writer,
|
|
102
|
+
tableCells,
|
|
103
|
+
valueToSet
|
|
104
|
+
});
|
|
97
105
|
});
|
|
98
106
|
}
|
|
99
107
|
/**
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module table/tablecellproperties/commands/tablecelltypecommand
|
|
7
|
+
*/
|
|
8
|
+
import type { Editor } from 'ckeditor5/src/core.js';
|
|
9
|
+
import type { ModelElement, ModelWriter } from 'ckeditor5/src/engine.js';
|
|
10
|
+
import { TableUtils } from '../../tableutils.js';
|
|
11
|
+
import { TableCellPropertyCommand } from './tablecellpropertycommand.js';
|
|
12
|
+
/**
|
|
13
|
+
* The table cell type command.
|
|
14
|
+
*
|
|
15
|
+
* The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
|
|
16
|
+
* the `'tableCellType'` editor command.
|
|
17
|
+
*
|
|
18
|
+
* To change the type of selected cells, execute the command:
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* editor.execute( 'tableCellType', {
|
|
22
|
+
* value: 'header'
|
|
23
|
+
* } );
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* The `value` can be either `'header'` or `'data'`.
|
|
27
|
+
* It'll return `undefined` if multiple types are selected.
|
|
28
|
+
*/
|
|
29
|
+
export declare class TableCellTypeCommand extends TableCellPropertyCommand {
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new `TableCellTypeCommand` instance.
|
|
32
|
+
*
|
|
33
|
+
* @param editor An editor in which this command will be used.
|
|
34
|
+
*/
|
|
35
|
+
constructor(editor: Editor);
|
|
36
|
+
/**
|
|
37
|
+
* @inheritDoc
|
|
38
|
+
*/
|
|
39
|
+
refresh(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Returns the attribute value for a table cell.
|
|
42
|
+
*/
|
|
43
|
+
protected _getAttribute(tableCell: ModelElement | undefined): unknown;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Type of the table cell.
|
|
47
|
+
*/
|
|
48
|
+
export type TableCellType = 'data' | 'header';
|
|
49
|
+
/**
|
|
50
|
+
* Updates the `headingRows` and `headingColumns` attributes of the given tables
|
|
51
|
+
* based on the `tableCellType` of their cells.
|
|
52
|
+
*/
|
|
53
|
+
export declare function updateTablesHeadingAttributes(tableUtils: TableUtils, writer: ModelWriter, tables: Iterable<ModelElement>): boolean;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
|
|
4
|
+
*/
|
|
5
|
+
import { TableUtils } from '../../tableutils.js';
|
|
6
|
+
import { TableCellPropertyCommand } from './tablecellpropertycommand.js';
|
|
7
|
+
import { groupCellsByTable, getSelectionAffectedTable } from '../../utils/common.js';
|
|
8
|
+
import { TableWalker } from '../../tablewalker.js';
|
|
9
|
+
/**
|
|
10
|
+
* The table cell type command.
|
|
11
|
+
*
|
|
12
|
+
* The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
|
|
13
|
+
* the `'tableCellType'` editor command.
|
|
14
|
+
*
|
|
15
|
+
* To change the type of selected cells, execute the command:
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* editor.execute( 'tableCellType', {
|
|
19
|
+
* value: 'header'
|
|
20
|
+
* } );
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* The `value` can be either `'header'` or `'data'`.
|
|
24
|
+
* It'll return `undefined` if multiple types are selected.
|
|
25
|
+
*/
|
|
26
|
+
export class TableCellTypeCommand extends TableCellPropertyCommand {
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new `TableCellTypeCommand` instance.
|
|
29
|
+
*
|
|
30
|
+
* @param editor An editor in which this command will be used.
|
|
31
|
+
*/
|
|
32
|
+
constructor(editor) {
|
|
33
|
+
super(editor, 'tableCellType', 'data');
|
|
34
|
+
this.on('afterExecute', (_, data) => {
|
|
35
|
+
const { writer, tableCells } = data;
|
|
36
|
+
const tableUtils = this.editor.plugins.get(TableUtils);
|
|
37
|
+
const tablesMap = groupCellsByTable(tableCells);
|
|
38
|
+
updateTablesHeadingAttributes(tableUtils, writer, tablesMap.keys());
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @inheritDoc
|
|
43
|
+
*/
|
|
44
|
+
refresh() {
|
|
45
|
+
super.refresh();
|
|
46
|
+
const table = getSelectionAffectedTable(this.editor.model.document.selection);
|
|
47
|
+
if (this.isEnabled && table && table.getAttribute('tableType') === 'layout') {
|
|
48
|
+
this.isEnabled = false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Returns the attribute value for a table cell.
|
|
53
|
+
*/
|
|
54
|
+
_getAttribute(tableCell) {
|
|
55
|
+
return tableCell?.getAttribute(this.attributeName) || 'data';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Updates the `headingRows` and `headingColumns` attributes of the given tables
|
|
60
|
+
* based on the `tableCellType` of their cells.
|
|
61
|
+
*/
|
|
62
|
+
export function updateTablesHeadingAttributes(tableUtils, writer, tables) {
|
|
63
|
+
let changed = false;
|
|
64
|
+
for (const table of tables) {
|
|
65
|
+
let headingRows = table.getAttribute('headingRows') || 0;
|
|
66
|
+
let headingColumns = table.getAttribute('headingColumns') || 0;
|
|
67
|
+
// Prioritize the dimension that is already larger to prevent the other dimension from
|
|
68
|
+
// aggressively consuming "orphaned" header cells. In other words, if table has three
|
|
69
|
+
// heading columns (which fills entire table), we should not count all rows as heading rows.
|
|
70
|
+
// User might later add column to the right which should not be heading.
|
|
71
|
+
//
|
|
72
|
+
// The other example, in a 2x2 table where all cells are headers (e.g. due to concurrent edits),
|
|
73
|
+
// if headingColumns=0 and headingRows=0 (but all cells are headers):
|
|
74
|
+
// - Processing rows first would expand headingRows to 2 (covering all cells), leaving headingColumns at 0.
|
|
75
|
+
// - Processing columns first expands headingColumns to 2, leaving headingRows at 0.
|
|
76
|
+
//
|
|
77
|
+
// It should be good enough to resolve conflicts in most cases.
|
|
78
|
+
const processColumnsFirst = headingColumns > headingRows;
|
|
79
|
+
if (processColumnsFirst) {
|
|
80
|
+
const newHeadingColumns = getAdjustedHeadingSectionSize(tableUtils, table, 'column', headingColumns, headingRows);
|
|
81
|
+
if (newHeadingColumns !== headingColumns) {
|
|
82
|
+
tableUtils.setHeadingColumnsCount(writer, table, newHeadingColumns, { shallow: true });
|
|
83
|
+
headingColumns = newHeadingColumns;
|
|
84
|
+
changed = true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const newHeadingRows = getAdjustedHeadingSectionSize(tableUtils, table, 'row', headingRows, headingColumns);
|
|
88
|
+
if (newHeadingRows !== headingRows) {
|
|
89
|
+
tableUtils.setHeadingRowsCount(writer, table, newHeadingRows, { shallow: true });
|
|
90
|
+
headingRows = newHeadingRows;
|
|
91
|
+
changed = true;
|
|
92
|
+
}
|
|
93
|
+
if (!processColumnsFirst) {
|
|
94
|
+
const newHeadingColumns = getAdjustedHeadingSectionSize(tableUtils, table, 'column', headingColumns, headingRows);
|
|
95
|
+
if (newHeadingColumns !== headingColumns) {
|
|
96
|
+
tableUtils.setHeadingColumnsCount(writer, table, newHeadingColumns, { shallow: true });
|
|
97
|
+
changed = true;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return changed;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Calculates the adjusted size of a heading section (rows or columns).
|
|
105
|
+
*
|
|
106
|
+
* The algorithm iterates through rows (or columns) to determine if they should be part of the heading section.
|
|
107
|
+
* A row/column is included if:
|
|
108
|
+
* 1. All its cells are of type 'header'.
|
|
109
|
+
* 2. AND it contains at least one header cell that is NOT already covered by the perpendicular heading section.
|
|
110
|
+
*
|
|
111
|
+
* This check prevents the algorithm from aggressively expanding the heading section when cells are already
|
|
112
|
+
* headers due to the other dimension.
|
|
113
|
+
*
|
|
114
|
+
* Consider a 2x2 table where all cells are headers:
|
|
115
|
+
*
|
|
116
|
+
* ```
|
|
117
|
+
* C0 C1
|
|
118
|
+
* +---+---+
|
|
119
|
+
* R0| H | H |
|
|
120
|
+
* +---+---+
|
|
121
|
+
* R1| H | H |
|
|
122
|
+
* +---+---+
|
|
123
|
+
* ```
|
|
124
|
+
*
|
|
125
|
+
* If `headingColumns=2`, both C0 and C1 are heading columns.
|
|
126
|
+
* If we want `headingRows=1` (only R0), the algorithm must NOT include R1, even though R1 consists of header cells.
|
|
127
|
+
* R1's cells are headers because of C0 and C1.
|
|
128
|
+
*
|
|
129
|
+
* Without this check, the algorithm would see that R1 is all headers and force `headingRows` to 2.
|
|
130
|
+
* This would prevent the user from reducing `headingRows` from 2 to 1 without converting R1 cells to 'data'
|
|
131
|
+
* (which would incorrectly break C0 and C1).
|
|
132
|
+
*/
|
|
133
|
+
function getAdjustedHeadingSectionSize(tableUtils, table, mode, currentSize, perpendicularHeadingSize) {
|
|
134
|
+
const totalRowsOrColumns = mode === 'row' ? tableUtils.getRows(table) : tableUtils.getColumns(table);
|
|
135
|
+
let size = currentSize;
|
|
136
|
+
// Iterate through each row/column to check if all cells are headers.
|
|
137
|
+
for (let currentIndex = 0; currentIndex < totalRowsOrColumns; currentIndex++) {
|
|
138
|
+
const walker = new TableWalker(table, { [mode]: currentIndex });
|
|
139
|
+
let allCellsAreHeaders = true;
|
|
140
|
+
let hasHeaderOutsidePerpendicularSection = false;
|
|
141
|
+
// Check each cell in the current row/column.
|
|
142
|
+
for (const { cell, row, column } of walker) {
|
|
143
|
+
// If we find a non-header cell, this row/column can't be part of the heading section.
|
|
144
|
+
if (cell.getAttribute('tableCellType') !== 'header') {
|
|
145
|
+
allCellsAreHeaders = false;
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
// Check if this header cell extends beyond the perpendicular heading section.
|
|
149
|
+
// E.g., when checking rows, see if the cell extends beyond headingColumns.
|
|
150
|
+
const perpendicularIndex = mode === 'row' ? column : row;
|
|
151
|
+
if (perpendicularIndex >= perpendicularHeadingSize) {
|
|
152
|
+
hasHeaderOutsidePerpendicularSection = true;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// If not all cells are headers, we can't extend the heading section any further.
|
|
156
|
+
if (!allCellsAreHeaders) {
|
|
157
|
+
// The section cannot extend beyond the last valid header row/column.
|
|
158
|
+
return Math.min(size, currentIndex);
|
|
159
|
+
}
|
|
160
|
+
// If there's a header extending beyond the perpendicular section,
|
|
161
|
+
// we must include this row/column in the heading section.
|
|
162
|
+
if (hasHeaderOutsidePerpendicularSection) {
|
|
163
|
+
size = Math.max(size, currentIndex + 1);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return Math.min(size, totalRowsOrColumns);
|
|
167
|
+
}
|