@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.
- package/README.md +1 -1
- package/build/table.js +1 -1
- package/ckeditor5-metadata.json +6 -6
- package/package.json +34 -29
- package/src/augmentation.d.ts +76 -0
- package/src/augmentation.js +5 -0
- package/src/commands/insertcolumncommand.d.ts +55 -0
- package/src/commands/insertcolumncommand.js +45 -60
- package/src/commands/insertrowcommand.d.ts +54 -0
- package/src/commands/insertrowcommand.js +44 -59
- package/src/commands/inserttablecommand.d.ts +44 -0
- package/src/commands/inserttablecommand.js +50 -68
- package/src/commands/mergecellcommand.d.ts +68 -0
- package/src/commands/mergecellcommand.js +169 -244
- package/src/commands/mergecellscommand.d.ts +28 -0
- package/src/commands/mergecellscommand.js +72 -101
- package/src/commands/removecolumncommand.d.ts +29 -0
- package/src/commands/removecolumncommand.js +88 -102
- package/src/commands/removerowcommand.d.ts +29 -0
- package/src/commands/removerowcommand.js +63 -80
- package/src/commands/selectcolumncommand.d.ts +33 -0
- package/src/commands/selectcolumncommand.js +41 -54
- package/src/commands/selectrowcommand.d.ts +33 -0
- package/src/commands/selectrowcommand.js +38 -48
- package/src/commands/setheadercolumncommand.d.ts +50 -0
- package/src/commands/setheadercolumncommand.js +48 -73
- package/src/commands/setheaderrowcommand.d.ts +53 -0
- package/src/commands/setheaderrowcommand.js +56 -85
- package/src/commands/splitcellcommand.d.ts +43 -0
- package/src/commands/splitcellcommand.js +35 -49
- package/src/converters/downcast.d.ts +63 -0
- package/src/converters/downcast.js +98 -130
- package/src/converters/table-caption-post-fixer.d.ts +20 -0
- package/src/converters/table-caption-post-fixer.js +36 -52
- package/src/converters/table-cell-paragraph-post-fixer.d.ts +32 -0
- package/src/converters/table-cell-paragraph-post-fixer.js +88 -119
- package/src/converters/table-cell-refresh-handler.d.ts +18 -0
- package/src/converters/table-cell-refresh-handler.js +29 -48
- package/src/converters/table-headings-refresh-handler.d.ts +17 -0
- package/src/converters/table-headings-refresh-handler.js +35 -54
- package/src/converters/table-layout-post-fixer.d.ts +226 -0
- package/src/converters/table-layout-post-fixer.js +276 -313
- package/src/converters/tableproperties.d.ts +54 -0
- package/src/converters/tableproperties.js +136 -168
- package/src/converters/upcasttable.d.ts +49 -0
- package/src/converters/upcasttable.js +199 -251
- package/src/index.d.ts +60 -0
- package/src/index.js +1 -2
- package/src/plaintableoutput.d.ts +25 -0
- package/src/plaintableoutput.js +107 -135
- package/src/table.d.ts +33 -0
- package/src/table.js +12 -88
- package/src/tablecaption/tablecaptionediting.d.ts +63 -0
- package/src/tablecaption/tablecaptionediting.js +104 -135
- package/src/tablecaption/tablecaptionui.d.ts +21 -0
- package/src/tablecaption/tablecaptionui.js +42 -58
- package/src/tablecaption/toggletablecaptioncommand.d.ts +68 -0
- package/src/tablecaption/toggletablecaptioncommand.js +77 -92
- package/src/tablecaption/utils.d.ts +42 -0
- package/src/tablecaption/utils.js +35 -61
- package/src/tablecaption.d.ts +22 -0
- package/src/tablecaption.js +12 -19
- package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +32 -0
- package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +14 -20
- package/src/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +37 -0
- package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +27 -37
- package/src/tablecellproperties/commands/tablecellborderstylecommand.d.ts +37 -0
- package/src/tablecellproperties/commands/tablecellborderstylecommand.js +27 -37
- package/src/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +51 -0
- package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +42 -53
- package/src/tablecellproperties/commands/tablecellheightcommand.d.ts +46 -0
- package/src/tablecellproperties/commands/tablecellheightcommand.js +29 -36
- package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +32 -0
- package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +14 -20
- package/src/tablecellproperties/commands/tablecellpaddingcommand.d.ts +51 -0
- package/src/tablecellproperties/commands/tablecellpaddingcommand.js +42 -53
- package/src/tablecellproperties/commands/tablecellpropertycommand.d.ts +62 -0
- package/src/tablecellproperties/commands/tablecellpropertycommand.js +77 -122
- package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +40 -0
- package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +14 -20
- package/src/tablecellproperties/tablecellpropertiesediting.d.ts +41 -0
- package/src/tablecellproperties/tablecellpropertiesediting.js +193 -236
- package/src/tablecellproperties/tablecellpropertiesui.d.ts +111 -0
- package/src/tablecellproperties/tablecellpropertiesui.js +302 -456
- package/src/tablecellproperties/ui/tablecellpropertiesview.d.ts +227 -0
- package/src/tablecellproperties/ui/tablecellpropertiesview.js +509 -844
- package/src/tablecellproperties.d.ts +28 -0
- package/src/tablecellproperties.js +12 -98
- package/src/tablecellwidth/commands/tablecellwidthcommand.d.ts +46 -0
- package/src/tablecellwidth/commands/tablecellwidthcommand.js +29 -35
- package/src/tablecellwidth/tablecellwidthediting.d.ts +28 -0
- package/src/tablecellwidth/tablecellwidthediting.js +25 -38
- package/src/tableclipboard.d.ts +63 -0
- package/src/tableclipboard.js +429 -568
- package/src/tablecolumnresize/constants.d.ts +20 -0
- package/src/tablecolumnresize/constants.js +0 -10
- package/src/tablecolumnresize/converters.d.ts +18 -0
- package/src/tablecolumnresize/converters.js +35 -119
- package/src/tablecolumnresize/tablecolumnresizeediting.d.ts +137 -0
- package/src/tablecolumnresize/tablecolumnresizeediting.js +545 -711
- package/src/tablecolumnresize/tablewidthscommand.d.ts +38 -0
- package/src/tablecolumnresize/tablewidthscommand.js +61 -0
- package/src/tablecolumnresize/utils.d.ts +141 -0
- package/src/tablecolumnresize/utils.js +256 -233
- package/src/tablecolumnresize.d.ts +24 -0
- package/src/tablecolumnresize.js +12 -19
- package/src/tableconfig.d.ts +331 -0
- package/src/tableconfig.js +5 -0
- package/src/tableediting.d.ts +97 -0
- package/src/tableediting.js +157 -176
- package/src/tablekeyboard.d.ts +63 -0
- package/src/tablekeyboard.js +261 -344
- package/src/tablemouse/mouseeventsobserver.d.ts +62 -0
- package/src/tablemouse/mouseeventsobserver.js +13 -50
- package/src/tablemouse.d.ts +46 -0
- package/src/tablemouse.js +154 -202
- package/src/tableproperties/commands/tablealignmentcommand.d.ts +32 -0
- package/src/tableproperties/commands/tablealignmentcommand.js +14 -20
- package/src/tableproperties/commands/tablebackgroundcolorcommand.d.ts +32 -0
- package/src/tableproperties/commands/tablebackgroundcolorcommand.js +14 -20
- package/src/tableproperties/commands/tablebordercolorcommand.d.ts +37 -0
- package/src/tableproperties/commands/tablebordercolorcommand.js +27 -37
- package/src/tableproperties/commands/tableborderstylecommand.d.ts +37 -0
- package/src/tableproperties/commands/tableborderstylecommand.js +27 -37
- package/src/tableproperties/commands/tableborderwidthcommand.d.ts +51 -0
- package/src/tableproperties/commands/tableborderwidthcommand.js +42 -53
- package/src/tableproperties/commands/tableheightcommand.d.ts +46 -0
- package/src/tableproperties/commands/tableheightcommand.js +29 -33
- package/src/tableproperties/commands/tablepropertycommand.d.ts +61 -0
- package/src/tableproperties/commands/tablepropertycommand.js +68 -112
- package/src/tableproperties/commands/tablewidthcommand.d.ts +46 -0
- package/src/tableproperties/commands/tablewidthcommand.js +29 -33
- package/src/tableproperties/tablepropertiesediting.d.ts +39 -0
- package/src/tableproperties/tablepropertiesediting.js +163 -210
- package/src/tableproperties/tablepropertiesui.d.ts +113 -0
- package/src/tableproperties/tablepropertiesui.js +293 -439
- package/src/tableproperties/ui/tablepropertiesview.d.ts +203 -0
- package/src/tableproperties/ui/tablepropertiesview.js +427 -718
- package/src/tableproperties.d.ts +28 -0
- package/src/tableproperties.js +12 -95
- package/src/tableselection.d.ts +106 -0
- package/src/tableselection.js +279 -376
- package/src/tabletoolbar.d.ts +31 -0
- package/src/tabletoolbar.js +38 -92
- package/src/tableui.d.ts +53 -0
- package/src/tableui.js +281 -338
- package/src/tableutils.d.ts +448 -0
- package/src/tableutils.js +1015 -1229
- package/src/tablewalker.d.ts +323 -0
- package/src/tablewalker.js +308 -548
- package/src/ui/colorinputview.d.ts +143 -0
- package/src/ui/colorinputview.js +229 -366
- package/src/ui/formrowview.d.ts +61 -0
- package/src/ui/formrowview.js +38 -84
- package/src/ui/inserttableview.d.ts +77 -0
- package/src/ui/inserttableview.js +152 -242
- package/src/utils/common.d.ts +42 -0
- package/src/utils/common.js +33 -57
- package/src/utils/structure.d.ts +245 -0
- package/src/utils/structure.js +261 -379
- package/src/utils/table-properties.d.ts +67 -0
- package/src/utils/table-properties.js +60 -81
- package/src/utils/ui/contextualballoon.d.ts +34 -0
- package/src/utils/ui/contextualballoon.js +70 -89
- package/src/utils/ui/table-properties.d.ts +193 -0
- package/src/utils/ui/table-properties.js +259 -319
- package/src/utils/ui/widget.d.ts +16 -0
- package/src/utils/ui/widget.js +24 -46
- package/src/tablecolumnresize/tablecolumnwidthscommand.js +0 -55
- package/src/tablecolumnresize/tablewidthresizecommand.js +0 -65
|
@@ -2,13 +2,10 @@
|
|
|
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/commands/inserttablecommand
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
8
|
import { Command } from 'ckeditor5/src/core';
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
* The insert table command.
|
|
14
11
|
*
|
|
@@ -16,72 +13,57 @@ import { Command } from 'ckeditor5/src/core';
|
|
|
16
13
|
*
|
|
17
14
|
* To insert a table at the current selection, execute the command and specify the dimensions:
|
|
18
15
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* editor.execute( 'insertTable', { rows: 20, columns: 5 } );
|
|
18
|
+
* ```
|
|
22
19
|
*/
|
|
23
20
|
export default class InsertTableCommand extends Command {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
options.headingColumns = defaultColumns;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
model.change( writer => {
|
|
68
|
-
const table = tableUtils.createTable( writer, options );
|
|
69
|
-
|
|
70
|
-
model.insertObject( table, null, null, { findOptimalPosition: 'auto' } );
|
|
71
|
-
|
|
72
|
-
writer.setSelection( writer.createPositionAt( table.getNodeByPath( [ 0, 0, 0 ] ), 0 ) );
|
|
73
|
-
} );
|
|
74
|
-
}
|
|
21
|
+
/**
|
|
22
|
+
* @inheritDoc
|
|
23
|
+
*/
|
|
24
|
+
refresh() {
|
|
25
|
+
const model = this.editor.model;
|
|
26
|
+
const selection = model.document.selection;
|
|
27
|
+
const schema = model.schema;
|
|
28
|
+
this.isEnabled = isAllowedInParent(selection, schema);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Executes the command.
|
|
32
|
+
*
|
|
33
|
+
* Inserts a table with the given number of rows and columns into the editor.
|
|
34
|
+
*
|
|
35
|
+
* @param options.rows The number of rows to create in the inserted table. Default value is 2.
|
|
36
|
+
* @param options.columns The number of columns to create in the inserted table. Default value is 2.
|
|
37
|
+
* @param options.headingRows The number of heading rows. If not provided it will default to
|
|
38
|
+
* {@link module:table/tableconfig~TableConfig#defaultHeadings `config.table.defaultHeadings.rows`} table config.
|
|
39
|
+
* @param options.headingColumns The number of heading columns. If not provided it will default to
|
|
40
|
+
* {@link module:table/tableconfig~TableConfig#defaultHeadings `config.table.defaultHeadings.columns`} table config.
|
|
41
|
+
* @fires execute
|
|
42
|
+
*/
|
|
43
|
+
execute(options = {}) {
|
|
44
|
+
const editor = this.editor;
|
|
45
|
+
const model = editor.model;
|
|
46
|
+
const tableUtils = editor.plugins.get('TableUtils');
|
|
47
|
+
const defaultRows = editor.config.get('table.defaultHeadings.rows');
|
|
48
|
+
const defaultColumns = editor.config.get('table.defaultHeadings.columns');
|
|
49
|
+
if (options.headingRows === undefined && defaultRows) {
|
|
50
|
+
options.headingRows = defaultRows;
|
|
51
|
+
}
|
|
52
|
+
if (options.headingColumns === undefined && defaultColumns) {
|
|
53
|
+
options.headingColumns = defaultColumns;
|
|
54
|
+
}
|
|
55
|
+
model.change(writer => {
|
|
56
|
+
const table = tableUtils.createTable(writer, options);
|
|
57
|
+
model.insertObject(table, null, null, { findOptimalPosition: 'auto' });
|
|
58
|
+
writer.setSelection(writer.createPositionAt(table.getNodeByPath([0, 0, 0]), 0));
|
|
59
|
+
});
|
|
60
|
+
}
|
|
75
61
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const positionParent = selection.getFirstPosition().parent;
|
|
84
|
-
const validParent = positionParent === positionParent.root ? positionParent : positionParent.parent;
|
|
85
|
-
|
|
86
|
-
return schema.checkChild( validParent, 'table' );
|
|
62
|
+
/**
|
|
63
|
+
* Checks if the table is allowed in the parent.
|
|
64
|
+
*/
|
|
65
|
+
function isAllowedInParent(selection, schema) {
|
|
66
|
+
const positionParent = selection.getFirstPosition().parent;
|
|
67
|
+
const validParent = positionParent === positionParent.root ? positionParent : positionParent.parent;
|
|
68
|
+
return schema.checkChild(validParent, 'table');
|
|
87
69
|
}
|
|
@@ -0,0 +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
|
+
/**
|
|
6
|
+
* @module table/commands/mergecellcommand
|
|
7
|
+
*/
|
|
8
|
+
import type { Node } from 'ckeditor5/src/engine';
|
|
9
|
+
import { Command, type Editor } from 'ckeditor5/src/core';
|
|
10
|
+
import type { ArrowKeyCodeDirection } from 'ckeditor5/src/utils';
|
|
11
|
+
/**
|
|
12
|
+
* The merge cell command.
|
|
13
|
+
*
|
|
14
|
+
* The command is registered by {@link module:table/tableediting~TableEditing} as the `'mergeTableCellRight'`, `'mergeTableCellLeft'`,
|
|
15
|
+
* `'mergeTableCellUp'` and `'mergeTableCellDown'` editor commands.
|
|
16
|
+
*
|
|
17
|
+
* To merge a table cell at the current selection with another cell, execute the command corresponding with the preferred direction.
|
|
18
|
+
*
|
|
19
|
+
* For example, to merge with a cell to the right:
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* editor.execute( 'mergeTableCellRight' );
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* **Note**: If a table cell has a different [`rowspan`](https://www.w3.org/TR/html50/tabular-data.html#attr-tdth-rowspan)
|
|
26
|
+
* (for `'mergeTableCellRight'` and `'mergeTableCellLeft'`) or [`colspan`](https://www.w3.org/TR/html50/tabular-data.html#attr-tdth-colspan)
|
|
27
|
+
* (for `'mergeTableCellUp'` and `'mergeTableCellDown'`), the command will be disabled.
|
|
28
|
+
*/
|
|
29
|
+
export default class MergeCellCommand extends Command {
|
|
30
|
+
/**
|
|
31
|
+
* The direction that indicates which cell will be merged with the currently selected one.
|
|
32
|
+
*/
|
|
33
|
+
readonly direction: ArrowKeyCodeDirection;
|
|
34
|
+
/**
|
|
35
|
+
* Whether the merge is horizontal (left/right) or vertical (up/down).
|
|
36
|
+
*/
|
|
37
|
+
readonly isHorizontal: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* @inheritDoc
|
|
40
|
+
*/
|
|
41
|
+
value: Node | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a new `MergeCellCommand` instance.
|
|
44
|
+
*
|
|
45
|
+
* @param editor The editor on which this command will be used.
|
|
46
|
+
* @param options.direction Indicates which cell to merge with the currently selected one.
|
|
47
|
+
* Possible values are: `'left'`, `'right'`, `'up'` and `'down'`.
|
|
48
|
+
*/
|
|
49
|
+
constructor(editor: Editor, options: {
|
|
50
|
+
direction: ArrowKeyCodeDirection;
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* @inheritDoc
|
|
54
|
+
*/
|
|
55
|
+
refresh(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Executes the command.
|
|
58
|
+
*
|
|
59
|
+
* Depending on the command's {@link #direction} value, it will merge the cell that is to the `'left'`, `'right'`, `'up'` or `'down'`.
|
|
60
|
+
*
|
|
61
|
+
* @fires execute
|
|
62
|
+
*/
|
|
63
|
+
execute(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Returns a cell that can be merged with the current cell depending on the command's direction.
|
|
66
|
+
*/
|
|
67
|
+
private _getMergeableCell;
|
|
68
|
+
}
|