@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.
Files changed (170) hide show
  1. package/README.md +1 -1
  2. package/build/table.js +1 -1
  3. package/ckeditor5-metadata.json +6 -6
  4. package/package.json +34 -29
  5. package/src/augmentation.d.ts +76 -0
  6. package/src/augmentation.js +5 -0
  7. package/src/commands/insertcolumncommand.d.ts +55 -0
  8. package/src/commands/insertcolumncommand.js +45 -60
  9. package/src/commands/insertrowcommand.d.ts +54 -0
  10. package/src/commands/insertrowcommand.js +44 -59
  11. package/src/commands/inserttablecommand.d.ts +44 -0
  12. package/src/commands/inserttablecommand.js +50 -68
  13. package/src/commands/mergecellcommand.d.ts +68 -0
  14. package/src/commands/mergecellcommand.js +169 -244
  15. package/src/commands/mergecellscommand.d.ts +28 -0
  16. package/src/commands/mergecellscommand.js +72 -101
  17. package/src/commands/removecolumncommand.d.ts +29 -0
  18. package/src/commands/removecolumncommand.js +88 -102
  19. package/src/commands/removerowcommand.d.ts +29 -0
  20. package/src/commands/removerowcommand.js +63 -80
  21. package/src/commands/selectcolumncommand.d.ts +33 -0
  22. package/src/commands/selectcolumncommand.js +41 -54
  23. package/src/commands/selectrowcommand.d.ts +33 -0
  24. package/src/commands/selectrowcommand.js +38 -48
  25. package/src/commands/setheadercolumncommand.d.ts +50 -0
  26. package/src/commands/setheadercolumncommand.js +48 -73
  27. package/src/commands/setheaderrowcommand.d.ts +53 -0
  28. package/src/commands/setheaderrowcommand.js +56 -85
  29. package/src/commands/splitcellcommand.d.ts +43 -0
  30. package/src/commands/splitcellcommand.js +35 -49
  31. package/src/converters/downcast.d.ts +63 -0
  32. package/src/converters/downcast.js +98 -130
  33. package/src/converters/table-caption-post-fixer.d.ts +20 -0
  34. package/src/converters/table-caption-post-fixer.js +36 -52
  35. package/src/converters/table-cell-paragraph-post-fixer.d.ts +32 -0
  36. package/src/converters/table-cell-paragraph-post-fixer.js +88 -119
  37. package/src/converters/table-cell-refresh-handler.d.ts +18 -0
  38. package/src/converters/table-cell-refresh-handler.js +29 -48
  39. package/src/converters/table-headings-refresh-handler.d.ts +17 -0
  40. package/src/converters/table-headings-refresh-handler.js +35 -54
  41. package/src/converters/table-layout-post-fixer.d.ts +226 -0
  42. package/src/converters/table-layout-post-fixer.js +276 -313
  43. package/src/converters/tableproperties.d.ts +54 -0
  44. package/src/converters/tableproperties.js +136 -168
  45. package/src/converters/upcasttable.d.ts +49 -0
  46. package/src/converters/upcasttable.js +199 -251
  47. package/src/index.d.ts +60 -0
  48. package/src/index.js +1 -2
  49. package/src/plaintableoutput.d.ts +25 -0
  50. package/src/plaintableoutput.js +107 -135
  51. package/src/table.d.ts +33 -0
  52. package/src/table.js +12 -88
  53. package/src/tablecaption/tablecaptionediting.d.ts +63 -0
  54. package/src/tablecaption/tablecaptionediting.js +104 -135
  55. package/src/tablecaption/tablecaptionui.d.ts +21 -0
  56. package/src/tablecaption/tablecaptionui.js +42 -58
  57. package/src/tablecaption/toggletablecaptioncommand.d.ts +68 -0
  58. package/src/tablecaption/toggletablecaptioncommand.js +77 -92
  59. package/src/tablecaption/utils.d.ts +42 -0
  60. package/src/tablecaption/utils.js +35 -61
  61. package/src/tablecaption.d.ts +22 -0
  62. package/src/tablecaption.js +12 -19
  63. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.d.ts +32 -0
  64. package/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +14 -20
  65. package/src/tablecellproperties/commands/tablecellbordercolorcommand.d.ts +37 -0
  66. package/src/tablecellproperties/commands/tablecellbordercolorcommand.js +27 -37
  67. package/src/tablecellproperties/commands/tablecellborderstylecommand.d.ts +37 -0
  68. package/src/tablecellproperties/commands/tablecellborderstylecommand.js +27 -37
  69. package/src/tablecellproperties/commands/tablecellborderwidthcommand.d.ts +51 -0
  70. package/src/tablecellproperties/commands/tablecellborderwidthcommand.js +42 -53
  71. package/src/tablecellproperties/commands/tablecellheightcommand.d.ts +46 -0
  72. package/src/tablecellproperties/commands/tablecellheightcommand.js +29 -36
  73. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.d.ts +32 -0
  74. package/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +14 -20
  75. package/src/tablecellproperties/commands/tablecellpaddingcommand.d.ts +51 -0
  76. package/src/tablecellproperties/commands/tablecellpaddingcommand.js +42 -53
  77. package/src/tablecellproperties/commands/tablecellpropertycommand.d.ts +62 -0
  78. package/src/tablecellproperties/commands/tablecellpropertycommand.js +77 -122
  79. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.d.ts +40 -0
  80. package/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js +14 -20
  81. package/src/tablecellproperties/tablecellpropertiesediting.d.ts +41 -0
  82. package/src/tablecellproperties/tablecellpropertiesediting.js +193 -236
  83. package/src/tablecellproperties/tablecellpropertiesui.d.ts +111 -0
  84. package/src/tablecellproperties/tablecellpropertiesui.js +302 -456
  85. package/src/tablecellproperties/ui/tablecellpropertiesview.d.ts +227 -0
  86. package/src/tablecellproperties/ui/tablecellpropertiesview.js +509 -844
  87. package/src/tablecellproperties.d.ts +28 -0
  88. package/src/tablecellproperties.js +12 -98
  89. package/src/tablecellwidth/commands/tablecellwidthcommand.d.ts +46 -0
  90. package/src/tablecellwidth/commands/tablecellwidthcommand.js +29 -35
  91. package/src/tablecellwidth/tablecellwidthediting.d.ts +28 -0
  92. package/src/tablecellwidth/tablecellwidthediting.js +25 -38
  93. package/src/tableclipboard.d.ts +63 -0
  94. package/src/tableclipboard.js +429 -568
  95. package/src/tablecolumnresize/constants.d.ts +20 -0
  96. package/src/tablecolumnresize/constants.js +0 -10
  97. package/src/tablecolumnresize/converters.d.ts +18 -0
  98. package/src/tablecolumnresize/converters.js +35 -119
  99. package/src/tablecolumnresize/tablecolumnresizeediting.d.ts +137 -0
  100. package/src/tablecolumnresize/tablecolumnresizeediting.js +545 -711
  101. package/src/tablecolumnresize/tablewidthscommand.d.ts +38 -0
  102. package/src/tablecolumnresize/tablewidthscommand.js +61 -0
  103. package/src/tablecolumnresize/utils.d.ts +141 -0
  104. package/src/tablecolumnresize/utils.js +256 -233
  105. package/src/tablecolumnresize.d.ts +24 -0
  106. package/src/tablecolumnresize.js +12 -19
  107. package/src/tableconfig.d.ts +331 -0
  108. package/src/tableconfig.js +5 -0
  109. package/src/tableediting.d.ts +97 -0
  110. package/src/tableediting.js +157 -176
  111. package/src/tablekeyboard.d.ts +63 -0
  112. package/src/tablekeyboard.js +261 -344
  113. package/src/tablemouse/mouseeventsobserver.d.ts +62 -0
  114. package/src/tablemouse/mouseeventsobserver.js +13 -50
  115. package/src/tablemouse.d.ts +46 -0
  116. package/src/tablemouse.js +154 -202
  117. package/src/tableproperties/commands/tablealignmentcommand.d.ts +32 -0
  118. package/src/tableproperties/commands/tablealignmentcommand.js +14 -20
  119. package/src/tableproperties/commands/tablebackgroundcolorcommand.d.ts +32 -0
  120. package/src/tableproperties/commands/tablebackgroundcolorcommand.js +14 -20
  121. package/src/tableproperties/commands/tablebordercolorcommand.d.ts +37 -0
  122. package/src/tableproperties/commands/tablebordercolorcommand.js +27 -37
  123. package/src/tableproperties/commands/tableborderstylecommand.d.ts +37 -0
  124. package/src/tableproperties/commands/tableborderstylecommand.js +27 -37
  125. package/src/tableproperties/commands/tableborderwidthcommand.d.ts +51 -0
  126. package/src/tableproperties/commands/tableborderwidthcommand.js +42 -53
  127. package/src/tableproperties/commands/tableheightcommand.d.ts +46 -0
  128. package/src/tableproperties/commands/tableheightcommand.js +29 -33
  129. package/src/tableproperties/commands/tablepropertycommand.d.ts +61 -0
  130. package/src/tableproperties/commands/tablepropertycommand.js +68 -112
  131. package/src/tableproperties/commands/tablewidthcommand.d.ts +46 -0
  132. package/src/tableproperties/commands/tablewidthcommand.js +29 -33
  133. package/src/tableproperties/tablepropertiesediting.d.ts +39 -0
  134. package/src/tableproperties/tablepropertiesediting.js +163 -210
  135. package/src/tableproperties/tablepropertiesui.d.ts +113 -0
  136. package/src/tableproperties/tablepropertiesui.js +293 -439
  137. package/src/tableproperties/ui/tablepropertiesview.d.ts +203 -0
  138. package/src/tableproperties/ui/tablepropertiesview.js +427 -718
  139. package/src/tableproperties.d.ts +28 -0
  140. package/src/tableproperties.js +12 -95
  141. package/src/tableselection.d.ts +106 -0
  142. package/src/tableselection.js +279 -376
  143. package/src/tabletoolbar.d.ts +31 -0
  144. package/src/tabletoolbar.js +38 -92
  145. package/src/tableui.d.ts +53 -0
  146. package/src/tableui.js +281 -338
  147. package/src/tableutils.d.ts +448 -0
  148. package/src/tableutils.js +1015 -1229
  149. package/src/tablewalker.d.ts +323 -0
  150. package/src/tablewalker.js +308 -548
  151. package/src/ui/colorinputview.d.ts +143 -0
  152. package/src/ui/colorinputview.js +229 -366
  153. package/src/ui/formrowview.d.ts +61 -0
  154. package/src/ui/formrowview.js +38 -84
  155. package/src/ui/inserttableview.d.ts +77 -0
  156. package/src/ui/inserttableview.js +152 -242
  157. package/src/utils/common.d.ts +42 -0
  158. package/src/utils/common.js +33 -57
  159. package/src/utils/structure.d.ts +245 -0
  160. package/src/utils/structure.js +261 -379
  161. package/src/utils/table-properties.d.ts +67 -0
  162. package/src/utils/table-properties.js +60 -81
  163. package/src/utils/ui/contextualballoon.d.ts +34 -0
  164. package/src/utils/ui/contextualballoon.js +70 -89
  165. package/src/utils/ui/table-properties.d.ts +193 -0
  166. package/src/utils/ui/table-properties.js +259 -319
  167. package/src/utils/ui/widget.d.ts +16 -0
  168. package/src/utils/ui/widget.js +24 -46
  169. package/src/tablecolumnresize/tablecolumnwidthscommand.js +0 -55
  170. package/src/tablecolumnresize/tablewidthresizecommand.js +0 -65
@@ -0,0 +1,203 @@
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/tableproperties/ui/tablepropertiesview
7
+ */
8
+ import { ButtonView, FocusCycler, LabeledFieldView, ToolbarView, View, ViewCollection, type DropdownView, type InputTextView, type NormalizedColorOption } from 'ckeditor5/src/ui';
9
+ import { FocusTracker, KeystrokeHandler, type Locale } from 'ckeditor5/src/utils';
10
+ import '../../../theme/form.css';
11
+ import '../../../theme/tableform.css';
12
+ import '../../../theme/tableproperties.css';
13
+ import type ColorInputView from '../../ui/colorinputview';
14
+ import type { TablePropertiesOptions } from '../../tableconfig';
15
+ /**
16
+ * Additional configuration of the view.
17
+ */
18
+ export interface TablePropertiesViewOptions {
19
+ /**
20
+ * A configuration of the border color palette used by the
21
+ * {@link module:table/tableproperties/ui/tablepropertiesview~TablePropertiesView#borderColorInput}.
22
+ */
23
+ borderColors: Array<NormalizedColorOption>;
24
+ /**
25
+ * A configuration of the background color palette used by the
26
+ * {@link module:table/tableproperties/ui/tablepropertiesview~TablePropertiesView#backgroundInput}.
27
+ */
28
+ backgroundColors: Array<NormalizedColorOption>;
29
+ /**
30
+ * The default table properties.
31
+ */
32
+ defaultTableProperties: TablePropertiesOptions;
33
+ }
34
+ /**
35
+ * The class representing a table properties form, allowing users to customize
36
+ * certain style aspects of a table, for instance, border, background color, alignment, etc..
37
+ */
38
+ export default class TablePropertiesView extends View {
39
+ /**
40
+ * The value of the border style.
41
+ *
42
+ * @observable
43
+ * @default ''
44
+ */
45
+ borderStyle: string;
46
+ /**
47
+ * The value of the border width style.
48
+ *
49
+ * @observable
50
+ * @default ''
51
+ */
52
+ borderWidth: string;
53
+ /**
54
+ * The value of the border color style.
55
+ *
56
+ * @observable
57
+ * @default ''
58
+ */
59
+ borderColor: string;
60
+ /**
61
+ * The value of the background color style.
62
+ *
63
+ * @observable
64
+ * @default ''
65
+ */
66
+ backgroundColor: string;
67
+ /**
68
+ * The value of the table width style.
69
+ *
70
+ * @observable
71
+ * @default ''
72
+ */
73
+ width: string;
74
+ /**
75
+ * The value of the table height style.
76
+ *
77
+ * @observable
78
+ * @default ''
79
+ */
80
+ height: string;
81
+ /**
82
+ * The value of the table alignment style.
83
+ *
84
+ * @observable
85
+ * @default ''
86
+ */
87
+ alignment: string;
88
+ /**
89
+ * Options passed to the view. See {@link #constructor} to learn more.
90
+ */
91
+ readonly options: TablePropertiesViewOptions;
92
+ /**
93
+ * Tracks information about the DOM focus in the form.
94
+ */
95
+ readonly focusTracker: FocusTracker;
96
+ /**
97
+ * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.
98
+ */
99
+ readonly keystrokes: KeystrokeHandler;
100
+ /**
101
+ * A collection of child views in the form.
102
+ */
103
+ readonly children: ViewCollection;
104
+ /**
105
+ * A dropdown that allows selecting the style of the table border.
106
+ */
107
+ readonly borderStyleDropdown: LabeledFieldView<DropdownView>;
108
+ /**
109
+ * An input that allows specifying the width of the table border.
110
+ */
111
+ readonly borderWidthInput: LabeledFieldView<InputTextView>;
112
+ /**
113
+ * An input that allows specifying the color of the table border.
114
+ */
115
+ readonly borderColorInput: LabeledFieldView<ColorInputView>;
116
+ /**
117
+ * An input that allows specifying the table background color.
118
+ */
119
+ readonly backgroundInput: LabeledFieldView<ColorInputView>;
120
+ /**
121
+ * An input that allows specifying the table width.
122
+ */
123
+ readonly widthInput: LabeledFieldView<InputTextView>;
124
+ /**
125
+ * An input that allows specifying the table height.
126
+ */
127
+ readonly heightInput: LabeledFieldView<InputTextView>;
128
+ /**
129
+ * A toolbar with buttons that allow changing the alignment of an entire table.
130
+ */
131
+ readonly alignmentToolbar: ToolbarView;
132
+ /**
133
+ * The "Save" button view.
134
+ */
135
+ saveButtonView: ButtonView;
136
+ /**
137
+ * The "Cancel" button view.
138
+ */
139
+ cancelButtonView: ButtonView;
140
+ /**
141
+ * A collection of views that can be focused in the form.
142
+ */
143
+ protected readonly _focusables: ViewCollection;
144
+ /**
145
+ * Helps cycling over {@link #_focusables} in the form.
146
+ */
147
+ protected readonly _focusCycler: FocusCycler;
148
+ /**
149
+ * @param locale The {@link module:core/editor/editor~Editor#locale} instance.
150
+ * @param options Additional configuration of the view.
151
+ */
152
+ constructor(locale: Locale, options: TablePropertiesViewOptions);
153
+ /**
154
+ * @inheritDoc
155
+ */
156
+ render(): void;
157
+ /**
158
+ * @inheritDoc
159
+ */
160
+ destroy(): void;
161
+ /**
162
+ * Focuses the fist focusable field in the form.
163
+ */
164
+ focus(): void;
165
+ /**
166
+ * Creates the following form fields:
167
+ *
168
+ * * {@link #borderStyleDropdown},
169
+ * * {@link #borderWidthInput},
170
+ * * {@link #borderColorInput}.
171
+ */
172
+ private _createBorderFields;
173
+ /**
174
+ * Creates the following form fields:
175
+ *
176
+ * * {@link #backgroundInput}.
177
+ */
178
+ private _createBackgroundFields;
179
+ /**
180
+ * Creates the following form fields:
181
+ *
182
+ * * {@link #widthInput},
183
+ * * {@link #heightInput}.
184
+ */
185
+ private _createDimensionFields;
186
+ /**
187
+ * Creates the following form fields:
188
+ *
189
+ * * {@link #alignmentToolbar}.
190
+ */
191
+ private _createAlignmentFields;
192
+ /**
193
+ * Creates the following form controls:
194
+ *
195
+ * * {@link #saveButtonView},
196
+ * * {@link #cancelButtonView}.
197
+ */
198
+ private _createActionButtons;
199
+ /**
200
+ * Provides localized labels for {@link #alignmentToolbar} buttons.
201
+ */
202
+ private get _alignmentLabels();
203
+ }