@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,61 @@
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/ui/formrowview
7
+ */
8
+ import { View, type LabelView, type ViewCollection } from 'ckeditor5/src/ui';
9
+ import type { Locale } from 'ckeditor5/src/utils';
10
+ import '../../theme/formrow.css';
11
+ /**
12
+ * The class representing a single row in a complex form,
13
+ * used by {@link module:table/tablecellproperties/ui/tablecellpropertiesview~TableCellPropertiesView}.
14
+ *
15
+ * **Note**: For now this class is private. When more use cases arrive (beyond ckeditor5-table),
16
+ * it will become a component in ckeditor5-ui.
17
+ *
18
+ * @internal
19
+ */
20
+ export default class FormRowView extends View {
21
+ /**
22
+ * An additional CSS class added to the {@link #element}.
23
+ *
24
+ * @observable
25
+ */
26
+ class: string | null;
27
+ /**
28
+ * A collection of row items (buttons, dropdowns, etc.).
29
+ */
30
+ readonly children: ViewCollection;
31
+ /**
32
+ * The role property reflected by the `role` DOM attribute of the {@link #element}.
33
+ *
34
+ * **Note**: Used only when a `labelView` is passed to constructor `options`.
35
+ *
36
+ * @observable
37
+ * @internal
38
+ */
39
+ _role: string | null;
40
+ /**
41
+ * The ARIA property reflected by the `aria-labelledby` DOM attribute of the {@link #element}.
42
+ *
43
+ * **Note**: Used only when a `labelView` is passed to constructor `options`.
44
+ *
45
+ * @observable
46
+ * @internal
47
+ */
48
+ _ariaLabelledBy: string | null;
49
+ /**
50
+ * Creates an instance of the form row class.
51
+ *
52
+ * @param locale The locale instance.
53
+ * @param options.labelView When passed, the row gets the `group` and `aria-labelledby`
54
+ * DOM attributes and gets described by the label.
55
+ */
56
+ constructor(locale: Locale, options?: {
57
+ children?: Array<View>;
58
+ class?: string;
59
+ labelView?: LabelView;
60
+ });
61
+ }
@@ -2,15 +2,11 @@
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/ui/formrowview
8
7
  */
9
-
10
8
  import { View } from 'ckeditor5/src/ui';
11
-
12
9
  import '../../theme/formrow.css';
13
-
14
10
  /**
15
11
  * The class representing a single row in a complex form,
16
12
  * used by {@link module:table/tablecellproperties/ui/tablecellpropertiesview~TableCellPropertiesView}.
@@ -18,86 +14,44 @@ import '../../theme/formrow.css';
18
14
  * **Note**: For now this class is private. When more use cases arrive (beyond ckeditor5-table),
19
15
  * it will become a component in ckeditor5-ui.
20
16
  *
21
- * @private
22
- * @extends module:ui/view~View
17
+ * @internal
23
18
  */
24
19
  export default class FormRowView extends View {
25
- /**
26
- * Creates an instance of the form row class.
27
- *
28
- * @param {module:utils/locale~Locale} locale The locale instance.
29
- * @param {Object} options
30
- * @param {Array.<module:ui/view~View>} options.children
31
- * @param {String} [options.class]
32
- * @param {module:ui/view~View} [options.labelView] When passed, the row gets the `group` and `aria-labelledby`
33
- * DOM attributes and gets described by the label.
34
- */
35
- constructor( locale, options = {} ) {
36
- super( locale );
37
-
38
- const bind = this.bindTemplate;
39
-
40
- /**
41
- * An additional CSS class added to the {@link #element}.
42
- *
43
- * @observable
44
- * @member {String} #class
45
- */
46
- this.set( 'class', options.class || null );
47
-
48
- /**
49
- * A collection of row items (buttons, dropdowns, etc.).
50
- *
51
- * @readonly
52
- * @member {module:ui/viewcollection~ViewCollection}
53
- */
54
- this.children = this.createCollection();
55
-
56
- if ( options.children ) {
57
- options.children.forEach( child => this.children.add( child ) );
58
- }
59
-
60
- /**
61
- * The role property reflected by the `role` DOM attribute of the {@link #element}.
62
- *
63
- * **Note**: Used only when a `labelView` is passed to constructor `options`.
64
- *
65
- * @private
66
- * @observable
67
- * @member {String} #role
68
- */
69
- this.set( '_role', null );
70
-
71
- /**
72
- * The ARIA property reflected by the `aria-labelledby` DOM attribute of the {@link #element}.
73
- *
74
- * **Note**: Used only when a `labelView` is passed to constructor `options`.
75
- *
76
- * @private
77
- * @observable
78
- * @member {String} #ariaLabelledBy
79
- */
80
- this.set( '_ariaLabelledBy', null );
81
-
82
- if ( options.labelView ) {
83
- this.set( {
84
- _role: 'group',
85
- _ariaLabelledBy: options.labelView.id
86
- } );
87
- }
88
-
89
- this.setTemplate( {
90
- tag: 'div',
91
- attributes: {
92
- class: [
93
- 'ck',
94
- 'ck-form__row',
95
- bind.to( 'class' )
96
- ],
97
- role: bind.to( '_role' ),
98
- 'aria-labelledby': bind.to( '_ariaLabelledBy' )
99
- },
100
- children: this.children
101
- } );
102
- }
20
+ /**
21
+ * Creates an instance of the form row class.
22
+ *
23
+ * @param locale The locale instance.
24
+ * @param options.labelView When passed, the row gets the `group` and `aria-labelledby`
25
+ * DOM attributes and gets described by the label.
26
+ */
27
+ constructor(locale, options = {}) {
28
+ super(locale);
29
+ const bind = this.bindTemplate;
30
+ this.set('class', options.class || null);
31
+ this.children = this.createCollection();
32
+ if (options.children) {
33
+ options.children.forEach(child => this.children.add(child));
34
+ }
35
+ this.set('_role', null);
36
+ this.set('_ariaLabelledBy', null);
37
+ if (options.labelView) {
38
+ this.set({
39
+ _role: 'group',
40
+ _ariaLabelledBy: options.labelView.id
41
+ });
42
+ }
43
+ this.setTemplate({
44
+ tag: 'div',
45
+ attributes: {
46
+ class: [
47
+ 'ck',
48
+ 'ck-form__row',
49
+ bind.to('class')
50
+ ],
51
+ role: bind.to('_role'),
52
+ 'aria-labelledby': bind.to('_ariaLabelledBy')
53
+ },
54
+ children: this.children
55
+ });
56
+ }
103
57
  }
@@ -0,0 +1,77 @@
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/ui/inserttableview
7
+ */
8
+ import { View, ButtonView, type ViewCollection } from 'ckeditor5/src/ui';
9
+ import { KeystrokeHandler, FocusTracker, type Locale } from 'ckeditor5/src/utils';
10
+ import './../../theme/inserttable.css';
11
+ /**
12
+ * The table size view.
13
+ *
14
+ * It renders a 10x10 grid to choose the inserted table size.
15
+ */
16
+ export default class InsertTableView extends View {
17
+ /**
18
+ * A collection of table size box items.
19
+ */
20
+ readonly items: ViewCollection<ButtonView>;
21
+ /**
22
+ * Listen to `keydown` events fired in this view's main element.
23
+ */
24
+ readonly keystrokes: KeystrokeHandler;
25
+ /**
26
+ * Tracks information about the DOM focus in the grid.
27
+ */
28
+ readonly focusTracker: FocusTracker;
29
+ /**
30
+ * The currently selected number of rows of the new table.
31
+ *
32
+ * @observable
33
+ */
34
+ rows: number;
35
+ /**
36
+ * The currently selected number of columns of the new table.
37
+ *
38
+ * @observable
39
+ */
40
+ columns: number;
41
+ /**
42
+ * The label text displayed under the boxes.
43
+ *
44
+ * @observable
45
+ */
46
+ label: string;
47
+ /**
48
+ * @inheritDoc
49
+ */
50
+ constructor(locale: Locale);
51
+ render(): void;
52
+ /**
53
+ * @inheritDoc
54
+ */
55
+ focus(): void;
56
+ /**
57
+ * @inheritDoc
58
+ */
59
+ focusLast(): void;
60
+ /**
61
+ * Highlights grid boxes depending on rows and columns selected.
62
+ */
63
+ private _highlightGridBoxes;
64
+ /**
65
+ * Creates a new Button for the grid.
66
+ *
67
+ * @param locale The locale instance.
68
+ * @param row Row number.
69
+ * @param column Column number.
70
+ * @param label The grid button label.
71
+ */
72
+ private _createGridButton;
73
+ /**
74
+ * @returns A view collection containing boxes to be placed in a table grid.
75
+ */
76
+ private _createGridCollection;
77
+ }