@ckeditor/ckeditor5-table 40.0.0 → 40.1.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 (170) hide show
  1. package/LICENSE.md +3 -3
  2. package/build/table.js +1 -1
  3. package/build/translations/fi.js +1 -1
  4. package/lang/translations/fi.po +3 -3
  5. package/package.json +2 -2
  6. package/src/augmentation.d.ts +76 -76
  7. package/src/augmentation.js +5 -5
  8. package/src/commands/insertcolumncommand.d.ts +55 -55
  9. package/src/commands/insertcolumncommand.js +67 -67
  10. package/src/commands/insertrowcommand.d.ts +54 -54
  11. package/src/commands/insertrowcommand.js +66 -66
  12. package/src/commands/inserttablecommand.d.ts +44 -44
  13. package/src/commands/inserttablecommand.js +69 -69
  14. package/src/commands/mergecellcommand.d.ts +68 -68
  15. package/src/commands/mergecellcommand.js +198 -198
  16. package/src/commands/mergecellscommand.d.ts +28 -28
  17. package/src/commands/mergecellscommand.js +94 -94
  18. package/src/commands/removecolumncommand.d.ts +29 -29
  19. package/src/commands/removecolumncommand.js +109 -109
  20. package/src/commands/removerowcommand.d.ts +29 -29
  21. package/src/commands/removerowcommand.js +82 -82
  22. package/src/commands/selectcolumncommand.d.ts +33 -33
  23. package/src/commands/selectcolumncommand.js +60 -60
  24. package/src/commands/selectrowcommand.d.ts +33 -33
  25. package/src/commands/selectrowcommand.js +56 -56
  26. package/src/commands/setheadercolumncommand.d.ts +50 -50
  27. package/src/commands/setheadercolumncommand.js +71 -71
  28. package/src/commands/setheaderrowcommand.d.ts +53 -53
  29. package/src/commands/setheaderrowcommand.js +79 -79
  30. package/src/commands/splitcellcommand.d.ts +43 -43
  31. package/src/commands/splitcellcommand.js +54 -54
  32. package/src/converters/downcast.d.ts +63 -63
  33. package/src/converters/downcast.js +146 -146
  34. package/src/converters/table-caption-post-fixer.d.ts +20 -20
  35. package/src/converters/table-caption-post-fixer.js +53 -53
  36. package/src/converters/table-cell-paragraph-post-fixer.d.ts +32 -32
  37. package/src/converters/table-cell-paragraph-post-fixer.js +107 -107
  38. package/src/converters/table-cell-refresh-handler.d.ts +18 -18
  39. package/src/converters/table-cell-refresh-handler.js +45 -45
  40. package/src/converters/table-headings-refresh-handler.d.ts +17 -17
  41. package/src/converters/table-headings-refresh-handler.js +49 -49
  42. package/src/converters/table-layout-post-fixer.d.ts +226 -226
  43. package/src/converters/table-layout-post-fixer.js +367 -367
  44. package/src/converters/tableproperties.d.ts +54 -54
  45. package/src/converters/tableproperties.js +159 -159
  46. package/src/converters/upcasttable.d.ts +49 -49
  47. package/src/converters/upcasttable.js +243 -243
  48. package/src/index.d.ts +60 -60
  49. package/src/index.js +30 -30
  50. package/src/plaintableoutput.d.ts +26 -26
  51. package/src/plaintableoutput.js +123 -123
  52. package/src/table.d.ts +40 -40
  53. package/src/table.js +44 -44
  54. package/src/tablecaption/tablecaptionediting.d.ts +63 -63
  55. package/src/tablecaption/tablecaptionediting.js +122 -122
  56. package/src/tablecaption/tablecaptionui.d.ts +21 -21
  57. package/src/tablecaption/tablecaptionui.js +57 -57
  58. package/src/tablecaption/toggletablecaptioncommand.d.ts +68 -68
  59. package/src/tablecaption/toggletablecaptioncommand.js +105 -104
  60. package/src/tablecaption/utils.d.ts +38 -42
  61. package/src/tablecaption/utils.js +57 -67
  62. package/src/tablecaption.d.ts +24 -24
  63. package/src/tablecaption.js +28 -28
  64. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +32 -32
  65. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +30 -30
  66. package/src/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +37 -37
  67. package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +44 -44
  68. package/src/tablecellproperties/commands/tablecellborderstylecommand.d.ts +37 -37
  69. package/src/tablecellproperties/commands/tablecellborderstylecommand.js +44 -44
  70. package/src/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +51 -51
  71. package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +64 -64
  72. package/src/tablecellproperties/commands/tablecellheightcommand.d.ts +46 -46
  73. package/src/tablecellproperties/commands/tablecellheightcommand.js +51 -51
  74. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +32 -32
  75. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +30 -30
  76. package/src/tablecellproperties/commands/tablecellpaddingcommand.d.ts +51 -51
  77. package/src/tablecellproperties/commands/tablecellpaddingcommand.js +64 -64
  78. package/src/tablecellproperties/commands/tablecellpropertycommand.d.ts +62 -62
  79. package/src/tablecellproperties/commands/tablecellpropertycommand.js +92 -92
  80. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +40 -40
  81. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +38 -38
  82. package/src/tablecellproperties/tablecellpropertiesediting.d.ts +43 -43
  83. package/src/tablecellproperties/tablecellpropertiesediting.js +241 -241
  84. package/src/tablecellproperties/tablecellpropertiesui.d.ts +112 -112
  85. package/src/tablecellproperties/tablecellpropertiesui.js +330 -330
  86. package/src/tablecellproperties/ui/tablecellpropertiesview.d.ts +228 -228
  87. package/src/tablecellproperties/ui/tablecellpropertiesview.js +548 -548
  88. package/src/tablecellproperties.d.ts +30 -30
  89. package/src/tablecellproperties.js +34 -34
  90. package/src/tablecellwidth/commands/tablecellwidthcommand.d.ts +46 -46
  91. package/src/tablecellwidth/commands/tablecellwidthcommand.js +51 -51
  92. package/src/tablecellwidth/tablecellwidthediting.d.ts +29 -29
  93. package/src/tablecellwidth/tablecellwidthediting.js +45 -45
  94. package/src/tableclipboard.d.ts +65 -65
  95. package/src/tableclipboard.js +450 -450
  96. package/src/tablecolumnresize/constants.d.ts +20 -20
  97. package/src/tablecolumnresize/constants.js +20 -20
  98. package/src/tablecolumnresize/converters.d.ts +18 -18
  99. package/src/tablecolumnresize/converters.js +46 -46
  100. package/src/tablecolumnresize/tablecolumnresizeediting.d.ts +139 -139
  101. package/src/tablecolumnresize/tablecolumnresizeediting.js +583 -583
  102. package/src/tablecolumnresize/tablewidthscommand.d.ts +38 -38
  103. package/src/tablecolumnresize/tablewidthscommand.js +61 -61
  104. package/src/tablecolumnresize/utils.d.ts +148 -148
  105. package/src/tablecolumnresize/utils.js +358 -358
  106. package/src/tablecolumnresize.d.ts +26 -26
  107. package/src/tablecolumnresize.js +30 -30
  108. package/src/tableconfig.d.ts +343 -343
  109. package/src/tableconfig.js +5 -5
  110. package/src/tableediting.d.ts +98 -98
  111. package/src/tableediting.js +191 -191
  112. package/src/tablekeyboard.d.ts +68 -68
  113. package/src/tablekeyboard.js +279 -279
  114. package/src/tablemouse/mouseeventsobserver.d.ts +62 -62
  115. package/src/tablemouse/mouseeventsobserver.js +35 -35
  116. package/src/tablemouse.d.ts +48 -48
  117. package/src/tablemouse.js +172 -172
  118. package/src/tableproperties/commands/tablealignmentcommand.d.ts +32 -32
  119. package/src/tableproperties/commands/tablealignmentcommand.js +30 -30
  120. package/src/tableproperties/commands/tablebackgroundcolorcommand.d.ts +32 -32
  121. package/src/tableproperties/commands/tablebackgroundcolorcommand.js +30 -30
  122. package/src/tableproperties/commands/tablebordercolorcommand.d.ts +37 -37
  123. package/src/tableproperties/commands/tablebordercolorcommand.js +44 -44
  124. package/src/tableproperties/commands/tableborderstylecommand.d.ts +37 -37
  125. package/src/tableproperties/commands/tableborderstylecommand.js +44 -44
  126. package/src/tableproperties/commands/tableborderwidthcommand.d.ts +51 -51
  127. package/src/tableproperties/commands/tableborderwidthcommand.js +64 -64
  128. package/src/tableproperties/commands/tableheightcommand.d.ts +46 -46
  129. package/src/tableproperties/commands/tableheightcommand.js +54 -54
  130. package/src/tableproperties/commands/tablepropertycommand.d.ts +61 -61
  131. package/src/tableproperties/commands/tablepropertycommand.js +81 -80
  132. package/src/tableproperties/commands/tablewidthcommand.d.ts +46 -46
  133. package/src/tableproperties/commands/tablewidthcommand.js +54 -54
  134. package/src/tableproperties/tablepropertiesediting.d.ts +40 -40
  135. package/src/tableproperties/tablepropertiesediting.js +206 -206
  136. package/src/tableproperties/tablepropertiesui.d.ts +114 -114
  137. package/src/tableproperties/tablepropertiesui.js +321 -321
  138. package/src/tableproperties/ui/tablepropertiesview.d.ts +207 -207
  139. package/src/tableproperties/ui/tablepropertiesview.js +466 -466
  140. package/src/tableproperties.d.ts +30 -30
  141. package/src/tableproperties.js +34 -34
  142. package/src/tableselection.d.ts +107 -107
  143. package/src/tableselection.js +297 -297
  144. package/src/tabletoolbar.d.ts +32 -32
  145. package/src/tabletoolbar.js +57 -57
  146. package/src/tableui.d.ts +53 -53
  147. package/src/tableui.js +309 -309
  148. package/src/tableutils.d.ts +448 -448
  149. package/src/tableutils.js +1055 -1055
  150. package/src/tablewalker.d.ts +362 -362
  151. package/src/tablewalker.js +393 -393
  152. package/src/ui/colorinputview.d.ts +140 -140
  153. package/src/ui/colorinputview.js +271 -271
  154. package/src/ui/formrowview.d.ts +61 -61
  155. package/src/ui/formrowview.js +57 -57
  156. package/src/ui/inserttableview.d.ts +77 -77
  157. package/src/ui/inserttableview.js +169 -169
  158. package/src/utils/common.d.ts +46 -42
  159. package/src/utils/common.js +68 -57
  160. package/src/utils/structure.d.ts +245 -245
  161. package/src/utils/structure.js +426 -426
  162. package/src/utils/table-properties.d.ts +67 -67
  163. package/src/utils/table-properties.js +86 -86
  164. package/src/utils/ui/contextualballoon.d.ts +34 -34
  165. package/src/utils/ui/contextualballoon.js +110 -106
  166. package/src/utils/ui/table-properties.d.ts +195 -195
  167. package/src/utils/ui/table-properties.js +362 -362
  168. package/src/utils/ui/widget.d.ts +20 -16
  169. package/src/utils/ui/widget.js +48 -38
  170. 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
+ }