@ckeditor/ckeditor5-table 0.0.0-nightly-20260118.0 → 0.0.0-nightly-next-20260118.0

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.
Files changed (356) hide show
  1. package/ckeditor5-metadata.json +16 -7
  2. package/{src → dist}/augmentation.d.ts +0 -15
  3. package/{src → dist}/commands/insertcolumncommand.d.ts +1 -1
  4. package/{src → dist}/commands/insertrowcommand.d.ts +1 -1
  5. package/{src → dist}/commands/inserttablecommand.d.ts +1 -1
  6. package/{src → dist}/commands/inserttablelayoutcommand.d.ts +1 -1
  7. package/{src → dist}/commands/mergecellcommand.d.ts +3 -3
  8. package/{src → dist}/commands/mergecellscommand.d.ts +1 -1
  9. package/{src → dist}/commands/removecolumncommand.d.ts +1 -1
  10. package/{src → dist}/commands/removerowcommand.d.ts +1 -1
  11. package/{src → dist}/commands/selectcolumncommand.d.ts +1 -1
  12. package/{src → dist}/commands/selectrowcommand.d.ts +1 -1
  13. package/{src → dist}/commands/setheadercolumncommand.d.ts +1 -1
  14. package/{src → dist}/commands/setheaderrowcommand.d.ts +1 -1
  15. package/{src → dist}/commands/splitcellcommand.d.ts +1 -1
  16. package/{src → dist}/converters/downcast.d.ts +2 -2
  17. package/{src → dist}/converters/table-caption-post-fixer.d.ts +1 -1
  18. package/{src → dist}/converters/table-cell-paragraph-post-fixer.d.ts +1 -1
  19. package/{src → dist}/converters/table-cell-refresh-handler.d.ts +1 -1
  20. package/{src → dist}/converters/table-headings-refresh-handler.d.ts +1 -1
  21. package/{src → dist}/converters/table-layout-post-fixer.d.ts +1 -1
  22. package/{src → dist}/converters/tableproperties.d.ts +2 -2
  23. package/{src → dist}/converters/upcasttable.d.ts +1 -1
  24. package/dist/index-content.css +30 -30
  25. package/dist/index-editor.css +104 -170
  26. package/dist/index.css +147 -237
  27. package/dist/index.css.map +1 -1
  28. package/{src → dist}/index.d.ts +2 -5
  29. package/dist/index.js +423 -2408
  30. package/dist/index.js.map +1 -1
  31. package/{src → dist}/plaintableoutput.d.ts +1 -1
  32. package/{src → dist}/table.d.ts +2 -2
  33. package/{src → dist}/tablecaption/tablecaptionediting.d.ts +2 -2
  34. package/{src → dist}/tablecaption/tablecaptionui.d.ts +1 -1
  35. package/{src → dist}/tablecaption/toggletablecaptioncommand.d.ts +1 -1
  36. package/{src → dist}/tablecaption/utils.d.ts +1 -1
  37. package/{src → dist}/tablecaption.d.ts +1 -1
  38. package/{src → dist}/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +1 -1
  39. package/{src → dist}/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +2 -2
  40. package/{src → dist}/tablecellproperties/commands/tablecellborderstylecommand.d.ts +2 -2
  41. package/{src → dist}/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +2 -2
  42. package/{src → dist}/tablecellproperties/commands/tablecellheightcommand.d.ts +1 -1
  43. package/{src → dist}/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +1 -1
  44. package/{src → dist}/tablecellproperties/commands/tablecellpaddingcommand.d.ts +2 -2
  45. package/{src → dist}/tablecellproperties/commands/tablecellpropertycommand.d.ts +2 -2
  46. package/{src → dist}/tablecellproperties/commands/tablecelltypecommand.d.ts +2 -6
  47. package/{src → dist}/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +1 -1
  48. package/{src → dist}/tablecellproperties/tablecellpropertiesediting.d.ts +1 -1
  49. package/{src → dist}/tablecellproperties/tablecellpropertiesui.d.ts +2 -2
  50. package/dist/tablecellproperties/tablecellpropertiesutils.d.ts +18 -0
  51. package/{src/tablecellproperties/ui/tablecellpropertiesviewexperimental.d.ts → dist/tablecellproperties/ui/tablecellpropertiesview.d.ts} +11 -12
  52. package/{src → dist}/tablecellproperties.d.ts +1 -1
  53. package/{src → dist}/tablecellwidth/commands/tablecellwidthcommand.d.ts +1 -1
  54. package/{src → dist}/tablecellwidth/tablecellwidthediting.d.ts +1 -1
  55. package/{src → dist}/tableclipboard.d.ts +3 -3
  56. package/{src → dist}/tablecolumnresize/converters.d.ts +1 -1
  57. package/{src → dist}/tablecolumnresize/tablecolumnresizeediting.d.ts +2 -2
  58. package/{src → dist}/tablecolumnresize/tablewidthscommand.d.ts +2 -2
  59. package/{src → dist}/tablecolumnresize/utils.d.ts +2 -2
  60. package/{src → dist}/tablecolumnresize.d.ts +1 -1
  61. package/{src → dist}/tableconfig.d.ts +26 -6
  62. package/{src → dist}/tableediting.d.ts +3 -3
  63. package/{src → dist}/tablekeyboard.d.ts +3 -3
  64. package/{src → dist}/tablelayout/commands/tabletypecommand.d.ts +1 -1
  65. package/{src → dist}/tablelayout/tablelayoutediting.d.ts +1 -1
  66. package/{src → dist}/tablelayout/tablelayoutui.d.ts +1 -1
  67. package/{src → dist}/tablelayout.d.ts +1 -1
  68. package/{src → dist}/tablemouse/mouseeventsobserver.d.ts +1 -1
  69. package/{src → dist}/tablemouse.d.ts +1 -1
  70. package/{src → dist}/tableproperties/commands/tablealignmentcommand.d.ts +1 -1
  71. package/{src → dist}/tableproperties/commands/tablebackgroundcolorcommand.d.ts +1 -1
  72. package/{src → dist}/tableproperties/commands/tablebordercolorcommand.d.ts +2 -2
  73. package/{src → dist}/tableproperties/commands/tableborderstylecommand.d.ts +2 -2
  74. package/{src → dist}/tableproperties/commands/tableborderwidthcommand.d.ts +2 -2
  75. package/{src → dist}/tableproperties/commands/tableheightcommand.d.ts +1 -1
  76. package/{src → dist}/tableproperties/commands/tablepropertycommand.d.ts +2 -2
  77. package/{src → dist}/tableproperties/commands/tablewidthcommand.d.ts +1 -1
  78. package/{src → dist}/tableproperties/tablepropertiesediting.d.ts +1 -1
  79. package/{src → dist}/tableproperties/tablepropertiesui.d.ts +2 -2
  80. package/{src → dist}/tableproperties/ui/tablepropertiesview.d.ts +10 -2
  81. package/{src → dist}/tableproperties.d.ts +1 -1
  82. package/{src → dist}/tableselection.d.ts +2 -2
  83. package/{src → dist}/tabletoolbar.d.ts +2 -2
  84. package/{src → dist}/tableui.d.ts +1 -1
  85. package/{src → dist}/tableutils.d.ts +2 -2
  86. package/{src → dist}/tablewalker.d.ts +1 -1
  87. package/{src → dist}/ui/colorinputview.d.ts +2 -2
  88. package/{src → dist}/ui/inserttableview.d.ts +2 -2
  89. package/{src → dist}/utils/common.d.ts +2 -2
  90. package/{src → dist}/utils/structure.d.ts +1 -1
  91. package/{src → dist}/utils/table-properties.d.ts +1 -1
  92. package/{src → dist}/utils/ui/contextualballoon.d.ts +2 -2
  93. package/{src → dist}/utils/ui/table-properties.d.ts +2 -2
  94. package/{src → dist}/utils/ui/widget.d.ts +1 -1
  95. package/package.json +26 -49
  96. package/build/table.js +0 -5
  97. package/build/translations/af.js +0 -1
  98. package/build/translations/ar.js +0 -1
  99. package/build/translations/ast.js +0 -1
  100. package/build/translations/az.js +0 -1
  101. package/build/translations/be.js +0 -1
  102. package/build/translations/bg.js +0 -1
  103. package/build/translations/bn.js +0 -1
  104. package/build/translations/bs.js +0 -1
  105. package/build/translations/ca.js +0 -1
  106. package/build/translations/cs.js +0 -1
  107. package/build/translations/da.js +0 -1
  108. package/build/translations/de-ch.js +0 -1
  109. package/build/translations/de.js +0 -1
  110. package/build/translations/el.js +0 -1
  111. package/build/translations/en-au.js +0 -1
  112. package/build/translations/en-gb.js +0 -1
  113. package/build/translations/eo.js +0 -1
  114. package/build/translations/es-co.js +0 -1
  115. package/build/translations/es.js +0 -1
  116. package/build/translations/et.js +0 -1
  117. package/build/translations/eu.js +0 -1
  118. package/build/translations/fa.js +0 -1
  119. package/build/translations/fi.js +0 -1
  120. package/build/translations/fr.js +0 -1
  121. package/build/translations/gl.js +0 -1
  122. package/build/translations/gu.js +0 -1
  123. package/build/translations/he.js +0 -1
  124. package/build/translations/hi.js +0 -1
  125. package/build/translations/hr.js +0 -1
  126. package/build/translations/hu.js +0 -1
  127. package/build/translations/hy.js +0 -1
  128. package/build/translations/id.js +0 -1
  129. package/build/translations/it.js +0 -1
  130. package/build/translations/ja.js +0 -1
  131. package/build/translations/jv.js +0 -1
  132. package/build/translations/kk.js +0 -1
  133. package/build/translations/km.js +0 -1
  134. package/build/translations/kn.js +0 -1
  135. package/build/translations/ko.js +0 -1
  136. package/build/translations/ku.js +0 -1
  137. package/build/translations/lt.js +0 -1
  138. package/build/translations/lv.js +0 -1
  139. package/build/translations/ms.js +0 -1
  140. package/build/translations/nb.js +0 -1
  141. package/build/translations/ne.js +0 -1
  142. package/build/translations/nl.js +0 -1
  143. package/build/translations/no.js +0 -1
  144. package/build/translations/oc.js +0 -1
  145. package/build/translations/pl.js +0 -1
  146. package/build/translations/pt-br.js +0 -1
  147. package/build/translations/pt.js +0 -1
  148. package/build/translations/ro.js +0 -1
  149. package/build/translations/ru.js +0 -1
  150. package/build/translations/si.js +0 -1
  151. package/build/translations/sk.js +0 -1
  152. package/build/translations/sl.js +0 -1
  153. package/build/translations/sq.js +0 -1
  154. package/build/translations/sr-latn.js +0 -1
  155. package/build/translations/sr.js +0 -1
  156. package/build/translations/sv.js +0 -1
  157. package/build/translations/th.js +0 -1
  158. package/build/translations/ti.js +0 -1
  159. package/build/translations/tk.js +0 -1
  160. package/build/translations/tr.js +0 -1
  161. package/build/translations/tt.js +0 -1
  162. package/build/translations/ug.js +0 -1
  163. package/build/translations/uk.js +0 -1
  164. package/build/translations/ur.js +0 -1
  165. package/build/translations/uz.js +0 -1
  166. package/build/translations/vi.js +0 -1
  167. package/build/translations/zh-cn.js +0 -1
  168. package/build/translations/zh.js +0 -1
  169. package/lang/contexts.json +0 -82
  170. package/lang/translations/af.po +0 -332
  171. package/lang/translations/ar.po +0 -332
  172. package/lang/translations/ast.po +0 -332
  173. package/lang/translations/az.po +0 -332
  174. package/lang/translations/be.po +0 -332
  175. package/lang/translations/bg.po +0 -332
  176. package/lang/translations/bn.po +0 -334
  177. package/lang/translations/bs.po +0 -332
  178. package/lang/translations/ca.po +0 -332
  179. package/lang/translations/cs.po +0 -332
  180. package/lang/translations/da.po +0 -332
  181. package/lang/translations/de-ch.po +0 -332
  182. package/lang/translations/de.po +0 -332
  183. package/lang/translations/el.po +0 -332
  184. package/lang/translations/en-au.po +0 -332
  185. package/lang/translations/en-gb.po +0 -332
  186. package/lang/translations/en.po +0 -332
  187. package/lang/translations/eo.po +0 -332
  188. package/lang/translations/es-co.po +0 -332
  189. package/lang/translations/es.po +0 -332
  190. package/lang/translations/et.po +0 -332
  191. package/lang/translations/eu.po +0 -332
  192. package/lang/translations/fa.po +0 -332
  193. package/lang/translations/fi.po +0 -332
  194. package/lang/translations/fr.po +0 -332
  195. package/lang/translations/gl.po +0 -332
  196. package/lang/translations/gu.po +0 -332
  197. package/lang/translations/he.po +0 -332
  198. package/lang/translations/hi.po +0 -332
  199. package/lang/translations/hr.po +0 -332
  200. package/lang/translations/hu.po +0 -332
  201. package/lang/translations/hy.po +0 -332
  202. package/lang/translations/id.po +0 -332
  203. package/lang/translations/it.po +0 -332
  204. package/lang/translations/ja.po +0 -332
  205. package/lang/translations/jv.po +0 -332
  206. package/lang/translations/kk.po +0 -332
  207. package/lang/translations/km.po +0 -332
  208. package/lang/translations/kn.po +0 -332
  209. package/lang/translations/ko.po +0 -332
  210. package/lang/translations/ku.po +0 -332
  211. package/lang/translations/lt.po +0 -332
  212. package/lang/translations/lv.po +0 -332
  213. package/lang/translations/ms.po +0 -332
  214. package/lang/translations/nb.po +0 -332
  215. package/lang/translations/ne.po +0 -332
  216. package/lang/translations/nl.po +0 -332
  217. package/lang/translations/no.po +0 -332
  218. package/lang/translations/oc.po +0 -332
  219. package/lang/translations/pl.po +0 -332
  220. package/lang/translations/pt-br.po +0 -332
  221. package/lang/translations/pt.po +0 -332
  222. package/lang/translations/ro.po +0 -332
  223. package/lang/translations/ru.po +0 -332
  224. package/lang/translations/si.po +0 -332
  225. package/lang/translations/sk.po +0 -332
  226. package/lang/translations/sl.po +0 -332
  227. package/lang/translations/sq.po +0 -332
  228. package/lang/translations/sr-latn.po +0 -332
  229. package/lang/translations/sr.po +0 -332
  230. package/lang/translations/sv.po +0 -332
  231. package/lang/translations/th.po +0 -332
  232. package/lang/translations/ti.po +0 -332
  233. package/lang/translations/tk.po +0 -332
  234. package/lang/translations/tr.po +0 -332
  235. package/lang/translations/tt.po +0 -332
  236. package/lang/translations/ug.po +0 -332
  237. package/lang/translations/uk.po +0 -332
  238. package/lang/translations/ur.po +0 -332
  239. package/lang/translations/uz.po +0 -332
  240. package/lang/translations/vi.po +0 -332
  241. package/lang/translations/zh-cn.po +0 -332
  242. package/lang/translations/zh.po +0 -332
  243. package/src/augmentation.js +0 -5
  244. package/src/commands/insertcolumncommand.js +0 -71
  245. package/src/commands/insertrowcommand.js +0 -70
  246. package/src/commands/inserttablecommand.js +0 -69
  247. package/src/commands/inserttablelayoutcommand.js +0 -65
  248. package/src/commands/mergecellcommand.js +0 -206
  249. package/src/commands/mergecellscommand.js +0 -94
  250. package/src/commands/removecolumncommand.js +0 -109
  251. package/src/commands/removerowcommand.js +0 -82
  252. package/src/commands/selectcolumncommand.js +0 -60
  253. package/src/commands/selectrowcommand.js +0 -56
  254. package/src/commands/setheadercolumncommand.js +0 -76
  255. package/src/commands/setheaderrowcommand.js +0 -83
  256. package/src/commands/splitcellcommand.js +0 -58
  257. package/src/converters/downcast.js +0 -298
  258. package/src/converters/table-caption-post-fixer.js +0 -55
  259. package/src/converters/table-cell-paragraph-post-fixer.js +0 -109
  260. package/src/converters/table-cell-refresh-handler.js +0 -47
  261. package/src/converters/table-headings-refresh-handler.js +0 -51
  262. package/src/converters/table-layout-post-fixer.js +0 -369
  263. package/src/converters/tableproperties.js +0 -444
  264. package/src/converters/upcasttable.js +0 -385
  265. package/src/index.js +0 -98
  266. package/src/plaintableoutput.js +0 -49
  267. package/src/table.js +0 -50
  268. package/src/tablecaption/tablecaptionediting.js +0 -136
  269. package/src/tablecaption/tablecaptionui.js +0 -64
  270. package/src/tablecaption/toggletablecaptioncommand.js +0 -105
  271. package/src/tablecaption/utils.js +0 -61
  272. package/src/tablecaption.js +0 -34
  273. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +0 -30
  274. package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +0 -44
  275. package/src/tablecellproperties/commands/tablecellborderstylecommand.js +0 -44
  276. package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +0 -64
  277. package/src/tablecellproperties/commands/tablecellheightcommand.js +0 -51
  278. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +0 -30
  279. package/src/tablecellproperties/commands/tablecellpaddingcommand.js +0 -64
  280. package/src/tablecellproperties/commands/tablecellpropertycommand.js +0 -138
  281. package/src/tablecellproperties/commands/tablecelltypecommand.js +0 -167
  282. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +0 -38
  283. package/src/tablecellproperties/tablecellpropertiesediting.js +0 -412
  284. package/src/tablecellproperties/tablecellpropertiesui.js +0 -385
  285. package/src/tablecellproperties/tablecellpropertiesuiexperimental.d.ts +0 -128
  286. package/src/tablecellproperties/tablecellpropertiesuiexperimental.js +0 -408
  287. package/src/tablecellproperties/ui/tablecellpropertiesview.d.ts +0 -229
  288. package/src/tablecellproperties/ui/tablecellpropertiesview.js +0 -612
  289. package/src/tablecellproperties/ui/tablecellpropertiesviewexperimental.js +0 -744
  290. package/src/tablecellproperties.js +0 -40
  291. package/src/tablecellwidth/commands/tablecellwidthcommand.js +0 -51
  292. package/src/tablecellwidth/tablecellwidthediting.js +0 -53
  293. package/src/tableclipboard.js +0 -500
  294. package/src/tablecolumnresize/constants.js +0 -33
  295. package/src/tablecolumnresize/converters.js +0 -62
  296. package/src/tablecolumnresize/tablecolumnresizeediting.js +0 -729
  297. package/src/tablecolumnresize/tablewidthscommand.js +0 -61
  298. package/src/tablecolumnresize/utils.js +0 -370
  299. package/src/tablecolumnresize.js +0 -36
  300. package/src/tableconfig.js +0 -5
  301. package/src/tableediting.js +0 -246
  302. package/src/tablekeyboard.js +0 -273
  303. package/src/tablelayout/commands/tabletypecommand.js +0 -68
  304. package/src/tablelayout/tablelayoutediting.js +0 -295
  305. package/src/tablelayout/tablelayoutui.js +0 -196
  306. package/src/tablelayout.js +0 -37
  307. package/src/tablemouse/mouseeventsobserver.js +0 -34
  308. package/src/tablemouse.js +0 -178
  309. package/src/tableproperties/commands/tablealignmentcommand.js +0 -30
  310. package/src/tableproperties/commands/tablebackgroundcolorcommand.js +0 -30
  311. package/src/tableproperties/commands/tablebordercolorcommand.js +0 -44
  312. package/src/tableproperties/commands/tableborderstylecommand.js +0 -44
  313. package/src/tableproperties/commands/tableborderwidthcommand.js +0 -64
  314. package/src/tableproperties/commands/tableheightcommand.js +0 -54
  315. package/src/tableproperties/commands/tablepropertycommand.js +0 -103
  316. package/src/tableproperties/commands/tablewidthcommand.js +0 -54
  317. package/src/tableproperties/tablepropertiesediting.js +0 -546
  318. package/src/tableproperties/tablepropertiesui.js +0 -374
  319. package/src/tableproperties/tablepropertiesuiexperimental.d.ts +0 -136
  320. package/src/tableproperties/tablepropertiesuiexperimental.js +0 -375
  321. package/src/tableproperties/ui/tablepropertiesview.js +0 -520
  322. package/src/tableproperties/ui/tablepropertiesviewexperimental.d.ts +0 -216
  323. package/src/tableproperties/ui/tablepropertiesviewexperimental.js +0 -544
  324. package/src/tableproperties.js +0 -40
  325. package/src/tableselection.js +0 -323
  326. package/src/tabletoolbar.js +0 -63
  327. package/src/tableui.js +0 -335
  328. package/src/tableutils.js +0 -1282
  329. package/src/tablewalker.js +0 -489
  330. package/src/ui/colorinputview.js +0 -305
  331. package/src/ui/inserttableview.js +0 -192
  332. package/src/utils/common.js +0 -118
  333. package/src/utils/structure.js +0 -452
  334. package/src/utils/table-properties.js +0 -121
  335. package/src/utils/ui/contextualballoon.js +0 -111
  336. package/src/utils/ui/table-properties.js +0 -390
  337. package/src/utils/ui/table-propertiesexperimental.d.ts +0 -215
  338. package/src/utils/ui/table-propertiesexperimental.js +0 -391
  339. package/src/utils/ui/widget.js +0 -56
  340. package/theme/colorinput.css +0 -39
  341. package/theme/formrow-experimental.css +0 -15
  342. package/theme/formrow.css +0 -13
  343. package/theme/inserttable.css +0 -10
  344. package/theme/table.css +0 -144
  345. package/theme/tablecaption.css +0 -66
  346. package/theme/tablecellproperties-experimental.css +0 -4
  347. package/theme/tablecellproperties.css +0 -28
  348. package/theme/tablecolumnresize.css +0 -62
  349. package/theme/tableediting.css +0 -10
  350. package/theme/tableform-experimental.css +0 -61
  351. package/theme/tableform.css +0 -64
  352. package/theme/tablelayout.css +0 -74
  353. package/theme/tableproperties-experimental.css +0 -78
  354. package/theme/tableproperties.css +0 -18
  355. package/theme/tableselection.css +0 -10
  356. /package/{src → dist}/tablecolumnresize/constants.d.ts +0 -0
@@ -1,64 +0,0 @@
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 { TableCellPropertyCommand } from './tablecellpropertycommand.js';
6
- import { addDefaultUnitToNumericValue, getSingleValue } from '../../utils/table-properties.js';
7
- /**
8
- * The table cell padding command.
9
- *
10
- * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
11
- * the `'tableCellPadding'` editor command.
12
- *
13
- * To change the padding of selected cells, execute the command:
14
- *
15
- * ```ts
16
- * editor.execute( 'tableCellPadding', {
17
- * value: '5px'
18
- * } );
19
- * ```
20
- *
21
- * **Note**: This command adds the default `'px'` unit to numeric values. Executing:
22
- *
23
- * ```ts
24
- * editor.execute( 'tableCellPadding', {
25
- * value: '5'
26
- * } );
27
- * ```
28
- *
29
- * will set the `padding` attribute to `'5px'` in the model.
30
- */
31
- export class TableCellPaddingCommand extends TableCellPropertyCommand {
32
- /**
33
- * Creates a new `TableCellPaddingCommand` instance.
34
- *
35
- * @param editor An editor in which this command will be used.
36
- * @param defaultValue The default value of the attribute.
37
- */
38
- constructor(editor, defaultValue) {
39
- super(editor, 'tableCellPadding', defaultValue);
40
- }
41
- /**
42
- * @inheritDoc
43
- */
44
- _getAttribute(tableCell) {
45
- if (!tableCell) {
46
- return;
47
- }
48
- const value = getSingleValue(tableCell.getAttribute(this.attributeName));
49
- if (value === this._defaultValue) {
50
- return;
51
- }
52
- return value;
53
- }
54
- /**
55
- * @inheritDoc
56
- */
57
- _getValueToSet(value) {
58
- const newValue = addDefaultUnitToNumericValue(value, 'px');
59
- if (newValue === this._defaultValue) {
60
- return;
61
- }
62
- return newValue;
63
- }
64
- }
@@ -1,138 +0,0 @@
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/tablecellpropertycommand
7
- */
8
- import { Command } from 'ckeditor5/src/core.js';
9
- import { getSelectionAffectedTable } from '../../utils/common.js';
10
- /**
11
- * The table cell attribute command.
12
- *
13
- * The command is a base command for other table cell property commands.
14
- */
15
- export class TableCellPropertyCommand extends Command {
16
- /**
17
- * The attribute that will be set by the command.
18
- */
19
- attributeName;
20
- /**
21
- * The default value for the attribute.
22
- *
23
- * @readonly
24
- */
25
- _defaultValue;
26
- /**
27
- * The default value for the attribute for the content table.
28
- */
29
- _defaultContentTableValue;
30
- /**
31
- * The default value for the attribute for the layout table.
32
- */
33
- _defaultLayoutTableValue;
34
- /**
35
- * Creates a new `TableCellPropertyCommand` instance.
36
- *
37
- * @param editor An editor in which this command will be used.
38
- * @param attributeName Table cell attribute name.
39
- * @param defaultValue The default value of the attribute.
40
- */
41
- constructor(editor, attributeName, defaultValue) {
42
- super(editor);
43
- this.attributeName = attributeName;
44
- this._defaultContentTableValue = defaultValue;
45
- // Hardcoded defaults for layout table.
46
- switch (attributeName) {
47
- case 'tableCellType':
48
- this._defaultLayoutTableValue = 'data';
49
- break;
50
- case 'tableCellBorderStyle':
51
- this._defaultLayoutTableValue = 'none';
52
- break;
53
- case 'tableCellHorizontalAlignment':
54
- this._defaultLayoutTableValue = 'left';
55
- break;
56
- case 'tableCellVerticalAlignment':
57
- this._defaultLayoutTableValue = 'middle';
58
- break;
59
- default:
60
- this._defaultLayoutTableValue = undefined;
61
- }
62
- }
63
- /**
64
- * @inheritDoc
65
- */
66
- refresh() {
67
- const editor = this.editor;
68
- const selection = editor.model.document.selection;
69
- const tableUtils = this.editor.plugins.get('TableUtils');
70
- const selectedTableCells = tableUtils.getSelectionAffectedTableCells(selection);
71
- const table = getSelectionAffectedTable(selection);
72
- this._defaultValue = !table || table.getAttribute('tableType') !== 'layout' ?
73
- this._defaultContentTableValue :
74
- this._defaultLayoutTableValue;
75
- this.isEnabled = !!selectedTableCells.length;
76
- this.value = this._getSingleValue(selectedTableCells);
77
- }
78
- /**
79
- * Executes the command.
80
- *
81
- * @fires execute
82
- * @param options.value If set, the command will set the attribute on selected table cells.
83
- * If it is not set, the command will remove the attribute from the selected table cells.
84
- * @param options.batch Pass the model batch instance to the command to aggregate changes,
85
- * for example to allow a single undo step for multiple executions.
86
- */
87
- execute(options = {}) {
88
- const { value, batch } = options;
89
- const model = this.editor.model;
90
- const tableUtils = this.editor.plugins.get('TableUtils');
91
- const tableCells = tableUtils.getSelectionAffectedTableCells(model.document.selection);
92
- const valueToSet = this._getValueToSet(value);
93
- model.enqueueChange(batch, writer => {
94
- if (valueToSet) {
95
- tableCells.forEach(tableCell => writer.setAttribute(this.attributeName, valueToSet, tableCell));
96
- }
97
- else {
98
- tableCells.forEach(tableCell => writer.removeAttribute(this.attributeName, tableCell));
99
- }
100
- this.fire('afterExecute', {
101
- writer,
102
- tableCells,
103
- valueToSet
104
- });
105
- });
106
- }
107
- /**
108
- * Returns the attribute value for a table cell.
109
- */
110
- _getAttribute(tableCell) {
111
- if (!tableCell) {
112
- return;
113
- }
114
- const value = tableCell.getAttribute(this.attributeName);
115
- if (value === this._defaultValue) {
116
- return;
117
- }
118
- return value;
119
- }
120
- /**
121
- * Returns the proper model value. It can be used to add a default unit to numeric values.
122
- */
123
- _getValueToSet(value) {
124
- if (value === this._defaultValue) {
125
- return;
126
- }
127
- return value;
128
- }
129
- /**
130
- * Returns a single value for all selected table cells. If the value is the same for all cells,
131
- * it will be returned (`undefined` otherwise).
132
- */
133
- _getSingleValue(tableCells) {
134
- const firstCellValue = this._getAttribute(tableCells[0]);
135
- const everyCellHasAttribute = tableCells.every(tableCells => this._getAttribute(tableCells) === firstCellValue);
136
- return everyCellHasAttribute ? firstCellValue : undefined;
137
- }
138
- }
@@ -1,167 +0,0 @@
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
- }
@@ -1,38 +0,0 @@
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 { TableCellPropertyCommand } from './tablecellpropertycommand.js';
6
- /**
7
- * The table cell vertical alignment command.
8
- *
9
- * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
10
- * the `'tableCellVerticalAlignment'` editor command.
11
- *
12
- * To change the vertical text alignment of selected cells, execute the command:
13
- *
14
- * ```ts
15
- * editor.execute( 'tableCellVerticalAlignment', {
16
- * value: 'top'
17
- * } );
18
- * ```
19
- *
20
- * The following values, corresponding to the
21
- * [`vertical-align` CSS attribute](https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align), are allowed:
22
- *
23
- * * `'top'`
24
- * * `'bottom'`
25
- *
26
- * The `'middle'` value is the default one so there is no need to set it.
27
- */
28
- export class TableCellVerticalAlignmentCommand extends TableCellPropertyCommand {
29
- /**
30
- * Creates a new `TableCellVerticalAlignmentCommand` instance.
31
- *
32
- * @param editor An editor in which this command will be used.
33
- * @param defaultValue The default value for the "alignment" attribute.
34
- */
35
- constructor(editor, defaultValue) {
36
- super(editor, 'tableCellVerticalAlignment', defaultValue);
37
- }
38
- }