@ckeditor/ckeditor5-image 39.0.2 → 40.0.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.
- package/build/image.js +1 -1
- package/build/image.js.map +1 -0
- package/build/translations/pt-br.js +1 -1
- package/ckeditor5-metadata.json +12 -0
- package/lang/translations/pt-br.po +1 -1
- package/package.json +3 -3
- package/src/augmentation.d.ts +56 -55
- package/src/augmentation.js +5 -5
- package/src/autoimage.d.ts +52 -52
- package/src/autoimage.js +132 -132
- package/src/image/converters.d.ts +66 -66
- package/src/image/converters.js +232 -242
- package/src/image/imageblockediting.d.ts +58 -55
- package/src/image/imageblockediting.js +152 -136
- package/src/image/imageediting.d.ts +30 -30
- package/src/image/imageediting.js +63 -74
- package/src/image/imageinlineediting.d.ts +59 -56
- package/src/image/imageinlineediting.js +176 -160
- package/src/image/imageloadobserver.d.ts +48 -48
- package/src/image/imageloadobserver.js +52 -52
- package/src/image/imagetypecommand.d.ts +44 -40
- package/src/image/imagetypecommand.js +80 -77
- package/src/image/insertimagecommand.d.ts +66 -66
- package/src/image/insertimagecommand.js +120 -120
- package/src/image/replaceimagesourcecommand.d.ts +34 -34
- package/src/image/replaceimagesourcecommand.js +44 -44
- package/src/image/ui/utils.d.ts +25 -25
- package/src/image/ui/utils.js +44 -44
- package/src/image/utils.d.ts +64 -52
- package/src/image/utils.js +121 -100
- package/src/image.d.ts +34 -34
- package/src/image.js +38 -38
- package/src/imageblock.d.ts +33 -33
- package/src/imageblock.js +37 -37
- package/src/imagecaption/imagecaptionediting.d.ts +89 -89
- package/src/imagecaption/imagecaptionediting.js +225 -225
- package/src/imagecaption/imagecaptionui.d.ts +26 -26
- package/src/imagecaption/imagecaptionui.js +61 -61
- package/src/imagecaption/imagecaptionutils.d.ts +38 -38
- package/src/imagecaption/imagecaptionutils.js +62 -62
- package/src/imagecaption/toggleimagecaptioncommand.d.ts +66 -66
- package/src/imagecaption/toggleimagecaptioncommand.js +138 -138
- package/src/imagecaption.d.ts +26 -26
- package/src/imagecaption.js +30 -30
- package/src/imageconfig.d.ts +713 -713
- package/src/imageconfig.js +5 -5
- package/src/imageinline.d.ts +33 -33
- package/src/imageinline.js +37 -37
- package/src/imageinsert/imageinsertui.d.ts +44 -44
- package/src/imageinsert/imageinsertui.js +141 -141
- package/src/imageinsert/ui/imageinsertformrowview.d.ts +61 -61
- package/src/imageinsert/ui/imageinsertformrowview.js +54 -54
- package/src/imageinsert/ui/imageinsertpanelview.d.ts +106 -106
- package/src/imageinsert/ui/imageinsertpanelview.js +161 -161
- package/src/imageinsert/utils.d.ts +25 -25
- package/src/imageinsert/utils.js +58 -58
- package/src/imageinsert.d.ts +33 -33
- package/src/imageinsert.js +37 -37
- package/src/imageinsertviaurl.d.ts +30 -30
- package/src/imageinsertviaurl.js +34 -34
- package/src/imageresize/imageresizebuttons.d.ts +67 -67
- package/src/imageresize/imageresizebuttons.js +217 -217
- package/src/imageresize/imageresizeediting.d.ts +37 -37
- package/src/imageresize/imageresizeediting.js +165 -114
- package/src/imageresize/imageresizehandles.d.ts +31 -30
- package/src/imageresize/imageresizehandles.js +114 -107
- package/src/imageresize/resizeimagecommand.d.ts +42 -42
- package/src/imageresize/resizeimagecommand.js +63 -61
- package/src/imageresize.d.ts +27 -27
- package/src/imageresize.js +31 -31
- package/src/imagesizeattributes.d.ts +34 -0
- package/src/imagesizeattributes.js +143 -0
- package/src/imagestyle/converters.d.ts +24 -24
- package/src/imagestyle/converters.js +79 -79
- package/src/imagestyle/imagestylecommand.d.ts +68 -65
- package/src/imagestyle/imagestylecommand.js +107 -101
- package/src/imagestyle/imagestyleediting.d.ts +50 -50
- package/src/imagestyle/imagestyleediting.js +108 -108
- package/src/imagestyle/imagestyleui.d.ts +56 -56
- package/src/imagestyle/imagestyleui.js +192 -192
- package/src/imagestyle/utils.d.ts +101 -101
- package/src/imagestyle/utils.js +329 -329
- package/src/imagestyle.d.ts +32 -32
- package/src/imagestyle.js +36 -36
- package/src/imagetextalternative/imagetextalternativecommand.d.ts +34 -34
- package/src/imagetextalternative/imagetextalternativecommand.js +44 -44
- package/src/imagetextalternative/imagetextalternativeediting.d.ts +28 -28
- package/src/imagetextalternative/imagetextalternativeediting.js +35 -35
- package/src/imagetextalternative/imagetextalternativeui.d.ts +68 -68
- package/src/imagetextalternative/imagetextalternativeui.js +173 -173
- package/src/imagetextalternative/ui/textalternativeformview.d.ts +72 -72
- package/src/imagetextalternative/ui/textalternativeformview.js +121 -121
- package/src/imagetextalternative.d.ts +29 -29
- package/src/imagetextalternative.js +33 -33
- package/src/imagetoolbar.d.ts +35 -35
- package/src/imagetoolbar.js +57 -57
- package/src/imageupload/imageuploadediting.d.ts +111 -111
- package/src/imageupload/imageuploadediting.js +337 -335
- package/src/imageupload/imageuploadprogress.d.ts +42 -42
- package/src/imageupload/imageuploadprogress.js +211 -211
- package/src/imageupload/imageuploadui.d.ts +23 -23
- package/src/imageupload/imageuploadui.js +57 -57
- package/src/imageupload/uploadimagecommand.d.ts +60 -60
- package/src/imageupload/uploadimagecommand.js +100 -100
- package/src/imageupload/utils.d.ts +33 -33
- package/src/imageupload/utils.js +112 -112
- package/src/imageupload.d.ts +32 -32
- package/src/imageupload.js +36 -36
- package/src/imageutils.d.ts +125 -102
- package/src/imageutils.js +306 -248
- package/src/index.d.ts +48 -47
- package/src/index.js +39 -38
- package/src/pictureediting.d.ts +88 -88
- package/src/pictureediting.js +130 -130
- package/theme/image.css +38 -11
- package/theme/imageresize.css +5 -0
|
@@ -1,26 +1,26 @@
|
|
|
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 image/imagecaption/imagecaptionui
|
|
7
|
-
*/
|
|
8
|
-
import { Plugin } from 'ckeditor5/src/core';
|
|
9
|
-
import ImageCaptionUtils from './imagecaptionutils';
|
|
10
|
-
/**
|
|
11
|
-
* The image caption UI plugin. It introduces the `'toggleImageCaption'` UI button.
|
|
12
|
-
*/
|
|
13
|
-
export default class ImageCaptionUI extends Plugin {
|
|
14
|
-
/**
|
|
15
|
-
* @inheritDoc
|
|
16
|
-
*/
|
|
17
|
-
static get requires(): readonly [typeof ImageCaptionUtils];
|
|
18
|
-
/**
|
|
19
|
-
* @inheritDoc
|
|
20
|
-
*/
|
|
21
|
-
static get pluginName(): "ImageCaptionUI";
|
|
22
|
-
/**
|
|
23
|
-
* @inheritDoc
|
|
24
|
-
*/
|
|
25
|
-
init(): void;
|
|
26
|
-
}
|
|
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 image/imagecaption/imagecaptionui
|
|
7
|
+
*/
|
|
8
|
+
import { Plugin } from 'ckeditor5/src/core';
|
|
9
|
+
import ImageCaptionUtils from './imagecaptionutils';
|
|
10
|
+
/**
|
|
11
|
+
* The image caption UI plugin. It introduces the `'toggleImageCaption'` UI button.
|
|
12
|
+
*/
|
|
13
|
+
export default class ImageCaptionUI extends Plugin {
|
|
14
|
+
/**
|
|
15
|
+
* @inheritDoc
|
|
16
|
+
*/
|
|
17
|
+
static get requires(): readonly [typeof ImageCaptionUtils];
|
|
18
|
+
/**
|
|
19
|
+
* @inheritDoc
|
|
20
|
+
*/
|
|
21
|
+
static get pluginName(): "ImageCaptionUI";
|
|
22
|
+
/**
|
|
23
|
+
* @inheritDoc
|
|
24
|
+
*/
|
|
25
|
+
init(): void;
|
|
26
|
+
}
|
|
@@ -1,61 +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 image/imagecaption/imagecaptionui
|
|
7
|
-
*/
|
|
8
|
-
import { Plugin, icons } from 'ckeditor5/src/core';
|
|
9
|
-
import { ButtonView } from 'ckeditor5/src/ui';
|
|
10
|
-
import ImageCaptionUtils from './imagecaptionutils';
|
|
11
|
-
/**
|
|
12
|
-
* The image caption UI plugin. It introduces the `'toggleImageCaption'` UI button.
|
|
13
|
-
*/
|
|
14
|
-
export default class ImageCaptionUI extends Plugin {
|
|
15
|
-
/**
|
|
16
|
-
* @inheritDoc
|
|
17
|
-
*/
|
|
18
|
-
static get requires() {
|
|
19
|
-
return [ImageCaptionUtils];
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* @inheritDoc
|
|
23
|
-
*/
|
|
24
|
-
static get pluginName() {
|
|
25
|
-
return 'ImageCaptionUI';
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* @inheritDoc
|
|
29
|
-
*/
|
|
30
|
-
init() {
|
|
31
|
-
const editor = this.editor;
|
|
32
|
-
const editingView = editor.editing.view;
|
|
33
|
-
const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');
|
|
34
|
-
const t = editor.t;
|
|
35
|
-
editor.ui.componentFactory.add('toggleImageCaption', locale => {
|
|
36
|
-
const command = editor.commands.get('toggleImageCaption');
|
|
37
|
-
const view = new ButtonView(locale);
|
|
38
|
-
view.set({
|
|
39
|
-
icon: icons.caption,
|
|
40
|
-
tooltip: true,
|
|
41
|
-
isToggleable: true
|
|
42
|
-
});
|
|
43
|
-
view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');
|
|
44
|
-
view.bind('label').to(command, 'value', value => value ? t('Toggle caption off') : t('Toggle caption on'));
|
|
45
|
-
this.listenTo(view, 'execute', () => {
|
|
46
|
-
editor.execute('toggleImageCaption', { focusCaptionOnShow: true });
|
|
47
|
-
// Scroll to the selection and highlight the caption if the caption showed up.
|
|
48
|
-
const modelCaptionElement = imageCaptionUtils.getCaptionFromModelSelection(editor.model.document.selection);
|
|
49
|
-
if (modelCaptionElement) {
|
|
50
|
-
const figcaptionElement = editor.editing.mapper.toViewElement(modelCaptionElement);
|
|
51
|
-
editingView.scrollToTheSelection();
|
|
52
|
-
editingView.change(writer => {
|
|
53
|
-
writer.addClass('image__caption_highlighted', figcaptionElement);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
editor.editing.view.focus();
|
|
57
|
-
});
|
|
58
|
-
return view;
|
|
59
|
-
});
|
|
60
|
-
}
|
|
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 image/imagecaption/imagecaptionui
|
|
7
|
+
*/
|
|
8
|
+
import { Plugin, icons } from 'ckeditor5/src/core';
|
|
9
|
+
import { ButtonView } from 'ckeditor5/src/ui';
|
|
10
|
+
import ImageCaptionUtils from './imagecaptionutils';
|
|
11
|
+
/**
|
|
12
|
+
* The image caption UI plugin. It introduces the `'toggleImageCaption'` UI button.
|
|
13
|
+
*/
|
|
14
|
+
export default class ImageCaptionUI extends Plugin {
|
|
15
|
+
/**
|
|
16
|
+
* @inheritDoc
|
|
17
|
+
*/
|
|
18
|
+
static get requires() {
|
|
19
|
+
return [ImageCaptionUtils];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @inheritDoc
|
|
23
|
+
*/
|
|
24
|
+
static get pluginName() {
|
|
25
|
+
return 'ImageCaptionUI';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @inheritDoc
|
|
29
|
+
*/
|
|
30
|
+
init() {
|
|
31
|
+
const editor = this.editor;
|
|
32
|
+
const editingView = editor.editing.view;
|
|
33
|
+
const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');
|
|
34
|
+
const t = editor.t;
|
|
35
|
+
editor.ui.componentFactory.add('toggleImageCaption', locale => {
|
|
36
|
+
const command = editor.commands.get('toggleImageCaption');
|
|
37
|
+
const view = new ButtonView(locale);
|
|
38
|
+
view.set({
|
|
39
|
+
icon: icons.caption,
|
|
40
|
+
tooltip: true,
|
|
41
|
+
isToggleable: true
|
|
42
|
+
});
|
|
43
|
+
view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');
|
|
44
|
+
view.bind('label').to(command, 'value', value => value ? t('Toggle caption off') : t('Toggle caption on'));
|
|
45
|
+
this.listenTo(view, 'execute', () => {
|
|
46
|
+
editor.execute('toggleImageCaption', { focusCaptionOnShow: true });
|
|
47
|
+
// Scroll to the selection and highlight the caption if the caption showed up.
|
|
48
|
+
const modelCaptionElement = imageCaptionUtils.getCaptionFromModelSelection(editor.model.document.selection);
|
|
49
|
+
if (modelCaptionElement) {
|
|
50
|
+
const figcaptionElement = editor.editing.mapper.toViewElement(modelCaptionElement);
|
|
51
|
+
editingView.scrollToTheSelection();
|
|
52
|
+
editingView.change(writer => {
|
|
53
|
+
writer.addClass('image__caption_highlighted', figcaptionElement);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
editor.editing.view.focus();
|
|
57
|
+
});
|
|
58
|
+
return view;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -1,38 +1,38 @@
|
|
|
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 image/imagecaption/imagecaptionutils
|
|
7
|
-
*/
|
|
8
|
-
import type { DocumentSelection, Element, Selection, ViewElement, Match } from 'ckeditor5/src/engine';
|
|
9
|
-
import { Plugin } from 'ckeditor5/src/core';
|
|
10
|
-
import ImageUtils from '../imageutils';
|
|
11
|
-
/**
|
|
12
|
-
* The image caption utilities plugin.
|
|
13
|
-
*/
|
|
14
|
-
export default class ImageCaptionUtils extends Plugin {
|
|
15
|
-
/**
|
|
16
|
-
* @inheritDoc
|
|
17
|
-
*/
|
|
18
|
-
static get pluginName(): "ImageCaptionUtils";
|
|
19
|
-
/**
|
|
20
|
-
* @inheritDoc
|
|
21
|
-
*/
|
|
22
|
-
static get requires(): readonly [typeof ImageUtils];
|
|
23
|
-
/**
|
|
24
|
-
* Returns the caption model element from a given image element. Returns `null` if no caption is found.
|
|
25
|
-
*/
|
|
26
|
-
getCaptionFromImageModelElement(imageModelElement: Element): Element | null;
|
|
27
|
-
/**
|
|
28
|
-
* Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.
|
|
29
|
-
*/
|
|
30
|
-
getCaptionFromModelSelection(selection: Selection | DocumentSelection): Element | null;
|
|
31
|
-
/**
|
|
32
|
-
* {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a `<figcaption>` element that is placed
|
|
33
|
-
* inside the image `<figure>` element.
|
|
34
|
-
* @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element
|
|
35
|
-
* cannot be matched.
|
|
36
|
-
*/
|
|
37
|
-
matchImageCaptionViewElement(element: ViewElement): Match | null;
|
|
38
|
-
}
|
|
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 image/imagecaption/imagecaptionutils
|
|
7
|
+
*/
|
|
8
|
+
import type { DocumentSelection, Element, Selection, ViewElement, Match } from 'ckeditor5/src/engine';
|
|
9
|
+
import { Plugin } from 'ckeditor5/src/core';
|
|
10
|
+
import ImageUtils from '../imageutils';
|
|
11
|
+
/**
|
|
12
|
+
* The image caption utilities plugin.
|
|
13
|
+
*/
|
|
14
|
+
export default class ImageCaptionUtils extends Plugin {
|
|
15
|
+
/**
|
|
16
|
+
* @inheritDoc
|
|
17
|
+
*/
|
|
18
|
+
static get pluginName(): "ImageCaptionUtils";
|
|
19
|
+
/**
|
|
20
|
+
* @inheritDoc
|
|
21
|
+
*/
|
|
22
|
+
static get requires(): readonly [typeof ImageUtils];
|
|
23
|
+
/**
|
|
24
|
+
* Returns the caption model element from a given image element. Returns `null` if no caption is found.
|
|
25
|
+
*/
|
|
26
|
+
getCaptionFromImageModelElement(imageModelElement: Element): Element | null;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.
|
|
29
|
+
*/
|
|
30
|
+
getCaptionFromModelSelection(selection: Selection | DocumentSelection): Element | null;
|
|
31
|
+
/**
|
|
32
|
+
* {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a `<figcaption>` element that is placed
|
|
33
|
+
* inside the image `<figure>` element.
|
|
34
|
+
* @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element
|
|
35
|
+
* cannot be matched.
|
|
36
|
+
*/
|
|
37
|
+
matchImageCaptionViewElement(element: ViewElement): Match | null;
|
|
38
|
+
}
|
|
@@ -1,62 +1,62 @@
|
|
|
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
|
-
import { Plugin } from 'ckeditor5/src/core';
|
|
6
|
-
import ImageUtils from '../imageutils';
|
|
7
|
-
/**
|
|
8
|
-
* The image caption utilities plugin.
|
|
9
|
-
*/
|
|
10
|
-
export default class ImageCaptionUtils extends Plugin {
|
|
11
|
-
/**
|
|
12
|
-
* @inheritDoc
|
|
13
|
-
*/
|
|
14
|
-
static get pluginName() {
|
|
15
|
-
return 'ImageCaptionUtils';
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* @inheritDoc
|
|
19
|
-
*/
|
|
20
|
-
static get requires() {
|
|
21
|
-
return [ImageUtils];
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Returns the caption model element from a given image element. Returns `null` if no caption is found.
|
|
25
|
-
*/
|
|
26
|
-
getCaptionFromImageModelElement(imageModelElement) {
|
|
27
|
-
for (const node of imageModelElement.getChildren()) {
|
|
28
|
-
if (!!node && node.is('element', 'caption')) {
|
|
29
|
-
return node;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.
|
|
36
|
-
*/
|
|
37
|
-
getCaptionFromModelSelection(selection) {
|
|
38
|
-
const imageUtils = this.editor.plugins.get('ImageUtils');
|
|
39
|
-
const captionElement = selection.getFirstPosition().findAncestor('caption');
|
|
40
|
-
if (!captionElement) {
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
if (imageUtils.isBlockImage(captionElement.parent)) {
|
|
44
|
-
return captionElement;
|
|
45
|
-
}
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a `<figcaption>` element that is placed
|
|
50
|
-
* inside the image `<figure>` element.
|
|
51
|
-
* @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element
|
|
52
|
-
* cannot be matched.
|
|
53
|
-
*/
|
|
54
|
-
matchImageCaptionViewElement(element) {
|
|
55
|
-
const imageUtils = this.editor.plugins.get('ImageUtils');
|
|
56
|
-
// Convert only captions for images.
|
|
57
|
-
if (element.name == 'figcaption' && imageUtils.isBlockImageView(element.parent)) {
|
|
58
|
-
return { name: true };
|
|
59
|
-
}
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
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
|
+
import { Plugin } from 'ckeditor5/src/core';
|
|
6
|
+
import ImageUtils from '../imageutils';
|
|
7
|
+
/**
|
|
8
|
+
* The image caption utilities plugin.
|
|
9
|
+
*/
|
|
10
|
+
export default class ImageCaptionUtils extends Plugin {
|
|
11
|
+
/**
|
|
12
|
+
* @inheritDoc
|
|
13
|
+
*/
|
|
14
|
+
static get pluginName() {
|
|
15
|
+
return 'ImageCaptionUtils';
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @inheritDoc
|
|
19
|
+
*/
|
|
20
|
+
static get requires() {
|
|
21
|
+
return [ImageUtils];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns the caption model element from a given image element. Returns `null` if no caption is found.
|
|
25
|
+
*/
|
|
26
|
+
getCaptionFromImageModelElement(imageModelElement) {
|
|
27
|
+
for (const node of imageModelElement.getChildren()) {
|
|
28
|
+
if (!!node && node.is('element', 'caption')) {
|
|
29
|
+
return node;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.
|
|
36
|
+
*/
|
|
37
|
+
getCaptionFromModelSelection(selection) {
|
|
38
|
+
const imageUtils = this.editor.plugins.get('ImageUtils');
|
|
39
|
+
const captionElement = selection.getFirstPosition().findAncestor('caption');
|
|
40
|
+
if (!captionElement) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if (imageUtils.isBlockImage(captionElement.parent)) {
|
|
44
|
+
return captionElement;
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a `<figcaption>` element that is placed
|
|
50
|
+
* inside the image `<figure>` element.
|
|
51
|
+
* @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element
|
|
52
|
+
* cannot be matched.
|
|
53
|
+
*/
|
|
54
|
+
matchImageCaptionViewElement(element) {
|
|
55
|
+
const imageUtils = this.editor.plugins.get('ImageUtils');
|
|
56
|
+
// Convert only captions for images.
|
|
57
|
+
if (element.name == 'figcaption' && imageUtils.isBlockImageView(element.parent)) {
|
|
58
|
+
return { name: true };
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,66 +1,66 @@
|
|
|
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
|
-
import { Command } from 'ckeditor5/src/core';
|
|
6
|
-
/**
|
|
7
|
-
* The toggle image caption command.
|
|
8
|
-
*
|
|
9
|
-
* This command is registered by {@link module:image/imagecaption/imagecaptionediting~ImageCaptionEditing} as the
|
|
10
|
-
* `'toggleImageCaption'` editor command.
|
|
11
|
-
*
|
|
12
|
-
* Executing this command:
|
|
13
|
-
*
|
|
14
|
-
* * either adds or removes the image caption of a selected image (depending on whether the caption is present or not),
|
|
15
|
-
* * removes the image caption if the selection is anchored in one.
|
|
16
|
-
*
|
|
17
|
-
* ```ts
|
|
18
|
-
* // Toggle the presence of the caption.
|
|
19
|
-
* editor.execute( 'toggleImageCaption' );
|
|
20
|
-
* ```
|
|
21
|
-
*
|
|
22
|
-
* **Note**: Upon executing this command, the selection will be set on the image if previously anchored in the caption element.
|
|
23
|
-
*
|
|
24
|
-
* **Note**: You can move the selection to the caption right away as it shows up upon executing this command by using
|
|
25
|
-
* the `focusCaptionOnShow` option:
|
|
26
|
-
*
|
|
27
|
-
* ```ts
|
|
28
|
-
* editor.execute( 'toggleImageCaption', { focusCaptionOnShow: true } );
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
export default class ToggleImageCaptionCommand extends Command {
|
|
32
|
-
value: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* @inheritDoc
|
|
35
|
-
*/
|
|
36
|
-
refresh(): void;
|
|
37
|
-
/**
|
|
38
|
-
* Executes the command.
|
|
39
|
-
*
|
|
40
|
-
* ```ts
|
|
41
|
-
* editor.execute( 'toggleImageCaption' );
|
|
42
|
-
* ```
|
|
43
|
-
*
|
|
44
|
-
* @param options Options for the executed command.
|
|
45
|
-
* @param options.focusCaptionOnShow When true and the caption shows up, the selection will be moved into it straight away.
|
|
46
|
-
* @fires execute
|
|
47
|
-
*/
|
|
48
|
-
execute(options?: {
|
|
49
|
-
focusCaptionOnShow?: boolean;
|
|
50
|
-
}): void;
|
|
51
|
-
/**
|
|
52
|
-
* Shows the caption of the `<imageBlock>` or `<imageInline>`. Also:
|
|
53
|
-
*
|
|
54
|
-
* * it converts `<imageInline>` to `<imageBlock>` to show the caption,
|
|
55
|
-
* * it attempts to restore the caption content from the `ImageCaptionEditing` caption registry,
|
|
56
|
-
* * it moves the selection to the caption right away, it the `focusCaptionOnShow` option was set.
|
|
57
|
-
*/
|
|
58
|
-
private _showImageCaption;
|
|
59
|
-
/**
|
|
60
|
-
* Hides the caption of a selected image (or an image caption the selection is anchored to).
|
|
61
|
-
*
|
|
62
|
-
* The content of the caption is stored in the `ImageCaptionEditing` caption registry to make this
|
|
63
|
-
* a reversible action.
|
|
64
|
-
*/
|
|
65
|
-
private _hideImageCaption;
|
|
66
|
-
}
|
|
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
|
+
import { Command } from 'ckeditor5/src/core';
|
|
6
|
+
/**
|
|
7
|
+
* The toggle image caption command.
|
|
8
|
+
*
|
|
9
|
+
* This command is registered by {@link module:image/imagecaption/imagecaptionediting~ImageCaptionEditing} as the
|
|
10
|
+
* `'toggleImageCaption'` editor command.
|
|
11
|
+
*
|
|
12
|
+
* Executing this command:
|
|
13
|
+
*
|
|
14
|
+
* * either adds or removes the image caption of a selected image (depending on whether the caption is present or not),
|
|
15
|
+
* * removes the image caption if the selection is anchored in one.
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* // Toggle the presence of the caption.
|
|
19
|
+
* editor.execute( 'toggleImageCaption' );
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* **Note**: Upon executing this command, the selection will be set on the image if previously anchored in the caption element.
|
|
23
|
+
*
|
|
24
|
+
* **Note**: You can move the selection to the caption right away as it shows up upon executing this command by using
|
|
25
|
+
* the `focusCaptionOnShow` option:
|
|
26
|
+
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* editor.execute( 'toggleImageCaption', { focusCaptionOnShow: true } );
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export default class ToggleImageCaptionCommand extends Command {
|
|
32
|
+
value: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* @inheritDoc
|
|
35
|
+
*/
|
|
36
|
+
refresh(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Executes the command.
|
|
39
|
+
*
|
|
40
|
+
* ```ts
|
|
41
|
+
* editor.execute( 'toggleImageCaption' );
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @param options Options for the executed command.
|
|
45
|
+
* @param options.focusCaptionOnShow When true and the caption shows up, the selection will be moved into it straight away.
|
|
46
|
+
* @fires execute
|
|
47
|
+
*/
|
|
48
|
+
execute(options?: {
|
|
49
|
+
focusCaptionOnShow?: boolean;
|
|
50
|
+
}): void;
|
|
51
|
+
/**
|
|
52
|
+
* Shows the caption of the `<imageBlock>` or `<imageInline>`. Also:
|
|
53
|
+
*
|
|
54
|
+
* * it converts `<imageInline>` to `<imageBlock>` to show the caption,
|
|
55
|
+
* * it attempts to restore the caption content from the `ImageCaptionEditing` caption registry,
|
|
56
|
+
* * it moves the selection to the caption right away, it the `focusCaptionOnShow` option was set.
|
|
57
|
+
*/
|
|
58
|
+
private _showImageCaption;
|
|
59
|
+
/**
|
|
60
|
+
* Hides the caption of a selected image (or an image caption the selection is anchored to).
|
|
61
|
+
*
|
|
62
|
+
* The content of the caption is stored in the `ImageCaptionEditing` caption registry to make this
|
|
63
|
+
* a reversible action.
|
|
64
|
+
*/
|
|
65
|
+
private _hideImageCaption;
|
|
66
|
+
}
|