@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,136 +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/tablecaption/tablecaptionediting
7
- */
8
- import { Plugin } from 'ckeditor5/src/core.js';
9
- import { ModelElement, enableViewPlaceholder } from 'ckeditor5/src/engine.js';
10
- import { toWidgetEditable } from 'ckeditor5/src/widget.js';
11
- import { injectTableCaptionPostFixer } from '../converters/table-caption-post-fixer.js';
12
- import { ToggleTableCaptionCommand } from './toggletablecaptioncommand.js';
13
- import { isTable, matchTableCaptionViewElement } from './utils.js';
14
- /**
15
- * The table caption editing plugin.
16
- */
17
- export class TableCaptionEditing extends Plugin {
18
- /**
19
- * A map that keeps saved JSONified table captions and table model elements they are
20
- * associated with.
21
- *
22
- * To learn more about this system, see {@link #_saveCaption}.
23
- */
24
- _savedCaptionsMap = new WeakMap();
25
- /**
26
- * @inheritDoc
27
- */
28
- static get pluginName() {
29
- return 'TableCaptionEditing';
30
- }
31
- /**
32
- * @inheritDoc
33
- */
34
- static get isOfficialPlugin() {
35
- return true;
36
- }
37
- /**
38
- * @inheritDoc
39
- */
40
- init() {
41
- const editor = this.editor;
42
- const schema = editor.model.schema;
43
- const view = editor.editing.view;
44
- const t = editor.t;
45
- const useCaptionElement = editor.config.get('table.tableCaption.useCaptionElement');
46
- if (!schema.isRegistered('caption')) {
47
- schema.register('caption', {
48
- allowIn: 'table',
49
- allowContentOf: '$block',
50
- isLimit: true
51
- });
52
- }
53
- else {
54
- schema.extend('caption', {
55
- allowIn: 'table'
56
- });
57
- }
58
- editor.commands.add('toggleTableCaption', new ToggleTableCaptionCommand(this.editor));
59
- if (useCaptionElement) {
60
- const tableEditing = editor.plugins.get('TableEditing');
61
- tableEditing.registerAdditionalSlot({
62
- filter: element => element.is('element', 'caption'),
63
- positionOffset: 'end'
64
- });
65
- }
66
- // View -> model converter for the data pipeline.
67
- editor.conversion.for('upcast').elementToElement({
68
- view: matchTableCaptionViewElement,
69
- model: 'caption'
70
- });
71
- // Model -> view converter for the data pipeline.
72
- editor.conversion.for('dataDowncast').elementToElement({
73
- model: 'caption',
74
- view: (modelElement, { writer }) => {
75
- if (!isTable(modelElement.parent)) {
76
- return null;
77
- }
78
- return writer.createContainerElement(useCaptionElement ? 'caption' : 'figcaption');
79
- }
80
- });
81
- // Model -> view converter for the editing pipeline.
82
- editor.conversion.for('editingDowncast').elementToElement({
83
- model: 'caption',
84
- view: (modelElement, { writer }) => {
85
- if (!isTable(modelElement.parent)) {
86
- return null;
87
- }
88
- const captionElement = writer.createEditableElement(useCaptionElement ? 'caption' : 'figcaption');
89
- writer.setCustomProperty('tableCaption', true, captionElement);
90
- captionElement.placeholder = t('Enter table caption');
91
- enableViewPlaceholder({
92
- view,
93
- element: captionElement,
94
- keepOnFocus: true
95
- });
96
- return toWidgetEditable(captionElement, writer);
97
- }
98
- });
99
- injectTableCaptionPostFixer(editor.model);
100
- }
101
- /**
102
- * Returns the saved {@link module:engine/model/element~ModelElement#toJSON JSONified} caption
103
- * of a table model element.
104
- *
105
- * See {@link #_saveCaption}.
106
- *
107
- * @internal
108
- * @param tableModelElement The model element the caption should be returned for.
109
- * @returns The model caption element or `null` if there is none.
110
- */
111
- _getSavedCaption(tableModelElement) {
112
- const jsonObject = this._savedCaptionsMap.get(tableModelElement);
113
- return jsonObject ? ModelElement.fromJSON(jsonObject) : null;
114
- }
115
- /**
116
- * Saves a {@link module:engine/model/element~ModelElement#toJSON JSONified} caption for
117
- * a table element to allow restoring it in the future.
118
- *
119
- * A caption is saved every time it gets hidden. The
120
- * user should be able to restore it on demand.
121
- *
122
- * **Note**: The caption cannot be stored in the table model element attribute because,
123
- * for instance, when the model state propagates to collaborators, the attribute would get
124
- * lost (mainly because it does not convert to anything when the caption is hidden) and
125
- * the states of collaborators' models would de-synchronize causing numerous issues.
126
- *
127
- * See {@link #_getSavedCaption}.
128
- *
129
- * @internal
130
- * @param tableModelElement The model element the caption is saved for.
131
- * @param caption The caption model element to be saved.
132
- */
133
- _saveCaption(tableModelElement, caption) {
134
- this._savedCaptionsMap.set(tableModelElement, caption.toJSON());
135
- }
136
- }
@@ -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
- /**
6
- * @module table/tablecaption/tablecaptionui
7
- */
8
- import { Plugin } from 'ckeditor5/src/core.js';
9
- import { ButtonView } from 'ckeditor5/src/ui.js';
10
- import { IconCaption } from 'ckeditor5/src/icons.js';
11
- import { getCaptionFromModelSelection } from './utils.js';
12
- /**
13
- * The table caption UI plugin. It introduces the `'toggleTableCaption'` UI button.
14
- */
15
- export class TableCaptionUI extends Plugin {
16
- /**
17
- * @inheritDoc
18
- */
19
- static get pluginName() {
20
- return 'TableCaptionUI';
21
- }
22
- /**
23
- * @inheritDoc
24
- */
25
- static get isOfficialPlugin() {
26
- return true;
27
- }
28
- /**
29
- * @inheritDoc
30
- */
31
- init() {
32
- const editor = this.editor;
33
- const editingView = editor.editing.view;
34
- const t = editor.t;
35
- editor.ui.componentFactory.add('toggleTableCaption', locale => {
36
- const command = editor.commands.get('toggleTableCaption');
37
- const view = new ButtonView(locale);
38
- view.set({
39
- icon: IconCaption,
40
- tooltip: true,
41
- isToggleable: true
42
- });
43
- view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');
44
- view.bind('label').to(command, 'value', value => value ? t('Toggle caption off') : t('Toggle caption on'));
45
- this.listenTo(view, 'execute', () => {
46
- editor.execute('toggleTableCaption', { focusCaptionOnShow: true });
47
- // Scroll to the selection and highlight the caption if the caption showed up.
48
- if (command.value) {
49
- const modelCaptionElement = getCaptionFromModelSelection(editor.model.document.selection);
50
- const figcaptionElement = editor.editing.mapper.toViewElement(modelCaptionElement);
51
- if (!figcaptionElement) {
52
- return;
53
- }
54
- editingView.scrollToTheSelection();
55
- editingView.change(writer => {
56
- writer.addClass('table__caption_highlighted', figcaptionElement);
57
- });
58
- }
59
- editor.editing.view.focus();
60
- });
61
- return view;
62
- });
63
- }
64
- }
@@ -1,105 +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/tablecaption/toggletablecaptioncommand
7
- */
8
- import { Command } from 'ckeditor5/src/core.js';
9
- import { getCaptionFromTableModelElement } from './utils.js';
10
- import { getSelectionAffectedTable } from '../utils/common.js';
11
- /**
12
- * The toggle table caption command.
13
- *
14
- * This command is registered by {@link module:table/tablecaption/tablecaptionediting~TableCaptionEditing} as the
15
- * `'toggleTableCaption'` editor command.
16
- *
17
- * Executing this command:
18
- *
19
- * * either adds or removes the table caption of a selected table (depending on whether the caption is present or not),
20
- * * removes the table caption if the selection is anchored in one.
21
- *
22
- * ```ts
23
- * // Toggle the presence of the caption.
24
- * editor.execute( 'toggleTableCaption' );
25
- * ```
26
- *
27
- * **Note**: You can move the selection to the caption right away as it shows up upon executing this command by using
28
- * the `focusCaptionOnShow` option:
29
- *
30
- * ```ts
31
- * editor.execute( 'toggleTableCaption', { focusCaptionOnShow: true } );
32
- * ```
33
- */
34
- export class ToggleTableCaptionCommand extends Command {
35
- /**
36
- * @inheritDoc
37
- */
38
- refresh() {
39
- const editor = this.editor;
40
- const tableElement = getSelectionAffectedTable(editor.model.document.selection);
41
- this.isEnabled = !!tableElement && editor.model.schema.checkChild(tableElement, 'caption');
42
- if (!this.isEnabled) {
43
- this.value = false;
44
- }
45
- else {
46
- this.value = !!getCaptionFromTableModelElement(tableElement);
47
- }
48
- }
49
- /**
50
- * Executes the command.
51
- *
52
- * ```ts
53
- * editor.execute( 'toggleTableCaption' );
54
- * ```
55
- *
56
- * @param options Options for the executed command.
57
- * @param options.focusCaptionOnShow When true and the caption shows up, the selection will be moved into it straight away.
58
- * @fires execute
59
- */
60
- execute({ focusCaptionOnShow = false } = {}) {
61
- this.editor.model.change(writer => {
62
- if (this.value) {
63
- this._hideTableCaption(writer);
64
- }
65
- else {
66
- this._showTableCaption(writer, focusCaptionOnShow);
67
- }
68
- });
69
- }
70
- /**
71
- * Shows the table caption. Also:
72
- *
73
- * * it attempts to restore the caption content from the `TableCaptionEditing` caption registry,
74
- * * it moves the selection to the caption right away, it the `focusCaptionOnShow` option was set.
75
- *
76
- * @param focusCaptionOnShow Default focus behavior when showing the caption.
77
- */
78
- _showTableCaption(writer, focusCaptionOnShow) {
79
- const model = this.editor.model;
80
- const tableElement = getSelectionAffectedTable(model.document.selection);
81
- const tableCaptionEditing = this.editor.plugins.get('TableCaptionEditing');
82
- const savedCaptionElement = tableCaptionEditing._getSavedCaption(tableElement);
83
- // Try restoring the caption from the TableCaptionEditing plugin storage.
84
- const newCaptionElement = savedCaptionElement || writer.createElement('caption');
85
- model.insertContent(newCaptionElement, tableElement, 'end');
86
- if (focusCaptionOnShow) {
87
- writer.setSelection(newCaptionElement, 'in');
88
- }
89
- }
90
- /**
91
- * Hides the caption of a selected table (or an table caption the selection is anchored to).
92
- *
93
- * The content of the caption is stored in the `TableCaptionEditing` caption registry to make this
94
- * a reversible action.
95
- */
96
- _hideTableCaption(writer) {
97
- const model = this.editor.model;
98
- const tableElement = getSelectionAffectedTable(model.document.selection);
99
- const tableCaptionEditing = this.editor.plugins.get('TableCaptionEditing');
100
- const captionElement = getCaptionFromTableModelElement(tableElement);
101
- // Store the caption content so it can be restored quickly if the user changes their mind.
102
- tableCaptionEditing._saveCaption(tableElement, captionElement);
103
- model.deleteContent(writer.createSelection(captionElement, 'on'));
104
- }
105
- }
@@ -1,61 +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 { getSelectionAffectedTable } from '../utils/common.js';
6
- /**
7
- * Checks if the provided model element is a `table`.
8
- *
9
- * @param modelElement Element to check if it is a table.
10
- * @internal
11
- */
12
- export function isTable(modelElement) {
13
- return !!modelElement && modelElement.is('element', 'table');
14
- }
15
- /**
16
- * Returns the caption model element from a given table element. Returns `null` if no caption is found.
17
- *
18
- * @param tableModelElement Table element in which we will try to find a caption element.
19
- * @internal
20
- */
21
- export function getCaptionFromTableModelElement(tableModelElement) {
22
- for (const node of tableModelElement.getChildren()) {
23
- if (node.is('element', 'caption')) {
24
- return node;
25
- }
26
- }
27
- return null;
28
- }
29
- /**
30
- * Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.
31
- *
32
- * @param selection The selection checked for caption presence.
33
- * @internal
34
- */
35
- export function getCaptionFromModelSelection(selection) {
36
- const tableElement = getSelectionAffectedTable(selection);
37
- if (!tableElement) {
38
- return null;
39
- }
40
- return getCaptionFromTableModelElement(tableElement);
41
- }
42
- /**
43
- * {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a caption.
44
- *
45
- * There are two possible forms of the valid caption:
46
- * - A `<figcaption>` element inside a `<figure class="table">` element.
47
- * - A `<caption>` inside a <table>.
48
- *
49
- * @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element cannot be matched.
50
- * @internal
51
- */
52
- export function matchTableCaptionViewElement(element) {
53
- const parent = element.parent;
54
- if (element.name == 'figcaption' && parent && parent.is('element', 'figure') && parent.hasClass('table')) {
55
- return { name: true };
56
- }
57
- if (element.name == 'caption' && parent && parent.is('element', 'table')) {
58
- return { name: true };
59
- }
60
- return null;
61
- }
@@ -1,34 +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/tablecaption
7
- */
8
- import { Plugin } from 'ckeditor5/src/core.js';
9
- import { TableCaptionEditing } from './tablecaption/tablecaptionediting.js';
10
- import { TableCaptionUI } from './tablecaption/tablecaptionui.js';
11
- import '../theme/tablecaption.css';
12
- /**
13
- * The table caption plugin.
14
- */
15
- export class TableCaption extends Plugin {
16
- /**
17
- * @inheritDoc
18
- */
19
- static get pluginName() {
20
- return 'TableCaption';
21
- }
22
- /**
23
- * @inheritDoc
24
- */
25
- static get isOfficialPlugin() {
26
- return true;
27
- }
28
- /**
29
- * @inheritDoc
30
- */
31
- static get requires() {
32
- return [TableCaptionEditing, TableCaptionUI];
33
- }
34
- }
@@ -1,30 +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 background color command.
8
- *
9
- * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
10
- * the `'tableCellBackgroundColor'` editor command.
11
- *
12
- * To change the background color of selected cells, execute the command:
13
- *
14
- * ```ts
15
- * editor.execute( 'tableCellBackgroundColor', {
16
- * value: '#f00'
17
- * } );
18
- * ```
19
- */
20
- export class TableCellBackgroundColorCommand extends TableCellPropertyCommand {
21
- /**
22
- * Creates a new `TableCellBackgroundColorCommand` instance.
23
- *
24
- * @param editor An editor in which this command will be used.
25
- * @param defaultValue The default value of the attribute.
26
- */
27
- constructor(editor, defaultValue) {
28
- super(editor, 'tableCellBackgroundColor', defaultValue);
29
- }
30
- }
@@ -1,44 +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 { getSingleValue } from '../../utils/table-properties.js';
7
- /**
8
- * The table cell border color command.
9
- *
10
- * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
11
- * the `'tableCellBorderColor'` editor command.
12
- *
13
- * To change the border color of selected cells, execute the command:
14
- *
15
- * ```ts
16
- * editor.execute( 'tableCellBorderColor', {
17
- * value: '#f00'
18
- * } );
19
- * ```
20
- */
21
- export class TableCellBorderColorCommand extends TableCellPropertyCommand {
22
- /**
23
- * Creates a new `TableCellBorderColorCommand` instance.
24
- *
25
- * @param editor An editor in which this command will be used.
26
- * @param defaultValue The default value of the attribute.
27
- */
28
- constructor(editor, defaultValue) {
29
- super(editor, 'tableCellBorderColor', defaultValue);
30
- }
31
- /**
32
- * @inheritDoc
33
- */
34
- _getAttribute(tableCell) {
35
- if (!tableCell) {
36
- return;
37
- }
38
- const value = getSingleValue(tableCell.getAttribute(this.attributeName));
39
- if (value === this._defaultValue) {
40
- return;
41
- }
42
- return value;
43
- }
44
- }
@@ -1,44 +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 { getSingleValue } from '../../utils/table-properties.js';
7
- /**
8
- * The table cell border style command.
9
- *
10
- * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
11
- * the `'tableCellBorderStyle'` editor command.
12
- *
13
- * To change the border style of selected cells, execute the command:
14
- *
15
- * ```ts
16
- * editor.execute( 'tableCellBorderStyle', {
17
- * value: 'dashed'
18
- * } );
19
- * ```
20
- */
21
- export class TableCellBorderStyleCommand extends TableCellPropertyCommand {
22
- /**
23
- * Creates a new `TableCellBorderStyleCommand` instance.
24
- *
25
- * @param editor An editor in which this command will be used.
26
- * @param defaultValue The default value of the attribute.
27
- */
28
- constructor(editor, defaultValue) {
29
- super(editor, 'tableCellBorderStyle', defaultValue);
30
- }
31
- /**
32
- * @inheritDoc
33
- */
34
- _getAttribute(tableCell) {
35
- if (!tableCell) {
36
- return;
37
- }
38
- const value = getSingleValue(tableCell.getAttribute(this.attributeName));
39
- if (value === this._defaultValue) {
40
- return;
41
- }
42
- return value;
43
- }
44
- }
@@ -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 border width command.
9
- *
10
- * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
11
- * the `'tableCellBorderWidth'` editor command.
12
- *
13
- * To change the border width of selected cells, execute the command:
14
- *
15
- * ```ts
16
- * editor.execute( 'tableCellBorderWidth', {
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( 'tableCellBorderWidth', {
25
- * value: '5'
26
- * } );
27
- * ```
28
- *
29
- * will set the `borderWidth` attribute to `'5px'` in the model.
30
- */
31
- export class TableCellBorderWidthCommand extends TableCellPropertyCommand {
32
- /**
33
- * Creates a new `TableCellBorderWidthCommand` 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, 'tableCellBorderWidth', 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,51 +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 } from '../../utils/table-properties.js';
7
- /**
8
- * The table cell height command.
9
- *
10
- * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
11
- * the `'tableCellHeight'` editor command.
12
- *
13
- * To change the height of selected cells, execute the command:
14
- *
15
- * ```ts
16
- * editor.execute( 'tableCellHeight', {
17
- * value: '50px'
18
- * } );
19
- * ```
20
- *
21
- * **Note**: This command adds the default `'px'` unit to numeric values. Executing:
22
- *
23
- * ```ts
24
- * editor.execute( 'tableCellHeight', {
25
- * value: '50'
26
- * } );
27
- * ```
28
- *
29
- * will set the `height` attribute to `'50px'` in the model.
30
- */
31
- export class TableCellHeightCommand extends TableCellPropertyCommand {
32
- /**
33
- * Creates a new `TableCellHeightCommand` 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, 'tableCellHeight', defaultValue);
40
- }
41
- /**
42
- * @inheritDoc
43
- */
44
- _getValueToSet(value) {
45
- const newValue = addDefaultUnitToNumericValue(value, 'px');
46
- if (newValue === this._defaultValue) {
47
- return;
48
- }
49
- return newValue;
50
- }
51
- }
@@ -1,30 +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 horizontal alignment command.
8
- *
9
- * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
10
- * the `'tableCellHorizontalAlignment'` editor command.
11
- *
12
- * To change the horizontal text alignment of selected cells, execute the command:
13
- *
14
- * ```ts
15
- * editor.execute( 'tableCellHorizontalAlignment', {
16
- * value: 'right'
17
- * } );
18
- * ```
19
- */
20
- export class TableCellHorizontalAlignmentCommand extends TableCellPropertyCommand {
21
- /**
22
- * Creates a new `TableCellHorizontalAlignmentCommand` instance.
23
- *
24
- * @param editor An editor in which this command will be used.
25
- * @param defaultValue The default value for the "alignment" attribute.
26
- */
27
- constructor(editor, defaultValue) {
28
- super(editor, 'tableCellHorizontalAlignment', defaultValue);
29
- }
30
- }