@ckeditor/ckeditor5-table 0.0.0-internal-20241017.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 (565) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +26 -0
  4. package/build/table.js +5 -0
  5. package/build/translations/ar.js +1 -0
  6. package/build/translations/az.js +1 -0
  7. package/build/translations/bg.js +1 -0
  8. package/build/translations/bn.js +1 -0
  9. package/build/translations/ca.js +1 -0
  10. package/build/translations/cs.js +1 -0
  11. package/build/translations/da.js +1 -0
  12. package/build/translations/de-ch.js +1 -0
  13. package/build/translations/de.js +1 -0
  14. package/build/translations/el.js +1 -0
  15. package/build/translations/en-au.js +1 -0
  16. package/build/translations/en-gb.js +1 -0
  17. package/build/translations/es.js +1 -0
  18. package/build/translations/et.js +1 -0
  19. package/build/translations/fa.js +1 -0
  20. package/build/translations/fi.js +1 -0
  21. package/build/translations/fr.js +1 -0
  22. package/build/translations/gl.js +1 -0
  23. package/build/translations/he.js +1 -0
  24. package/build/translations/hi.js +1 -0
  25. package/build/translations/hr.js +1 -0
  26. package/build/translations/hu.js +1 -0
  27. package/build/translations/hy.js +1 -0
  28. package/build/translations/id.js +1 -0
  29. package/build/translations/it.js +1 -0
  30. package/build/translations/ja.js +1 -0
  31. package/build/translations/ko.js +1 -0
  32. package/build/translations/ku.js +1 -0
  33. package/build/translations/lt.js +1 -0
  34. package/build/translations/lv.js +1 -0
  35. package/build/translations/ms.js +1 -0
  36. package/build/translations/nb.js +1 -0
  37. package/build/translations/ne.js +1 -0
  38. package/build/translations/nl.js +1 -0
  39. package/build/translations/no.js +1 -0
  40. package/build/translations/pl.js +1 -0
  41. package/build/translations/pt-br.js +1 -0
  42. package/build/translations/pt.js +1 -0
  43. package/build/translations/ro.js +1 -0
  44. package/build/translations/ru.js +1 -0
  45. package/build/translations/sk.js +1 -0
  46. package/build/translations/sl.js +1 -0
  47. package/build/translations/sq.js +1 -0
  48. package/build/translations/sr-latn.js +1 -0
  49. package/build/translations/sr.js +1 -0
  50. package/build/translations/sv.js +1 -0
  51. package/build/translations/th.js +1 -0
  52. package/build/translations/tk.js +1 -0
  53. package/build/translations/tr.js +1 -0
  54. package/build/translations/tt.js +1 -0
  55. package/build/translations/ug.js +1 -0
  56. package/build/translations/uk.js +1 -0
  57. package/build/translations/ur.js +1 -0
  58. package/build/translations/uz.js +1 -0
  59. package/build/translations/vi.js +1 -0
  60. package/build/translations/zh-cn.js +1 -0
  61. package/build/translations/zh.js +1 -0
  62. package/ckeditor5-metadata.json +193 -0
  63. package/dist/augmentation.d.ts +80 -0
  64. package/dist/commands/insertcolumncommand.d.ts +59 -0
  65. package/dist/commands/insertrowcommand.d.ts +58 -0
  66. package/dist/commands/inserttablecommand.d.ts +48 -0
  67. package/dist/commands/mergecellcommand.d.ts +72 -0
  68. package/dist/commands/mergecellscommand.d.ts +32 -0
  69. package/dist/commands/removecolumncommand.d.ts +33 -0
  70. package/dist/commands/removerowcommand.d.ts +33 -0
  71. package/dist/commands/selectcolumncommand.d.ts +37 -0
  72. package/dist/commands/selectrowcommand.d.ts +37 -0
  73. package/dist/commands/setheadercolumncommand.d.ts +54 -0
  74. package/dist/commands/setheaderrowcommand.d.ts +57 -0
  75. package/dist/commands/splitcellcommand.d.ts +47 -0
  76. package/dist/converters/downcast.d.ts +67 -0
  77. package/dist/converters/table-caption-post-fixer.d.ts +24 -0
  78. package/dist/converters/table-cell-paragraph-post-fixer.d.ts +36 -0
  79. package/dist/converters/table-cell-refresh-handler.d.ts +22 -0
  80. package/dist/converters/table-headings-refresh-handler.d.ts +21 -0
  81. package/dist/converters/table-layout-post-fixer.d.ts +230 -0
  82. package/dist/converters/tableproperties.d.ts +58 -0
  83. package/dist/converters/upcasttable.d.ts +53 -0
  84. package/dist/index-content.css +76 -0
  85. package/dist/index-editor.css +201 -0
  86. package/dist/index.css +394 -0
  87. package/dist/index.css.map +1 -0
  88. package/dist/index.d.ts +64 -0
  89. package/dist/index.js +11522 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/plaintableoutput.d.ts +34 -0
  92. package/dist/table.d.ts +48 -0
  93. package/dist/tablecaption/tablecaptionediting.d.ts +71 -0
  94. package/dist/tablecaption/tablecaptionui.d.ts +29 -0
  95. package/dist/tablecaption/toggletablecaptioncommand.d.ts +72 -0
  96. package/dist/tablecaption/utils.d.ts +42 -0
  97. package/dist/tablecaption.d.ts +32 -0
  98. package/dist/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +36 -0
  99. package/dist/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +41 -0
  100. package/dist/tablecellproperties/commands/tablecellborderstylecommand.d.ts +41 -0
  101. package/dist/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +55 -0
  102. package/dist/tablecellproperties/commands/tablecellheightcommand.d.ts +50 -0
  103. package/dist/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +36 -0
  104. package/dist/tablecellproperties/commands/tablecellpaddingcommand.d.ts +55 -0
  105. package/dist/tablecellproperties/commands/tablecellpropertycommand.d.ts +66 -0
  106. package/dist/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +44 -0
  107. package/dist/tablecellproperties/tablecellpropertiesediting.d.ts +51 -0
  108. package/dist/tablecellproperties/tablecellpropertiesui.d.ts +120 -0
  109. package/dist/tablecellproperties/ui/tablecellpropertiesview.d.ts +232 -0
  110. package/dist/tablecellproperties.d.ts +38 -0
  111. package/dist/tablecellwidth/commands/tablecellwidthcommand.d.ts +50 -0
  112. package/dist/tablecellwidth/tablecellwidthediting.d.ts +37 -0
  113. package/dist/tableclipboard.d.ts +78 -0
  114. package/dist/tablecolumnresize/constants.d.ts +24 -0
  115. package/dist/tablecolumnresize/converters.d.ts +22 -0
  116. package/dist/tablecolumnresize/tablecolumnresizeediting.d.ts +147 -0
  117. package/dist/tablecolumnresize/tablewidthscommand.d.ts +42 -0
  118. package/dist/tablecolumnresize/utils.d.ts +152 -0
  119. package/dist/tablecolumnresize.d.ts +34 -0
  120. package/dist/tableconfig.d.ts +347 -0
  121. package/dist/tableediting.d.ts +106 -0
  122. package/dist/tablekeyboard.d.ts +76 -0
  123. package/dist/tablemouse/mouseeventsobserver.d.ts +66 -0
  124. package/dist/tablemouse.d.ts +56 -0
  125. package/dist/tableproperties/commands/tablealignmentcommand.d.ts +36 -0
  126. package/dist/tableproperties/commands/tablebackgroundcolorcommand.d.ts +36 -0
  127. package/dist/tableproperties/commands/tablebordercolorcommand.d.ts +41 -0
  128. package/dist/tableproperties/commands/tableborderstylecommand.d.ts +41 -0
  129. package/dist/tableproperties/commands/tableborderwidthcommand.d.ts +55 -0
  130. package/dist/tableproperties/commands/tableheightcommand.d.ts +50 -0
  131. package/dist/tableproperties/commands/tablepropertycommand.d.ts +65 -0
  132. package/dist/tableproperties/commands/tablewidthcommand.d.ts +50 -0
  133. package/dist/tableproperties/tablepropertiesediting.d.ts +48 -0
  134. package/dist/tableproperties/tablepropertiesui.d.ts +122 -0
  135. package/dist/tableproperties/ui/tablepropertiesview.d.ts +211 -0
  136. package/dist/tableproperties.d.ts +38 -0
  137. package/dist/tableselection.d.ts +115 -0
  138. package/dist/tabletoolbar.d.ts +40 -0
  139. package/dist/tableui.d.ts +62 -0
  140. package/dist/tableutils.d.ts +456 -0
  141. package/dist/tablewalker.d.ts +366 -0
  142. package/dist/translations/ar.d.ts +8 -0
  143. package/dist/translations/ar.js +5 -0
  144. package/dist/translations/ar.umd.js +11 -0
  145. package/dist/translations/az.d.ts +8 -0
  146. package/dist/translations/az.js +5 -0
  147. package/dist/translations/az.umd.js +11 -0
  148. package/dist/translations/bg.d.ts +8 -0
  149. package/dist/translations/bg.js +5 -0
  150. package/dist/translations/bg.umd.js +11 -0
  151. package/dist/translations/bn.d.ts +8 -0
  152. package/dist/translations/bn.js +5 -0
  153. package/dist/translations/bn.umd.js +11 -0
  154. package/dist/translations/ca.d.ts +8 -0
  155. package/dist/translations/ca.js +5 -0
  156. package/dist/translations/ca.umd.js +11 -0
  157. package/dist/translations/cs.d.ts +8 -0
  158. package/dist/translations/cs.js +5 -0
  159. package/dist/translations/cs.umd.js +11 -0
  160. package/dist/translations/da.d.ts +8 -0
  161. package/dist/translations/da.js +5 -0
  162. package/dist/translations/da.umd.js +11 -0
  163. package/dist/translations/de-ch.d.ts +8 -0
  164. package/dist/translations/de-ch.js +5 -0
  165. package/dist/translations/de-ch.umd.js +11 -0
  166. package/dist/translations/de.d.ts +8 -0
  167. package/dist/translations/de.js +5 -0
  168. package/dist/translations/de.umd.js +11 -0
  169. package/dist/translations/el.d.ts +8 -0
  170. package/dist/translations/el.js +5 -0
  171. package/dist/translations/el.umd.js +11 -0
  172. package/dist/translations/en-au.d.ts +8 -0
  173. package/dist/translations/en-au.js +5 -0
  174. package/dist/translations/en-au.umd.js +11 -0
  175. package/dist/translations/en-gb.d.ts +8 -0
  176. package/dist/translations/en-gb.js +5 -0
  177. package/dist/translations/en-gb.umd.js +11 -0
  178. package/dist/translations/en.d.ts +8 -0
  179. package/dist/translations/en.js +5 -0
  180. package/dist/translations/en.umd.js +11 -0
  181. package/dist/translations/es.d.ts +8 -0
  182. package/dist/translations/es.js +5 -0
  183. package/dist/translations/es.umd.js +11 -0
  184. package/dist/translations/et.d.ts +8 -0
  185. package/dist/translations/et.js +5 -0
  186. package/dist/translations/et.umd.js +11 -0
  187. package/dist/translations/fa.d.ts +8 -0
  188. package/dist/translations/fa.js +5 -0
  189. package/dist/translations/fa.umd.js +11 -0
  190. package/dist/translations/fi.d.ts +8 -0
  191. package/dist/translations/fi.js +5 -0
  192. package/dist/translations/fi.umd.js +11 -0
  193. package/dist/translations/fr.d.ts +8 -0
  194. package/dist/translations/fr.js +5 -0
  195. package/dist/translations/fr.umd.js +11 -0
  196. package/dist/translations/gl.d.ts +8 -0
  197. package/dist/translations/gl.js +5 -0
  198. package/dist/translations/gl.umd.js +11 -0
  199. package/dist/translations/he.d.ts +8 -0
  200. package/dist/translations/he.js +5 -0
  201. package/dist/translations/he.umd.js +11 -0
  202. package/dist/translations/hi.d.ts +8 -0
  203. package/dist/translations/hi.js +5 -0
  204. package/dist/translations/hi.umd.js +11 -0
  205. package/dist/translations/hr.d.ts +8 -0
  206. package/dist/translations/hr.js +5 -0
  207. package/dist/translations/hr.umd.js +11 -0
  208. package/dist/translations/hu.d.ts +8 -0
  209. package/dist/translations/hu.js +5 -0
  210. package/dist/translations/hu.umd.js +11 -0
  211. package/dist/translations/hy.d.ts +8 -0
  212. package/dist/translations/hy.js +5 -0
  213. package/dist/translations/hy.umd.js +11 -0
  214. package/dist/translations/id.d.ts +8 -0
  215. package/dist/translations/id.js +5 -0
  216. package/dist/translations/id.umd.js +11 -0
  217. package/dist/translations/it.d.ts +8 -0
  218. package/dist/translations/it.js +5 -0
  219. package/dist/translations/it.umd.js +11 -0
  220. package/dist/translations/ja.d.ts +8 -0
  221. package/dist/translations/ja.js +5 -0
  222. package/dist/translations/ja.umd.js +11 -0
  223. package/dist/translations/ko.d.ts +8 -0
  224. package/dist/translations/ko.js +5 -0
  225. package/dist/translations/ko.umd.js +11 -0
  226. package/dist/translations/ku.d.ts +8 -0
  227. package/dist/translations/ku.js +5 -0
  228. package/dist/translations/ku.umd.js +11 -0
  229. package/dist/translations/lt.d.ts +8 -0
  230. package/dist/translations/lt.js +5 -0
  231. package/dist/translations/lt.umd.js +11 -0
  232. package/dist/translations/lv.d.ts +8 -0
  233. package/dist/translations/lv.js +5 -0
  234. package/dist/translations/lv.umd.js +11 -0
  235. package/dist/translations/ms.d.ts +8 -0
  236. package/dist/translations/ms.js +5 -0
  237. package/dist/translations/ms.umd.js +11 -0
  238. package/dist/translations/nb.d.ts +8 -0
  239. package/dist/translations/nb.js +5 -0
  240. package/dist/translations/nb.umd.js +11 -0
  241. package/dist/translations/ne.d.ts +8 -0
  242. package/dist/translations/ne.js +5 -0
  243. package/dist/translations/ne.umd.js +11 -0
  244. package/dist/translations/nl.d.ts +8 -0
  245. package/dist/translations/nl.js +5 -0
  246. package/dist/translations/nl.umd.js +11 -0
  247. package/dist/translations/no.d.ts +8 -0
  248. package/dist/translations/no.js +5 -0
  249. package/dist/translations/no.umd.js +11 -0
  250. package/dist/translations/pl.d.ts +8 -0
  251. package/dist/translations/pl.js +5 -0
  252. package/dist/translations/pl.umd.js +11 -0
  253. package/dist/translations/pt-br.d.ts +8 -0
  254. package/dist/translations/pt-br.js +5 -0
  255. package/dist/translations/pt-br.umd.js +11 -0
  256. package/dist/translations/pt.d.ts +8 -0
  257. package/dist/translations/pt.js +5 -0
  258. package/dist/translations/pt.umd.js +11 -0
  259. package/dist/translations/ro.d.ts +8 -0
  260. package/dist/translations/ro.js +5 -0
  261. package/dist/translations/ro.umd.js +11 -0
  262. package/dist/translations/ru.d.ts +8 -0
  263. package/dist/translations/ru.js +5 -0
  264. package/dist/translations/ru.umd.js +11 -0
  265. package/dist/translations/sk.d.ts +8 -0
  266. package/dist/translations/sk.js +5 -0
  267. package/dist/translations/sk.umd.js +11 -0
  268. package/dist/translations/sl.d.ts +8 -0
  269. package/dist/translations/sl.js +5 -0
  270. package/dist/translations/sl.umd.js +11 -0
  271. package/dist/translations/sq.d.ts +8 -0
  272. package/dist/translations/sq.js +5 -0
  273. package/dist/translations/sq.umd.js +11 -0
  274. package/dist/translations/sr-latn.d.ts +8 -0
  275. package/dist/translations/sr-latn.js +5 -0
  276. package/dist/translations/sr-latn.umd.js +11 -0
  277. package/dist/translations/sr.d.ts +8 -0
  278. package/dist/translations/sr.js +5 -0
  279. package/dist/translations/sr.umd.js +11 -0
  280. package/dist/translations/sv.d.ts +8 -0
  281. package/dist/translations/sv.js +5 -0
  282. package/dist/translations/sv.umd.js +11 -0
  283. package/dist/translations/th.d.ts +8 -0
  284. package/dist/translations/th.js +5 -0
  285. package/dist/translations/th.umd.js +11 -0
  286. package/dist/translations/tk.d.ts +8 -0
  287. package/dist/translations/tk.js +5 -0
  288. package/dist/translations/tk.umd.js +11 -0
  289. package/dist/translations/tr.d.ts +8 -0
  290. package/dist/translations/tr.js +5 -0
  291. package/dist/translations/tr.umd.js +11 -0
  292. package/dist/translations/tt.d.ts +8 -0
  293. package/dist/translations/tt.js +5 -0
  294. package/dist/translations/tt.umd.js +11 -0
  295. package/dist/translations/ug.d.ts +8 -0
  296. package/dist/translations/ug.js +5 -0
  297. package/dist/translations/ug.umd.js +11 -0
  298. package/dist/translations/uk.d.ts +8 -0
  299. package/dist/translations/uk.js +5 -0
  300. package/dist/translations/uk.umd.js +11 -0
  301. package/dist/translations/ur.d.ts +8 -0
  302. package/dist/translations/ur.js +5 -0
  303. package/dist/translations/ur.umd.js +11 -0
  304. package/dist/translations/uz.d.ts +8 -0
  305. package/dist/translations/uz.js +5 -0
  306. package/dist/translations/uz.umd.js +11 -0
  307. package/dist/translations/vi.d.ts +8 -0
  308. package/dist/translations/vi.js +5 -0
  309. package/dist/translations/vi.umd.js +11 -0
  310. package/dist/translations/zh-cn.d.ts +8 -0
  311. package/dist/translations/zh-cn.js +5 -0
  312. package/dist/translations/zh-cn.umd.js +11 -0
  313. package/dist/translations/zh.d.ts +8 -0
  314. package/dist/translations/zh.js +5 -0
  315. package/dist/translations/zh.umd.js +11 -0
  316. package/dist/ui/colorinputview.d.ts +144 -0
  317. package/dist/ui/formrowview.d.ts +65 -0
  318. package/dist/ui/inserttableview.d.ts +85 -0
  319. package/dist/utils/common.d.ts +50 -0
  320. package/dist/utils/structure.d.ts +249 -0
  321. package/dist/utils/table-properties.d.ts +101 -0
  322. package/dist/utils/ui/contextualballoon.d.ts +38 -0
  323. package/dist/utils/ui/table-properties.d.ts +199 -0
  324. package/dist/utils/ui/widget.d.ts +24 -0
  325. package/lang/contexts.json +67 -0
  326. package/lang/translations/ar.po +278 -0
  327. package/lang/translations/az.po +278 -0
  328. package/lang/translations/bg.po +278 -0
  329. package/lang/translations/bn.po +280 -0
  330. package/lang/translations/ca.po +278 -0
  331. package/lang/translations/cs.po +278 -0
  332. package/lang/translations/da.po +278 -0
  333. package/lang/translations/de-ch.po +278 -0
  334. package/lang/translations/de.po +278 -0
  335. package/lang/translations/el.po +278 -0
  336. package/lang/translations/en-au.po +278 -0
  337. package/lang/translations/en-gb.po +278 -0
  338. package/lang/translations/en.po +278 -0
  339. package/lang/translations/es.po +278 -0
  340. package/lang/translations/et.po +278 -0
  341. package/lang/translations/fa.po +278 -0
  342. package/lang/translations/fi.po +278 -0
  343. package/lang/translations/fr.po +278 -0
  344. package/lang/translations/gl.po +278 -0
  345. package/lang/translations/he.po +278 -0
  346. package/lang/translations/hi.po +278 -0
  347. package/lang/translations/hr.po +278 -0
  348. package/lang/translations/hu.po +278 -0
  349. package/lang/translations/hy.po +278 -0
  350. package/lang/translations/id.po +278 -0
  351. package/lang/translations/it.po +278 -0
  352. package/lang/translations/ja.po +278 -0
  353. package/lang/translations/ko.po +278 -0
  354. package/lang/translations/ku.po +278 -0
  355. package/lang/translations/lt.po +278 -0
  356. package/lang/translations/lv.po +278 -0
  357. package/lang/translations/ms.po +278 -0
  358. package/lang/translations/nb.po +278 -0
  359. package/lang/translations/ne.po +278 -0
  360. package/lang/translations/nl.po +278 -0
  361. package/lang/translations/no.po +278 -0
  362. package/lang/translations/pl.po +278 -0
  363. package/lang/translations/pt-br.po +278 -0
  364. package/lang/translations/pt.po +278 -0
  365. package/lang/translations/ro.po +278 -0
  366. package/lang/translations/ru.po +278 -0
  367. package/lang/translations/sk.po +278 -0
  368. package/lang/translations/sl.po +278 -0
  369. package/lang/translations/sq.po +278 -0
  370. package/lang/translations/sr-latn.po +278 -0
  371. package/lang/translations/sr.po +278 -0
  372. package/lang/translations/sv.po +278 -0
  373. package/lang/translations/th.po +278 -0
  374. package/lang/translations/tk.po +278 -0
  375. package/lang/translations/tr.po +278 -0
  376. package/lang/translations/tt.po +278 -0
  377. package/lang/translations/ug.po +278 -0
  378. package/lang/translations/uk.po +278 -0
  379. package/lang/translations/ur.po +278 -0
  380. package/lang/translations/uz.po +278 -0
  381. package/lang/translations/vi.po +278 -0
  382. package/lang/translations/zh-cn.po +278 -0
  383. package/lang/translations/zh.po +278 -0
  384. package/package.json +45 -0
  385. package/src/augmentation.d.ts +76 -0
  386. package/src/augmentation.js +5 -0
  387. package/src/commands/insertcolumncommand.d.ts +55 -0
  388. package/src/commands/insertcolumncommand.js +67 -0
  389. package/src/commands/insertrowcommand.d.ts +54 -0
  390. package/src/commands/insertrowcommand.js +66 -0
  391. package/src/commands/inserttablecommand.d.ts +44 -0
  392. package/src/commands/inserttablecommand.js +69 -0
  393. package/src/commands/mergecellcommand.d.ts +68 -0
  394. package/src/commands/mergecellcommand.js +198 -0
  395. package/src/commands/mergecellscommand.d.ts +28 -0
  396. package/src/commands/mergecellscommand.js +94 -0
  397. package/src/commands/removecolumncommand.d.ts +29 -0
  398. package/src/commands/removecolumncommand.js +109 -0
  399. package/src/commands/removerowcommand.d.ts +29 -0
  400. package/src/commands/removerowcommand.js +82 -0
  401. package/src/commands/selectcolumncommand.d.ts +33 -0
  402. package/src/commands/selectcolumncommand.js +60 -0
  403. package/src/commands/selectrowcommand.d.ts +33 -0
  404. package/src/commands/selectrowcommand.js +56 -0
  405. package/src/commands/setheadercolumncommand.d.ts +50 -0
  406. package/src/commands/setheadercolumncommand.js +71 -0
  407. package/src/commands/setheaderrowcommand.d.ts +53 -0
  408. package/src/commands/setheaderrowcommand.js +79 -0
  409. package/src/commands/splitcellcommand.d.ts +43 -0
  410. package/src/commands/splitcellcommand.js +54 -0
  411. package/src/converters/downcast.d.ts +63 -0
  412. package/src/converters/downcast.js +146 -0
  413. package/src/converters/table-caption-post-fixer.d.ts +20 -0
  414. package/src/converters/table-caption-post-fixer.js +53 -0
  415. package/src/converters/table-cell-paragraph-post-fixer.d.ts +32 -0
  416. package/src/converters/table-cell-paragraph-post-fixer.js +107 -0
  417. package/src/converters/table-cell-refresh-handler.d.ts +18 -0
  418. package/src/converters/table-cell-refresh-handler.js +45 -0
  419. package/src/converters/table-headings-refresh-handler.d.ts +17 -0
  420. package/src/converters/table-headings-refresh-handler.js +49 -0
  421. package/src/converters/table-layout-post-fixer.d.ts +226 -0
  422. package/src/converters/table-layout-post-fixer.js +367 -0
  423. package/src/converters/tableproperties.d.ts +54 -0
  424. package/src/converters/tableproperties.js +159 -0
  425. package/src/converters/upcasttable.d.ts +49 -0
  426. package/src/converters/upcasttable.js +243 -0
  427. package/src/index.d.ts +60 -0
  428. package/src/index.js +30 -0
  429. package/src/plaintableoutput.d.ts +30 -0
  430. package/src/plaintableoutput.js +129 -0
  431. package/src/table.d.ts +44 -0
  432. package/src/table.js +50 -0
  433. package/src/tablecaption/tablecaptionediting.d.ts +67 -0
  434. package/src/tablecaption/tablecaptionediting.js +128 -0
  435. package/src/tablecaption/tablecaptionui.d.ts +25 -0
  436. package/src/tablecaption/tablecaptionui.js +63 -0
  437. package/src/tablecaption/toggletablecaptioncommand.d.ts +68 -0
  438. package/src/tablecaption/toggletablecaptioncommand.js +105 -0
  439. package/src/tablecaption/utils.d.ts +38 -0
  440. package/src/tablecaption/utils.js +57 -0
  441. package/src/tablecaption.d.ts +28 -0
  442. package/src/tablecaption.js +34 -0
  443. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +32 -0
  444. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +30 -0
  445. package/src/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +37 -0
  446. package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +44 -0
  447. package/src/tablecellproperties/commands/tablecellborderstylecommand.d.ts +37 -0
  448. package/src/tablecellproperties/commands/tablecellborderstylecommand.js +44 -0
  449. package/src/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +51 -0
  450. package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +64 -0
  451. package/src/tablecellproperties/commands/tablecellheightcommand.d.ts +46 -0
  452. package/src/tablecellproperties/commands/tablecellheightcommand.js +51 -0
  453. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +32 -0
  454. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +30 -0
  455. package/src/tablecellproperties/commands/tablecellpaddingcommand.d.ts +51 -0
  456. package/src/tablecellproperties/commands/tablecellpaddingcommand.js +64 -0
  457. package/src/tablecellproperties/commands/tablecellpropertycommand.d.ts +62 -0
  458. package/src/tablecellproperties/commands/tablecellpropertycommand.js +92 -0
  459. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +40 -0
  460. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +38 -0
  461. package/src/tablecellproperties/tablecellpropertiesediting.d.ts +47 -0
  462. package/src/tablecellproperties/tablecellpropertiesediting.js +247 -0
  463. package/src/tablecellproperties/tablecellpropertiesui.d.ts +116 -0
  464. package/src/tablecellproperties/tablecellpropertiesui.js +336 -0
  465. package/src/tablecellproperties/ui/tablecellpropertiesview.d.ts +228 -0
  466. package/src/tablecellproperties/ui/tablecellpropertiesview.js +541 -0
  467. package/src/tablecellproperties.d.ts +34 -0
  468. package/src/tablecellproperties.js +40 -0
  469. package/src/tablecellwidth/commands/tablecellwidthcommand.d.ts +46 -0
  470. package/src/tablecellwidth/commands/tablecellwidthcommand.js +51 -0
  471. package/src/tablecellwidth/tablecellwidthediting.d.ts +33 -0
  472. package/src/tablecellwidth/tablecellwidthediting.js +51 -0
  473. package/src/tableclipboard.d.ts +74 -0
  474. package/src/tableclipboard.js +473 -0
  475. package/src/tablecolumnresize/constants.d.ts +20 -0
  476. package/src/tablecolumnresize/constants.js +20 -0
  477. package/src/tablecolumnresize/converters.d.ts +18 -0
  478. package/src/tablecolumnresize/converters.js +46 -0
  479. package/src/tablecolumnresize/tablecolumnresizeediting.d.ts +143 -0
  480. package/src/tablecolumnresize/tablecolumnresizeediting.js +589 -0
  481. package/src/tablecolumnresize/tablewidthscommand.d.ts +38 -0
  482. package/src/tablecolumnresize/tablewidthscommand.js +61 -0
  483. package/src/tablecolumnresize/utils.d.ts +148 -0
  484. package/src/tablecolumnresize/utils.js +358 -0
  485. package/src/tablecolumnresize.d.ts +30 -0
  486. package/src/tablecolumnresize.js +36 -0
  487. package/src/tableconfig.d.ts +343 -0
  488. package/src/tableconfig.js +5 -0
  489. package/src/tableediting.d.ts +102 -0
  490. package/src/tableediting.js +197 -0
  491. package/src/tablekeyboard.d.ts +72 -0
  492. package/src/tablekeyboard.js +310 -0
  493. package/src/tablemouse/mouseeventsobserver.d.ts +62 -0
  494. package/src/tablemouse/mouseeventsobserver.js +35 -0
  495. package/src/tablemouse.d.ts +52 -0
  496. package/src/tablemouse.js +178 -0
  497. package/src/tableproperties/commands/tablealignmentcommand.d.ts +32 -0
  498. package/src/tableproperties/commands/tablealignmentcommand.js +30 -0
  499. package/src/tableproperties/commands/tablebackgroundcolorcommand.d.ts +32 -0
  500. package/src/tableproperties/commands/tablebackgroundcolorcommand.js +30 -0
  501. package/src/tableproperties/commands/tablebordercolorcommand.d.ts +37 -0
  502. package/src/tableproperties/commands/tablebordercolorcommand.js +44 -0
  503. package/src/tableproperties/commands/tableborderstylecommand.d.ts +37 -0
  504. package/src/tableproperties/commands/tableborderstylecommand.js +44 -0
  505. package/src/tableproperties/commands/tableborderwidthcommand.d.ts +51 -0
  506. package/src/tableproperties/commands/tableborderwidthcommand.js +64 -0
  507. package/src/tableproperties/commands/tableheightcommand.d.ts +46 -0
  508. package/src/tableproperties/commands/tableheightcommand.js +54 -0
  509. package/src/tableproperties/commands/tablepropertycommand.d.ts +61 -0
  510. package/src/tableproperties/commands/tablepropertycommand.js +81 -0
  511. package/src/tableproperties/commands/tablewidthcommand.d.ts +46 -0
  512. package/src/tableproperties/commands/tablewidthcommand.js +54 -0
  513. package/src/tableproperties/tablepropertiesediting.d.ts +44 -0
  514. package/src/tableproperties/tablepropertiesediting.js +212 -0
  515. package/src/tableproperties/tablepropertiesui.d.ts +118 -0
  516. package/src/tableproperties/tablepropertiesui.js +327 -0
  517. package/src/tableproperties/ui/tablepropertiesview.d.ts +207 -0
  518. package/src/tableproperties/ui/tablepropertiesview.js +458 -0
  519. package/src/tableproperties.d.ts +34 -0
  520. package/src/tableproperties.js +40 -0
  521. package/src/tableselection.d.ts +111 -0
  522. package/src/tableselection.js +303 -0
  523. package/src/tabletoolbar.d.ts +36 -0
  524. package/src/tabletoolbar.js +63 -0
  525. package/src/tableui.d.ts +58 -0
  526. package/src/tableui.js +337 -0
  527. package/src/tableutils.d.ts +452 -0
  528. package/src/tableutils.js +1076 -0
  529. package/src/tablewalker.d.ts +362 -0
  530. package/src/tablewalker.js +393 -0
  531. package/src/ui/colorinputview.d.ts +140 -0
  532. package/src/ui/colorinputview.js +271 -0
  533. package/src/ui/formrowview.d.ts +61 -0
  534. package/src/ui/formrowview.js +57 -0
  535. package/src/ui/inserttableview.d.ts +81 -0
  536. package/src/ui/inserttableview.js +178 -0
  537. package/src/utils/common.d.ts +46 -0
  538. package/src/utils/common.js +68 -0
  539. package/src/utils/structure.d.ts +245 -0
  540. package/src/utils/structure.js +426 -0
  541. package/src/utils/table-properties.d.ts +97 -0
  542. package/src/utils/table-properties.js +115 -0
  543. package/src/utils/ui/contextualballoon.d.ts +34 -0
  544. package/src/utils/ui/contextualballoon.js +109 -0
  545. package/src/utils/ui/table-properties.d.ts +195 -0
  546. package/src/utils/ui/table-properties.js +362 -0
  547. package/src/utils/ui/widget.d.ts +20 -0
  548. package/src/utils/ui/widget.js +48 -0
  549. package/theme/colorinput.css +39 -0
  550. package/theme/form.css +11 -0
  551. package/theme/formrow.css +23 -0
  552. package/theme/icons/table-cell-properties.svg +1 -0
  553. package/theme/icons/table-column.svg +1 -0
  554. package/theme/icons/table-merge-cell.svg +1 -0
  555. package/theme/icons/table-properties.svg +1 -0
  556. package/theme/icons/table-row.svg +1 -0
  557. package/theme/inserttable.css +10 -0
  558. package/theme/table.css +84 -0
  559. package/theme/tablecaption.css +63 -0
  560. package/theme/tablecellproperties.css +28 -0
  561. package/theme/tablecolumnresize.css +67 -0
  562. package/theme/tableediting.css +10 -0
  563. package/theme/tableform.css +59 -0
  564. package/theme/tableproperties.css +18 -0
  565. package/theme/tableselection.css +10 -0
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module table/tablecaption/tablecaptionediting
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ import { Element, enablePlaceholder } 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 default class TableCaptionEditing extends Plugin {
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ static get pluginName() {
22
+ return 'TableCaptionEditing';
23
+ }
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get isOfficialPlugin() {
28
+ return true;
29
+ }
30
+ /**
31
+ * @inheritDoc
32
+ */
33
+ constructor(editor) {
34
+ super(editor);
35
+ this._savedCaptionsMap = new WeakMap();
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
+ if (!schema.isRegistered('caption')) {
46
+ schema.register('caption', {
47
+ allowIn: 'table',
48
+ allowContentOf: '$block',
49
+ isLimit: true
50
+ });
51
+ }
52
+ else {
53
+ schema.extend('caption', {
54
+ allowIn: 'table'
55
+ });
56
+ }
57
+ editor.commands.add('toggleTableCaption', new ToggleTableCaptionCommand(this.editor));
58
+ // View -> model converter for the data pipeline.
59
+ editor.conversion.for('upcast').elementToElement({
60
+ view: matchTableCaptionViewElement,
61
+ model: 'caption'
62
+ });
63
+ // Model -> view converter for the data pipeline.
64
+ editor.conversion.for('dataDowncast').elementToElement({
65
+ model: 'caption',
66
+ view: (modelElement, { writer }) => {
67
+ if (!isTable(modelElement.parent)) {
68
+ return null;
69
+ }
70
+ return writer.createContainerElement('figcaption');
71
+ }
72
+ });
73
+ // Model -> view converter for the editing pipeline.
74
+ editor.conversion.for('editingDowncast').elementToElement({
75
+ model: 'caption',
76
+ view: (modelElement, { writer }) => {
77
+ if (!isTable(modelElement.parent)) {
78
+ return null;
79
+ }
80
+ const figcaptionElement = writer.createEditableElement('figcaption');
81
+ writer.setCustomProperty('tableCaption', true, figcaptionElement);
82
+ figcaptionElement.placeholder = t('Enter table caption');
83
+ enablePlaceholder({
84
+ view,
85
+ element: figcaptionElement,
86
+ keepOnFocus: true
87
+ });
88
+ return toWidgetEditable(figcaptionElement, writer);
89
+ }
90
+ });
91
+ injectTableCaptionPostFixer(editor.model);
92
+ }
93
+ /**
94
+ * Returns the saved {@link module:engine/model/element~Element#toJSON JSONified} caption
95
+ * of a table model element.
96
+ *
97
+ * See {@link #_saveCaption}.
98
+ *
99
+ * @internal
100
+ * @param tableModelElement The model element the caption should be returned for.
101
+ * @returns The model caption element or `null` if there is none.
102
+ */
103
+ _getSavedCaption(tableModelElement) {
104
+ const jsonObject = this._savedCaptionsMap.get(tableModelElement);
105
+ return jsonObject ? Element.fromJSON(jsonObject) : null;
106
+ }
107
+ /**
108
+ * Saves a {@link module:engine/model/element~Element#toJSON JSONified} caption for
109
+ * a table element to allow restoring it in the future.
110
+ *
111
+ * A caption is saved every time it gets hidden. The
112
+ * user should be able to restore it on demand.
113
+ *
114
+ * **Note**: The caption cannot be stored in the table model element attribute because,
115
+ * for instance, when the model state propagates to collaborators, the attribute would get
116
+ * lost (mainly because it does not convert to anything when the caption is hidden) and
117
+ * the states of collaborators' models would de-synchronize causing numerous issues.
118
+ *
119
+ * See {@link #_getSavedCaption}.
120
+ *
121
+ * @internal
122
+ * @param tableModelElement The model element the caption is saved for.
123
+ * @param caption The caption model element to be saved.
124
+ */
125
+ _saveCaption(tableModelElement, caption) {
126
+ this._savedCaptionsMap.set(tableModelElement, caption.toJSON());
127
+ }
128
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module table/tablecaption/tablecaptionui
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ /**
10
+ * The table caption UI plugin. It introduces the `'toggleTableCaption'` UI button.
11
+ */
12
+ export default class TableCaptionUI extends Plugin {
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ static get pluginName(): "TableCaptionUI";
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ static get isOfficialPlugin(): true;
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ init(): void;
25
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module table/tablecaption/tablecaptionui
7
+ */
8
+ import { Plugin, icons } from 'ckeditor5/src/core.js';
9
+ import { ButtonView } from 'ckeditor5/src/ui.js';
10
+ import { getCaptionFromModelSelection } from './utils.js';
11
+ /**
12
+ * The table caption UI plugin. It introduces the `'toggleTableCaption'` UI button.
13
+ */
14
+ export default class TableCaptionUI extends Plugin {
15
+ /**
16
+ * @inheritDoc
17
+ */
18
+ static get pluginName() {
19
+ return 'TableCaptionUI';
20
+ }
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ static get isOfficialPlugin() {
25
+ return true;
26
+ }
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ init() {
31
+ const editor = this.editor;
32
+ const editingView = editor.editing.view;
33
+ const t = editor.t;
34
+ editor.ui.componentFactory.add('toggleTableCaption', locale => {
35
+ const command = editor.commands.get('toggleTableCaption');
36
+ const view = new ButtonView(locale);
37
+ view.set({
38
+ icon: icons.caption,
39
+ tooltip: true,
40
+ isToggleable: true
41
+ });
42
+ view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');
43
+ view.bind('label').to(command, 'value', value => value ? t('Toggle caption off') : t('Toggle caption on'));
44
+ this.listenTo(view, 'execute', () => {
45
+ editor.execute('toggleTableCaption', { focusCaptionOnShow: true });
46
+ // Scroll to the selection and highlight the caption if the caption showed up.
47
+ if (command.value) {
48
+ const modelCaptionElement = getCaptionFromModelSelection(editor.model.document.selection);
49
+ const figcaptionElement = editor.editing.mapper.toViewElement(modelCaptionElement);
50
+ if (!figcaptionElement) {
51
+ return;
52
+ }
53
+ editingView.scrollToTheSelection();
54
+ editingView.change(writer => {
55
+ writer.addClass('table__caption_highlighted', figcaptionElement);
56
+ });
57
+ }
58
+ editor.editing.view.focus();
59
+ });
60
+ return view;
61
+ });
62
+ }
63
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module table/tablecaption/toggletablecaptioncommand
7
+ */
8
+ import { Command } from 'ckeditor5/src/core.js';
9
+ /**
10
+ * The toggle table caption command.
11
+ *
12
+ * This command is registered by {@link module:table/tablecaption/tablecaptionediting~TableCaptionEditing} as the
13
+ * `'toggleTableCaption'` editor command.
14
+ *
15
+ * Executing this command:
16
+ *
17
+ * * either adds or removes the table caption of a selected table (depending on whether the caption is present or not),
18
+ * * removes the table caption if the selection is anchored in one.
19
+ *
20
+ * ```ts
21
+ * // Toggle the presence of the caption.
22
+ * editor.execute( 'toggleTableCaption' );
23
+ * ```
24
+ *
25
+ * **Note**: You can move the selection to the caption right away as it shows up upon executing this command by using
26
+ * the `focusCaptionOnShow` option:
27
+ *
28
+ * ```ts
29
+ * editor.execute( 'toggleTableCaption', { focusCaptionOnShow: true } );
30
+ * ```
31
+ */
32
+ export default class ToggleTableCaptionCommand extends Command {
33
+ value: boolean;
34
+ /**
35
+ * @inheritDoc
36
+ */
37
+ refresh(): void;
38
+ /**
39
+ * Executes the command.
40
+ *
41
+ * ```ts
42
+ * editor.execute( 'toggleTableCaption' );
43
+ * ```
44
+ *
45
+ * @param options Options for the executed command.
46
+ * @param options.focusCaptionOnShow When true and the caption shows up, the selection will be moved into it straight away.
47
+ * @fires execute
48
+ */
49
+ execute({ focusCaptionOnShow }?: {
50
+ focusCaptionOnShow?: boolean;
51
+ }): void;
52
+ /**
53
+ * Shows the table caption. Also:
54
+ *
55
+ * * it attempts to restore the caption content from the `TableCaptionEditing` caption registry,
56
+ * * it moves the selection to the caption right away, it the `focusCaptionOnShow` option was set.
57
+ *
58
+ * @param focusCaptionOnShow Default focus behavior when showing the caption.
59
+ */
60
+ private _showTableCaption;
61
+ /**
62
+ * Hides the caption of a selected table (or an table caption the selection is anchored to).
63
+ *
64
+ * The content of the caption is stored in the `TableCaptionEditing` caption registry to make this
65
+ * a reversible action.
66
+ */
67
+ private _hideTableCaption;
68
+ }
@@ -0,0 +1,105 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
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 default 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;
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
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module table/tablecaption/utils
7
+ */
8
+ import type { DocumentFragment, DocumentSelection, Element, ViewElement } from 'ckeditor5/src/engine.js';
9
+ /**
10
+ * Checks if the provided model element is a `table`.
11
+ *
12
+ * @param modelElement Element to check if it is a table.
13
+ */
14
+ export declare function isTable(modelElement: Element | DocumentFragment | null): boolean;
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
+ */
20
+ export declare function getCaptionFromTableModelElement(tableModelElement: Element): Element | null;
21
+ /**
22
+ * Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.
23
+ *
24
+ * @param selection The selection checked for caption presence.
25
+ */
26
+ export declare function getCaptionFromModelSelection(selection: DocumentSelection): Element | null;
27
+ /**
28
+ * {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a caption.
29
+ *
30
+ * There are two possible forms of the valid caption:
31
+ * - A `<figcaption>` element inside a `<figure class="table">` element.
32
+ * - A `<caption>` inside a <table>.
33
+ *
34
+ * @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element cannot be matched.
35
+ */
36
+ export declare function matchTableCaptionViewElement(element: ViewElement): {
37
+ name: true;
38
+ } | null;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
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
+ */
11
+ export function isTable(modelElement) {
12
+ return !!modelElement && modelElement.is('element', 'table');
13
+ }
14
+ /**
15
+ * Returns the caption model element from a given table element. Returns `null` if no caption is found.
16
+ *
17
+ * @param tableModelElement Table element in which we will try to find a caption element.
18
+ */
19
+ export function getCaptionFromTableModelElement(tableModelElement) {
20
+ for (const node of tableModelElement.getChildren()) {
21
+ if (node.is('element', 'caption')) {
22
+ return node;
23
+ }
24
+ }
25
+ return null;
26
+ }
27
+ /**
28
+ * Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.
29
+ *
30
+ * @param selection The selection checked for caption presence.
31
+ */
32
+ export function getCaptionFromModelSelection(selection) {
33
+ const tableElement = getSelectionAffectedTable(selection);
34
+ if (!tableElement) {
35
+ return null;
36
+ }
37
+ return getCaptionFromTableModelElement(tableElement);
38
+ }
39
+ /**
40
+ * {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a caption.
41
+ *
42
+ * There are two possible forms of the valid caption:
43
+ * - A `<figcaption>` element inside a `<figure class="table">` element.
44
+ * - A `<caption>` inside a <table>.
45
+ *
46
+ * @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element cannot be matched.
47
+ */
48
+ export function matchTableCaptionViewElement(element) {
49
+ const parent = element.parent;
50
+ if (element.name == 'figcaption' && parent && parent.is('element', 'figure') && parent.hasClass('table')) {
51
+ return { name: true };
52
+ }
53
+ if (element.name == 'caption' && parent && parent.is('element', 'table')) {
54
+ return { name: true };
55
+ }
56
+ return null;
57
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
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 default class TableCaption extends Plugin {
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ static get pluginName(): "TableCaption";
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ static get isOfficialPlugin(): true;
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get requires(): readonly [typeof TableCaptionEditing, typeof TableCaptionUI];
28
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
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 default 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
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module table/tablecellproperties/commands/tablecellbackgroundcolorcommand
7
+ */
8
+ import type { Editor } from 'ckeditor5/src/core.js';
9
+ import TableCellPropertyCommand from './tablecellpropertycommand.js';
10
+ /**
11
+ * The table cell background color command.
12
+ *
13
+ * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
14
+ * the `'tableCellBackgroundColor'` editor command.
15
+ *
16
+ * To change the background color of selected cells, execute the command:
17
+ *
18
+ * ```ts
19
+ * editor.execute( 'tableCellBackgroundColor', {
20
+ * value: '#f00'
21
+ * } );
22
+ * ```
23
+ */
24
+ export default class TableCellBackgroundColorCommand extends TableCellPropertyCommand {
25
+ /**
26
+ * Creates a new `TableCellBackgroundColorCommand` instance.
27
+ *
28
+ * @param editor An editor in which this command will be used.
29
+ * @param defaultValue The default value of the attribute.
30
+ */
31
+ constructor(editor: Editor, defaultValue: string);
32
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
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 default 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
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module table/tablecellproperties/commands/tablecellbordercolorcommand
7
+ */
8
+ import type { Element } from 'ckeditor5/src/engine.js';
9
+ import type { Editor } from 'ckeditor5/src/core.js';
10
+ import TableCellPropertyCommand from './tablecellpropertycommand.js';
11
+ /**
12
+ * The table cell border color command.
13
+ *
14
+ * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
15
+ * the `'tableCellBorderColor'` editor command.
16
+ *
17
+ * To change the border color of selected cells, execute the command:
18
+ *
19
+ * ```ts
20
+ * editor.execute( 'tableCellBorderColor', {
21
+ * value: '#f00'
22
+ * } );
23
+ * ```
24
+ */
25
+ export default class TableCellBorderColorCommand extends TableCellPropertyCommand {
26
+ /**
27
+ * Creates a new `TableCellBorderColorCommand` instance.
28
+ *
29
+ * @param editor An editor in which this command will be used.
30
+ * @param defaultValue The default value of the attribute.
31
+ */
32
+ constructor(editor: Editor, defaultValue: string);
33
+ /**
34
+ * @inheritDoc
35
+ */
36
+ protected _getAttribute(tableCell: Element): unknown;
37
+ }