@ckeditor/ckeditor5-table 36.0.1 → 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,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
+ }