@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,40 @@
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/tablecellverticalalignmentcommand
7
+ */
8
+ import type { Editor } from 'ckeditor5/src/core.js';
9
+ import TableCellPropertyCommand from './tablecellpropertycommand.js';
10
+ /**
11
+ * The table cell vertical alignment command.
12
+ *
13
+ * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
14
+ * the `'tableCellVerticalAlignment'` editor command.
15
+ *
16
+ * To change the vertical text alignment of selected cells, execute the command:
17
+ *
18
+ * ```ts
19
+ * editor.execute( 'tableCellVerticalAlignment', {
20
+ * value: 'top'
21
+ * } );
22
+ * ```
23
+ *
24
+ * The following values, corresponding to the
25
+ * [`vertical-align` CSS attribute](https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align), are allowed:
26
+ *
27
+ * * `'top'`
28
+ * * `'bottom'`
29
+ *
30
+ * The `'middle'` value is the default one so there is no need to set it.
31
+ */
32
+ export default class TableCellVerticalAlignmentCommand extends TableCellPropertyCommand {
33
+ /**
34
+ * Creates a new `TableCellVerticalAlignmentCommand` instance.
35
+ *
36
+ * @param editor An editor in which this command will be used.
37
+ * @param defaultValue The default value for the "alignment" attribute.
38
+ */
39
+ constructor(editor: Editor, defaultValue: string);
40
+ }
@@ -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
+ import TableCellPropertyCommand from './tablecellpropertycommand.js';
6
+ /**
7
+ * The table cell vertical alignment command.
8
+ *
9
+ * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
10
+ * the `'tableCellVerticalAlignment'` editor command.
11
+ *
12
+ * To change the vertical text alignment of selected cells, execute the command:
13
+ *
14
+ * ```ts
15
+ * editor.execute( 'tableCellVerticalAlignment', {
16
+ * value: 'top'
17
+ * } );
18
+ * ```
19
+ *
20
+ * The following values, corresponding to the
21
+ * [`vertical-align` CSS attribute](https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align), are allowed:
22
+ *
23
+ * * `'top'`
24
+ * * `'bottom'`
25
+ *
26
+ * The `'middle'` value is the default one so there is no need to set it.
27
+ */
28
+ export default class TableCellVerticalAlignmentCommand extends TableCellPropertyCommand {
29
+ /**
30
+ * Creates a new `TableCellVerticalAlignmentCommand` instance.
31
+ *
32
+ * @param editor An editor in which this command will be used.
33
+ * @param defaultValue The default value for the "alignment" attribute.
34
+ */
35
+ constructor(editor, defaultValue) {
36
+ super(editor, 'tableCellVerticalAlignment', defaultValue);
37
+ }
38
+ }
@@ -0,0 +1,47 @@
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/tablecellpropertiesediting
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ import TableEditing from './../tableediting.js';
10
+ import TableCellWidthEditing from '../tablecellwidth/tablecellwidthediting.js';
11
+ /**
12
+ * The table cell properties editing feature.
13
+ *
14
+ * Introduces table cell model attributes and their conversion:
15
+ *
16
+ * - border: `tableCellBorderStyle`, `tableCellBorderColor` and `tableCellBorderWidth`
17
+ * - background color: `tableCellBackgroundColor`
18
+ * - cell padding: `tableCellPadding`
19
+ * - horizontal and vertical alignment: `tableCellHorizontalAlignment`, `tableCellVerticalAlignment`
20
+ * - cell width and height: `tableCellWidth`, `tableCellHeight`
21
+ *
22
+ * It also registers commands used to manipulate the above attributes:
23
+ *
24
+ * - border: the `'tableCellBorderStyle'`, `'tableCellBorderColor'` and `'tableCellBorderWidth'` commands
25
+ * - background color: the `'tableCellBackgroundColor'` command
26
+ * - cell padding: the `'tableCellPadding'` command
27
+ * - horizontal and vertical alignment: the `'tableCellHorizontalAlignment'` and `'tableCellVerticalAlignment'` commands
28
+ * - width and height: the `'tableCellWidth'` and `'tableCellHeight'` commands
29
+ */
30
+ export default class TableCellPropertiesEditing extends Plugin {
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ static get pluginName(): "TableCellPropertiesEditing";
35
+ /**
36
+ * @inheritDoc
37
+ */
38
+ static get isOfficialPlugin(): true;
39
+ /**
40
+ * @inheritDoc
41
+ */
42
+ static get requires(): readonly [typeof TableEditing, typeof TableCellWidthEditing];
43
+ /**
44
+ * @inheritDoc
45
+ */
46
+ init(): void;
47
+ }
@@ -0,0 +1,247 @@
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/tablecellpropertiesediting
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ import { addBorderRules, addPaddingRules, addBackgroundRules } from 'ckeditor5/src/engine.js';
10
+ import { downcastAttributeToStyle, upcastBorderStyles } from './../converters/tableproperties.js';
11
+ import TableEditing from './../tableediting.js';
12
+ import TableCellWidthEditing from '../tablecellwidth/tablecellwidthediting.js';
13
+ import TableCellPaddingCommand from './commands/tablecellpaddingcommand.js';
14
+ import TableCellHeightCommand from './commands/tablecellheightcommand.js';
15
+ import TableCellBackgroundColorCommand from './commands/tablecellbackgroundcolorcommand.js';
16
+ import TableCellVerticalAlignmentCommand from './commands/tablecellverticalalignmentcommand.js';
17
+ import TableCellHorizontalAlignmentCommand from './commands/tablecellhorizontalalignmentcommand.js';
18
+ import TableCellBorderStyleCommand from './commands/tablecellborderstylecommand.js';
19
+ import TableCellBorderColorCommand from './commands/tablecellbordercolorcommand.js';
20
+ import TableCellBorderWidthCommand from './commands/tablecellborderwidthcommand.js';
21
+ import { getNormalizedDefaultCellProperties } from '../utils/table-properties.js';
22
+ import { enableProperty } from '../utils/common.js';
23
+ const VALIGN_VALUES_REG_EXP = /^(top|middle|bottom)$/;
24
+ const ALIGN_VALUES_REG_EXP = /^(left|center|right|justify)$/;
25
+ /**
26
+ * The table cell properties editing feature.
27
+ *
28
+ * Introduces table cell model attributes and their conversion:
29
+ *
30
+ * - border: `tableCellBorderStyle`, `tableCellBorderColor` and `tableCellBorderWidth`
31
+ * - background color: `tableCellBackgroundColor`
32
+ * - cell padding: `tableCellPadding`
33
+ * - horizontal and vertical alignment: `tableCellHorizontalAlignment`, `tableCellVerticalAlignment`
34
+ * - cell width and height: `tableCellWidth`, `tableCellHeight`
35
+ *
36
+ * It also registers commands used to manipulate the above attributes:
37
+ *
38
+ * - border: the `'tableCellBorderStyle'`, `'tableCellBorderColor'` and `'tableCellBorderWidth'` commands
39
+ * - background color: the `'tableCellBackgroundColor'` command
40
+ * - cell padding: the `'tableCellPadding'` command
41
+ * - horizontal and vertical alignment: the `'tableCellHorizontalAlignment'` and `'tableCellVerticalAlignment'` commands
42
+ * - width and height: the `'tableCellWidth'` and `'tableCellHeight'` commands
43
+ */
44
+ export default class TableCellPropertiesEditing extends Plugin {
45
+ /**
46
+ * @inheritDoc
47
+ */
48
+ static get pluginName() {
49
+ return 'TableCellPropertiesEditing';
50
+ }
51
+ /**
52
+ * @inheritDoc
53
+ */
54
+ static get isOfficialPlugin() {
55
+ return true;
56
+ }
57
+ /**
58
+ * @inheritDoc
59
+ */
60
+ static get requires() {
61
+ return [TableEditing, TableCellWidthEditing];
62
+ }
63
+ /**
64
+ * @inheritDoc
65
+ */
66
+ init() {
67
+ const editor = this.editor;
68
+ const schema = editor.model.schema;
69
+ const conversion = editor.conversion;
70
+ editor.config.define('table.tableCellProperties.defaultProperties', {});
71
+ const defaultTableCellProperties = getNormalizedDefaultCellProperties(editor.config.get('table.tableCellProperties.defaultProperties'), {
72
+ includeVerticalAlignmentProperty: true,
73
+ includeHorizontalAlignmentProperty: true,
74
+ includePaddingProperty: true,
75
+ isRightToLeftContent: editor.locale.contentLanguageDirection === 'rtl'
76
+ });
77
+ editor.data.addStyleProcessorRules(addBorderRules);
78
+ enableBorderProperties(schema, conversion, {
79
+ color: defaultTableCellProperties.borderColor,
80
+ style: defaultTableCellProperties.borderStyle,
81
+ width: defaultTableCellProperties.borderWidth
82
+ });
83
+ editor.commands.add('tableCellBorderStyle', new TableCellBorderStyleCommand(editor, defaultTableCellProperties.borderStyle));
84
+ editor.commands.add('tableCellBorderColor', new TableCellBorderColorCommand(editor, defaultTableCellProperties.borderColor));
85
+ editor.commands.add('tableCellBorderWidth', new TableCellBorderWidthCommand(editor, defaultTableCellProperties.borderWidth));
86
+ enableProperty(schema, conversion, {
87
+ modelAttribute: 'tableCellHeight',
88
+ styleName: 'height',
89
+ defaultValue: defaultTableCellProperties.height
90
+ });
91
+ editor.commands.add('tableCellHeight', new TableCellHeightCommand(editor, defaultTableCellProperties.height));
92
+ editor.data.addStyleProcessorRules(addPaddingRules);
93
+ enableProperty(schema, conversion, {
94
+ modelAttribute: 'tableCellPadding',
95
+ styleName: 'padding',
96
+ reduceBoxSides: true,
97
+ defaultValue: defaultTableCellProperties.padding
98
+ });
99
+ editor.commands.add('tableCellPadding', new TableCellPaddingCommand(editor, defaultTableCellProperties.padding));
100
+ editor.data.addStyleProcessorRules(addBackgroundRules);
101
+ enableProperty(schema, conversion, {
102
+ modelAttribute: 'tableCellBackgroundColor',
103
+ styleName: 'background-color',
104
+ defaultValue: defaultTableCellProperties.backgroundColor
105
+ });
106
+ editor.commands.add('tableCellBackgroundColor', new TableCellBackgroundColorCommand(editor, defaultTableCellProperties.backgroundColor));
107
+ enableHorizontalAlignmentProperty(schema, conversion, defaultTableCellProperties.horizontalAlignment);
108
+ editor.commands.add('tableCellHorizontalAlignment', new TableCellHorizontalAlignmentCommand(editor, defaultTableCellProperties.horizontalAlignment));
109
+ enableVerticalAlignmentProperty(schema, conversion, defaultTableCellProperties.verticalAlignment);
110
+ editor.commands.add('tableCellVerticalAlignment', new TableCellVerticalAlignmentCommand(editor, defaultTableCellProperties.verticalAlignment));
111
+ }
112
+ }
113
+ /**
114
+ * Enables the `'tableCellBorderStyle'`, `'tableCellBorderColor'` and `'tableCellBorderWidth'` attributes for table cells.
115
+ *
116
+ * @param defaultBorder The default border values.
117
+ * @param defaultBorder.color The default `tableCellBorderColor` value.
118
+ * @param defaultBorder.style The default `tableCellBorderStyle` value.
119
+ * @param defaultBorder.width The default `tableCellBorderWidth` value.
120
+ */
121
+ function enableBorderProperties(schema, conversion, defaultBorder) {
122
+ const modelAttributes = {
123
+ width: 'tableCellBorderWidth',
124
+ color: 'tableCellBorderColor',
125
+ style: 'tableCellBorderStyle'
126
+ };
127
+ schema.extend('tableCell', {
128
+ allowAttributes: Object.values(modelAttributes)
129
+ });
130
+ upcastBorderStyles(conversion, 'td', modelAttributes, defaultBorder);
131
+ upcastBorderStyles(conversion, 'th', modelAttributes, defaultBorder);
132
+ downcastAttributeToStyle(conversion, { modelElement: 'tableCell', modelAttribute: modelAttributes.style, styleName: 'border-style' });
133
+ downcastAttributeToStyle(conversion, { modelElement: 'tableCell', modelAttribute: modelAttributes.color, styleName: 'border-color' });
134
+ downcastAttributeToStyle(conversion, { modelElement: 'tableCell', modelAttribute: modelAttributes.width, styleName: 'border-width' });
135
+ }
136
+ /**
137
+ * Enables the `'tableCellHorizontalAlignment'` attribute for table cells.
138
+ *
139
+ * @param defaultValue The default horizontal alignment value.
140
+ */
141
+ function enableHorizontalAlignmentProperty(schema, conversion, defaultValue) {
142
+ schema.extend('tableCell', {
143
+ allowAttributes: ['tableCellHorizontalAlignment']
144
+ });
145
+ conversion.for('downcast')
146
+ .attributeToAttribute({
147
+ model: {
148
+ name: 'tableCell',
149
+ key: 'tableCellHorizontalAlignment'
150
+ },
151
+ view: alignment => ({
152
+ key: 'style',
153
+ value: {
154
+ 'text-align': alignment
155
+ }
156
+ })
157
+ });
158
+ conversion.for('upcast')
159
+ // Support for the `text-align:*;` CSS definition for the table cell alignment.
160
+ .attributeToAttribute({
161
+ view: {
162
+ name: /^(td|th)$/,
163
+ styles: {
164
+ 'text-align': ALIGN_VALUES_REG_EXP
165
+ }
166
+ },
167
+ model: {
168
+ key: 'tableCellHorizontalAlignment',
169
+ value: (viewElement) => {
170
+ const align = viewElement.getStyle('text-align');
171
+ return align === defaultValue ? null : align;
172
+ }
173
+ }
174
+ })
175
+ // Support for the `align` attribute as the backward compatibility while pasting from other sources.
176
+ .attributeToAttribute({
177
+ view: {
178
+ name: /^(td|th)$/,
179
+ attributes: {
180
+ align: ALIGN_VALUES_REG_EXP
181
+ }
182
+ },
183
+ model: {
184
+ key: 'tableCellHorizontalAlignment',
185
+ value: (viewElement) => {
186
+ const align = viewElement.getAttribute('align');
187
+ return align === defaultValue ? null : align;
188
+ }
189
+ }
190
+ });
191
+ }
192
+ /**
193
+ * Enables the `'verticalAlignment'` attribute for table cells.
194
+ *
195
+ * @param defaultValue The default vertical alignment value.
196
+ */
197
+ function enableVerticalAlignmentProperty(schema, conversion, defaultValue) {
198
+ schema.extend('tableCell', {
199
+ allowAttributes: ['tableCellVerticalAlignment']
200
+ });
201
+ conversion.for('downcast')
202
+ .attributeToAttribute({
203
+ model: {
204
+ name: 'tableCell',
205
+ key: 'tableCellVerticalAlignment'
206
+ },
207
+ view: alignment => ({
208
+ key: 'style',
209
+ value: {
210
+ 'vertical-align': alignment
211
+ }
212
+ })
213
+ });
214
+ conversion.for('upcast')
215
+ // Support for the `vertical-align:*;` CSS definition for the table cell alignment.
216
+ .attributeToAttribute({
217
+ view: {
218
+ name: /^(td|th)$/,
219
+ styles: {
220
+ 'vertical-align': VALIGN_VALUES_REG_EXP
221
+ }
222
+ },
223
+ model: {
224
+ key: 'tableCellVerticalAlignment',
225
+ value: (viewElement) => {
226
+ const align = viewElement.getStyle('vertical-align');
227
+ return align === defaultValue ? null : align;
228
+ }
229
+ }
230
+ })
231
+ // Support for the `align` attribute as the backward compatibility while pasting from other sources.
232
+ .attributeToAttribute({
233
+ view: {
234
+ name: /^(td|th)$/,
235
+ attributes: {
236
+ valign: VALIGN_VALUES_REG_EXP
237
+ }
238
+ },
239
+ model: {
240
+ key: 'tableCellVerticalAlignment',
241
+ value: (viewElement) => {
242
+ const valign = viewElement.getAttribute('valign');
243
+ return valign === defaultValue ? null : valign;
244
+ }
245
+ }
246
+ });
247
+ }
@@ -0,0 +1,116 @@
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/tablecellpropertiesui
7
+ */
8
+ import { Plugin, type Editor } from 'ckeditor5/src/core.js';
9
+ import { ContextualBalloon } from 'ckeditor5/src/ui.js';
10
+ import TableCellPropertiesView from './ui/tablecellpropertiesview.js';
11
+ /**
12
+ * The table cell properties UI plugin. It introduces the `'tableCellProperties'` button
13
+ * that opens a form allowing to specify the visual styling of a table cell.
14
+ *
15
+ * It uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon plugin}.
16
+ */
17
+ export default class TableCellPropertiesUI extends Plugin {
18
+ /**
19
+ * The default table cell properties.
20
+ */
21
+ private _defaultTableCellProperties;
22
+ /**
23
+ * The contextual balloon plugin instance.
24
+ */
25
+ private _balloon?;
26
+ /**
27
+ * The cell properties form view displayed inside the balloon.
28
+ */
29
+ view?: TableCellPropertiesView | null;
30
+ /**
31
+ * The batch used to undo all changes made by the form (which are live, as the user types)
32
+ * when "Cancel" was pressed. Each time the view is shown, a new batch is created.
33
+ */
34
+ private _undoStepBatch?;
35
+ /**
36
+ * Flag used to indicate whether view is ready to execute update commands
37
+ * (it finished loading initial data).
38
+ */
39
+ private _isReady?;
40
+ /**
41
+ * @inheritDoc
42
+ */
43
+ static get requires(): readonly [typeof ContextualBalloon];
44
+ /**
45
+ * @inheritDoc
46
+ */
47
+ static get pluginName(): "TableCellPropertiesUI";
48
+ /**
49
+ * @inheritDoc
50
+ */
51
+ static get isOfficialPlugin(): true;
52
+ /**
53
+ * @inheritDoc
54
+ */
55
+ constructor(editor: Editor);
56
+ /**
57
+ * @inheritDoc
58
+ */
59
+ init(): void;
60
+ /**
61
+ * @inheritDoc
62
+ */
63
+ destroy(): void;
64
+ /**
65
+ * Creates the {@link module:table/tablecellproperties/ui/tablecellpropertiesview~TableCellPropertiesView} instance.
66
+ *
67
+ * @returns The cell properties form view instance.
68
+ */
69
+ private _createPropertiesView;
70
+ /**
71
+ * In this method the "editor data -> UI" binding is happening.
72
+ *
73
+ * When executed, this method obtains selected cell property values from various table commands
74
+ * and passes them to the {@link #view}.
75
+ *
76
+ * This way, the UI stays up–to–date with the editor data.
77
+ */
78
+ private _fillViewFormFromCommandValues;
79
+ /**
80
+ * Shows the {@link #view} in the {@link #_balloon}.
81
+ *
82
+ * **Note**: Each time a view is shown, a new {@link #_undoStepBatch} is created. It contains
83
+ * all changes made to the document when the view is visible, allowing a single undo step
84
+ * for all of them.
85
+ */
86
+ protected _showView(): void;
87
+ /**
88
+ * Removes the {@link #view} from the {@link #_balloon}.
89
+ */
90
+ protected _hideView(): void;
91
+ /**
92
+ * Repositions the {@link #_balloon} or hides the {@link #view} if a table cell is no longer selected.
93
+ */
94
+ protected _updateView(): void;
95
+ /**
96
+ * Returns `true` when the {@link #view} is visible in the {@link #_balloon}.
97
+ */
98
+ private get _isViewVisible();
99
+ /**
100
+ * Returns `true` when the {@link #view} is in the {@link #_balloon}.
101
+ */
102
+ private get _isViewInBalloon();
103
+ /**
104
+ * Creates a callback that when executed upon the {@link #view view's} property change
105
+ * executes a related editor command with the new property value.
106
+ *
107
+ * @param defaultValue The default value of the command.
108
+ */
109
+ private _getPropertyChangeCallback;
110
+ /**
111
+ * Creates a callback that when executed upon the {@link #view view's} property change:
112
+ * * Executes a related editor command with the new property value if the value is valid,
113
+ * * Or sets the error text next to the invalid field, if the value did not pass the validation.
114
+ */
115
+ private _getValidatedPropertyChangeCallback;
116
+ }