@ckeditor/ckeditor5-table 36.0.0 → 37.0.0-alpha.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 (166) hide show
  1. package/build/table.js +1 -1
  2. package/package.json +34 -29
  3. package/src/commands/insertcolumncommand.d.ts +61 -0
  4. package/src/commands/insertcolumncommand.js +45 -60
  5. package/src/commands/insertrowcommand.d.ts +60 -0
  6. package/src/commands/insertrowcommand.js +44 -59
  7. package/src/commands/inserttablecommand.d.ts +50 -0
  8. package/src/commands/inserttablecommand.js +51 -68
  9. package/src/commands/mergecellcommand.d.ts +76 -0
  10. package/src/commands/mergecellcommand.js +169 -244
  11. package/src/commands/mergecellscommand.d.ts +33 -0
  12. package/src/commands/mergecellscommand.js +72 -101
  13. package/src/commands/removecolumncommand.d.ts +34 -0
  14. package/src/commands/removecolumncommand.js +88 -102
  15. package/src/commands/removerowcommand.d.ts +34 -0
  16. package/src/commands/removerowcommand.js +63 -80
  17. package/src/commands/selectcolumncommand.d.ts +38 -0
  18. package/src/commands/selectcolumncommand.js +41 -54
  19. package/src/commands/selectrowcommand.d.ts +38 -0
  20. package/src/commands/selectrowcommand.js +38 -48
  21. package/src/commands/setheadercolumncommand.d.ts +55 -0
  22. package/src/commands/setheadercolumncommand.js +48 -73
  23. package/src/commands/setheaderrowcommand.d.ts +58 -0
  24. package/src/commands/setheaderrowcommand.js +56 -85
  25. package/src/commands/splitcellcommand.d.ts +49 -0
  26. package/src/commands/splitcellcommand.js +35 -49
  27. package/src/converters/downcast.d.ts +63 -0
  28. package/src/converters/downcast.js +98 -130
  29. package/src/converters/table-caption-post-fixer.d.ts +20 -0
  30. package/src/converters/table-caption-post-fixer.js +36 -52
  31. package/src/converters/table-cell-paragraph-post-fixer.d.ts +32 -0
  32. package/src/converters/table-cell-paragraph-post-fixer.js +88 -119
  33. package/src/converters/table-cell-refresh-handler.d.ts +18 -0
  34. package/src/converters/table-cell-refresh-handler.js +29 -48
  35. package/src/converters/table-headings-refresh-handler.d.ts +17 -0
  36. package/src/converters/table-headings-refresh-handler.js +35 -54
  37. package/src/converters/table-layout-post-fixer.d.ts +226 -0
  38. package/src/converters/table-layout-post-fixer.js +276 -313
  39. package/src/converters/tableproperties.d.ts +54 -0
  40. package/src/converters/tableproperties.js +136 -168
  41. package/src/converters/upcasttable.d.ts +49 -0
  42. package/src/converters/upcasttable.js +196 -251
  43. package/src/index.d.ts +29 -0
  44. package/src/index.js +0 -2
  45. package/src/plaintableoutput.d.ts +30 -0
  46. package/src/plaintableoutput.js +107 -135
  47. package/src/table.d.ts +38 -0
  48. package/src/table.js +12 -88
  49. package/src/tablecaption/tablecaptionediting.d.ts +68 -0
  50. package/src/tablecaption/tablecaptionediting.js +104 -135
  51. package/src/tablecaption/tablecaptionui.d.ts +26 -0
  52. package/src/tablecaption/tablecaptionui.js +42 -58
  53. package/src/tablecaption/toggletablecaptioncommand.d.ts +73 -0
  54. package/src/tablecaption/toggletablecaptioncommand.js +77 -92
  55. package/src/tablecaption/utils.d.ts +42 -0
  56. package/src/tablecaption/utils.js +35 -61
  57. package/src/tablecaption.d.ts +27 -0
  58. package/src/tablecaption.js +12 -19
  59. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +37 -0
  60. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +14 -20
  61. package/src/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +42 -0
  62. package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +27 -37
  63. package/src/tablecellproperties/commands/tablecellborderstylecommand.d.ts +42 -0
  64. package/src/tablecellproperties/commands/tablecellborderstylecommand.js +27 -37
  65. package/src/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +56 -0
  66. package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +42 -53
  67. package/src/tablecellproperties/commands/tablecellheightcommand.d.ts +51 -0
  68. package/src/tablecellproperties/commands/tablecellheightcommand.js +29 -36
  69. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +37 -0
  70. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +14 -20
  71. package/src/tablecellproperties/commands/tablecellpaddingcommand.d.ts +56 -0
  72. package/src/tablecellproperties/commands/tablecellpaddingcommand.js +42 -53
  73. package/src/tablecellproperties/commands/tablecellpropertycommand.d.ts +62 -0
  74. package/src/tablecellproperties/commands/tablecellpropertycommand.js +77 -122
  75. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +45 -0
  76. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +14 -20
  77. package/src/tablecellproperties/tablecellpropertiesediting.d.ts +47 -0
  78. package/src/tablecellproperties/tablecellpropertiesediting.js +194 -236
  79. package/src/tablecellproperties/tablecellpropertiesui.d.ts +117 -0
  80. package/src/tablecellproperties/tablecellpropertiesui.js +303 -456
  81. package/src/tablecellproperties/ui/tablecellpropertiesview.d.ts +227 -0
  82. package/src/tablecellproperties/ui/tablecellpropertiesview.js +509 -844
  83. package/src/tablecellproperties.d.ts +33 -0
  84. package/src/tablecellproperties.js +12 -98
  85. package/src/tablecellwidth/commands/tablecellwidthcommand.d.ts +51 -0
  86. package/src/tablecellwidth/commands/tablecellwidthcommand.js +29 -35
  87. package/src/tablecellwidth/tablecellwidthediting.d.ts +34 -0
  88. package/src/tablecellwidth/tablecellwidthediting.js +26 -38
  89. package/src/tableclipboard.d.ts +68 -0
  90. package/src/tableclipboard.js +429 -568
  91. package/src/tablecolumnresize/constants.d.ts +20 -0
  92. package/src/tablecolumnresize/constants.js +0 -10
  93. package/src/tablecolumnresize/converters.d.ts +18 -0
  94. package/src/tablecolumnresize/converters.js +35 -119
  95. package/src/tablecolumnresize/tablecolumnresizeediting.d.ts +142 -0
  96. package/src/tablecolumnresize/tablecolumnresizeediting.js +545 -711
  97. package/src/tablecolumnresize/tablewidthscommand.d.ts +38 -0
  98. package/src/tablecolumnresize/tablewidthscommand.js +61 -0
  99. package/src/tablecolumnresize/utils.d.ts +141 -0
  100. package/src/tablecolumnresize/utils.js +256 -233
  101. package/src/tablecolumnresize.d.ts +29 -0
  102. package/src/tablecolumnresize.js +12 -19
  103. package/src/tableconfig.d.ts +341 -0
  104. package/src/tableconfig.js +5 -0
  105. package/src/tableediting.d.ts +102 -0
  106. package/src/tableediting.js +157 -176
  107. package/src/tablekeyboard.d.ts +68 -0
  108. package/src/tablekeyboard.js +261 -344
  109. package/src/tablemouse/mouseeventsobserver.d.ts +62 -0
  110. package/src/tablemouse/mouseeventsobserver.js +12 -49
  111. package/src/tablemouse.d.ts +51 -0
  112. package/src/tablemouse.js +154 -202
  113. package/src/tableproperties/commands/tablealignmentcommand.d.ts +37 -0
  114. package/src/tableproperties/commands/tablealignmentcommand.js +14 -20
  115. package/src/tableproperties/commands/tablebackgroundcolorcommand.d.ts +37 -0
  116. package/src/tableproperties/commands/tablebackgroundcolorcommand.js +14 -20
  117. package/src/tableproperties/commands/tablebordercolorcommand.d.ts +42 -0
  118. package/src/tableproperties/commands/tablebordercolorcommand.js +27 -37
  119. package/src/tableproperties/commands/tableborderstylecommand.d.ts +42 -0
  120. package/src/tableproperties/commands/tableborderstylecommand.js +27 -37
  121. package/src/tableproperties/commands/tableborderwidthcommand.d.ts +56 -0
  122. package/src/tableproperties/commands/tableborderwidthcommand.js +42 -53
  123. package/src/tableproperties/commands/tableheightcommand.d.ts +51 -0
  124. package/src/tableproperties/commands/tableheightcommand.js +29 -33
  125. package/src/tableproperties/commands/tablepropertycommand.d.ts +61 -0
  126. package/src/tableproperties/commands/tablepropertycommand.js +68 -112
  127. package/src/tableproperties/commands/tablewidthcommand.d.ts +51 -0
  128. package/src/tableproperties/commands/tablewidthcommand.js +29 -33
  129. package/src/tableproperties/tablepropertiesediting.d.ts +45 -0
  130. package/src/tableproperties/tablepropertiesediting.js +164 -210
  131. package/src/tableproperties/tablepropertiesui.d.ts +119 -0
  132. package/src/tableproperties/tablepropertiesui.js +294 -439
  133. package/src/tableproperties/ui/tablepropertiesview.d.ts +203 -0
  134. package/src/tableproperties/ui/tablepropertiesview.js +427 -718
  135. package/src/tableproperties.d.ts +33 -0
  136. package/src/tableproperties.js +12 -95
  137. package/src/tableselection.d.ts +111 -0
  138. package/src/tableselection.js +279 -376
  139. package/src/tabletoolbar.d.ts +37 -0
  140. package/src/tabletoolbar.js +39 -92
  141. package/src/tableui.d.ts +58 -0
  142. package/src/tableui.js +281 -338
  143. package/src/tableutils.d.ts +453 -0
  144. package/src/tableutils.js +1015 -1229
  145. package/src/tablewalker.d.ts +323 -0
  146. package/src/tablewalker.js +308 -548
  147. package/src/ui/colorinputview.d.ts +143 -0
  148. package/src/ui/colorinputview.js +229 -366
  149. package/src/ui/formrowview.d.ts +61 -0
  150. package/src/ui/formrowview.js +38 -84
  151. package/src/ui/inserttableview.d.ts +77 -0
  152. package/src/ui/inserttableview.js +152 -242
  153. package/src/utils/common.d.ts +42 -0
  154. package/src/utils/common.js +33 -57
  155. package/src/utils/structure.d.ts +245 -0
  156. package/src/utils/structure.js +261 -379
  157. package/src/utils/table-properties.d.ts +67 -0
  158. package/src/utils/table-properties.js +60 -81
  159. package/src/utils/ui/contextualballoon.d.ts +34 -0
  160. package/src/utils/ui/contextualballoon.js +70 -89
  161. package/src/utils/ui/table-properties.d.ts +193 -0
  162. package/src/utils/ui/table-properties.js +259 -319
  163. package/src/utils/ui/widget.d.ts +16 -0
  164. package/src/utils/ui/widget.js +24 -46
  165. package/src/tablecolumnresize/tablecolumnwidthscommand.js +0 -55
  166. 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
- }