@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,16 @@
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/utils/ui/widget
7
+ */
8
+ import type { ViewDocumentSelection, ViewElement } from 'ckeditor5/src/engine';
9
+ /**
10
+ * Returns a table widget editing view element if one is selected.
11
+ */
12
+ export declare function getSelectedTableWidget(selection: ViewDocumentSelection): ViewElement | null;
13
+ /**
14
+ * Returns a table widget editing view element if one is among the selection's ancestors.
15
+ */
16
+ export declare function getTableWidgetAncestor(selection: ViewDocumentSelection): ViewElement | null;
@@ -2,59 +2,37 @@
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/utils/ui/widget
8
- */
9
-
10
5
  import { isWidget } from 'ckeditor5/src/widget';
11
-
12
6
  /**
13
7
  * Returns a table widget editing view element if one is selected.
14
- *
15
- * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} selection
16
- * @returns {module:engine/view/element~Element|null}
17
8
  */
18
- export function getSelectedTableWidget( selection ) {
19
- const viewElement = selection.getSelectedElement();
20
-
21
- if ( viewElement && isTableWidget( viewElement ) ) {
22
- return viewElement;
23
- }
24
-
25
- return null;
9
+ export function getSelectedTableWidget(selection) {
10
+ const viewElement = selection.getSelectedElement();
11
+ if (viewElement && isTableWidget(viewElement)) {
12
+ return viewElement;
13
+ }
14
+ return null;
26
15
  }
27
-
28
16
  /**
29
17
  * Returns a table widget editing view element if one is among the selection's ancestors.
30
- *
31
- * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} selection
32
- * @returns {module:engine/view/element~Element|null}
33
18
  */
34
- export function getTableWidgetAncestor( selection ) {
35
- const selectionPosition = selection.getFirstPosition();
36
-
37
- if ( !selectionPosition ) {
38
- return null;
39
- }
40
-
41
- let parent = selectionPosition.parent;
42
-
43
- while ( parent ) {
44
- if ( parent.is( 'element' ) && isTableWidget( parent ) ) {
45
- return parent;
46
- }
47
-
48
- parent = parent.parent;
49
- }
50
-
51
- return null;
19
+ export function getTableWidgetAncestor(selection) {
20
+ const selectionPosition = selection.getFirstPosition();
21
+ if (!selectionPosition) {
22
+ return null;
23
+ }
24
+ let parent = selectionPosition.parent;
25
+ while (parent) {
26
+ if (parent.is('element') && isTableWidget(parent)) {
27
+ return parent;
28
+ }
29
+ parent = parent.parent;
30
+ }
31
+ return null;
52
32
  }
53
-
54
- // Checks if a given view element is a table widget.
55
- //
56
- // @param {module:engine/view/element~Element} viewElement
57
- // @returns {Boolean}
58
- function isTableWidget( viewElement ) {
59
- return !!viewElement.getCustomProperty( 'table' ) && isWidget( viewElement );
33
+ /**
34
+ * Checks if a given view element is a table widget.
35
+ */
36
+ function isTableWidget(viewElement) {
37
+ return !!viewElement.getCustomProperty('table') && isWidget(viewElement);
60
38
  }
@@ -1,55 +0,0 @@
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
- /**
7
- * @module table/tablecolumnresize/tablecolumnwidthscommand
8
- */
9
-
10
- import TablePropertyCommand from '../tableproperties/commands/tablepropertycommand';
11
-
12
- /**
13
- * @extends module:table/tableproperties/commands/tablepropertycommand~TablePropertyCommand
14
- */
15
- export default class TableColumnWidthsCommand extends TablePropertyCommand {
16
- /**
17
- * Creates a new `TableColumnWidthsCommand` instance.
18
- *
19
- * @param {module:core/editor/editor~Editor} editor An editor in which this command will be used.
20
- * @param {String} defaultValue The default value of the attribute.
21
- */
22
- constructor( editor, defaultValue ) {
23
- super( editor, 'columnWidths', defaultValue );
24
- }
25
-
26
- /**
27
- * @inheritDoc
28
- */
29
- refresh() {
30
- // The command is always enabled as it doesn't care about the actual selection - table can be resized
31
- // even if the selection is elsewhere.
32
- this.isEnabled = true;
33
- }
34
-
35
- /**
36
- * Changes the `columnWidths` attribute value for the given or currently selected table.
37
- *
38
- * @param {Object} options
39
- * @param {String} [options.columnWidths] New value of the `columnWidths` attribute.
40
- * @param {module:engine/model/element~Element} [options.table] The table that is having the columns resized.
41
- */
42
- execute( options = {} ) {
43
- const model = this.editor.model;
44
- const table = options.table || model.document.selection.getSelectedElement();
45
- const { columnWidths } = options;
46
-
47
- model.change( writer => {
48
- if ( columnWidths ) {
49
- writer.setAttribute( this.attributeName, columnWidths, table );
50
- } else {
51
- writer.removeAttribute( this.attributeName, table );
52
- }
53
- } );
54
- }
55
- }
@@ -1,65 +0,0 @@
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
- /**
7
- * @module table/tablecolumnresize/tablewidthresizecommand
8
- */
9
-
10
- import TablePropertyCommand from '../tableproperties/commands/tablepropertycommand';
11
-
12
- /**
13
- * @extends module:table/tableproperties/commands/tablepropertycommand~TablePropertyCommand
14
- */
15
- export default class TableWidthResizeCommand extends TablePropertyCommand {
16
- /**
17
- * Creates a new `TableWidthResizeCommand` instance.
18
- *
19
- * @param {module:core/editor/editor~Editor} editor An editor in which this command will be used.
20
- * @param {String} defaultValue The default value of the attribute.
21
- */
22
- constructor( editor, defaultValue ) {
23
- // We create a custom command instead of using the existing `TableWidthCommand`
24
- // as we also need to change the `columnWidths` property and running both commands
25
- // separately would make the integration with Track Changes feature more troublesome.
26
- super( editor, 'tableWidth', defaultValue );
27
- }
28
-
29
- /**
30
- * @inheritDoc
31
- */
32
- refresh() {
33
- // The command is always enabled as it doesn't care about the actual selection - table can be resized
34
- // even if the selection is elsewhere.
35
- this.isEnabled = true;
36
- }
37
-
38
- /**
39
- * Changes the `tableWidth` and `columnWidths` attribute values for the given or currently selected table.
40
- *
41
- * @param {Object} options
42
- * @param {String} [options.tableWidth] The new table width. If skipped, the model attribute will be removed.
43
- * @param {String} [options.columnWidths] The new table column widths. If skipped, the model attribute will be removed.
44
- * @param {module:engine/model/element~Element} [options.table] The table that is affected by the resize.
45
- */
46
- execute( options = {} ) {
47
- const model = this.editor.model;
48
- const table = options.table || model.document.selection.getSelectedElement();
49
- const { tableWidth, columnWidths } = options;
50
-
51
- model.change( writer => {
52
- if ( tableWidth ) {
53
- writer.setAttribute( this.attributeName, tableWidth, table );
54
- } else {
55
- writer.removeAttribute( this.attributeName, table );
56
- }
57
-
58
- if ( columnWidths ) {
59
- writer.setAttribute( 'columnWidths', columnWidths, table );
60
- } else {
61
- writer.removeAttribute( 'columnWidths', table );
62
- }
63
- } );
64
- }
65
- }