@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,108 +1,108 @@
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/imagestyle/imagestyleediting
7
- */
8
- import { Plugin } from 'ckeditor5/src/core';
9
- import ImageStyleCommand from './imagestylecommand';
10
- import ImageUtils from '../imageutils';
11
- import utils from './utils';
12
- import { viewToModelStyleAttribute, modelToViewStyleAttribute } from './converters';
13
- /**
14
- * The image style engine plugin. It sets the default configuration, creates converters and registers
15
- * {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand ImageStyleCommand}.
16
- */
17
- export default class ImageStyleEditing extends Plugin {
18
- /**
19
- * @inheritDoc
20
- */
21
- static get pluginName() {
22
- return 'ImageStyleEditing';
23
- }
24
- /**
25
- * @inheritDoc
26
- */
27
- static get requires() {
28
- return [ImageUtils];
29
- }
30
- /**
31
- * @inheritDoc
32
- */
33
- init() {
34
- const { normalizeStyles, getDefaultStylesConfiguration } = utils;
35
- const editor = this.editor;
36
- const isBlockPluginLoaded = editor.plugins.has('ImageBlockEditing');
37
- const isInlinePluginLoaded = editor.plugins.has('ImageInlineEditing');
38
- editor.config.define('image.styles', getDefaultStylesConfiguration(isBlockPluginLoaded, isInlinePluginLoaded));
39
- this.normalizedStyles = normalizeStyles({
40
- configuredStyles: editor.config.get('image.styles'),
41
- isBlockPluginLoaded,
42
- isInlinePluginLoaded
43
- });
44
- this._setupConversion(isBlockPluginLoaded, isInlinePluginLoaded);
45
- this._setupPostFixer();
46
- // Register imageStyle command.
47
- editor.commands.add('imageStyle', new ImageStyleCommand(editor, this.normalizedStyles));
48
- }
49
- /**
50
- * Sets the editor conversion taking the presence of
51
- * {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`}
52
- * and {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugins into consideration.
53
- */
54
- _setupConversion(isBlockPluginLoaded, isInlinePluginLoaded) {
55
- const editor = this.editor;
56
- const schema = editor.model.schema;
57
- const modelToViewConverter = modelToViewStyleAttribute(this.normalizedStyles);
58
- const viewToModelConverter = viewToModelStyleAttribute(this.normalizedStyles);
59
- editor.editing.downcastDispatcher.on('attribute:imageStyle', modelToViewConverter);
60
- editor.data.downcastDispatcher.on('attribute:imageStyle', modelToViewConverter);
61
- // Allow imageStyle attribute in image and imageInline.
62
- // We could call it 'style' but https://github.com/ckeditor/ckeditor5-engine/issues/559.
63
- if (isBlockPluginLoaded) {
64
- schema.extend('imageBlock', { allowAttributes: 'imageStyle' });
65
- // Converter for figure element from view to model.
66
- editor.data.upcastDispatcher.on('element:figure', viewToModelConverter, { priority: 'low' });
67
- }
68
- if (isInlinePluginLoaded) {
69
- schema.extend('imageInline', { allowAttributes: 'imageStyle' });
70
- // Converter for the img element from view to model.
71
- editor.data.upcastDispatcher.on('element:img', viewToModelConverter, { priority: 'low' });
72
- }
73
- }
74
- /**
75
- * Registers a post-fixer that will make sure that the style attribute value is correct for a specific image type (block vs inline).
76
- */
77
- _setupPostFixer() {
78
- const editor = this.editor;
79
- const document = editor.model.document;
80
- const imageUtils = editor.plugins.get(ImageUtils);
81
- const stylesMap = new Map(this.normalizedStyles.map(style => [style.name, style]));
82
- // Make sure that style attribute is valid for the image type.
83
- document.registerPostFixer(writer => {
84
- let changed = false;
85
- for (const change of document.differ.getChanges()) {
86
- if (change.type == 'insert' || change.type == 'attribute' && change.attributeKey == 'imageStyle') {
87
- let element = change.type == 'insert' ? change.position.nodeAfter : change.range.start.nodeAfter;
88
- if (element && element.is('element', 'paragraph') && element.childCount > 0) {
89
- element = element.getChild(0);
90
- }
91
- if (!imageUtils.isImage(element)) {
92
- continue;
93
- }
94
- const imageStyle = element.getAttribute('imageStyle');
95
- if (!imageStyle) {
96
- continue;
97
- }
98
- const imageStyleDefinition = stylesMap.get(imageStyle);
99
- if (!imageStyleDefinition || !imageStyleDefinition.modelElements.includes(element.name)) {
100
- writer.removeAttribute('imageStyle', element);
101
- changed = true;
102
- }
103
- }
104
- }
105
- return changed;
106
- });
107
- }
108
- }
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/imagestyle/imagestyleediting
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core';
9
+ import ImageStyleCommand from './imagestylecommand';
10
+ import ImageUtils from '../imageutils';
11
+ import utils from './utils';
12
+ import { viewToModelStyleAttribute, modelToViewStyleAttribute } from './converters';
13
+ /**
14
+ * The image style engine plugin. It sets the default configuration, creates converters and registers
15
+ * {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand ImageStyleCommand}.
16
+ */
17
+ export default class ImageStyleEditing extends Plugin {
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ static get pluginName() {
22
+ return 'ImageStyleEditing';
23
+ }
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get requires() {
28
+ return [ImageUtils];
29
+ }
30
+ /**
31
+ * @inheritDoc
32
+ */
33
+ init() {
34
+ const { normalizeStyles, getDefaultStylesConfiguration } = utils;
35
+ const editor = this.editor;
36
+ const isBlockPluginLoaded = editor.plugins.has('ImageBlockEditing');
37
+ const isInlinePluginLoaded = editor.plugins.has('ImageInlineEditing');
38
+ editor.config.define('image.styles', getDefaultStylesConfiguration(isBlockPluginLoaded, isInlinePluginLoaded));
39
+ this.normalizedStyles = normalizeStyles({
40
+ configuredStyles: editor.config.get('image.styles'),
41
+ isBlockPluginLoaded,
42
+ isInlinePluginLoaded
43
+ });
44
+ this._setupConversion(isBlockPluginLoaded, isInlinePluginLoaded);
45
+ this._setupPostFixer();
46
+ // Register imageStyle command.
47
+ editor.commands.add('imageStyle', new ImageStyleCommand(editor, this.normalizedStyles));
48
+ }
49
+ /**
50
+ * Sets the editor conversion taking the presence of
51
+ * {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`}
52
+ * and {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugins into consideration.
53
+ */
54
+ _setupConversion(isBlockPluginLoaded, isInlinePluginLoaded) {
55
+ const editor = this.editor;
56
+ const schema = editor.model.schema;
57
+ const modelToViewConverter = modelToViewStyleAttribute(this.normalizedStyles);
58
+ const viewToModelConverter = viewToModelStyleAttribute(this.normalizedStyles);
59
+ editor.editing.downcastDispatcher.on('attribute:imageStyle', modelToViewConverter);
60
+ editor.data.downcastDispatcher.on('attribute:imageStyle', modelToViewConverter);
61
+ // Allow imageStyle attribute in image and imageInline.
62
+ // We could call it 'style' but https://github.com/ckeditor/ckeditor5-engine/issues/559.
63
+ if (isBlockPluginLoaded) {
64
+ schema.extend('imageBlock', { allowAttributes: 'imageStyle' });
65
+ // Converter for figure element from view to model.
66
+ editor.data.upcastDispatcher.on('element:figure', viewToModelConverter, { priority: 'low' });
67
+ }
68
+ if (isInlinePluginLoaded) {
69
+ schema.extend('imageInline', { allowAttributes: 'imageStyle' });
70
+ // Converter for the img element from view to model.
71
+ editor.data.upcastDispatcher.on('element:img', viewToModelConverter, { priority: 'low' });
72
+ }
73
+ }
74
+ /**
75
+ * Registers a post-fixer that will make sure that the style attribute value is correct for a specific image type (block vs inline).
76
+ */
77
+ _setupPostFixer() {
78
+ const editor = this.editor;
79
+ const document = editor.model.document;
80
+ const imageUtils = editor.plugins.get(ImageUtils);
81
+ const stylesMap = new Map(this.normalizedStyles.map(style => [style.name, style]));
82
+ // Make sure that style attribute is valid for the image type.
83
+ document.registerPostFixer(writer => {
84
+ let changed = false;
85
+ for (const change of document.differ.getChanges()) {
86
+ if (change.type == 'insert' || change.type == 'attribute' && change.attributeKey == 'imageStyle') {
87
+ let element = change.type == 'insert' ? change.position.nodeAfter : change.range.start.nodeAfter;
88
+ if (element && element.is('element', 'paragraph') && element.childCount > 0) {
89
+ element = element.getChild(0);
90
+ }
91
+ if (!imageUtils.isImage(element)) {
92
+ continue;
93
+ }
94
+ const imageStyle = element.getAttribute('imageStyle');
95
+ if (!imageStyle) {
96
+ continue;
97
+ }
98
+ const imageStyleDefinition = stylesMap.get(imageStyle);
99
+ if (!imageStyleDefinition || !imageStyleDefinition.modelElements.includes(element.name)) {
100
+ writer.removeAttribute('imageStyle', element);
101
+ changed = true;
102
+ }
103
+ }
104
+ }
105
+ return changed;
106
+ });
107
+ }
108
+ }
@@ -1,56 +1,56 @@
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/imagestyle/imagestyleui
7
- */
8
- import { Plugin } from 'ckeditor5/src/core';
9
- import ImageStyleEditing from './imagestyleediting';
10
- import '../../theme/imagestyle.css';
11
- /**
12
- * The image style UI plugin.
13
- *
14
- * It registers buttons corresponding to the {@link module:image/imageconfig~ImageConfig#styles} configuration.
15
- * It also registers the {@link module:image/imagestyle/utils#DEFAULT_DROPDOWN_DEFINITIONS default drop-downs} and the
16
- * custom drop-downs defined by the developer in the {@link module:image/imageconfig~ImageConfig#toolbar} configuration.
17
- */
18
- export default class ImageStyleUI extends Plugin {
19
- /**
20
- * @inheritDoc
21
- */
22
- static get requires(): readonly [typeof ImageStyleEditing];
23
- /**
24
- * @inheritDoc
25
- */
26
- static get pluginName(): "ImageStyleUI";
27
- /**
28
- * Returns the default localized style titles provided by the plugin.
29
- *
30
- * The following localized titles corresponding with
31
- * {@link module:image/imagestyle/utils#DEFAULT_OPTIONS} are available:
32
- *
33
- * * `'Wrap text'`,
34
- * * `'Break text'`,
35
- * * `'In line'`,
36
- * * `'Full size image'`,
37
- * * `'Side image'`,
38
- * * `'Left aligned image'`,
39
- * * `'Centered image'`,
40
- * * `'Right aligned image'`
41
- */
42
- get localizedDefaultStylesTitles(): Record<string, string>;
43
- /**
44
- * @inheritDoc
45
- */
46
- init(): void;
47
- /**
48
- * Creates a dropdown and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.
49
- */
50
- private _createDropdown;
51
- /**
52
- * Creates a button and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.
53
- */
54
- private _createButton;
55
- private _executeCommand;
56
- }
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/imagestyle/imagestyleui
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core';
9
+ import ImageStyleEditing from './imagestyleediting';
10
+ import '../../theme/imagestyle.css';
11
+ /**
12
+ * The image style UI plugin.
13
+ *
14
+ * It registers buttons corresponding to the {@link module:image/imageconfig~ImageConfig#styles} configuration.
15
+ * It also registers the {@link module:image/imagestyle/utils#DEFAULT_DROPDOWN_DEFINITIONS default drop-downs} and the
16
+ * custom drop-downs defined by the developer in the {@link module:image/imageconfig~ImageConfig#toolbar} configuration.
17
+ */
18
+ export default class ImageStyleUI extends Plugin {
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ static get requires(): readonly [typeof ImageStyleEditing];
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ static get pluginName(): "ImageStyleUI";
27
+ /**
28
+ * Returns the default localized style titles provided by the plugin.
29
+ *
30
+ * The following localized titles corresponding with
31
+ * {@link module:image/imagestyle/utils#DEFAULT_OPTIONS} are available:
32
+ *
33
+ * * `'Wrap text'`,
34
+ * * `'Break text'`,
35
+ * * `'In line'`,
36
+ * * `'Full size image'`,
37
+ * * `'Side image'`,
38
+ * * `'Left aligned image'`,
39
+ * * `'Centered image'`,
40
+ * * `'Right aligned image'`
41
+ */
42
+ get localizedDefaultStylesTitles(): Record<string, string>;
43
+ /**
44
+ * @inheritDoc
45
+ */
46
+ init(): void;
47
+ /**
48
+ * Creates a dropdown and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.
49
+ */
50
+ private _createDropdown;
51
+ /**
52
+ * Creates a button and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.
53
+ */
54
+ private _createButton;
55
+ private _executeCommand;
56
+ }