@ckeditor/ckeditor5-table 47.2.0 → 47.3.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/LICENSE.md +4 -4
- package/build/table.js +2 -2
- package/build/translations/af.js +1 -1
- package/build/translations/ar.js +1 -1
- package/build/translations/ast.js +1 -1
- package/build/translations/az.js +1 -1
- package/build/translations/be.js +1 -1
- package/build/translations/bg.js +1 -1
- package/build/translations/bn.js +1 -1
- package/build/translations/bs.js +1 -1
- package/build/translations/ca.js +1 -1
- package/build/translations/cs.js +1 -1
- package/build/translations/da.js +1 -1
- package/build/translations/de-ch.js +1 -1
- package/build/translations/de.js +1 -1
- package/build/translations/el.js +1 -1
- package/build/translations/en-au.js +1 -1
- package/build/translations/en-gb.js +1 -1
- package/build/translations/eo.js +1 -1
- package/build/translations/es-co.js +1 -1
- package/build/translations/es.js +1 -1
- package/build/translations/et.js +1 -1
- package/build/translations/eu.js +1 -1
- package/build/translations/fa.js +1 -1
- package/build/translations/fi.js +1 -1
- package/build/translations/fr.js +1 -1
- package/build/translations/gl.js +1 -1
- package/build/translations/gu.js +1 -1
- package/build/translations/he.js +1 -1
- package/build/translations/hi.js +1 -1
- package/build/translations/hr.js +1 -1
- package/build/translations/hu.js +1 -1
- package/build/translations/hy.js +1 -1
- package/build/translations/id.js +1 -1
- package/build/translations/it.js +1 -1
- package/build/translations/ja.js +1 -1
- package/build/translations/jv.js +1 -1
- package/build/translations/kk.js +1 -1
- package/build/translations/km.js +1 -1
- package/build/translations/kn.js +1 -1
- package/build/translations/ko.js +1 -1
- package/build/translations/ku.js +1 -1
- package/build/translations/lt.js +1 -1
- package/build/translations/lv.js +1 -1
- package/build/translations/ms.js +1 -1
- package/build/translations/nb.js +1 -1
- package/build/translations/ne.js +1 -1
- package/build/translations/nl.js +1 -1
- package/build/translations/no.js +1 -1
- package/build/translations/oc.js +1 -1
- package/build/translations/pl.js +1 -1
- package/build/translations/pt-br.js +1 -1
- package/build/translations/pt.js +1 -1
- package/build/translations/ro.js +1 -1
- package/build/translations/ru.js +1 -1
- package/build/translations/si.js +1 -1
- package/build/translations/sk.js +1 -1
- package/build/translations/sl.js +1 -1
- package/build/translations/sq.js +1 -1
- package/build/translations/sr-latn.js +1 -1
- package/build/translations/sr.js +1 -1
- package/build/translations/sv.js +1 -1
- package/build/translations/th.js +1 -1
- package/build/translations/ti.js +1 -1
- package/build/translations/tk.js +1 -1
- package/build/translations/tr.js +1 -1
- package/build/translations/tt.js +1 -1
- package/build/translations/ug.js +1 -1
- package/build/translations/uk.js +1 -1
- package/build/translations/ur.js +1 -1
- package/build/translations/uz.js +1 -1
- package/build/translations/vi.js +1 -1
- package/build/translations/zh-cn.js +1 -1
- package/build/translations/zh.js +1 -1
- package/dist/index-content.css +32 -3
- package/dist/index-editor.css +189 -88
- package/dist/index.css +310 -160
- package/dist/index.css.map +1 -1
- package/dist/index.js +11215 -8546
- package/dist/index.js.map +1 -1
- package/dist/translations/af.js +1 -1
- package/dist/translations/af.umd.js +1 -1
- package/dist/translations/ar.js +1 -1
- package/dist/translations/ar.umd.js +1 -1
- package/dist/translations/ast.js +1 -1
- package/dist/translations/ast.umd.js +1 -1
- package/dist/translations/az.js +1 -1
- package/dist/translations/az.umd.js +1 -1
- package/dist/translations/be.js +1 -1
- package/dist/translations/be.umd.js +1 -1
- package/dist/translations/bg.js +1 -1
- package/dist/translations/bg.umd.js +1 -1
- package/dist/translations/bn.js +1 -1
- package/dist/translations/bn.umd.js +1 -1
- package/dist/translations/bs.js +1 -1
- package/dist/translations/bs.umd.js +1 -1
- package/dist/translations/ca.js +1 -1
- package/dist/translations/ca.umd.js +1 -1
- package/dist/translations/cs.js +1 -1
- package/dist/translations/cs.umd.js +1 -1
- package/dist/translations/da.js +1 -1
- package/dist/translations/da.umd.js +1 -1
- package/dist/translations/de-ch.js +1 -1
- package/dist/translations/de-ch.umd.js +1 -1
- package/dist/translations/de.js +1 -1
- package/dist/translations/de.umd.js +1 -1
- package/dist/translations/el.js +1 -1
- package/dist/translations/el.umd.js +1 -1
- package/dist/translations/en-au.js +1 -1
- package/dist/translations/en-au.umd.js +1 -1
- package/dist/translations/en-gb.js +1 -1
- package/dist/translations/en-gb.umd.js +1 -1
- package/dist/translations/en.js +1 -1
- package/dist/translations/en.umd.js +1 -1
- package/dist/translations/eo.js +1 -1
- package/dist/translations/eo.umd.js +1 -1
- package/dist/translations/es-co.js +1 -1
- package/dist/translations/es-co.umd.js +1 -1
- package/dist/translations/es.js +1 -1
- package/dist/translations/es.umd.js +1 -1
- package/dist/translations/et.js +1 -1
- package/dist/translations/et.umd.js +1 -1
- package/dist/translations/eu.js +1 -1
- package/dist/translations/eu.umd.js +1 -1
- package/dist/translations/fa.js +1 -1
- package/dist/translations/fa.umd.js +1 -1
- package/dist/translations/fi.js +1 -1
- package/dist/translations/fi.umd.js +1 -1
- package/dist/translations/fr.js +1 -1
- package/dist/translations/fr.umd.js +1 -1
- package/dist/translations/gl.js +1 -1
- package/dist/translations/gl.umd.js +1 -1
- package/dist/translations/gu.js +1 -1
- package/dist/translations/gu.umd.js +1 -1
- package/dist/translations/he.js +1 -1
- package/dist/translations/he.umd.js +1 -1
- package/dist/translations/hi.js +1 -1
- package/dist/translations/hi.umd.js +1 -1
- package/dist/translations/hr.js +1 -1
- package/dist/translations/hr.umd.js +1 -1
- package/dist/translations/hu.js +1 -1
- package/dist/translations/hu.umd.js +1 -1
- package/dist/translations/hy.js +1 -1
- package/dist/translations/hy.umd.js +1 -1
- package/dist/translations/id.js +1 -1
- package/dist/translations/id.umd.js +1 -1
- package/dist/translations/it.js +1 -1
- package/dist/translations/it.umd.js +1 -1
- package/dist/translations/ja.js +1 -1
- package/dist/translations/ja.umd.js +1 -1
- package/dist/translations/jv.js +1 -1
- package/dist/translations/jv.umd.js +1 -1
- package/dist/translations/kk.js +1 -1
- package/dist/translations/kk.umd.js +1 -1
- package/dist/translations/km.js +1 -1
- package/dist/translations/km.umd.js +1 -1
- package/dist/translations/kn.js +1 -1
- package/dist/translations/kn.umd.js +1 -1
- package/dist/translations/ko.js +1 -1
- package/dist/translations/ko.umd.js +1 -1
- package/dist/translations/ku.js +1 -1
- package/dist/translations/ku.umd.js +1 -1
- package/dist/translations/lt.js +1 -1
- package/dist/translations/lt.umd.js +1 -1
- package/dist/translations/lv.js +1 -1
- package/dist/translations/lv.umd.js +1 -1
- package/dist/translations/ms.js +1 -1
- package/dist/translations/ms.umd.js +1 -1
- package/dist/translations/nb.js +1 -1
- package/dist/translations/nb.umd.js +1 -1
- package/dist/translations/ne.js +1 -1
- package/dist/translations/ne.umd.js +1 -1
- package/dist/translations/nl.js +1 -1
- package/dist/translations/nl.umd.js +1 -1
- package/dist/translations/no.js +1 -1
- package/dist/translations/no.umd.js +1 -1
- package/dist/translations/oc.js +1 -1
- package/dist/translations/oc.umd.js +1 -1
- package/dist/translations/pl.js +1 -1
- package/dist/translations/pl.umd.js +1 -1
- package/dist/translations/pt-br.js +1 -1
- package/dist/translations/pt-br.umd.js +1 -1
- package/dist/translations/pt.js +1 -1
- package/dist/translations/pt.umd.js +1 -1
- package/dist/translations/ro.js +1 -1
- package/dist/translations/ro.umd.js +1 -1
- package/dist/translations/ru.js +1 -1
- package/dist/translations/ru.umd.js +1 -1
- package/dist/translations/si.js +1 -1
- package/dist/translations/si.umd.js +1 -1
- package/dist/translations/sk.js +1 -1
- package/dist/translations/sk.umd.js +1 -1
- package/dist/translations/sl.js +1 -1
- package/dist/translations/sl.umd.js +1 -1
- package/dist/translations/sq.js +1 -1
- package/dist/translations/sq.umd.js +1 -1
- package/dist/translations/sr-latn.js +1 -1
- package/dist/translations/sr-latn.umd.js +1 -1
- package/dist/translations/sr.js +1 -1
- package/dist/translations/sr.umd.js +1 -1
- package/dist/translations/sv.js +1 -1
- package/dist/translations/sv.umd.js +1 -1
- package/dist/translations/th.js +1 -1
- package/dist/translations/th.umd.js +1 -1
- package/dist/translations/ti.js +1 -1
- package/dist/translations/ti.umd.js +1 -1
- package/dist/translations/tk.js +1 -1
- package/dist/translations/tk.umd.js +1 -1
- package/dist/translations/tr.js +1 -1
- package/dist/translations/tr.umd.js +1 -1
- package/dist/translations/tt.js +1 -1
- package/dist/translations/tt.umd.js +1 -1
- package/dist/translations/ug.js +1 -1
- package/dist/translations/ug.umd.js +1 -1
- package/dist/translations/uk.js +1 -1
- package/dist/translations/uk.umd.js +1 -1
- package/dist/translations/ur.js +1 -1
- package/dist/translations/ur.umd.js +1 -1
- package/dist/translations/uz.js +1 -1
- package/dist/translations/uz.umd.js +1 -1
- package/dist/translations/vi.js +1 -1
- package/dist/translations/vi.umd.js +1 -1
- package/dist/translations/zh-cn.js +1 -1
- package/dist/translations/zh-cn.umd.js +1 -1
- package/dist/translations/zh.js +1 -1
- package/dist/translations/zh.umd.js +1 -1
- package/lang/contexts.json +6 -0
- package/lang/translations/af.po +24 -0
- package/lang/translations/ar.po +24 -0
- package/lang/translations/ast.po +24 -0
- package/lang/translations/az.po +24 -0
- package/lang/translations/be.po +24 -0
- package/lang/translations/bg.po +24 -0
- package/lang/translations/bn.po +24 -0
- package/lang/translations/bs.po +24 -0
- package/lang/translations/ca.po +24 -0
- package/lang/translations/cs.po +24 -0
- package/lang/translations/da.po +24 -0
- package/lang/translations/de-ch.po +24 -0
- package/lang/translations/de.po +24 -0
- package/lang/translations/el.po +24 -0
- package/lang/translations/en-au.po +24 -0
- package/lang/translations/en-gb.po +24 -0
- package/lang/translations/en.po +24 -0
- package/lang/translations/eo.po +24 -0
- package/lang/translations/es-co.po +24 -0
- package/lang/translations/es.po +24 -0
- package/lang/translations/et.po +24 -0
- package/lang/translations/eu.po +24 -0
- package/lang/translations/fa.po +24 -0
- package/lang/translations/fi.po +24 -0
- package/lang/translations/fr.po +24 -0
- package/lang/translations/gl.po +24 -0
- package/lang/translations/gu.po +24 -0
- package/lang/translations/he.po +24 -0
- package/lang/translations/hi.po +24 -0
- package/lang/translations/hr.po +24 -0
- package/lang/translations/hu.po +24 -0
- package/lang/translations/hy.po +24 -0
- package/lang/translations/id.po +24 -0
- package/lang/translations/it.po +24 -0
- package/lang/translations/ja.po +24 -0
- package/lang/translations/jv.po +24 -0
- package/lang/translations/kk.po +24 -0
- package/lang/translations/km.po +24 -0
- package/lang/translations/kn.po +24 -0
- package/lang/translations/ko.po +24 -0
- package/lang/translations/ku.po +24 -0
- package/lang/translations/lt.po +24 -0
- package/lang/translations/lv.po +24 -0
- package/lang/translations/ms.po +24 -0
- package/lang/translations/nb.po +24 -0
- package/lang/translations/ne.po +24 -0
- package/lang/translations/nl.po +24 -0
- package/lang/translations/no.po +24 -0
- package/lang/translations/oc.po +24 -0
- package/lang/translations/pl.po +24 -0
- package/lang/translations/pt-br.po +24 -0
- package/lang/translations/pt.po +24 -0
- package/lang/translations/ro.po +24 -0
- package/lang/translations/ru.po +24 -0
- package/lang/translations/si.po +24 -0
- package/lang/translations/sk.po +24 -0
- package/lang/translations/sl.po +24 -0
- package/lang/translations/sq.po +24 -0
- package/lang/translations/sr-latn.po +24 -0
- package/lang/translations/sr.po +24 -0
- package/lang/translations/sv.po +24 -0
- package/lang/translations/th.po +24 -0
- package/lang/translations/ti.po +24 -0
- package/lang/translations/tk.po +24 -0
- package/lang/translations/tr.po +24 -0
- package/lang/translations/tt.po +24 -0
- package/lang/translations/ug.po +24 -0
- package/lang/translations/uk.po +24 -0
- package/lang/translations/ur.po +24 -0
- package/lang/translations/uz.po +24 -0
- package/lang/translations/vi.po +24 -0
- package/lang/translations/zh-cn.po +24 -0
- package/lang/translations/zh.po +24 -0
- package/package.json +9 -9
- package/src/augmentation.d.ts +21 -0
- package/src/converters/downcast.d.ts +26 -1
- package/src/converters/downcast.js +129 -3
- package/src/converters/tableproperties.d.ts +46 -2
- package/src/converters/tableproperties.js +218 -1
- package/src/converters/upcasttable.js +147 -36
- package/src/index.d.ts +5 -1
- package/src/index.js +5 -0
- package/src/plaintableoutput.js +0 -91
- package/src/tablecellproperties/tablecellpropertiesediting.js +7 -4
- package/src/tablecellproperties/tablecellpropertiesuiexperimental.d.ts +128 -0
- package/src/tablecellproperties/tablecellpropertiesuiexperimental.js +386 -0
- package/src/tablecellproperties/ui/tablecellpropertiesviewexperimental.d.ts +237 -0
- package/src/tablecellproperties/ui/tablecellpropertiesviewexperimental.js +633 -0
- package/src/tableconfig.d.ts +187 -10
- package/src/tableediting.d.ts +5 -0
- package/src/tableediting.js +28 -1
- package/src/tablelayout/tablelayoutediting.js +8 -2
- package/src/tableproperties/tablepropertiesediting.js +255 -8
- package/src/tableproperties/tablepropertiesuiexperimental.d.ts +136 -0
- package/src/tableproperties/tablepropertiesuiexperimental.js +375 -0
- package/src/tableproperties/ui/tablepropertiesviewexperimental.d.ts +216 -0
- package/src/tableproperties/ui/tablepropertiesviewexperimental.js +544 -0
- package/src/utils/structure.d.ts +5 -1
- package/src/utils/structure.js +10 -0
- package/src/utils/ui/table-propertiesexperimental.d.ts +215 -0
- package/src/utils/ui/table-propertiesexperimental.js +391 -0
- package/theme/formrow-experimental.css +15 -0
- package/theme/table.css +2 -2
- package/theme/tableform-experimental.css +73 -0
- package/theme/tableproperties-experimental.css +78 -0
package/src/tableconfig.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ import type { ColorOption, ColorPickerConfig } from 'ckeditor5/src/ui.js';
|
|
|
23
23
|
*/
|
|
24
24
|
export interface TableConfig {
|
|
25
25
|
/**
|
|
26
|
-
* Number of rows and columns to render by table heading when inserting new tables.
|
|
26
|
+
* Number of rows and columns to render by the table heading when inserting new tables.
|
|
27
27
|
*
|
|
28
28
|
* You can configure it like this:
|
|
29
29
|
*
|
|
@@ -36,7 +36,7 @@ export interface TableConfig {
|
|
|
36
36
|
* };
|
|
37
37
|
* ```
|
|
38
38
|
*
|
|
39
|
-
* Both rows and columns properties are optional defaulting to 0 (no heading).
|
|
39
|
+
* Both rows and columns properties are optional, defaulting to 0 (no heading).
|
|
40
40
|
*/
|
|
41
41
|
defaultHeadings?: {
|
|
42
42
|
rows?: number;
|
|
@@ -86,7 +86,7 @@ export interface TableConfig {
|
|
|
86
86
|
*/
|
|
87
87
|
tableToolbar?: Array<ToolbarConfigItem>;
|
|
88
88
|
/**
|
|
89
|
-
* The configuration of the table properties user interface (balloon). It allows to define:
|
|
89
|
+
* The configuration of the table properties user interface (balloon). It allows us to define:
|
|
90
90
|
*
|
|
91
91
|
* * The color palette for the table border color style field (`tableProperties.borderColors`),
|
|
92
92
|
* * The color palette for the table background style field (`tableProperties.backgroundColors`).
|
|
@@ -130,9 +130,9 @@ export interface TableConfig {
|
|
|
130
130
|
* {@link module:table/tableconfig~TablePropertiesOptions Read more about the supported properties.}
|
|
131
131
|
*
|
|
132
132
|
* **Note**: The `borderColors` and `backgroundColors` options do not impact the data loaded into the editor,
|
|
133
|
-
* i.e
|
|
134
|
-
* allowing users to pick colors
|
|
135
|
-
*
|
|
133
|
+
* i.e., they do not limit or filter the colors in the data. They are used only in the user interface,
|
|
134
|
+
* allowing users to pick colors more conveniently. The `defaultProperties` option does impact the data.
|
|
135
|
+
* The editor model will not keep the default values.
|
|
136
136
|
*
|
|
137
137
|
* The default color palettes for the table background and the table border are the same
|
|
138
138
|
* ({@link module:table/utils/ui/table-properties#defaultColors check out their content}).
|
|
@@ -144,7 +144,7 @@ export interface TableConfig {
|
|
|
144
144
|
*/
|
|
145
145
|
tableProperties?: TablePropertiesConfig;
|
|
146
146
|
/**
|
|
147
|
-
* The configuration of the table cell properties user interface (balloon). It allows to define:
|
|
147
|
+
* The configuration of the table cell properties user interface (balloon). It allows us to define:
|
|
148
148
|
*
|
|
149
149
|
* * The color palette for the cell border color style field (`tableCellProperties.borderColors`),
|
|
150
150
|
* * The color palette for the cell background style field (`tableCellProperties.backgroundColors`).
|
|
@@ -187,11 +187,11 @@ export interface TableConfig {
|
|
|
187
187
|
* {@link module:table/tableconfig~TablePropertiesOptions Read more about the supported properties.}
|
|
188
188
|
*
|
|
189
189
|
* **Note**: The `borderColors` and `backgroundColors` options do not impact the data loaded into the editor,
|
|
190
|
-
* i.e
|
|
190
|
+
* i.e., they do not limit or filter the colors in the data. They are used only in the user interface,
|
|
191
191
|
* allowing users to pick colors in a more convenient way. The `defaultProperties` option does impact the data.
|
|
192
|
-
*
|
|
192
|
+
* The editor model will not keep the default values.
|
|
193
193
|
*
|
|
194
|
-
* The default color palettes for the cell background and the cell border are
|
|
194
|
+
* The default color palettes for the cell background and the cell border are identical
|
|
195
195
|
* ({@link module:table/utils/ui/table-properties#defaultColors check out their content}).
|
|
196
196
|
*
|
|
197
197
|
* Both color palette configurations must follow the
|
|
@@ -225,9 +225,99 @@ export interface TableConfig {
|
|
|
225
225
|
* The configuration of the table properties user interface (balloon).
|
|
226
226
|
*/
|
|
227
227
|
export interface TablePropertiesConfig {
|
|
228
|
+
/**
|
|
229
|
+
* The color palette for the table border color picker.
|
|
230
|
+
*
|
|
231
|
+
* ```ts
|
|
232
|
+
* const tableConfig = {
|
|
233
|
+
* tableProperties: {
|
|
234
|
+
* borderColors: [
|
|
235
|
+
* {
|
|
236
|
+
* color: 'hsl(0, 0%, 0%)',
|
|
237
|
+
* label: 'Black'
|
|
238
|
+
* },
|
|
239
|
+
* {
|
|
240
|
+
* color: 'hsl(0, 0%, 100%)',
|
|
241
|
+
* label: 'White',
|
|
242
|
+
* hasBorder: true
|
|
243
|
+
* }
|
|
244
|
+
* ]
|
|
245
|
+
* }
|
|
246
|
+
* };
|
|
247
|
+
* ```
|
|
248
|
+
*
|
|
249
|
+
* **Note**: This configuration only affects the UI. It does not limit or filter the colors in the data.
|
|
250
|
+
*
|
|
251
|
+
* Defaults to {@link module:table/utils/ui/table-properties#defaultColors}.
|
|
252
|
+
*
|
|
253
|
+
* @see {@link module:table/tableconfig~TableColorConfig}
|
|
254
|
+
*/
|
|
228
255
|
borderColors?: TableColorConfig;
|
|
256
|
+
/**
|
|
257
|
+
* The color palette for the table background color picker.
|
|
258
|
+
*
|
|
259
|
+
* ```ts
|
|
260
|
+
* const tableConfig = {
|
|
261
|
+
* tableProperties: {
|
|
262
|
+
* backgroundColors: [
|
|
263
|
+
* {
|
|
264
|
+
* color: 'hsl(0, 0%, 100%)',
|
|
265
|
+
* label: 'White',
|
|
266
|
+
* hasBorder: true
|
|
267
|
+
* },
|
|
268
|
+
* {
|
|
269
|
+
* color: 'hsl(120, 75%, 60%)',
|
|
270
|
+
* label: 'Green'
|
|
271
|
+
* }
|
|
272
|
+
* ]
|
|
273
|
+
* }
|
|
274
|
+
* };
|
|
275
|
+
* ```
|
|
276
|
+
*
|
|
277
|
+
* **Note**: This configuration only affects the UI. It does not limit or filter the colors in the data.
|
|
278
|
+
*
|
|
279
|
+
* Defaults to {@link module:table/utils/ui/table-properties#defaultColors}.
|
|
280
|
+
*
|
|
281
|
+
* @see {@link module:table/tableconfig~TableColorConfig}
|
|
282
|
+
*/
|
|
229
283
|
backgroundColors?: TableColorConfig;
|
|
284
|
+
/**
|
|
285
|
+
* Default styles for newly created tables.
|
|
286
|
+
*
|
|
287
|
+
* ```ts
|
|
288
|
+
* const tableConfig = {
|
|
289
|
+
* tableProperties: {
|
|
290
|
+
* defaultProperties: {
|
|
291
|
+
* borderStyle: 'dashed',
|
|
292
|
+
* borderColor: 'hsl(0, 0%, 90%)',
|
|
293
|
+
* borderWidth: '3px',
|
|
294
|
+
* alignment: 'left',
|
|
295
|
+
* width: '550px',
|
|
296
|
+
* height: '450px'
|
|
297
|
+
* }
|
|
298
|
+
* }
|
|
299
|
+
* }
|
|
300
|
+
* ```
|
|
301
|
+
*
|
|
302
|
+
* **Note**: The model does not store the default values. The editor will only keep values that differ from the defaults.
|
|
303
|
+
*
|
|
304
|
+
* See {@link module:table/tableconfig~TablePropertiesOptions} for the full list of properties.
|
|
305
|
+
*/
|
|
230
306
|
defaultProperties?: TablePropertiesOptions;
|
|
307
|
+
/**
|
|
308
|
+
* Configuration of the table alignment behavior in the editor output.
|
|
309
|
+
*
|
|
310
|
+
* ```ts
|
|
311
|
+
* const tableConfig = {
|
|
312
|
+
* tableProperties: {
|
|
313
|
+
* alignment: {
|
|
314
|
+
* useInlineStyles: false // Use CSS classes instead of inline styles
|
|
315
|
+
* }
|
|
316
|
+
* }
|
|
317
|
+
* };
|
|
318
|
+
* ```
|
|
319
|
+
*/
|
|
320
|
+
alignment?: TableAlignmentConfig;
|
|
231
321
|
/**
|
|
232
322
|
* Configuration of the color picker in the table properties balloon.
|
|
233
323
|
*
|
|
@@ -276,8 +366,84 @@ export interface TablePropertiesOptions {
|
|
|
276
366
|
* The configuration of the table cell properties user interface (balloon).
|
|
277
367
|
*/
|
|
278
368
|
export interface TableCellPropertiesConfig {
|
|
369
|
+
/**
|
|
370
|
+
* The color palette for the table cell border color picker.
|
|
371
|
+
*
|
|
372
|
+
* ```ts
|
|
373
|
+
* const tableConfig = {
|
|
374
|
+
* tableCellProperties: {
|
|
375
|
+
* borderColors: [
|
|
376
|
+
* {
|
|
377
|
+
* color: 'hsl(0, 0%, 0%)',
|
|
378
|
+
* label: 'Black'
|
|
379
|
+
* },
|
|
380
|
+
* {
|
|
381
|
+
* color: 'hsl(0, 0%, 100%)',
|
|
382
|
+
* label: 'White',
|
|
383
|
+
* hasBorder: true
|
|
384
|
+
* }
|
|
385
|
+
* ]
|
|
386
|
+
* }
|
|
387
|
+
* };
|
|
388
|
+
* ```
|
|
389
|
+
*
|
|
390
|
+
* **Note**: This configuration only affects the UI. It does not limit or filter the colors in the data.
|
|
391
|
+
*
|
|
392
|
+
* Defaults to {@link module:table/utils/ui/table-properties#defaultColors}.
|
|
393
|
+
*
|
|
394
|
+
* @see {@link module:table/tableconfig~TableColorConfig}
|
|
395
|
+
*/
|
|
279
396
|
borderColors?: TableColorConfig;
|
|
397
|
+
/**
|
|
398
|
+
* The color palette for the table cell background color picker.
|
|
399
|
+
*
|
|
400
|
+
* ```ts
|
|
401
|
+
* const tableConfig = {
|
|
402
|
+
* tableCellProperties: {
|
|
403
|
+
* backgroundColors: [
|
|
404
|
+
* {
|
|
405
|
+
* color: 'hsl(0, 0%, 100%)',
|
|
406
|
+
* label: 'White',
|
|
407
|
+
* hasBorder: true
|
|
408
|
+
* },
|
|
409
|
+
* {
|
|
410
|
+
* color: 'hsl(120, 75%, 60%)',
|
|
411
|
+
* label: 'Green'
|
|
412
|
+
* }
|
|
413
|
+
* ]
|
|
414
|
+
* }
|
|
415
|
+
* };
|
|
416
|
+
* ```
|
|
417
|
+
*
|
|
418
|
+
* **Note**: This configuration only affects the UI. It does not limit or filter the colors in the data.
|
|
419
|
+
*
|
|
420
|
+
* Defaults to {@link module:table/utils/ui/table-properties#defaultColors}.
|
|
421
|
+
*
|
|
422
|
+
* @see {@link module:table/tableconfig~TableColorConfig}
|
|
423
|
+
*/
|
|
280
424
|
backgroundColors?: TableColorConfig;
|
|
425
|
+
/**
|
|
426
|
+
* Default styles for newly created table cells.
|
|
427
|
+
*
|
|
428
|
+
* ```ts
|
|
429
|
+
* const tableConfig = {
|
|
430
|
+
* tableCellProperties: {
|
|
431
|
+
* defaultProperties: {
|
|
432
|
+
* borderStyle: 'dashed',
|
|
433
|
+
* borderColor: 'hsl(0, 0%, 90%)',
|
|
434
|
+
* borderWidth: '3px',
|
|
435
|
+
* horizontalAlignment: 'center',
|
|
436
|
+
* verticalAlignment: 'middle',
|
|
437
|
+
* padding: '10px'
|
|
438
|
+
* }
|
|
439
|
+
* }
|
|
440
|
+
* }
|
|
441
|
+
* ```
|
|
442
|
+
*
|
|
443
|
+
* **Note**: The model does not store the default values. The editor will only keep values that differ from the defaults.
|
|
444
|
+
*
|
|
445
|
+
* See {@link module:table/tableconfig~TableCellPropertiesOptions} for the full list of properties.
|
|
446
|
+
*/
|
|
281
447
|
defaultProperties?: TableCellPropertiesOptions;
|
|
282
448
|
/**
|
|
283
449
|
* Configuration of the color picker in the table cell properties balloon.
|
|
@@ -433,3 +599,14 @@ export interface TableCaptionConfig {
|
|
|
433
599
|
* The type of the table.
|
|
434
600
|
*/
|
|
435
601
|
export type TableType = 'content' | 'layout';
|
|
602
|
+
export interface TableAlignmentConfig {
|
|
603
|
+
/**
|
|
604
|
+
* Whether to use inline styles for table alignment in the editor output.
|
|
605
|
+
*
|
|
606
|
+
* * When `true` (default), the alignment is rendered as inline styles.
|
|
607
|
+
* * When `false`, the alignment is rendered as CSS classes.
|
|
608
|
+
*
|
|
609
|
+
* @default true
|
|
610
|
+
*/
|
|
611
|
+
useInlineStyles?: boolean;
|
|
612
|
+
}
|
package/src/tableediting.d.ts
CHANGED
|
@@ -41,6 +41,11 @@ export declare class TableEditing extends Plugin {
|
|
|
41
41
|
* Registers downcast handler for the additional table slot.
|
|
42
42
|
*/
|
|
43
43
|
registerAdditionalSlot(slotHandler: TableConversionAdditionalSlot): void;
|
|
44
|
+
/**
|
|
45
|
+
* Adds converters for plain table output. These converters are used either when the `PlainTableOutput` plugin is loaded
|
|
46
|
+
* or when content is processed by the clipboard pipeline, ensuring that pasted tables are not wrapped in a <figure> element.
|
|
47
|
+
*/
|
|
48
|
+
private _addPlainTableOutputConverters;
|
|
44
49
|
}
|
|
45
50
|
/**
|
|
46
51
|
* By default, only the `tableRow` elements from the `table` model are downcast inside the `<table>` and
|
package/src/tableediting.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { Plugin } from 'ckeditor5/src/core.js';
|
|
9
9
|
import { upcastTable, ensureParagraphInTableCell, skipEmptyTableRow, upcastTableFigure } from './converters/upcasttable.js';
|
|
10
|
-
import { convertParagraphInTableCell, downcastCell, downcastRow, downcastTable } from './converters/downcast.js';
|
|
10
|
+
import { convertParagraphInTableCell, downcastCell, downcastRow, downcastTable, downcastTableBorderAndBackgroundAttributes, convertPlainTable, convertPlainTableCaption } from './converters/downcast.js';
|
|
11
11
|
import { InsertTableCommand } from './commands/inserttablecommand.js';
|
|
12
12
|
import { InsertRowCommand } from './commands/insertrowcommand.js';
|
|
13
13
|
import { InsertColumnCommand } from './commands/insertcolumncommand.js';
|
|
@@ -148,6 +148,8 @@ export class TableEditing extends Plugin {
|
|
|
148
148
|
model: { key: 'rowspan', value: upcastCellSpan('rowspan') },
|
|
149
149
|
view: 'rowspan'
|
|
150
150
|
});
|
|
151
|
+
// Plain table output converters (also used in the clipboard pipeline).
|
|
152
|
+
this._addPlainTableOutputConverters();
|
|
151
153
|
// Define the config.
|
|
152
154
|
editor.config.define('table.defaultHeadings.rows', 0);
|
|
153
155
|
editor.config.define('table.defaultHeadings.columns', 0);
|
|
@@ -183,6 +185,31 @@ export class TableEditing extends Plugin {
|
|
|
183
185
|
registerAdditionalSlot(slotHandler) {
|
|
184
186
|
this._additionalSlots.push(slotHandler);
|
|
185
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Adds converters for plain table output. These converters are used either when the `PlainTableOutput` plugin is loaded
|
|
190
|
+
* or when content is processed by the clipboard pipeline, ensuring that pasted tables are not wrapped in a <figure> element.
|
|
191
|
+
*/
|
|
192
|
+
_addPlainTableOutputConverters() {
|
|
193
|
+
const editor = this.editor;
|
|
194
|
+
// Override default table data downcast converter.
|
|
195
|
+
editor.conversion.for('dataDowncast').elementToStructure({
|
|
196
|
+
model: 'table',
|
|
197
|
+
view: convertPlainTable(editor),
|
|
198
|
+
converterPriority: 'high'
|
|
199
|
+
});
|
|
200
|
+
// Make sure table <caption> is downcasted into <caption> in the data pipeline when necessary.
|
|
201
|
+
if (editor.plugins.has('TableCaption')) {
|
|
202
|
+
editor.conversion.for('dataDowncast').elementToElement({
|
|
203
|
+
model: 'caption',
|
|
204
|
+
view: convertPlainTableCaption(editor),
|
|
205
|
+
converterPriority: 'high'
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
// Handle border-style, border-color, border-width and background-color table attributes.
|
|
209
|
+
if (editor.plugins.has('TableProperties')) {
|
|
210
|
+
downcastTableBorderAndBackgroundAttributes(editor);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
186
213
|
}
|
|
187
214
|
/**
|
|
188
215
|
* Returns fixed colspan and rowspan attrbutes values.
|
|
@@ -80,7 +80,7 @@ export class TableLayoutEditing extends Plugin {
|
|
|
80
80
|
const { editor } = this;
|
|
81
81
|
const { conversion } = editor;
|
|
82
82
|
const preferredExternalTableType = editor.config.get('table.tableLayout.preferredExternalTableType');
|
|
83
|
-
conversion.for('upcast').add(upcastLayoutTable(preferredExternalTableType));
|
|
83
|
+
conversion.for('upcast').add(upcastLayoutTable(editor, preferredExternalTableType));
|
|
84
84
|
conversion.for('dataDowncast').add(dataDowncastLayoutTable());
|
|
85
85
|
conversion.for('editingDowncast').attributeToAttribute({
|
|
86
86
|
model: {
|
|
@@ -176,9 +176,10 @@ export class TableLayoutEditing extends Plugin {
|
|
|
176
176
|
*
|
|
177
177
|
* This conversion helper overrides the default table converter to meet table layout conditions.
|
|
178
178
|
*
|
|
179
|
+
* @param editor Editor instance.
|
|
179
180
|
* @returns Conversion helper.
|
|
180
181
|
*/
|
|
181
|
-
function upcastLayoutTable(preferredExternalTableType) {
|
|
182
|
+
function upcastLayoutTable(editor, preferredExternalTableType) {
|
|
182
183
|
return (dispatcher) => {
|
|
183
184
|
dispatcher.on('element:table', (evt, data, conversionApi) => {
|
|
184
185
|
const viewTable = data.viewItem;
|
|
@@ -197,6 +198,11 @@ function upcastLayoutTable(preferredExternalTableType) {
|
|
|
197
198
|
conversionApi.consumable.consume(viewTable, { name: true });
|
|
198
199
|
conversionApi.consumable.consume(viewTable, { attributes: ['role'] });
|
|
199
200
|
conversionApi.consumable.consume(viewTable, { classes: ['layout-table'] });
|
|
201
|
+
// Layout tables have no border, so it's equitable to consume the border="0" attribute.
|
|
202
|
+
if (editor.config.get('experimentalFlags.upcastTableBorderZeroAttributes') &&
|
|
203
|
+
viewTable.getAttribute('border') === '0') {
|
|
204
|
+
conversionApi.consumable.consume(viewTable, { attributes: ['border'] });
|
|
205
|
+
}
|
|
200
206
|
// Get all rows from the table and convert them.
|
|
201
207
|
// While looping over the children of `<table>` we can be sure that first will be `<tbody>`
|
|
202
208
|
// and optionally `<thead>` and `<tfoot>`, and in these elements are the table rows found.
|