@ckeditor/ckeditor5-table 31.0.0 → 33.0.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 (146) hide show
  1. package/LICENSE.md +2 -2
  2. package/build/table.js +3 -3
  3. package/build/table.js.map +1 -0
  4. package/build/translations/cs.js +1 -1
  5. package/build/translations/el.js +1 -0
  6. package/build/translations/es.js +1 -1
  7. package/build/translations/id.js +1 -1
  8. package/build/translations/pt-br.js +1 -1
  9. package/build/translations/uz.js +1 -0
  10. package/build/translations/zh.js +1 -1
  11. package/lang/translations/ar.po +1 -1
  12. package/lang/translations/az.po +1 -1
  13. package/lang/translations/bg.po +1 -1
  14. package/lang/translations/cs.po +4 -4
  15. package/lang/translations/da.po +1 -1
  16. package/lang/translations/de-ch.po +1 -1
  17. package/lang/translations/de.po +1 -1
  18. package/lang/translations/el.po +261 -0
  19. package/lang/translations/en-au.po +1 -1
  20. package/lang/translations/en-gb.po +1 -1
  21. package/lang/translations/en.po +1 -1
  22. package/lang/translations/es.po +43 -43
  23. package/lang/translations/et.po +1 -1
  24. package/lang/translations/fa.po +1 -1
  25. package/lang/translations/fi.po +1 -1
  26. package/lang/translations/fr.po +1 -1
  27. package/lang/translations/gl.po +1 -1
  28. package/lang/translations/hi.po +1 -1
  29. package/lang/translations/hr.po +1 -1
  30. package/lang/translations/hu.po +1 -1
  31. package/lang/translations/id.po +11 -11
  32. package/lang/translations/it.po +1 -1
  33. package/lang/translations/ja.po +1 -1
  34. package/lang/translations/ko.po +1 -1
  35. package/lang/translations/ku.po +1 -1
  36. package/lang/translations/lt.po +1 -1
  37. package/lang/translations/lv.po +1 -1
  38. package/lang/translations/nb.po +1 -1
  39. package/lang/translations/ne.po +1 -1
  40. package/lang/translations/nl.po +1 -1
  41. package/lang/translations/no.po +1 -1
  42. package/lang/translations/pl.po +1 -1
  43. package/lang/translations/pt-br.po +4 -4
  44. package/lang/translations/ro.po +1 -1
  45. package/lang/translations/ru.po +1 -1
  46. package/lang/translations/sk.po +1 -1
  47. package/lang/translations/sq.po +1 -1
  48. package/lang/translations/sr-latn.po +1 -1
  49. package/lang/translations/sr.po +1 -1
  50. package/lang/translations/sv.po +1 -1
  51. package/lang/translations/th.po +1 -1
  52. package/lang/translations/tk.po +1 -1
  53. package/lang/translations/tr.po +1 -1
  54. package/lang/translations/ug.po +1 -1
  55. package/lang/translations/uk.po +1 -1
  56. package/lang/translations/uz.po +261 -0
  57. package/lang/translations/vi.po +1 -1
  58. package/lang/translations/zh-cn.po +1 -1
  59. package/lang/translations/zh.po +4 -4
  60. package/package.json +26 -24
  61. package/src/commands/insertcolumncommand.js +5 -5
  62. package/src/commands/insertrowcommand.js +5 -5
  63. package/src/commands/inserttablecommand.js +1 -1
  64. package/src/commands/mergecellcommand.js +5 -6
  65. package/src/commands/mergecellscommand.js +6 -5
  66. package/src/commands/removecolumncommand.js +9 -8
  67. package/src/commands/removerowcommand.js +6 -7
  68. package/src/commands/selectcolumncommand.js +5 -5
  69. package/src/commands/selectrowcommand.js +6 -6
  70. package/src/commands/setheadercolumncommand.js +6 -5
  71. package/src/commands/setheaderrowcommand.js +8 -5
  72. package/src/commands/splitcellcommand.js +5 -5
  73. package/src/converters/downcast.js +77 -408
  74. package/src/converters/table-caption-post-fixer.js +1 -1
  75. package/src/converters/table-cell-paragraph-post-fixer.js +1 -1
  76. package/src/converters/{table-cell-refresh-post-fixer.js → table-cell-refresh-handler.js} +9 -20
  77. package/src/converters/table-headings-refresh-handler.js +68 -0
  78. package/src/converters/table-layout-post-fixer.js +1 -1
  79. package/src/converters/tableproperties.js +6 -5
  80. package/src/converters/upcasttable.js +7 -3
  81. package/src/index.js +1 -1
  82. package/src/plaintableoutput.js +151 -0
  83. package/src/table.js +1 -1
  84. package/src/tablecaption/tablecaptionediting.js +1 -1
  85. package/src/tablecaption/tablecaptionui.js +3 -3
  86. package/src/tablecaption/toggletablecaptioncommand.js +3 -3
  87. package/src/tablecaption/utils.js +1 -1
  88. package/src/tablecaption.js +1 -1
  89. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +2 -2
  90. package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +2 -2
  91. package/src/tablecellproperties/commands/tablecellborderstylecommand.js +2 -2
  92. package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +2 -2
  93. package/src/tablecellproperties/commands/tablecellheightcommand.js +2 -2
  94. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +2 -2
  95. package/src/tablecellproperties/commands/tablecellpaddingcommand.js +2 -2
  96. package/src/tablecellproperties/commands/tablecellpropertycommand.js +6 -5
  97. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +2 -2
  98. package/src/tablecellproperties/commands/tablecellwidthcommand.js +2 -2
  99. package/src/tablecellproperties/tablecellpropertiesediting.js +42 -35
  100. package/src/tablecellproperties/tablecellpropertiesui.js +1 -1
  101. package/src/tablecellproperties/ui/tablecellpropertiesview.js +11 -1
  102. package/src/tablecellproperties.js +1 -1
  103. package/src/tableclipboard.js +19 -16
  104. package/src/tableediting.js +49 -28
  105. package/src/tablekeyboard.js +7 -6
  106. package/src/tablemouse/mouseeventsobserver.js +1 -1
  107. package/src/tablemouse.js +7 -5
  108. package/src/tableproperties/commands/tablealignmentcommand.js +2 -2
  109. package/src/tableproperties/commands/tablebackgroundcolorcommand.js +2 -2
  110. package/src/tableproperties/commands/tablebordercolorcommand.js +2 -2
  111. package/src/tableproperties/commands/tableborderstylecommand.js +2 -2
  112. package/src/tableproperties/commands/tableborderwidthcommand.js +2 -2
  113. package/src/tableproperties/commands/tableheightcommand.js +2 -2
  114. package/src/tableproperties/commands/tablepropertycommand.js +2 -2
  115. package/src/tableproperties/commands/tablewidthcommand.js +2 -2
  116. package/src/tableproperties/tablepropertiesediting.js +29 -21
  117. package/src/tableproperties/tablepropertiesui.js +1 -1
  118. package/src/tableproperties/ui/tablepropertiesview.js +11 -1
  119. package/src/tableproperties.js +1 -1
  120. package/src/tableselection.js +10 -9
  121. package/src/tabletoolbar.js +1 -1
  122. package/src/tableui.js +1 -1
  123. package/src/tableutils.js +311 -1
  124. package/src/tablewalker.js +1 -1
  125. package/src/ui/colorinputview.js +1 -1
  126. package/src/ui/formrowview.js +1 -1
  127. package/src/ui/inserttableview.js +1 -1
  128. package/src/utils/common.js +1 -1
  129. package/src/utils/structure.js +1 -1
  130. package/src/utils/table-properties.js +1 -1
  131. package/src/utils/ui/contextualballoon.js +1 -1
  132. package/src/utils/ui/table-properties.js +1 -1
  133. package/src/utils/ui/widget.js +1 -1
  134. package/theme/colorinput.css +1 -1
  135. package/theme/form.css +1 -1
  136. package/theme/formrow.css +1 -1
  137. package/theme/inserttable.css +1 -1
  138. package/theme/table.css +2 -2
  139. package/theme/tablecaption.css +1 -1
  140. package/theme/tablecellproperties.css +1 -1
  141. package/theme/tableediting.css +1 -1
  142. package/theme/tableform.css +1 -1
  143. package/theme/tableproperties.css +1 -1
  144. package/theme/tableselection.css +1 -1
  145. package/src/converters/table-heading-rows-refresh-post-fixer.js +0 -72
  146. package/src/utils/selection.js +0 -276
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2022, 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
+ /**
7
+ * @module table/converters/table-heading-rows-refresh-post-fixer
8
+ */
9
+
10
+ import TableWalker from '../tablewalker';
11
+
12
+ /**
13
+ * A table headings refresh handler which marks the table cells or rows in the differ to have it re-rendered
14
+ * if the headings attribute changed.
15
+ *
16
+ * Table heading rows and heading columns are represented in the model by a `headingRows` and `headingColumns` attributes.
17
+ *
18
+ * When table headings attribute changes, all the cells/rows are marked to re-render to change between `<td>` and `<th>`.
19
+ *
20
+ * @param {module:engine/model/model~Model} model
21
+ * @param {module:engine/controller/editingcontroller~EditingController} editing
22
+ */
23
+ export default function tableHeadingsRefreshHandler( model, editing ) {
24
+ const differ = model.document.differ;
25
+
26
+ for ( const change of differ.getChanges() ) {
27
+ let table;
28
+ let isRowChange = false;
29
+
30
+ if ( change.type == 'attribute' ) {
31
+ const element = change.range.start.nodeAfter;
32
+
33
+ if ( !element || !element.is( 'element', 'table' ) ) {
34
+ continue;
35
+ }
36
+
37
+ if ( change.attributeKey != 'headingRows' && change.attributeKey != 'headingColumns' ) {
38
+ continue;
39
+ }
40
+
41
+ table = element;
42
+ isRowChange = change.attributeKey == 'headingRows';
43
+ } else if ( change.name == 'tableRow' || change.name == 'tableCell' ) {
44
+ table = change.position.findAncestor( 'table' );
45
+ isRowChange = change.name == 'tableRow';
46
+ }
47
+
48
+ if ( !table ) {
49
+ continue;
50
+ }
51
+
52
+ const headingRows = table.getAttribute( 'headingRows' ) || 0;
53
+ const headingColumns = table.getAttribute( 'headingColumns' ) || 0;
54
+
55
+ const tableWalker = new TableWalker( table );
56
+
57
+ for ( const tableSlot of tableWalker ) {
58
+ const isHeading = tableSlot.row < headingRows || tableSlot.column < headingColumns;
59
+ const expectedElementName = isHeading ? 'th' : 'td';
60
+
61
+ const viewElement = editing.mapper.toViewElement( tableSlot.cell );
62
+
63
+ if ( viewElement && viewElement.is( 'element' ) && viewElement.name != expectedElementName ) {
64
+ editing.reconvertItem( isRowChange ? tableSlot.cell.parent : tableSlot.cell );
65
+ }
66
+ }
67
+ }
68
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -47,12 +47,13 @@ export function upcastStyleToAttribute( conversion, options ) {
47
47
  *
48
48
  * @param {module:engine/conversion/conversion~Conversion} conversion
49
49
  * @param {String} viewElementName
50
+ * @param {Object} modelAttributes
50
51
  * @param {Object} defaultBorder The default border values.
51
52
  * @param {String} defaultBorder.color The default `borderColor` value.
52
53
  * @param {String} defaultBorder.style The default `borderStyle` value.
53
54
  * @param {String} defaultBorder.width The default `borderWidth` value.
54
55
  */
55
- export function upcastBorderStyles( conversion, viewElementName, defaultBorder ) {
56
+ export function upcastBorderStyles( conversion, viewElementName, modelAttributes, defaultBorder ) {
56
57
  conversion.for( 'upcast' ).add( dispatcher => dispatcher.on( 'element:' + viewElementName, ( evt, data, conversionApi ) => {
57
58
  // If the element was not converted by element-to-element converter,
58
59
  // we should not try to convert the style. See #8393.
@@ -107,15 +108,15 @@ export function upcastBorderStyles( conversion, viewElementName, defaultBorder )
107
108
  };
108
109
 
109
110
  if ( reducedBorder.style !== defaultBorder.style ) {
110
- conversionApi.writer.setAttribute( 'borderStyle', reducedBorder.style, modelElement );
111
+ conversionApi.writer.setAttribute( modelAttributes.style, reducedBorder.style, modelElement );
111
112
  }
112
113
 
113
114
  if ( reducedBorder.color !== defaultBorder.color ) {
114
- conversionApi.writer.setAttribute( 'borderColor', reducedBorder.color, modelElement );
115
+ conversionApi.writer.setAttribute( modelAttributes.color, reducedBorder.color, modelElement );
115
116
  }
116
117
 
117
118
  if ( reducedBorder.width !== defaultBorder.width ) {
118
- conversionApi.writer.setAttribute( 'borderWidth', reducedBorder.width, modelElement );
119
+ conversionApi.writer.setAttribute( modelAttributes.width, reducedBorder.width, modelElement );
119
120
  }
120
121
  } ) );
121
122
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -37,6 +37,9 @@ export function upcastTableFigure() {
37
37
  return;
38
38
  }
39
39
 
40
+ // Consume the figure to prevent other converters from processing it again.
41
+ conversionApi.consumable.consume( data.viewItem, { name: true, classes: 'table' } );
42
+
40
43
  // Convert view table to model table.
41
44
  const conversionResult = conversionApi.convertItem( viewTable, data.modelCursor );
42
45
 
@@ -45,11 +48,12 @@ export function upcastTableFigure() {
45
48
 
46
49
  // When table wasn't successfully converted then finish conversion.
47
50
  if ( !modelTable ) {
51
+ // Revert consumed figure so other features can convert it.
52
+ conversionApi.consumable.revert( data.viewItem, { name: true, classes: 'table' } );
53
+
48
54
  return;
49
55
  }
50
56
 
51
- conversionApi.consumable.consume( data.viewItem, { name: true, classes: 'table' } );
52
-
53
57
  conversionApi.convertChildren( data.viewItem, conversionApi.writer.createPositionAt( modelTable, 'end' ) );
54
58
  conversionApi.updateConversionResult( modelTable, data );
55
59
  } );
package/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2022, 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
+ /**
7
+ * @module table/plaintableoutput
8
+ */
9
+
10
+ import { Plugin } from 'ckeditor5/src/core';
11
+ import Table from './table';
12
+
13
+ /**
14
+ * The plain table output feature.
15
+ *
16
+ * @extends module:core/plugin~Plugin
17
+ */
18
+ export default class PlainTableOutput extends Plugin {
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ static get pluginName() {
23
+ return 'PlainTableOutput';
24
+ }
25
+
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ static get requires() {
30
+ return [ Table ];
31
+ }
32
+
33
+ /**
34
+ * @inheritDoc
35
+ */
36
+ init() {
37
+ const editor = this.editor;
38
+
39
+ // Override default table data downcast converter.
40
+ editor.conversion.for( 'dataDowncast' ).elementToStructure( {
41
+ model: 'table',
42
+ view: downcastTableElement,
43
+ converterPriority: 'high'
44
+ } );
45
+
46
+ // Make sure table <caption> is downcasted into <caption> in the data pipeline when necessary.
47
+ if ( editor.plugins.has( 'TableCaption' ) ) {
48
+ editor.conversion.for( 'dataDowncast' ).elementToElement( {
49
+ model: 'caption',
50
+ view: ( modelElement, { writer } ) => {
51
+ if ( modelElement.parent.name === 'table' ) {
52
+ return writer.createContainerElement( 'caption' );
53
+ }
54
+ },
55
+ converterPriority: 'high'
56
+ } );
57
+ }
58
+
59
+ // Handle border-style, border-color, border-width and background-color table attributes.
60
+ if ( editor.plugins.has( 'TableProperties' ) ) {
61
+ downcastTableBorderAndBackgroundAttributes( editor );
62
+ }
63
+ }
64
+ }
65
+
66
+ // The plain table downcast converter callback.
67
+ //
68
+ // @private
69
+ // @param {module:engine/model/element~Element} Table model element.
70
+ // @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi The conversion API object.
71
+ // @returns {module:engine/view/containerelement~ContainerElement} Created element.
72
+ function downcastTableElement( table, { writer } ) {
73
+ const headingRows = table.getAttribute( 'headingRows' ) || 0;
74
+
75
+ // Table head rows slot.
76
+ const headRowsSlot = writer.createSlot( element =>
77
+ element.is( 'element', 'tableRow' ) && element.index < headingRows
78
+ );
79
+
80
+ // Table body rows slot.
81
+ const bodyRowsSlot = writer.createSlot( element =>
82
+ element.is( 'element', 'tableRow' ) && element.index >= headingRows
83
+ );
84
+
85
+ // Table children slot.
86
+ const childrenSlot = writer.createSlot( element => !element.is( 'element', 'tableRow' ) );
87
+
88
+ // Table <thead> element with all the heading rows.
89
+ const theadElement = writer.createContainerElement( 'thead', null, headRowsSlot );
90
+
91
+ // Table <tbody> element with all the body rows.
92
+ const tbodyElement = writer.createContainerElement( 'tbody', null, bodyRowsSlot );
93
+
94
+ // Table contents element containing <thead> and <tbody> when necessary.
95
+ const tableContentElements = [];
96
+
97
+ if ( headingRows ) {
98
+ tableContentElements.push( theadElement );
99
+ }
100
+
101
+ if ( headingRows < table.childCount ) {
102
+ tableContentElements.push( tbodyElement );
103
+ }
104
+
105
+ // Create table structure.
106
+ //
107
+ // <table>
108
+ // {children-slot-like-caption}
109
+ // <thead>
110
+ // {table-head-rows-slot}
111
+ // </thead>
112
+ // <tbody>
113
+ // {table-body-rows-slot}
114
+ // </tbody>
115
+ // </table>
116
+ return writer.createContainerElement( 'table', null, [ childrenSlot, ...tableContentElements ] );
117
+ }
118
+
119
+ // Register table border and background attributes converters.
120
+ //
121
+ // @private
122
+ // @param {module:core/editor/editor~Editor} editor
123
+ function downcastTableBorderAndBackgroundAttributes( editor ) {
124
+ const modelAttributes = {
125
+ 'border-width': 'tableBorderWidth',
126
+ 'border-color': 'tableBorderColor',
127
+ 'border-style': 'tableBorderStyle',
128
+ 'background-color': 'tableBackgroundColor'
129
+ };
130
+
131
+ for ( const [ styleName, modelAttribute ] of Object.entries( modelAttributes ) ) {
132
+ editor.conversion.for( 'dataDowncast' ).add( dispatcher => {
133
+ return dispatcher.on( `attribute:${ modelAttribute }:table`, ( evt, data, conversionApi ) => {
134
+ const { item, attributeNewValue } = data;
135
+ const { mapper, writer } = conversionApi;
136
+
137
+ if ( !conversionApi.consumable.consume( item, evt.name ) ) {
138
+ return;
139
+ }
140
+
141
+ const table = mapper.toViewElement( item );
142
+
143
+ if ( attributeNewValue ) {
144
+ writer.setStyle( styleName, attributeNewValue, table );
145
+ } else {
146
+ writer.removeStyle( styleName, table );
147
+ }
148
+ }, { priority: 'high' } );
149
+ } );
150
+ }
151
+ }
package/src/table.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
2
+ * @license Copyright (c) 2003-2022, 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
5
 
6
6
  /**
7
7
  * @module table/tablecaption/tablecaptionui
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
2
+ * @license Copyright (c) 2003-2022, 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
5
 
6
6
  /**
7
7
  * @module table/tablecaption/toggletablecaptioncommand
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -31,6 +31,6 @@ export default class TableCellBackgroundColorCommand extends TableCellPropertyCo
31
31
  * @param {String} defaultValue The default value of the attribute.
32
32
  */
33
33
  constructor( editor, defaultValue ) {
34
- super( editor, 'backgroundColor', defaultValue );
34
+ super( editor, 'tableCellBackgroundColor', defaultValue );
35
35
  }
36
36
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -32,7 +32,7 @@ export default class TableCellBorderColorCommand extends TableCellPropertyComman
32
32
  * @param {String} defaultValue The default value of the attribute.
33
33
  */
34
34
  constructor( editor, defaultValue ) {
35
- super( editor, 'borderColor', defaultValue );
35
+ super( editor, 'tableCellBorderColor', defaultValue );
36
36
  }
37
37
 
38
38
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -32,7 +32,7 @@ export default class TableCellBorderStyleCommand extends TableCellPropertyComman
32
32
  * @param {String} defaultValue The default value of the attribute.
33
33
  */
34
34
  constructor( editor, defaultValue ) {
35
- super( editor, 'borderStyle', defaultValue );
35
+ super( editor, 'tableCellBorderStyle', defaultValue );
36
36
  }
37
37
 
38
38
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -40,7 +40,7 @@ export default class TableCellBorderWidthCommand extends TableCellPropertyComman
40
40
  * @param {String} defaultValue The default value of the attribute.
41
41
  */
42
42
  constructor( editor, defaultValue ) {
43
- super( editor, 'borderWidth', defaultValue );
43
+ super( editor, 'tableCellBorderWidth', defaultValue );
44
44
  }
45
45
 
46
46
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -40,7 +40,7 @@ export default class TableCellHeightCommand extends TableCellPropertyCommand {
40
40
  * @param {String} defaultValue The default value of the attribute.
41
41
  */
42
42
  constructor( editor, defaultValue ) {
43
- super( editor, 'height', defaultValue );
43
+ super( editor, 'tableCellHeight', defaultValue );
44
44
  }
45
45
 
46
46
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -31,6 +31,6 @@ export default class TableCellHorizontalAlignmentCommand extends TableCellProper
31
31
  * @param {String} defaultValue The default value for the "alignment" attribute.
32
32
  */
33
33
  constructor( editor, defaultValue ) {
34
- super( editor, 'horizontalAlignment', defaultValue );
34
+ super( editor, 'tableCellHorizontalAlignment', defaultValue );
35
35
  }
36
36
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -40,7 +40,7 @@ export default class TableCellPaddingCommand extends TableCellPropertyCommand {
40
40
  * @param {String} defaultValue The default value of the attribute.
41
41
  */
42
42
  constructor( editor, defaultValue ) {
43
- super( editor, 'padding', defaultValue );
43
+ super( editor, 'tableCellPadding', defaultValue );
44
44
  }
45
45
 
46
46
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -8,7 +8,6 @@
8
8
  */
9
9
 
10
10
  import { Command } from 'ckeditor5/src/core';
11
- import { getSelectionAffectedTableCells } from '../../utils/selection';
12
11
 
13
12
  /**
14
13
  * The table cell attribute command.
@@ -51,7 +50,8 @@ export default class TableCellPropertyCommand extends Command {
51
50
  */
52
51
  refresh() {
53
52
  const editor = this.editor;
54
- const selectedTableCells = getSelectionAffectedTableCells( editor.model.document.selection );
53
+ const tableUtils = this.editor.plugins.get( 'TableUtils' );
54
+ const selectedTableCells = tableUtils.getSelectionAffectedTableCells( editor.model.document.selection );
55
55
 
56
56
  this.isEnabled = !!selectedTableCells.length;
57
57
  this.value = this._getSingleValue( selectedTableCells );
@@ -70,10 +70,11 @@ export default class TableCellPropertyCommand extends Command {
70
70
  execute( options = {} ) {
71
71
  const { value, batch } = options;
72
72
  const model = this.editor.model;
73
- const tableCells = getSelectionAffectedTableCells( model.document.selection );
73
+ const tableUtils = this.editor.plugins.get( 'TableUtils' );
74
+ const tableCells = tableUtils.getSelectionAffectedTableCells( model.document.selection );
74
75
  const valueToSet = this._getValueToSet( value );
75
76
 
76
- model.enqueueChange( batch || 'default', writer => {
77
+ model.enqueueChange( batch, writer => {
77
78
  if ( valueToSet ) {
78
79
  tableCells.forEach( tableCell => writer.setAttribute( this.attributeName, valueToSet, tableCell ) );
79
80
  } else {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -39,6 +39,6 @@ export default class TableCellVerticalAlignmentCommand extends TableCellProperty
39
39
  * @param {String} defaultValue The default value for the "alignment" attribute.
40
40
  */
41
41
  constructor( editor, defaultValue ) {
42
- super( editor, 'verticalAlignment', defaultValue );
42
+ super( editor, 'tableCellVerticalAlignment', defaultValue );
43
43
  }
44
44
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
 
@@ -40,7 +40,7 @@ export default class TableCellWidthCommand extends TableCellPropertyCommand {
40
40
  * @param {String} defaultValue The default value of the attribute.
41
41
  */
42
42
  constructor( editor, defaultValue ) {
43
- super( editor, 'width', defaultValue );
43
+ super( editor, 'tableCellWidth', defaultValue );
44
44
  }
45
45
 
46
46
  /**