@ckeditor/ckeditor5-table 40.0.0 → 40.2.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 (171) hide show
  1. package/CHANGELOG.md +15 -15
  2. package/LICENSE.md +3 -3
  3. package/build/table.js +1 -1
  4. package/build/translations/fi.js +1 -1
  5. package/lang/translations/fi.po +3 -3
  6. package/package.json +2 -2
  7. package/src/augmentation.d.ts +76 -76
  8. package/src/augmentation.js +5 -5
  9. package/src/commands/insertcolumncommand.d.ts +55 -55
  10. package/src/commands/insertcolumncommand.js +67 -67
  11. package/src/commands/insertrowcommand.d.ts +54 -54
  12. package/src/commands/insertrowcommand.js +66 -66
  13. package/src/commands/inserttablecommand.d.ts +44 -44
  14. package/src/commands/inserttablecommand.js +69 -69
  15. package/src/commands/mergecellcommand.d.ts +68 -68
  16. package/src/commands/mergecellcommand.js +198 -198
  17. package/src/commands/mergecellscommand.d.ts +28 -28
  18. package/src/commands/mergecellscommand.js +94 -94
  19. package/src/commands/removecolumncommand.d.ts +29 -29
  20. package/src/commands/removecolumncommand.js +109 -109
  21. package/src/commands/removerowcommand.d.ts +29 -29
  22. package/src/commands/removerowcommand.js +82 -82
  23. package/src/commands/selectcolumncommand.d.ts +33 -33
  24. package/src/commands/selectcolumncommand.js +60 -60
  25. package/src/commands/selectrowcommand.d.ts +33 -33
  26. package/src/commands/selectrowcommand.js +56 -56
  27. package/src/commands/setheadercolumncommand.d.ts +50 -50
  28. package/src/commands/setheadercolumncommand.js +71 -71
  29. package/src/commands/setheaderrowcommand.d.ts +53 -53
  30. package/src/commands/setheaderrowcommand.js +79 -79
  31. package/src/commands/splitcellcommand.d.ts +43 -43
  32. package/src/commands/splitcellcommand.js +54 -54
  33. package/src/converters/downcast.d.ts +63 -63
  34. package/src/converters/downcast.js +146 -146
  35. package/src/converters/table-caption-post-fixer.d.ts +20 -20
  36. package/src/converters/table-caption-post-fixer.js +53 -53
  37. package/src/converters/table-cell-paragraph-post-fixer.d.ts +32 -32
  38. package/src/converters/table-cell-paragraph-post-fixer.js +107 -107
  39. package/src/converters/table-cell-refresh-handler.d.ts +18 -18
  40. package/src/converters/table-cell-refresh-handler.js +45 -45
  41. package/src/converters/table-headings-refresh-handler.d.ts +17 -17
  42. package/src/converters/table-headings-refresh-handler.js +49 -49
  43. package/src/converters/table-layout-post-fixer.d.ts +226 -226
  44. package/src/converters/table-layout-post-fixer.js +367 -367
  45. package/src/converters/tableproperties.d.ts +54 -54
  46. package/src/converters/tableproperties.js +159 -159
  47. package/src/converters/upcasttable.d.ts +49 -49
  48. package/src/converters/upcasttable.js +243 -243
  49. package/src/index.d.ts +60 -60
  50. package/src/index.js +30 -30
  51. package/src/plaintableoutput.d.ts +26 -26
  52. package/src/plaintableoutput.js +123 -123
  53. package/src/table.d.ts +40 -40
  54. package/src/table.js +44 -44
  55. package/src/tablecaption/tablecaptionediting.d.ts +63 -63
  56. package/src/tablecaption/tablecaptionediting.js +122 -122
  57. package/src/tablecaption/tablecaptionui.d.ts +21 -21
  58. package/src/tablecaption/tablecaptionui.js +57 -57
  59. package/src/tablecaption/toggletablecaptioncommand.d.ts +68 -68
  60. package/src/tablecaption/toggletablecaptioncommand.js +105 -104
  61. package/src/tablecaption/utils.d.ts +38 -42
  62. package/src/tablecaption/utils.js +57 -67
  63. package/src/tablecaption.d.ts +24 -24
  64. package/src/tablecaption.js +28 -28
  65. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +32 -32
  66. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +30 -30
  67. package/src/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +37 -37
  68. package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +44 -44
  69. package/src/tablecellproperties/commands/tablecellborderstylecommand.d.ts +37 -37
  70. package/src/tablecellproperties/commands/tablecellborderstylecommand.js +44 -44
  71. package/src/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +51 -51
  72. package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +64 -64
  73. package/src/tablecellproperties/commands/tablecellheightcommand.d.ts +46 -46
  74. package/src/tablecellproperties/commands/tablecellheightcommand.js +51 -51
  75. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +32 -32
  76. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +30 -30
  77. package/src/tablecellproperties/commands/tablecellpaddingcommand.d.ts +51 -51
  78. package/src/tablecellproperties/commands/tablecellpaddingcommand.js +64 -64
  79. package/src/tablecellproperties/commands/tablecellpropertycommand.d.ts +62 -62
  80. package/src/tablecellproperties/commands/tablecellpropertycommand.js +92 -92
  81. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +40 -40
  82. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +38 -38
  83. package/src/tablecellproperties/tablecellpropertiesediting.d.ts +43 -43
  84. package/src/tablecellproperties/tablecellpropertiesediting.js +241 -241
  85. package/src/tablecellproperties/tablecellpropertiesui.d.ts +112 -112
  86. package/src/tablecellproperties/tablecellpropertiesui.js +330 -330
  87. package/src/tablecellproperties/ui/tablecellpropertiesview.d.ts +228 -228
  88. package/src/tablecellproperties/ui/tablecellpropertiesview.js +548 -548
  89. package/src/tablecellproperties.d.ts +30 -30
  90. package/src/tablecellproperties.js +34 -34
  91. package/src/tablecellwidth/commands/tablecellwidthcommand.d.ts +46 -46
  92. package/src/tablecellwidth/commands/tablecellwidthcommand.js +51 -51
  93. package/src/tablecellwidth/tablecellwidthediting.d.ts +29 -29
  94. package/src/tablecellwidth/tablecellwidthediting.js +45 -45
  95. package/src/tableclipboard.d.ts +65 -65
  96. package/src/tableclipboard.js +450 -450
  97. package/src/tablecolumnresize/constants.d.ts +20 -20
  98. package/src/tablecolumnresize/constants.js +20 -20
  99. package/src/tablecolumnresize/converters.d.ts +18 -18
  100. package/src/tablecolumnresize/converters.js +46 -46
  101. package/src/tablecolumnresize/tablecolumnresizeediting.d.ts +139 -139
  102. package/src/tablecolumnresize/tablecolumnresizeediting.js +583 -583
  103. package/src/tablecolumnresize/tablewidthscommand.d.ts +38 -38
  104. package/src/tablecolumnresize/tablewidthscommand.js +61 -61
  105. package/src/tablecolumnresize/utils.d.ts +148 -148
  106. package/src/tablecolumnresize/utils.js +358 -358
  107. package/src/tablecolumnresize.d.ts +26 -26
  108. package/src/tablecolumnresize.js +30 -30
  109. package/src/tableconfig.d.ts +343 -343
  110. package/src/tableconfig.js +5 -5
  111. package/src/tableediting.d.ts +98 -98
  112. package/src/tableediting.js +191 -191
  113. package/src/tablekeyboard.d.ts +68 -68
  114. package/src/tablekeyboard.js +279 -279
  115. package/src/tablemouse/mouseeventsobserver.d.ts +62 -62
  116. package/src/tablemouse/mouseeventsobserver.js +35 -35
  117. package/src/tablemouse.d.ts +48 -48
  118. package/src/tablemouse.js +172 -172
  119. package/src/tableproperties/commands/tablealignmentcommand.d.ts +32 -32
  120. package/src/tableproperties/commands/tablealignmentcommand.js +30 -30
  121. package/src/tableproperties/commands/tablebackgroundcolorcommand.d.ts +32 -32
  122. package/src/tableproperties/commands/tablebackgroundcolorcommand.js +30 -30
  123. package/src/tableproperties/commands/tablebordercolorcommand.d.ts +37 -37
  124. package/src/tableproperties/commands/tablebordercolorcommand.js +44 -44
  125. package/src/tableproperties/commands/tableborderstylecommand.d.ts +37 -37
  126. package/src/tableproperties/commands/tableborderstylecommand.js +44 -44
  127. package/src/tableproperties/commands/tableborderwidthcommand.d.ts +51 -51
  128. package/src/tableproperties/commands/tableborderwidthcommand.js +64 -64
  129. package/src/tableproperties/commands/tableheightcommand.d.ts +46 -46
  130. package/src/tableproperties/commands/tableheightcommand.js +54 -54
  131. package/src/tableproperties/commands/tablepropertycommand.d.ts +61 -61
  132. package/src/tableproperties/commands/tablepropertycommand.js +81 -80
  133. package/src/tableproperties/commands/tablewidthcommand.d.ts +46 -46
  134. package/src/tableproperties/commands/tablewidthcommand.js +54 -54
  135. package/src/tableproperties/tablepropertiesediting.d.ts +40 -40
  136. package/src/tableproperties/tablepropertiesediting.js +206 -206
  137. package/src/tableproperties/tablepropertiesui.d.ts +114 -114
  138. package/src/tableproperties/tablepropertiesui.js +321 -321
  139. package/src/tableproperties/ui/tablepropertiesview.d.ts +207 -207
  140. package/src/tableproperties/ui/tablepropertiesview.js +466 -466
  141. package/src/tableproperties.d.ts +30 -30
  142. package/src/tableproperties.js +34 -34
  143. package/src/tableselection.d.ts +107 -107
  144. package/src/tableselection.js +297 -297
  145. package/src/tabletoolbar.d.ts +32 -32
  146. package/src/tabletoolbar.js +57 -57
  147. package/src/tableui.d.ts +53 -53
  148. package/src/tableui.js +309 -309
  149. package/src/tableutils.d.ts +448 -448
  150. package/src/tableutils.js +1055 -1055
  151. package/src/tablewalker.d.ts +362 -362
  152. package/src/tablewalker.js +393 -393
  153. package/src/ui/colorinputview.d.ts +140 -140
  154. package/src/ui/colorinputview.js +271 -271
  155. package/src/ui/formrowview.d.ts +61 -61
  156. package/src/ui/formrowview.js +57 -57
  157. package/src/ui/inserttableview.d.ts +77 -77
  158. package/src/ui/inserttableview.js +169 -169
  159. package/src/utils/common.d.ts +46 -42
  160. package/src/utils/common.js +68 -57
  161. package/src/utils/structure.d.ts +245 -245
  162. package/src/utils/structure.js +426 -426
  163. package/src/utils/table-properties.d.ts +67 -67
  164. package/src/utils/table-properties.js +86 -86
  165. package/src/utils/ui/contextualballoon.d.ts +34 -34
  166. package/src/utils/ui/contextualballoon.js +110 -106
  167. package/src/utils/ui/table-properties.d.ts +195 -195
  168. package/src/utils/ui/table-properties.js +362 -362
  169. package/src/utils/ui/widget.d.ts +20 -16
  170. package/src/utils/ui/widget.js +48 -38
  171. package/build/table.js.map +0 -1
@@ -1,42 +1,46 @@
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/common
7
- */
8
- import type { Conversion, Element, Item, Position, Schema, Writer } from 'ckeditor5/src/engine';
9
- import type TableUtils from '../tableutils';
10
- /**
11
- * A common method to update the numeric value. If a value is the default one, it will be unset.
12
- *
13
- * @param key An attribute key.
14
- * @param value The new attribute value.
15
- * @param item A model item on which the attribute will be set.
16
- * @param defaultValue The default attribute value. If a value is lower or equal, it will be unset.
17
- */
18
- export declare function updateNumericAttribute(key: string, value: unknown, item: Item, writer: Writer, defaultValue?: unknown): void;
19
- /**
20
- * A common method to create an empty table cell. It creates a proper model structure as a table cell must have at least one block inside.
21
- *
22
- * @param writer The model writer.
23
- * @param insertPosition The position at which the table cell should be inserted.
24
- * @param attributes The element attributes.
25
- * @returns Created table cell.
26
- */
27
- export declare function createEmptyTableCell(writer: Writer, insertPosition: Position, attributes?: Record<string, unknown>): Element;
28
- /**
29
- * Checks if a table cell belongs to the heading column section.
30
- */
31
- export declare function isHeadingColumnCell(tableUtils: TableUtils, tableCell: Element): boolean;
32
- /**
33
- * Enables conversion for an attribute for simple view-model mappings.
34
- *
35
- * @param options.defaultValue The default value for the specified `modelAttribute`.
36
- */
37
- export declare function enableProperty(schema: Schema, conversion: Conversion, options: {
38
- modelAttribute: string;
39
- styleName: string;
40
- defaultValue: string;
41
- reduceBoxSides?: boolean;
42
- }): void;
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/common
7
+ */
8
+ import type { Conversion, Element, Item, Position, Schema, Writer, DocumentSelection } from 'ckeditor5/src/engine';
9
+ import type TableUtils from '../tableutils';
10
+ /**
11
+ * A common method to update the numeric value. If a value is the default one, it will be unset.
12
+ *
13
+ * @param key An attribute key.
14
+ * @param value The new attribute value.
15
+ * @param item A model item on which the attribute will be set.
16
+ * @param defaultValue The default attribute value. If a value is lower or equal, it will be unset.
17
+ */
18
+ export declare function updateNumericAttribute(key: string, value: unknown, item: Item, writer: Writer, defaultValue?: unknown): void;
19
+ /**
20
+ * A common method to create an empty table cell. It creates a proper model structure as a table cell must have at least one block inside.
21
+ *
22
+ * @param writer The model writer.
23
+ * @param insertPosition The position at which the table cell should be inserted.
24
+ * @param attributes The element attributes.
25
+ * @returns Created table cell.
26
+ */
27
+ export declare function createEmptyTableCell(writer: Writer, insertPosition: Position, attributes?: Record<string, unknown>): Element;
28
+ /**
29
+ * Checks if a table cell belongs to the heading column section.
30
+ */
31
+ export declare function isHeadingColumnCell(tableUtils: TableUtils, tableCell: Element): boolean;
32
+ /**
33
+ * Enables conversion for an attribute for simple view-model mappings.
34
+ *
35
+ * @param options.defaultValue The default value for the specified `modelAttribute`.
36
+ */
37
+ export declare function enableProperty(schema: Schema, conversion: Conversion, options: {
38
+ modelAttribute: string;
39
+ styleName: string;
40
+ defaultValue: string;
41
+ reduceBoxSides?: boolean;
42
+ }): void;
43
+ /**
44
+ * Depending on the position of the selection we either return the table under cursor or look for the table higher in the hierarchy.
45
+ */
46
+ export declare function getSelectionAffectedTable(selection: DocumentSelection): Element;
@@ -1,57 +1,68 @@
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
- import { downcastAttributeToStyle, upcastStyleToAttribute } from './../converters/tableproperties';
6
- /**
7
- * A common method to update the numeric value. If a value is the default one, it will be unset.
8
- *
9
- * @param key An attribute key.
10
- * @param value The new attribute value.
11
- * @param item A model item on which the attribute will be set.
12
- * @param defaultValue The default attribute value. If a value is lower or equal, it will be unset.
13
- */
14
- export function updateNumericAttribute(key, value, item, writer, defaultValue = 1) {
15
- if (value !== undefined && value !== null && defaultValue !== undefined && defaultValue !== null && value > defaultValue) {
16
- writer.setAttribute(key, value, item);
17
- }
18
- else {
19
- writer.removeAttribute(key, item);
20
- }
21
- }
22
- /**
23
- * A common method to create an empty table cell. It creates a proper model structure as a table cell must have at least one block inside.
24
- *
25
- * @param writer The model writer.
26
- * @param insertPosition The position at which the table cell should be inserted.
27
- * @param attributes The element attributes.
28
- * @returns Created table cell.
29
- */
30
- export function createEmptyTableCell(writer, insertPosition, attributes = {}) {
31
- const tableCell = writer.createElement('tableCell', attributes);
32
- writer.insertElement('paragraph', tableCell);
33
- writer.insert(tableCell, insertPosition);
34
- return tableCell;
35
- }
36
- /**
37
- * Checks if a table cell belongs to the heading column section.
38
- */
39
- export function isHeadingColumnCell(tableUtils, tableCell) {
40
- const table = tableCell.parent.parent;
41
- const headingColumns = parseInt(table.getAttribute('headingColumns') || '0');
42
- const { column } = tableUtils.getCellLocation(tableCell);
43
- return !!headingColumns && column < headingColumns;
44
- }
45
- /**
46
- * Enables conversion for an attribute for simple view-model mappings.
47
- *
48
- * @param options.defaultValue The default value for the specified `modelAttribute`.
49
- */
50
- export function enableProperty(schema, conversion, options) {
51
- const { modelAttribute } = options;
52
- schema.extend('tableCell', {
53
- allowAttributes: [modelAttribute]
54
- });
55
- upcastStyleToAttribute(conversion, { viewElement: /^(td|th)$/, ...options });
56
- downcastAttributeToStyle(conversion, { modelElement: 'tableCell', ...options });
57
- }
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
+ import { downcastAttributeToStyle, upcastStyleToAttribute } from './../converters/tableproperties';
6
+ /**
7
+ * A common method to update the numeric value. If a value is the default one, it will be unset.
8
+ *
9
+ * @param key An attribute key.
10
+ * @param value The new attribute value.
11
+ * @param item A model item on which the attribute will be set.
12
+ * @param defaultValue The default attribute value. If a value is lower or equal, it will be unset.
13
+ */
14
+ export function updateNumericAttribute(key, value, item, writer, defaultValue = 1) {
15
+ if (value !== undefined && value !== null && defaultValue !== undefined && defaultValue !== null && value > defaultValue) {
16
+ writer.setAttribute(key, value, item);
17
+ }
18
+ else {
19
+ writer.removeAttribute(key, item);
20
+ }
21
+ }
22
+ /**
23
+ * A common method to create an empty table cell. It creates a proper model structure as a table cell must have at least one block inside.
24
+ *
25
+ * @param writer The model writer.
26
+ * @param insertPosition The position at which the table cell should be inserted.
27
+ * @param attributes The element attributes.
28
+ * @returns Created table cell.
29
+ */
30
+ export function createEmptyTableCell(writer, insertPosition, attributes = {}) {
31
+ const tableCell = writer.createElement('tableCell', attributes);
32
+ writer.insertElement('paragraph', tableCell);
33
+ writer.insert(tableCell, insertPosition);
34
+ return tableCell;
35
+ }
36
+ /**
37
+ * Checks if a table cell belongs to the heading column section.
38
+ */
39
+ export function isHeadingColumnCell(tableUtils, tableCell) {
40
+ const table = tableCell.parent.parent;
41
+ const headingColumns = parseInt(table.getAttribute('headingColumns') || '0');
42
+ const { column } = tableUtils.getCellLocation(tableCell);
43
+ return !!headingColumns && column < headingColumns;
44
+ }
45
+ /**
46
+ * Enables conversion for an attribute for simple view-model mappings.
47
+ *
48
+ * @param options.defaultValue The default value for the specified `modelAttribute`.
49
+ */
50
+ export function enableProperty(schema, conversion, options) {
51
+ const { modelAttribute } = options;
52
+ schema.extend('tableCell', {
53
+ allowAttributes: [modelAttribute]
54
+ });
55
+ upcastStyleToAttribute(conversion, { viewElement: /^(td|th)$/, ...options });
56
+ downcastAttributeToStyle(conversion, { modelElement: 'tableCell', ...options });
57
+ }
58
+ /**
59
+ * Depending on the position of the selection we either return the table under cursor or look for the table higher in the hierarchy.
60
+ */
61
+ export function getSelectionAffectedTable(selection) {
62
+ const selectedElement = selection.getSelectedElement();
63
+ // Is the command triggered from the `tableToolbar`?
64
+ if (selectedElement && selectedElement.is('element', 'table')) {
65
+ return selectedElement;
66
+ }
67
+ return selection.getFirstPosition().findAncestor('table');
68
+ }