@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.
Files changed (116) hide show
  1. package/build/image.js +1 -1
  2. package/build/image.js.map +1 -0
  3. package/build/translations/pt-br.js +1 -1
  4. package/ckeditor5-metadata.json +12 -0
  5. package/lang/translations/pt-br.po +1 -1
  6. package/package.json +3 -3
  7. package/src/augmentation.d.ts +56 -55
  8. package/src/augmentation.js +5 -5
  9. package/src/autoimage.d.ts +52 -52
  10. package/src/autoimage.js +132 -132
  11. package/src/image/converters.d.ts +66 -66
  12. package/src/image/converters.js +232 -242
  13. package/src/image/imageblockediting.d.ts +58 -55
  14. package/src/image/imageblockediting.js +152 -136
  15. package/src/image/imageediting.d.ts +30 -30
  16. package/src/image/imageediting.js +63 -74
  17. package/src/image/imageinlineediting.d.ts +59 -56
  18. package/src/image/imageinlineediting.js +176 -160
  19. package/src/image/imageloadobserver.d.ts +48 -48
  20. package/src/image/imageloadobserver.js +52 -52
  21. package/src/image/imagetypecommand.d.ts +44 -40
  22. package/src/image/imagetypecommand.js +80 -77
  23. package/src/image/insertimagecommand.d.ts +66 -66
  24. package/src/image/insertimagecommand.js +120 -120
  25. package/src/image/replaceimagesourcecommand.d.ts +34 -34
  26. package/src/image/replaceimagesourcecommand.js +44 -44
  27. package/src/image/ui/utils.d.ts +25 -25
  28. package/src/image/ui/utils.js +44 -44
  29. package/src/image/utils.d.ts +64 -52
  30. package/src/image/utils.js +121 -100
  31. package/src/image.d.ts +34 -34
  32. package/src/image.js +38 -38
  33. package/src/imageblock.d.ts +33 -33
  34. package/src/imageblock.js +37 -37
  35. package/src/imagecaption/imagecaptionediting.d.ts +89 -89
  36. package/src/imagecaption/imagecaptionediting.js +225 -225
  37. package/src/imagecaption/imagecaptionui.d.ts +26 -26
  38. package/src/imagecaption/imagecaptionui.js +61 -61
  39. package/src/imagecaption/imagecaptionutils.d.ts +38 -38
  40. package/src/imagecaption/imagecaptionutils.js +62 -62
  41. package/src/imagecaption/toggleimagecaptioncommand.d.ts +66 -66
  42. package/src/imagecaption/toggleimagecaptioncommand.js +138 -138
  43. package/src/imagecaption.d.ts +26 -26
  44. package/src/imagecaption.js +30 -30
  45. package/src/imageconfig.d.ts +713 -713
  46. package/src/imageconfig.js +5 -5
  47. package/src/imageinline.d.ts +33 -33
  48. package/src/imageinline.js +37 -37
  49. package/src/imageinsert/imageinsertui.d.ts +44 -44
  50. package/src/imageinsert/imageinsertui.js +141 -141
  51. package/src/imageinsert/ui/imageinsertformrowview.d.ts +61 -61
  52. package/src/imageinsert/ui/imageinsertformrowview.js +54 -54
  53. package/src/imageinsert/ui/imageinsertpanelview.d.ts +106 -106
  54. package/src/imageinsert/ui/imageinsertpanelview.js +161 -161
  55. package/src/imageinsert/utils.d.ts +25 -25
  56. package/src/imageinsert/utils.js +58 -58
  57. package/src/imageinsert.d.ts +33 -33
  58. package/src/imageinsert.js +37 -37
  59. package/src/imageinsertviaurl.d.ts +30 -30
  60. package/src/imageinsertviaurl.js +34 -34
  61. package/src/imageresize/imageresizebuttons.d.ts +67 -67
  62. package/src/imageresize/imageresizebuttons.js +217 -217
  63. package/src/imageresize/imageresizeediting.d.ts +37 -37
  64. package/src/imageresize/imageresizeediting.js +165 -114
  65. package/src/imageresize/imageresizehandles.d.ts +31 -30
  66. package/src/imageresize/imageresizehandles.js +114 -107
  67. package/src/imageresize/resizeimagecommand.d.ts +42 -42
  68. package/src/imageresize/resizeimagecommand.js +63 -61
  69. package/src/imageresize.d.ts +27 -27
  70. package/src/imageresize.js +31 -31
  71. package/src/imagesizeattributes.d.ts +34 -0
  72. package/src/imagesizeattributes.js +143 -0
  73. package/src/imagestyle/converters.d.ts +24 -24
  74. package/src/imagestyle/converters.js +79 -79
  75. package/src/imagestyle/imagestylecommand.d.ts +68 -65
  76. package/src/imagestyle/imagestylecommand.js +107 -101
  77. package/src/imagestyle/imagestyleediting.d.ts +50 -50
  78. package/src/imagestyle/imagestyleediting.js +108 -108
  79. package/src/imagestyle/imagestyleui.d.ts +56 -56
  80. package/src/imagestyle/imagestyleui.js +192 -192
  81. package/src/imagestyle/utils.d.ts +101 -101
  82. package/src/imagestyle/utils.js +329 -329
  83. package/src/imagestyle.d.ts +32 -32
  84. package/src/imagestyle.js +36 -36
  85. package/src/imagetextalternative/imagetextalternativecommand.d.ts +34 -34
  86. package/src/imagetextalternative/imagetextalternativecommand.js +44 -44
  87. package/src/imagetextalternative/imagetextalternativeediting.d.ts +28 -28
  88. package/src/imagetextalternative/imagetextalternativeediting.js +35 -35
  89. package/src/imagetextalternative/imagetextalternativeui.d.ts +68 -68
  90. package/src/imagetextalternative/imagetextalternativeui.js +173 -173
  91. package/src/imagetextalternative/ui/textalternativeformview.d.ts +72 -72
  92. package/src/imagetextalternative/ui/textalternativeformview.js +121 -121
  93. package/src/imagetextalternative.d.ts +29 -29
  94. package/src/imagetextalternative.js +33 -33
  95. package/src/imagetoolbar.d.ts +35 -35
  96. package/src/imagetoolbar.js +57 -57
  97. package/src/imageupload/imageuploadediting.d.ts +111 -111
  98. package/src/imageupload/imageuploadediting.js +337 -335
  99. package/src/imageupload/imageuploadprogress.d.ts +42 -42
  100. package/src/imageupload/imageuploadprogress.js +211 -211
  101. package/src/imageupload/imageuploadui.d.ts +23 -23
  102. package/src/imageupload/imageuploadui.js +57 -57
  103. package/src/imageupload/uploadimagecommand.d.ts +60 -60
  104. package/src/imageupload/uploadimagecommand.js +100 -100
  105. package/src/imageupload/utils.d.ts +33 -33
  106. package/src/imageupload/utils.js +112 -112
  107. package/src/imageupload.d.ts +32 -32
  108. package/src/imageupload.js +36 -36
  109. package/src/imageutils.d.ts +125 -102
  110. package/src/imageutils.js +306 -248
  111. package/src/index.d.ts +48 -47
  112. package/src/index.js +39 -38
  113. package/src/pictureediting.d.ts +88 -88
  114. package/src/pictureediting.js +130 -130
  115. package/theme/image.css +38 -11
  116. package/theme/imageresize.css +5 -0
@@ -1,42 +1,42 @@
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/imageresize/resizeimagecommand
7
- */
8
- import { Command } from 'ckeditor5/src/core';
9
- /**
10
- * The resize image command. Currently, it only supports the width attribute.
11
- */
12
- export default class ResizeImageCommand extends Command {
13
- /**
14
- * Desired image width and height.
15
- */
16
- value: null | {
17
- width: string | null;
18
- height: string | null;
19
- };
20
- /**
21
- * @inheritDoc
22
- */
23
- refresh(): void;
24
- /**
25
- * Executes the command.
26
- *
27
- * ```ts
28
- * // Sets the width to 50%:
29
- * editor.execute( 'resizeImage', { width: '50%' } );
30
- *
31
- * // Removes the width attribute:
32
- * editor.execute( 'resizeImage', { width: null } );
33
- * ```
34
- *
35
- * @param options
36
- * @param options.width The new width of the image.
37
- * @fires execute
38
- */
39
- execute(options: {
40
- width: string | null;
41
- }): void;
42
- }
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/imageresize/resizeimagecommand
7
+ */
8
+ import { Command } from 'ckeditor5/src/core';
9
+ /**
10
+ * The resize image command. Currently, it only supports the width attribute.
11
+ */
12
+ export default class ResizeImageCommand extends Command {
13
+ /**
14
+ * Desired image width and height.
15
+ */
16
+ value: null | {
17
+ width: string | null;
18
+ height: string | null;
19
+ };
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ refresh(): void;
24
+ /**
25
+ * Executes the command.
26
+ *
27
+ * ```ts
28
+ * // Sets the width to 50%:
29
+ * editor.execute( 'resizeImage', { width: '50%' } );
30
+ *
31
+ * // Removes the width attribute:
32
+ * editor.execute( 'resizeImage', { width: null } );
33
+ * ```
34
+ *
35
+ * @param options
36
+ * @param options.width The new width of the image.
37
+ * @fires execute
38
+ */
39
+ execute(options: {
40
+ width: string | null;
41
+ }): void;
42
+ }
@@ -1,61 +1,63 @@
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/imageresize/resizeimagecommand
7
- */
8
- import { Command } from 'ckeditor5/src/core';
9
- /**
10
- * The resize image command. Currently, it only supports the width attribute.
11
- */
12
- export default class ResizeImageCommand extends Command {
13
- /**
14
- * @inheritDoc
15
- */
16
- refresh() {
17
- const editor = this.editor;
18
- const imageUtils = editor.plugins.get('ImageUtils');
19
- const element = imageUtils.getClosestSelectedImageElement(editor.model.document.selection);
20
- this.isEnabled = !!element;
21
- if (!element || !element.hasAttribute('width')) {
22
- this.value = null;
23
- }
24
- else {
25
- this.value = {
26
- width: element.getAttribute('width'),
27
- height: null
28
- };
29
- }
30
- }
31
- /**
32
- * Executes the command.
33
- *
34
- * ```ts
35
- * // Sets the width to 50%:
36
- * editor.execute( 'resizeImage', { width: '50%' } );
37
- *
38
- * // Removes the width attribute:
39
- * editor.execute( 'resizeImage', { width: null } );
40
- * ```
41
- *
42
- * @param options
43
- * @param options.width The new width of the image.
44
- * @fires execute
45
- */
46
- execute(options) {
47
- const editor = this.editor;
48
- const model = editor.model;
49
- const imageUtils = editor.plugins.get('ImageUtils');
50
- const imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);
51
- this.value = {
52
- width: options.width,
53
- height: null
54
- };
55
- if (imageElement) {
56
- model.change(writer => {
57
- writer.setAttribute('width', options.width, imageElement);
58
- });
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/imageresize/resizeimagecommand
7
+ */
8
+ import { Command } from 'ckeditor5/src/core';
9
+ /**
10
+ * The resize image command. Currently, it only supports the width attribute.
11
+ */
12
+ export default class ResizeImageCommand extends Command {
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ refresh() {
17
+ const editor = this.editor;
18
+ const imageUtils = editor.plugins.get('ImageUtils');
19
+ const element = imageUtils.getClosestSelectedImageElement(editor.model.document.selection);
20
+ this.isEnabled = !!element;
21
+ if (!element || !element.hasAttribute('resizedWidth')) {
22
+ this.value = null;
23
+ }
24
+ else {
25
+ this.value = {
26
+ width: element.getAttribute('resizedWidth'),
27
+ height: null
28
+ };
29
+ }
30
+ }
31
+ /**
32
+ * Executes the command.
33
+ *
34
+ * ```ts
35
+ * // Sets the width to 50%:
36
+ * editor.execute( 'resizeImage', { width: '50%' } );
37
+ *
38
+ * // Removes the width attribute:
39
+ * editor.execute( 'resizeImage', { width: null } );
40
+ * ```
41
+ *
42
+ * @param options
43
+ * @param options.width The new width of the image.
44
+ * @fires execute
45
+ */
46
+ execute(options) {
47
+ const editor = this.editor;
48
+ const model = editor.model;
49
+ const imageUtils = editor.plugins.get('ImageUtils');
50
+ const imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);
51
+ this.value = {
52
+ width: options.width,
53
+ height: null
54
+ };
55
+ if (imageElement) {
56
+ model.change(writer => {
57
+ writer.setAttribute('resizedWidth', options.width, imageElement);
58
+ writer.removeAttribute('resizedHeight', imageElement);
59
+ imageUtils.setImageNaturalSizeAttributes(imageElement);
60
+ });
61
+ }
62
+ }
63
+ }
@@ -1,27 +1,27 @@
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/imageresize
7
- */
8
- import { Plugin } from 'ckeditor5/src/core';
9
- import ImageResizeButtons from './imageresize/imageresizebuttons';
10
- import ImageResizeEditing from './imageresize/imageresizeediting';
11
- import ImageResizeHandles from './imageresize/imageresizehandles';
12
- import '../theme/imageresize.css';
13
- /**
14
- * The image resize plugin.
15
- *
16
- * It adds a possibility to resize each image using handles.
17
- */
18
- export default class ImageResize extends Plugin {
19
- /**
20
- * @inheritDoc
21
- */
22
- static get requires(): readonly [typeof ImageResizeEditing, typeof ImageResizeHandles, typeof ImageResizeButtons];
23
- /**
24
- * @inheritDoc
25
- */
26
- static get pluginName(): "ImageResize";
27
- }
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/imageresize
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core';
9
+ import ImageResizeButtons from './imageresize/imageresizebuttons';
10
+ import ImageResizeEditing from './imageresize/imageresizeediting';
11
+ import ImageResizeHandles from './imageresize/imageresizehandles';
12
+ import '../theme/imageresize.css';
13
+ /**
14
+ * The image resize plugin.
15
+ *
16
+ * It adds a possibility to resize each image using handles.
17
+ */
18
+ export default class ImageResize extends Plugin {
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ static get requires(): readonly [typeof ImageResizeEditing, typeof ImageResizeHandles, typeof ImageResizeButtons];
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ static get pluginName(): "ImageResize";
27
+ }
@@ -1,31 +1,31 @@
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/imageresize
7
- */
8
- import { Plugin } from 'ckeditor5/src/core';
9
- import ImageResizeButtons from './imageresize/imageresizebuttons';
10
- import ImageResizeEditing from './imageresize/imageresizeediting';
11
- import ImageResizeHandles from './imageresize/imageresizehandles';
12
- import '../theme/imageresize.css';
13
- /**
14
- * The image resize plugin.
15
- *
16
- * It adds a possibility to resize each image using handles.
17
- */
18
- export default class ImageResize extends Plugin {
19
- /**
20
- * @inheritDoc
21
- */
22
- static get requires() {
23
- return [ImageResizeEditing, ImageResizeHandles, ImageResizeButtons];
24
- }
25
- /**
26
- * @inheritDoc
27
- */
28
- static get pluginName() {
29
- return 'ImageResize';
30
- }
31
- }
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/imageresize
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core';
9
+ import ImageResizeButtons from './imageresize/imageresizebuttons';
10
+ import ImageResizeEditing from './imageresize/imageresizeediting';
11
+ import ImageResizeHandles from './imageresize/imageresizehandles';
12
+ import '../theme/imageresize.css';
13
+ /**
14
+ * The image resize plugin.
15
+ *
16
+ * It adds a possibility to resize each image using handles.
17
+ */
18
+ export default class ImageResize extends Plugin {
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ static get requires() {
23
+ return [ImageResizeEditing, ImageResizeHandles, ImageResizeButtons];
24
+ }
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ static get pluginName() {
29
+ return 'ImageResize';
30
+ }
31
+ }
@@ -0,0 +1,34 @@
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/imagesizeattributes
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core';
9
+ import ImageUtils from './imageutils';
10
+ /**
11
+ * This plugin enables `width` and `height` attributes in inline and block image elements.
12
+ */
13
+ export default class ImageSizeAttributes extends Plugin {
14
+ /**
15
+ * @inheritDoc
16
+ */
17
+ static get requires(): readonly [typeof ImageUtils];
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ static get pluginName(): "ImageSizeAttributes";
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ afterInit(): void;
26
+ /**
27
+ * Registers the `width` and `height` attributes for inline and block images.
28
+ */
29
+ private _registerSchema;
30
+ /**
31
+ * Registers converters for `width` and `height` attributes.
32
+ */
33
+ private _registerConverters;
34
+ }
@@ -0,0 +1,143 @@
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/imagesizeattributes
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core';
9
+ import ImageUtils from './imageutils';
10
+ import { widthAndHeightStylesAreBothSet, getSizeValueIfInPx } from './image/utils';
11
+ /**
12
+ * This plugin enables `width` and `height` attributes in inline and block image elements.
13
+ */
14
+ export default class ImageSizeAttributes extends Plugin {
15
+ /**
16
+ * @inheritDoc
17
+ */
18
+ static get requires() {
19
+ return [ImageUtils];
20
+ }
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ static get pluginName() {
25
+ return 'ImageSizeAttributes';
26
+ }
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ afterInit() {
31
+ this._registerSchema();
32
+ this._registerConverters('imageBlock');
33
+ this._registerConverters('imageInline');
34
+ }
35
+ /**
36
+ * Registers the `width` and `height` attributes for inline and block images.
37
+ */
38
+ _registerSchema() {
39
+ if (this.editor.plugins.has('ImageBlockEditing')) {
40
+ this.editor.model.schema.extend('imageBlock', { allowAttributes: ['width', 'height'] });
41
+ }
42
+ if (this.editor.plugins.has('ImageInlineEditing')) {
43
+ this.editor.model.schema.extend('imageInline', { allowAttributes: ['width', 'height'] });
44
+ }
45
+ }
46
+ /**
47
+ * Registers converters for `width` and `height` attributes.
48
+ */
49
+ _registerConverters(imageType) {
50
+ const editor = this.editor;
51
+ const imageUtils = editor.plugins.get('ImageUtils');
52
+ const viewElementName = imageType === 'imageBlock' ? 'figure' : 'img';
53
+ editor.conversion.for('upcast')
54
+ .attributeToAttribute({
55
+ view: {
56
+ name: viewElementName,
57
+ styles: {
58
+ width: /.+/
59
+ }
60
+ },
61
+ model: {
62
+ key: 'width',
63
+ value: (viewElement) => {
64
+ if (widthAndHeightStylesAreBothSet(viewElement)) {
65
+ return getSizeValueIfInPx(viewElement.getStyle('width'));
66
+ }
67
+ return null;
68
+ }
69
+ }
70
+ })
71
+ .attributeToAttribute({
72
+ view: {
73
+ name: viewElementName,
74
+ key: 'width'
75
+ },
76
+ model: 'width'
77
+ })
78
+ .attributeToAttribute({
79
+ view: {
80
+ name: viewElementName,
81
+ styles: {
82
+ height: /.+/
83
+ }
84
+ },
85
+ model: {
86
+ key: 'height',
87
+ value: (viewElement) => {
88
+ if (widthAndHeightStylesAreBothSet(viewElement)) {
89
+ return getSizeValueIfInPx(viewElement.getStyle('height'));
90
+ }
91
+ return null;
92
+ }
93
+ }
94
+ })
95
+ .attributeToAttribute({
96
+ view: {
97
+ name: viewElementName,
98
+ key: 'height'
99
+ },
100
+ model: 'height'
101
+ });
102
+ // Dedicated converters to propagate attributes to the <img> element.
103
+ editor.conversion.for('editingDowncast').add(dispatcher => {
104
+ attachDowncastConverter(dispatcher, 'width', 'width', true);
105
+ attachDowncastConverter(dispatcher, 'height', 'height', true);
106
+ });
107
+ editor.conversion.for('dataDowncast').add(dispatcher => {
108
+ attachDowncastConverter(dispatcher, 'width', 'width', false);
109
+ attachDowncastConverter(dispatcher, 'height', 'height', false);
110
+ });
111
+ function attachDowncastConverter(dispatcher, modelAttributeName, viewAttributeName, setRatioForInlineImage) {
112
+ dispatcher.on(`attribute:${modelAttributeName}:${imageType}`, (evt, data, conversionApi) => {
113
+ if (!conversionApi.consumable.consume(data.item, evt.name)) {
114
+ return;
115
+ }
116
+ const viewWriter = conversionApi.writer;
117
+ const viewElement = conversionApi.mapper.toViewElement(data.item);
118
+ const img = imageUtils.findViewImgElement(viewElement);
119
+ if (data.attributeNewValue !== null) {
120
+ viewWriter.setAttribute(viewAttributeName, data.attributeNewValue, img);
121
+ }
122
+ else {
123
+ viewWriter.removeAttribute(viewAttributeName, img);
124
+ }
125
+ // Do not set aspect-ratio for pictures. See https://github.com/ckeditor/ckeditor5/issues/14579.
126
+ if (data.item.hasAttribute('sources')) {
127
+ return;
128
+ }
129
+ const isResized = data.item.hasAttribute('resizedWidth');
130
+ // Do not set aspect ratio for inline images which are not resized (data pipeline).
131
+ if (imageType === 'imageInline' && !isResized && !setRatioForInlineImage) {
132
+ return;
133
+ }
134
+ const width = data.item.getAttribute('width');
135
+ const height = data.item.getAttribute('height');
136
+ const aspectRatio = img.getStyle('aspect-ratio');
137
+ if (width && height && !aspectRatio) {
138
+ viewWriter.setStyle('aspect-ratio', `${width}/${height}`, img);
139
+ }
140
+ });
141
+ }
142
+ }
143
+ }
@@ -1,24 +1,24 @@
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 type { DowncastAttributeEvent, UpcastElementEvent } from 'ckeditor5/src/engine';
6
- import { type GetCallback } from 'ckeditor5/src/utils';
7
- import type { ImageStyleOptionDefinition } from '../imageconfig';
8
- /**
9
- * @module image/imagestyle/converters
10
- */
11
- /**
12
- * Returns a converter for the `imageStyle` attribute. It can be used for adding, changing and removing the attribute.
13
- *
14
- * @param styles An array containing available image style options.
15
- * @returns A model-to-view attribute converter.
16
- */
17
- export declare function modelToViewStyleAttribute(styles: Array<ImageStyleOptionDefinition>): GetCallback<DowncastAttributeEvent>;
18
- /**
19
- * Returns a view-to-model converter converting image CSS classes to a proper value in the model.
20
- *
21
- * @param styles Image style options for which the converter is created.
22
- * @returns A view-to-model converter.
23
- */
24
- export declare function viewToModelStyleAttribute(styles: Array<ImageStyleOptionDefinition>): GetCallback<UpcastElementEvent>;
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 type { DowncastAttributeEvent, UpcastElementEvent } from 'ckeditor5/src/engine';
6
+ import { type GetCallback } from 'ckeditor5/src/utils';
7
+ import type { ImageStyleOptionDefinition } from '../imageconfig';
8
+ /**
9
+ * @module image/imagestyle/converters
10
+ */
11
+ /**
12
+ * Returns a converter for the `imageStyle` attribute. It can be used for adding, changing and removing the attribute.
13
+ *
14
+ * @param styles An array containing available image style options.
15
+ * @returns A model-to-view attribute converter.
16
+ */
17
+ export declare function modelToViewStyleAttribute(styles: Array<ImageStyleOptionDefinition>): GetCallback<DowncastAttributeEvent>;
18
+ /**
19
+ * Returns a view-to-model converter converting image CSS classes to a proper value in the model.
20
+ *
21
+ * @param styles Image style options for which the converter is created.
22
+ * @returns A view-to-model converter.
23
+ */
24
+ export declare function viewToModelStyleAttribute(styles: Array<ImageStyleOptionDefinition>): GetCallback<UpcastElementEvent>;