@ckeditor/ckeditor5-table 36.0.1 → 37.0.0-alpha.1

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 (170) hide show
  1. package/README.md +1 -1
  2. package/build/table.js +1 -1
  3. package/ckeditor5-metadata.json +6 -6
  4. package/package.json +34 -29
  5. package/src/augmentation.d.ts +76 -0
  6. package/src/augmentation.js +5 -0
  7. package/src/commands/insertcolumncommand.d.ts +55 -0
  8. package/src/commands/insertcolumncommand.js +45 -60
  9. package/src/commands/insertrowcommand.d.ts +54 -0
  10. package/src/commands/insertrowcommand.js +44 -59
  11. package/src/commands/inserttablecommand.d.ts +44 -0
  12. package/src/commands/inserttablecommand.js +50 -68
  13. package/src/commands/mergecellcommand.d.ts +68 -0
  14. package/src/commands/mergecellcommand.js +169 -244
  15. package/src/commands/mergecellscommand.d.ts +28 -0
  16. package/src/commands/mergecellscommand.js +72 -101
  17. package/src/commands/removecolumncommand.d.ts +29 -0
  18. package/src/commands/removecolumncommand.js +88 -102
  19. package/src/commands/removerowcommand.d.ts +29 -0
  20. package/src/commands/removerowcommand.js +63 -80
  21. package/src/commands/selectcolumncommand.d.ts +33 -0
  22. package/src/commands/selectcolumncommand.js +41 -54
  23. package/src/commands/selectrowcommand.d.ts +33 -0
  24. package/src/commands/selectrowcommand.js +38 -48
  25. package/src/commands/setheadercolumncommand.d.ts +50 -0
  26. package/src/commands/setheadercolumncommand.js +48 -73
  27. package/src/commands/setheaderrowcommand.d.ts +53 -0
  28. package/src/commands/setheaderrowcommand.js +56 -85
  29. package/src/commands/splitcellcommand.d.ts +43 -0
  30. package/src/commands/splitcellcommand.js +35 -49
  31. package/src/converters/downcast.d.ts +63 -0
  32. package/src/converters/downcast.js +98 -130
  33. package/src/converters/table-caption-post-fixer.d.ts +20 -0
  34. package/src/converters/table-caption-post-fixer.js +36 -52
  35. package/src/converters/table-cell-paragraph-post-fixer.d.ts +32 -0
  36. package/src/converters/table-cell-paragraph-post-fixer.js +88 -119
  37. package/src/converters/table-cell-refresh-handler.d.ts +18 -0
  38. package/src/converters/table-cell-refresh-handler.js +29 -48
  39. package/src/converters/table-headings-refresh-handler.d.ts +17 -0
  40. package/src/converters/table-headings-refresh-handler.js +35 -54
  41. package/src/converters/table-layout-post-fixer.d.ts +226 -0
  42. package/src/converters/table-layout-post-fixer.js +276 -313
  43. package/src/converters/tableproperties.d.ts +54 -0
  44. package/src/converters/tableproperties.js +136 -168
  45. package/src/converters/upcasttable.d.ts +49 -0
  46. package/src/converters/upcasttable.js +199 -251
  47. package/src/index.d.ts +60 -0
  48. package/src/index.js +1 -2
  49. package/src/plaintableoutput.d.ts +25 -0
  50. package/src/plaintableoutput.js +107 -135
  51. package/src/table.d.ts +33 -0
  52. package/src/table.js +12 -88
  53. package/src/tablecaption/tablecaptionediting.d.ts +63 -0
  54. package/src/tablecaption/tablecaptionediting.js +104 -135
  55. package/src/tablecaption/tablecaptionui.d.ts +21 -0
  56. package/src/tablecaption/tablecaptionui.js +42 -58
  57. package/src/tablecaption/toggletablecaptioncommand.d.ts +68 -0
  58. package/src/tablecaption/toggletablecaptioncommand.js +77 -92
  59. package/src/tablecaption/utils.d.ts +42 -0
  60. package/src/tablecaption/utils.js +35 -61
  61. package/src/tablecaption.d.ts +22 -0
  62. package/src/tablecaption.js +12 -19
  63. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +32 -0
  64. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +14 -20
  65. package/src/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +37 -0
  66. package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +27 -37
  67. package/src/tablecellproperties/commands/tablecellborderstylecommand.d.ts +37 -0
  68. package/src/tablecellproperties/commands/tablecellborderstylecommand.js +27 -37
  69. package/src/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +51 -0
  70. package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +42 -53
  71. package/src/tablecellproperties/commands/tablecellheightcommand.d.ts +46 -0
  72. package/src/tablecellproperties/commands/tablecellheightcommand.js +29 -36
  73. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +32 -0
  74. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +14 -20
  75. package/src/tablecellproperties/commands/tablecellpaddingcommand.d.ts +51 -0
  76. package/src/tablecellproperties/commands/tablecellpaddingcommand.js +42 -53
  77. package/src/tablecellproperties/commands/tablecellpropertycommand.d.ts +62 -0
  78. package/src/tablecellproperties/commands/tablecellpropertycommand.js +77 -122
  79. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +40 -0
  80. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +14 -20
  81. package/src/tablecellproperties/tablecellpropertiesediting.d.ts +41 -0
  82. package/src/tablecellproperties/tablecellpropertiesediting.js +193 -236
  83. package/src/tablecellproperties/tablecellpropertiesui.d.ts +111 -0
  84. package/src/tablecellproperties/tablecellpropertiesui.js +302 -456
  85. package/src/tablecellproperties/ui/tablecellpropertiesview.d.ts +227 -0
  86. package/src/tablecellproperties/ui/tablecellpropertiesview.js +509 -844
  87. package/src/tablecellproperties.d.ts +28 -0
  88. package/src/tablecellproperties.js +12 -98
  89. package/src/tablecellwidth/commands/tablecellwidthcommand.d.ts +46 -0
  90. package/src/tablecellwidth/commands/tablecellwidthcommand.js +29 -35
  91. package/src/tablecellwidth/tablecellwidthediting.d.ts +28 -0
  92. package/src/tablecellwidth/tablecellwidthediting.js +25 -38
  93. package/src/tableclipboard.d.ts +63 -0
  94. package/src/tableclipboard.js +429 -568
  95. package/src/tablecolumnresize/constants.d.ts +20 -0
  96. package/src/tablecolumnresize/constants.js +0 -10
  97. package/src/tablecolumnresize/converters.d.ts +18 -0
  98. package/src/tablecolumnresize/converters.js +35 -119
  99. package/src/tablecolumnresize/tablecolumnresizeediting.d.ts +137 -0
  100. package/src/tablecolumnresize/tablecolumnresizeediting.js +545 -711
  101. package/src/tablecolumnresize/tablewidthscommand.d.ts +38 -0
  102. package/src/tablecolumnresize/tablewidthscommand.js +61 -0
  103. package/src/tablecolumnresize/utils.d.ts +141 -0
  104. package/src/tablecolumnresize/utils.js +256 -233
  105. package/src/tablecolumnresize.d.ts +24 -0
  106. package/src/tablecolumnresize.js +12 -19
  107. package/src/tableconfig.d.ts +331 -0
  108. package/src/tableconfig.js +5 -0
  109. package/src/tableediting.d.ts +97 -0
  110. package/src/tableediting.js +157 -176
  111. package/src/tablekeyboard.d.ts +63 -0
  112. package/src/tablekeyboard.js +261 -344
  113. package/src/tablemouse/mouseeventsobserver.d.ts +62 -0
  114. package/src/tablemouse/mouseeventsobserver.js +13 -50
  115. package/src/tablemouse.d.ts +46 -0
  116. package/src/tablemouse.js +154 -202
  117. package/src/tableproperties/commands/tablealignmentcommand.d.ts +32 -0
  118. package/src/tableproperties/commands/tablealignmentcommand.js +14 -20
  119. package/src/tableproperties/commands/tablebackgroundcolorcommand.d.ts +32 -0
  120. package/src/tableproperties/commands/tablebackgroundcolorcommand.js +14 -20
  121. package/src/tableproperties/commands/tablebordercolorcommand.d.ts +37 -0
  122. package/src/tableproperties/commands/tablebordercolorcommand.js +27 -37
  123. package/src/tableproperties/commands/tableborderstylecommand.d.ts +37 -0
  124. package/src/tableproperties/commands/tableborderstylecommand.js +27 -37
  125. package/src/tableproperties/commands/tableborderwidthcommand.d.ts +51 -0
  126. package/src/tableproperties/commands/tableborderwidthcommand.js +42 -53
  127. package/src/tableproperties/commands/tableheightcommand.d.ts +46 -0
  128. package/src/tableproperties/commands/tableheightcommand.js +29 -33
  129. package/src/tableproperties/commands/tablepropertycommand.d.ts +61 -0
  130. package/src/tableproperties/commands/tablepropertycommand.js +68 -112
  131. package/src/tableproperties/commands/tablewidthcommand.d.ts +46 -0
  132. package/src/tableproperties/commands/tablewidthcommand.js +29 -33
  133. package/src/tableproperties/tablepropertiesediting.d.ts +39 -0
  134. package/src/tableproperties/tablepropertiesediting.js +163 -210
  135. package/src/tableproperties/tablepropertiesui.d.ts +113 -0
  136. package/src/tableproperties/tablepropertiesui.js +293 -439
  137. package/src/tableproperties/ui/tablepropertiesview.d.ts +203 -0
  138. package/src/tableproperties/ui/tablepropertiesview.js +427 -718
  139. package/src/tableproperties.d.ts +28 -0
  140. package/src/tableproperties.js +12 -95
  141. package/src/tableselection.d.ts +106 -0
  142. package/src/tableselection.js +279 -376
  143. package/src/tabletoolbar.d.ts +31 -0
  144. package/src/tabletoolbar.js +38 -92
  145. package/src/tableui.d.ts +53 -0
  146. package/src/tableui.js +281 -338
  147. package/src/tableutils.d.ts +448 -0
  148. package/src/tableutils.js +1015 -1229
  149. package/src/tablewalker.d.ts +323 -0
  150. package/src/tablewalker.js +308 -548
  151. package/src/ui/colorinputview.d.ts +143 -0
  152. package/src/ui/colorinputview.js +229 -366
  153. package/src/ui/formrowview.d.ts +61 -0
  154. package/src/ui/formrowview.js +38 -84
  155. package/src/ui/inserttableview.d.ts +77 -0
  156. package/src/ui/inserttableview.js +152 -242
  157. package/src/utils/common.d.ts +42 -0
  158. package/src/utils/common.js +33 -57
  159. package/src/utils/structure.d.ts +245 -0
  160. package/src/utils/structure.js +261 -379
  161. package/src/utils/table-properties.d.ts +67 -0
  162. package/src/utils/table-properties.js +60 -81
  163. package/src/utils/ui/contextualballoon.d.ts +34 -0
  164. package/src/utils/ui/contextualballoon.js +70 -89
  165. package/src/utils/ui/table-properties.d.ts +193 -0
  166. package/src/utils/ui/table-properties.js +259 -319
  167. package/src/utils/ui/widget.d.ts +16 -0
  168. package/src/utils/ui/widget.js +24 -46
  169. package/src/tablecolumnresize/tablecolumnwidthscommand.js +0 -55
  170. package/src/tablecolumnresize/tablewidthresizecommand.js +0 -65
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, 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';
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;
39
+ /**
40
+ * Depending on the position of the selection we either return the table under cursor or look for the table higher in the hierarchy.
41
+ */
42
+ export declare function getSelectionAffectedTable(selection: DocumentSelection): Element;
@@ -2,54 +2,39 @@
2
2
  * @license Copyright (c) 2003-2023, 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
-
6
- /**
7
- * @module table/tablecaption/utils
8
- */
9
-
10
5
  /**
11
6
  * Checks if the provided model element is a `table`.
12
7
  *
13
- * @param {module:engine/model/element~Element} modelElement Element to check if it is a table.
14
- * @returns {Boolean}
8
+ * @param modelElement Element to check if it is a table.
15
9
  */
16
- export function isTable( modelElement ) {
17
- return !!modelElement && modelElement.is( 'element', 'table' );
10
+ export function isTable(modelElement) {
11
+ return !!modelElement && modelElement.is('element', 'table');
18
12
  }
19
-
20
13
  /**
21
14
  * Returns the caption model element from a given table element. Returns `null` if no caption is found.
22
15
  *
23
- * @param {module:engine/model/element~Element} tableModelElement Table element in which we will try to find a caption element.
24
- * @returns {module:engine/model/element~Element|null}
16
+ * @param tableModelElement Table element in which we will try to find a caption element.
25
17
  */
26
- export function getCaptionFromTableModelElement( tableModelElement ) {
27
- for ( const node of tableModelElement.getChildren() ) {
28
- if ( node.is( 'element', 'caption' ) ) {
29
- return node;
30
- }
31
- }
32
-
33
- return null;
18
+ export function getCaptionFromTableModelElement(tableModelElement) {
19
+ for (const node of tableModelElement.getChildren()) {
20
+ if (node.is('element', 'caption')) {
21
+ return node;
22
+ }
23
+ }
24
+ return null;
34
25
  }
35
-
36
26
  /**
37
27
  * Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.
38
28
  *
39
- * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection
40
- * The selection checked for caption presence.
41
- * @returns {module:engine/model/element~Element|null}
29
+ * @param selection The selection checked for caption presence.
42
30
  */
43
- export function getCaptionFromModelSelection( selection ) {
44
- const tableElement = getSelectionAffectedTable( selection );
45
-
46
- if ( !tableElement ) {
47
- return null;
48
- }
49
-
50
- return getCaptionFromTableModelElement( tableElement );
31
+ export function getCaptionFromModelSelection(selection) {
32
+ const tableElement = getSelectionAffectedTable(selection);
33
+ if (!tableElement) {
34
+ return null;
35
+ }
36
+ return getCaptionFromTableModelElement(tableElement);
51
37
  }
52
-
53
38
  /**
54
39
  * {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a caption.
55
40
  *
@@ -57,37 +42,26 @@ export function getCaptionFromModelSelection( selection ) {
57
42
  * - A `<figcaption>` element inside a `<figure class="table">` element.
58
43
  * - A `<caption>` inside a <table>.
59
44
  *
60
- * @param {module:engine/view/element~Element} element
61
- * @returns {Object|null} Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element
62
- * cannot be matched.
45
+ * @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element cannot be matched.
63
46
  */
64
- export function matchTableCaptionViewElement( element ) {
65
- const parent = element.parent;
66
-
67
- if ( element.name == 'figcaption' && parent && parent.name == 'figure' && parent.hasClass( 'table' ) ) {
68
- return { name: true };
69
- }
70
-
71
- if ( element.name == 'caption' && parent && parent.name == 'table' ) {
72
- return { name: true };
73
- }
74
-
75
- return null;
47
+ export function matchTableCaptionViewElement(element) {
48
+ const parent = element.parent;
49
+ if (element.name == 'figcaption' && parent && parent.is('element', 'figure') && parent.hasClass('table')) {
50
+ return { name: true };
51
+ }
52
+ if (element.name == 'caption' && parent && parent.is('element', 'table')) {
53
+ return { name: true };
54
+ }
55
+ return null;
76
56
  }
77
-
78
57
  /**
79
58
  * Depending on the position of the selection we either return the table under cursor or look for the table higher in the hierarchy.
80
- *
81
- * @param {module:engine/model/position~Position} position
82
- * @returns {module:engine/model/element~Element}
83
59
  */
84
- export function getSelectionAffectedTable( selection ) {
85
- const selectedElement = selection.getSelectedElement();
86
-
87
- // Is the command triggered from the `tableToolbar`?
88
- if ( selectedElement && selectedElement.is( 'element', 'table' ) ) {
89
- return selectedElement;
90
- }
91
-
92
- return selection.getFirstPosition().findAncestor( 'table' );
60
+ export function getSelectionAffectedTable(selection) {
61
+ const selectedElement = selection.getSelectedElement();
62
+ // Is the command triggered from the `tableToolbar`?
63
+ if (selectedElement && selectedElement.is('element', 'table')) {
64
+ return selectedElement;
65
+ }
66
+ return selection.getFirstPosition().findAncestor('table');
93
67
  }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, 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, type PluginDependencies } from 'ckeditor5/src/core';
9
+ import '../theme/tablecaption.css';
10
+ /**
11
+ * The table caption plugin.
12
+ */
13
+ export default class TableCaption extends Plugin {
14
+ /**
15
+ * @inheritDoc
16
+ */
17
+ static get pluginName(): 'TableCaption';
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ static get requires(): PluginDependencies;
22
+ }
@@ -2,34 +2,27 @@
2
2
  * @license Copyright (c) 2003-2023, 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
-
6
5
  /**
7
6
  * @module table/tablecaption
8
7
  */
9
-
10
8
  import { Plugin } from 'ckeditor5/src/core';
11
9
  import TableCaptionEditing from './tablecaption/tablecaptionediting';
12
10
  import TableCaptionUI from './tablecaption/tablecaptionui';
13
-
14
11
  import '../theme/tablecaption.css';
15
-
16
12
  /**
17
13
  * The table caption plugin.
18
- *
19
- * @extends module:core/plugin~Plugin
20
14
  */
21
15
  export default class TableCaption extends Plugin {
22
- /**
23
- * @inheritDoc
24
- */
25
- static get pluginName() {
26
- return 'TableCaption';
27
- }
28
-
29
- /**
30
- * @inheritDoc
31
- */
32
- static get requires() {
33
- return [ TableCaptionEditing, TableCaptionUI ];
34
- }
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ static get pluginName() {
20
+ return 'TableCaption';
21
+ }
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ static get requires() {
26
+ return [TableCaptionEditing, TableCaptionUI];
27
+ }
35
28
  }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, 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';
9
+ import TableCellPropertyCommand from './tablecellpropertycommand';
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
+ }
@@ -2,13 +2,7 @@
2
2
  * @license Copyright (c) 2003-2023, 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
-
6
- /**
7
- * @module table/tablecellproperties/commands/tablecellbackgroundcolorcommand
8
- */
9
-
10
5
  import TableCellPropertyCommand from './tablecellpropertycommand';
11
-
12
6
  /**
13
7
  * The table cell background color command.
14
8
  *
@@ -17,20 +11,20 @@ import TableCellPropertyCommand from './tablecellpropertycommand';
17
11
  *
18
12
  * To change the background color of selected cells, execute the command:
19
13
  *
20
- * editor.execute( 'tableCellBackgroundColor', {
21
- * value: '#f00'
22
- * } );
23
- *
24
- * @extends module:table/tablecellproperties/commands/tablecellpropertycommand~TableCellPropertyCommand
14
+ * ```ts
15
+ * editor.execute( 'tableCellBackgroundColor', {
16
+ * value: '#f00'
17
+ * } );
18
+ * ```
25
19
  */
26
20
  export default class TableCellBackgroundColorCommand extends TableCellPropertyCommand {
27
- /**
28
- * Creates a new `TableCellBackgroundColorCommand` instance.
29
- *
30
- * @param {module:core/editor/editor~Editor} editor An editor in which this command will be used.
31
- * @param {String} defaultValue The default value of the attribute.
32
- */
33
- constructor( editor, defaultValue ) {
34
- super( editor, 'tableCellBackgroundColor', defaultValue );
35
- }
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
+ }
36
30
  }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, 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';
9
+ import type { Editor } from 'ckeditor5/src/core';
10
+ import TableCellPropertyCommand from './tablecellpropertycommand';
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
+ }
@@ -2,14 +2,8 @@
2
2
  * @license Copyright (c) 2003-2023, 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
-
6
- /**
7
- * @module table/tablecellproperties/commands/tablecellbordercolorcommand
8
- */
9
-
10
5
  import TableCellPropertyCommand from './tablecellpropertycommand';
11
6
  import { getSingleValue } from '../../utils/table-properties';
12
-
13
7
  /**
14
8
  * The table cell border color command.
15
9
  *
@@ -18,37 +12,33 @@ import { getSingleValue } from '../../utils/table-properties';
18
12
  *
19
13
  * To change the border color of selected cells, execute the command:
20
14
  *
21
- * editor.execute( 'tableCellBorderColor', {
22
- * value: '#f00'
23
- * } );
24
- *
25
- * @extends module:table/tablecellproperties/commands/tablecellpropertycommand~TableCellPropertyCommand
15
+ * ```ts
16
+ * editor.execute( 'tableCellBorderColor', {
17
+ * value: '#f00'
18
+ * } );
19
+ * ```
26
20
  */
27
21
  export default class TableCellBorderColorCommand extends TableCellPropertyCommand {
28
- /**
29
- * Creates a new `TableCellBorderColorCommand` instance.
30
- *
31
- * @param {module:core/editor/editor~Editor} editor An editor in which this command will be used.
32
- * @param {String} defaultValue The default value of the attribute.
33
- */
34
- constructor( editor, defaultValue ) {
35
- super( editor, 'tableCellBorderColor', defaultValue );
36
- }
37
-
38
- /**
39
- * @inheritDoc
40
- */
41
- _getAttribute( tableCell ) {
42
- if ( !tableCell ) {
43
- return;
44
- }
45
-
46
- const value = getSingleValue( tableCell.getAttribute( this.attributeName ) );
47
-
48
- if ( value === this._defaultValue ) {
49
- return;
50
- }
51
-
52
- return value;
53
- }
22
+ /**
23
+ * Creates a new `TableCellBorderColorCommand` instance.
24
+ *
25
+ * @param editor An editor in which this command will be used.
26
+ * @param defaultValue The default value of the attribute.
27
+ */
28
+ constructor(editor, defaultValue) {
29
+ super(editor, 'tableCellBorderColor', defaultValue);
30
+ }
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ _getAttribute(tableCell) {
35
+ if (!tableCell) {
36
+ return;
37
+ }
38
+ const value = getSingleValue(tableCell.getAttribute(this.attributeName));
39
+ if (value === this._defaultValue) {
40
+ return;
41
+ }
42
+ return value;
43
+ }
54
44
  }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, 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/tablecellborderstylecommand
7
+ */
8
+ import type { Editor } from 'ckeditor5/src/core';
9
+ import type { Element } from 'ckeditor5/src/engine';
10
+ import TableCellPropertyCommand from './tablecellpropertycommand';
11
+ /**
12
+ * The table cell border style command.
13
+ *
14
+ * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
15
+ * the `'tableCellBorderStyle'` editor command.
16
+ *
17
+ * To change the border style of selected cells, execute the command:
18
+ *
19
+ * ```ts
20
+ * editor.execute( 'tableCellBorderStyle', {
21
+ * value: 'dashed'
22
+ * } );
23
+ * ```
24
+ */
25
+ export default class TableCellBorderStyleCommand extends TableCellPropertyCommand {
26
+ /**
27
+ * Creates a new `TableCellBorderStyleCommand` 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
+ }
@@ -2,14 +2,8 @@
2
2
  * @license Copyright (c) 2003-2023, 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
-
6
- /**
7
- * @module table/tablecellproperties/commands/tablecellborderstylecommand
8
- */
9
-
10
5
  import TableCellPropertyCommand from './tablecellpropertycommand';
11
6
  import { getSingleValue } from '../../utils/table-properties';
12
-
13
7
  /**
14
8
  * The table cell border style command.
15
9
  *
@@ -18,37 +12,33 @@ import { getSingleValue } from '../../utils/table-properties';
18
12
  *
19
13
  * To change the border style of selected cells, execute the command:
20
14
  *
21
- * editor.execute( 'tableCellBorderStyle', {
22
- * value: 'dashed'
23
- * } );
24
- *
25
- * @extends module:table/tablecellproperties/commands/tablecellpropertycommand~TableCellPropertyCommand
15
+ * ```ts
16
+ * editor.execute( 'tableCellBorderStyle', {
17
+ * value: 'dashed'
18
+ * } );
19
+ * ```
26
20
  */
27
21
  export default class TableCellBorderStyleCommand extends TableCellPropertyCommand {
28
- /**
29
- * Creates a new `TableCellBorderStyleCommand` instance.
30
- *
31
- * @param {module:core/editor/editor~Editor} editor An editor in which this command will be used.
32
- * @param {String} defaultValue The default value of the attribute.
33
- */
34
- constructor( editor, defaultValue ) {
35
- super( editor, 'tableCellBorderStyle', defaultValue );
36
- }
37
-
38
- /**
39
- * @inheritDoc
40
- */
41
- _getAttribute( tableCell ) {
42
- if ( !tableCell ) {
43
- return;
44
- }
45
-
46
- const value = getSingleValue( tableCell.getAttribute( this.attributeName ) );
47
-
48
- if ( value === this._defaultValue ) {
49
- return;
50
- }
51
-
52
- return value;
53
- }
22
+ /**
23
+ * Creates a new `TableCellBorderStyleCommand` instance.
24
+ *
25
+ * @param editor An editor in which this command will be used.
26
+ * @param defaultValue The default value of the attribute.
27
+ */
28
+ constructor(editor, defaultValue) {
29
+ super(editor, 'tableCellBorderStyle', defaultValue);
30
+ }
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ _getAttribute(tableCell) {
35
+ if (!tableCell) {
36
+ return;
37
+ }
38
+ const value = getSingleValue(tableCell.getAttribute(this.attributeName));
39
+ if (value === this._defaultValue) {
40
+ return;
41
+ }
42
+ return value;
43
+ }
54
44
  }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, 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/tablecellborderwidthcommand
7
+ */
8
+ import type { Editor } from 'ckeditor5/src/core';
9
+ import type { Element } from 'ckeditor5/src/engine';
10
+ import TableCellPropertyCommand from './tablecellpropertycommand';
11
+ /**
12
+ * The table cell border width command.
13
+ *
14
+ * The command is registered by the {@link module:table/tablecellproperties/tablecellpropertiesediting~TableCellPropertiesEditing} as
15
+ * the `'tableCellBorderWidth'` editor command.
16
+ *
17
+ * To change the border width of selected cells, execute the command:
18
+ *
19
+ * ```ts
20
+ * editor.execute( 'tableCellBorderWidth', {
21
+ * value: '5px'
22
+ * } );
23
+ * ```
24
+ *
25
+ * **Note**: This command adds the default `'px'` unit to numeric values. Executing:
26
+ *
27
+ * ```ts
28
+ * editor.execute( 'tableCellBorderWidth', {
29
+ * value: '5'
30
+ * } );
31
+ * ```
32
+ *
33
+ * will set the `borderWidth` attribute to `'5px'` in the model.
34
+ */
35
+ export default class TableCellBorderWidthCommand extends TableCellPropertyCommand {
36
+ /**
37
+ * Creates a new `TableCellBorderWidthCommand` instance.
38
+ *
39
+ * @param editor An editor in which this command will be used.
40
+ * @param defaultValue The default value of the attribute.
41
+ */
42
+ constructor(editor: Editor, defaultValue: string);
43
+ /**
44
+ * @inheritDoc
45
+ */
46
+ protected _getAttribute(tableCell: Element): unknown;
47
+ /**
48
+ * @inheritDoc
49
+ */
50
+ protected _getValueToSet(value: string | number | undefined): unknown;
51
+ }