@ckeditor/ckeditor5-image 41.1.0 → 41.3.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/image.js +1 -1
- package/dist/content-index.css +105 -0
- package/dist/editor-index.css +108 -0
- package/dist/index.css +462 -0
- package/dist/index.css.map +1 -0
- package/dist/index.js +5860 -0
- package/dist/index.js.map +1 -0
- package/dist/types/augmentation.d.ts +56 -0
- package/dist/types/autoimage.d.ts +52 -0
- package/dist/types/image/converters.d.ts +66 -0
- package/dist/types/image/imageblockediting.d.ts +59 -0
- package/dist/types/image/imageediting.d.ts +30 -0
- package/dist/types/image/imageinlineediting.d.ts +60 -0
- package/dist/types/image/imageloadobserver.d.ts +48 -0
- package/dist/types/image/imageplaceholder.d.ts +39 -0
- package/dist/types/image/imagetypecommand.d.ts +44 -0
- package/dist/types/image/insertimagecommand.d.ts +66 -0
- package/dist/types/image/replaceimagesourcecommand.d.ts +51 -0
- package/dist/types/image/ui/utils.d.ts +25 -0
- package/dist/types/image/utils.d.ts +64 -0
- package/dist/types/image.d.ts +34 -0
- package/dist/types/imageblock.d.ts +34 -0
- package/dist/types/imagecaption/imagecaptionediting.d.ts +89 -0
- package/dist/types/imagecaption/imagecaptionui.d.ts +26 -0
- package/dist/types/imagecaption/imagecaptionutils.d.ts +38 -0
- package/dist/types/imagecaption/toggleimagecaptioncommand.d.ts +66 -0
- package/dist/types/imagecaption.d.ts +26 -0
- package/dist/types/imageconfig.d.ts +712 -0
- package/dist/types/imageinline.d.ts +34 -0
- package/dist/types/imageinsert/imageinsertui.d.ts +74 -0
- package/dist/types/imageinsert/imageinsertviaurlui.d.ts +44 -0
- package/dist/types/imageinsert/ui/imageinsertformview.d.ts +56 -0
- package/dist/types/imageinsert/ui/imageinserturlview.d.ts +107 -0
- package/dist/types/imageinsert.d.ts +33 -0
- package/dist/types/imageinsertviaurl.d.ts +31 -0
- package/dist/types/imageresize/imageresizebuttons.d.ts +67 -0
- package/dist/types/imageresize/imageresizeediting.d.ts +37 -0
- package/dist/types/imageresize/imageresizehandles.d.ts +31 -0
- package/dist/types/imageresize/resizeimagecommand.d.ts +42 -0
- package/dist/types/imageresize.d.ts +27 -0
- package/dist/types/imagesizeattributes.d.ts +34 -0
- package/dist/types/imagestyle/converters.d.ts +24 -0
- package/dist/types/imagestyle/imagestylecommand.d.ts +68 -0
- package/dist/types/imagestyle/imagestyleediting.d.ts +50 -0
- package/dist/types/imagestyle/imagestyleui.d.ts +56 -0
- package/dist/types/imagestyle/utils.d.ts +101 -0
- package/dist/types/imagestyle.d.ts +32 -0
- package/dist/types/imagetextalternative/imagetextalternativecommand.d.ts +34 -0
- package/dist/types/imagetextalternative/imagetextalternativeediting.d.ts +28 -0
- package/dist/types/imagetextalternative/imagetextalternativeui.d.ts +68 -0
- package/dist/types/imagetextalternative/ui/textalternativeformview.d.ts +90 -0
- package/dist/types/imagetextalternative.d.ts +29 -0
- package/dist/types/imagetoolbar.d.ts +35 -0
- package/dist/types/imageupload/imageuploadediting.d.ts +111 -0
- package/dist/types/imageupload/imageuploadprogress.d.ts +42 -0
- package/dist/types/imageupload/imageuploadui.d.ts +23 -0
- package/dist/types/imageupload/uploadimagecommand.d.ts +60 -0
- package/dist/types/imageupload/utils.d.ts +33 -0
- package/dist/types/imageupload.d.ts +32 -0
- package/dist/types/imageutils.d.ts +125 -0
- package/dist/types/index.d.ts +48 -0
- package/dist/types/pictureediting.d.ts +88 -0
- package/lang/translations/he.po +1 -1
- package/package.json +4 -3
- package/src/augmentation.d.ts +1 -1
- package/src/imageinsert/imageinsertui.d.ts +4 -2
- package/src/imageinsert/imageinsertui.js +1 -1
- package/src/imageinsert/imageinsertviaurlui.d.ts +1 -1
- package/src/imageinsert/imageinsertviaurlui.js +2 -3
- package/src/imageresize/imageresizehandles.js +1 -2
- package/src/imageupload/imageuploadui.js +1 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.js","../src/image/utils.ts","../src/imageutils.ts","../src/autoimage.ts","../src/imagetextalternative/imagetextalternativecommand.ts","../src/imagetextalternative/imagetextalternativeediting.ts","../src/imagetextalternative/ui/textalternativeformview.ts","../src/image/ui/utils.ts","../src/imagetextalternative/imagetextalternativeui.ts","../src/imagetextalternative.ts","../src/image/converters.ts","../src/image/imageloadobserver.ts","../src/image/insertimagecommand.ts","../src/image/replaceimagesourcecommand.ts","../src/image/imageediting.ts","../src/imagesizeattributes.ts","../src/image/imagetypecommand.ts","../src/image/imageplaceholder.ts","../src/image/imageblockediting.ts","../src/imageinsert/ui/imageinsertformview.ts","../src/imageinsert/imageinsertui.ts","../src/imageblock.ts","../src/image/imageinlineediting.ts","../src/imageinline.ts","../src/image.ts","../src/imagecaption/imagecaptionutils.ts","../src/imagecaption/toggleimagecaptioncommand.ts","../src/imagecaption/imagecaptionediting.ts","../src/imagecaption/imagecaptionui.ts","../src/imagecaption.ts","../src/imageupload/utils.ts","../src/imageupload/imageuploadui.ts","../src/imageupload/imageuploadprogress.ts","../src/imageupload/uploadimagecommand.ts","../src/imageupload/imageuploadediting.ts","../src/imageupload.ts","../src/imageinsert/ui/imageinserturlview.ts","../src/imageinsert/imageinsertviaurlui.ts","../src/imageinsertviaurl.ts","../src/imageinsert.ts","../src/imageresize/resizeimagecommand.ts","../src/imageresize/imageresizeediting.ts","../src/imageresize/imageresizebuttons.ts","../src/imageresize/imageresizehandles.ts","../src/imageresize.ts","../src/imagestyle/imagestylecommand.ts","../src/imagestyle/utils.ts","../src/imagestyle/converters.ts","../src/imagestyle/imagestyleediting.ts","../src/imagestyle/imagestyleui.ts","../src/imagestyle.ts","../src/imagetoolbar.ts","../src/pictureediting.ts"],"names":[],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, Command, icons } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { Clipboard, ClipboardPipeline } from '@ckeditor/ckeditor5-clipboard/dist/index.js';\nimport { LivePosition, LiveRange, Observer, UpcastWriter, enablePlaceholder, Element } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { Undo } from '@ckeditor/ckeditor5-undo/dist/index.js';\nimport { Delete } from '@ckeditor/ckeditor5-typing/dist/index.js';\nimport { first, DomEmitterMixin, global, FocusTracker, KeystrokeHandler, logWarning, toArray, env, CKEditorError, Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { toWidget, isWidget, findOptimalInsertionRange, Widget, toWidgetEditable, WidgetResize, WidgetToolbarRepository } from '@ckeditor/ckeditor5-widget/dist/index.js';\nimport { View, ViewCollection, FocusCycler, submitHandler, ButtonView, LabeledFieldView, createLabeledInputText, BalloonPanelView, ContextualBalloon, CssTransitionDisablerMixin, clickOutsideHandler, CollapsibleView, SplitButtonView, createDropdown, Notification, DropdownButtonView, ViewModel, addListToDropdown, addToolbarToDropdown } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { FileDialogButtonView, FileRepository } from '@ckeditor/ckeditor5-upload/dist/index.js';\nimport { isObject, identity } from 'lodash-es';\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Creates a view element representing the inline image.\n *\n * ```html\n * <span class=\"image-inline\"><img></img></span>\n * ```\n *\n * Note that `alt` and `src` attributes are converted separately, so they are not included.\n *\n * @internal\n */\nfunction createInlineImageViewElement(writer) {\n return writer.createContainerElement('span', { class: 'image-inline' }, writer.createEmptyElement('img'));\n}\n/**\n * Creates a view element representing the block image.\n *\n * ```html\n * <figure class=\"image\"><img></img></figure>\n * ```\n *\n * Note that `alt` and `src` attributes are converted separately, so they are not included.\n *\n * @internal\n */\nfunction createBlockImageViewElement(writer) {\n return writer.createContainerElement('figure', { class: 'image' }, [\n writer.createEmptyElement('img'),\n writer.createSlot('children')\n ]);\n}\n/**\n * A function returning a `MatcherPattern` for a particular type of View images.\n *\n * @internal\n * @param matchImageType The type of created image.\n */\nfunction getImgViewElementMatcher(editor, matchImageType) {\n const imageUtils = editor.plugins.get('ImageUtils');\n const areBothImagePluginsLoaded = editor.plugins.has('ImageInlineEditing') && editor.plugins.has('ImageBlockEditing');\n return element => {\n // Check if the matched view element is an <img>.\n if (!imageUtils.isInlineImageView(element)) {\n return null;\n }\n // If just one of the plugins is loaded (block or inline), it will match all kinds of images.\n if (!areBothImagePluginsLoaded) {\n return getPositiveMatchPattern(element);\n }\n // The <img> can be standalone, wrapped in <figure>...</figure> (ImageBlock plugin) or\n // wrapped in <figure><a>...</a></figure> (LinkImage plugin).\n const imageType = element.getStyle('display') == 'block' || element.findAncestor(imageUtils.isBlockImageView) ?\n 'imageBlock' :\n 'imageInline';\n if (imageType !== matchImageType) {\n return null;\n }\n return getPositiveMatchPattern(element);\n };\n function getPositiveMatchPattern(element) {\n const pattern = {\n name: true\n };\n // This will trigger src consumption (See https://github.com/ckeditor/ckeditor5/issues/11530).\n if (element.hasAttribute('src')) {\n pattern.attributes = ['src'];\n }\n return pattern;\n }\n}\n/**\n * Considering the current model selection, it returns the name of the model image element\n * (`'imageBlock'` or `'imageInline'`) that will make most sense from the UX perspective if a new\n * image was inserted (also: uploaded, dropped, pasted) at that selection.\n *\n * The assumption is that inserting images into empty blocks or on other block widgets should\n * produce block images. Inline images should be inserted in other cases, e.g. in paragraphs\n * that already contain some text.\n *\n * @internal\n */\nfunction determineImageTypeForInsertionAtSelection(schema, selection) {\n const firstBlock = first(selection.getSelectedBlocks());\n // Insert a block image if the selection is not in/on block elements or it's on a block widget.\n if (!firstBlock || schema.isObject(firstBlock)) {\n return 'imageBlock';\n }\n // A block image should also be inserted into an empty block element\n // (that is not an empty list item so the list won't get split).\n if (firstBlock.isEmpty && firstBlock.name != 'listItem') {\n return 'imageBlock';\n }\n // Otherwise insert an inline image.\n return 'imageInline';\n}\n/**\n * Returns parsed value of the size, but only if it contains unit: px.\n */\nfunction getSizeValueIfInPx(size) {\n if (size && size.endsWith('px')) {\n return parseInt(size);\n }\n return null;\n}\n/**\n * Returns true if both styles (width and height) are set.\n *\n * If both image styles: width & height are set, they will override the image width & height attributes in the\n * browser. In this case, the image looks the same as if these styles were applied to attributes instead of styles.\n * That's why we can upcast these styles to width & height attributes instead of resizedWidth and resizedHeight.\n */\nfunction widthAndHeightStylesAreBothSet(viewElement) {\n const widthStyle = getSizeValueIfInPx(viewElement.getStyle('width'));\n const heightStyle = getSizeValueIfInPx(viewElement.getStyle('height'));\n return !!(widthStyle && heightStyle);\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nconst IMAGE_WIDGETS_CLASSES_MATCH_REGEXP = /^(image|image-inline)$/;\n/**\n * A set of helpers related to images.\n */\nclass ImageUtils extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * DOM Emitter.\n */\n this._domEmitter = new (DomEmitterMixin())();\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageUtils';\n }\n /**\n * Checks if the provided model element is an `image` or `imageInline`.\n */\n isImage(modelElement) {\n return this.isInlineImage(modelElement) || this.isBlockImage(modelElement);\n }\n /**\n * Checks if the provided view element represents an inline image.\n *\n * Also, see {@link module:image/imageutils~ImageUtils#isImageWidget}.\n */\n isInlineImageView(element) {\n return !!element && element.is('element', 'img');\n }\n /**\n * Checks if the provided view element represents a block image.\n *\n * Also, see {@link module:image/imageutils~ImageUtils#isImageWidget}.\n */\n isBlockImageView(element) {\n return !!element && element.is('element', 'figure') && element.hasClass('image');\n }\n /**\n * Handles inserting single file. This method unifies image insertion using {@link module:widget/utils~findOptimalInsertionRange}\n * method.\n *\n * ```ts\n * const imageUtils = editor.plugins.get( 'ImageUtils' );\n *\n * imageUtils.insertImage( { src: 'path/to/image.jpg' } );\n * ```\n *\n * @param attributes Attributes of the inserted image.\n * This method filters out the attributes which are disallowed by the {@link module:engine/model/schema~Schema}.\n * @param selectable Place to insert the image. If not specified,\n * the {@link module:widget/utils~findOptimalInsertionRange} logic will be applied for the block images\n * and `model.document.selection` for the inline images.\n *\n * **Note**: If `selectable` is passed, this helper will not be able to set selection attributes (such as `linkHref`)\n * and apply them to the new image. In this case, make sure all selection attributes are passed in `attributes`.\n *\n * @param imageType Image type of inserted image. If not specified,\n * it will be determined automatically depending of editor config or place of the insertion.\n * @param options.setImageSizes Specifies whether the image `width` and `height` attributes should be set automatically.\n * The default is `true`.\n * @return The inserted model image element.\n */\n insertImage(attributes = {}, selectable = null, imageType = null, options = {}) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n const determinedImageType = determineImageTypeForInsertion(editor, selectable || selection, imageType);\n // Mix declarative attributes with selection attributes because the new image should \"inherit\"\n // the latter for best UX. For instance, inline images inserted into existing links\n // should not split them. To do that, they need to have \"linkHref\" inherited from the selection.\n attributes = {\n ...Object.fromEntries(selection.getAttributes()),\n ...attributes\n };\n for (const attributeName in attributes) {\n if (!model.schema.checkAttribute(determinedImageType, attributeName)) {\n delete attributes[attributeName];\n }\n }\n return model.change(writer => {\n const { setImageSizes = true } = options;\n const imageElement = writer.createElement(determinedImageType, attributes);\n model.insertObject(imageElement, selectable, null, {\n setSelection: 'on',\n // If we want to insert a block image (for whatever reason) then we don't want to split text blocks.\n // This applies only when we don't have the selectable specified (i.e., we insert multiple block images at once).\n findOptimalPosition: !selectable && determinedImageType != 'imageInline' ? 'auto' : undefined\n });\n // Inserting an image might've failed due to schema regulations.\n if (imageElement.parent) {\n if (setImageSizes) {\n this.setImageNaturalSizeAttributes(imageElement);\n }\n return imageElement;\n }\n return null;\n });\n }\n /**\n * Reads original image sizes and sets them as `width` and `height`.\n *\n * The `src` attribute may not be available if the user is using an upload adapter. In such a case,\n * this method is called again after the upload process is complete and the `src` attribute is available.\n */\n setImageNaturalSizeAttributes(imageElement) {\n const src = imageElement.getAttribute('src');\n if (!src) {\n return;\n }\n if (imageElement.getAttribute('width') || imageElement.getAttribute('height')) {\n return;\n }\n this.editor.model.change(writer => {\n const img = new global.window.Image();\n this._domEmitter.listenTo(img, 'load', () => {\n if (!imageElement.getAttribute('width') && !imageElement.getAttribute('height')) {\n // We use writer.batch to be able to undo (in a single step) width and height setting\n // along with any change that triggered this action (e.g. image resize or image style change).\n this.editor.model.enqueueChange(writer.batch, writer => {\n writer.setAttribute('width', img.naturalWidth, imageElement);\n writer.setAttribute('height', img.naturalHeight, imageElement);\n });\n }\n this._domEmitter.stopListening(img, 'load');\n });\n img.src = src;\n });\n }\n /**\n * Returns an image widget editing view element if one is selected or is among the selection's ancestors.\n */\n getClosestSelectedImageWidget(selection) {\n const selectionPosition = selection.getFirstPosition();\n if (!selectionPosition) {\n return null;\n }\n const viewElement = selection.getSelectedElement();\n if (viewElement && this.isImageWidget(viewElement)) {\n return viewElement;\n }\n let parent = selectionPosition.parent;\n while (parent) {\n if (parent.is('element') && this.isImageWidget(parent)) {\n return parent;\n }\n parent = parent.parent;\n }\n return null;\n }\n /**\n * Returns a image model element if one is selected or is among the selection's ancestors.\n */\n getClosestSelectedImageElement(selection) {\n const selectedElement = selection.getSelectedElement();\n return this.isImage(selectedElement) ? selectedElement : selection.getFirstPosition().findAncestor('imageBlock');\n }\n /**\n * Returns an image widget editing view based on the passed image view.\n */\n getImageWidgetFromImageView(imageView) {\n return imageView.findAncestor({ classes: IMAGE_WIDGETS_CLASSES_MATCH_REGEXP });\n }\n /**\n * Checks if image can be inserted at current model selection.\n *\n * @internal\n */\n isImageAllowed() {\n const model = this.editor.model;\n const selection = model.document.selection;\n return isImageAllowedInParent(this.editor, selection) && isNotInsideImage(selection);\n }\n /**\n * Converts a given {@link module:engine/view/element~Element} to an image widget:\n * * Adds a {@link module:engine/view/element~Element#_setCustomProperty custom property} allowing to recognize the image widget\n * element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n *\n * @param writer An instance of the view writer.\n * @param label The element's label. It will be concatenated with the image `alt` attribute if one is present.\n */\n toImageWidget(viewElement, writer, label) {\n writer.setCustomProperty('image', true, viewElement);\n const labelCreator = () => {\n const imgElement = this.findViewImgElement(viewElement);\n const altText = imgElement.getAttribute('alt');\n return altText ? `${altText} ${label}` : label;\n };\n return toWidget(viewElement, writer, { label: labelCreator });\n }\n /**\n * Checks if a given view element is an image widget.\n */\n isImageWidget(viewElement) {\n return !!viewElement.getCustomProperty('image') && isWidget(viewElement);\n }\n /**\n * Checks if the provided model element is an `image`.\n */\n isBlockImage(modelElement) {\n return !!modelElement && modelElement.is('element', 'imageBlock');\n }\n /**\n * Checks if the provided model element is an `imageInline`.\n */\n isInlineImage(modelElement) {\n return !!modelElement && modelElement.is('element', 'imageInline');\n }\n /**\n * Get the view `<img>` from another view element, e.g. a widget (`<figure class=\"image\">`), a link (`<a>`).\n *\n * The `<img>` can be located deep in other elements, so this helper performs a deep tree search.\n */\n findViewImgElement(figureView) {\n if (this.isInlineImageView(figureView)) {\n return figureView;\n }\n const editingView = this.editor.editing.view;\n for (const { item } of editingView.createRangeIn(figureView)) {\n if (this.isInlineImageView(item)) {\n return item;\n }\n }\n }\n /**\n * @inheritDoc\n */\n destroy() {\n this._domEmitter.stopListening();\n return super.destroy();\n }\n}\n/**\n * Checks if image is allowed by schema in optimal insertion parent.\n */\nfunction isImageAllowedInParent(editor, selection) {\n const imageType = determineImageTypeForInsertion(editor, selection, null);\n if (imageType == 'imageBlock') {\n const parent = getInsertImageParent(selection, editor.model);\n if (editor.model.schema.checkChild(parent, 'imageBlock')) {\n return true;\n }\n }\n else if (editor.model.schema.checkChild(selection.focus, 'imageInline')) {\n return true;\n }\n return false;\n}\n/**\n * Checks if selection is not placed inside an image (e.g. its caption).\n */\nfunction isNotInsideImage(selection) {\n return [...selection.focus.getAncestors()].every(ancestor => !ancestor.is('element', 'imageBlock'));\n}\n/**\n * Returns a node that will be used to insert image with `model.insertContent`.\n */\nfunction getInsertImageParent(selection, model) {\n const insertionRange = findOptimalInsertionRange(selection, model);\n const parent = insertionRange.start.parent;\n if (parent.isEmpty && !parent.is('element', '$root')) {\n return parent.parent;\n }\n return parent;\n}\n/**\n * Determine image element type name depending on editor config or place of insertion.\n *\n * @param imageType Image element type name. Used to force return of provided element name,\n * but only if there is proper plugin enabled.\n */\nfunction determineImageTypeForInsertion(editor, selectable, imageType) {\n const schema = editor.model.schema;\n const configImageInsertType = editor.config.get('image.insert.type');\n if (!editor.plugins.has('ImageBlockEditing')) {\n return 'imageInline';\n }\n if (!editor.plugins.has('ImageInlineEditing')) {\n return 'imageBlock';\n }\n if (imageType) {\n return imageType;\n }\n if (configImageInsertType === 'inline') {\n return 'imageInline';\n }\n if (configImageInsertType !== 'auto') {\n return 'imageBlock';\n }\n // Try to replace the selected widget (e.g. another image).\n if (selectable.is('selection')) {\n return determineImageTypeForInsertionAtSelection(schema, selectable);\n }\n return schema.checkChild(selectable, 'imageInline') ? 'imageInline' : 'imageBlock';\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/autoimage\n */\n// Implements the pattern: http(s)://(www.)example.com/path/to/resource.ext?query=params&maybe=too.\nconst IMAGE_URL_REGEXP = new RegExp(String(/^(http(s)?:\\/\\/)?[\\w-]+\\.[\\w.~:/[\\]@!$&'()*+,;=%-]+/.source +\n /\\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source +\n /(\\?[\\w.~:/[\\]@!$&'()*+,;=%-]*)?/.source +\n /(#[\\w.~:/[\\]@!$&'()*+,;=%-]*)?$/.source));\n/**\n * The auto-image plugin. It recognizes image links in the pasted content and embeds\n * them shortly after they are injected into the document.\n */\nclass AutoImage extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [Clipboard, ImageUtils, Undo, Delete];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'AutoImage';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n this._timeoutId = null;\n this._positionToInsert = null;\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const modelDocument = editor.model.document;\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n // We need to listen on `Clipboard#inputTransformation` because we need to save positions of selection.\n // After pasting, the content between those positions will be checked for a URL that could be transformed\n // into an image.\n this.listenTo(clipboardPipeline, 'inputTransformation', () => {\n const firstRange = modelDocument.selection.getFirstRange();\n const leftLivePosition = LivePosition.fromPosition(firstRange.start);\n leftLivePosition.stickiness = 'toPrevious';\n const rightLivePosition = LivePosition.fromPosition(firstRange.end);\n rightLivePosition.stickiness = 'toNext';\n modelDocument.once('change:data', () => {\n this._embedImageBetweenPositions(leftLivePosition, rightLivePosition);\n leftLivePosition.detach();\n rightLivePosition.detach();\n }, { priority: 'high' });\n });\n editor.commands.get('undo').on('execute', () => {\n if (this._timeoutId) {\n global.window.clearTimeout(this._timeoutId);\n this._positionToInsert.detach();\n this._timeoutId = null;\n this._positionToInsert = null;\n }\n }, { priority: 'high' });\n }\n /**\n * Analyzes the part of the document between provided positions in search for a URL representing an image.\n * When the URL is found, it is automatically converted into an image.\n *\n * @param leftPosition Left position of the selection.\n * @param rightPosition Right position of the selection.\n */\n _embedImageBetweenPositions(leftPosition, rightPosition) {\n const editor = this.editor;\n // TODO: Use a marker instead of LiveRange & LivePositions.\n const urlRange = new LiveRange(leftPosition, rightPosition);\n const walker = urlRange.getWalker({ ignoreElementEnd: true });\n const selectionAttributes = Object.fromEntries(editor.model.document.selection.getAttributes());\n const imageUtils = this.editor.plugins.get('ImageUtils');\n let src = '';\n for (const node of walker) {\n if (node.item.is('$textProxy')) {\n src += node.item.data;\n }\n }\n src = src.trim();\n // If the URL does not match the image URL regexp, let's skip that.\n if (!src.match(IMAGE_URL_REGEXP)) {\n urlRange.detach();\n return;\n }\n // Position will not be available in the `setTimeout` function so let's clone it.\n this._positionToInsert = LivePosition.fromPosition(leftPosition);\n // This action mustn't be executed if undo was called between pasting and auto-embedding.\n this._timeoutId = setTimeout(() => {\n // Do nothing if image element cannot be inserted at the current position.\n // See https://github.com/ckeditor/ckeditor5/issues/2763.\n // Condition must be checked after timeout - pasting may take place on an element, replacing it. The final position matters.\n const imageCommand = editor.commands.get('insertImage');\n if (!imageCommand.isEnabled) {\n urlRange.detach();\n return;\n }\n editor.model.change(writer => {\n this._timeoutId = null;\n writer.remove(urlRange);\n urlRange.detach();\n let insertionPosition;\n // Check if the position where the element should be inserted is still valid.\n // Otherwise leave it as undefined to use the logic of insertImage().\n if (this._positionToInsert.root.rootName !== '$graveyard') {\n insertionPosition = this._positionToInsert.toPosition();\n }\n imageUtils.insertImage({ ...selectionAttributes, src }, insertionPosition);\n this._positionToInsert.detach();\n this._positionToInsert = null;\n });\n const deletePlugin = editor.plugins.get('Delete');\n deletePlugin.requestUndoOnBackspace();\n }, 100);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/imagetextalternativecommand\n */\n/**\n * The image text alternative command. It is used to change the `alt` attribute of `<imageBlock>` and `<imageInline>` model elements.\n */\nclass ImageTextAlternativeCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = imageUtils.getClosestSelectedImageElement(this.editor.model.document.selection);\n this.isEnabled = !!element;\n if (this.isEnabled && element.hasAttribute('alt')) {\n this.value = element.getAttribute('alt');\n }\n else {\n this.value = false;\n }\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param options\n * @param options.newValue The new value of the `alt` attribute to set.\n */\n execute(options) {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const model = editor.model;\n const imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n model.change(writer => {\n writer.setAttribute('alt', options.newValue, imageElement);\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/imagetextalternativeediting\n */\n/**\n * The image text alternative editing plugin.\n *\n * Registers the `'imageTextAlternative'` command.\n */\nclass ImageTextAlternativeEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageTextAlternativeEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n this.editor.commands.add('imageTextAlternative', new ImageTextAlternativeCommand(this.editor));\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/ui/textalternativeformview\n */\n/**\n * The TextAlternativeFormView class.\n */\nclass TextAlternativeFormView extends View {\n /**\n * @inheritDoc\n */\n constructor(locale) {\n super(locale);\n const t = this.locale.t;\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this.labeledInput = this._createLabeledInputView();\n this.saveButtonView = this._createButton(t('Save'), icons.check, 'ck-button-save');\n this.saveButtonView.type = 'submit';\n this.cancelButtonView = this._createButton(t('Cancel'), icons.cancel, 'ck-button-cancel', 'cancel');\n this._focusables = new ViewCollection();\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: [\n 'ck',\n 'ck-text-alternative-form',\n 'ck-responsive-form'\n ],\n // https://github.com/ckeditor/ckeditor5-image/issues/40\n tabindex: '-1'\n },\n children: [\n this.labeledInput,\n this.saveButtonView,\n this.cancelButtonView\n ]\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n this.keystrokes.listenTo(this.element);\n submitHandler({ view: this });\n [this.labeledInput, this.saveButtonView, this.cancelButtonView]\n .forEach(v => {\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n * Creates the button view.\n *\n * @param label The button label\n * @param icon The button's icon.\n * @param className The additional button CSS class name.\n * @param eventName The event name that the ButtonView#execute event will be delegated to.\n * @returns The button view instance.\n */\n _createButton(label, icon, className, eventName) {\n const button = new ButtonView(this.locale);\n button.set({\n label,\n icon,\n tooltip: true\n });\n button.extendTemplate({\n attributes: {\n class: className\n }\n });\n if (eventName) {\n button.delegate('execute').to(this, eventName);\n }\n return button;\n }\n /**\n * Creates an input with a label.\n *\n * @returns Labeled field view instance.\n */\n _createLabeledInputView() {\n const t = this.locale.t;\n const labeledInput = new LabeledFieldView(this.locale, createLabeledInputText);\n labeledInput.label = t('Text alternative');\n return labeledInput;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * A helper utility that positions the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} instance\n * with respect to the image in the editor content, if one is selected.\n *\n * @param editor The editor instance.\n */\nfunction repositionContextualBalloon(editor) {\n const balloon = editor.plugins.get('ContextualBalloon');\n const imageUtils = editor.plugins.get('ImageUtils');\n if (imageUtils.getClosestSelectedImageWidget(editor.editing.view.document.selection)) {\n const position = getBalloonPositionData(editor);\n balloon.updatePosition(position);\n }\n}\n/**\n * Returns the positioning options that control the geometry of the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} with respect\n * to the selected element in the editor content.\n *\n * @param editor The editor instance.\n */\nfunction getBalloonPositionData(editor) {\n const editingView = editor.editing.view;\n const defaultPositions = BalloonPanelView.defaultPositions;\n const imageUtils = editor.plugins.get('ImageUtils');\n return {\n target: editingView.domConverter.mapViewToDom(imageUtils.getClosestSelectedImageWidget(editingView.document.selection)),\n positions: [\n defaultPositions.northArrowSouth,\n defaultPositions.northArrowSouthWest,\n defaultPositions.northArrowSouthEast,\n defaultPositions.southArrowNorth,\n defaultPositions.southArrowNorthWest,\n defaultPositions.southArrowNorthEast,\n defaultPositions.viewportStickyNorth\n ]\n };\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/imagetextalternativeui\n */\n/**\n * The image text alternative UI plugin.\n *\n * The plugin uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon}.\n */\nclass ImageTextAlternativeUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ContextualBalloon];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageTextAlternativeUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n this._createButton();\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n if (this._form) {\n this._form.destroy();\n }\n }\n /**\n * Creates a button showing the balloon panel for changing the image text alternative and\n * registers it in the editor {@link module:ui/componentfactory~ComponentFactory ComponentFactory}.\n */\n _createButton() {\n const editor = this.editor;\n const t = editor.t;\n editor.ui.componentFactory.add('imageTextAlternative', locale => {\n const command = editor.commands.get('imageTextAlternative');\n const view = new ButtonView(locale);\n view.set({\n label: t('Change image text alternative'),\n icon: icons.textAlternative,\n tooltip: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n view.bind('isOn').to(command, 'value', value => !!value);\n this.listenTo(view, 'execute', () => {\n this._showForm();\n });\n return view;\n });\n }\n /**\n * Creates the {@link module:image/imagetextalternative/ui/textalternativeformview~TextAlternativeFormView}\n * form.\n */\n _createForm() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const imageUtils = editor.plugins.get('ImageUtils');\n this._balloon = this.editor.plugins.get('ContextualBalloon');\n this._form = new (CssTransitionDisablerMixin(TextAlternativeFormView))(editor.locale);\n // Render the form so its #element is available for clickOutsideHandler.\n this._form.render();\n this.listenTo(this._form, 'submit', () => {\n editor.execute('imageTextAlternative', {\n newValue: this._form.labeledInput.fieldView.element.value\n });\n this._hideForm(true);\n });\n this.listenTo(this._form, 'cancel', () => {\n this._hideForm(true);\n });\n // Close the form on Esc key press.\n this._form.keystrokes.set('Esc', (data, cancel) => {\n this._hideForm(true);\n cancel();\n });\n // Reposition the balloon or hide the form if an image widget is no longer selected.\n this.listenTo(editor.ui, 'update', () => {\n if (!imageUtils.getClosestSelectedImageWidget(viewDocument.selection)) {\n this._hideForm(true);\n }\n else if (this._isVisible) {\n repositionContextualBalloon(editor);\n }\n });\n // Close on click outside of balloon panel element.\n clickOutsideHandler({\n emitter: this._form,\n activator: () => this._isVisible,\n contextElements: () => [this._balloon.view.element],\n callback: () => this._hideForm()\n });\n }\n /**\n * Shows the {@link #_form} in the {@link #_balloon}.\n */\n _showForm() {\n if (this._isVisible) {\n return;\n }\n if (!this._form) {\n this._createForm();\n }\n const editor = this.editor;\n const command = editor.commands.get('imageTextAlternative');\n const labeledInput = this._form.labeledInput;\n this._form.disableCssTransitions();\n if (!this._isInBalloon) {\n this._balloon.add({\n view: this._form,\n position: getBalloonPositionData(editor)\n });\n }\n // Make sure that each time the panel shows up, the field remains in sync with the value of\n // the command. If the user typed in the input, then canceled the balloon (`labeledInput#value`\n // stays unaltered) and re-opened it without changing the value of the command, they would see the\n // old value instead of the actual value of the command.\n // https://github.com/ckeditor/ckeditor5-image/issues/114\n labeledInput.fieldView.value = labeledInput.fieldView.element.value = command.value || '';\n this._form.labeledInput.fieldView.select();\n this._form.enableCssTransitions();\n }\n /**\n * Removes the {@link #_form} from the {@link #_balloon}.\n *\n * @param focusEditable Controls whether the editing view is focused afterwards.\n */\n _hideForm(focusEditable = false) {\n if (!this._isInBalloon) {\n return;\n }\n // Blur the input element before removing it from DOM to prevent issues in some browsers.\n // See https://github.com/ckeditor/ckeditor5/issues/1501.\n if (this._form.focusTracker.isFocused) {\n this._form.saveButtonView.focus();\n }\n this._balloon.remove(this._form);\n if (focusEditable) {\n this.editor.editing.view.focus();\n }\n }\n /**\n * Returns `true` when the {@link #_form} is the visible view in the {@link #_balloon}.\n */\n get _isVisible() {\n return !!this._balloon && this._balloon.visibleView === this._form;\n }\n /**\n * Returns `true` when the {@link #_form} is in the {@link #_balloon}.\n */\n get _isInBalloon() {\n return !!this._balloon && this._balloon.hasView(this._form);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative\n */\n/**\n * The image text alternative plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-styles image styles} documentation.\n *\n * This is a \"glue\" plugin which loads the\n * {@link module:image/imagetextalternative/imagetextalternativeediting~ImageTextAlternativeEditing}\n * and {@link module:image/imagetextalternative/imagetextalternativeui~ImageTextAlternativeUI} plugins.\n */\nclass ImageTextAlternative extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageTextAlternativeEditing, ImageTextAlternativeUI];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageTextAlternative';\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Returns a function that converts the image view representation:\n *\n * ```html\n * <figure class=\"image\"><img src=\"...\" alt=\"...\"></img></figure>\n * ```\n *\n * to the model representation:\n *\n * ```html\n * <imageBlock src=\"...\" alt=\"...\"></imageBlock>\n * ```\n *\n * The entire content of the `<figure>` element except the first `<img>` is being converted as children\n * of the `<imageBlock>` model element.\n *\n * @internal\n */\nfunction upcastImageFigure(imageUtils) {\n const converter = (evt, data, conversionApi) => {\n // Do not convert if this is not an \"image figure\".\n if (!conversionApi.consumable.test(data.viewItem, { name: true, classes: 'image' })) {\n return;\n }\n // Find an image element inside the figure element.\n const viewImage = imageUtils.findViewImgElement(data.viewItem);\n // Do not convert if image element is absent or was already converted.\n if (!viewImage || !conversionApi.consumable.test(viewImage, { name: true })) {\n return;\n }\n // Consume the figure to prevent other converters from processing it again.\n conversionApi.consumable.consume(data.viewItem, { name: true, classes: 'image' });\n // Convert view image to model image.\n const conversionResult = conversionApi.convertItem(viewImage, data.modelCursor);\n // Get image element from conversion result.\n const modelImage = first(conversionResult.modelRange.getItems());\n // When image wasn't successfully converted then finish conversion.\n if (!modelImage) {\n // Revert consumed figure so other features can convert it.\n conversionApi.consumable.revert(data.viewItem, { name: true, classes: 'image' });\n return;\n }\n // Convert rest of the figure element's children as an image children.\n conversionApi.convertChildren(data.viewItem, modelImage);\n conversionApi.updateConversionResult(modelImage, data);\n };\n return dispatcher => {\n dispatcher.on('element:figure', converter);\n };\n}\n/**\n * Returns a function that converts the image view representation:\n *\n * ```html\n * <picture><source ... /><source ... />...<img ... /></picture>\n * ```\n *\n * to the model representation as the `sources` attribute:\n *\n * ```html\n * <image[Block|Inline] ... sources=\"...\"></image[Block|Inline]>\n * ```\n *\n * @internal\n */\nfunction upcastPicture(imageUtils) {\n const sourceAttributeNames = ['srcset', 'media', 'type', 'sizes'];\n const converter = (evt, data, conversionApi) => {\n const pictureViewElement = data.viewItem;\n // Do not convert <picture> if already consumed.\n if (!conversionApi.consumable.test(pictureViewElement, { name: true })) {\n return;\n }\n const sources = new Map();\n // Collect all <source /> elements attribute values.\n for (const childSourceElement of pictureViewElement.getChildren()) {\n if (childSourceElement.is('element', 'source')) {\n const attributes = {};\n for (const name of sourceAttributeNames) {\n if (childSourceElement.hasAttribute(name)) {\n // Don't collect <source /> attribute if already consumed somewhere else.\n if (conversionApi.consumable.test(childSourceElement, { attributes: name })) {\n attributes[name] = childSourceElement.getAttribute(name);\n }\n }\n }\n if (Object.keys(attributes).length) {\n sources.set(childSourceElement, attributes);\n }\n }\n }\n const imgViewElement = imageUtils.findViewImgElement(pictureViewElement);\n // Don't convert when a picture has no <img/> inside (it is broken).\n if (!imgViewElement) {\n return;\n }\n let modelImage = data.modelCursor.parent;\n // - In case of an inline image (cursor parent in a <paragraph>), the <img/> must be converted right away\n // because no converter handled it yet and otherwise there would be no model element to set the sources attribute on.\n // - In case of a block image, the <figure class=\"image\"> converter (in ImageBlockEditing) converts the\n // <img/> right away on its own and the modelCursor is already inside an imageBlock and there's nothing special\n // to do here.\n if (!modelImage.is('element', 'imageBlock')) {\n const conversionResult = conversionApi.convertItem(imgViewElement, data.modelCursor);\n // Set image range as conversion result.\n data.modelRange = conversionResult.modelRange;\n // Continue conversion where image conversion ends.\n data.modelCursor = conversionResult.modelCursor;\n modelImage = first(conversionResult.modelRange.getItems());\n }\n conversionApi.consumable.consume(pictureViewElement, { name: true });\n // Consume only these <source/> attributes that were actually collected and will be passed on\n // to the image model element.\n for (const [sourceElement, attributes] of sources) {\n conversionApi.consumable.consume(sourceElement, { attributes: Object.keys(attributes) });\n }\n if (sources.size) {\n conversionApi.writer.setAttribute('sources', Array.from(sources.values()), modelImage);\n }\n // Convert rest of the <picture> children as an image children. Other converters may want to consume them.\n conversionApi.convertChildren(pictureViewElement, modelImage);\n };\n return dispatcher => {\n dispatcher.on('element:picture', converter);\n };\n}\n/**\n * Converter used to convert the `srcset` model image attribute to the `srcset` and `sizes` attributes in the view.\n *\n * @internal\n * @param imageType The type of the image.\n */\nfunction downcastSrcsetAttribute(imageUtils, imageType) {\n const converter = (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const writer = conversionApi.writer;\n const element = conversionApi.mapper.toViewElement(data.item);\n const img = imageUtils.findViewImgElement(element);\n if (data.attributeNewValue === null) {\n writer.removeAttribute('srcset', img);\n writer.removeAttribute('sizes', img);\n }\n else {\n if (data.attributeNewValue) {\n writer.setAttribute('srcset', data.attributeNewValue, img);\n // Always outputting `100vw`. See https://github.com/ckeditor/ckeditor5-image/issues/2.\n writer.setAttribute('sizes', '100vw', img);\n }\n }\n };\n return dispatcher => {\n dispatcher.on(`attribute:srcset:${imageType}`, converter);\n };\n}\n/**\n * Converts the `source` model attribute to the `<picture><source /><source />...<img /></picture>`\n * view structure.\n *\n * @internal\n */\nfunction downcastSourcesAttribute(imageUtils) {\n const converter = (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const element = conversionApi.mapper.toViewElement(data.item);\n const imgElement = imageUtils.findViewImgElement(element);\n const attributeNewValue = data.attributeNewValue;\n if (attributeNewValue && attributeNewValue.length) {\n // Make sure <picture> does not break attribute elements, for instance <a> in linked images.\n const pictureElement = viewWriter.createContainerElement('picture', null, attributeNewValue.map(sourceAttributes => {\n return viewWriter.createEmptyElement('source', sourceAttributes);\n }));\n // Collect all wrapping attribute elements.\n const attributeElements = [];\n let viewElement = imgElement.parent;\n while (viewElement && viewElement.is('attributeElement')) {\n const parentElement = viewElement.parent;\n viewWriter.unwrap(viewWriter.createRangeOn(imgElement), viewElement);\n attributeElements.unshift(viewElement);\n viewElement = parentElement;\n }\n // Insert the picture and move img into it.\n viewWriter.insert(viewWriter.createPositionBefore(imgElement), pictureElement);\n viewWriter.move(viewWriter.createRangeOn(imgElement), viewWriter.createPositionAt(pictureElement, 'end'));\n // Apply collected attribute elements over the new picture element.\n for (const attributeElement of attributeElements) {\n viewWriter.wrap(viewWriter.createRangeOn(pictureElement), attributeElement);\n }\n }\n // Both setting \"sources\" to an empty array and removing the attribute should unwrap the <img />.\n // Unwrap once if the latter followed the former, though.\n else if (imgElement.parent.is('element', 'picture')) {\n const pictureElement = imgElement.parent;\n viewWriter.move(viewWriter.createRangeOn(imgElement), viewWriter.createPositionBefore(pictureElement));\n viewWriter.remove(pictureElement);\n }\n };\n return dispatcher => {\n dispatcher.on('attribute:sources:imageBlock', converter);\n dispatcher.on('attribute:sources:imageInline', converter);\n };\n}\n/**\n * Converter used to convert a given image attribute from the model to the view.\n *\n * @internal\n * @param imageType The type of the image.\n * @param attributeKey The name of the attribute to convert.\n */\nfunction downcastImageAttribute(imageUtils, imageType, attributeKey) {\n const converter = (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const element = conversionApi.mapper.toViewElement(data.item);\n const img = imageUtils.findViewImgElement(element);\n viewWriter.setAttribute(data.attributeKey, data.attributeNewValue || '', img);\n };\n return dispatcher => {\n dispatcher.on(`attribute:${attributeKey}:${imageType}`, converter);\n };\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageloadobserver\n */\n/**\n * Observes all new images added to the {@link module:engine/view/document~Document},\n * fires {@link module:engine/view/document~Document#event:imageLoaded} and\n * {@link module:engine/view/document~Document#event:layoutChanged} event every time when the new image\n * has been loaded.\n *\n * **Note:** This event is not fired for images that has been added to the document and rendered as `complete` (already loaded).\n */\nclass ImageLoadObserver extends Observer {\n /**\n * @inheritDoc\n */\n observe(domRoot) {\n this.listenTo(domRoot, 'load', (event, domEvent) => {\n const domElement = domEvent.target;\n if (this.checkShouldIgnoreEventFromTarget(domElement)) {\n return;\n }\n if (domElement.tagName == 'IMG') {\n this._fireEvents(domEvent);\n }\n // Use capture phase for better performance (#4504).\n }, { useCapture: true });\n }\n /**\n * @inheritDoc\n */\n stopObserving(domRoot) {\n this.stopListening(domRoot);\n }\n /**\n * Fires {@link module:engine/view/document~Document#event:layoutChanged} and\n * {@link module:engine/view/document~Document#event:imageLoaded}\n * if observer {@link #isEnabled is enabled}.\n *\n * @param domEvent The DOM event.\n */\n _fireEvents(domEvent) {\n if (this.isEnabled) {\n this.document.fire('layoutChanged');\n this.document.fire('imageLoaded', domEvent);\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/insertimagecommand\n */\n/**\n * Insert image command.\n *\n * The command is registered by the {@link module:image/image/imageediting~ImageEditing} plugin as `insertImage`\n * and it is also available via aliased `imageInsert` name.\n *\n * In order to insert an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionRange} algorithm),\n * execute the command and specify the image source:\n *\n * ```ts\n * editor.execute( 'insertImage', { source: 'http://url.to.the/image' } );\n * ```\n *\n * It is also possible to insert multiple images at once:\n *\n * ```ts\n * editor.execute( 'insertImage', {\n * \tsource: [\n * \t\t'path/to/image.jpg',\n * \t\t'path/to/other-image.jpg'\n * \t]\n * } );\n * ```\n *\n * If you want to take the full control over the process, you can specify individual model attributes:\n *\n * ```ts\n * editor.execute( 'insertImage', {\n * \tsource: [\n * \t\t{ src: 'path/to/image.jpg', alt: 'First alt text' },\n * \t\t{ src: 'path/to/other-image.jpg', alt: 'Second alt text', customAttribute: 'My attribute value' }\n * \t]\n * } );\n * ```\n */\nclass InsertImageCommand extends Command {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n const configImageInsertType = editor.config.get('image.insert.type');\n if (!editor.plugins.has('ImageBlockEditing')) {\n if (configImageInsertType === 'block') {\n /**\n * The {@link module:image/imageblock~ImageBlock} plugin must be enabled to allow inserting block images. See\n * {@link module:image/imageconfig~ImageInsertConfig#type} to learn more.\n *\n * @error image-block-plugin-required\n */\n logWarning('image-block-plugin-required');\n }\n }\n if (!editor.plugins.has('ImageInlineEditing')) {\n if (configImageInsertType === 'inline') {\n /**\n * The {@link module:image/imageinline~ImageInline} plugin must be enabled to allow inserting inline images. See\n * {@link module:image/imageconfig~ImageInsertConfig#type} to learn more.\n *\n * @error image-inline-plugin-required\n */\n logWarning('image-inline-plugin-required');\n }\n }\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const imageUtils = this.editor.plugins.get('ImageUtils');\n this.isEnabled = imageUtils.isImageAllowed();\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param options Options for the executed command.\n * @param options.source The image source or an array of image sources to insert.\n * See the documentation of the command to learn more about accepted formats.\n */\n execute(options) {\n const sourceDefinitions = toArray(options.source);\n const selection = this.editor.model.document.selection;\n const imageUtils = this.editor.plugins.get('ImageUtils');\n // In case of multiple images, each image (starting from the 2nd) will be inserted at a position that\n // follows the previous one. That will move the selection and, to stay on the safe side and make sure\n // all images inherit the same selection attributes, they are collected beforehand.\n //\n // Applying these attributes ensures, for instance, that inserting an (inline) image into a link does\n // not split that link but preserves its continuity.\n //\n // Note: Selection attributes that do not make sense for images will be filtered out by insertImage() anyway.\n const selectionAttributes = Object.fromEntries(selection.getAttributes());\n sourceDefinitions.forEach((sourceDefinition, index) => {\n const selectedElement = selection.getSelectedElement();\n if (typeof sourceDefinition === 'string') {\n sourceDefinition = { src: sourceDefinition };\n }\n // Inserting of an inline image replace the selected element and make a selection on the inserted image.\n // Therefore inserting multiple inline images requires creating position after each element.\n if (index && selectedElement && imageUtils.isImage(selectedElement)) {\n const position = this.editor.model.createPositionAfter(selectedElement);\n imageUtils.insertImage({ ...sourceDefinition, ...selectionAttributes }, position);\n }\n else {\n imageUtils.insertImage({ ...sourceDefinition, ...selectionAttributes });\n }\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/replaceimagesourcecommand\n */\n/**\n * Replace image source command.\n *\n * Changes image source to the one provided. Can be executed as follows:\n *\n * ```ts\n * editor.execute( 'replaceImageSource', { source: 'http://url.to.the/image' } );\n * ```\n */\nclass ReplaceImageSourceCommand extends Command {\n constructor(editor) {\n super(editor);\n this.decorate('cleanupImage');\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = this.editor.model.document.selection.getSelectedElement();\n this.isEnabled = imageUtils.isImage(element);\n this.value = this.isEnabled ? element.getAttribute('src') : null;\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param options Options for the executed command.\n * @param options.source The image source to replace.\n */\n execute(options) {\n const image = this.editor.model.document.selection.getSelectedElement();\n const imageUtils = this.editor.plugins.get('ImageUtils');\n this.editor.model.change(writer => {\n writer.setAttribute('src', options.source, image);\n this.cleanupImage(writer, image);\n imageUtils.setImageNaturalSizeAttributes(image);\n });\n }\n /**\n * Cleanup image attributes that are not relevant to the new source.\n *\n * Removed attributes are: 'srcset', 'sizes', 'sources', 'width', 'height', 'alt'.\n *\n * This method is decorated, to allow custom cleanup logic.\n * For example, to remove 'myImageId' attribute after 'src' has changed:\n *\n * ```ts\n * replaceImageSourceCommand.on( 'cleanupImage', ( eventInfo, [ writer, image ] ) => {\n * \twriter.removeAttribute( 'myImageId', image );\n * } );\n * ```\n */\n cleanupImage(writer, image) {\n writer.removeAttribute('srcset', image);\n writer.removeAttribute('sizes', image);\n /**\n * In case responsive images some attributes should be cleaned up.\n * Check: https://github.com/ckeditor/ckeditor5/issues/15093\n */\n writer.removeAttribute('sources', image);\n writer.removeAttribute('width', image);\n writer.removeAttribute('height', image);\n writer.removeAttribute('alt', image);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageediting\n */\n/**\n * The image engine plugin. This module loads common code shared between\n * {@link module:image/image/imageinlineediting~ImageInlineEditing} and\n * {@link module:image/image/imageblockediting~ImageBlockEditing} plugins.\n *\n * This plugin registers the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command.\n */\nclass ImageEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const conversion = editor.conversion;\n // See https://github.com/ckeditor/ckeditor5-image/issues/142.\n editor.editing.view.addObserver(ImageLoadObserver);\n conversion.for('upcast')\n .attributeToAttribute({\n view: {\n name: 'img',\n key: 'alt'\n },\n model: 'alt'\n })\n .attributeToAttribute({\n view: {\n name: 'img',\n key: 'srcset'\n },\n model: 'srcset'\n });\n const insertImageCommand = new InsertImageCommand(editor);\n const replaceImageSourceCommand = new ReplaceImageSourceCommand(editor);\n editor.commands.add('insertImage', insertImageCommand);\n editor.commands.add('replaceImageSource', replaceImageSourceCommand);\n // `imageInsert` is an alias for backward compatibility.\n editor.commands.add('imageInsert', insertImageCommand);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagesizeattributes\n */\n/**\n * This plugin enables `width` and `height` attributes in inline and block image elements.\n */\nclass ImageSizeAttributes extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageSizeAttributes';\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n this._registerSchema();\n this._registerConverters('imageBlock');\n this._registerConverters('imageInline');\n }\n /**\n * Registers the `width` and `height` attributes for inline and block images.\n */\n _registerSchema() {\n if (this.editor.plugins.has('ImageBlockEditing')) {\n this.editor.model.schema.extend('imageBlock', { allowAttributes: ['width', 'height'] });\n }\n if (this.editor.plugins.has('ImageInlineEditing')) {\n this.editor.model.schema.extend('imageInline', { allowAttributes: ['width', 'height'] });\n }\n }\n /**\n * Registers converters for `width` and `height` attributes.\n */\n _registerConverters(imageType) {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const viewElementName = imageType === 'imageBlock' ? 'figure' : 'img';\n editor.conversion.for('upcast')\n .attributeToAttribute({\n view: {\n name: viewElementName,\n styles: {\n width: /.+/\n }\n },\n model: {\n key: 'width',\n value: (viewElement) => {\n if (widthAndHeightStylesAreBothSet(viewElement)) {\n return getSizeValueIfInPx(viewElement.getStyle('width'));\n }\n return null;\n }\n }\n })\n .attributeToAttribute({\n view: {\n name: viewElementName,\n key: 'width'\n },\n model: 'width'\n })\n .attributeToAttribute({\n view: {\n name: viewElementName,\n styles: {\n height: /.+/\n }\n },\n model: {\n key: 'height',\n value: (viewElement) => {\n if (widthAndHeightStylesAreBothSet(viewElement)) {\n return getSizeValueIfInPx(viewElement.getStyle('height'));\n }\n return null;\n }\n }\n })\n .attributeToAttribute({\n view: {\n name: viewElementName,\n key: 'height'\n },\n model: 'height'\n });\n // Dedicated converters to propagate attributes to the <img> element.\n editor.conversion.for('editingDowncast').add(dispatcher => {\n attachDowncastConverter(dispatcher, 'width', 'width', true);\n attachDowncastConverter(dispatcher, 'height', 'height', true);\n });\n editor.conversion.for('dataDowncast').add(dispatcher => {\n attachDowncastConverter(dispatcher, 'width', 'width', false);\n attachDowncastConverter(dispatcher, 'height', 'height', false);\n });\n function attachDowncastConverter(dispatcher, modelAttributeName, viewAttributeName, setRatioForInlineImage) {\n dispatcher.on(`attribute:${modelAttributeName}:${imageType}`, (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const viewElement = conversionApi.mapper.toViewElement(data.item);\n const img = imageUtils.findViewImgElement(viewElement);\n if (data.attributeNewValue !== null) {\n viewWriter.setAttribute(viewAttributeName, data.attributeNewValue, img);\n }\n else {\n viewWriter.removeAttribute(viewAttributeName, img);\n }\n // Do not set aspect-ratio for pictures. See https://github.com/ckeditor/ckeditor5/issues/14579.\n if (data.item.hasAttribute('sources')) {\n return;\n }\n const isResized = data.item.hasAttribute('resizedWidth');\n // Do not set aspect ratio for inline images which are not resized (data pipeline).\n if (imageType === 'imageInline' && !isResized && !setRatioForInlineImage) {\n return;\n }\n const width = data.item.getAttribute('width');\n const height = data.item.getAttribute('height');\n if (width && height) {\n viewWriter.setStyle('aspect-ratio', `${width}/${height}`, img);\n }\n });\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * The image type command. It changes the type of a selected image, depending on the configuration.\n */\nclass ImageTypeCommand extends Command {\n /**\n * @inheritDoc\n *\n * @param modelElementName Model element name the command converts to.\n */\n constructor(editor, modelElementName) {\n super(editor);\n this._modelElementName = modelElementName;\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = imageUtils.getClosestSelectedImageElement(this.editor.model.document.selection);\n if (this._modelElementName === 'imageBlock') {\n this.isEnabled = imageUtils.isInlineImage(element);\n }\n else {\n this.isEnabled = imageUtils.isBlockImage(element);\n }\n }\n /**\n * Executes the command and changes the type of a selected image.\n *\n * @fires execute\n * @param options.setImageSizes Specifies whether the image `width` and `height` attributes should be set automatically.\n * The default is `true`.\n * @returns An object containing references to old and new model image elements\n * (for before and after the change) so external integrations can hook into the decorated\n * `execute` event and handle this change. `null` if the type change failed.\n */\n execute(options = {}) {\n const editor = this.editor;\n const model = this.editor.model;\n const imageUtils = editor.plugins.get('ImageUtils');\n const oldElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n const attributes = Object.fromEntries(oldElement.getAttributes());\n // Don't change image type if \"src\" is missing (a broken image), unless there's \"uploadId\" set.\n // This state may happen during image upload (before it finishes) and it should be possible to change type\n // of the image in the meantime.\n if (!attributes.src && !attributes.uploadId) {\n return null;\n }\n return model.change(writer => {\n const { setImageSizes = true } = options;\n // Get all markers that contain the old image element.\n const markers = Array.from(model.markers)\n .filter(marker => marker.getRange().containsItem(oldElement));\n const newElement = imageUtils.insertImage(attributes, model.createSelection(oldElement, 'on'), this._modelElementName, { setImageSizes });\n if (!newElement) {\n return null;\n }\n const newElementRange = writer.createRangeOn(newElement);\n // Expand the previously intersecting markers' ranges to include the new image element.\n for (const marker of markers) {\n const markerRange = marker.getRange();\n // Join the survived part of the old marker range with the new element range\n // (loosely because there could be some new paragraph or the existing one might got split).\n const range = markerRange.root.rootName != '$graveyard' ?\n markerRange.getJoined(newElementRange, true) : newElementRange;\n writer.updateMarker(marker, { range });\n }\n return {\n oldElement,\n newElement\n };\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageplaceholder\n */\n/**\n * Adds support for image placeholder that is automatically removed when the image is loaded.\n */\nclass ImagePlaceholder extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImagePlaceholder';\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n this._setupSchema();\n this._setupConversion();\n this._setupLoadListener();\n }\n /**\n * Extends model schema.\n */\n _setupSchema() {\n const schema = this.editor.model.schema;\n // Wait for ImageBlockEditing or ImageInlineEditing to register their elements first,\n // that's why doing this in afterInit() instead of init().\n if (schema.isRegistered('imageBlock')) {\n schema.extend('imageBlock', {\n allowAttributes: ['placeholder']\n });\n }\n if (schema.isRegistered('imageInline')) {\n schema.extend('imageInline', {\n allowAttributes: ['placeholder']\n });\n }\n }\n /**\n * Registers converters.\n */\n _setupConversion() {\n const editor = this.editor;\n const conversion = editor.conversion;\n const imageUtils = editor.plugins.get('ImageUtils');\n conversion.for('editingDowncast').add(dispatcher => {\n dispatcher.on('attribute:placeholder', (evt, data, conversionApi) => {\n if (!conversionApi.consumable.test(data.item, evt.name)) {\n return;\n }\n if (!data.item.is('element', 'imageBlock') && !data.item.is('element', 'imageInline')) {\n return;\n }\n conversionApi.consumable.consume(data.item, evt.name);\n const viewWriter = conversionApi.writer;\n const element = conversionApi.mapper.toViewElement(data.item);\n const img = imageUtils.findViewImgElement(element);\n if (data.attributeNewValue) {\n viewWriter.addClass('image_placeholder', img);\n viewWriter.setStyle('background-image', `url(${data.attributeNewValue})`, img);\n viewWriter.setCustomProperty('editingPipeline:doNotReuseOnce', true, img);\n }\n else {\n viewWriter.removeClass('image_placeholder', img);\n viewWriter.removeStyle('background-image', img);\n }\n });\n });\n }\n /**\n * Prepares listener for image load.\n */\n _setupLoadListener() {\n const editor = this.editor;\n const model = editor.model;\n const editing = editor.editing;\n const editingView = editing.view;\n const imageUtils = editor.plugins.get('ImageUtils');\n editingView.addObserver(ImageLoadObserver);\n this.listenTo(editingView.document, 'imageLoaded', (evt, domEvent) => {\n const imgViewElement = editingView.domConverter.mapDomToView(domEvent.target);\n if (!imgViewElement) {\n return;\n }\n const viewElement = imageUtils.getImageWidgetFromImageView(imgViewElement);\n if (!viewElement) {\n return;\n }\n const modelElement = editing.mapper.toModelElement(viewElement);\n if (!modelElement || !modelElement.hasAttribute('placeholder')) {\n return;\n }\n model.enqueueChange({ isUndoable: false }, writer => {\n writer.removeAttribute('placeholder', modelElement);\n });\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageblockediting\n */\n/**\n * The image block plugin.\n *\n * It registers:\n *\n * * `<imageBlock>` as a block element in the document schema, and allows `alt`, `src` and `srcset` attributes.\n * * converters for editing and data pipelines.,\n * * {@link module:image/image/imagetypecommand~ImageTypeCommand `'imageTypeBlock'`} command that converts inline images into\n * block images.\n */\nclass ImageBlockEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageEditing, ImageSizeAttributes, ImageUtils, ImagePlaceholder, ClipboardPipeline];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageBlockEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n // Converters 'alt' and 'srcset' are added in 'ImageEditing' plugin.\n schema.register('imageBlock', {\n inheritAllFrom: '$blockObject',\n allowAttributes: ['alt', 'src', 'srcset']\n });\n this._setupConversion();\n if (editor.plugins.has('ImageInlineEditing')) {\n editor.commands.add('imageTypeBlock', new ImageTypeCommand(this.editor, 'imageBlock'));\n this._setupClipboardIntegration();\n }\n }\n /**\n * Configures conversion pipelines to support upcasting and downcasting\n * block images (block image widgets) and their attributes.\n */\n _setupConversion() {\n const editor = this.editor;\n const t = editor.t;\n const conversion = editor.conversion;\n const imageUtils = editor.plugins.get('ImageUtils');\n conversion.for('dataDowncast')\n .elementToStructure({\n model: 'imageBlock',\n view: (modelElement, { writer }) => createBlockImageViewElement(writer)\n });\n conversion.for('editingDowncast')\n .elementToStructure({\n model: 'imageBlock',\n view: (modelElement, { writer }) => imageUtils.toImageWidget(createBlockImageViewElement(writer), writer, t('image widget'))\n });\n conversion.for('downcast')\n .add(downcastImageAttribute(imageUtils, 'imageBlock', 'src'))\n .add(downcastImageAttribute(imageUtils, 'imageBlock', 'alt'))\n .add(downcastSrcsetAttribute(imageUtils, 'imageBlock'));\n // More image related upcasts are in 'ImageEditing' plugin.\n conversion.for('upcast')\n .elementToElement({\n view: getImgViewElementMatcher(editor, 'imageBlock'),\n model: (viewImage, { writer }) => writer.createElement('imageBlock', viewImage.hasAttribute('src') ? { src: viewImage.getAttribute('src') } : undefined)\n })\n .add(upcastImageFigure(imageUtils));\n }\n /**\n * Integrates the plugin with the clipboard pipeline.\n *\n * Idea is that the feature should recognize the user's intent when an **inline** image is\n * pasted or dropped. If such an image is pasted/dropped:\n *\n * * into an empty block (e.g. an empty paragraph),\n * * on another object (e.g. some block widget).\n *\n * it gets converted into a block image on the fly. We assume this is the user's intent\n * if they decided to put their image there.\n *\n * See the `ImageInlineEditing` for the similar integration that works in the opposite direction.\n *\n * The feature also sets image `width` and `height` attributes on paste.\n */\n _setupClipboardIntegration() {\n const editor = this.editor;\n const model = editor.model;\n const editingView = editor.editing.view;\n const imageUtils = editor.plugins.get('ImageUtils');\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n this.listenTo(clipboardPipeline, 'inputTransformation', (evt, data) => {\n const docFragmentChildren = Array.from(data.content.getChildren());\n let modelRange;\n // Make sure only <img> elements are dropped or pasted. Otherwise, if there some other HTML\n // mixed up, this should be handled as a regular paste.\n if (!docFragmentChildren.every(imageUtils.isInlineImageView)) {\n return;\n }\n // When drag and dropping, data.targetRanges specifies where to drop because\n // this is usually a different place than the current model selection (the user\n // uses a drop marker to specify the drop location).\n if (data.targetRanges) {\n modelRange = editor.editing.mapper.toModelRange(data.targetRanges[0]);\n }\n // Pasting, however, always occurs at the current model selection.\n else {\n modelRange = model.document.selection.getFirstRange();\n }\n const selection = model.createSelection(modelRange);\n // Convert inline images into block images only when the currently selected block is empty\n // (e.g. an empty paragraph) or some object is selected (to replace it).\n if (determineImageTypeForInsertionAtSelection(model.schema, selection) === 'imageBlock') {\n const writer = new UpcastWriter(editingView.document);\n // Wrap <img ... /> -> <figure class=\"image\"><img .../></figure>\n const blockViewImages = docFragmentChildren.map(inlineViewImage => writer.createElement('figure', { class: 'image' }, inlineViewImage));\n data.content = writer.createDocumentFragment(blockViewImages);\n }\n });\n this.listenTo(clipboardPipeline, 'contentInsertion', (evt, data) => {\n if (data.method !== 'paste') {\n return;\n }\n model.change(writer => {\n const range = writer.createRangeIn(data.content);\n for (const item of range.getItems()) {\n if (item.is('element', 'imageBlock')) {\n imageUtils.setImageNaturalSizeAttributes(item);\n }\n }\n });\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinsert/ui/imageinsertformview\n */\n/**\n * The view displayed in the insert image dropdown.\n *\n * See {@link module:image/imageinsert/imageinsertui~ImageInsertUI}.\n */\nclass ImageInsertFormView extends View {\n /**\n * Creates a view for the dropdown panel of {@link module:image/imageinsert/imageinsertui~ImageInsertUI}.\n *\n * @param locale The localization services instance.\n * @param integrations An integrations object that contains components (or tokens for components) to be shown in the panel view.\n */\n constructor(locale, integrations = []) {\n super(locale);\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this._focusables = new ViewCollection();\n this.children = this.createCollection();\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n for (const view of integrations) {\n this.children.add(view);\n this._focusables.add(view);\n if (view instanceof CollapsibleView) {\n this._focusables.addMany(view.children);\n }\n }\n if (this._focusables.length > 1) {\n for (const view of this._focusables) {\n if (isViewWithFocusCycler(view)) {\n view.focusCycler.on('forwardCycle', evt => {\n this._focusCycler.focusNext();\n evt.stop();\n });\n view.focusCycler.on('backwardCycle', evt => {\n this._focusCycler.focusPrevious();\n evt.stop();\n });\n }\n }\n }\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: [\n 'ck',\n 'ck-image-insert-form'\n ],\n tabindex: -1\n },\n children: this.children\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n submitHandler({\n view: this\n });\n for (const view of this._focusables) {\n this.focusTracker.add(view.element);\n }\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n const stopPropagation = (data) => data.stopPropagation();\n // Since the form is in the dropdown panel which is a child of the toolbar, the toolbar's\n // keystroke handler would take over the key management in the URL input. We need to prevent\n // this ASAP. Otherwise, the basic caret movement using the arrow keys will be impossible.\n this.keystrokes.set('arrowright', stopPropagation);\n this.keystrokes.set('arrowleft', stopPropagation);\n this.keystrokes.set('arrowup', stopPropagation);\n this.keystrokes.set('arrowdown', stopPropagation);\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n * Focuses the first {@link #_focusables focusable} in the form.\n */\n focus() {\n this._focusCycler.focusFirst();\n }\n}\nfunction isViewWithFocusCycler(view) {\n return 'focusCycler' in view;\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinsert/imageinsertui\n */\n/**\n * The image insert dropdown plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload Image upload feature}\n * and {@glink features/images/images-inserting Insert images via source URL} documentation.\n *\n * Adds the `'insertImage'` dropdown to the {@link module:ui/componentfactory~ComponentFactory UI component factory}\n * and also the `imageInsert` dropdown as an alias for backward compatibility.\n */\nclass ImageInsertUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInsertUI';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n /**\n * Registered integrations map.\n */\n this._integrations = new Map();\n editor.config.define('image.insert.integrations', [\n 'upload',\n 'assetManager',\n 'url'\n ]);\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n const imageUtils = editor.plugins.get('ImageUtils');\n this.set('isImageSelected', false);\n this.listenTo(editor.model.document, 'change', () => {\n this.isImageSelected = imageUtils.isImage(selection.getSelectedElement());\n });\n const componentCreator = (locale) => this._createToolbarComponent(locale);\n // Register `insertImage` dropdown and add `imageInsert` dropdown as an alias for backward compatibility.\n editor.ui.componentFactory.add('insertImage', componentCreator);\n editor.ui.componentFactory.add('imageInsert', componentCreator);\n }\n /**\n * Registers the insert image dropdown integration.\n */\n registerIntegration({ name, observable, buttonViewCreator, formViewCreator, requiresForm }) {\n if (this._integrations.has(name)) {\n /**\n * There are two insert-image integrations registered with the same name.\n *\n * Make sure that you do not load multiple asset manager plugins.\n *\n * @error image-insert-integration-exists\n */\n logWarning('image-insert-integration-exists', { name });\n }\n this._integrations.set(name, {\n observable,\n buttonViewCreator,\n formViewCreator,\n requiresForm: !!requiresForm\n });\n }\n /**\n * Creates the toolbar component.\n */\n _createToolbarComponent(locale) {\n const editor = this.editor;\n const t = locale.t;\n const integrations = this._prepareIntegrations();\n if (!integrations.length) {\n return null;\n }\n let dropdownButton;\n const firstIntegration = integrations[0];\n if (integrations.length == 1) {\n // Do not use dropdown for a single integration button (integration that does not require form view).\n if (!firstIntegration.requiresForm) {\n return firstIntegration.buttonViewCreator(true);\n }\n dropdownButton = firstIntegration.buttonViewCreator(true);\n }\n else {\n const actionButton = firstIntegration.buttonViewCreator(false);\n dropdownButton = new SplitButtonView(locale, actionButton);\n dropdownButton.tooltip = true;\n dropdownButton.bind('label').to(this, 'isImageSelected', isImageSelected => isImageSelected ?\n t('Replace image') :\n t('Insert image'));\n }\n const dropdownView = this.dropdownView = createDropdown(locale, dropdownButton);\n const observables = integrations.map(({ observable }) => typeof observable == 'function' ? observable() : observable);\n dropdownView.bind('isEnabled').toMany(observables, 'isEnabled', (...isEnabled) => (isEnabled.some(isEnabled => isEnabled)));\n dropdownView.once('change:isOpen', () => {\n const integrationViews = integrations.map(({ formViewCreator }) => formViewCreator(integrations.length == 1));\n const imageInsertFormView = new ImageInsertFormView(editor.locale, integrationViews);\n dropdownView.panelView.children.add(imageInsertFormView);\n });\n return dropdownView;\n }\n /**\n * Validates the integrations list.\n */\n _prepareIntegrations() {\n const editor = this.editor;\n const items = editor.config.get('image.insert.integrations');\n const result = [];\n if (!items.length) {\n /**\n * The insert image feature requires a list of integrations to be provided in the editor configuration.\n *\n * The default list of integrations is `upload`, `assetManager`, `url`. Those integrations are included\n * in the insert image dropdown if the given feature plugin is loaded. You should omit the `integrations`\n * configuration key to use the default set or provide a selected list of integrations that should be used.\n *\n * @error image-insert-integrations-not-specified\n */\n logWarning('image-insert-integrations-not-specified');\n return result;\n }\n for (const item of items) {\n if (!this._integrations.has(item)) {\n if (!['upload', 'assetManager', 'url'].includes(item)) {\n /**\n * The specified insert image integration name is unknown or the providing plugin is not loaded in the editor.\n *\n * @error image-insert-unknown-integration\n */\n logWarning('image-insert-unknown-integration', { item });\n }\n continue;\n }\n result.push(this._integrations.get(item));\n }\n if (!result.length) {\n /**\n * The image insert feature requires integrations to be registered by separate features.\n *\n * The `insertImage` toolbar button requires integrations to be registered by other features.\n * For example {@link module:image/imageupload~ImageUpload ImageUpload},\n * {@link module:image/imageinsert~ImageInsert ImageInsert},\n * {@link module:image/imageinsertviaurl~ImageInsertViaUrl ImageInsertViaUrl},\n * {@link module:ckbox/ckbox~CKBox CKBox}\n *\n * @error image-insert-integrations-not-registered\n */\n logWarning('image-insert-integrations-not-registered');\n }\n return result;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageblock\n */\n/**\n * The image block plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/image/imageblockediting~ImageBlockEditing},\n * * {@link module:image/imagetextalternative~ImageTextAlternative}.\n *\n * Usually, it is used in conjunction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n */\nclass ImageBlock extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageBlockEditing, Widget, ImageTextAlternative, ImageInsertUI];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageBlock';\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageinlineediting\n */\n/**\n * The image inline plugin.\n *\n * It registers:\n *\n * * `<imageInline>` as an inline element in the document schema, and allows `alt`, `src` and `srcset` attributes.\n * * converters for editing and data pipelines.\n * * {@link module:image/image/imagetypecommand~ImageTypeCommand `'imageTypeInline'`} command that converts block images into\n * inline images.\n */\nclass ImageInlineEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageEditing, ImageSizeAttributes, ImageUtils, ImagePlaceholder, ClipboardPipeline];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInlineEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n // Converters 'alt' and 'srcset' are added in 'ImageEditing' plugin.\n schema.register('imageInline', {\n inheritAllFrom: '$inlineObject',\n allowAttributes: ['alt', 'src', 'srcset']\n });\n // Disallow inline images in captions (for now). This is the best spot to do that because\n // independent packages can introduce captions (ImageCaption, TableCaption, etc.) so better this\n // be future-proof.\n schema.addChildCheck((context, childDefinition) => {\n if (context.endsWith('caption') && childDefinition.name === 'imageInline') {\n return false;\n }\n });\n this._setupConversion();\n if (editor.plugins.has('ImageBlockEditing')) {\n editor.commands.add('imageTypeInline', new ImageTypeCommand(this.editor, 'imageInline'));\n this._setupClipboardIntegration();\n }\n }\n /**\n * Configures conversion pipelines to support upcasting and downcasting\n * inline images (inline image widgets) and their attributes.\n */\n _setupConversion() {\n const editor = this.editor;\n const t = editor.t;\n const conversion = editor.conversion;\n const imageUtils = editor.plugins.get('ImageUtils');\n conversion.for('dataDowncast')\n .elementToElement({\n model: 'imageInline',\n view: (modelElement, { writer }) => writer.createEmptyElement('img')\n });\n conversion.for('editingDowncast')\n .elementToStructure({\n model: 'imageInline',\n view: (modelElement, { writer }) => imageUtils.toImageWidget(createInlineImageViewElement(writer), writer, t('image widget'))\n });\n conversion.for('downcast')\n .add(downcastImageAttribute(imageUtils, 'imageInline', 'src'))\n .add(downcastImageAttribute(imageUtils, 'imageInline', 'alt'))\n .add(downcastSrcsetAttribute(imageUtils, 'imageInline'));\n // More image related upcasts are in 'ImageEditing' plugin.\n conversion.for('upcast')\n .elementToElement({\n view: getImgViewElementMatcher(editor, 'imageInline'),\n model: (viewImage, { writer }) => writer.createElement('imageInline', viewImage.hasAttribute('src') ? { src: viewImage.getAttribute('src') } : undefined)\n });\n }\n /**\n * Integrates the plugin with the clipboard pipeline.\n *\n * Idea is that the feature should recognize the user's intent when an **block** image is\n * pasted or dropped. If such an image is pasted/dropped into a non-empty block\n * (e.g. a paragraph with some text) it gets converted into an inline image on the fly.\n *\n * We assume this is the user's intent if they decided to put their image there.\n *\n * **Note**: If a block image has a caption, it will not be converted to an inline image\n * to avoid the confusion. Captions are added on purpose and they should never be lost\n * in the clipboard pipeline.\n *\n * See the `ImageBlockEditing` for the similar integration that works in the opposite direction.\n *\n * The feature also sets image `width` and `height` attributes when pasting.\n */\n _setupClipboardIntegration() {\n const editor = this.editor;\n const model = editor.model;\n const editingView = editor.editing.view;\n const imageUtils = editor.plugins.get('ImageUtils');\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n this.listenTo(clipboardPipeline, 'inputTransformation', (evt, data) => {\n const docFragmentChildren = Array.from(data.content.getChildren());\n let modelRange;\n // Make sure only <figure class=\"image\"></figure> elements are dropped or pasted. Otherwise, if there some other HTML\n // mixed up, this should be handled as a regular paste.\n if (!docFragmentChildren.every(imageUtils.isBlockImageView)) {\n return;\n }\n // When drag and dropping, data.targetRanges specifies where to drop because\n // this is usually a different place than the current model selection (the user\n // uses a drop marker to specify the drop location).\n if (data.targetRanges) {\n modelRange = editor.editing.mapper.toModelRange(data.targetRanges[0]);\n }\n // Pasting, however, always occurs at the current model selection.\n else {\n modelRange = model.document.selection.getFirstRange();\n }\n const selection = model.createSelection(modelRange);\n // Convert block images into inline images only when pasting or dropping into non-empty blocks\n // and when the block is not an object (e.g. pasting to replace another widget).\n if (determineImageTypeForInsertionAtSelection(model.schema, selection) === 'imageInline') {\n const writer = new UpcastWriter(editingView.document);\n // Unwrap <figure class=\"image\"><img .../></figure> -> <img ... />\n // but <figure class=\"image\"><img .../><figcaption>...</figcaption></figure> -> stays the same\n const inlineViewImages = docFragmentChildren.map(blockViewImage => {\n // If there's just one child, it can be either <img /> or <a><img></a>.\n // If there are other children than <img>, this means that the block image\n // has a caption or some other features and this kind of image should be\n // pasted/dropped without modifications.\n if (blockViewImage.childCount === 1) {\n // Pass the attributes which are present only in the <figure> to the <img>\n // (e.g. the style=\"width:10%\" attribute applied by the ImageResize plugin).\n Array.from(blockViewImage.getAttributes())\n .forEach(attribute => writer.setAttribute(...attribute, imageUtils.findViewImgElement(blockViewImage)));\n return blockViewImage.getChild(0);\n }\n else {\n return blockViewImage;\n }\n });\n data.content = writer.createDocumentFragment(inlineViewImages);\n }\n });\n this.listenTo(clipboardPipeline, 'contentInsertion', (evt, data) => {\n if (data.method !== 'paste') {\n return;\n }\n model.change(writer => {\n const range = writer.createRangeIn(data.content);\n for (const item of range.getItems()) {\n if (item.is('element', 'imageInline')) {\n imageUtils.setImageNaturalSizeAttributes(item);\n }\n }\n });\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinline\n */\n/**\n * The image inline plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/image/imageinlineediting~ImageInlineEditing},\n * * {@link module:image/imagetextalternative~ImageTextAlternative}.\n *\n * Usually, it is used in conjunction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n */\nclass ImageInline extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageInlineEditing, Widget, ImageTextAlternative, ImageInsertUI];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInline';\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image\n */\n/**\n * The image plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-overview image feature} documentation.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/imageblock~ImageBlock},\n * * {@link module:image/imageinline~ImageInline},\n *\n * Usually, it is used in conjunction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n */\nclass Image extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageBlock, ImageInline];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Image';\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * The image caption utilities plugin.\n */\nclass ImageCaptionUtils extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageCaptionUtils';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * Returns the caption model element from a given image element. Returns `null` if no caption is found.\n */\n getCaptionFromImageModelElement(imageModelElement) {\n for (const node of imageModelElement.getChildren()) {\n if (!!node && node.is('element', 'caption')) {\n return node;\n }\n }\n return null;\n }\n /**\n * Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.\n */\n getCaptionFromModelSelection(selection) {\n const imageUtils = this.editor.plugins.get('ImageUtils');\n const captionElement = selection.getFirstPosition().findAncestor('caption');\n if (!captionElement) {\n return null;\n }\n if (imageUtils.isBlockImage(captionElement.parent)) {\n return captionElement;\n }\n return null;\n }\n /**\n * {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a `<figcaption>` element that is placed\n * inside the image `<figure>` element.\n * @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element\n * cannot be matched.\n */\n matchImageCaptionViewElement(element) {\n const imageUtils = this.editor.plugins.get('ImageUtils');\n // Convert only captions for images.\n if (element.name == 'figcaption' && imageUtils.isBlockImageView(element.parent)) {\n return { name: true };\n }\n return null;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * The toggle image caption command.\n *\n * This command is registered by {@link module:image/imagecaption/imagecaptionediting~ImageCaptionEditing} as the\n * `'toggleImageCaption'` editor command.\n *\n * Executing this command:\n *\n * * either adds or removes the image caption of a selected image (depending on whether the caption is present or not),\n * * removes the image caption if the selection is anchored in one.\n *\n * ```ts\n * // Toggle the presence of the caption.\n * editor.execute( 'toggleImageCaption' );\n * ```\n *\n * **Note**: Upon executing this command, the selection will be set on the image if previously anchored in the caption element.\n *\n * **Note**: You can move the selection to the caption right away as it shows up upon executing this command by using\n * the `focusCaptionOnShow` option:\n *\n * ```ts\n * editor.execute( 'toggleImageCaption', { focusCaptionOnShow: true } );\n * ```\n */\nclass ToggleImageCaptionCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n const imageUtils = editor.plugins.get('ImageUtils');\n // Only block images can get captions.\n if (!editor.plugins.has(ImageBlockEditing)) {\n this.isEnabled = false;\n this.value = false;\n return;\n }\n const selection = editor.model.document.selection;\n const selectedElement = selection.getSelectedElement();\n if (!selectedElement) {\n const ancestorCaptionElement = imageCaptionUtils.getCaptionFromModelSelection(selection);\n this.isEnabled = !!ancestorCaptionElement;\n this.value = !!ancestorCaptionElement;\n return;\n }\n // Block images support captions by default but the command should also be enabled for inline\n // images because toggling the caption when one is selected should convert it into a block image.\n this.isEnabled = imageUtils.isImage(selectedElement);\n if (!this.isEnabled) {\n this.value = false;\n }\n else {\n this.value = !!imageCaptionUtils.getCaptionFromImageModelElement(selectedElement);\n }\n }\n /**\n * Executes the command.\n *\n * ```ts\n * editor.execute( 'toggleImageCaption' );\n * ```\n *\n * @param options Options for the executed command.\n * @param options.focusCaptionOnShow When true and the caption shows up, the selection will be moved into it straight away.\n * @fires execute\n */\n execute(options = {}) {\n const { focusCaptionOnShow } = options;\n this.editor.model.change(writer => {\n if (this.value) {\n this._hideImageCaption(writer);\n }\n else {\n this._showImageCaption(writer, focusCaptionOnShow);\n }\n });\n }\n /**\n * Shows the caption of the `<imageBlock>` or `<imageInline>`. Also:\n *\n * * it converts `<imageInline>` to `<imageBlock>` to show the caption,\n * * it attempts to restore the caption content from the `ImageCaptionEditing` caption registry,\n * * it moves the selection to the caption right away, it the `focusCaptionOnShow` option was set.\n */\n _showImageCaption(writer, focusCaptionOnShow) {\n const model = this.editor.model;\n const selection = model.document.selection;\n const imageCaptionEditing = this.editor.plugins.get('ImageCaptionEditing');\n const imageUtils = this.editor.plugins.get('ImageUtils');\n let selectedImage = selection.getSelectedElement();\n const savedCaption = imageCaptionEditing._getSavedCaption(selectedImage);\n // Convert imageInline -> image first.\n if (imageUtils.isInlineImage(selectedImage)) {\n this.editor.execute('imageTypeBlock');\n // Executing the command created a new model element. Let's pick it again.\n selectedImage = selection.getSelectedElement();\n }\n // Try restoring the caption from the ImageCaptionEditing plugin storage.\n const newCaptionElement = savedCaption || writer.createElement('caption');\n writer.append(newCaptionElement, selectedImage);\n if (focusCaptionOnShow) {\n writer.setSelection(newCaptionElement, 'in');\n }\n }\n /**\n * Hides the caption of a selected image (or an image caption the selection is anchored to).\n *\n * The content of the caption is stored in the `ImageCaptionEditing` caption registry to make this\n * a reversible action.\n */\n _hideImageCaption(writer) {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n const imageCaptionEditing = editor.plugins.get('ImageCaptionEditing');\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n let selectedImage = selection.getSelectedElement();\n let captionElement;\n if (selectedImage) {\n captionElement = imageCaptionUtils.getCaptionFromImageModelElement(selectedImage);\n }\n else {\n captionElement = imageCaptionUtils.getCaptionFromModelSelection(selection);\n selectedImage = captionElement.parent;\n }\n // Store the caption content so it can be restored quickly if the user changes their mind even if they toggle image<->imageInline.\n imageCaptionEditing._saveCaption(selectedImage, captionElement);\n writer.setSelection(selectedImage, 'on');\n writer.remove(captionElement);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagecaption/imagecaptionediting\n */\n/**\n * The image caption engine plugin. It is responsible for:\n *\n * * registering converters for the caption element,\n * * registering converters for the caption model attribute,\n * * registering the {@link module:image/imagecaption/toggleimagecaptioncommand~ToggleImageCaptionCommand `toggleImageCaption`} command.\n */\nclass ImageCaptionEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils, ImageCaptionUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageCaptionEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n this._savedCaptionsMap = new WeakMap();\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n // Schema configuration.\n if (!schema.isRegistered('caption')) {\n schema.register('caption', {\n allowIn: 'imageBlock',\n allowContentOf: '$block',\n isLimit: true\n });\n }\n else {\n schema.extend('caption', {\n allowIn: 'imageBlock'\n });\n }\n editor.commands.add('toggleImageCaption', new ToggleImageCaptionCommand(this.editor));\n this._setupConversion();\n this._setupImageTypeCommandsIntegration();\n this._registerCaptionReconversion();\n }\n /**\n * Configures conversion pipelines to support upcasting and downcasting\n * image captions.\n */\n _setupConversion() {\n const editor = this.editor;\n const view = editor.editing.view;\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n const t = editor.t;\n // View -> model converter for the data pipeline.\n editor.conversion.for('upcast').elementToElement({\n view: element => imageCaptionUtils.matchImageCaptionViewElement(element),\n model: 'caption'\n });\n // Model -> view converter for the data pipeline.\n editor.conversion.for('dataDowncast').elementToElement({\n model: 'caption',\n view: (modelElement, { writer }) => {\n if (!imageUtils.isBlockImage(modelElement.parent)) {\n return null;\n }\n return writer.createContainerElement('figcaption');\n }\n });\n // Model -> view converter for the editing pipeline.\n editor.conversion.for('editingDowncast').elementToElement({\n model: 'caption',\n view: (modelElement, { writer }) => {\n if (!imageUtils.isBlockImage(modelElement.parent)) {\n return null;\n }\n const figcaptionElement = writer.createEditableElement('figcaption');\n writer.setCustomProperty('imageCaption', true, figcaptionElement);\n figcaptionElement.placeholder = t('Enter image caption');\n enablePlaceholder({\n view,\n element: figcaptionElement,\n keepOnFocus: true\n });\n const imageAlt = modelElement.parent.getAttribute('alt');\n const label = imageAlt ? t('Caption for image: %0', [imageAlt]) : t('Caption for the image');\n return toWidgetEditable(figcaptionElement, writer, { label });\n }\n });\n }\n /**\n * Integrates with {@link module:image/image/imagetypecommand~ImageTypeCommand image type commands}\n * to make sure the caption is preserved when the type of an image changes so it can be restored\n * in the future if the user decides they want their caption back.\n */\n _setupImageTypeCommandsIntegration() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n const imageTypeInlineCommand = editor.commands.get('imageTypeInline');\n const imageTypeBlockCommand = editor.commands.get('imageTypeBlock');\n const handleImageTypeChange = evt => {\n // The image type command execution can be unsuccessful.\n if (!evt.return) {\n return;\n }\n const { oldElement, newElement } = evt.return;\n /* istanbul ignore if: paranoid check -- @preserve */\n if (!oldElement) {\n return;\n }\n if (imageUtils.isBlockImage(oldElement)) {\n const oldCaptionElement = imageCaptionUtils.getCaptionFromImageModelElement(oldElement);\n // If the old element was a captioned block image (the caption was visible),\n // simply save it so it can be restored.\n if (oldCaptionElement) {\n this._saveCaption(newElement, oldCaptionElement);\n return;\n }\n }\n const savedOldElementCaption = this._getSavedCaption(oldElement);\n // If either:\n //\n // * the block image didn't have a visible caption,\n // * the block image caption was hidden (and already saved),\n // * the inline image was passed\n //\n // just try to \"pass\" the saved caption from the old image to the new image\n // so it can be retrieved in the future if the user wants it back.\n if (savedOldElementCaption) {\n // Note: Since we're writing to a WeakMap, we don't bother with removing the\n // [ oldElement, savedOldElementCaption ] pair from it.\n this._saveCaption(newElement, savedOldElementCaption);\n }\n };\n // Presence of the commands depends on the Image(Inline|Block)Editing plugins loaded in the editor.\n if (imageTypeInlineCommand) {\n this.listenTo(imageTypeInlineCommand, 'execute', handleImageTypeChange, { priority: 'low' });\n }\n if (imageTypeBlockCommand) {\n this.listenTo(imageTypeBlockCommand, 'execute', handleImageTypeChange, { priority: 'low' });\n }\n }\n /**\n * Returns the saved {@link module:engine/model/element~Element#toJSON JSONified} caption\n * of an image model element.\n *\n * See {@link #_saveCaption}.\n *\n * @internal\n * @param imageModelElement The model element the caption should be returned for.\n * @returns The model caption element or `null` if there is none.\n */\n _getSavedCaption(imageModelElement) {\n const jsonObject = this._savedCaptionsMap.get(imageModelElement);\n return jsonObject ? Element.fromJSON(jsonObject) : null;\n }\n /**\n * Saves a {@link module:engine/model/element~Element#toJSON JSONified} caption for\n * an image element to allow restoring it in the future.\n *\n * A caption is saved every time it gets hidden and/or the type of an image changes. The\n * user should be able to restore it on demand.\n *\n * **Note**: The caption cannot be stored in the image model element attribute because,\n * for instance, when the model state propagates to collaborators, the attribute would get\n * lost (mainly because it does not convert to anything when the caption is hidden) and\n * the states of collaborators' models would de-synchronize causing numerous issues.\n *\n * See {@link #_getSavedCaption}.\n *\n * @internal\n * @param imageModelElement The model element the caption is saved for.\n * @param caption The caption model element to be saved.\n */\n _saveCaption(imageModelElement, caption) {\n this._savedCaptionsMap.set(imageModelElement, caption.toJSON());\n }\n /**\n * Reconverts image caption when image alt attribute changes.\n * The change of alt attribute is reflected in caption's aria-label attribute.\n */\n _registerCaptionReconversion() {\n const editor = this.editor;\n const model = editor.model;\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n model.document.on('change:data', () => {\n const changes = model.document.differ.getChanges();\n for (const change of changes) {\n if (change.attributeKey !== 'alt') {\n continue;\n }\n const image = change.range.start.nodeAfter;\n if (imageUtils.isBlockImage(image)) {\n const caption = imageCaptionUtils.getCaptionFromImageModelElement(image);\n if (!caption) {\n return;\n }\n editor.editing.reconvertItem(caption);\n }\n }\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagecaption/imagecaptionui\n */\n/**\n * The image caption UI plugin. It introduces the `'toggleImageCaption'` UI button.\n */\nclass ImageCaptionUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageCaptionUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageCaptionUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n const t = editor.t;\n editor.ui.componentFactory.add('toggleImageCaption', locale => {\n const command = editor.commands.get('toggleImageCaption');\n const view = new ButtonView(locale);\n view.set({\n icon: icons.caption,\n tooltip: true,\n isToggleable: true\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n view.bind('label').to(command, 'value', value => value ? t('Toggle caption off') : t('Toggle caption on'));\n this.listenTo(view, 'execute', () => {\n editor.execute('toggleImageCaption', { focusCaptionOnShow: true });\n // Scroll to the selection and highlight the caption if the caption showed up.\n const modelCaptionElement = imageCaptionUtils.getCaptionFromModelSelection(editor.model.document.selection);\n if (modelCaptionElement) {\n const figcaptionElement = editor.editing.mapper.toViewElement(modelCaptionElement);\n editingView.scrollToTheSelection();\n editingView.change(writer => {\n writer.addClass('image__caption_highlighted', figcaptionElement);\n });\n }\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagecaption\n */\n/**\n * The image caption plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-captions image caption} documentation.\n */\nclass ImageCaption extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageCaptionEditing, ImageCaptionUI];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageCaption';\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Creates a regular expression used to test for image files.\n *\n * ```ts\n * const imageType = createImageTypeRegExp( [ 'png', 'jpeg', 'svg+xml', 'vnd.microsoft.icon' ] );\n *\n * console.log( 'is supported image', imageType.test( file.type ) );\n * ```\n */\nfunction createImageTypeRegExp(types) {\n // Sanitize the MIME type name which may include: \"+\", \"-\" or \".\".\n const regExpSafeNames = types.map(type => type.replace('+', '\\\\+'));\n return new RegExp(`^image\\\\/(${regExpSafeNames.join('|')})$`);\n}\n/**\n * Creates a promise that fetches the image local source (Base64 or blob) and resolves with a `File` object.\n *\n * @param image Image whose source to fetch.\n * @returns A promise which resolves when an image source is fetched and converted to a `File` instance.\n * It resolves with a `File` object. If there were any errors during file processing, the promise will be rejected.\n */\nfunction fetchLocalImage(image) {\n return new Promise((resolve, reject) => {\n const imageSrc = image.getAttribute('src');\n // Fetch works asynchronously and so does not block browser UI when processing data.\n fetch(imageSrc)\n .then(resource => resource.blob())\n .then(blob => {\n const mimeType = getImageMimeType(blob, imageSrc);\n const ext = mimeType.replace('image/', '');\n const filename = `image.${ext}`;\n const file = new File([blob], filename, { type: mimeType });\n resolve(file);\n })\n .catch(err => {\n // Fetch fails only, if it can't make a request due to a network failure or if anything prevented the request\n // from completing, i.e. the Content Security Policy rules. It is not possible to detect the exact cause of failure,\n // so we are just trying the fallback solution, if general TypeError is thrown.\n return err && err.name === 'TypeError' ?\n convertLocalImageOnCanvas(imageSrc).then(resolve).catch(reject) :\n reject(err);\n });\n });\n}\n/**\n * Checks whether a given node is an image element with a local source (Base64 or blob).\n *\n * @param node The node to check.\n */\nfunction isLocalImage(imageUtils, node) {\n if (!imageUtils.isInlineImageView(node) || !node.getAttribute('src')) {\n return false;\n }\n return !!node.getAttribute('src').match(/^data:image\\/\\w+;base64,/g) ||\n !!node.getAttribute('src').match(/^blob:/g);\n}\n/**\n * Extracts an image type based on its blob representation or its source.\n * @param blob Image blob representation.\n * @param src Image `src` attribute value.\n */\nfunction getImageMimeType(blob, src) {\n if (blob.type) {\n return blob.type;\n }\n else if (src.match(/data:(image\\/\\w+);base64/)) {\n return src.match(/data:(image\\/\\w+);base64/)[1].toLowerCase();\n }\n else {\n // Fallback to 'jpeg' as common extension.\n return 'image/jpeg';\n }\n}\n/**\n * Creates a promise that converts the image local source (Base64 or blob) to a blob using canvas and resolves\n * with a `File` object.\n * @param imageSrc Image `src` attribute value.\n * @returns A promise which resolves when an image source is converted to a `File` instance.\n * It resolves with a `File` object. If there were any errors during file processing, the promise will be rejected.\n */\nfunction convertLocalImageOnCanvas(imageSrc) {\n return getBlobFromCanvas(imageSrc).then(blob => {\n const mimeType = getImageMimeType(blob, imageSrc);\n const ext = mimeType.replace('image/', '');\n const filename = `image.${ext}`;\n return new File([blob], filename, { type: mimeType });\n });\n}\n/**\n * Creates a promise that resolves with a `Blob` object converted from the image source (Base64 or blob).\n * @param imageSrc Image `src` attribute value.\n */\nfunction getBlobFromCanvas(imageSrc) {\n return new Promise((resolve, reject) => {\n const image = global.document.createElement('img');\n image.addEventListener('load', () => {\n const canvas = global.document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(image, 0, 0);\n canvas.toBlob(blob => blob ? resolve(blob) : reject());\n });\n image.addEventListener('error', () => reject());\n image.src = imageSrc;\n });\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * The image upload button plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload Image upload feature} documentation.\n *\n * Adds the `'uploadImage'` button to the {@link module:ui/componentfactory~ComponentFactory UI component factory}\n * and also the `imageUpload` button as an alias for backward compatibility.\n */\nclass ImageUploadUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageUploadUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n const componentCreator = (locale) => {\n const view = new FileDialogButtonView(locale);\n const command = editor.commands.get('uploadImage');\n const imageTypes = editor.config.get('image.upload.types');\n const imageTypesRegExp = createImageTypeRegExp(imageTypes);\n view.set({\n acceptedType: imageTypes.map(type => `image/${type}`).join(','),\n allowMultipleFiles: true,\n label: t('Upload image from computer'),\n icon: icons.imageUpload,\n tooltip: true\n });\n view.bind('isEnabled').to(command);\n view.on('done', (evt, files) => {\n const imagesToUpload = Array.from(files).filter(file => imageTypesRegExp.test(file.type));\n if (imagesToUpload.length) {\n editor.execute('uploadImage', { file: imagesToUpload });\n editor.editing.view.focus();\n }\n });\n return view;\n };\n // Setup `uploadImage` button and add `imageUpload` button as an alias for backward compatibility.\n editor.ui.componentFactory.add('uploadImage', componentCreator);\n editor.ui.componentFactory.add('imageUpload', componentCreator);\n if (editor.plugins.has('ImageInsertUI')) {\n const imageInsertUI = editor.plugins.get('ImageInsertUI');\n imageInsertUI.registerIntegration({\n name: 'upload',\n observable: () => editor.commands.get('uploadImage'),\n buttonViewCreator: () => {\n const uploadImageButton = editor.ui.componentFactory.create('uploadImage');\n uploadImageButton.bind('label').to(imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n t('Replace image from computer') :\n t('Upload image from computer'));\n return uploadImageButton;\n },\n formViewCreator: () => {\n const uploadImageButton = editor.ui.componentFactory.create('uploadImage');\n uploadImageButton.withText = true;\n uploadImageButton.bind('label').to(imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n t('Replace from computer') :\n t('Upload from computer'));\n uploadImageButton.on('execute', () => {\n imageInsertUI.dropdownView.isOpen = false;\n });\n return uploadImageButton;\n }\n });\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload/imageuploadprogress\n */\n/* globals setTimeout */\n/**\n * The image upload progress plugin.\n * It shows a placeholder when the image is read from the disk and a progress bar while the image is uploading.\n */\nclass ImageUploadProgress extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageUploadProgress';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n /**\n * This method is called each time the image `uploadStatus` attribute is changed.\n *\n * @param evt An object containing information about the fired event.\n * @param data Additional information about the change.\n */\n this.uploadStatusChange = (evt, data, conversionApi) => {\n const editor = this.editor;\n const modelImage = data.item;\n const uploadId = modelImage.getAttribute('uploadId');\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const imageUtils = editor.plugins.get('ImageUtils');\n const fileRepository = editor.plugins.get(FileRepository);\n const status = uploadId ? data.attributeNewValue : null;\n const placeholder = this.placeholder;\n const viewFigure = editor.editing.mapper.toViewElement(modelImage);\n const viewWriter = conversionApi.writer;\n if (status == 'reading') {\n // Start \"appearing\" effect and show placeholder with infinite progress bar on the top\n // while image is read from disk.\n _startAppearEffect(viewFigure, viewWriter);\n _showPlaceholder(imageUtils, placeholder, viewFigure, viewWriter);\n return;\n }\n // Show progress bar on the top of the image when image is uploading.\n if (status == 'uploading') {\n const loader = fileRepository.loaders.get(uploadId);\n // Start appear effect if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n _startAppearEffect(viewFigure, viewWriter);\n if (!loader) {\n // There is no loader associated with uploadId - this means that image came from external changes.\n // In such cases we still want to show the placeholder until image is fully uploaded.\n // Show placeholder if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n _showPlaceholder(imageUtils, placeholder, viewFigure, viewWriter);\n }\n else {\n // Hide placeholder and initialize progress bar showing upload progress.\n _hidePlaceholder(viewFigure, viewWriter);\n _showProgressBar(viewFigure, viewWriter, loader, editor.editing.view);\n _displayLocalImage(imageUtils, viewFigure, viewWriter, loader);\n }\n return;\n }\n if (status == 'complete' && fileRepository.loaders.get(uploadId)) {\n _showCompleteIcon(viewFigure, viewWriter, editor.editing.view);\n }\n // Clean up.\n _hideProgressBar(viewFigure, viewWriter);\n _hidePlaceholder(viewFigure, viewWriter);\n _stopAppearEffect(viewFigure, viewWriter);\n };\n this.placeholder = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Upload status change - update image's view according to that status.\n if (editor.plugins.has('ImageBlockEditing')) {\n editor.editing.downcastDispatcher.on('attribute:uploadStatus:imageBlock', this.uploadStatusChange);\n }\n if (editor.plugins.has('ImageInlineEditing')) {\n editor.editing.downcastDispatcher.on('attribute:uploadStatus:imageInline', this.uploadStatusChange);\n }\n }\n}\n/**\n * Adds ck-appear class to the image figure if one is not already applied.\n */\nfunction _startAppearEffect(viewFigure, writer) {\n if (!viewFigure.hasClass('ck-appear')) {\n writer.addClass('ck-appear', viewFigure);\n }\n}\n/**\n * Removes ck-appear class to the image figure if one is not already removed.\n */\nfunction _stopAppearEffect(viewFigure, writer) {\n writer.removeClass('ck-appear', viewFigure);\n}\n/**\n * Shows placeholder together with infinite progress bar on given image figure.\n */\nfunction _showPlaceholder(imageUtils, placeholder, viewFigure, writer) {\n if (!viewFigure.hasClass('ck-image-upload-placeholder')) {\n writer.addClass('ck-image-upload-placeholder', viewFigure);\n }\n const viewImg = imageUtils.findViewImgElement(viewFigure);\n if (viewImg.getAttribute('src') !== placeholder) {\n writer.setAttribute('src', placeholder, viewImg);\n }\n if (!_getUIElement(viewFigure, 'placeholder')) {\n writer.insert(writer.createPositionAfter(viewImg), _createPlaceholder(writer));\n }\n}\n/**\n * Removes placeholder together with infinite progress bar on given image figure.\n */\nfunction _hidePlaceholder(viewFigure, writer) {\n if (viewFigure.hasClass('ck-image-upload-placeholder')) {\n writer.removeClass('ck-image-upload-placeholder', viewFigure);\n }\n _removeUIElement(viewFigure, writer, 'placeholder');\n}\n/**\n * Shows progress bar displaying upload progress.\n * Attaches it to the file loader to update when upload percentace is changed.\n */\nfunction _showProgressBar(viewFigure, writer, loader, view) {\n const progressBar = _createProgressBar(writer);\n writer.insert(writer.createPositionAt(viewFigure, 'end'), progressBar);\n // Update progress bar width when uploadedPercent is changed.\n loader.on('change:uploadedPercent', (evt, name, value) => {\n view.change(writer => {\n writer.setStyle('width', value + '%', progressBar);\n });\n });\n}\n/**\n * Hides upload progress bar.\n */\nfunction _hideProgressBar(viewFigure, writer) {\n _removeUIElement(viewFigure, writer, 'progressBar');\n}\n/**\n * Shows complete icon and hides after a certain amount of time.\n */\nfunction _showCompleteIcon(viewFigure, writer, view) {\n const completeIcon = writer.createUIElement('div', { class: 'ck-image-upload-complete-icon' });\n writer.insert(writer.createPositionAt(viewFigure, 'end'), completeIcon);\n setTimeout(() => {\n view.change(writer => writer.remove(writer.createRangeOn(completeIcon)));\n }, 3000);\n}\n/**\n * Create progress bar element using {@link module:engine/view/uielement~UIElement}.\n */\nfunction _createProgressBar(writer) {\n const progressBar = writer.createUIElement('div', { class: 'ck-progress-bar' });\n writer.setCustomProperty('progressBar', true, progressBar);\n return progressBar;\n}\n/**\n * Create placeholder element using {@link module:engine/view/uielement~UIElement}.\n */\nfunction _createPlaceholder(writer) {\n const placeholder = writer.createUIElement('div', { class: 'ck-upload-placeholder-loader' });\n writer.setCustomProperty('placeholder', true, placeholder);\n return placeholder;\n}\n/**\n * Returns {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n * Returns `undefined` if element is not found.\n */\nfunction _getUIElement(imageFigure, uniqueProperty) {\n for (const child of imageFigure.getChildren()) {\n if (child.getCustomProperty(uniqueProperty)) {\n return child;\n }\n }\n}\n/**\n * Removes {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n */\nfunction _removeUIElement(viewFigure, writer, uniqueProperty) {\n const element = _getUIElement(viewFigure, uniqueProperty);\n if (element) {\n writer.remove(writer.createRangeOn(element));\n }\n}\n/**\n * Displays local data from file loader.\n */\nfunction _displayLocalImage(imageUtils, viewFigure, writer, loader) {\n if (loader.data) {\n const viewImg = imageUtils.findViewImgElement(viewFigure);\n writer.setAttribute('src', loader.data, viewImg);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload/uploadimagecommand\n */\n/**\n * The upload image command.\n *\n * The command is registered by the {@link module:image/imageupload/imageuploadediting~ImageUploadEditing} plugin as `uploadImage`\n * and it is also available via aliased `imageUpload` name.\n *\n * In order to upload an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionRange} algorithm),\n * execute the command and pass the native image file instance:\n *\n * ```ts\n * this.listenTo( editor.editing.view.document, 'clipboardInput', ( evt, data ) => {\n * \t// Assuming that only images were pasted:\n * \tconst images = Array.from( data.dataTransfer.files );\n *\n * \t// Upload the first image:\n * \teditor.execute( 'uploadImage', { file: images[ 0 ] } );\n * } );\n * ```\n *\n * It is also possible to insert multiple images at once:\n *\n * ```ts\n * editor.execute( 'uploadImage', {\n * \tfile: [\n * \t\tfile1,\n * \t\tfile2\n * \t]\n * } );\n * ```\n */\nclass UploadImageCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const selectedElement = editor.model.document.selection.getSelectedElement();\n // TODO: This needs refactoring.\n this.isEnabled = imageUtils.isImageAllowed() || imageUtils.isImage(selectedElement);\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param options Options for the executed command.\n * @param options.file The image file or an array of image files to upload.\n */\n execute(options) {\n const files = toArray(options.file);\n const selection = this.editor.model.document.selection;\n const imageUtils = this.editor.plugins.get('ImageUtils');\n // In case of multiple files, each file (starting from the 2nd) will be inserted at a position that\n // follows the previous one. That will move the selection and, to stay on the safe side and make sure\n // all images inherit the same selection attributes, they are collected beforehand.\n //\n // Applying these attributes ensures, for instance, that inserting an (inline) image into a link does\n // not split that link but preserves its continuity.\n //\n // Note: Selection attributes that do not make sense for images will be filtered out by insertImage() anyway.\n const selectionAttributes = Object.fromEntries(selection.getAttributes());\n files.forEach((file, index) => {\n const selectedElement = selection.getSelectedElement();\n // Inserting of an inline image replace the selected element and make a selection on the inserted image.\n // Therefore inserting multiple inline images requires creating position after each element.\n if (index && selectedElement && imageUtils.isImage(selectedElement)) {\n const position = this.editor.model.createPositionAfter(selectedElement);\n this._uploadImage(file, selectionAttributes, position);\n }\n else {\n this._uploadImage(file, selectionAttributes);\n }\n });\n }\n /**\n * Handles uploading single file.\n */\n _uploadImage(file, attributes, position) {\n const editor = this.editor;\n const fileRepository = editor.plugins.get(FileRepository);\n const loader = fileRepository.createLoader(file);\n const imageUtils = editor.plugins.get('ImageUtils');\n // Do not throw when upload adapter is not set. FileRepository will log an error anyway.\n if (!loader) {\n return;\n }\n imageUtils.insertImage({ ...attributes, uploadId: loader.id }, position);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload/imageuploadediting\n */\n/**\n * The editing part of the image upload feature. It registers the `'uploadImage'` command\n * and the `imageUpload` command as an aliased name.\n *\n * When an image is uploaded, it fires the {@link ~ImageUploadEditing#event:uploadComplete `uploadComplete`} event\n * that allows adding custom attributes to the {@link module:engine/model/element~Element image element}.\n */\nclass ImageUploadEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [FileRepository, Notification, ClipboardPipeline, ImageUtils];\n }\n static get pluginName() {\n return 'ImageUploadEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('image', {\n upload: {\n types: ['jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff']\n }\n });\n this._uploadImageElements = new Map();\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const doc = editor.model.document;\n const conversion = editor.conversion;\n const fileRepository = editor.plugins.get(FileRepository);\n const imageUtils = editor.plugins.get('ImageUtils');\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n const imageTypes = createImageTypeRegExp(editor.config.get('image.upload.types'));\n const uploadImageCommand = new UploadImageCommand(editor);\n // Register `uploadImage` command and add `imageUpload` command as an alias for backward compatibility.\n editor.commands.add('uploadImage', uploadImageCommand);\n editor.commands.add('imageUpload', uploadImageCommand);\n // Register upcast converter for uploadId.\n conversion.for('upcast')\n .attributeToAttribute({\n view: {\n name: 'img',\n key: 'uploadId'\n },\n model: 'uploadId'\n });\n // Handle pasted images.\n // For every image file, a new file loader is created and a placeholder image is\n // inserted into the content. Then, those images are uploaded once they appear in the model\n // (see Document#change listener below).\n this.listenTo(editor.editing.view.document, 'clipboardInput', (evt, data) => {\n // Skip if non empty HTML data is included.\n // https://github.com/ckeditor/ckeditor5-upload/issues/68\n if (isHtmlIncluded(data.dataTransfer)) {\n return;\n }\n const images = Array.from(data.dataTransfer.files).filter(file => {\n // See https://github.com/ckeditor/ckeditor5-image/pull/254.\n if (!file) {\n return false;\n }\n return imageTypes.test(file.type);\n });\n if (!images.length) {\n return;\n }\n evt.stop();\n editor.model.change(writer => {\n // Set selection to paste target.\n if (data.targetRanges) {\n writer.setSelection(data.targetRanges.map(viewRange => editor.editing.mapper.toModelRange(viewRange)));\n }\n editor.execute('uploadImage', { file: images });\n });\n });\n // Handle HTML pasted with images with base64 or blob sources.\n // For every image file, a new file loader is created and a placeholder image is\n // inserted into the content. Then, those images are uploaded once they appear in the model\n // (see Document#change listener below).\n this.listenTo(clipboardPipeline, 'inputTransformation', (evt, data) => {\n const fetchableImages = Array.from(editor.editing.view.createRangeIn(data.content))\n .map(value => value.item)\n .filter(viewElement => isLocalImage(imageUtils, viewElement) &&\n !viewElement.getAttribute('uploadProcessed'))\n .map(viewElement => { return { promise: fetchLocalImage(viewElement), imageElement: viewElement }; });\n if (!fetchableImages.length) {\n return;\n }\n const writer = new UpcastWriter(editor.editing.view.document);\n for (const fetchableImage of fetchableImages) {\n // Set attribute marking that the image was processed already.\n writer.setAttribute('uploadProcessed', true, fetchableImage.imageElement);\n const loader = fileRepository.createLoader(fetchableImage.promise);\n if (loader) {\n writer.setAttribute('src', '', fetchableImage.imageElement);\n writer.setAttribute('uploadId', loader.id, fetchableImage.imageElement);\n }\n }\n });\n // Prevents from the browser redirecting to the dropped image.\n editor.editing.view.document.on('dragover', (evt, data) => {\n data.preventDefault();\n });\n // Upload placeholder images that appeared in the model.\n doc.on('change', () => {\n // Note: Reversing changes to start with insertions and only then handle removals. If it was the other way around,\n // loaders for **all** images that land in the $graveyard would abort while in fact only those that were **not** replaced\n // by other images should be aborted.\n const changes = doc.differ.getChanges({ includeChangesInGraveyard: true }).reverse();\n const insertedImagesIds = new Set();\n for (const entry of changes) {\n if (entry.type == 'insert' && entry.name != '$text') {\n const item = entry.position.nodeAfter;\n const isInsertedInGraveyard = entry.position.root.rootName == '$graveyard';\n for (const imageElement of getImagesFromChangeItem(editor, item)) {\n // Check if the image element still has upload id.\n const uploadId = imageElement.getAttribute('uploadId');\n if (!uploadId) {\n continue;\n }\n // Check if the image is loaded on this client.\n const loader = fileRepository.loaders.get(uploadId);\n if (!loader) {\n continue;\n }\n if (isInsertedInGraveyard) {\n // If the image was inserted to the graveyard for good (**not** replaced by another image),\n // only then abort the loading process.\n if (!insertedImagesIds.has(uploadId)) {\n loader.abort();\n }\n }\n else {\n // Remember the upload id of the inserted image. If it acted as a replacement for another\n // image (which landed in the $graveyard), the related loader will not be aborted because\n // this is still the same image upload.\n insertedImagesIds.add(uploadId);\n // Keep the mapping between the upload ID and the image model element so the upload\n // can later resolve in the context of the correct model element. The model element could\n // change for the same upload if one image was replaced by another (e.g. image type was changed),\n // so this may also replace an existing mapping.\n this._uploadImageElements.set(uploadId, imageElement);\n if (loader.status == 'idle') {\n // If the image was inserted into content and has not been loaded yet, start loading it.\n this._readAndUpload(loader);\n }\n }\n }\n }\n }\n });\n // Set the default handler for feeding the image element with `src` and `srcset` attributes.\n // Also set the natural `width` and `height` attributes (if not already set).\n this.on('uploadComplete', (evt, { imageElement, data }) => {\n const urls = data.urls ? data.urls : data;\n this.editor.model.change(writer => {\n writer.setAttribute('src', urls.default, imageElement);\n this._parseAndSetSrcsetAttributeOnImage(urls, imageElement, writer);\n imageUtils.setImageNaturalSizeAttributes(imageElement);\n });\n }, { priority: 'low' });\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n const schema = this.editor.model.schema;\n // Setup schema to allow uploadId and uploadStatus for images.\n // Wait for ImageBlockEditing or ImageInlineEditing to register their elements first,\n // that's why doing this in afterInit() instead of init().\n if (this.editor.plugins.has('ImageBlockEditing')) {\n schema.extend('imageBlock', {\n allowAttributes: ['uploadId', 'uploadStatus']\n });\n }\n if (this.editor.plugins.has('ImageInlineEditing')) {\n schema.extend('imageInline', {\n allowAttributes: ['uploadId', 'uploadStatus']\n });\n }\n }\n /**\n * Reads and uploads an image.\n *\n * The image is read from the disk and as a Base64-encoded string it is set temporarily to\n * `image[src]`. When the image is successfully uploaded, the temporary data is replaced with the target\n * image's URL (the URL to the uploaded image on the server).\n */\n _readAndUpload(loader) {\n const editor = this.editor;\n const model = editor.model;\n const t = editor.locale.t;\n const fileRepository = editor.plugins.get(FileRepository);\n const notification = editor.plugins.get(Notification);\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageUploadElements = this._uploadImageElements;\n model.enqueueChange({ isUndoable: false }, writer => {\n writer.setAttribute('uploadStatus', 'reading', imageUploadElements.get(loader.id));\n });\n return loader.read()\n .then(() => {\n const promise = loader.upload();\n const imageElement = imageUploadElements.get(loader.id);\n // Force re–paint in Safari. Without it, the image will display with a wrong size.\n // https://github.com/ckeditor/ckeditor5/issues/1975\n /* istanbul ignore next -- @preserve */\n if (env.isSafari) {\n const viewFigure = editor.editing.mapper.toViewElement(imageElement);\n const viewImg = imageUtils.findViewImgElement(viewFigure);\n editor.editing.view.once('render', () => {\n // Early returns just to be safe. There might be some code ran\n // in between the outer scope and this callback.\n if (!viewImg.parent) {\n return;\n }\n const domFigure = editor.editing.view.domConverter.mapViewToDom(viewImg.parent);\n if (!domFigure) {\n return;\n }\n const originalDisplay = domFigure.style.display;\n domFigure.style.display = 'none';\n // Make sure this line will never be removed during minification for having \"no effect\".\n domFigure._ckHack = domFigure.offsetHeight;\n domFigure.style.display = originalDisplay;\n });\n }\n model.enqueueChange({ isUndoable: false }, writer => {\n writer.setAttribute('uploadStatus', 'uploading', imageElement);\n });\n return promise;\n })\n .then(data => {\n model.enqueueChange({ isUndoable: false }, writer => {\n const imageElement = imageUploadElements.get(loader.id);\n writer.setAttribute('uploadStatus', 'complete', imageElement);\n this.fire('uploadComplete', { data, imageElement });\n });\n clean();\n })\n .catch(error => {\n // If status is not 'error' nor 'aborted' - throw error because it means that something else went wrong,\n // it might be generic error and it would be real pain to find what is going on.\n if (loader.status !== 'error' && loader.status !== 'aborted') {\n throw error;\n }\n // Might be 'aborted'.\n if (loader.status == 'error' && error) {\n notification.showWarning(error, {\n title: t('Upload failed'),\n namespace: 'upload'\n });\n }\n // Permanently remove image from insertion batch.\n model.enqueueChange({ isUndoable: false }, writer => {\n writer.remove(imageUploadElements.get(loader.id));\n });\n clean();\n });\n function clean() {\n model.enqueueChange({ isUndoable: false }, writer => {\n const imageElement = imageUploadElements.get(loader.id);\n writer.removeAttribute('uploadId', imageElement);\n writer.removeAttribute('uploadStatus', imageElement);\n imageUploadElements.delete(loader.id);\n });\n fileRepository.destroyLoader(loader);\n }\n }\n /**\n * Creates the `srcset` attribute based on a given file upload response and sets it as an attribute to a specific image element.\n *\n * @param data Data object from which `srcset` will be created.\n * @param image The image element on which the `srcset` attribute will be set.\n */\n _parseAndSetSrcsetAttributeOnImage(data, image, writer) {\n // Srcset attribute for responsive images support.\n let maxWidth = 0;\n const srcsetAttribute = Object.keys(data)\n // Filter out keys that are not integers.\n .filter(key => {\n const width = parseInt(key, 10);\n if (!isNaN(width)) {\n maxWidth = Math.max(maxWidth, width);\n return true;\n }\n })\n // Convert each key to srcset entry.\n .map(key => `${data[key]} ${key}w`)\n // Join all entries.\n .join(', ');\n if (srcsetAttribute != '') {\n const attributes = {\n srcset: srcsetAttribute\n };\n if (!image.hasAttribute('width') && !image.hasAttribute('height')) {\n attributes.width = maxWidth;\n }\n writer.setAttributes(attributes, image);\n }\n }\n}\n/**\n * Returns `true` if non-empty `text/html` is included in the data transfer.\n */\nfunction isHtmlIncluded(dataTransfer) {\n return Array.from(dataTransfer.types).includes('text/html') && dataTransfer.getData('text/html') !== '';\n}\nfunction getImagesFromChangeItem(editor, item) {\n const imageUtils = editor.plugins.get('ImageUtils');\n return Array.from(editor.model.createRangeOn(item))\n .filter(value => imageUtils.isImage(value.item))\n .map(value => value.item);\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload\n */\n/**\n * The image upload plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload image upload feature} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins to enable image uploading:\n *\n * * {@link module:image/imageupload/imageuploadediting~ImageUploadEditing},\n * * {@link module:image/imageupload/imageuploadui~ImageUploadUI},\n * * {@link module:image/imageupload/imageuploadprogress~ImageUploadProgress}.\n */\nclass ImageUpload extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageUpload';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUploadEditing, ImageUploadUI, ImageUploadProgress];\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinsert/ui/imageinserturlview\n */\n/**\n * The insert an image via URL view.\n *\n * See {@link module:image/imageinsert/imageinsertviaurlui~ImageInsertViaUrlUI}.\n */\nclass ImageInsertUrlView extends View {\n /**\n * Creates a view for the dropdown panel of {@link module:image/imageinsert/imageinsertui~ImageInsertUI}.\n *\n * @param locale The localization services instance.\n */\n constructor(locale) {\n super(locale);\n this.set('imageURLInputValue', '');\n this.set('isImageSelected', false);\n this.set('isEnabled', true);\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this._focusables = new ViewCollection();\n this.focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.urlInputView = this._createUrlInputView();\n this.insertButtonView = this._createInsertButton();\n this.cancelButtonView = this._createCancelButton();\n this._focusables.addMany([\n this.urlInputView,\n this.insertButtonView,\n this.cancelButtonView\n ]);\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-image-insert-url'\n ]\n },\n children: [\n this.urlInputView,\n {\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-image-insert-url__action-row'\n ]\n },\n children: [\n this.insertButtonView,\n this.cancelButtonView\n ]\n }\n ]\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n for (const view of this._focusables) {\n this.focusTracker.add(view.element);\n }\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n * Creates the {@link #urlInputView}.\n */\n _createUrlInputView() {\n const locale = this.locale;\n const t = locale.t;\n const urlInputView = new LabeledFieldView(locale, createLabeledInputText);\n urlInputView.bind('label').to(this, 'isImageSelected', value => value ? t('Update image URL') : t('Insert image via URL'));\n urlInputView.bind('isEnabled').to(this);\n urlInputView.fieldView.placeholder = 'https://example.com/image.png';\n urlInputView.fieldView.bind('value').to(this, 'imageURLInputValue', (value) => value || '');\n urlInputView.fieldView.on('input', () => {\n this.imageURLInputValue = urlInputView.fieldView.element.value.trim();\n });\n return urlInputView;\n }\n /**\n * Creates the {@link #insertButtonView}.\n */\n _createInsertButton() {\n const locale = this.locale;\n const t = locale.t;\n const insertButtonView = new ButtonView(locale);\n insertButtonView.set({\n icon: icons.check,\n class: 'ck-button-save',\n type: 'submit',\n withText: true\n });\n insertButtonView.bind('label').to(this, 'isImageSelected', value => value ? t('Update') : t('Insert'));\n insertButtonView.bind('isEnabled').to(this, 'imageURLInputValue', this, 'isEnabled', (...values) => values.every(value => value));\n insertButtonView.delegate('execute').to(this, 'submit');\n return insertButtonView;\n }\n /**\n * Creates the {@link #cancelButtonView}.\n */\n _createCancelButton() {\n const locale = this.locale;\n const t = locale.t;\n const cancelButtonView = new ButtonView(locale);\n cancelButtonView.set({\n label: t('Cancel'),\n icon: icons.cancel,\n class: 'ck-button-cancel',\n withText: true\n });\n cancelButtonView.bind('isEnabled').to(this);\n cancelButtonView.delegate('execute').to(this, 'cancel');\n return cancelButtonView;\n }\n /**\n * Focuses the view.\n */\n focus(direction) {\n if (direction === -1) {\n this.focusCycler.focusLast();\n }\n else {\n this.focusCycler.focusFirst();\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinsert/imageinsertviaurlui\n */\n/**\n * The image insert via URL plugin (UI part).\n *\n * For a detailed overview, check the {@glink features/images/images-inserting\n * Insert images via source URL} documentation.\n *\n * This plugin registers the {@link module:image/imageinsert/imageinsertui~ImageInsertUI} integration for `url`.\n */\nclass ImageInsertViaUrlUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInsertViaUrlUI';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageInsertUI];\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n this._imageInsertUI = this.editor.plugins.get('ImageInsertUI');\n this._imageInsertUI.registerIntegration({\n name: 'url',\n observable: () => this.editor.commands.get('insertImage'),\n requiresForm: true,\n buttonViewCreator: isOnlyOne => this._createInsertUrlButton(isOnlyOne),\n formViewCreator: isOnlyOne => this._createInsertUrlView(isOnlyOne)\n });\n }\n /**\n * Creates the view displayed in the dropdown.\n */\n _createInsertUrlView(isOnlyOne) {\n const editor = this.editor;\n const locale = editor.locale;\n const t = locale.t;\n const replaceImageSourceCommand = editor.commands.get('replaceImageSource');\n const insertImageCommand = editor.commands.get('insertImage');\n const imageInsertUrlView = new ImageInsertUrlView(locale);\n const collapsibleView = isOnlyOne ? null : new CollapsibleView(locale, [imageInsertUrlView]);\n imageInsertUrlView.bind('isImageSelected').to(this._imageInsertUI);\n imageInsertUrlView.bind('isEnabled').toMany([insertImageCommand, replaceImageSourceCommand], 'isEnabled', (...isEnabled) => (isEnabled.some(isCommandEnabled => isCommandEnabled)));\n // Set initial value because integrations are created on first dropdown open.\n imageInsertUrlView.imageURLInputValue = replaceImageSourceCommand.value || '';\n this._imageInsertUI.dropdownView.on('change:isOpen', () => {\n if (this._imageInsertUI.dropdownView.isOpen) {\n // Make sure that each time the panel shows up, the URL field remains in sync with the value of\n // the command. If the user typed in the input, then canceled and re-opened it without changing\n // the value of the media command (e.g. because they didn't change the selection), they would see\n // the old value instead of the actual value of the command.\n imageInsertUrlView.imageURLInputValue = replaceImageSourceCommand.value || '';\n if (collapsibleView) {\n collapsibleView.isCollapsed = true;\n }\n }\n // Note: Use the low priority to make sure the following listener starts working after the\n // default action of the drop-down is executed (i.e. the panel showed up). Otherwise, the\n // invisible form/input cannot be focused/selected.\n }, { priority: 'low' });\n imageInsertUrlView.on('submit', () => {\n if (replaceImageSourceCommand.isEnabled) {\n editor.execute('replaceImageSource', { source: imageInsertUrlView.imageURLInputValue });\n }\n else {\n editor.execute('insertImage', { source: imageInsertUrlView.imageURLInputValue });\n }\n this._closePanel();\n });\n imageInsertUrlView.on('cancel', () => this._closePanel());\n if (collapsibleView) {\n collapsibleView.set({\n isCollapsed: true\n });\n collapsibleView.bind('label').to(this._imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n t('Update image URL') :\n t('Insert image via URL'));\n return collapsibleView;\n }\n return imageInsertUrlView;\n }\n /**\n * Creates the toolbar button.\n */\n _createInsertUrlButton(isOnlyOne) {\n const ButtonClass = isOnlyOne ? DropdownButtonView : ButtonView;\n const editor = this.editor;\n const button = new ButtonClass(editor.locale);\n const t = editor.locale.t;\n button.set({\n icon: icons.imageUrl,\n tooltip: true\n });\n button.bind('label').to(this._imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n t('Update image URL') :\n t('Insert image via URL'));\n return button;\n }\n /**\n * Closes the dropdown.\n */\n _closePanel() {\n this.editor.editing.view.focus();\n this._imageInsertUI.dropdownView.isOpen = false;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinsertviaurl\n */\n/**\n * The image insert via URL plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-inserting\n * Insert images via source URL} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins\n * to enable image inserting via implemented integrations:\n *\n * * {@link module:image/imageinsert/imageinsertui~ImageInsertUI},\n */\nclass ImageInsertViaUrl extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInsertViaUrl';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageInsertViaUrlUI, ImageInsertUI];\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinsert\n */\n/**\n * The image insert plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload Image upload feature}\n * and {@glink features/images/images-inserting Insert images via source URL} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins\n * to enable image uploading or inserting via implemented integrations:\n *\n * * {@link module:image/imageupload~ImageUpload}\n * * {@link module:image/imageinsert/imageinsertui~ImageInsertUI}\n */\nclass ImageInsert extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInsert';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUpload, ImageInsertViaUrl, ImageInsertUI];\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageresize/resizeimagecommand\n */\n/**\n * The resize image command. Currently, it only supports the width attribute.\n */\nclass ResizeImageCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = imageUtils.getClosestSelectedImageElement(editor.model.document.selection);\n this.isEnabled = !!element;\n if (!element || !element.hasAttribute('resizedWidth')) {\n this.value = null;\n }\n else {\n this.value = {\n width: element.getAttribute('resizedWidth'),\n height: null\n };\n }\n }\n /**\n * Executes the command.\n *\n * ```ts\n * // Sets the width to 50%:\n * editor.execute( 'resizeImage', { width: '50%' } );\n *\n * // Removes the width attribute:\n * editor.execute( 'resizeImage', { width: null } );\n * ```\n *\n * @param options\n * @param options.width The new width of the image.\n * @fires execute\n */\n execute(options) {\n const editor = this.editor;\n const model = editor.model;\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n this.value = {\n width: options.width,\n height: null\n };\n if (imageElement) {\n model.change(writer => {\n writer.setAttribute('resizedWidth', options.width, imageElement);\n writer.removeAttribute('resizedHeight', imageElement);\n imageUtils.setImageNaturalSizeAttributes(imageElement);\n });\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * The image resize editing feature.\n *\n * It adds the ability to resize each image using handles or manually by\n * {@link module:image/imageresize/imageresizebuttons~ImageResizeButtons} buttons.\n */\nclass ImageResizeEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageResizeEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('image', {\n resizeUnit: '%',\n resizeOptions: [{\n name: 'resizeImage:original',\n value: null,\n icon: 'original'\n },\n {\n name: 'resizeImage:25',\n value: '25',\n icon: 'small'\n },\n {\n name: 'resizeImage:50',\n value: '50',\n icon: 'medium'\n },\n {\n name: 'resizeImage:75',\n value: '75',\n icon: 'large'\n }]\n });\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const resizeImageCommand = new ResizeImageCommand(editor);\n this._registerSchema();\n this._registerConverters('imageBlock');\n this._registerConverters('imageInline');\n // Register `resizeImage` command and add `imageResize` command as an alias for backward compatibility.\n editor.commands.add('resizeImage', resizeImageCommand);\n editor.commands.add('imageResize', resizeImageCommand);\n }\n _registerSchema() {\n if (this.editor.plugins.has('ImageBlockEditing')) {\n this.editor.model.schema.extend('imageBlock', { allowAttributes: ['resizedWidth', 'resizedHeight'] });\n }\n if (this.editor.plugins.has('ImageInlineEditing')) {\n this.editor.model.schema.extend('imageInline', { allowAttributes: ['resizedWidth', 'resizedHeight'] });\n }\n }\n /**\n * Registers image resize converters.\n *\n * @param imageType The type of the image.\n */\n _registerConverters(imageType) {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n // Dedicated converter to propagate image's attribute to the img tag.\n editor.conversion.for('downcast').add(dispatcher => dispatcher.on(`attribute:resizedWidth:${imageType}`, (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const viewImg = conversionApi.mapper.toViewElement(data.item);\n if (data.attributeNewValue !== null) {\n viewWriter.setStyle('width', data.attributeNewValue, viewImg);\n viewWriter.addClass('image_resized', viewImg);\n }\n else {\n viewWriter.removeStyle('width', viewImg);\n viewWriter.removeClass('image_resized', viewImg);\n }\n }));\n editor.conversion.for('dataDowncast').attributeToAttribute({\n model: {\n name: imageType,\n key: 'resizedHeight'\n },\n view: modelAttributeValue => ({\n key: 'style',\n value: {\n 'height': modelAttributeValue\n }\n })\n });\n editor.conversion.for('editingDowncast').add(dispatcher => dispatcher.on(`attribute:resizedHeight:${imageType}`, (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const viewImg = conversionApi.mapper.toViewElement(data.item);\n const target = imageType === 'imageInline' ? imageUtils.findViewImgElement(viewImg) : viewImg;\n if (data.attributeNewValue !== null) {\n viewWriter.setStyle('height', data.attributeNewValue, target);\n }\n else {\n viewWriter.removeStyle('height', target);\n }\n }));\n editor.conversion.for('upcast')\n .attributeToAttribute({\n view: {\n name: imageType === 'imageBlock' ? 'figure' : 'img',\n styles: {\n width: /.+/\n }\n },\n model: {\n key: 'resizedWidth',\n value: (viewElement) => {\n if (widthAndHeightStylesAreBothSet(viewElement)) {\n return null;\n }\n return viewElement.getStyle('width');\n }\n }\n });\n editor.conversion.for('upcast')\n .attributeToAttribute({\n view: {\n name: imageType === 'imageBlock' ? 'figure' : 'img',\n styles: {\n height: /.+/\n }\n },\n model: {\n key: 'resizedHeight',\n value: (viewElement) => {\n if (widthAndHeightStylesAreBothSet(viewElement)) {\n return null;\n }\n return viewElement.getStyle('height');\n }\n }\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageresize/imageresizebuttons\n */\nconst RESIZE_ICONS = {\n small: icons.objectSizeSmall,\n medium: icons.objectSizeMedium,\n large: icons.objectSizeLarge,\n original: icons.objectSizeFull\n};\n/**\n * The image resize buttons plugin.\n *\n * It adds a possibility to resize images using the toolbar dropdown or individual buttons, depending on the plugin configuration.\n */\nclass ImageResizeButtons extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageResizeEditing];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageResizeButtons';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n this._resizeUnit = editor.config.get('image.resizeUnit');\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const options = editor.config.get('image.resizeOptions');\n const command = editor.commands.get('resizeImage');\n this.bind('isEnabled').to(command);\n for (const option of options) {\n this._registerImageResizeButton(option);\n }\n this._registerImageResizeDropdown(options);\n }\n /**\n * A helper function that creates a standalone button component for the plugin.\n *\n * @param resizeOption A model of the resize option.\n */\n _registerImageResizeButton(option) {\n const editor = this.editor;\n const { name, value, icon } = option;\n const optionValueWithUnit = value ? value + this._resizeUnit : null;\n editor.ui.componentFactory.add(name, locale => {\n const button = new ButtonView(locale);\n const command = editor.commands.get('resizeImage');\n const labelText = this._getOptionLabelValue(option, true);\n if (!RESIZE_ICONS[icon]) {\n /**\n * When configuring {@link module:image/imageconfig~ImageConfig#resizeOptions `config.image.resizeOptions`} for standalone\n * buttons, a valid `icon` token must be set for each option.\n *\n * See all valid options described in the\n * {@link module:image/imageconfig~ImageResizeOption plugin configuration}.\n *\n * @error imageresizebuttons-missing-icon\n * @param option Invalid image resize option.\n */\n throw new CKEditorError('imageresizebuttons-missing-icon', editor, option);\n }\n button.set({\n // Use the `label` property for a verbose description (because of ARIA).\n label: labelText,\n icon: RESIZE_ICONS[icon],\n tooltip: labelText,\n isToggleable: true\n });\n // Bind button to the command.\n button.bind('isEnabled').to(this);\n button.bind('isOn').to(command, 'value', getIsOnButtonCallback(optionValueWithUnit));\n this.listenTo(button, 'execute', () => {\n editor.execute('resizeImage', { width: optionValueWithUnit });\n });\n return button;\n });\n }\n /**\n * A helper function that creates a dropdown component for the plugin containing all the resize options defined in\n * the editor configuration.\n *\n * @param options An array of configured options.\n */\n _registerImageResizeDropdown(options) {\n const editor = this.editor;\n const t = editor.t;\n const originalSizeOption = options.find(option => !option.value);\n const componentCreator = (locale) => {\n const command = editor.commands.get('resizeImage');\n const dropdownView = createDropdown(locale, DropdownButtonView);\n const dropdownButton = dropdownView.buttonView;\n const accessibleLabel = t('Resize image');\n dropdownButton.set({\n tooltip: accessibleLabel,\n commandValue: originalSizeOption.value,\n icon: RESIZE_ICONS.medium,\n isToggleable: true,\n label: this._getOptionLabelValue(originalSizeOption),\n withText: true,\n class: 'ck-resize-image-button',\n ariaLabel: accessibleLabel,\n ariaLabelledBy: undefined\n });\n dropdownButton.bind('label').to(command, 'value', commandValue => {\n if (commandValue && commandValue.width) {\n return commandValue.width;\n }\n else {\n return this._getOptionLabelValue(originalSizeOption);\n }\n });\n dropdownView.bind('isEnabled').to(this);\n addListToDropdown(dropdownView, () => this._getResizeDropdownListItemDefinitions(options, command), {\n ariaLabel: t('Image resize list'),\n role: 'menu'\n });\n // Execute command when an item from the dropdown is selected.\n this.listenTo(dropdownView, 'execute', evt => {\n editor.execute(evt.source.commandName, { width: evt.source.commandValue });\n editor.editing.view.focus();\n });\n return dropdownView;\n };\n // Register `resizeImage` dropdown and add `imageResize` dropdown as an alias for backward compatibility.\n editor.ui.componentFactory.add('resizeImage', componentCreator);\n editor.ui.componentFactory.add('imageResize', componentCreator);\n }\n /**\n * A helper function for creating an option label value string.\n *\n * @param option A resize option object.\n * @param forTooltip An optional flag for creating a tooltip label.\n * @returns A user-defined label combined from the numeric value and the resize unit or the default label\n * for reset options (`Original`).\n */\n _getOptionLabelValue(option, forTooltip = false) {\n const t = this.editor.t;\n if (option.label) {\n return option.label;\n }\n else if (forTooltip) {\n if (option.value) {\n return t('Resize image to %0', option.value + this._resizeUnit);\n }\n else {\n return t('Resize image to the original size');\n }\n }\n else {\n if (option.value) {\n return option.value + this._resizeUnit;\n }\n else {\n return t('Original');\n }\n }\n }\n /**\n * A helper function that parses the resize options and returns list item definitions ready for use in the dropdown.\n *\n * @param options The resize options.\n * @param command The resize image command.\n * @returns Dropdown item definitions.\n */\n _getResizeDropdownListItemDefinitions(options, command) {\n const itemDefinitions = new Collection();\n options.map(option => {\n const optionValueWithUnit = option.value ? option.value + this._resizeUnit : null;\n const definition = {\n type: 'button',\n model: new ViewModel({\n commandName: 'resizeImage',\n commandValue: optionValueWithUnit,\n label: this._getOptionLabelValue(option),\n role: 'menuitemradio',\n withText: true,\n icon: null\n })\n };\n definition.model.bind('isOn').to(command, 'value', getIsOnButtonCallback(optionValueWithUnit));\n itemDefinitions.add(definition);\n });\n return itemDefinitions;\n }\n}\n/**\n * A helper function for setting the `isOn` state of buttons in value bindings.\n */\nfunction getIsOnButtonCallback(value) {\n return (commandValue) => {\n const objectCommandValue = commandValue;\n if (value === null && objectCommandValue === value) {\n return true;\n }\n return objectCommandValue !== null && objectCommandValue.width === value;\n };\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nconst RESIZABLE_IMAGES_CSS_SELECTOR = 'figure.image.ck-widget > img,' +\n 'figure.image.ck-widget > picture > img,' +\n 'figure.image.ck-widget > a > img,' +\n 'figure.image.ck-widget > a > picture > img,' +\n 'span.image-inline.ck-widget > img,' +\n 'span.image-inline.ck-widget > picture > img';\nconst RESIZED_IMAGE_CLASS = 'image_resized';\n/**\n * The image resize by handles feature.\n *\n * It adds the ability to resize each image using handles or manually by\n * {@link module:image/imageresize/imageresizebuttons~ImageResizeButtons} buttons.\n */\nclass ImageResizeHandles extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [WidgetResize, ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageResizeHandles';\n }\n /**\n * @inheritDoc\n */\n init() {\n const command = this.editor.commands.get('resizeImage');\n this.bind('isEnabled').to(command);\n this._setupResizerCreator();\n }\n /**\n * Attaches the listeners responsible for creating a resizer for each image, except for images inside the HTML embed preview.\n */\n _setupResizerCreator() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n const imageUtils = editor.plugins.get('ImageUtils');\n editingView.addObserver(ImageLoadObserver);\n this.listenTo(editingView.document, 'imageLoaded', (evt, domEvent) => {\n // The resizer must be attached only to images loaded by the `ImageInsert`, `ImageUpload` or `LinkImage` plugins.\n if (!domEvent.target.matches(RESIZABLE_IMAGES_CSS_SELECTOR)) {\n return;\n }\n const domConverter = editor.editing.view.domConverter;\n const imageView = domConverter.domToView(domEvent.target);\n const widgetView = imageUtils.getImageWidgetFromImageView(imageView);\n let resizer = this.editor.plugins.get(WidgetResize).getResizerByViewElement(widgetView);\n if (resizer) {\n // There are rare cases when the image will be triggered multiple times for the same widget, e.g. when\n // the image's source was changed after upload (https://github.com/ckeditor/ckeditor5/pull/8108#issuecomment-708302992).\n resizer.redraw();\n return;\n }\n const mapper = editor.editing.mapper;\n const imageModel = mapper.toModelElement(widgetView);\n resizer = editor.plugins\n .get(WidgetResize)\n .attachTo({\n unit: editor.config.get('image.resizeUnit'),\n modelElement: imageModel,\n viewElement: widgetView,\n editor,\n getHandleHost(domWidgetElement) {\n return domWidgetElement.querySelector('img');\n },\n getResizeHost() {\n // Return the model image element parent to avoid setting an inline element (<a>/<span>) as a resize host.\n return domConverter.mapViewToDom(mapper.toViewElement(imageModel.parent));\n },\n isCentered() {\n const imageStyle = imageModel.getAttribute('imageStyle');\n return imageStyle == 'alignCenter';\n },\n onCommit(newValue) {\n // Get rid of the CSS class in case the command execution that follows is unsuccessful\n // (e.g. Track Changes can override it and the new dimensions will not apply). Otherwise,\n // the presence of the class and the absence of the width style will cause it to take 100%\n // of the horizontal space.\n editingView.change(writer => {\n writer.removeClass(RESIZED_IMAGE_CLASS, widgetView);\n });\n editor.execute('resizeImage', { width: newValue });\n }\n });\n resizer.on('updateSize', () => {\n if (!widgetView.hasClass(RESIZED_IMAGE_CLASS)) {\n editingView.change(writer => {\n writer.addClass(RESIZED_IMAGE_CLASS, widgetView);\n });\n }\n const target = imageModel.name === 'imageInline' ? imageView : widgetView;\n if (target.getStyle('height')) {\n editingView.change(writer => {\n writer.removeStyle('height', target);\n });\n }\n });\n resizer.bind('isEnabled').to(this);\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageresize\n */\n/**\n * The image resize plugin.\n *\n * It adds a possibility to resize each image using handles.\n */\nclass ImageResize extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageResizeEditing, ImageResizeHandles, ImageResizeButtons];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageResize';\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * The image style command. It is used to apply {@link module:image/imageconfig~ImageStyleConfig#options image style option}\n * to a selected image.\n *\n * **Note**: Executing this command may change the image model element if the desired style requires an image of a different\n * type. See {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand#execute} to learn more.\n */\nclass ImageStyleCommand extends Command {\n /**\n * Creates an instance of the image style command. When executed, the command applies one of\n * {@link module:image/imageconfig~ImageStyleConfig#options style options} to the currently selected image.\n *\n * @param editor The editor instance.\n * @param styles The style options that this command supports.\n */\n constructor(editor, styles) {\n super(editor);\n this._defaultStyles = {\n imageBlock: false,\n imageInline: false\n };\n this._styles = new Map(styles.map(style => {\n if (style.isDefault) {\n for (const modelElementName of style.modelElements) {\n this._defaultStyles[modelElementName] = style.name;\n }\n }\n return [style.name, style];\n }));\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = imageUtils.getClosestSelectedImageElement(this.editor.model.document.selection);\n this.isEnabled = !!element;\n if (!this.isEnabled) {\n this.value = false;\n }\n else if (element.hasAttribute('imageStyle')) {\n this.value = element.getAttribute('imageStyle');\n }\n else {\n this.value = this._defaultStyles[element.name];\n }\n }\n /**\n * Executes the command and applies the style to the currently selected image:\n *\n * ```ts\n * editor.execute( 'imageStyle', { value: 'side' } );\n * ```\n *\n * **Note**: Executing this command may change the image model element if the desired style requires an image\n * of a different type. Learn more about {@link module:image/imageconfig~ImageStyleOptionDefinition#modelElements model element}\n * configuration for the style option.\n *\n * @param options.value The name of the style (as configured in {@link module:image/imageconfig~ImageStyleConfig#options}).\n * @param options.setImageSizes Specifies whether the image `width` and `height` attributes should be set automatically.\n * The default is `true`.\n * @fires execute\n */\n execute(options = {}) {\n const editor = this.editor;\n const model = editor.model;\n const imageUtils = editor.plugins.get('ImageUtils');\n model.change(writer => {\n const requestedStyle = options.value;\n const { setImageSizes = true } = options;\n let imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n // Change the image type if a style requires it.\n if (requestedStyle && this.shouldConvertImageType(requestedStyle, imageElement)) {\n this.editor.execute(imageUtils.isBlockImage(imageElement) ? 'imageTypeInline' : 'imageTypeBlock', { setImageSizes });\n // Update the imageElement to the newly created image.\n imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n }\n // Default style means that there is no `imageStyle` attribute in the model.\n // https://github.com/ckeditor/ckeditor5-image/issues/147\n if (!requestedStyle || this._styles.get(requestedStyle).isDefault) {\n writer.removeAttribute('imageStyle', imageElement);\n }\n else {\n writer.setAttribute('imageStyle', requestedStyle, imageElement);\n }\n if (setImageSizes) {\n imageUtils.setImageNaturalSizeAttributes(imageElement);\n }\n });\n }\n /**\n * Returns `true` if requested style change would trigger the image type change.\n *\n * @param requestedStyle The name of the style (as configured in {@link module:image/imageconfig~ImageStyleConfig#options}).\n * @param imageElement The image model element.\n */\n shouldConvertImageType(requestedStyle, imageElement) {\n const supportedTypes = this._styles.get(requestedStyle).modelElements;\n return !supportedTypes.includes(imageElement.name);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle/utils\n */\nconst { objectFullWidth, objectInline, objectLeft, objectRight, objectCenter, objectBlockLeft, objectBlockRight } = icons;\n/**\n * Default image style options provided by the plugin that can be referred in the {@link module:image/imageconfig~ImageConfig#styles}\n * configuration.\n *\n * There are available 5 styles focused on formatting:\n *\n * * **`'alignLeft'`** aligns the inline or block image to the left and wraps it with the text using the `image-style-align-left` class,\n * * **`'alignRight'`** aligns the inline or block image to the right and wraps it with the text using the `image-style-align-right` class,\n * * **`'alignCenter'`** centers the block image using the `image-style-align-center` class,\n * * **`'alignBlockLeft'`** aligns the block image to the left using the `image-style-block-align-left` class,\n * * **`'alignBlockRight'`** aligns the block image to the right using the `image-style-block-align-right` class,\n *\n * and 3 semantic styles:\n *\n * * **`'inline'`** is an inline image without any CSS class,\n * * **`'block'`** is a block image without any CSS class,\n * * **`'side'`** is a block image styled with the `image-style-side` CSS class.\n */\nconst DEFAULT_OPTIONS = {\n // This style represents an image placed in the line of text.\n get inline() {\n return {\n name: 'inline',\n title: 'In line',\n icon: objectInline,\n modelElements: ['imageInline'],\n isDefault: true\n };\n },\n // This style represents an image aligned to the left and wrapped with text.\n get alignLeft() {\n return {\n name: 'alignLeft',\n title: 'Left aligned image',\n icon: objectLeft,\n modelElements: ['imageBlock', 'imageInline'],\n className: 'image-style-align-left'\n };\n },\n // This style represents an image aligned to the left.\n get alignBlockLeft() {\n return {\n name: 'alignBlockLeft',\n title: 'Left aligned image',\n icon: objectBlockLeft,\n modelElements: ['imageBlock'],\n className: 'image-style-block-align-left'\n };\n },\n // This style represents a centered image.\n get alignCenter() {\n return {\n name: 'alignCenter',\n title: 'Centered image',\n icon: objectCenter,\n modelElements: ['imageBlock'],\n className: 'image-style-align-center'\n };\n },\n // This style represents an image aligned to the right and wrapped with text.\n get alignRight() {\n return {\n name: 'alignRight',\n title: 'Right aligned image',\n icon: objectRight,\n modelElements: ['imageBlock', 'imageInline'],\n className: 'image-style-align-right'\n };\n },\n // This style represents an image aligned to the right.\n get alignBlockRight() {\n return {\n name: 'alignBlockRight',\n title: 'Right aligned image',\n icon: objectBlockRight,\n modelElements: ['imageBlock'],\n className: 'image-style-block-align-right'\n };\n },\n // This option is equal to the situation when no style is applied.\n get block() {\n return {\n name: 'block',\n title: 'Centered image',\n icon: objectCenter,\n modelElements: ['imageBlock'],\n isDefault: true\n };\n },\n // This represents a side image.\n get side() {\n return {\n name: 'side',\n title: 'Side image',\n icon: objectRight,\n modelElements: ['imageBlock'],\n className: 'image-style-side'\n };\n }\n};\n/**\n * Default image style icons provided by the plugin that can be referred in the {@link module:image/imageconfig~ImageConfig#styles}\n * configuration.\n *\n * See {@link module:image/imageconfig~ImageStyleOptionDefinition#icon} to learn more.\n *\n * There are 7 default icons available: `'full'`, `'left'`, `'inlineLeft'`, `'center'`, `'right'`, `'inlineRight'`, and `'inline'`.\n */\nconst DEFAULT_ICONS = {\n full: objectFullWidth,\n left: objectBlockLeft,\n right: objectBlockRight,\n center: objectCenter,\n inlineLeft: objectLeft,\n inlineRight: objectRight,\n inline: objectInline\n};\n/**\n * Default drop-downs provided by the plugin that can be referred in the {@link module:image/imageconfig~ImageConfig#toolbar}\n * configuration. The drop-downs are containers for the {@link module:image/imageconfig~ImageStyleConfig#options image style options}.\n *\n * If both of the `ImageEditing` plugins are loaded, there are 2 predefined drop-downs available:\n *\n * * **`'imageStyle:wrapText'`**, which contains the `alignLeft` and `alignRight` options, that is,\n * those that wraps the text around the image,\n * * **`'imageStyle:breakText'`**, which contains the `alignBlockLeft`, `alignCenter` and `alignBlockRight` options, that is,\n * those that breaks the text around the image.\n */\nconst DEFAULT_DROPDOWN_DEFINITIONS = [{\n name: 'imageStyle:wrapText',\n title: 'Wrap text',\n defaultItem: 'imageStyle:alignLeft',\n items: ['imageStyle:alignLeft', 'imageStyle:alignRight']\n }, {\n name: 'imageStyle:breakText',\n title: 'Break text',\n defaultItem: 'imageStyle:block',\n items: ['imageStyle:alignBlockLeft', 'imageStyle:block', 'imageStyle:alignBlockRight']\n }];\n/**\n * Returns a list of the normalized and validated image style options.\n *\n * @param config\n * @param config.isInlinePluginLoaded\n * Determines whether the {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugin has been loaded.\n * @param config.isBlockPluginLoaded\n * Determines whether the {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`} plugin has been loaded.\n * @param config.configuredStyles\n * The image styles configuration provided in the image styles {@link module:image/imageconfig~ImageConfig#styles configuration}\n * as a default or custom value.\n * @returns\n * * Each of options contains a complete icon markup.\n * * The image style options not supported by any of the loaded plugins are filtered out.\n */\nfunction normalizeStyles(config) {\n const configuredStyles = config.configuredStyles.options || [];\n const styles = configuredStyles\n .map(arrangement => normalizeDefinition(arrangement))\n .filter(arrangement => isValidOption(arrangement, config));\n return styles;\n}\n/**\n * Returns the default image styles configuration depending on the loaded image editing plugins.\n *\n * @param isInlinePluginLoaded\n * Determines whether the {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugin has been loaded.\n *\n * @param isBlockPluginLoaded\n * Determines whether the {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`} plugin has been loaded.\n *\n * @returns\n * It returns an object with the lists of the image style options and groups defined as strings related to the\n * {@link module:image/imagestyle/utils#DEFAULT_OPTIONS default options}\n */\nfunction getDefaultStylesConfiguration(isBlockPluginLoaded, isInlinePluginLoaded) {\n if (isBlockPluginLoaded && isInlinePluginLoaded) {\n return {\n options: [\n 'inline', 'alignLeft', 'alignRight',\n 'alignCenter', 'alignBlockLeft', 'alignBlockRight',\n 'block', 'side'\n ]\n };\n }\n else if (isBlockPluginLoaded) {\n return {\n options: ['block', 'side']\n };\n }\n else if (isInlinePluginLoaded) {\n return {\n options: ['inline', 'alignLeft', 'alignRight']\n };\n }\n return {};\n}\n/**\n * Returns a list of the available predefined drop-downs' definitions depending on the loaded image editing plugins.\n */\nfunction getDefaultDropdownDefinitions(pluginCollection) {\n if (pluginCollection.has('ImageBlockEditing') && pluginCollection.has('ImageInlineEditing')) {\n return [...DEFAULT_DROPDOWN_DEFINITIONS];\n }\n else {\n return [];\n }\n}\n/**\n * Normalizes an image style option or group provided in the {@link module:image/imageconfig~ImageConfig#styles}\n * and returns it in a {@link module:image/imageconfig~ImageStyleOptionDefinition}/\n */\nfunction normalizeDefinition(definition) {\n if (typeof definition === 'string') {\n // Just the name of the style has been passed, but none of the defaults.\n if (!DEFAULT_OPTIONS[definition]) {\n // Normalize the style anyway to prevent errors.\n definition = { name: definition };\n }\n // Just the name of the style has been passed and it's one of the defaults, just use it.\n // Clone the style to avoid overriding defaults.\n else {\n definition = { ...DEFAULT_OPTIONS[definition] };\n }\n }\n else {\n // If an object style has been passed and if the name matches one of the defaults,\n // extend it with defaults – the user wants to customize a default style.\n // Note: Don't override the user–defined style object, clone it instead.\n definition = extendStyle(DEFAULT_OPTIONS[definition.name], definition);\n }\n // If an icon is defined as a string and correspond with a name\n // in default icons, use the default icon provided by the plugin.\n if (typeof definition.icon === 'string') {\n definition.icon = DEFAULT_ICONS[definition.icon] || definition.icon;\n }\n return definition;\n}\n/**\n * Checks if the image style option is valid:\n * * if it has the modelElements fields defined and filled,\n * * if the defined modelElements are supported by any of the loaded image editing plugins.\n * It also displays a console warning these conditions are not met.\n *\n * @param option image style option\n */\nfunction isValidOption(option, { isBlockPluginLoaded, isInlinePluginLoaded }) {\n const { modelElements, name } = option;\n if (!modelElements || !modelElements.length || !name) {\n warnInvalidStyle({ style: option });\n return false;\n }\n else {\n const supportedElements = [isBlockPluginLoaded ? 'imageBlock' : null, isInlinePluginLoaded ? 'imageInline' : null];\n // Check if the option is supported by any of the loaded plugins.\n if (!modelElements.some(elementName => supportedElements.includes(elementName))) {\n /**\n * In order to work correctly, each image style {@link module:image/imageconfig~ImageStyleOptionDefinition option}\n * requires specific model elements (also: types of images) to be supported by the editor.\n *\n * Model element names to which the image style option can be applied are defined in the\n * {@link module:image/imageconfig~ImageStyleOptionDefinition#modelElements} property of the style option\n * definition.\n *\n * Explore the warning in the console to find out precisely which option is not supported and which editor plugins\n * are missing. Make sure these plugins are loaded in your editor to get this image style option working.\n *\n * @error image-style-missing-dependency\n * @param {String} [option] The name of the unsupported option.\n * @param {String} [missingPlugins] The names of the plugins one of which has to be loaded for the particular option.\n */\n logWarning('image-style-missing-dependency', {\n style: option,\n missingPlugins: modelElements.map(name => name === 'imageBlock' ? 'ImageBlockEditing' : 'ImageInlineEditing')\n });\n return false;\n }\n }\n return true;\n}\n/**\n * Extends the default style with a style provided by the developer.\n * Note: Don't override the custom–defined style object, clone it instead.\n */\nfunction extendStyle(source, style) {\n const extendedStyle = { ...style };\n for (const prop in source) {\n if (!Object.prototype.hasOwnProperty.call(style, prop)) {\n extendedStyle[prop] = source[prop];\n }\n }\n return extendedStyle;\n}\n/**\n * Displays a console warning with the 'image-style-configuration-definition-invalid' error.\n */\nfunction warnInvalidStyle(info) {\n /**\n * The image style definition provided in the configuration is invalid.\n *\n * Please make sure the definition implements properly one of the following:\n *\n * * {@link module:image/imageconfig~ImageStyleOptionDefinition image style option definition},\n * * {@link module:image/imageconfig~ImageStyleDropdownDefinition image style dropdown definition}\n *\n * @error image-style-configuration-definition-invalid\n * @param {String} [dropdown] The name of the invalid drop-down\n * @param {String} [style] The name of the invalid image style option\n */\n logWarning('image-style-configuration-definition-invalid', info);\n}\nvar utils = {\n normalizeStyles,\n getDefaultStylesConfiguration,\n getDefaultDropdownDefinitions,\n warnInvalidStyle,\n DEFAULT_OPTIONS,\n DEFAULT_ICONS,\n DEFAULT_DROPDOWN_DEFINITIONS\n};\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle/converters\n */\n/**\n * Returns a converter for the `imageStyle` attribute. It can be used for adding, changing and removing the attribute.\n *\n * @param styles An array containing available image style options.\n * @returns A model-to-view attribute converter.\n */\nfunction modelToViewStyleAttribute(styles) {\n return (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n // Check if there is class name associated with given value.\n const newStyle = getStyleDefinitionByName(data.attributeNewValue, styles);\n const oldStyle = getStyleDefinitionByName(data.attributeOldValue, styles);\n const viewElement = conversionApi.mapper.toViewElement(data.item);\n const viewWriter = conversionApi.writer;\n if (oldStyle) {\n viewWriter.removeClass(oldStyle.className, viewElement);\n }\n if (newStyle) {\n viewWriter.addClass(newStyle.className, viewElement);\n }\n };\n}\n/**\n * Returns a view-to-model converter converting image CSS classes to a proper value in the model.\n *\n * @param styles Image style options for which the converter is created.\n * @returns A view-to-model converter.\n */\nfunction viewToModelStyleAttribute(styles) {\n // Convert only non–default styles.\n const nonDefaultStyles = {\n imageInline: styles.filter(style => !style.isDefault && style.modelElements.includes('imageInline')),\n imageBlock: styles.filter(style => !style.isDefault && style.modelElements.includes('imageBlock'))\n };\n return (evt, data, conversionApi) => {\n if (!data.modelRange) {\n return;\n }\n const viewElement = data.viewItem;\n const modelImageElement = first(data.modelRange.getItems());\n // Run this converter only if an image has been found in the model.\n // In some cases it may not be found (for example if we run this on a figure with different type than image).\n if (!modelImageElement) {\n return;\n }\n // ...and the `imageStyle` attribute is allowed for that element, otherwise stop conversion early.\n if (!conversionApi.schema.checkAttribute(modelImageElement, 'imageStyle')) {\n return;\n }\n // Convert styles one by one.\n for (const style of nonDefaultStyles[modelImageElement.name]) {\n // Try to consume class corresponding with the style.\n if (conversionApi.consumable.consume(viewElement, { classes: style.className })) {\n // And convert this style to model attribute.\n conversionApi.writer.setAttribute('imageStyle', style.name, modelImageElement);\n }\n }\n };\n}\n/**\n * Returns the style with a given `name` from an array of styles.\n */\nfunction getStyleDefinitionByName(name, styles) {\n for (const style of styles) {\n if (style.name === name) {\n return style;\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle/imagestyleediting\n */\n/**\n * The image style engine plugin. It sets the default configuration, creates converters and registers\n * {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand ImageStyleCommand}.\n */\nclass ImageStyleEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageStyleEditing';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n init() {\n const { normalizeStyles, getDefaultStylesConfiguration } = utils;\n const editor = this.editor;\n const isBlockPluginLoaded = editor.plugins.has('ImageBlockEditing');\n const isInlinePluginLoaded = editor.plugins.has('ImageInlineEditing');\n editor.config.define('image.styles', getDefaultStylesConfiguration(isBlockPluginLoaded, isInlinePluginLoaded));\n this.normalizedStyles = normalizeStyles({\n configuredStyles: editor.config.get('image.styles'),\n isBlockPluginLoaded,\n isInlinePluginLoaded\n });\n this._setupConversion(isBlockPluginLoaded, isInlinePluginLoaded);\n this._setupPostFixer();\n // Register imageStyle command.\n editor.commands.add('imageStyle', new ImageStyleCommand(editor, this.normalizedStyles));\n }\n /**\n * Sets the editor conversion taking the presence of\n * {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`}\n * and {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugins into consideration.\n */\n _setupConversion(isBlockPluginLoaded, isInlinePluginLoaded) {\n const editor = this.editor;\n const schema = editor.model.schema;\n const modelToViewConverter = modelToViewStyleAttribute(this.normalizedStyles);\n const viewToModelConverter = viewToModelStyleAttribute(this.normalizedStyles);\n editor.editing.downcastDispatcher.on('attribute:imageStyle', modelToViewConverter);\n editor.data.downcastDispatcher.on('attribute:imageStyle', modelToViewConverter);\n // Allow imageStyle attribute in image and imageInline.\n // We could call it 'style' but https://github.com/ckeditor/ckeditor5-engine/issues/559.\n if (isBlockPluginLoaded) {\n schema.extend('imageBlock', { allowAttributes: 'imageStyle' });\n // Converter for figure element from view to model.\n editor.data.upcastDispatcher.on('element:figure', viewToModelConverter, { priority: 'low' });\n }\n if (isInlinePluginLoaded) {\n schema.extend('imageInline', { allowAttributes: 'imageStyle' });\n // Converter for the img element from view to model.\n editor.data.upcastDispatcher.on('element:img', viewToModelConverter, { priority: 'low' });\n }\n }\n /**\n * Registers a post-fixer that will make sure that the style attribute value is correct for a specific image type (block vs inline).\n */\n _setupPostFixer() {\n const editor = this.editor;\n const document = editor.model.document;\n const imageUtils = editor.plugins.get(ImageUtils);\n const stylesMap = new Map(this.normalizedStyles.map(style => [style.name, style]));\n // Make sure that style attribute is valid for the image type.\n document.registerPostFixer(writer => {\n let changed = false;\n for (const change of document.differ.getChanges()) {\n if (change.type == 'insert' || change.type == 'attribute' && change.attributeKey == 'imageStyle') {\n let element = change.type == 'insert' ? change.position.nodeAfter : change.range.start.nodeAfter;\n if (element && element.is('element', 'paragraph') && element.childCount > 0) {\n element = element.getChild(0);\n }\n if (!imageUtils.isImage(element)) {\n continue;\n }\n const imageStyle = element.getAttribute('imageStyle');\n if (!imageStyle) {\n continue;\n }\n const imageStyleDefinition = stylesMap.get(imageStyle);\n if (!imageStyleDefinition || !imageStyleDefinition.modelElements.includes(element.name)) {\n writer.removeAttribute('imageStyle', element);\n changed = true;\n }\n }\n }\n return changed;\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle/imagestyleui\n */\n/**\n * The image style UI plugin.\n *\n * It registers buttons corresponding to the {@link module:image/imageconfig~ImageConfig#styles} configuration.\n * It also registers the {@link module:image/imagestyle/utils#DEFAULT_DROPDOWN_DEFINITIONS default drop-downs} and the\n * custom drop-downs defined by the developer in the {@link module:image/imageconfig~ImageConfig#toolbar} configuration.\n */\nclass ImageStyleUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageStyleEditing];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageStyleUI';\n }\n /**\n * Returns the default localized style titles provided by the plugin.\n *\n * The following localized titles corresponding with\n * {@link module:image/imagestyle/utils#DEFAULT_OPTIONS} are available:\n *\n * * `'Wrap text'`,\n * * `'Break text'`,\n * * `'In line'`,\n * * `'Full size image'`,\n * * `'Side image'`,\n * * `'Left aligned image'`,\n * * `'Centered image'`,\n * * `'Right aligned image'`\n */\n get localizedDefaultStylesTitles() {\n const t = this.editor.t;\n return {\n 'Wrap text': t('Wrap text'),\n 'Break text': t('Break text'),\n 'In line': t('In line'),\n 'Full size image': t('Full size image'),\n 'Side image': t('Side image'),\n 'Left aligned image': t('Left aligned image'),\n 'Centered image': t('Centered image'),\n 'Right aligned image': t('Right aligned image')\n };\n }\n /**\n * @inheritDoc\n */\n init() {\n const plugins = this.editor.plugins;\n const toolbarConfig = this.editor.config.get('image.toolbar') || [];\n const imageStyleEditing = plugins.get('ImageStyleEditing');\n const definedStyles = translateStyles(imageStyleEditing.normalizedStyles, this.localizedDefaultStylesTitles);\n for (const styleConfig of definedStyles) {\n this._createButton(styleConfig);\n }\n const definedDropdowns = translateStyles([\n ...toolbarConfig.filter(isObject),\n ...utils.getDefaultDropdownDefinitions(plugins)\n ], this.localizedDefaultStylesTitles);\n for (const dropdownConfig of definedDropdowns) {\n this._createDropdown(dropdownConfig, definedStyles);\n }\n }\n /**\n * Creates a dropdown and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.\n */\n _createDropdown(dropdownConfig, definedStyles) {\n const factory = this.editor.ui.componentFactory;\n factory.add(dropdownConfig.name, locale => {\n let defaultButton;\n const { defaultItem, items, title } = dropdownConfig;\n const buttonViews = items\n .filter(itemName => definedStyles.find(({ name }) => getUIComponentName(name) === itemName))\n .map(buttonName => {\n const button = factory.create(buttonName);\n if (buttonName === defaultItem) {\n defaultButton = button;\n }\n return button;\n });\n if (items.length !== buttonViews.length) {\n utils.warnInvalidStyle({ dropdown: dropdownConfig });\n }\n const dropdownView = createDropdown(locale, SplitButtonView);\n const splitButtonView = dropdownView.buttonView;\n const splitButtonViewArrow = splitButtonView.arrowView;\n addToolbarToDropdown(dropdownView, buttonViews, { enableActiveItemFocusOnDropdownOpen: true });\n splitButtonView.set({\n label: getDropdownButtonTitle(title, defaultButton.label),\n class: null,\n tooltip: true\n });\n splitButtonViewArrow.unbind('label');\n splitButtonViewArrow.set({\n label: title\n });\n splitButtonView.bind('icon').toMany(buttonViews, 'isOn', (...areOn) => {\n const index = areOn.findIndex(identity);\n return (index < 0) ? defaultButton.icon : buttonViews[index].icon;\n });\n splitButtonView.bind('label').toMany(buttonViews, 'isOn', (...areOn) => {\n const index = areOn.findIndex(identity);\n return getDropdownButtonTitle(title, (index < 0) ? defaultButton.label : buttonViews[index].label);\n });\n splitButtonView.bind('isOn').toMany(buttonViews, 'isOn', (...areOn) => areOn.some(identity));\n splitButtonView.bind('class')\n .toMany(buttonViews, 'isOn', (...areOn) => areOn.some(identity) ? 'ck-splitbutton_flatten' : undefined);\n splitButtonView.on('execute', () => {\n if (!buttonViews.some(({ isOn }) => isOn)) {\n defaultButton.fire('execute');\n }\n else {\n dropdownView.isOpen = !dropdownView.isOpen;\n }\n });\n dropdownView.bind('isEnabled')\n .toMany(buttonViews, 'isEnabled', (...areEnabled) => areEnabled.some(identity));\n // Focus the editable after executing the command.\n // Overrides a default behaviour where the focus is moved to the dropdown button (#12125).\n this.listenTo(dropdownView, 'execute', () => {\n this.editor.editing.view.focus();\n });\n return dropdownView;\n });\n }\n /**\n * Creates a button and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.\n */\n _createButton(buttonConfig) {\n const buttonName = buttonConfig.name;\n this.editor.ui.componentFactory.add(getUIComponentName(buttonName), locale => {\n const command = this.editor.commands.get('imageStyle');\n const view = new ButtonView(locale);\n view.set({\n label: buttonConfig.title,\n icon: buttonConfig.icon,\n tooltip: true,\n isToggleable: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n view.bind('isOn').to(command, 'value', value => value === buttonName);\n view.on('execute', this._executeCommand.bind(this, buttonName));\n return view;\n });\n }\n _executeCommand(name) {\n this.editor.execute('imageStyle', { value: name });\n this.editor.editing.view.focus();\n }\n}\n/**\n * Returns the translated `title` from the passed styles array.\n */\nfunction translateStyles(styles, titles) {\n for (const style of styles) {\n // Localize the titles of the styles, if a title corresponds with\n // a localized default provided by the plugin.\n if (titles[style.title]) {\n style.title = titles[style.title];\n }\n }\n return styles;\n}\n/**\n * Returns the image style component name with the \"imageStyle:\" prefix.\n */\nfunction getUIComponentName(name) {\n return `imageStyle:${name}`;\n}\n/**\n * Returns title for the splitbutton containing the dropdown title and default action item title.\n */\nfunction getDropdownButtonTitle(dropdownTitle, buttonTitle) {\n return (dropdownTitle ? dropdownTitle + ': ' : '') + buttonTitle;\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle\n */\n/**\n * The image style plugin.\n *\n * For a detailed overview of the image styles feature, check the {@glink features/images/images-styles documentation}.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n * * {@link module:image/imagestyle/imagestyleediting~ImageStyleEditing},\n * * {@link module:image/imagestyle/imagestyleui~ImageStyleUI}\n *\n * It provides a default configuration, which can be extended or overwritten.\n * Read more about the {@link module:image/imageconfig~ImageConfig#styles image styles configuration}.\n */\nclass ImageStyle extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageStyleEditing, ImageStyleUI];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageStyle';\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetoolbar\n */\n/**\n * The image toolbar plugin. It creates and manages the image toolbar (the toolbar displayed when an image is selected).\n *\n * For an overview, check the {@glink features/images/images-overview#image-contextual-toolbar image contextual toolbar} documentation.\n *\n * Instances of toolbar components (e.g. buttons) are created using the editor's\n * {@link module:ui/componentfactory~ComponentFactory component factory}\n * based on the {@link module:image/imageconfig~ImageConfig#toolbar `image.toolbar` configuration option}.\n *\n * The toolbar uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon}.\n */\nclass ImageToolbar extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [WidgetToolbarRepository, ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageToolbar';\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n const editor = this.editor;\n const t = editor.t;\n const widgetToolbarRepository = editor.plugins.get(WidgetToolbarRepository);\n const imageUtils = editor.plugins.get('ImageUtils');\n widgetToolbarRepository.register('image', {\n ariaLabel: t('Image toolbar'),\n items: normalizeDeclarativeConfig(editor.config.get('image.toolbar') || []),\n getRelatedElement: selection => imageUtils.getClosestSelectedImageWidget(selection)\n });\n }\n}\n/**\n * Convert the dropdown definitions to their keys registered in the ComponentFactory.\n * The registration precess should be handled by the plugin which handles the UI of a particular feature.\n */\nfunction normalizeDeclarativeConfig(config) {\n return config.map(item => isObject(item) ? item.name : item);\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/pictureediting\n */\n/**\n * This plugin enables the [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture) element support in the editor.\n *\n * * It enables the `sources` model attribute on `imageBlock` and `imageInline` model elements\n * (brought by {@link module:image/imageblock~ImageBlock} and {@link module:image/imageinline~ImageInline}, respectively).\n * * It translates the `sources` model element to the view (also: data) structure that may look as follows:\n *\n * ```html\n * <p>Inline image using picture:\n * \t<picture>\n * \t\t<source media=\"(min-width: 800px)\" srcset=\"image-large.webp\" type=\"image/webp\">\n * \t\t<source media=\"(max-width: 800px)\" srcset=\"image-small.webp\" type=\"image/webp\">\n * \t\t<!-- Other sources as specified in the \"sources\" model attribute... -->\n * \t\t<img src=\"image.png\" alt=\"An image using picture\" />\n * \t</picture>\n * </p>\n *\n * <p>Block image using picture:</p>\n * <figure class=\"image\">\n * \t<picture>\n * \t\t<source media=\"(min-width: 800px)\" srcset=\"image-large.webp\" type=\"image/webp\">\n * \t\t<source media=\"(max-width: 800px)\" srcset=\"image-small.webp\" type=\"image/webp\">\n * \t\t<!-- Other sources as specified in the \"sources\" model attribute... -->\n * \t\t<img src=\"image.png\" alt=\"An image using picture\" />\n * \t</picture>\n * \t<figcaption>Caption of the image</figcaption>\n * </figure>\n * ```\n *\n * **Note:** The value of the `sources` {@glink framework/architecture/editing-engine#changing-the-model model attribute}\n * in both examples equals:\n *\n * ```css\n * [\n * \t{\n * \t\tmedia: '(min-width: 800px)',\n * \t\tsrcset: 'image-large.webp',\n * \t\ttype: 'image/webp'\n * \t},\n * \t{\n * \t\tmedia: '(max-width: 800px)',\n * \t\tsrcset: 'image-small.webp',\n * \t\ttype: 'image/webp'\n * \t}\n * ]\n * ```\n *\n * * It integrates with the {@link module:image/imageupload~ImageUpload} plugin so images uploaded in the editor\n * automatically render using `<picture>` if the {@glink features/images/image-upload/image-upload upload adapter}\n * supports image sources and provides neccessary data.\n *\n * @private\n */\nclass PictureEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageEditing, ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'PictureEditing';\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n const editor = this.editor;\n if (editor.plugins.has('ImageBlockEditing')) {\n editor.model.schema.extend('imageBlock', {\n allowAttributes: ['sources']\n });\n }\n if (editor.plugins.has('ImageInlineEditing')) {\n editor.model.schema.extend('imageInline', {\n allowAttributes: ['sources']\n });\n }\n this._setupConversion();\n this._setupImageUploadEditingIntegration();\n }\n /**\n * Configures conversion pipelines to support upcasting and downcasting images using the `<picture>` view element\n * and the model `sources` attribute.\n */\n _setupConversion() {\n const editor = this.editor;\n const conversion = editor.conversion;\n const imageUtils = editor.plugins.get('ImageUtils');\n conversion.for('upcast').add(upcastPicture(imageUtils));\n conversion.for('downcast').add(downcastSourcesAttribute(imageUtils));\n }\n /**\n * Makes it possible for uploaded images to get the `sources` model attribute and the `<picture>...</picture>`\n * view structure out-of-the-box if relevant data is provided along the\n * {@link module:image/imageupload/imageuploadediting~ImageUploadEditing#event:uploadComplete} event.\n */\n _setupImageUploadEditingIntegration() {\n const editor = this.editor;\n if (!editor.plugins.has('ImageUploadEditing')) {\n return;\n }\n const imageUploadEditing = editor.plugins.get('ImageUploadEditing');\n this.listenTo(imageUploadEditing, 'uploadComplete', (evt, { imageElement, data }) => {\n const sources = data.sources;\n if (!sources) {\n return;\n }\n editor.model.change(writer => {\n writer.setAttributes({\n sources\n }, imageElement);\n });\n });\n }\n}\n\nexport { AutoImage, Image, ImageBlock, ImageBlockEditing, ImageCaption, ImageCaptionEditing, ImageCaptionUI, ImageCaptionUtils, ImageEditing, ImageInline, ImageInsert, ImageInsertUI, ImageInsertViaUrl, ImageResize, ImageResizeButtons, ImageResizeEditing, ImageResizeHandles, ImageSizeAttributes, ImageStyle, ImageStyleEditing, ImageStyleUI, ImageTextAlternative, ImageTextAlternativeEditing, ImageTextAlternativeUI, ImageToolbar, ImageUpload, ImageUploadEditing, ImageUploadProgress, ImageUploadUI, ImageUtils, PictureEditing };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/utils\n */\n\nimport type {\n\tDocumentSelection,\n\tMatcherPattern,\n\tSchema,\n\tSelection,\n\tViewContainerElement,\n\tDowncastWriter,\n\tViewElement\n} from 'ckeditor5/src/engine.js';\nimport type { Editor } from 'ckeditor5/src/core.js';\nimport { first } from 'ckeditor5/src/utils.js';\n\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * Creates a view element representing the inline image.\n *\n * ```html\n * <span class=\"image-inline\"><img></img></span>\n * ```\n *\n * Note that `alt` and `src` attributes are converted separately, so they are not included.\n *\n * @internal\n */\nexport function createInlineImageViewElement( writer: DowncastWriter ): ViewContainerElement {\n\treturn writer.createContainerElement( 'span', { class: 'image-inline' },\n\t\twriter.createEmptyElement( 'img' )\n\t);\n}\n\n/**\n * Creates a view element representing the block image.\n *\n * ```html\n * <figure class=\"image\"><img></img></figure>\n * ```\n *\n * Note that `alt` and `src` attributes are converted separately, so they are not included.\n *\n * @internal\n */\nexport function createBlockImageViewElement( writer: DowncastWriter ): ViewContainerElement {\n\treturn writer.createContainerElement( 'figure', { class: 'image' }, [\n\t\twriter.createEmptyElement( 'img' ),\n\t\twriter.createSlot( 'children' )\n\t] );\n}\n\n/**\n * A function returning a `MatcherPattern` for a particular type of View images.\n *\n * @internal\n * @param matchImageType The type of created image.\n */\nexport function getImgViewElementMatcher( editor: Editor, matchImageType: 'imageBlock' | 'imageInline' ): MatcherPattern {\n\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\tconst areBothImagePluginsLoaded = editor.plugins.has( 'ImageInlineEditing' ) && editor.plugins.has( 'ImageBlockEditing' );\n\n\treturn element => {\n\t\t// Check if the matched view element is an <img>.\n\t\tif ( !imageUtils.isInlineImageView( element ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// If just one of the plugins is loaded (block or inline), it will match all kinds of images.\n\t\tif ( !areBothImagePluginsLoaded ) {\n\t\t\treturn getPositiveMatchPattern( element );\n\t\t}\n\n\t\t// The <img> can be standalone, wrapped in <figure>...</figure> (ImageBlock plugin) or\n\t\t// wrapped in <figure><a>...</a></figure> (LinkImage plugin).\n\t\tconst imageType = element.getStyle( 'display' ) == 'block' || element.findAncestor( imageUtils.isBlockImageView ) ?\n\t\t\t'imageBlock' :\n\t\t\t'imageInline';\n\n\t\tif ( imageType !== matchImageType ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn getPositiveMatchPattern( element );\n\t};\n\n\tfunction getPositiveMatchPattern( element: ViewElement ) {\n\t\tconst pattern: Record<string, unknown> = {\n\t\t\tname: true\n\t\t};\n\n\t\t// This will trigger src consumption (See https://github.com/ckeditor/ckeditor5/issues/11530).\n\t\tif ( element.hasAttribute( 'src' ) ) {\n\t\t\tpattern.attributes = [ 'src' ];\n\t\t}\n\n\t\treturn pattern;\n\t}\n}\n\n/**\n * Considering the current model selection, it returns the name of the model image element\n * (`'imageBlock'` or `'imageInline'`) that will make most sense from the UX perspective if a new\n * image was inserted (also: uploaded, dropped, pasted) at that selection.\n *\n * The assumption is that inserting images into empty blocks or on other block widgets should\n * produce block images. Inline images should be inserted in other cases, e.g. in paragraphs\n * that already contain some text.\n *\n * @internal\n */\nexport function determineImageTypeForInsertionAtSelection(\n\tschema: Schema,\n\tselection: Selection | DocumentSelection\n): 'imageBlock' | 'imageInline' {\n\tconst firstBlock = first( selection.getSelectedBlocks() );\n\n\t// Insert a block image if the selection is not in/on block elements or it's on a block widget.\n\tif ( !firstBlock || schema.isObject( firstBlock ) ) {\n\t\treturn 'imageBlock';\n\t}\n\n\t// A block image should also be inserted into an empty block element\n\t// (that is not an empty list item so the list won't get split).\n\tif ( firstBlock.isEmpty && firstBlock.name != 'listItem' ) {\n\t\treturn 'imageBlock';\n\t}\n\n\t// Otherwise insert an inline image.\n\treturn 'imageInline';\n}\n\n/**\n * Returns parsed value of the size, but only if it contains unit: px.\n */\nexport function getSizeValueIfInPx( size: string | undefined ): number | null {\n\tif ( size && size.endsWith( 'px' ) ) {\n\t\treturn parseInt( size );\n\t}\n\n\treturn null;\n}\n\n/**\n * Returns true if both styles (width and height) are set.\n *\n * If both image styles: width & height are set, they will override the image width & height attributes in the\n * browser. In this case, the image looks the same as if these styles were applied to attributes instead of styles.\n * That's why we can upcast these styles to width & height attributes instead of resizedWidth and resizedHeight.\n */\nexport function widthAndHeightStylesAreBothSet( viewElement: ViewElement ): boolean {\n\tconst widthStyle = getSizeValueIfInPx( viewElement.getStyle( 'width' ) );\n\tconst heightStyle = getSizeValueIfInPx( viewElement.getStyle( 'height' ) );\n\n\treturn !!( widthStyle && heightStyle );\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageutils\n */\n\nimport type {\n\tElement,\n\tViewElement,\n\tViewNode,\n\tDocumentSelection,\n\tViewDocumentSelection,\n\tSelection,\n\tViewSelection,\n\tDocumentFragment,\n\tViewDocumentFragment,\n\tDowncastWriter,\n\tModel,\n\tPosition,\n\tViewContainerElement\n} from 'ckeditor5/src/engine.js';\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { findOptimalInsertionRange, isWidget, toWidget } from 'ckeditor5/src/widget.js';\nimport { determineImageTypeForInsertionAtSelection } from './image/utils.js';\nimport { DomEmitterMixin, type DomEmitter, global } from 'ckeditor5/src/utils.js';\n\nconst IMAGE_WIDGETS_CLASSES_MATCH_REGEXP = /^(image|image-inline)$/;\n\n/**\n * A set of helpers related to images.\n */\nexport default class ImageUtils extends Plugin {\n\t/**\n\t * DOM Emitter.\n\t */\n\tprivate _domEmitter: DomEmitter = new ( DomEmitterMixin() )();\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageUtils' as const;\n\t}\n\n\t/**\n\t * Checks if the provided model element is an `image` or `imageInline`.\n\t */\n\tpublic isImage( modelElement?: Element | null ): modelElement is Element & { name: 'imageInline' | 'imageBlock' } {\n\t\treturn this.isInlineImage( modelElement ) || this.isBlockImage( modelElement );\n\t}\n\n\t/**\n\t * Checks if the provided view element represents an inline image.\n\t *\n\t * Also, see {@link module:image/imageutils~ImageUtils#isImageWidget}.\n\t */\n\tpublic isInlineImageView( element?: ViewElement | null ): boolean {\n\t\treturn !!element && element.is( 'element', 'img' );\n\t}\n\n\t/**\n\t * Checks if the provided view element represents a block image.\n\t *\n\t * Also, see {@link module:image/imageutils~ImageUtils#isImageWidget}.\n\t */\n\tpublic isBlockImageView( element?: ViewElement | null ): boolean {\n\t\treturn !!element && element.is( 'element', 'figure' ) && element.hasClass( 'image' );\n\t}\n\n\t/**\n\t * Handles inserting single file. This method unifies image insertion using {@link module:widget/utils~findOptimalInsertionRange}\n\t * method.\n\t *\n\t * ```ts\n\t * const imageUtils = editor.plugins.get( 'ImageUtils' );\n\t *\n\t * imageUtils.insertImage( { src: 'path/to/image.jpg' } );\n\t * ```\n\t *\n\t * @param attributes Attributes of the inserted image.\n\t * This method filters out the attributes which are disallowed by the {@link module:engine/model/schema~Schema}.\n\t * @param selectable Place to insert the image. If not specified,\n\t * the {@link module:widget/utils~findOptimalInsertionRange} logic will be applied for the block images\n\t * and `model.document.selection` for the inline images.\n\t *\n\t * **Note**: If `selectable` is passed, this helper will not be able to set selection attributes (such as `linkHref`)\n\t * and apply them to the new image. In this case, make sure all selection attributes are passed in `attributes`.\n\t *\n\t * @param imageType Image type of inserted image. If not specified,\n\t * it will be determined automatically depending of editor config or place of the insertion.\n\t * @param options.setImageSizes Specifies whether the image `width` and `height` attributes should be set automatically.\n\t * The default is `true`.\n\t * @return The inserted model image element.\n\t */\n\tpublic insertImage(\n\t\tattributes: Record<string, unknown> = {},\n\t\tselectable: Selection | Position | null = null,\n\t\timageType: ( 'imageBlock' | 'imageInline' | null ) = null,\n\t\toptions: { setImageSizes?: boolean } = {}\n\t): Element | null {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\tconst determinedImageType = determineImageTypeForInsertion( editor, selectable || selection, imageType );\n\n\t\t// Mix declarative attributes with selection attributes because the new image should \"inherit\"\n\t\t// the latter for best UX. For instance, inline images inserted into existing links\n\t\t// should not split them. To do that, they need to have \"linkHref\" inherited from the selection.\n\t\tattributes = {\n\t\t\t...Object.fromEntries( selection.getAttributes() ),\n\t\t\t...attributes\n\t\t};\n\n\t\tfor ( const attributeName in attributes ) {\n\t\t\tif ( !model.schema.checkAttribute( determinedImageType, attributeName ) ) {\n\t\t\t\tdelete attributes[ attributeName ];\n\t\t\t}\n\t\t}\n\n\t\treturn model.change( writer => {\n\t\t\tconst { setImageSizes = true } = options;\n\t\t\tconst imageElement = writer.createElement( determinedImageType, attributes );\n\n\t\t\tmodel.insertObject( imageElement, selectable, null, {\n\t\t\t\tsetSelection: 'on',\n\t\t\t\t// If we want to insert a block image (for whatever reason) then we don't want to split text blocks.\n\t\t\t\t// This applies only when we don't have the selectable specified (i.e., we insert multiple block images at once).\n\t\t\t\tfindOptimalPosition: !selectable && determinedImageType != 'imageInline' ? 'auto' : undefined\n\t\t\t} );\n\n\t\t\t// Inserting an image might've failed due to schema regulations.\n\t\t\tif ( imageElement.parent ) {\n\t\t\t\tif ( setImageSizes ) {\n\t\t\t\t\tthis.setImageNaturalSizeAttributes( imageElement );\n\t\t\t\t}\n\n\t\t\t\treturn imageElement;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t} );\n\t}\n\n\t/**\n\t * Reads original image sizes and sets them as `width` and `height`.\n\t *\n\t * The `src` attribute may not be available if the user is using an upload adapter. In such a case,\n\t * this method is called again after the upload process is complete and the `src` attribute is available.\n\t */\n\tpublic setImageNaturalSizeAttributes( imageElement: Element ): void {\n\t\tconst src = imageElement.getAttribute( 'src' ) as string;\n\n\t\tif ( !src ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( imageElement.getAttribute( 'width' ) || imageElement.getAttribute( 'height' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.editor.model.change( writer => {\n\t\t\tconst img = new global.window.Image();\n\n\t\t\tthis._domEmitter.listenTo( img, 'load', () => {\n\t\t\t\tif ( !imageElement.getAttribute( 'width' ) && !imageElement.getAttribute( 'height' ) ) {\n\t\t\t\t\t// We use writer.batch to be able to undo (in a single step) width and height setting\n\t\t\t\t\t// along with any change that triggered this action (e.g. image resize or image style change).\n\t\t\t\t\tthis.editor.model.enqueueChange( writer.batch, writer => {\n\t\t\t\t\t\twriter.setAttribute( 'width', img.naturalWidth, imageElement );\n\t\t\t\t\t\twriter.setAttribute( 'height', img.naturalHeight, imageElement );\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tthis._domEmitter.stopListening( img, 'load' );\n\t\t\t} );\n\n\t\t\timg.src = src;\n\t\t} );\n\t}\n\n\t/**\n\t * Returns an image widget editing view element if one is selected or is among the selection's ancestors.\n\t */\n\tpublic getClosestSelectedImageWidget( selection: ViewSelection | ViewDocumentSelection ): ViewElement | null {\n\t\tconst selectionPosition = selection.getFirstPosition();\n\n\t\tif ( !selectionPosition ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst viewElement = selection.getSelectedElement();\n\n\t\tif ( viewElement && this.isImageWidget( viewElement ) ) {\n\t\t\treturn viewElement;\n\t\t}\n\n\t\tlet parent: ViewNode | ViewDocumentFragment | null = selectionPosition.parent;\n\n\t\twhile ( parent ) {\n\t\t\tif ( parent.is( 'element' ) && this.isImageWidget( parent ) ) {\n\t\t\t\treturn parent;\n\t\t\t}\n\n\t\t\tparent = parent.parent;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns a image model element if one is selected or is among the selection's ancestors.\n\t */\n\tpublic getClosestSelectedImageElement( selection: Selection | DocumentSelection ): Element | null {\n\t\tconst selectedElement = selection.getSelectedElement();\n\n\t\treturn this.isImage( selectedElement ) ? selectedElement : selection.getFirstPosition()!.findAncestor( 'imageBlock' );\n\t}\n\n\t/**\n\t * Returns an image widget editing view based on the passed image view.\n\t */\n\tpublic getImageWidgetFromImageView( imageView: ViewElement ): ViewContainerElement | null {\n\t\treturn imageView.findAncestor( { classes: IMAGE_WIDGETS_CLASSES_MATCH_REGEXP } ) as ( ViewContainerElement | null );\n\t}\n\n\t/**\n\t * Checks if image can be inserted at current model selection.\n\t *\n\t * @internal\n\t */\n\tpublic isImageAllowed(): boolean {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\treturn isImageAllowedInParent( this.editor, selection ) && isNotInsideImage( selection );\n\t}\n\n\t/**\n\t * Converts a given {@link module:engine/view/element~Element} to an image widget:\n\t * * Adds a {@link module:engine/view/element~Element#_setCustomProperty custom property} allowing to recognize the image widget\n\t * element.\n\t * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n\t *\n\t * @param writer An instance of the view writer.\n\t * @param label The element's label. It will be concatenated with the image `alt` attribute if one is present.\n\t */\n\tpublic toImageWidget( viewElement: ViewElement, writer: DowncastWriter, label: string ): ViewElement {\n\t\twriter.setCustomProperty( 'image', true, viewElement );\n\n\t\tconst labelCreator = () => {\n\t\t\tconst imgElement = this.findViewImgElement( viewElement )!;\n\t\t\tconst altText = imgElement.getAttribute( 'alt' );\n\n\t\t\treturn altText ? `${ altText } ${ label }` : label;\n\t\t};\n\n\t\treturn toWidget( viewElement, writer, { label: labelCreator } );\n\t}\n\n\t/**\n\t * Checks if a given view element is an image widget.\n\t */\n\tprotected isImageWidget( viewElement: ViewElement ): boolean {\n\t\treturn !!viewElement.getCustomProperty( 'image' ) && isWidget( viewElement );\n\t}\n\n\t/**\n\t * Checks if the provided model element is an `image`.\n\t */\n\tpublic isBlockImage( modelElement?: Element | null ): boolean {\n\t\treturn !!modelElement && modelElement.is( 'element', 'imageBlock' );\n\t}\n\n\t/**\n\t * Checks if the provided model element is an `imageInline`.\n\t */\n\tpublic isInlineImage( modelElement?: Element | null ): boolean {\n\t\treturn !!modelElement && modelElement.is( 'element', 'imageInline' );\n\t}\n\n\t/**\n\t * Get the view `<img>` from another view element, e.g. a widget (`<figure class=\"image\">`), a link (`<a>`).\n\t *\n\t * The `<img>` can be located deep in other elements, so this helper performs a deep tree search.\n\t */\n\tpublic findViewImgElement( figureView: ViewElement ): ViewElement | undefined {\n\t\tif ( this.isInlineImageView( figureView ) ) {\n\t\t\treturn figureView;\n\t\t}\n\n\t\tconst editingView = this.editor.editing.view;\n\n\t\tfor ( const { item } of editingView.createRangeIn( figureView ) ) {\n\t\t\tif ( this.isInlineImageView( item as ViewElement ) ) {\n\t\t\t\treturn item as ViewElement;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tthis._domEmitter.stopListening();\n\n\t\treturn super.destroy();\n\t}\n}\n\n/**\n * Checks if image is allowed by schema in optimal insertion parent.\n */\nfunction isImageAllowedInParent( editor: Editor, selection: Selection | DocumentSelection ): boolean {\n\tconst imageType = determineImageTypeForInsertion( editor, selection, null );\n\n\tif ( imageType == 'imageBlock' ) {\n\t\tconst parent = getInsertImageParent( selection, editor.model );\n\n\t\tif ( editor.model.schema.checkChild( parent as Element, 'imageBlock' ) ) {\n\t\t\treturn true;\n\t\t}\n\t} else if ( editor.model.schema.checkChild( selection.focus!, 'imageInline' ) ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Checks if selection is not placed inside an image (e.g. its caption).\n */\nfunction isNotInsideImage( selection: DocumentSelection ): boolean {\n\treturn [ ...selection.focus!.getAncestors() ].every( ancestor => !ancestor.is( 'element', 'imageBlock' ) );\n}\n\n/**\n * Returns a node that will be used to insert image with `model.insertContent`.\n */\nfunction getInsertImageParent( selection: Selection | DocumentSelection, model: Model ): Element | DocumentFragment {\n\tconst insertionRange = findOptimalInsertionRange( selection, model );\n\tconst parent = insertionRange.start.parent;\n\n\tif ( parent.isEmpty && !parent.is( 'element', '$root' ) ) {\n\t\treturn parent.parent!;\n\t}\n\n\treturn parent;\n}\n\n/**\n * Determine image element type name depending on editor config or place of insertion.\n *\n * @param imageType Image element type name. Used to force return of provided element name,\n * but only if there is proper plugin enabled.\n */\nfunction determineImageTypeForInsertion(\n\teditor: Editor,\n\tselectable: Position | Selection | DocumentSelection,\n\timageType: 'imageBlock' | 'imageInline' | null\n): 'imageBlock' | 'imageInline' {\n\tconst schema = editor.model.schema;\n\tconst configImageInsertType = editor.config.get( 'image.insert.type' );\n\n\tif ( !editor.plugins.has( 'ImageBlockEditing' ) ) {\n\t\treturn 'imageInline';\n\t}\n\n\tif ( !editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\treturn 'imageBlock';\n\t}\n\n\tif ( imageType ) {\n\t\treturn imageType;\n\t}\n\n\tif ( configImageInsertType === 'inline' ) {\n\t\treturn 'imageInline';\n\t}\n\n\tif ( configImageInsertType !== 'auto' ) {\n\t\treturn 'imageBlock';\n\t}\n\n\t// Try to replace the selected widget (e.g. another image).\n\tif ( selectable.is( 'selection' ) ) {\n\t\treturn determineImageTypeForInsertionAtSelection( schema, selectable );\n\t}\n\n\treturn schema.checkChild( selectable, 'imageInline' ) ? 'imageInline' : 'imageBlock';\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/autoimage\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { Clipboard, type ClipboardPipeline } from 'ckeditor5/src/clipboard.js';\nimport { LivePosition, LiveRange } from 'ckeditor5/src/engine.js';\nimport { Undo } from 'ckeditor5/src/undo.js';\nimport { Delete } from 'ckeditor5/src/typing.js';\nimport { global } from 'ckeditor5/src/utils.js';\n\nimport ImageUtils from './imageutils.js';\n\n// Implements the pattern: http(s)://(www.)example.com/path/to/resource.ext?query=params&maybe=too.\nconst IMAGE_URL_REGEXP = new RegExp( String( /^(http(s)?:\\/\\/)?[\\w-]+\\.[\\w.~:/[\\]@!$&'()*+,;=%-]+/.source +\n\t/\\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source +\n\t/(\\?[\\w.~:/[\\]@!$&'()*+,;=%-]*)?/.source +\n\t/(#[\\w.~:/[\\]@!$&'()*+,;=%-]*)?$/.source ) );\n\n/**\n * The auto-image plugin. It recognizes image links in the pasted content and embeds\n * them shortly after they are injected into the document.\n */\nexport default class AutoImage extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ Clipboard, ImageUtils, Undo, Delete ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'AutoImage' as const;\n\t}\n\n\t/**\n\t * The paste–to–embed `setTimeout` ID. Stored as a property to allow\n\t * cleaning of the timeout.\n\t */\n\tprivate _timeoutId: ReturnType<typeof setTimeout> | null;\n\n\t/**\n\t * The position where the `<imageBlock>` element will be inserted after the timeout,\n\t * determined each time a new content is pasted into the document.\n\t */\n\tprivate _positionToInsert: LivePosition | null;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._timeoutId = null;\n\n\t\tthis._positionToInsert = null;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst modelDocument = editor.model.document;\n\t\tconst clipboardPipeline: ClipboardPipeline = editor.plugins.get( 'ClipboardPipeline' );\n\n\t\t// We need to listen on `Clipboard#inputTransformation` because we need to save positions of selection.\n\t\t// After pasting, the content between those positions will be checked for a URL that could be transformed\n\t\t// into an image.\n\t\tthis.listenTo( clipboardPipeline, 'inputTransformation', () => {\n\t\t\tconst firstRange = modelDocument.selection.getFirstRange()!;\n\n\t\t\tconst leftLivePosition = LivePosition.fromPosition( firstRange.start );\n\t\t\tleftLivePosition.stickiness = 'toPrevious';\n\n\t\t\tconst rightLivePosition = LivePosition.fromPosition( firstRange.end );\n\t\t\trightLivePosition.stickiness = 'toNext';\n\n\t\t\tmodelDocument.once( 'change:data', () => {\n\t\t\t\tthis._embedImageBetweenPositions( leftLivePosition, rightLivePosition );\n\n\t\t\t\tleftLivePosition.detach();\n\t\t\t\trightLivePosition.detach();\n\t\t\t}, { priority: 'high' } );\n\t\t} );\n\n\t\teditor.commands.get( 'undo' )!.on( 'execute', () => {\n\t\t\tif ( this._timeoutId ) {\n\t\t\t\tglobal.window.clearTimeout( this._timeoutId );\n\t\t\t\tthis._positionToInsert!.detach();\n\n\t\t\t\tthis._timeoutId = null;\n\t\t\t\tthis._positionToInsert = null;\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Analyzes the part of the document between provided positions in search for a URL representing an image.\n\t * When the URL is found, it is automatically converted into an image.\n\t *\n\t * @param leftPosition Left position of the selection.\n\t * @param rightPosition Right position of the selection.\n\t */\n\tprivate _embedImageBetweenPositions( leftPosition: LivePosition, rightPosition: LivePosition ): void {\n\t\tconst editor = this.editor;\n\t\t// TODO: Use a marker instead of LiveRange & LivePositions.\n\t\tconst urlRange = new LiveRange( leftPosition, rightPosition );\n\t\tconst walker = urlRange.getWalker( { ignoreElementEnd: true } );\n\t\tconst selectionAttributes = Object.fromEntries( editor.model.document.selection.getAttributes() );\n\t\tconst imageUtils: ImageUtils = this.editor.plugins.get( 'ImageUtils' );\n\n\t\tlet src = '';\n\n\t\tfor ( const node of walker ) {\n\t\t\tif ( node.item.is( '$textProxy' ) ) {\n\t\t\t\tsrc += node.item.data;\n\t\t\t}\n\t\t}\n\n\t\tsrc = src.trim();\n\n\t\t// If the URL does not match the image URL regexp, let's skip that.\n\t\tif ( !src.match( IMAGE_URL_REGEXP ) ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Position will not be available in the `setTimeout` function so let's clone it.\n\t\tthis._positionToInsert = LivePosition.fromPosition( leftPosition );\n\n\t\t// This action mustn't be executed if undo was called between pasting and auto-embedding.\n\t\tthis._timeoutId = setTimeout( () => {\n\t\t\t// Do nothing if image element cannot be inserted at the current position.\n\t\t\t// See https://github.com/ckeditor/ckeditor5/issues/2763.\n\t\t\t// Condition must be checked after timeout - pasting may take place on an element, replacing it. The final position matters.\n\t\t\tconst imageCommand = editor.commands.get( 'insertImage' )!;\n\n\t\t\tif ( !imageCommand.isEnabled ) {\n\t\t\t\turlRange.detach();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\teditor.model.change( writer => {\n\t\t\t\tthis._timeoutId = null;\n\n\t\t\t\twriter.remove( urlRange );\n\t\t\t\turlRange.detach();\n\n\t\t\t\tlet insertionPosition;\n\n\t\t\t\t// Check if the position where the element should be inserted is still valid.\n\t\t\t\t// Otherwise leave it as undefined to use the logic of insertImage().\n\t\t\t\tif ( this._positionToInsert!.root.rootName !== '$graveyard' ) {\n\t\t\t\t\tinsertionPosition = this._positionToInsert!.toPosition();\n\t\t\t\t}\n\n\t\t\t\timageUtils.insertImage( { ...selectionAttributes, src }, insertionPosition );\n\n\t\t\t\tthis._positionToInsert!.detach();\n\t\t\t\tthis._positionToInsert = null;\n\t\t\t} );\n\n\t\t\tconst deletePlugin: Delete = editor.plugins.get( 'Delete' );\n\n\t\t\tdeletePlugin.requestUndoOnBackspace();\n\t\t}, 100 );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative/imagetextalternativecommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * The image text alternative command. It is used to change the `alt` attribute of `<imageBlock>` and `<imageInline>` model elements.\n */\nexport default class ImageTextAlternativeCommand extends Command {\n\t/**\n\t * The command value: `false` if there is no `alt` attribute, otherwise the value of the `alt` attribute.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public value: string | false;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst element = imageUtils.getClosestSelectedImageElement( this.editor.model.document.selection )!;\n\n\t\tthis.isEnabled = !!element;\n\n\t\tif ( this.isEnabled && element.hasAttribute( 'alt' ) ) {\n\t\t\tthis.value = element.getAttribute( 'alt' ) as string | false;\n\t\t} else {\n\t\t\tthis.value = false;\n\t\t}\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options\n\t * @param options.newValue The new value of the `alt` attribute to set.\n\t */\n\tpublic override execute( options: { newValue: string } ): void {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst model = editor.model;\n\t\tconst imageElement = imageUtils.getClosestSelectedImageElement( model.document.selection );\n\n\t\tmodel.change( writer => {\n\t\t\twriter.setAttribute( 'alt', options.newValue, imageElement! );\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative/imagetextalternativeediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageTextAlternativeCommand from './imagetextalternativecommand.js';\nimport ImageUtils from '../imageutils.js';\n\n/**\n * The image text alternative editing plugin.\n *\n * Registers the `'imageTextAlternative'` command.\n */\nexport default class ImageTextAlternativeEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageTextAlternativeEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tthis.editor.commands.add( 'imageTextAlternative', new ImageTextAlternativeCommand( this.editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative/ui/textalternativeformview\n */\n\nimport {\n\tButtonView,\n\tFocusCycler,\n\tLabeledFieldView,\n\tView,\n\tViewCollection,\n\tcreateLabeledInputText,\n\tsubmitHandler,\n\ttype InputView,\n\ttype FocusableView\n} from 'ckeditor5/src/ui.js';\nimport { FocusTracker, KeystrokeHandler, type Locale } from 'ckeditor5/src/utils.js';\nimport { icons } from 'ckeditor5/src/core.js';\n\nimport '../../../theme/textalternativeform.css';\n\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\n\n/**\n * The TextAlternativeFormView class.\n */\nexport default class TextAlternativeFormView extends View {\n\t/**\n\t * Tracks information about the DOM focus in the form.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * An input with a label.\n\t */\n\tpublic labeledInput: LabeledFieldView<InputView>;\n\n\t/**\n\t * A button used to submit the form.\n\t */\n\tpublic saveButtonView: ButtonView;\n\n\t/**\n\t * A button used to cancel the form.\n\t */\n\tpublic cancelButtonView: ButtonView;\n\n\t/**\n\t * A collection of views which can be focused in the form.\n\t */\n\tprotected readonly _focusables: ViewCollection<FocusableView>;\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */\n\tprotected readonly _focusCycler: FocusCycler;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\t\tconst t = this.locale!.t;\n\n\t\tthis.focusTracker = new FocusTracker();\n\n\t\tthis.keystrokes = new KeystrokeHandler();\n\n\t\tthis.labeledInput = this._createLabeledInputView();\n\n\t\tthis.saveButtonView = this._createButton( t( 'Save' ), icons.check, 'ck-button-save' );\n\t\tthis.saveButtonView.type = 'submit';\n\n\t\tthis.cancelButtonView = this._createButton( t( 'Cancel' ), icons.cancel, 'ck-button-cancel', 'cancel' );\n\n\t\tthis._focusables = new ViewCollection();\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'form',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-text-alternative-form',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-image/issues/40\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.labeledInput,\n\t\t\t\tthis.saveButtonView,\n\t\t\t\tthis.cancelButtonView\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.keystrokes.listenTo( this.element! );\n\n\t\tsubmitHandler( { view: this } );\n\n\t\t[ this.labeledInput, this.saveButtonView, this.cancelButtonView ]\n\t\t\t.forEach( v => {\n\t\t\t\t// Register the view as focusable.\n\t\t\t\tthis._focusables.add( v );\n\n\t\t\t\t// Register the view in the focus tracker.\n\t\t\t\tthis.focusTracker.add( v.element! );\n\t\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Creates the button view.\n\t *\n\t * @param label The button label\n\t * @param icon The button's icon.\n\t * @param className The additional button CSS class name.\n\t * @param eventName The event name that the ButtonView#execute event will be delegated to.\n\t * @returns The button view instance.\n\t */\n\tprivate _createButton( label: string, icon: string, className: string, eventName?: string ): ButtonView {\n\t\tconst button = new ButtonView( this.locale );\n\n\t\tbutton.set( {\n\t\t\tlabel,\n\t\t\ticon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbutton.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: className\n\t\t\t}\n\t\t} );\n\n\t\tif ( eventName ) {\n\t\t\tbutton.delegate( 'execute' ).to( this, eventName );\n\t\t}\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates an input with a label.\n\t *\n\t * @returns Labeled field view instance.\n\t */\n\tprivate _createLabeledInputView(): LabeledFieldView<InputView> {\n\t\tconst t = this.locale!.t;\n\t\tconst labeledInput = new LabeledFieldView<InputView>( this.locale, createLabeledInputText );\n\n\t\tlabeledInput.label = t( 'Text alternative' );\n\n\t\treturn labeledInput;\n\t}\n}\n\n/**\n * Fired when the form view is submitted.\n *\n * @eventName ~TextAlternativeFormView#submit\n */\nexport type TextAlternativeFormViewSubmitEvent = {\n\tname: 'submit';\n\targs: [];\n};\n\n/**\n * Fired when the form view is canceled.\n *\n * @eventName ~TextAlternativeFormView#cancel\n */\nexport type TextAlternativeFormViewCancelEvent = {\n\tname: 'cancel';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/ui/utils\n */\n\nimport type { PositionOptions } from 'ckeditor5/src/utils.js';\nimport type { Editor } from 'ckeditor5/src/core.js';\nimport { BalloonPanelView, type ContextualBalloon } from 'ckeditor5/src/ui.js';\n\nimport type ImageUtils from '../../imageutils.js';\n\n/**\n * A helper utility that positions the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} instance\n * with respect to the image in the editor content, if one is selected.\n *\n * @param editor The editor instance.\n */\nexport function repositionContextualBalloon( editor: Editor ): void {\n\tconst balloon: ContextualBalloon = editor.plugins.get( 'ContextualBalloon' );\n\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\tif ( imageUtils.getClosestSelectedImageWidget( editor.editing.view.document.selection ) ) {\n\t\tconst position = getBalloonPositionData( editor );\n\n\t\tballoon.updatePosition( position );\n\t}\n}\n\n/**\n * Returns the positioning options that control the geometry of the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} with respect\n * to the selected element in the editor content.\n *\n * @param editor The editor instance.\n */\nexport function getBalloonPositionData( editor: Editor ): Partial<PositionOptions> {\n\tconst editingView = editor.editing.view;\n\tconst defaultPositions = BalloonPanelView.defaultPositions;\n\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\treturn {\n\t\ttarget: editingView.domConverter.mapViewToDom(\n\t\t\timageUtils.getClosestSelectedImageWidget( editingView.document.selection )!\n\t\t) as HTMLElement,\n\t\tpositions: [\n\t\t\tdefaultPositions.northArrowSouth,\n\t\t\tdefaultPositions.northArrowSouthWest,\n\t\t\tdefaultPositions.northArrowSouthEast,\n\t\t\tdefaultPositions.southArrowNorth,\n\t\t\tdefaultPositions.southArrowNorthWest,\n\t\t\tdefaultPositions.southArrowNorthEast,\n\t\t\tdefaultPositions.viewportStickyNorth\n\t\t]\n\t};\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative/imagetextalternativeui\n */\n\nimport { Plugin, icons } from 'ckeditor5/src/core.js';\nimport {\n\tButtonView,\n\tContextualBalloon,\n\tclickOutsideHandler,\n\tCssTransitionDisablerMixin,\n\ttype ViewWithCssTransitionDisabler\n} from 'ckeditor5/src/ui.js';\n\nimport TextAlternativeFormView, {\n\ttype TextAlternativeFormViewCancelEvent,\n\ttype TextAlternativeFormViewSubmitEvent\n} from './ui/textalternativeformview.js';\nimport { repositionContextualBalloon, getBalloonPositionData } from '../image/ui/utils.js';\nimport type ImageTextAlternativeCommand from './imagetextalternativecommand.js';\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * The image text alternative UI plugin.\n *\n * The plugin uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon}.\n */\nexport default class ImageTextAlternativeUI extends Plugin {\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tprivate _balloon?: ContextualBalloon;\n\n\t/**\n\t * A form containing a textarea and buttons, used to change the `alt` text value.\n\t */\n\tprivate _form?: TextAlternativeFormView & ViewWithCssTransitionDisabler;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ContextualBalloon ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageTextAlternativeUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tthis._createButton();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\t// Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n\t\tif ( this._form ) {\n\t\t\tthis._form.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * Creates a button showing the balloon panel for changing the image text alternative and\n\t * registers it in the editor {@link module:ui/componentfactory~ComponentFactory ComponentFactory}.\n\t */\n\tprivate _createButton(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\n\t\teditor.ui.componentFactory.add( 'imageTextAlternative', locale => {\n\t\t\tconst command: ImageTextAlternativeCommand = editor.commands.get( 'imageTextAlternative' )!;\n\t\t\tconst view = new ButtonView( locale );\n\n\t\t\tview.set( {\n\t\t\t\tlabel: t( 'Change image text alternative' ),\n\t\t\t\ticon: icons.textAlternative,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\t\t\tview.bind( 'isOn' ).to( command, 'value', value => !!value );\n\n\t\t\tthis.listenTo( view, 'execute', () => {\n\t\t\t\tthis._showForm();\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\t}\n\n\t/**\n\t * Creates the {@link module:image/imagetextalternative/ui/textalternativeformview~TextAlternativeFormView}\n\t * form.\n\t */\n\tprivate _createForm(): void {\n\t\tconst editor = this.editor;\n\t\tconst view = editor.editing.view;\n\t\tconst viewDocument = view.document;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\tthis._balloon = this.editor.plugins.get( 'ContextualBalloon' );\n\n\t\tthis._form = new ( CssTransitionDisablerMixin( TextAlternativeFormView ) )( editor.locale );\n\n\t\t// Render the form so its #element is available for clickOutsideHandler.\n\t\tthis._form.render();\n\n\t\tthis.listenTo<TextAlternativeFormViewSubmitEvent>( this._form, 'submit', () => {\n\t\t\teditor.execute( 'imageTextAlternative', {\n\t\t\t\tnewValue: this._form!.labeledInput.fieldView.element!.value\n\t\t\t} );\n\n\t\t\tthis._hideForm( true );\n\t\t} );\n\n\t\tthis.listenTo<TextAlternativeFormViewCancelEvent>( this._form, 'cancel', () => {\n\t\t\tthis._hideForm( true );\n\t\t} );\n\n\t\t// Close the form on Esc key press.\n\t\tthis._form.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tthis._hideForm( true );\n\t\t\tcancel();\n\t\t} );\n\n\t\t// Reposition the balloon or hide the form if an image widget is no longer selected.\n\t\tthis.listenTo( editor.ui, 'update', () => {\n\t\t\tif ( !imageUtils.getClosestSelectedImageWidget( viewDocument.selection ) ) {\n\t\t\t\tthis._hideForm( true );\n\t\t\t} else if ( this._isVisible ) {\n\t\t\t\trepositionContextualBalloon( editor );\n\t\t\t}\n\t\t} );\n\n\t\t// Close on click outside of balloon panel element.\n\t\tclickOutsideHandler( {\n\t\t\temitter: this._form,\n\t\t\tactivator: () => this._isVisible,\n\t\t\tcontextElements: () => [ this._balloon!.view.element! ],\n\t\t\tcallback: () => this._hideForm()\n\t\t} );\n\t}\n\n\t/**\n\t * Shows the {@link #_form} in the {@link #_balloon}.\n\t */\n\tprivate _showForm(): void {\n\t\tif ( this._isVisible ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !this._form ) {\n\t\t\tthis._createForm();\n\t\t}\n\n\t\tconst editor = this.editor;\n\t\tconst command: ImageTextAlternativeCommand = editor.commands.get( 'imageTextAlternative' )!;\n\t\tconst labeledInput = this._form!.labeledInput;\n\n\t\tthis._form!.disableCssTransitions();\n\n\t\tif ( !this._isInBalloon ) {\n\t\t\tthis._balloon!.add( {\n\t\t\t\tview: this._form!,\n\t\t\t\tposition: getBalloonPositionData( editor )\n\t\t\t} );\n\t\t}\n\n\t\t// Make sure that each time the panel shows up, the field remains in sync with the value of\n\t\t// the command. If the user typed in the input, then canceled the balloon (`labeledInput#value`\n\t\t// stays unaltered) and re-opened it without changing the value of the command, they would see the\n\t\t// old value instead of the actual value of the command.\n\t\t// https://github.com/ckeditor/ckeditor5-image/issues/114\n\t\tlabeledInput.fieldView.value = labeledInput.fieldView.element!.value = command.value || '';\n\n\t\tthis._form!.labeledInput.fieldView.select();\n\n\t\tthis._form!.enableCssTransitions();\n\t}\n\n\t/**\n\t * Removes the {@link #_form} from the {@link #_balloon}.\n\t *\n\t * @param focusEditable Controls whether the editing view is focused afterwards.\n\t */\n\tprivate _hideForm( focusEditable: boolean = false ): void {\n\t\tif ( !this._isInBalloon ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Blur the input element before removing it from DOM to prevent issues in some browsers.\n\t\t// See https://github.com/ckeditor/ckeditor5/issues/1501.\n\t\tif ( this._form!.focusTracker.isFocused ) {\n\t\t\tthis._form!.saveButtonView.focus();\n\t\t}\n\n\t\tthis._balloon!.remove( this._form! );\n\n\t\tif ( focusEditable ) {\n\t\t\tthis.editor.editing.view.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` when the {@link #_form} is the visible view in the {@link #_balloon}.\n\t */\n\tprivate get _isVisible(): boolean {\n\t\treturn !!this._balloon && this._balloon.visibleView === this._form;\n\t}\n\n\t/**\n\t * Returns `true` when the {@link #_form} is in the {@link #_balloon}.\n\t */\n\tprivate get _isInBalloon(): boolean {\n\t\treturn !!this._balloon && this._balloon.hasView( this._form! );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageTextAlternativeEditing from './imagetextalternative/imagetextalternativeediting.js';\nimport ImageTextAlternativeUI from './imagetextalternative/imagetextalternativeui.js';\n\n/**\n * The image text alternative plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-styles image styles} documentation.\n *\n * This is a \"glue\" plugin which loads the\n * {@link module:image/imagetextalternative/imagetextalternativeediting~ImageTextAlternativeEditing}\n * and {@link module:image/imagetextalternative/imagetextalternativeui~ImageTextAlternativeUI} plugins.\n */\nexport default class ImageTextAlternative extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageTextAlternativeEditing, ImageTextAlternativeUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageTextAlternative' as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/converters\n */\n\nimport type {\n\tDowncastDispatcher,\n\tElement,\n\tUpcastDispatcher,\n\tUpcastElementEvent,\n\tViewElement,\n\tViewElementAttributes,\n\tDowncastAttributeEvent\n} from 'ckeditor5/src/engine.js';\nimport { first, type GetCallback } from 'ckeditor5/src/utils.js';\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * Returns a function that converts the image view representation:\n *\n * ```html\n * <figure class=\"image\"><img src=\"...\" alt=\"...\"></img></figure>\n * ```\n *\n * to the model representation:\n *\n * ```html\n * <imageBlock src=\"...\" alt=\"...\"></imageBlock>\n * ```\n *\n * The entire content of the `<figure>` element except the first `<img>` is being converted as children\n * of the `<imageBlock>` model element.\n *\n * @internal\n */\nexport function upcastImageFigure( imageUtils: ImageUtils ): ( dispatcher: UpcastDispatcher ) => void {\n\tconst converter: GetCallback<UpcastElementEvent> = ( evt, data, conversionApi ) => {\n\t\t// Do not convert if this is not an \"image figure\".\n\t\tif ( !conversionApi.consumable.test( data.viewItem, { name: true, classes: 'image' } ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Find an image element inside the figure element.\n\t\tconst viewImage = imageUtils.findViewImgElement( data.viewItem );\n\n\t\t// Do not convert if image element is absent or was already converted.\n\t\tif ( !viewImage || !conversionApi.consumable.test( viewImage, { name: true } ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Consume the figure to prevent other converters from processing it again.\n\t\tconversionApi.consumable.consume( data.viewItem, { name: true, classes: 'image' } );\n\n\t\t// Convert view image to model image.\n\t\tconst conversionResult = conversionApi.convertItem( viewImage, data.modelCursor );\n\n\t\t// Get image element from conversion result.\n\t\tconst modelImage = first( conversionResult.modelRange!.getItems() ) as Element;\n\n\t\t// When image wasn't successfully converted then finish conversion.\n\t\tif ( !modelImage ) {\n\t\t\t// Revert consumed figure so other features can convert it.\n\t\t\tconversionApi.consumable.revert( data.viewItem, { name: true, classes: 'image' } );\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Convert rest of the figure element's children as an image children.\n\t\tconversionApi.convertChildren( data.viewItem, modelImage );\n\n\t\tconversionApi.updateConversionResult( modelImage, data );\n\t};\n\n\treturn dispatcher => {\n\t\tdispatcher.on<UpcastElementEvent>( 'element:figure', converter );\n\t};\n}\n\n/**\n * Returns a function that converts the image view representation:\n *\n * ```html\n * <picture><source ... /><source ... />...<img ... /></picture>\n * ```\n *\n * to the model representation as the `sources` attribute:\n *\n * ```html\n * <image[Block|Inline] ... sources=\"...\"></image[Block|Inline]>\n * ```\n *\n * @internal\n */\nexport function upcastPicture( imageUtils: ImageUtils ): ( dispatcher: UpcastDispatcher ) => void {\n\tconst sourceAttributeNames = [ 'srcset', 'media', 'type', 'sizes' ];\n\n\tconst converter: GetCallback<UpcastElementEvent> = ( evt, data, conversionApi ) => {\n\t\tconst pictureViewElement = data.viewItem;\n\n\t\t// Do not convert <picture> if already consumed.\n\t\tif ( !conversionApi.consumable.test( pictureViewElement, { name: true } ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sources = new Map<ViewElement, Record<string, string | undefined>>();\n\n\t\t// Collect all <source /> elements attribute values.\n\t\tfor ( const childSourceElement of pictureViewElement.getChildren() ) {\n\t\t\tif ( childSourceElement.is( 'element', 'source' ) ) {\n\t\t\t\tconst attributes: Record<string, string | undefined> = {};\n\n\t\t\t\tfor ( const name of sourceAttributeNames ) {\n\t\t\t\t\tif ( childSourceElement.hasAttribute( name ) ) {\n\t\t\t\t\t\t// Don't collect <source /> attribute if already consumed somewhere else.\n\t\t\t\t\t\tif ( conversionApi.consumable.test( childSourceElement, { attributes: name } ) ) {\n\t\t\t\t\t\t\tattributes[ name ] = childSourceElement.getAttribute( name );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( Object.keys( attributes ).length ) {\n\t\t\t\t\tsources.set( childSourceElement, attributes );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst imgViewElement = imageUtils.findViewImgElement( pictureViewElement );\n\n\t\t// Don't convert when a picture has no <img/> inside (it is broken).\n\t\tif ( !imgViewElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet modelImage = data.modelCursor.parent;\n\n\t\t// - In case of an inline image (cursor parent in a <paragraph>), the <img/> must be converted right away\n\t\t// because no converter handled it yet and otherwise there would be no model element to set the sources attribute on.\n\t\t// - In case of a block image, the <figure class=\"image\"> converter (in ImageBlockEditing) converts the\n\t\t// <img/> right away on its own and the modelCursor is already inside an imageBlock and there's nothing special\n\t\t// to do here.\n\t\tif ( !modelImage.is( 'element', 'imageBlock' ) ) {\n\t\t\tconst conversionResult = conversionApi.convertItem( imgViewElement, data.modelCursor );\n\n\t\t\t// Set image range as conversion result.\n\t\t\tdata.modelRange = conversionResult.modelRange;\n\n\t\t\t// Continue conversion where image conversion ends.\n\t\t\tdata.modelCursor = conversionResult.modelCursor;\n\n\t\t\tmodelImage = first( conversionResult.modelRange!.getItems() ) as Element;\n\t\t}\n\n\t\tconversionApi.consumable.consume( pictureViewElement, { name: true } );\n\n\t\t// Consume only these <source/> attributes that were actually collected and will be passed on\n\t\t// to the image model element.\n\t\tfor ( const [ sourceElement, attributes ] of sources ) {\n\t\t\tconversionApi.consumable.consume( sourceElement, { attributes: Object.keys( attributes ) } );\n\t\t}\n\n\t\tif ( sources.size ) {\n\t\t\tconversionApi.writer.setAttribute( 'sources', Array.from( sources.values() ), modelImage );\n\t\t}\n\n\t\t// Convert rest of the <picture> children as an image children. Other converters may want to consume them.\n\t\tconversionApi.convertChildren( pictureViewElement, modelImage );\n\t};\n\n\treturn dispatcher => {\n\t\tdispatcher.on<UpcastElementEvent>( 'element:picture', converter );\n\t};\n}\n\n/**\n * Converter used to convert the `srcset` model image attribute to the `srcset` and `sizes` attributes in the view.\n *\n * @internal\n * @param imageType The type of the image.\n */\nexport function downcastSrcsetAttribute(\n\timageUtils: ImageUtils,\n\timageType: 'imageBlock' | 'imageInline'\n): ( dispatcher: DowncastDispatcher ) => void {\n\tconst converter: GetCallback<DowncastAttributeEvent<Element>> = ( evt, data, conversionApi\t) => {\n\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst writer = conversionApi.writer;\n\t\tconst element = conversionApi.mapper.toViewElement( data.item )!;\n\t\tconst img = imageUtils.findViewImgElement( element )!;\n\n\t\tif ( data.attributeNewValue === null ) {\n\t\t\twriter.removeAttribute( 'srcset', img );\n\t\t\twriter.removeAttribute( 'sizes', img );\n\t\t} else {\n\t\t\tif ( data.attributeNewValue ) {\n\t\t\t\twriter.setAttribute( 'srcset', data.attributeNewValue, img );\n\t\t\t\t// Always outputting `100vw`. See https://github.com/ckeditor/ckeditor5-image/issues/2.\n\t\t\t\twriter.setAttribute( 'sizes', '100vw', img );\n\t\t\t}\n\t\t}\n\t};\n\n\treturn dispatcher => {\n\t\tdispatcher.on<DowncastAttributeEvent<Element>>( `attribute:srcset:${ imageType }`, converter );\n\t};\n}\n\n/**\n * Converts the `source` model attribute to the `<picture><source /><source />...<img /></picture>`\n * view structure.\n *\n * @internal\n */\nexport function downcastSourcesAttribute( imageUtils: ImageUtils ): ( dispatcher: DowncastDispatcher ) => void {\n\tconst converter: GetCallback<DowncastAttributeEvent<Element>> = ( evt, data, conversionApi\t) => {\n\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst viewWriter = conversionApi.writer;\n\t\tconst element = conversionApi.mapper.toViewElement( data.item )!;\n\t\tconst imgElement = imageUtils.findViewImgElement( element )!;\n\t\tconst attributeNewValue = data.attributeNewValue as null | Array<ViewElementAttributes>;\n\n\t\tif ( attributeNewValue && attributeNewValue.length ) {\n\t\t\t// Make sure <picture> does not break attribute elements, for instance <a> in linked images.\n\t\t\tconst pictureElement = viewWriter.createContainerElement( 'picture', null,\n\t\t\t\tattributeNewValue.map( sourceAttributes => {\n\t\t\t\t\treturn viewWriter.createEmptyElement( 'source', sourceAttributes );\n\t\t\t\t} )\n\t\t\t);\n\n\t\t\t// Collect all wrapping attribute elements.\n\t\t\tconst attributeElements = [];\n\t\t\tlet viewElement = imgElement.parent;\n\n\t\t\twhile ( viewElement && viewElement.is( 'attributeElement' ) ) {\n\t\t\t\tconst parentElement = viewElement.parent;\n\n\t\t\t\tviewWriter.unwrap( viewWriter.createRangeOn( imgElement ), viewElement );\n\n\t\t\t\tattributeElements.unshift( viewElement );\n\t\t\t\tviewElement = parentElement;\n\t\t\t}\n\n\t\t\t// Insert the picture and move img into it.\n\t\t\tviewWriter.insert( viewWriter.createPositionBefore( imgElement ), pictureElement );\n\t\t\tviewWriter.move( viewWriter.createRangeOn( imgElement ), viewWriter.createPositionAt( pictureElement, 'end' ) );\n\n\t\t\t// Apply collected attribute elements over the new picture element.\n\t\t\tfor ( const attributeElement of attributeElements ) {\n\t\t\t\tviewWriter.wrap( viewWriter.createRangeOn( pictureElement ), attributeElement );\n\t\t\t}\n\t\t}\n\t\t// Both setting \"sources\" to an empty array and removing the attribute should unwrap the <img />.\n\t\t// Unwrap once if the latter followed the former, though.\n\t\telse if ( imgElement.parent!.is( 'element', 'picture' ) ) {\n\t\t\tconst pictureElement = imgElement.parent;\n\n\t\t\tviewWriter.move( viewWriter.createRangeOn( imgElement ), viewWriter.createPositionBefore( pictureElement ) );\n\t\t\tviewWriter.remove( pictureElement );\n\t\t}\n\t};\n\n\treturn dispatcher => {\n\t\tdispatcher.on<DowncastAttributeEvent<Element>>( 'attribute:sources:imageBlock', converter );\n\t\tdispatcher.on<DowncastAttributeEvent<Element>>( 'attribute:sources:imageInline', converter );\n\t};\n}\n\n/**\n * Converter used to convert a given image attribute from the model to the view.\n *\n * @internal\n * @param imageType The type of the image.\n * @param attributeKey The name of the attribute to convert.\n */\nexport function downcastImageAttribute(\n\timageUtils: ImageUtils,\n\timageType: 'imageBlock' | 'imageInline',\n\tattributeKey: string\n): ( dispatcher: DowncastDispatcher ) => void {\n\tconst converter: GetCallback<DowncastAttributeEvent<Element>> = ( evt, data, conversionApi ) => {\n\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst viewWriter = conversionApi.writer;\n\t\tconst element = conversionApi.mapper.toViewElement( data.item )!;\n\t\tconst img = imageUtils.findViewImgElement( element )!;\n\n\t\tviewWriter.setAttribute( data.attributeKey, data.attributeNewValue || '', img );\n\t};\n\n\treturn dispatcher => {\n\t\tdispatcher.on<DowncastAttributeEvent<Element>>( `attribute:${ attributeKey }:${ imageType }`, converter );\n\t};\n}\n\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/imageloadobserver\n */\n\nimport { Observer } from 'ckeditor5/src/engine.js';\n\n/**\n * Observes all new images added to the {@link module:engine/view/document~Document},\n * fires {@link module:engine/view/document~Document#event:imageLoaded} and\n * {@link module:engine/view/document~Document#event:layoutChanged} event every time when the new image\n * has been loaded.\n *\n * **Note:** This event is not fired for images that has been added to the document and rendered as `complete` (already loaded).\n */\nexport default class ImageLoadObserver extends Observer {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic observe( domRoot: HTMLElement ): void {\n\t\tthis.listenTo( domRoot, 'load', ( event, domEvent ) => {\n\t\t\tconst domElement = domEvent.target as HTMLElement;\n\n\t\t\tif ( this.checkShouldIgnoreEventFromTarget( domElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( domElement.tagName == 'IMG' ) {\n\t\t\t\tthis._fireEvents( domEvent );\n\t\t\t}\n\t\t\t// Use capture phase for better performance (#4504).\n\t\t}, { useCapture: true } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override stopObserving( domRoot: HTMLElement ): void {\n\t\tthis.stopListening( domRoot );\n\t}\n\n\t/**\n\t * Fires {@link module:engine/view/document~Document#event:layoutChanged} and\n\t * {@link module:engine/view/document~Document#event:imageLoaded}\n\t * if observer {@link #isEnabled is enabled}.\n\t *\n\t * @param domEvent The DOM event.\n\t */\n\tprivate _fireEvents( domEvent: Event ): void {\n\t\tif ( this.isEnabled ) {\n\t\t\tthis.document.fire( 'layoutChanged' );\n\t\t\tthis.document.fire<ImageLoadedEvent>( 'imageLoaded', domEvent );\n\t\t}\n\t}\n}\n\n/**\n * Fired when an <img/> DOM element has been loaded in the DOM root.\n *\n * Introduced by {@link module:image/image/imageloadobserver~ImageLoadObserver}.\n *\n * @see module:image/image/imageloadobserver~ImageLoadObserver\n *\n * @eventName module:engine/view/document~Document#imageLoaded\n * @param data Event data.\n */\nexport type ImageLoadedEvent = {\n\tname: 'imageLoaded';\n\targs: [ Event ];\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/insertimagecommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport { logWarning, toArray, type ArrayOrItem } from 'ckeditor5/src/utils.js';\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * Insert image command.\n *\n * The command is registered by the {@link module:image/image/imageediting~ImageEditing} plugin as `insertImage`\n * and it is also available via aliased `imageInsert` name.\n *\n * In order to insert an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionRange} algorithm),\n * execute the command and specify the image source:\n *\n * ```ts\n * editor.execute( 'insertImage', { source: 'http://url.to.the/image' } );\n * ```\n *\n * It is also possible to insert multiple images at once:\n *\n * ```ts\n * editor.execute( 'insertImage', {\n * \tsource: [\n * \t\t'path/to/image.jpg',\n * \t\t'path/to/other-image.jpg'\n * \t]\n * } );\n * ```\n *\n * If you want to take the full control over the process, you can specify individual model attributes:\n *\n * ```ts\n * editor.execute( 'insertImage', {\n * \tsource: [\n * \t\t{ src: 'path/to/image.jpg', alt: 'First alt text' },\n * \t\t{ src: 'path/to/other-image.jpg', alt: 'Second alt text', customAttribute: 'My attribute value' }\n * \t]\n * } );\n * ```\n */\nexport default class InsertImageCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tconst configImageInsertType = editor.config.get( 'image.insert.type' );\n\n\t\tif ( !editor.plugins.has( 'ImageBlockEditing' ) ) {\n\t\t\tif ( configImageInsertType === 'block' ) {\n\t\t\t\t/**\n\t\t\t\t * The {@link module:image/imageblock~ImageBlock} plugin must be enabled to allow inserting block images. See\n\t\t\t\t * {@link module:image/imageconfig~ImageInsertConfig#type} to learn more.\n\t\t\t\t *\n\t\t\t\t * @error image-block-plugin-required\n\t\t\t\t */\n\t\t\t\tlogWarning( 'image-block-plugin-required' );\n\t\t\t}\n\t\t}\n\n\t\tif ( !editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\tif ( configImageInsertType === 'inline' ) {\n\t\t\t\t/**\n\t\t\t\t * The {@link module:image/imageinline~ImageInline} plugin must be enabled to allow inserting inline images. See\n\t\t\t\t * {@link module:image/imageconfig~ImageInsertConfig#type} to learn more.\n\t\t\t\t *\n\t\t\t\t * @error image-inline-plugin-required\n\t\t\t\t */\n\t\t\t\tlogWarning( 'image-inline-plugin-required' );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst imageUtils: ImageUtils = this.editor.plugins.get( 'ImageUtils' );\n\n\t\tthis.isEnabled = imageUtils.isImageAllowed();\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Options for the executed command.\n\t * @param options.source The image source or an array of image sources to insert.\n\t * See the documentation of the command to learn more about accepted formats.\n\t */\n\tpublic override execute( options: { source: ArrayOrItem<string | Record<string, unknown>> } ): void {\n\t\tconst sourceDefinitions = toArray<string | Record<string, unknown>>( options.source );\n\t\tconst selection = this.editor.model.document.selection;\n\t\tconst imageUtils: ImageUtils = this.editor.plugins.get( 'ImageUtils' );\n\n\t\t// In case of multiple images, each image (starting from the 2nd) will be inserted at a position that\n\t\t// follows the previous one. That will move the selection and, to stay on the safe side and make sure\n\t\t// all images inherit the same selection attributes, they are collected beforehand.\n\t\t//\n\t\t// Applying these attributes ensures, for instance, that inserting an (inline) image into a link does\n\t\t// not split that link but preserves its continuity.\n\t\t//\n\t\t// Note: Selection attributes that do not make sense for images will be filtered out by insertImage() anyway.\n\t\tconst selectionAttributes = Object.fromEntries( selection.getAttributes() );\n\n\t\tsourceDefinitions.forEach( ( sourceDefinition, index ) => {\n\t\t\tconst selectedElement = selection.getSelectedElement();\n\n\t\t\tif ( typeof sourceDefinition === 'string' ) {\n\t\t\t\tsourceDefinition = { src: sourceDefinition };\n\t\t\t}\n\n\t\t\t// Inserting of an inline image replace the selected element and make a selection on the inserted image.\n\t\t\t// Therefore inserting multiple inline images requires creating position after each element.\n\t\t\tif ( index && selectedElement && imageUtils.isImage( selectedElement ) ) {\n\t\t\t\tconst position = this.editor.model.createPositionAfter( selectedElement );\n\n\t\t\t\timageUtils.insertImage( { ...sourceDefinition, ...selectionAttributes }, position );\n\t\t\t} else {\n\t\t\t\timageUtils.insertImage( { ...sourceDefinition, ...selectionAttributes } );\n\t\t\t}\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type ImageUtils from '../imageutils.js';\nimport type { Writer, Element } from 'ckeditor5/src/engine.js';\n\n/**\n * @module image/image/replaceimagesourcecommand\n */\n\n/**\n * Replace image source command.\n *\n * Changes image source to the one provided. Can be executed as follows:\n *\n * ```ts\n * editor.execute( 'replaceImageSource', { source: 'http://url.to.the/image' } );\n * ```\n */\nexport default class ReplaceImageSourceCommand extends Command {\n\tdeclare public value: string | null;\n\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.decorate( 'cleanupImage' );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst element = this.editor.model.document.selection.getSelectedElement()!;\n\n\t\tthis.isEnabled = imageUtils.isImage( element );\n\t\tthis.value = this.isEnabled ? element.getAttribute( 'src' ) as string : null;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Options for the executed command.\n\t * @param options.source The image source to replace.\n\t */\n\tpublic override execute( options: { source: string } ): void {\n\t\tconst image = this.editor.model.document.selection.getSelectedElement()!;\n\t\tconst imageUtils: ImageUtils = this.editor.plugins.get( 'ImageUtils' );\n\n\t\tthis.editor.model.change( writer => {\n\t\t\twriter.setAttribute( 'src', options.source, image );\n\n\t\t\tthis.cleanupImage( writer, image );\n\n\t\t\timageUtils.setImageNaturalSizeAttributes( image );\n\t\t} );\n\t}\n\n\t/**\n\t * Cleanup image attributes that are not relevant to the new source.\n\t *\n\t * Removed attributes are: 'srcset', 'sizes', 'sources', 'width', 'height', 'alt'.\n\t *\n\t * This method is decorated, to allow custom cleanup logic.\n\t * For example, to remove 'myImageId' attribute after 'src' has changed:\n\t *\n\t * ```ts\n\t * replaceImageSourceCommand.on( 'cleanupImage', ( eventInfo, [ writer, image ] ) => {\n\t * \twriter.removeAttribute( 'myImageId', image );\n\t * } );\n\t * ```\n\t */\n\tpublic cleanupImage( writer: Writer, image: Element ): void {\n\t\twriter.removeAttribute( 'srcset', image );\n\t\twriter.removeAttribute( 'sizes', image );\n\n\t\t/**\n\t\t * In case responsive images some attributes should be cleaned up.\n\t\t * Check: https://github.com/ckeditor/ckeditor5/issues/15093\n\t\t */\n\t\twriter.removeAttribute( 'sources', image );\n\t\twriter.removeAttribute( 'width', image );\n\t\twriter.removeAttribute( 'height', image );\n\t\twriter.removeAttribute( 'alt', image );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/imageediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageLoadObserver from './imageloadobserver.js';\nimport InsertImageCommand from './insertimagecommand.js';\nimport ReplaceImageSourceCommand from './replaceimagesourcecommand.js';\nimport ImageUtils from '../imageutils.js';\n\n/**\n * The image engine plugin. This module loads common code shared between\n * {@link module:image/image/imageinlineediting~ImageInlineEditing} and\n * {@link module:image/image/imageblockediting~ImageBlockEditing} plugins.\n *\n * This plugin registers the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command.\n */\nexport default class ImageEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst conversion = editor.conversion;\n\n\t\t// See https://github.com/ckeditor/ckeditor5-image/issues/142.\n\t\teditor.editing.view.addObserver( ImageLoadObserver );\n\n\t\tconversion.for( 'upcast' )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: 'img',\n\t\t\t\t\tkey: 'alt'\n\t\t\t\t},\n\t\t\t\tmodel: 'alt'\n\t\t\t} )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: 'img',\n\t\t\t\t\tkey: 'srcset'\n\t\t\t\t},\n\t\t\t\tmodel: 'srcset'\n\t\t\t} );\n\n\t\tconst insertImageCommand = new InsertImageCommand( editor );\n\t\tconst replaceImageSourceCommand = new ReplaceImageSourceCommand( editor );\n\n\t\teditor.commands.add( 'insertImage', insertImageCommand );\n\t\teditor.commands.add( 'replaceImageSource', replaceImageSourceCommand );\n\n\t\t// `imageInsert` is an alias for backward compatibility.\n\t\teditor.commands.add( 'imageInsert', insertImageCommand );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagesizeattributes\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type { DowncastDispatcher, DowncastAttributeEvent, ViewElement, Element } from 'ckeditor5/src/engine.js';\nimport ImageUtils from './imageutils.js';\nimport { widthAndHeightStylesAreBothSet, getSizeValueIfInPx } from './image/utils.js';\n\n/**\n * This plugin enables `width` and `height` attributes in inline and block image elements.\n */\nexport default class ImageSizeAttributes extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageSizeAttributes' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tthis._registerSchema();\n\t\tthis._registerConverters( 'imageBlock' );\n\t\tthis._registerConverters( 'imageInline' );\n\t}\n\n\t/**\n\t * Registers the `width` and `height` attributes for inline and block images.\n\t */\n\tprivate _registerSchema(): void {\n\t\tif ( this.editor.plugins.has( 'ImageBlockEditing' ) ) {\n\t\t\tthis.editor.model.schema.extend( 'imageBlock', { allowAttributes: [ 'width', 'height' ] } );\n\t\t}\n\n\t\tif ( this.editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\tthis.editor.model.schema.extend( 'imageInline', { allowAttributes: [ 'width', 'height' ] } );\n\t\t}\n\t}\n\n\t/**\n\t * Registers converters for `width` and `height` attributes.\n\t */\n\tprivate _registerConverters( imageType: 'imageBlock' | 'imageInline' ): void {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst viewElementName = imageType === 'imageBlock' ? 'figure' : 'img';\n\n\t\teditor.conversion.for( 'upcast' )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: viewElementName,\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\twidth: /.+/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmodel: {\n\t\t\t\t\tkey: 'width',\n\t\t\t\t\tvalue: ( viewElement: ViewElement ) => {\n\t\t\t\t\t\tif ( widthAndHeightStylesAreBothSet( viewElement ) ) {\n\t\t\t\t\t\t\treturn getSizeValueIfInPx( viewElement.getStyle( 'width' ) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: viewElementName,\n\t\t\t\t\tkey: 'width'\n\t\t\t\t},\n\t\t\t\tmodel: 'width'\n\t\t\t} )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: viewElementName,\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\theight: /.+/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmodel: {\n\t\t\t\t\tkey: 'height',\n\t\t\t\t\tvalue: ( viewElement: ViewElement ) => {\n\t\t\t\t\t\tif ( widthAndHeightStylesAreBothSet( viewElement ) ) {\n\t\t\t\t\t\t\treturn getSizeValueIfInPx( viewElement.getStyle( 'height' ) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: viewElementName,\n\t\t\t\t\tkey: 'height'\n\t\t\t\t},\n\t\t\t\tmodel: 'height'\n\t\t\t} );\n\n\t\t// Dedicated converters to propagate attributes to the <img> element.\n\t\teditor.conversion.for( 'editingDowncast' ).add( dispatcher => {\n\t\t\tattachDowncastConverter( dispatcher, 'width', 'width', true );\n\t\t\tattachDowncastConverter( dispatcher, 'height', 'height', true );\n\t\t} );\n\n\t\teditor.conversion.for( 'dataDowncast' ).add( dispatcher => {\n\t\t\tattachDowncastConverter( dispatcher, 'width', 'width', false );\n\t\t\tattachDowncastConverter( dispatcher, 'height', 'height', false );\n\t\t} );\n\n\t\tfunction attachDowncastConverter(\n\t\t\tdispatcher: DowncastDispatcher,\n\t\t\tmodelAttributeName: string,\n\t\t\tviewAttributeName: string,\n\t\t\tsetRatioForInlineImage: boolean\n\t\t) {\n\t\t\tdispatcher.on<DowncastAttributeEvent>( `attribute:${ modelAttributeName }:${ imageType }`, ( evt, data, conversionApi ) => {\n\t\t\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst viewWriter = conversionApi.writer;\n\t\t\t\tconst viewElement = conversionApi.mapper.toViewElement( data.item as Element )!;\n\t\t\t\tconst img = imageUtils.findViewImgElement( viewElement )!;\n\n\t\t\t\tif ( data.attributeNewValue !== null ) {\n\t\t\t\t\tviewWriter.setAttribute( viewAttributeName, data.attributeNewValue, img );\n\t\t\t\t} else {\n\t\t\t\t\tviewWriter.removeAttribute( viewAttributeName, img );\n\t\t\t\t}\n\n\t\t\t\t// Do not set aspect-ratio for pictures. See https://github.com/ckeditor/ckeditor5/issues/14579.\n\t\t\t\tif ( data.item.hasAttribute( 'sources' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst isResized = data.item.hasAttribute( 'resizedWidth' );\n\n\t\t\t\t// Do not set aspect ratio for inline images which are not resized (data pipeline).\n\t\t\t\tif ( imageType === 'imageInline' && !isResized && !setRatioForInlineImage ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst width = data.item.getAttribute( 'width' );\n\t\t\t\tconst height = data.item.getAttribute( 'height' );\n\n\t\t\t\tif ( width && height ) {\n\t\t\t\t\tviewWriter.setStyle( 'aspect-ratio', `${ width }/${ height }`, img );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n}\n\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/imagetypecommand\n */\n\nimport type { Element } from 'ckeditor5/src/engine.js';\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * The image type command. It changes the type of a selected image, depending on the configuration.\n */\nexport default class ImageTypeCommand extends Command {\n\t/**\n\t * Model element name the command converts to.\n\t */\n\tprivate readonly _modelElementName: 'imageBlock' | 'imageInline';\n\n\t/**\n\t * @inheritDoc\n\t *\n\t * @param modelElementName Model element name the command converts to.\n\t */\n\tconstructor( editor: Editor, modelElementName: 'imageBlock' | 'imageInline' ) {\n\t\tsuper( editor );\n\n\t\tthis._modelElementName = modelElementName;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst element = imageUtils.getClosestSelectedImageElement( this.editor.model.document.selection );\n\n\t\tif ( this._modelElementName === 'imageBlock' ) {\n\t\t\tthis.isEnabled = imageUtils.isInlineImage( element );\n\t\t} else {\n\t\t\tthis.isEnabled = imageUtils.isBlockImage( element );\n\t\t}\n\t}\n\n\t/**\n\t * Executes the command and changes the type of a selected image.\n\t *\n\t * @fires execute\n\t * @param options.setImageSizes Specifies whether the image `width` and `height` attributes should be set automatically.\n\t * The default is `true`.\n\t * @returns An object containing references to old and new model image elements\n\t * (for before and after the change) so external integrations can hook into the decorated\n\t * `execute` event and handle this change. `null` if the type change failed.\n\t */\n\tpublic override execute( options: { setImageSizes?: boolean } = {} ): { oldElement: Element; newElement: Element } | null {\n\t\tconst editor = this.editor;\n\t\tconst model = this.editor.model;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst oldElement = imageUtils.getClosestSelectedImageElement( model.document.selection )!;\n\t\tconst attributes = Object.fromEntries( oldElement.getAttributes() );\n\n\t\t// Don't change image type if \"src\" is missing (a broken image), unless there's \"uploadId\" set.\n\t\t// This state may happen during image upload (before it finishes) and it should be possible to change type\n\t\t// of the image in the meantime.\n\t\tif ( !attributes.src && !attributes.uploadId ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn model.change( writer => {\n\t\t\tconst { setImageSizes = true } = options;\n\n\t\t\t// Get all markers that contain the old image element.\n\t\t\tconst markers = Array.from( model.markers )\n\t\t\t\t.filter( marker => marker.getRange().containsItem( oldElement ) );\n\n\t\t\tconst newElement = imageUtils.insertImage(\n\t\t\t\tattributes,\n\t\t\t\tmodel.createSelection( oldElement, 'on' ),\n\t\t\t\tthis._modelElementName,\n\t\t\t\t{ setImageSizes }\n\t\t\t);\n\n\t\t\tif ( !newElement ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst newElementRange = writer.createRangeOn( newElement );\n\n\t\t\t// Expand the previously intersecting markers' ranges to include the new image element.\n\t\t\tfor ( const marker of markers ) {\n\t\t\t\tconst markerRange = marker.getRange();\n\n\t\t\t\t// Join the survived part of the old marker range with the new element range\n\t\t\t\t// (loosely because there could be some new paragraph or the existing one might got split).\n\t\t\t\tconst range = markerRange.root.rootName != '$graveyard' ?\n\t\t\t\t\tmarkerRange.getJoined( newElementRange, true )! : newElementRange;\n\n\t\t\t\twriter.updateMarker( marker, { range } );\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\toldElement,\n\t\t\t\tnewElement\n\t\t\t};\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/imageplaceholder\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type {\n\tDowncastAttributeEvent,\n\tElement,\n\tViewElement\n} from 'ckeditor5/src/engine.js';\n\nimport ImageUtils from '../imageutils.js';\nimport ImageLoadObserver, { type ImageLoadedEvent } from './imageloadobserver.js';\n\nimport '../../theme/imageplaceholder.css';\n\n/**\n * Adds support for image placeholder that is automatically removed when the image is loaded.\n */\nexport default class ImagePlaceholder extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImagePlaceholder' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tthis._setupSchema();\n\t\tthis._setupConversion();\n\t\tthis._setupLoadListener();\n\t}\n\n\t/**\n\t * Extends model schema.\n\t */\n\tprivate _setupSchema(): void {\n\t\tconst schema = this.editor.model.schema;\n\n\t\t// Wait for ImageBlockEditing or ImageInlineEditing to register their elements first,\n\t\t// that's why doing this in afterInit() instead of init().\n\t\tif ( schema.isRegistered( 'imageBlock' ) ) {\n\t\t\tschema.extend( 'imageBlock', {\n\t\t\t\tallowAttributes: [ 'placeholder' ]\n\t\t\t} );\n\t\t}\n\n\t\tif ( schema.isRegistered( 'imageInline' ) ) {\n\t\t\tschema.extend( 'imageInline', {\n\t\t\t\tallowAttributes: [ 'placeholder' ]\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Registers converters.\n\t */\n\tprivate _setupConversion(): void {\n\t\tconst editor = this.editor;\n\t\tconst conversion = editor.conversion;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\tconversion.for( 'editingDowncast' ).add( dispatcher => {\n\t\t\tdispatcher.on<DowncastAttributeEvent<Element>>( 'attribute:placeholder', ( evt, data, conversionApi ) => {\n\t\t\t\tif ( !conversionApi.consumable.test( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( !data.item.is( 'element', 'imageBlock' ) && !data.item.is( 'element', 'imageInline' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconversionApi.consumable.consume( data.item, evt.name );\n\n\t\t\t\tconst viewWriter = conversionApi.writer;\n\t\t\t\tconst element = conversionApi.mapper.toViewElement( data.item )!;\n\t\t\t\tconst img = imageUtils.findViewImgElement( element )!;\n\n\t\t\t\tif ( data.attributeNewValue ) {\n\t\t\t\t\tviewWriter.addClass( 'image_placeholder', img );\n\t\t\t\t\tviewWriter.setStyle( 'background-image', `url(${ data.attributeNewValue })`, img );\n\t\t\t\t\tviewWriter.setCustomProperty( 'editingPipeline:doNotReuseOnce', true, img );\n\t\t\t\t} else {\n\t\t\t\t\tviewWriter.removeClass( 'image_placeholder', img );\n\t\t\t\t\tviewWriter.removeStyle( 'background-image', img );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Prepares listener for image load.\n\t */\n\tprivate _setupLoadListener(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst editing = editor.editing;\n\t\tconst editingView = editing.view;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\teditingView.addObserver( ImageLoadObserver );\n\n\t\tthis.listenTo<ImageLoadedEvent>( editingView.document, 'imageLoaded', ( evt, domEvent ) => {\n\t\t\tconst imgViewElement = editingView.domConverter.mapDomToView( domEvent.target as HTMLElement );\n\n\t\t\tif ( !imgViewElement ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst viewElement = imageUtils.getImageWidgetFromImageView( imgViewElement as ViewElement );\n\n\t\t\tif ( !viewElement ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst modelElement = editing.mapper.toModelElement( viewElement );\n\n\t\t\tif ( !modelElement || !modelElement.hasAttribute( 'placeholder' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmodel.enqueueChange( { isUndoable: false }, writer => {\n\t\t\t\twriter.removeAttribute( 'placeholder', modelElement );\n\t\t\t} );\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/imageblockediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ClipboardPipeline, type ClipboardInputTransformationEvent, type ClipboardContentInsertionEvent } from 'ckeditor5/src/clipboard.js';\nimport { UpcastWriter, type ViewElement } from 'ckeditor5/src/engine.js';\n\nimport {\n\tdowncastImageAttribute,\n\tdowncastSrcsetAttribute,\n\tupcastImageFigure\n} from './converters.js';\n\nimport ImageEditing from './imageediting.js';\nimport ImageSizeAttributes from '../imagesizeattributes.js';\nimport ImageTypeCommand from './imagetypecommand.js';\nimport ImageUtils from '../imageutils.js';\nimport {\n\tgetImgViewElementMatcher,\n\tcreateBlockImageViewElement,\n\tdetermineImageTypeForInsertionAtSelection\n} from './utils.js';\nimport ImagePlaceholder from './imageplaceholder.js';\n\n/**\n * The image block plugin.\n *\n * It registers:\n *\n * * `<imageBlock>` as a block element in the document schema, and allows `alt`, `src` and `srcset` attributes.\n * * converters for editing and data pipelines.,\n * * {@link module:image/image/imagetypecommand~ImageTypeCommand `'imageTypeBlock'`} command that converts inline images into\n * block images.\n */\nexport default class ImageBlockEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageEditing, ImageSizeAttributes, ImageUtils, ImagePlaceholder, ClipboardPipeline ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageBlockEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\t// Converters 'alt' and 'srcset' are added in 'ImageEditing' plugin.\n\t\tschema.register( 'imageBlock', {\n\t\t\tinheritAllFrom: '$blockObject',\n\t\t\tallowAttributes: [ 'alt', 'src', 'srcset' ]\n\t\t} );\n\n\t\tthis._setupConversion();\n\n\t\tif ( editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\teditor.commands.add( 'imageTypeBlock', new ImageTypeCommand( this.editor, 'imageBlock' ) );\n\n\t\t\tthis._setupClipboardIntegration();\n\t\t}\n\t}\n\n\t/**\n\t * Configures conversion pipelines to support upcasting and downcasting\n\t * block images (block image widgets) and their attributes.\n\t */\n\tprivate _setupConversion(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst conversion = editor.conversion;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\tconversion.for( 'dataDowncast' )\n\t\t\t.elementToStructure( {\n\t\t\t\tmodel: 'imageBlock',\n\t\t\t\tview: ( modelElement, { writer } ) => createBlockImageViewElement( writer )\n\t\t\t} );\n\n\t\tconversion.for( 'editingDowncast' )\n\t\t\t.elementToStructure( {\n\t\t\t\tmodel: 'imageBlock',\n\t\t\t\tview: ( modelElement, { writer } ) => imageUtils.toImageWidget(\n\t\t\t\t\tcreateBlockImageViewElement( writer ), writer, t( 'image widget' )\n\t\t\t\t)\n\t\t\t} );\n\n\t\tconversion.for( 'downcast' )\n\t\t\t.add( downcastImageAttribute( imageUtils, 'imageBlock', 'src' ) )\n\t\t\t.add( downcastImageAttribute( imageUtils, 'imageBlock', 'alt' ) )\n\t\t\t.add( downcastSrcsetAttribute( imageUtils, 'imageBlock' ) );\n\n\t\t// More image related upcasts are in 'ImageEditing' plugin.\n\t\tconversion.for( 'upcast' )\n\t\t\t.elementToElement( {\n\t\t\t\tview: getImgViewElementMatcher( editor, 'imageBlock' ),\n\t\t\t\tmodel: ( viewImage, { writer } ) => writer.createElement(\n\t\t\t\t\t'imageBlock',\n\t\t\t\t\tviewImage.hasAttribute( 'src' ) ? { src: viewImage.getAttribute( 'src' ) } : undefined\n\t\t\t\t)\n\t\t\t} )\n\t\t\t.add( upcastImageFigure( imageUtils ) );\n\t}\n\n\t/**\n\t * Integrates the plugin with the clipboard pipeline.\n\t *\n\t * Idea is that the feature should recognize the user's intent when an **inline** image is\n\t * pasted or dropped. If such an image is pasted/dropped:\n\t *\n\t * * into an empty block (e.g. an empty paragraph),\n\t * * on another object (e.g. some block widget).\n\t *\n\t * it gets converted into a block image on the fly. We assume this is the user's intent\n\t * if they decided to put their image there.\n\t *\n\t * See the `ImageInlineEditing` for the similar integration that works in the opposite direction.\n\t *\n\t * The feature also sets image `width` and `height` attributes on paste.\n\t */\n\tprivate _setupClipboardIntegration(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst editingView = editor.editing.view;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst clipboardPipeline: ClipboardPipeline = editor.plugins.get( 'ClipboardPipeline' );\n\n\t\tthis.listenTo<ClipboardInputTransformationEvent>(\n\t\t\tclipboardPipeline,\n\t\t\t'inputTransformation',\n\t\t\t( evt, data ) => {\n\t\t\t\tconst docFragmentChildren = Array.from( data.content.getChildren() as IterableIterator<ViewElement> );\n\t\t\t\tlet modelRange;\n\n\t\t\t\t// Make sure only <img> elements are dropped or pasted. Otherwise, if there some other HTML\n\t\t\t\t// mixed up, this should be handled as a regular paste.\n\t\t\t\tif ( !docFragmentChildren.every( imageUtils.isInlineImageView ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// When drag and dropping, data.targetRanges specifies where to drop because\n\t\t\t\t// this is usually a different place than the current model selection (the user\n\t\t\t\t// uses a drop marker to specify the drop location).\n\t\t\t\tif ( data.targetRanges ) {\n\t\t\t\t\tmodelRange = editor.editing.mapper.toModelRange( data.targetRanges[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// Pasting, however, always occurs at the current model selection.\n\t\t\t\telse {\n\t\t\t\t\tmodelRange = model.document.selection.getFirstRange();\n\t\t\t\t}\n\n\t\t\t\tconst selection = model.createSelection( modelRange );\n\n\t\t\t\t// Convert inline images into block images only when the currently selected block is empty\n\t\t\t\t// (e.g. an empty paragraph) or some object is selected (to replace it).\n\t\t\t\tif ( determineImageTypeForInsertionAtSelection( model.schema, selection ) === 'imageBlock' ) {\n\t\t\t\t\tconst writer = new UpcastWriter( editingView.document );\n\n\t\t\t\t\t// Wrap <img ... /> -> <figure class=\"image\"><img .../></figure>\n\t\t\t\t\tconst blockViewImages = docFragmentChildren.map(\n\t\t\t\t\t\tinlineViewImage => writer.createElement( 'figure', { class: 'image' }, inlineViewImage )\n\t\t\t\t\t);\n\n\t\t\t\t\tdata.content = writer.createDocumentFragment( blockViewImages );\n\t\t\t\t}\n\t\t\t} );\n\n\t\tthis.listenTo<ClipboardContentInsertionEvent>(\n\t\t\tclipboardPipeline,\n\t\t\t'contentInsertion',\n\t\t\t( evt, data ) => {\n\t\t\t\tif ( data.method !== 'paste' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tmodel.change( writer => {\n\t\t\t\t\tconst range = writer.createRangeIn( data.content );\n\n\t\t\t\t\tfor ( const item of range.getItems() ) {\n\t\t\t\t\t\tif ( item.is( 'element', 'imageBlock' ) ) {\n\t\t\t\t\t\t\timageUtils.setImageNaturalSizeAttributes( item );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageinsert/ui/imageinsertformview\n */\n\nimport {\n\tView,\n\tViewCollection,\n\tsubmitHandler,\n\tFocusCycler,\n\tCollapsibleView,\n\ttype FocusCyclerForwardCycleEvent,\n\ttype FocusCyclerBackwardCycleEvent,\n\ttype FocusableView\n} from 'ckeditor5/src/ui.js';\nimport { FocusTracker, KeystrokeHandler, type Locale } from 'ckeditor5/src/utils.js';\n\nimport '../../../theme/imageinsert.css';\n\n/**\n * The view displayed in the insert image dropdown.\n *\n * See {@link module:image/imageinsert/imageinsertui~ImageInsertUI}.\n */\nexport default class ImageInsertFormView extends View {\n\t/**\n\t * Tracks information about DOM focus in the form.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * A collection of views that can be focused in the form.\n\t */\n\tprotected readonly _focusables: ViewCollection<FocusableView>;\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */\n\tprotected readonly _focusCycler: FocusCycler;\n\n\t/**\n\t * A collection of the defined integrations for inserting the images.\n\t */\n\tprivate readonly children: ViewCollection<FocusableView>;\n\n\t/**\n\t * Creates a view for the dropdown panel of {@link module:image/imageinsert/imageinsertui~ImageInsertUI}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param integrations An integrations object that contains components (or tokens for components) to be shown in the panel view.\n\t */\n\tconstructor( locale: Locale, integrations: Array<FocusableView> = [] ) {\n\t\tsuper( locale );\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\t\tthis._focusables = new ViewCollection();\n\t\tthis.children = this.createCollection();\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tfor ( const view of integrations ) {\n\t\t\tthis.children.add( view );\n\t\t\tthis._focusables.add( view );\n\n\t\t\tif ( view instanceof CollapsibleView ) {\n\t\t\t\tthis._focusables.addMany( view.children );\n\t\t\t}\n\t\t}\n\n\t\tif ( this._focusables.length > 1 ) {\n\t\t\tfor ( const view of this._focusables ) {\n\t\t\t\tif ( isViewWithFocusCycler( view ) ) {\n\t\t\t\t\tview.focusCycler.on<FocusCyclerForwardCycleEvent>( 'forwardCycle', evt => {\n\t\t\t\t\t\tthis._focusCycler.focusNext();\n\t\t\t\t\t\tevt.stop();\n\t\t\t\t\t} );\n\n\t\t\t\t\tview.focusCycler.on<FocusCyclerBackwardCycleEvent>( 'backwardCycle', evt => {\n\t\t\t\t\t\tthis._focusCycler.focusPrevious();\n\t\t\t\t\t\tevt.stop();\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'form',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-image-insert-form'\n\t\t\t\t],\n\t\t\t\ttabindex: -1\n\t\t\t},\n\n\t\t\tchildren: this.children\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tsubmitHandler( {\n\t\t\tview: this\n\t\t} );\n\n\t\tfor ( const view of this._focusables ) {\n\t\t\tthis.focusTracker.add( view.element! );\n\t\t}\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\n\t\tconst stopPropagation = ( data: KeyboardEvent ) => data.stopPropagation();\n\n\t\t// Since the form is in the dropdown panel which is a child of the toolbar, the toolbar's\n\t\t// keystroke handler would take over the key management in the URL input. We need to prevent\n\t\t// this ASAP. Otherwise, the basic caret movement using the arrow keys will be impossible.\n\t\tthis.keystrokes.set( 'arrowright', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowleft', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowup', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowdown', stopPropagation );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the first {@link #_focusables focusable} in the form.\n\t */\n\tpublic focus(): void {\n\t\tthis._focusCycler.focusFirst();\n\t}\n}\n\nfunction isViewWithFocusCycler( view: View ): view is View & { focusCycler: FocusCycler } {\n\treturn 'focusCycler' in view;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageinsert/imageinsertui\n */\n\nimport {\n\tPlugin,\n\ttype Editor\n} from 'ckeditor5/src/core.js';\nimport {\n\tlogWarning,\n\ttype Locale,\n\ttype Observable\n} from 'ckeditor5/src/utils.js';\nimport {\n\tcreateDropdown,\n\tSplitButtonView,\n\ttype ButtonView,\n\ttype DropdownButtonView,\n\ttype DropdownView,\n\ttype FocusableView\n} from 'ckeditor5/src/ui.js';\n\nimport ImageInsertFormView from './ui/imageinsertformview.js';\nimport ImageUtils from '../imageutils.js';\n\n/**\n * The image insert dropdown plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload Image upload feature}\n * and {@glink features/images/images-inserting Insert images via source URL} documentation.\n *\n * Adds the `'insertImage'` dropdown to the {@link module:ui/componentfactory~ComponentFactory UI component factory}\n * and also the `imageInsert` dropdown as an alias for backward compatibility.\n */\nexport default class ImageInsertUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageInsertUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUtils ] as const;\n\t}\n\n\t/**\n\t * The dropdown view responsible for displaying the image insert UI.\n\t */\n\tpublic dropdownView?: DropdownView;\n\n\t/**\n\t * Observable property used to alter labels while some image is selected and when it is not.\n\t *\n\t * @observable\n\t */\n\tdeclare public isImageSelected: boolean;\n\n\t/**\n\t * Registered integrations map.\n\t */\n\tprivate _integrations = new Map<string, IntegrationData>();\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'image.insert.integrations', [\n\t\t\t'upload',\n\t\t\t'assetManager',\n\t\t\t'url'\n\t\t] );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst selection = editor.model.document.selection;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\tthis.set( 'isImageSelected', false );\n\n\t\tthis.listenTo( editor.model.document, 'change', () => {\n\t\t\tthis.isImageSelected = imageUtils.isImage( selection.getSelectedElement() );\n\t\t} );\n\n\t\tconst componentCreator = ( locale: Locale ) => this._createToolbarComponent( locale );\n\n\t\t// Register `insertImage` dropdown and add `imageInsert` dropdown as an alias for backward compatibility.\n\t\teditor.ui.componentFactory.add( 'insertImage', componentCreator );\n\t\teditor.ui.componentFactory.add( 'imageInsert', componentCreator );\n\t}\n\n\t/**\n\t * Registers the insert image dropdown integration.\n\t */\n\tpublic registerIntegration( {\n\t\tname,\n\t\tobservable,\n\t\tbuttonViewCreator,\n\t\tformViewCreator,\n\t\trequiresForm\n\t}: {\n\t\tname: string;\n\t\tobservable: Observable & { isEnabled: boolean } | ( () => Observable & { isEnabled: boolean } );\n\t\tbuttonViewCreator: ( isOnlyOne: boolean ) => ButtonView;\n\t\tformViewCreator: ( isOnlyOne: boolean ) => FocusableView;\n\t\trequiresForm?: boolean;\n\t} ): void {\n\t\tif ( this._integrations.has( name ) ) {\n\t\t\t/**\n\t\t\t * There are two insert-image integrations registered with the same name.\n\t\t\t *\n\t\t\t * Make sure that you do not load multiple asset manager plugins.\n\t\t\t *\n\t\t\t * @error image-insert-integration-exists\n\t\t\t */\n\t\t\tlogWarning( 'image-insert-integration-exists', { name } );\n\t\t}\n\n\t\tthis._integrations.set( name, {\n\t\t\tobservable,\n\t\t\tbuttonViewCreator,\n\t\t\tformViewCreator,\n\t\t\trequiresForm: !!requiresForm\n\t\t} );\n\t}\n\n\t/**\n\t * Creates the toolbar component.\n\t */\n\tprivate _createToolbarComponent( locale: Locale ): DropdownView | FocusableView {\n\t\tconst editor = this.editor;\n\t\tconst t = locale.t;\n\n\t\tconst integrations = this._prepareIntegrations();\n\n\t\tif ( !integrations.length ) {\n\t\t\treturn null as any;\n\t\t}\n\n\t\tlet dropdownButton: SplitButtonView | DropdownButtonView | undefined;\n\t\tconst firstIntegration = integrations[ 0 ];\n\n\t\tif ( integrations.length == 1 ) {\n\t\t\t// Do not use dropdown for a single integration button (integration that does not require form view).\n\t\t\tif ( !firstIntegration.requiresForm ) {\n\t\t\t\treturn firstIntegration.buttonViewCreator( true );\n\t\t\t}\n\n\t\t\tdropdownButton = firstIntegration.buttonViewCreator( true ) as DropdownButtonView;\n\t\t} else {\n\t\t\tconst actionButton = firstIntegration.buttonViewCreator( false ) as ButtonView & FocusableView;\n\n\t\t\tdropdownButton = new SplitButtonView( locale, actionButton );\n\t\t\tdropdownButton.tooltip = true;\n\n\t\t\tdropdownButton.bind( 'label' ).to( this, 'isImageSelected', isImageSelected => isImageSelected ?\n\t\t\t\tt( 'Replace image' ) :\n\t\t\t\tt( 'Insert image' )\n\t\t\t);\n\t\t}\n\n\t\tconst dropdownView = this.dropdownView = createDropdown( locale, dropdownButton );\n\t\tconst observables = integrations.map( ( { observable } ) => typeof observable == 'function' ? observable() : observable );\n\n\t\tdropdownView.bind( 'isEnabled' ).toMany( observables, 'isEnabled', ( ...isEnabled ) => (\n\t\t\tisEnabled.some( isEnabled => isEnabled )\n\t\t) );\n\n\t\tdropdownView.once( 'change:isOpen', () => {\n\t\t\tconst integrationViews = integrations.map( ( { formViewCreator } ) => formViewCreator( integrations.length == 1 ) );\n\t\t\tconst imageInsertFormView = new ImageInsertFormView( editor.locale, integrationViews );\n\n\t\t\tdropdownView.panelView.children.add( imageInsertFormView );\n\t\t} );\n\n\t\treturn dropdownView;\n\t}\n\n\t/**\n\t * Validates the integrations list.\n\t */\n\tprivate _prepareIntegrations(): Array<IntegrationData> {\n\t\tconst editor = this.editor;\n\t\tconst items = editor.config.get( 'image.insert.integrations' )!;\n\t\tconst result: Array<IntegrationData> = [];\n\n\t\tif ( !items.length ) {\n\t\t\t/**\n\t\t\t * The insert image feature requires a list of integrations to be provided in the editor configuration.\n\t\t\t *\n\t\t\t * The default list of integrations is `upload`, `assetManager`, `url`. Those integrations are included\n\t\t\t * in the insert image dropdown if the given feature plugin is loaded. You should omit the `integrations`\n\t\t\t * configuration key to use the default set or provide a selected list of integrations that should be used.\n\t\t\t *\n\t\t\t * @error image-insert-integrations-not-specified\n\t\t\t */\n\t\t\tlogWarning( 'image-insert-integrations-not-specified' );\n\n\t\t\treturn result;\n\t\t}\n\n\t\tfor ( const item of items ) {\n\t\t\tif ( !this._integrations.has( item ) ) {\n\t\t\t\tif ( ![ 'upload', 'assetManager', 'url' ].includes( item ) ) {\n\t\t\t\t\t/**\n\t\t\t\t\t * The specified insert image integration name is unknown or the providing plugin is not loaded in the editor.\n\t\t\t\t\t *\n\t\t\t\t\t * @error image-insert-unknown-integration\n\t\t\t\t\t */\n\t\t\t\t\tlogWarning( 'image-insert-unknown-integration', { item } );\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tresult.push( this._integrations.get( item )! );\n\t\t}\n\n\t\tif ( !result.length ) {\n\t\t\t/**\n\t\t\t * The image insert feature requires integrations to be registered by separate features.\n\t\t\t *\n\t\t\t * The `insertImage` toolbar button requires integrations to be registered by other features.\n\t\t\t * For example {@link module:image/imageupload~ImageUpload ImageUpload},\n\t\t\t * {@link module:image/imageinsert~ImageInsert ImageInsert},\n\t\t\t * {@link module:image/imageinsertviaurl~ImageInsertViaUrl ImageInsertViaUrl},\n\t\t\t * {@link module:ckbox/ckbox~CKBox CKBox}\n\t\t\t *\n\t\t\t * @error image-insert-integrations-not-registered\n\t\t\t */\n\t\t\tlogWarning( 'image-insert-integrations-not-registered' );\n\t\t}\n\n\t\treturn result;\n\t}\n}\n\ntype IntegrationData = {\n\tobservable: Observable & { isEnabled: boolean } | ( () => Observable & { isEnabled: boolean } );\n\tbuttonViewCreator: ( isOnlyOne: boolean ) => ButtonView;\n\tformViewCreator: ( isOnlyOne: boolean ) => FocusableView;\n\trequiresForm: boolean;\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageblock\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { Widget } from 'ckeditor5/src/widget.js';\n\nimport ImageTextAlternative from './imagetextalternative.js';\nimport ImageBlockEditing from './image/imageblockediting.js';\nimport ImageInsertUI from './imageinsert/imageinsertui.js';\n\nimport '../theme/image.css';\n\n/**\n * The image block plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/image/imageblockediting~ImageBlockEditing},\n * * {@link module:image/imagetextalternative~ImageTextAlternative}.\n *\n * Usually, it is used in conjunction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n */\nexport default class ImageBlock extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageBlockEditing, Widget, ImageTextAlternative, ImageInsertUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageBlock' as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/imageinlineediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ClipboardPipeline, type ClipboardInputTransformationEvent, type ClipboardContentInsertionEvent } from 'ckeditor5/src/clipboard.js';\nimport { UpcastWriter, type ViewElement } from 'ckeditor5/src/engine.js';\n\nimport {\n\tdowncastImageAttribute,\n\tdowncastSrcsetAttribute\n} from './converters.js';\n\nimport ImageEditing from './imageediting.js';\nimport ImageSizeAttributes from '../imagesizeattributes.js';\nimport ImageTypeCommand from './imagetypecommand.js';\nimport ImageUtils from '../imageutils.js';\nimport {\n\tgetImgViewElementMatcher,\n\tcreateInlineImageViewElement,\n\tdetermineImageTypeForInsertionAtSelection\n} from './utils.js';\nimport ImagePlaceholder from './imageplaceholder.js';\n\n/**\n * The image inline plugin.\n *\n * It registers:\n *\n * * `<imageInline>` as an inline element in the document schema, and allows `alt`, `src` and `srcset` attributes.\n * * converters for editing and data pipelines.\n * * {@link module:image/image/imagetypecommand~ImageTypeCommand `'imageTypeInline'`} command that converts block images into\n * inline images.\n */\nexport default class ImageInlineEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageEditing, ImageSizeAttributes, ImageUtils, ImagePlaceholder, ClipboardPipeline ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageInlineEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\t// Converters 'alt' and 'srcset' are added in 'ImageEditing' plugin.\n\t\tschema.register( 'imageInline', {\n\t\t\tinheritAllFrom: '$inlineObject',\n\t\t\tallowAttributes: [ 'alt', 'src', 'srcset' ]\n\t\t} );\n\n\t\t// Disallow inline images in captions (for now). This is the best spot to do that because\n\t\t// independent packages can introduce captions (ImageCaption, TableCaption, etc.) so better this\n\t\t// be future-proof.\n\t\tschema.addChildCheck( ( context, childDefinition ) => {\n\t\t\tif ( context.endsWith( 'caption' ) && childDefinition.name === 'imageInline' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} );\n\n\t\tthis._setupConversion();\n\n\t\tif ( editor.plugins.has( 'ImageBlockEditing' ) ) {\n\t\t\teditor.commands.add( 'imageTypeInline', new ImageTypeCommand( this.editor, 'imageInline' ) );\n\n\t\t\tthis._setupClipboardIntegration();\n\t\t}\n\t}\n\n\t/**\n\t * Configures conversion pipelines to support upcasting and downcasting\n\t * inline images (inline image widgets) and their attributes.\n\t */\n\tprivate _setupConversion(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst conversion = editor.conversion;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\tconversion.for( 'dataDowncast' )\n\t\t\t.elementToElement( {\n\t\t\t\tmodel: 'imageInline',\n\t\t\t\tview: ( modelElement, { writer } ) => writer.createEmptyElement( 'img' )\n\t\t\t} );\n\n\t\tconversion.for( 'editingDowncast' )\n\t\t\t.elementToStructure( {\n\t\t\t\tmodel: 'imageInline',\n\t\t\t\tview: ( modelElement, { writer } ) => imageUtils.toImageWidget(\n\t\t\t\t\tcreateInlineImageViewElement( writer ), writer, t( 'image widget' )\n\t\t\t\t)\n\t\t\t} );\n\n\t\tconversion.for( 'downcast' )\n\t\t\t.add( downcastImageAttribute( imageUtils, 'imageInline', 'src' ) )\n\t\t\t.add( downcastImageAttribute( imageUtils, 'imageInline', 'alt' ) )\n\t\t\t.add( downcastSrcsetAttribute( imageUtils, 'imageInline' ) );\n\n\t\t// More image related upcasts are in 'ImageEditing' plugin.\n\t\tconversion.for( 'upcast' )\n\t\t\t.elementToElement( {\n\t\t\t\tview: getImgViewElementMatcher( editor, 'imageInline' ),\n\t\t\t\tmodel: ( viewImage, { writer } ) => writer.createElement(\n\t\t\t\t\t'imageInline',\n\t\t\t\t\tviewImage.hasAttribute( 'src' ) ? { src: viewImage.getAttribute( 'src' ) } : undefined\n\t\t\t\t)\n\t\t\t} );\n\t}\n\n\t/**\n\t * Integrates the plugin with the clipboard pipeline.\n\t *\n\t * Idea is that the feature should recognize the user's intent when an **block** image is\n\t * pasted or dropped. If such an image is pasted/dropped into a non-empty block\n\t * (e.g. a paragraph with some text) it gets converted into an inline image on the fly.\n\t *\n\t * We assume this is the user's intent if they decided to put their image there.\n\t *\n\t * **Note**: If a block image has a caption, it will not be converted to an inline image\n\t * to avoid the confusion. Captions are added on purpose and they should never be lost\n\t * in the clipboard pipeline.\n\t *\n\t * See the `ImageBlockEditing` for the similar integration that works in the opposite direction.\n\t *\n\t * The feature also sets image `width` and `height` attributes when pasting.\n\t */\n\tprivate _setupClipboardIntegration(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst editingView = editor.editing.view;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst clipboardPipeline: ClipboardPipeline = editor.plugins.get( 'ClipboardPipeline' );\n\n\t\tthis.listenTo<ClipboardInputTransformationEvent>(\n\t\t\tclipboardPipeline,\n\t\t\t'inputTransformation',\n\t\t\t( evt, data ) => {\n\t\t\t\tconst docFragmentChildren = Array.from( data.content.getChildren() as IterableIterator<ViewElement> );\n\t\t\t\tlet modelRange;\n\n\t\t\t\t// Make sure only <figure class=\"image\"></figure> elements are dropped or pasted. Otherwise, if there some other HTML\n\t\t\t\t// mixed up, this should be handled as a regular paste.\n\t\t\t\tif ( !docFragmentChildren.every( imageUtils.isBlockImageView ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// When drag and dropping, data.targetRanges specifies where to drop because\n\t\t\t\t// this is usually a different place than the current model selection (the user\n\t\t\t\t// uses a drop marker to specify the drop location).\n\t\t\t\tif ( data.targetRanges ) {\n\t\t\t\t\tmodelRange = editor.editing.mapper.toModelRange( data.targetRanges[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// Pasting, however, always occurs at the current model selection.\n\t\t\t\telse {\n\t\t\t\t\tmodelRange = model.document.selection.getFirstRange();\n\t\t\t\t}\n\n\t\t\t\tconst selection = model.createSelection( modelRange );\n\n\t\t\t\t// Convert block images into inline images only when pasting or dropping into non-empty blocks\n\t\t\t\t// and when the block is not an object (e.g. pasting to replace another widget).\n\t\t\t\tif ( determineImageTypeForInsertionAtSelection( model.schema, selection ) === 'imageInline' ) {\n\t\t\t\t\tconst writer = new UpcastWriter( editingView.document );\n\n\t\t\t\t\t// Unwrap <figure class=\"image\"><img .../></figure> -> <img ... />\n\t\t\t\t\t// but <figure class=\"image\"><img .../><figcaption>...</figcaption></figure> -> stays the same\n\t\t\t\t\tconst inlineViewImages = docFragmentChildren.map( blockViewImage => {\n\t\t\t\t\t// If there's just one child, it can be either <img /> or <a><img></a>.\n\t\t\t\t\t// If there are other children than <img>, this means that the block image\n\t\t\t\t\t// has a caption or some other features and this kind of image should be\n\t\t\t\t\t// pasted/dropped without modifications.\n\t\t\t\t\t\tif ( blockViewImage.childCount === 1 ) {\n\t\t\t\t\t\t// Pass the attributes which are present only in the <figure> to the <img>\n\t\t\t\t\t\t// (e.g. the style=\"width:10%\" attribute applied by the ImageResize plugin).\n\t\t\t\t\t\t\tArray.from( blockViewImage.getAttributes() )\n\t\t\t\t\t\t\t\t.forEach( attribute => writer.setAttribute(\n\t\t\t\t\t\t\t\t\t...attribute,\n\t\t\t\t\t\t\t\t\timageUtils.findViewImgElement( blockViewImage )!\n\t\t\t\t\t\t\t\t) );\n\n\t\t\t\t\t\t\treturn blockViewImage.getChild( 0 )!;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn blockViewImage;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\tdata.content = writer.createDocumentFragment( inlineViewImages );\n\t\t\t\t}\n\t\t\t} );\n\n\t\tthis.listenTo<ClipboardContentInsertionEvent>(\n\t\t\tclipboardPipeline,\n\t\t\t'contentInsertion',\n\t\t\t( evt, data ) => {\n\t\t\t\tif ( data.method !== 'paste' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tmodel.change( writer => {\n\t\t\t\t\tconst range = writer.createRangeIn( data.content );\n\n\t\t\t\t\tfor ( const item of range.getItems() ) {\n\t\t\t\t\t\tif ( item.is( 'element', 'imageInline' ) ) {\n\t\t\t\t\t\t\timageUtils.setImageNaturalSizeAttributes( item );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageinline\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { Widget } from 'ckeditor5/src/widget.js';\n\nimport ImageTextAlternative from './imagetextalternative.js';\nimport ImageInlineEditing from './image/imageinlineediting.js';\nimport ImageInsertUI from './imageinsert/imageinsertui.js';\n\nimport '../theme/image.css';\n\n/**\n * The image inline plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/image/imageinlineediting~ImageInlineEditing},\n * * {@link module:image/imagetextalternative~ImageTextAlternative}.\n *\n * Usually, it is used in conjunction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n */\nexport default class ImageInline extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageInlineEditing, Widget, ImageTextAlternative, ImageInsertUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageInline' as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageBlock from './imageblock.js';\nimport ImageInline from './imageinline.js';\n\nimport '../theme/image.css';\n\n/**\n * The image plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-overview image feature} documentation.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/imageblock~ImageBlock},\n * * {@link module:image/imageinline~ImageInline},\n *\n * Usually, it is used in conjunction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n */\nexport default class Image extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageBlock, ImageInline ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Image' as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagecaption/imagecaptionutils\n */\n\nimport type { DocumentSelection, Element, Selection, ViewElement, Match } from 'ckeditor5/src/engine.js';\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport ImageUtils from '../imageutils.js';\n\n/**\n * The image caption utilities plugin.\n */\nexport default class ImageCaptionUtils extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageCaptionUtils' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUtils ] as const;\n\t}\n\n\t/**\n\t * Returns the caption model element from a given image element. Returns `null` if no caption is found.\n\t */\n\tpublic getCaptionFromImageModelElement( imageModelElement: Element ): Element | null {\n\t\tfor ( const node of imageModelElement.getChildren() ) {\n\t\t\tif ( !!node && node.is( 'element', 'caption' ) ) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.\n\t */\n\tpublic getCaptionFromModelSelection( selection: Selection | DocumentSelection ): Element | null {\n\t\tconst imageUtils: ImageUtils = this.editor.plugins.get( 'ImageUtils' );\n\t\tconst captionElement = selection.getFirstPosition()!.findAncestor( 'caption' );\n\n\t\tif ( !captionElement ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( imageUtils.isBlockImage( captionElement.parent as Element ) ) {\n\t\t\treturn captionElement;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a `<figcaption>` element that is placed\n\t * inside the image `<figure>` element.\n\t * @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element\n\t * cannot be matched.\n\t */\n\tpublic matchImageCaptionViewElement( element: ViewElement ): Match | null {\n\t\tconst imageUtils: ImageUtils = this.editor.plugins.get( 'ImageUtils' );\n\n\t\t// Convert only captions for images.\n\t\tif ( element.name == 'figcaption' && imageUtils.isBlockImageView( element.parent as ViewElement ) ) {\n\t\t\treturn { name: true };\n\t\t}\n\n\t\treturn null;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagecaption/toggleimagecaptioncommand\n */\n\nimport type { Element, Writer } from 'ckeditor5/src/engine.js';\nimport { Command } from 'ckeditor5/src/core.js';\n\nimport ImageBlockEditing from '../image/imageblockediting.js';\nimport type ImageCaptionUtils from './imagecaptionutils.js';\nimport type ImageUtils from '../imageutils.js';\nimport type ImageCaptionEditing from './imagecaptionediting.js';\n\n/**\n * The toggle image caption command.\n *\n * This command is registered by {@link module:image/imagecaption/imagecaptionediting~ImageCaptionEditing} as the\n * `'toggleImageCaption'` editor command.\n *\n * Executing this command:\n *\n * * either adds or removes the image caption of a selected image (depending on whether the caption is present or not),\n * * removes the image caption if the selection is anchored in one.\n *\n * ```ts\n * // Toggle the presence of the caption.\n * editor.execute( 'toggleImageCaption' );\n * ```\n *\n * **Note**: Upon executing this command, the selection will be set on the image if previously anchored in the caption element.\n *\n * **Note**: You can move the selection to the caption right away as it shows up upon executing this command by using\n * the `focusCaptionOnShow` option:\n *\n * ```ts\n * editor.execute( 'toggleImageCaption', { focusCaptionOnShow: true } );\n * ```\n */\nexport default class ToggleImageCaptionCommand extends Command {\n\tdeclare public value: boolean;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst imageCaptionUtils: ImageCaptionUtils = editor.plugins.get( 'ImageCaptionUtils' );\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\t// Only block images can get captions.\n\t\tif ( !editor.plugins.has( ImageBlockEditing ) ) {\n\t\t\tthis.isEnabled = false;\n\t\t\tthis.value = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst selection = editor.model.document.selection;\n\t\tconst selectedElement = selection.getSelectedElement();\n\n\t\tif ( !selectedElement ) {\n\t\t\tconst ancestorCaptionElement = imageCaptionUtils.getCaptionFromModelSelection( selection );\n\n\t\t\tthis.isEnabled = !!ancestorCaptionElement;\n\t\t\tthis.value = !!ancestorCaptionElement;\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Block images support captions by default but the command should also be enabled for inline\n\t\t// images because toggling the caption when one is selected should convert it into a block image.\n\t\tthis.isEnabled = imageUtils.isImage( selectedElement );\n\n\t\tif ( !this.isEnabled ) {\n\t\t\tthis.value = false;\n\t\t} else {\n\t\t\tthis.value = !!imageCaptionUtils.getCaptionFromImageModelElement( selectedElement );\n\t\t}\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * ```ts\n\t * editor.execute( 'toggleImageCaption' );\n\t * ```\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.focusCaptionOnShow When true and the caption shows up, the selection will be moved into it straight away.\n\t * @fires execute\n\t */\n\tpublic override execute( options: { focusCaptionOnShow?: boolean } = {} ): void {\n\t\tconst { focusCaptionOnShow } = options;\n\n\t\tthis.editor.model.change( writer => {\n\t\t\tif ( this.value ) {\n\t\t\t\tthis._hideImageCaption( writer );\n\t\t\t} else {\n\t\t\t\tthis._showImageCaption( writer, focusCaptionOnShow );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Shows the caption of the `<imageBlock>` or `<imageInline>`. Also:\n\t *\n\t * * it converts `<imageInline>` to `<imageBlock>` to show the caption,\n\t * * it attempts to restore the caption content from the `ImageCaptionEditing` caption registry,\n\t * * it moves the selection to the caption right away, it the `focusCaptionOnShow` option was set.\n\t */\n\tprivate _showImageCaption( writer: Writer, focusCaptionOnShow?: boolean ): void {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst imageCaptionEditing: ImageCaptionEditing = this.editor.plugins.get( 'ImageCaptionEditing' );\n\t\tconst imageUtils: ImageUtils = this.editor.plugins.get( 'ImageUtils' );\n\n\t\tlet selectedImage = selection.getSelectedElement()!;\n\n\t\tconst savedCaption = imageCaptionEditing._getSavedCaption( selectedImage );\n\n\t\t// Convert imageInline -> image first.\n\t\tif ( imageUtils.isInlineImage( selectedImage ) ) {\n\t\t\tthis.editor.execute( 'imageTypeBlock' );\n\n\t\t\t// Executing the command created a new model element. Let's pick it again.\n\t\t\tselectedImage = selection.getSelectedElement()!;\n\t\t}\n\n\t\t// Try restoring the caption from the ImageCaptionEditing plugin storage.\n\t\tconst newCaptionElement = savedCaption || writer.createElement( 'caption' );\n\n\t\twriter.append( newCaptionElement, selectedImage );\n\n\t\tif ( focusCaptionOnShow ) {\n\t\t\twriter.setSelection( newCaptionElement, 'in' );\n\t\t}\n\t}\n\n\t/**\n\t * Hides the caption of a selected image (or an image caption the selection is anchored to).\n\t *\n\t * The content of the caption is stored in the `ImageCaptionEditing` caption registry to make this\n\t * a reversible action.\n\t */\n\tprivate _hideImageCaption( writer: Writer ): void {\n\t\tconst editor = this.editor;\n\t\tconst selection = editor.model.document.selection;\n\t\tconst imageCaptionEditing: ImageCaptionEditing = editor.plugins.get( 'ImageCaptionEditing' );\n\t\tconst imageCaptionUtils: ImageCaptionUtils = editor.plugins.get( 'ImageCaptionUtils' );\n\t\tlet selectedImage = selection.getSelectedElement()!;\n\t\tlet captionElement: Element;\n\n\t\tif ( selectedImage ) {\n\t\t\tcaptionElement = imageCaptionUtils.getCaptionFromImageModelElement( selectedImage )!;\n\t\t} else {\n\t\t\tcaptionElement = imageCaptionUtils.getCaptionFromModelSelection( selection )!;\n\t\t\tselectedImage = captionElement!.parent as Element;\n\t\t}\n\n\t\t// Store the caption content so it can be restored quickly if the user changes their mind even if they toggle image<->imageInline.\n\t\timageCaptionEditing._saveCaption( selectedImage, captionElement );\n\n\t\twriter.setSelection( selectedImage, 'on' );\n\t\twriter.remove( captionElement );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagecaption/imagecaptionediting\n */\n\nimport { type Editor, Plugin, type CommandExecuteEvent } from 'ckeditor5/src/core.js';\nimport { Element, enablePlaceholder, type DocumentChangeEvent, type DiffItemAttribute } from 'ckeditor5/src/engine.js';\nimport { toWidgetEditable } from 'ckeditor5/src/widget.js';\nimport type { GetCallback } from 'ckeditor5/src/utils.js';\n\nimport ToggleImageCaptionCommand from './toggleimagecaptioncommand.js';\nimport ImageUtils from '../imageutils.js';\nimport ImageCaptionUtils from './imagecaptionutils.js';\n\n/**\n * The image caption engine plugin. It is responsible for:\n *\n * * registering converters for the caption element,\n * * registering converters for the caption model attribute,\n * * registering the {@link module:image/imagecaption/toggleimagecaptioncommand~ToggleImageCaptionCommand `toggleImageCaption`} command.\n */\nexport default class ImageCaptionEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUtils, ImageCaptionUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageCaptionEditing' as const;\n\t}\n\n\t/**\n\t * A map that keeps saved JSONified image captions and image model elements they are\n\t * associated with.\n\t *\n\t * To learn more about this system, see {@link #_saveCaption}.\n\t */\n\tprivate _savedCaptionsMap: WeakMap<Element, unknown>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._savedCaptionsMap = new WeakMap();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\t// Schema configuration.\n\t\tif ( !schema.isRegistered( 'caption' ) ) {\n\t\t\tschema.register( 'caption', {\n\t\t\t\tallowIn: 'imageBlock',\n\t\t\t\tallowContentOf: '$block',\n\t\t\t\tisLimit: true\n\t\t\t} );\n\t\t} else {\n\t\t\tschema.extend( 'caption', {\n\t\t\t\tallowIn: 'imageBlock'\n\t\t\t} );\n\t\t}\n\n\t\teditor.commands.add( 'toggleImageCaption', new ToggleImageCaptionCommand( this.editor ) );\n\n\t\tthis._setupConversion();\n\t\tthis._setupImageTypeCommandsIntegration();\n\t\tthis._registerCaptionReconversion();\n\t}\n\n\t/**\n\t * Configures conversion pipelines to support upcasting and downcasting\n\t * image captions.\n\t */\n\tprivate _setupConversion(): void {\n\t\tconst editor = this.editor;\n\t\tconst view = editor.editing.view;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst imageCaptionUtils: ImageCaptionUtils = editor.plugins.get( 'ImageCaptionUtils' );\n\t\tconst t = editor.t;\n\n\t\t// View -> model converter for the data pipeline.\n\t\teditor.conversion.for( 'upcast' ).elementToElement( {\n\t\t\tview: element => imageCaptionUtils.matchImageCaptionViewElement( element ),\n\t\t\tmodel: 'caption'\n\t\t} );\n\n\t\t// Model -> view converter for the data pipeline.\n\t\teditor.conversion.for( 'dataDowncast' ).elementToElement( {\n\t\t\tmodel: 'caption',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tif ( !imageUtils.isBlockImage( modelElement.parent as Element ) ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn writer.createContainerElement( 'figcaption' );\n\t\t\t}\n\t\t} );\n\n\t\t// Model -> view converter for the editing pipeline.\n\t\teditor.conversion.for( 'editingDowncast' ).elementToElement( {\n\t\t\tmodel: 'caption',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tif ( !imageUtils.isBlockImage( modelElement.parent as Element ) ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst figcaptionElement = writer.createEditableElement( 'figcaption' );\n\t\t\t\twriter.setCustomProperty( 'imageCaption', true, figcaptionElement );\n\n\t\t\t\tfigcaptionElement.placeholder = t( 'Enter image caption' );\n\t\t\t\tenablePlaceholder( {\n\t\t\t\t\tview,\n\t\t\t\t\telement: figcaptionElement,\n\t\t\t\t\tkeepOnFocus: true\n\t\t\t\t} );\n\n\t\t\t\tconst imageAlt = ( modelElement.parent as Element ).getAttribute( 'alt' ) as string;\n\t\t\t\tconst label = imageAlt ? t( 'Caption for image: %0', [ imageAlt ] ) : t( 'Caption for the image' );\n\n\t\t\t\treturn toWidgetEditable( figcaptionElement, writer, { label } );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Integrates with {@link module:image/image/imagetypecommand~ImageTypeCommand image type commands}\n\t * to make sure the caption is preserved when the type of an image changes so it can be restored\n\t * in the future if the user decides they want their caption back.\n\t */\n\tprivate _setupImageTypeCommandsIntegration(): void {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst imageCaptionUtils: ImageCaptionUtils = editor.plugins.get( 'ImageCaptionUtils' );\n\t\tconst imageTypeInlineCommand = editor.commands.get( 'imageTypeInline' );\n\t\tconst imageTypeBlockCommand = editor.commands.get( 'imageTypeBlock' );\n\n\t\tconst handleImageTypeChange: GetCallback<CommandExecuteEvent> = evt => {\n\t\t\t// The image type command execution can be unsuccessful.\n\t\t\tif ( !evt.return ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { oldElement, newElement } = evt.return as { oldElement: Element; newElement: Element };\n\n\t\t\t/* istanbul ignore if: paranoid check -- @preserve */\n\t\t\tif ( !oldElement ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( imageUtils.isBlockImage( oldElement ) ) {\n\t\t\t\tconst oldCaptionElement = imageCaptionUtils.getCaptionFromImageModelElement( oldElement );\n\n\t\t\t\t// If the old element was a captioned block image (the caption was visible),\n\t\t\t\t// simply save it so it can be restored.\n\t\t\t\tif ( oldCaptionElement ) {\n\t\t\t\t\tthis._saveCaption( newElement, oldCaptionElement );\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst savedOldElementCaption = this._getSavedCaption( oldElement );\n\n\t\t\t// If either:\n\t\t\t//\n\t\t\t// * the block image didn't have a visible caption,\n\t\t\t// * the block image caption was hidden (and already saved),\n\t\t\t// * the inline image was passed\n\t\t\t//\n\t\t\t// just try to \"pass\" the saved caption from the old image to the new image\n\t\t\t// so it can be retrieved in the future if the user wants it back.\n\t\t\tif ( savedOldElementCaption ) {\n\t\t\t\t// Note: Since we're writing to a WeakMap, we don't bother with removing the\n\t\t\t\t// [ oldElement, savedOldElementCaption ] pair from it.\n\t\t\t\tthis._saveCaption( newElement, savedOldElementCaption );\n\t\t\t}\n\t\t};\n\n\t\t// Presence of the commands depends on the Image(Inline|Block)Editing plugins loaded in the editor.\n\t\tif ( imageTypeInlineCommand ) {\n\t\t\tthis.listenTo<CommandExecuteEvent>( imageTypeInlineCommand, 'execute', handleImageTypeChange, { priority: 'low' } );\n\t\t}\n\n\t\tif ( imageTypeBlockCommand ) {\n\t\t\tthis.listenTo<CommandExecuteEvent>( imageTypeBlockCommand, 'execute', handleImageTypeChange, { priority: 'low' } );\n\t\t}\n\t}\n\n\t/**\n\t * Returns the saved {@link module:engine/model/element~Element#toJSON JSONified} caption\n\t * of an image model element.\n\t *\n\t * See {@link #_saveCaption}.\n\t *\n\t * @internal\n\t * @param imageModelElement The model element the caption should be returned for.\n\t * @returns The model caption element or `null` if there is none.\n\t */\n\tpublic _getSavedCaption( imageModelElement: Element ): Element | null {\n\t\tconst jsonObject = this._savedCaptionsMap.get( imageModelElement );\n\n\t\treturn jsonObject ? Element.fromJSON( jsonObject ) : null;\n\t}\n\n\t/**\n\t * Saves a {@link module:engine/model/element~Element#toJSON JSONified} caption for\n\t * an image element to allow restoring it in the future.\n\t *\n\t * A caption is saved every time it gets hidden and/or the type of an image changes. The\n\t * user should be able to restore it on demand.\n\t *\n\t * **Note**: The caption cannot be stored in the image model element attribute because,\n\t * for instance, when the model state propagates to collaborators, the attribute would get\n\t * lost (mainly because it does not convert to anything when the caption is hidden) and\n\t * the states of collaborators' models would de-synchronize causing numerous issues.\n\t *\n\t * See {@link #_getSavedCaption}.\n\t *\n\t * @internal\n\t * @param imageModelElement The model element the caption is saved for.\n\t * @param caption The caption model element to be saved.\n\t */\n\tpublic _saveCaption( imageModelElement: Element, caption: Element ): void {\n\t\tthis._savedCaptionsMap.set( imageModelElement, caption.toJSON() );\n\t}\n\n\t/**\n\t * Reconverts image caption when image alt attribute changes.\n\t * The change of alt attribute is reflected in caption's aria-label attribute.\n\t */\n\tprivate _registerCaptionReconversion(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst imageCaptionUtils: ImageCaptionUtils = editor.plugins.get( 'ImageCaptionUtils' );\n\n\t\tmodel.document.on<DocumentChangeEvent>( 'change:data', () => {\n\t\t\tconst changes = model.document.differ.getChanges();\n\n\t\t\tfor ( const change of changes as Array<DiffItemAttribute> ) {\n\t\t\t\tif ( change.attributeKey !== 'alt' ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst image = change.range.start.nodeAfter as Element;\n\n\t\t\t\tif ( imageUtils.isBlockImage( image ) ) {\n\t\t\t\t\tconst caption = imageCaptionUtils.getCaptionFromImageModelElement( image );\n\n\t\t\t\t\tif ( !caption ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\teditor.editing.reconvertItem( caption );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagecaption/imagecaptionui\n */\n\nimport { Plugin, icons } from 'ckeditor5/src/core.js';\nimport { ButtonView } from 'ckeditor5/src/ui.js';\nimport ImageCaptionUtils from './imagecaptionutils.js';\nimport type ToggleImageCaptionCommand from './toggleimagecaptioncommand.js';\n\n/**\n * The image caption UI plugin. It introduces the `'toggleImageCaption'` UI button.\n */\nexport default class ImageCaptionUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageCaptionUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageCaptionUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst editingView = editor.editing.view;\n\t\tconst imageCaptionUtils: ImageCaptionUtils = editor.plugins.get( 'ImageCaptionUtils' );\n\t\tconst t = editor.t;\n\n\t\teditor.ui.componentFactory.add( 'toggleImageCaption', locale => {\n\t\t\tconst command: ToggleImageCaptionCommand = editor.commands.get( 'toggleImageCaption' )!;\n\t\t\tconst view = new ButtonView( locale );\n\n\t\t\tview.set( {\n\t\t\t\ticon: icons.caption,\n\t\t\t\ttooltip: true,\n\t\t\t\tisToggleable: true\n\t\t\t} );\n\n\t\t\tview.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\t\t\tview.bind( 'label' ).to( command, 'value', value => value ? t( 'Toggle caption off' ) : t( 'Toggle caption on' ) );\n\n\t\t\tthis.listenTo( view, 'execute', () => {\n\t\t\t\teditor.execute( 'toggleImageCaption', { focusCaptionOnShow: true } );\n\n\t\t\t\t// Scroll to the selection and highlight the caption if the caption showed up.\n\t\t\t\tconst modelCaptionElement = imageCaptionUtils.getCaptionFromModelSelection( editor.model.document.selection );\n\n\t\t\t\tif ( modelCaptionElement ) {\n\t\t\t\t\tconst figcaptionElement = editor.editing.mapper.toViewElement( modelCaptionElement );\n\n\t\t\t\t\teditingView.scrollToTheSelection();\n\n\t\t\t\t\teditingView.change( writer => {\n\t\t\t\t\t\twriter.addClass( 'image__caption_highlighted', figcaptionElement! );\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagecaption\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageCaptionEditing from './imagecaption/imagecaptionediting.js';\nimport ImageCaptionUI from './imagecaption/imagecaptionui.js';\n\nimport '../theme/imagecaption.css';\n\n/**\n * The image caption plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-captions image caption} documentation.\n */\nexport default class ImageCaption extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageCaptionEditing, ImageCaptionUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageCaption' as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload/utils\n */\n\n/* global fetch, File */\n\nimport type { ViewElement } from 'ckeditor5/src/engine.js';\nimport { global } from 'ckeditor5/src/utils.js';\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * Creates a regular expression used to test for image files.\n *\n * ```ts\n * const imageType = createImageTypeRegExp( [ 'png', 'jpeg', 'svg+xml', 'vnd.microsoft.icon' ] );\n *\n * console.log( 'is supported image', imageType.test( file.type ) );\n * ```\n */\nexport function createImageTypeRegExp( types: Array<string> ): RegExp {\n\t// Sanitize the MIME type name which may include: \"+\", \"-\" or \".\".\n\tconst regExpSafeNames = types.map( type => type.replace( '+', '\\\\+' ) );\n\n\treturn new RegExp( `^image\\\\/(${ regExpSafeNames.join( '|' ) })$` );\n}\n\n/**\n * Creates a promise that fetches the image local source (Base64 or blob) and resolves with a `File` object.\n *\n * @param image Image whose source to fetch.\n * @returns A promise which resolves when an image source is fetched and converted to a `File` instance.\n * It resolves with a `File` object. If there were any errors during file processing, the promise will be rejected.\n */\nexport function fetchLocalImage( image: ViewElement ): Promise<File> {\n\treturn new Promise( ( resolve, reject ) => {\n\t\tconst imageSrc = image.getAttribute( 'src' )!;\n\n\t\t// Fetch works asynchronously and so does not block browser UI when processing data.\n\t\tfetch( imageSrc )\n\t\t\t.then( resource => resource.blob() )\n\t\t\t.then( blob => {\n\t\t\t\tconst mimeType = getImageMimeType( blob, imageSrc );\n\t\t\t\tconst ext = mimeType.replace( 'image/', '' );\n\t\t\t\tconst filename = `image.${ ext }`;\n\t\t\t\tconst file = new File( [ blob ], filename, { type: mimeType } );\n\n\t\t\t\tresolve( file );\n\t\t\t} )\n\t\t\t.catch( err => {\n\t\t\t\t// Fetch fails only, if it can't make a request due to a network failure or if anything prevented the request\n\t\t\t\t// from completing, i.e. the Content Security Policy rules. It is not possible to detect the exact cause of failure,\n\t\t\t\t// so we are just trying the fallback solution, if general TypeError is thrown.\n\t\t\t\treturn err && err.name === 'TypeError' ?\n\t\t\t\t\tconvertLocalImageOnCanvas( imageSrc ).then( resolve ).catch( reject ) :\n\t\t\t\t\treject( err );\n\t\t\t} );\n\t} );\n}\n\n/**\n * Checks whether a given node is an image element with a local source (Base64 or blob).\n *\n * @param node The node to check.\n */\nexport function isLocalImage( imageUtils: ImageUtils, node: ViewElement ): boolean {\n\tif ( !imageUtils.isInlineImageView( node ) || !node.getAttribute( 'src' ) ) {\n\t\treturn false;\n\t}\n\n\treturn !!node.getAttribute( 'src' )!.match( /^data:image\\/\\w+;base64,/g ) ||\n\t\t!!node.getAttribute( 'src' )!.match( /^blob:/g );\n}\n\n/**\n * Extracts an image type based on its blob representation or its source.\n * @param blob Image blob representation.\n * @param src Image `src` attribute value.\n */\nfunction getImageMimeType( blob: Blob, src: string ): string {\n\tif ( blob.type ) {\n\t\treturn blob.type;\n\t} else if ( src.match( /data:(image\\/\\w+);base64/ ) ) {\n\t\treturn src.match( /data:(image\\/\\w+);base64/ )![ 1 ].toLowerCase();\n\t} else {\n\t\t// Fallback to 'jpeg' as common extension.\n\t\treturn 'image/jpeg';\n\t}\n}\n\n/**\n * Creates a promise that converts the image local source (Base64 or blob) to a blob using canvas and resolves\n * with a `File` object.\n * @param imageSrc Image `src` attribute value.\n * @returns A promise which resolves when an image source is converted to a `File` instance.\n * It resolves with a `File` object. If there were any errors during file processing, the promise will be rejected.\n */\nfunction convertLocalImageOnCanvas( imageSrc: string ): Promise<File> {\n\treturn getBlobFromCanvas( imageSrc ).then( blob => {\n\t\tconst mimeType = getImageMimeType( blob, imageSrc );\n\t\tconst ext = mimeType.replace( 'image/', '' );\n\t\tconst filename = `image.${ ext }`;\n\n\t\treturn new File( [ blob ], filename, { type: mimeType } );\n\t} );\n}\n\n/**\n * Creates a promise that resolves with a `Blob` object converted from the image source (Base64 or blob).\n * @param imageSrc Image `src` attribute value.\n */\nfunction getBlobFromCanvas( imageSrc: string ): Promise<Blob> {\n\treturn new Promise( ( resolve, reject ) => {\n\t\tconst image = global.document.createElement( 'img' );\n\n\t\timage.addEventListener( 'load', () => {\n\t\t\tconst canvas = global.document.createElement( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst ctx = canvas.getContext( '2d' )!;\n\n\t\t\tctx.drawImage( image, 0, 0 );\n\n\t\t\tcanvas.toBlob( blob => blob ? resolve( blob ) : reject() );\n\t\t} );\n\n\t\timage.addEventListener( 'error', () => reject() );\n\n\t\timage.src = imageSrc;\n\t} );\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload/imageuploadui\n */\n\nimport type { Locale } from 'ckeditor5/src/utils.js';\nimport { Plugin, icons } from 'ckeditor5/src/core.js';\nimport { FileDialogButtonView } from 'ckeditor5/src/upload.js';\nimport { createImageTypeRegExp } from './utils.js';\nimport type UploadImageCommand from './uploadimagecommand.js';\nimport type ImageInsertUI from '../imageinsert/imageinsertui.js';\n\n/**\n * The image upload button plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload Image upload feature} documentation.\n *\n * Adds the `'uploadImage'` button to the {@link module:ui/componentfactory~ComponentFactory UI component factory}\n * and also the `imageUpload` button as an alias for backward compatibility.\n */\nexport default class ImageUploadUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageUploadUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\n\t\tconst componentCreator = ( locale: Locale ) => {\n\t\t\tconst view = new FileDialogButtonView( locale );\n\t\t\tconst command: UploadImageCommand = editor.commands.get( 'uploadImage' )!;\n\t\t\tconst imageTypes = editor.config.get( 'image.upload.types' )!;\n\t\t\tconst imageTypesRegExp = createImageTypeRegExp( imageTypes );\n\n\t\t\tview.set( {\n\t\t\t\tacceptedType: imageTypes.map( type => `image/${ type }` ).join( ',' ),\n\t\t\t\tallowMultipleFiles: true,\n\t\t\t\tlabel: t( 'Upload image from computer' ),\n\t\t\t\ticon: icons.imageUpload,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tview.bind( 'isEnabled' ).to( command );\n\n\t\t\tview.on( 'done', ( evt, files: FileList ) => {\n\t\t\t\tconst imagesToUpload = Array.from( files ).filter( file => imageTypesRegExp.test( file.type ) );\n\n\t\t\t\tif ( imagesToUpload.length ) {\n\t\t\t\t\teditor.execute( 'uploadImage', { file: imagesToUpload } );\n\n\t\t\t\t\teditor.editing.view.focus();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t};\n\n\t\t// Setup `uploadImage` button and add `imageUpload` button as an alias for backward compatibility.\n\t\teditor.ui.componentFactory.add( 'uploadImage', componentCreator );\n\t\teditor.ui.componentFactory.add( 'imageUpload', componentCreator );\n\n\t\tif ( editor.plugins.has( 'ImageInsertUI' ) ) {\n\t\t\tconst imageInsertUI: ImageInsertUI = editor.plugins.get( 'ImageInsertUI' );\n\n\t\t\timageInsertUI.registerIntegration( {\n\t\t\t\tname: 'upload',\n\t\t\t\tobservable: () => editor.commands.get( 'uploadImage' )!,\n\n\t\t\t\tbuttonViewCreator: () => {\n\t\t\t\t\tconst uploadImageButton = editor.ui.componentFactory.create( 'uploadImage' ) as FileDialogButtonView;\n\n\t\t\t\t\tuploadImageButton.bind( 'label' ).to( imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n\t\t\t\t\t\tt( 'Replace image from computer' ) :\n\t\t\t\t\t\tt( 'Upload image from computer' )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn uploadImageButton;\n\t\t\t\t},\n\n\t\t\t\tformViewCreator: () => {\n\t\t\t\t\tconst uploadImageButton = editor.ui.componentFactory.create( 'uploadImage' ) as FileDialogButtonView;\n\n\t\t\t\t\tuploadImageButton.withText = true;\n\t\t\t\t\tuploadImageButton.bind( 'label' ).to( imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n\t\t\t\t\t\tt( 'Replace from computer' ) :\n\t\t\t\t\t\tt( 'Upload from computer' )\n\t\t\t\t\t);\n\n\t\t\t\t\tuploadImageButton.on( 'execute', () => {\n\t\t\t\t\t\timageInsertUI.dropdownView!.isOpen = false;\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn uploadImageButton;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload/imageuploadprogress\n */\n\n/* globals setTimeout */\n\nimport { type Editor, Plugin } from 'ckeditor5/src/core.js';\nimport { FileRepository, type FileLoader } from 'ckeditor5/src/upload.js';\n\nimport '../../theme/imageuploadprogress.css';\nimport '../../theme/imageuploadicon.css';\nimport '../../theme/imageuploadloader.css';\nimport type { GetCallback } from 'ckeditor5/src/utils.js';\nimport type {\n\tDowncastWriter,\n\tEditingView,\n\tViewElement,\n\tViewContainerElement,\n\tViewUIElement,\n\tDowncastAttributeEvent,\n\tElement\n} from 'ckeditor5/src/engine.js';\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * The image upload progress plugin.\n * It shows a placeholder when the image is read from the disk and a progress bar while the image is uploading.\n */\nexport default class ImageUploadProgress extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageUploadProgress' as const;\n\t}\n\n\t/**\n\t * The image placeholder that is displayed before real image data can be accessed.\n\t *\n\t * For the record, this image is a 1x1 px GIF with an aspect ratio set by CSS.\n\t */\n\tprivate placeholder: string;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.placeholder = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Upload status change - update image's view according to that status.\n\t\tif ( editor.plugins.has( 'ImageBlockEditing' ) ) {\n\t\t\teditor.editing.downcastDispatcher.on<DowncastAttributeEvent>(\n\t\t\t\t'attribute:uploadStatus:imageBlock',\n\t\t\t\tthis.uploadStatusChange\n\t\t\t);\n\t\t}\n\n\t\tif ( editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\teditor.editing.downcastDispatcher.on<DowncastAttributeEvent>(\n\t\t\t\t'attribute:uploadStatus:imageInline',\n\t\t\t\tthis.uploadStatusChange\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * This method is called each time the image `uploadStatus` attribute is changed.\n\t *\n\t * @param evt An object containing information about the fired event.\n\t * @param data Additional information about the change.\n\t */\n\tprivate uploadStatusChange: GetCallback<DowncastAttributeEvent> = ( evt, data, conversionApi ) => {\n\t\tconst editor = this.editor;\n\t\tconst modelImage = data.item as Element;\n\t\tconst uploadId = modelImage.getAttribute( 'uploadId' ) as string | number;\n\n\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst fileRepository = editor.plugins.get( FileRepository );\n\t\tconst status = uploadId ? data.attributeNewValue : null;\n\t\tconst placeholder = this.placeholder;\n\t\tconst viewFigure = editor.editing.mapper.toViewElement( modelImage )! as ViewContainerElement;\n\t\tconst viewWriter = conversionApi.writer;\n\n\t\tif ( status == 'reading' ) {\n\t\t\t// Start \"appearing\" effect and show placeholder with infinite progress bar on the top\n\t\t\t// while image is read from disk.\n\t\t\t_startAppearEffect( viewFigure, viewWriter );\n\t\t\t_showPlaceholder( imageUtils, placeholder, viewFigure, viewWriter );\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Show progress bar on the top of the image when image is uploading.\n\t\tif ( status == 'uploading' ) {\n\t\t\tconst loader = fileRepository.loaders.get( uploadId );\n\n\t\t\t// Start appear effect if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n\t\t\t_startAppearEffect( viewFigure, viewWriter );\n\n\t\t\tif ( !loader ) {\n\t\t\t\t// There is no loader associated with uploadId - this means that image came from external changes.\n\t\t\t\t// In such cases we still want to show the placeholder until image is fully uploaded.\n\t\t\t\t// Show placeholder if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n\t\t\t\t_showPlaceholder( imageUtils, placeholder, viewFigure, viewWriter );\n\t\t\t} else {\n\t\t\t\t// Hide placeholder and initialize progress bar showing upload progress.\n\t\t\t\t_hidePlaceholder( viewFigure, viewWriter );\n\t\t\t\t_showProgressBar( viewFigure, viewWriter, loader, editor.editing.view );\n\t\t\t\t_displayLocalImage( imageUtils, viewFigure!, viewWriter, loader );\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( status == 'complete' && fileRepository.loaders.get( uploadId ) ) {\n\t\t\t_showCompleteIcon( viewFigure, viewWriter, editor.editing.view );\n\t\t}\n\n\t\t// Clean up.\n\t\t_hideProgressBar( viewFigure, viewWriter );\n\t\t_hidePlaceholder( viewFigure, viewWriter );\n\t\t_stopAppearEffect( viewFigure, viewWriter );\n\t};\n}\n\n/**\n * Adds ck-appear class to the image figure if one is not already applied.\n */\nfunction _startAppearEffect( viewFigure: ViewContainerElement, writer: DowncastWriter ) {\n\tif ( !viewFigure.hasClass( 'ck-appear' ) ) {\n\t\twriter.addClass( 'ck-appear', viewFigure );\n\t}\n}\n\n/**\n * Removes ck-appear class to the image figure if one is not already removed.\n */\nfunction _stopAppearEffect( viewFigure: ViewContainerElement, writer: DowncastWriter ) {\n\twriter.removeClass( 'ck-appear', viewFigure );\n}\n\n/**\n * Shows placeholder together with infinite progress bar on given image figure.\n */\nfunction _showPlaceholder( imageUtils: ImageUtils, placeholder: string, viewFigure: ViewContainerElement, writer: DowncastWriter ) {\n\tif ( !viewFigure.hasClass( 'ck-image-upload-placeholder' ) ) {\n\t\twriter.addClass( 'ck-image-upload-placeholder', viewFigure );\n\t}\n\n\tconst viewImg = imageUtils.findViewImgElement( viewFigure )!;\n\n\tif ( viewImg.getAttribute( 'src' ) !== placeholder ) {\n\t\twriter.setAttribute( 'src', placeholder, viewImg );\n\t}\n\n\tif ( !_getUIElement( viewFigure, 'placeholder' ) ) {\n\t\twriter.insert( writer.createPositionAfter( viewImg ), _createPlaceholder( writer ) );\n\t}\n}\n\n/**\n * Removes placeholder together with infinite progress bar on given image figure.\n */\nfunction _hidePlaceholder( viewFigure: ViewContainerElement, writer: DowncastWriter ) {\n\tif ( viewFigure.hasClass( 'ck-image-upload-placeholder' ) ) {\n\t\twriter.removeClass( 'ck-image-upload-placeholder', viewFigure );\n\t}\n\n\t_removeUIElement( viewFigure, writer, 'placeholder' );\n}\n\n/**\n * Shows progress bar displaying upload progress.\n * Attaches it to the file loader to update when upload percentace is changed.\n */\nfunction _showProgressBar( viewFigure: ViewContainerElement, writer: DowncastWriter, loader: FileLoader, view: EditingView ) {\n\tconst progressBar = _createProgressBar( writer );\n\twriter.insert( writer.createPositionAt( viewFigure, 'end' ), progressBar );\n\n\t// Update progress bar width when uploadedPercent is changed.\n\tloader.on( 'change:uploadedPercent', ( evt, name, value ) => {\n\t\tview.change( writer => {\n\t\t\twriter.setStyle( 'width', value + '%', progressBar );\n\t\t} );\n\t} );\n}\n\n/**\n * Hides upload progress bar.\n */\nfunction _hideProgressBar( viewFigure: ViewContainerElement, writer: DowncastWriter ) {\n\t_removeUIElement( viewFigure, writer, 'progressBar' );\n}\n\n/**\n * Shows complete icon and hides after a certain amount of time.\n */\nfunction _showCompleteIcon( viewFigure: ViewContainerElement, writer: DowncastWriter, view: EditingView ) {\n\tconst completeIcon = writer.createUIElement( 'div', { class: 'ck-image-upload-complete-icon' } );\n\n\twriter.insert( writer.createPositionAt( viewFigure, 'end' ), completeIcon );\n\n\tsetTimeout( () => {\n\t\tview.change( writer => writer.remove( writer.createRangeOn( completeIcon ) ) );\n\t}, 3000 );\n}\n\n/**\n * Create progress bar element using {@link module:engine/view/uielement~UIElement}.\n */\nfunction _createProgressBar( writer: DowncastWriter ): ViewUIElement {\n\tconst progressBar = writer.createUIElement( 'div', { class: 'ck-progress-bar' } );\n\n\twriter.setCustomProperty( 'progressBar', true, progressBar );\n\n\treturn progressBar;\n}\n\n/**\n * Create placeholder element using {@link module:engine/view/uielement~UIElement}.\n */\nfunction _createPlaceholder( writer: DowncastWriter ): ViewUIElement {\n\tconst placeholder = writer.createUIElement( 'div', { class: 'ck-upload-placeholder-loader' } );\n\n\twriter.setCustomProperty( 'placeholder', true, placeholder );\n\n\treturn placeholder;\n}\n\n/**\n * Returns {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n * Returns `undefined` if element is not found.\n */\nfunction _getUIElement( imageFigure: ViewElement, uniqueProperty: string ): ViewUIElement | undefined {\n\tfor ( const child of imageFigure.getChildren() ) {\n\t\tif ( ( child as ViewElement ).getCustomProperty( uniqueProperty ) ) {\n\t\t\treturn child as ViewUIElement;\n\t\t}\n\t}\n}\n\n/**\n * Removes {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n */\nfunction _removeUIElement( viewFigure: ViewContainerElement, writer: DowncastWriter, uniqueProperty: string ) {\n\tconst element = _getUIElement( viewFigure, uniqueProperty );\n\n\tif ( element ) {\n\t\twriter.remove( writer.createRangeOn( element ) );\n\t}\n}\n\n/**\n * Displays local data from file loader.\n */\nfunction _displayLocalImage( imageUtils: ImageUtils, viewFigure: ViewElement, writer: DowncastWriter, loader: FileLoader ) {\n\tif ( loader.data ) {\n\t\tconst viewImg = imageUtils.findViewImgElement( viewFigure )!;\n\n\t\twriter.setAttribute( 'src', loader.data, viewImg );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\nimport { FileRepository } from 'ckeditor5/src/upload.js';\nimport { Command } from 'ckeditor5/src/core.js';\nimport { toArray, type ArrayOrItem } from 'ckeditor5/src/utils.js';\nimport type { Position } from 'ckeditor5/src/engine.js';\n\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * @module image/imageupload/uploadimagecommand\n */\n\n/**\n * The upload image command.\n *\n * The command is registered by the {@link module:image/imageupload/imageuploadediting~ImageUploadEditing} plugin as `uploadImage`\n * and it is also available via aliased `imageUpload` name.\n *\n * In order to upload an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionRange} algorithm),\n * execute the command and pass the native image file instance:\n *\n * ```ts\n * this.listenTo( editor.editing.view.document, 'clipboardInput', ( evt, data ) => {\n * \t// Assuming that only images were pasted:\n * \tconst images = Array.from( data.dataTransfer.files );\n *\n * \t// Upload the first image:\n * \teditor.execute( 'uploadImage', { file: images[ 0 ] } );\n * } );\n * ```\n *\n * It is also possible to insert multiple images at once:\n *\n * ```ts\n * editor.execute( 'uploadImage', {\n * \tfile: [\n * \t\tfile1,\n * \t\tfile2\n * \t]\n * } );\n * ```\n */\nexport default class UploadImageCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst selectedElement = editor.model.document.selection.getSelectedElement()!;\n\n\t\t// TODO: This needs refactoring.\n\t\tthis.isEnabled = imageUtils.isImageAllowed() || imageUtils.isImage( selectedElement );\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Options for the executed command.\n\t * @param options.file The image file or an array of image files to upload.\n\t */\n\tpublic override execute( options: { file: ArrayOrItem<File> } ): void {\n\t\tconst files = toArray( options.file );\n\t\tconst selection = this.editor.model.document.selection;\n\t\tconst imageUtils: ImageUtils = this.editor.plugins.get( 'ImageUtils' );\n\n\t\t// In case of multiple files, each file (starting from the 2nd) will be inserted at a position that\n\t\t// follows the previous one. That will move the selection and, to stay on the safe side and make sure\n\t\t// all images inherit the same selection attributes, they are collected beforehand.\n\t\t//\n\t\t// Applying these attributes ensures, for instance, that inserting an (inline) image into a link does\n\t\t// not split that link but preserves its continuity.\n\t\t//\n\t\t// Note: Selection attributes that do not make sense for images will be filtered out by insertImage() anyway.\n\t\tconst selectionAttributes = Object.fromEntries( selection.getAttributes() );\n\n\t\tfiles.forEach( ( file, index ) => {\n\t\t\tconst selectedElement = selection.getSelectedElement();\n\n\t\t\t// Inserting of an inline image replace the selected element and make a selection on the inserted image.\n\t\t\t// Therefore inserting multiple inline images requires creating position after each element.\n\t\t\tif ( index && selectedElement && imageUtils.isImage( selectedElement ) ) {\n\t\t\t\tconst position = this.editor.model.createPositionAfter( selectedElement );\n\n\t\t\t\tthis._uploadImage( file, selectionAttributes, position );\n\t\t\t} else {\n\t\t\t\tthis._uploadImage( file, selectionAttributes );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Handles uploading single file.\n\t */\n\tprivate _uploadImage( file: File, attributes: object, position?: Position ): void {\n\t\tconst editor = this.editor;\n\t\tconst fileRepository = editor.plugins.get( FileRepository );\n\t\tconst loader = fileRepository.createLoader( file );\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\t// Do not throw when upload adapter is not set. FileRepository will log an error anyway.\n\t\tif ( !loader ) {\n\t\t\treturn;\n\t\t}\n\n\t\timageUtils.insertImage( { ...attributes, uploadId: loader.id }, position );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload/imageuploadediting\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\n\nimport {\n\tUpcastWriter,\n\ttype Element,\n\ttype Item,\n\ttype Writer,\n\ttype DataTransfer,\n\ttype ViewElement,\n\ttype NodeAttributes\n} from 'ckeditor5/src/engine.js';\n\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport { ClipboardPipeline, type ViewDocumentClipboardInputEvent } from 'ckeditor5/src/clipboard.js';\nimport { FileRepository, type UploadResponse, type FileLoader } from 'ckeditor5/src/upload.js';\nimport { env } from 'ckeditor5/src/utils.js';\n\nimport ImageUtils from '../imageutils.js';\nimport UploadImageCommand from './uploadimagecommand.js';\nimport { fetchLocalImage, isLocalImage } from '../../src/imageupload/utils.js';\nimport { createImageTypeRegExp } from './utils.js';\n\n/**\n * The editing part of the image upload feature. It registers the `'uploadImage'` command\n * and the `imageUpload` command as an aliased name.\n *\n * When an image is uploaded, it fires the {@link ~ImageUploadEditing#event:uploadComplete `uploadComplete`} event\n * that allows adding custom attributes to the {@link module:engine/model/element~Element image element}.\n */\nexport default class ImageUploadEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FileRepository, Notification, ClipboardPipeline, ImageUtils ] as const;\n\t}\n\n\tpublic static get pluginName() {\n\t\treturn 'ImageUploadEditing' as const;\n\t}\n\n\t/**\n\t * An internal mapping of {@link module:upload/filerepository~FileLoader#id file loader UIDs} and\n\t * model elements during the upload.\n\t *\n\t * Model element of the uploaded image can change, for instance, when {@link module:image/image/imagetypecommand~ImageTypeCommand}\n\t * is executed as a result of adding caption or changing image style. As a result, the upload logic must keep track of the model\n\t * element (reference) and resolve the upload for the correct model element (instead of the one that landed in the `$graveyard`\n\t * after image type changed).\n\t */\n\tprivate readonly _uploadImageElements: Map<string, Element>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'image', {\n\t\t\tupload: {\n\t\t\t\ttypes: [ 'jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff' ]\n\t\t\t}\n\t\t} );\n\n\t\tthis._uploadImageElements = new Map();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst doc = editor.model.document;\n\t\tconst conversion = editor.conversion;\n\t\tconst fileRepository = editor.plugins.get( FileRepository );\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst clipboardPipeline: ClipboardPipeline = editor.plugins.get( 'ClipboardPipeline' );\n\t\tconst imageTypes = createImageTypeRegExp( editor.config.get( 'image.upload.types' )! );\n\t\tconst uploadImageCommand = new UploadImageCommand( editor );\n\n\t\t// Register `uploadImage` command and add `imageUpload` command as an alias for backward compatibility.\n\t\teditor.commands.add( 'uploadImage', uploadImageCommand );\n\t\teditor.commands.add( 'imageUpload', uploadImageCommand );\n\n\t\t// Register upcast converter for uploadId.\n\t\tconversion.for( 'upcast' )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: 'img',\n\t\t\t\t\tkey: 'uploadId'\n\t\t\t\t},\n\t\t\t\tmodel: 'uploadId'\n\t\t\t} );\n\n\t\t// Handle pasted images.\n\t\t// For every image file, a new file loader is created and a placeholder image is\n\t\t// inserted into the content. Then, those images are uploaded once they appear in the model\n\t\t// (see Document#change listener below).\n\t\tthis.listenTo<ViewDocumentClipboardInputEvent>( editor.editing.view.document, 'clipboardInput', ( evt, data ) => {\n\t\t\t// Skip if non empty HTML data is included.\n\t\t\t// https://github.com/ckeditor/ckeditor5-upload/issues/68\n\t\t\tif ( isHtmlIncluded( data.dataTransfer ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst images = Array.from( data.dataTransfer.files ).filter( file => {\n\t\t\t\t// See https://github.com/ckeditor/ckeditor5-image/pull/254.\n\t\t\t\tif ( !file ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn imageTypes.test( file.type );\n\t\t\t} );\n\n\t\t\tif ( !images.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevt.stop();\n\n\t\t\teditor.model.change( writer => {\n\t\t\t\t// Set selection to paste target.\n\t\t\t\tif ( data.targetRanges ) {\n\t\t\t\t\twriter.setSelection( data.targetRanges.map( viewRange => editor.editing.mapper.toModelRange( viewRange ) ) );\n\t\t\t\t}\n\n\t\t\t\teditor.execute( 'uploadImage', { file: images } );\n\t\t\t} );\n\t\t} );\n\n\t\t// Handle HTML pasted with images with base64 or blob sources.\n\t\t// For every image file, a new file loader is created and a placeholder image is\n\t\t// inserted into the content. Then, those images are uploaded once they appear in the model\n\t\t// (see Document#change listener below).\n\t\tthis.listenTo( clipboardPipeline, 'inputTransformation', ( evt, data ) => {\n\t\t\tconst fetchableImages = Array.from( editor.editing.view.createRangeIn( data.content ) )\n\t\t\t\t.map( value => value.item as ViewElement )\n\t\t\t\t.filter( viewElement =>\n\t\t\t\t\tisLocalImage( imageUtils, viewElement ) &&\n\t\t\t\t\t!viewElement.getAttribute( 'uploadProcessed' ) )\n\t\t\t\t.map( viewElement => { return { promise: fetchLocalImage( viewElement ), imageElement: viewElement }; } );\n\n\t\t\tif ( !fetchableImages.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst writer = new UpcastWriter( editor.editing.view.document );\n\n\t\t\tfor ( const fetchableImage of fetchableImages ) {\n\t\t\t\t// Set attribute marking that the image was processed already.\n\t\t\t\twriter.setAttribute( 'uploadProcessed', true, fetchableImage.imageElement );\n\n\t\t\t\tconst loader = fileRepository.createLoader( fetchableImage.promise );\n\n\t\t\t\tif ( loader ) {\n\t\t\t\t\twriter.setAttribute( 'src', '', fetchableImage.imageElement );\n\t\t\t\t\twriter.setAttribute( 'uploadId', loader.id, fetchableImage.imageElement );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Prevents from the browser redirecting to the dropped image.\n\t\teditor.editing.view.document.on( 'dragover', ( evt, data ) => {\n\t\t\tdata.preventDefault();\n\t\t} );\n\n\t\t// Upload placeholder images that appeared in the model.\n\t\tdoc.on( 'change', () => {\n\t\t\t// Note: Reversing changes to start with insertions and only then handle removals. If it was the other way around,\n\t\t\t// loaders for **all** images that land in the $graveyard would abort while in fact only those that were **not** replaced\n\t\t\t// by other images should be aborted.\n\t\t\tconst changes = doc.differ.getChanges( { includeChangesInGraveyard: true } ).reverse();\n\t\t\tconst insertedImagesIds = new Set();\n\n\t\t\tfor ( const entry of changes ) {\n\t\t\t\tif ( entry.type == 'insert' && entry.name != '$text' ) {\n\t\t\t\t\tconst item = entry.position.nodeAfter!;\n\t\t\t\t\tconst isInsertedInGraveyard = entry.position.root.rootName == '$graveyard';\n\n\t\t\t\t\tfor ( const imageElement of getImagesFromChangeItem( editor, item ) ) {\n\t\t\t\t\t\t// Check if the image element still has upload id.\n\t\t\t\t\t\tconst uploadId = imageElement.getAttribute( 'uploadId' ) as string;\n\n\t\t\t\t\t\tif ( !uploadId ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check if the image is loaded on this client.\n\t\t\t\t\t\tconst loader = fileRepository.loaders.get( uploadId );\n\n\t\t\t\t\t\tif ( !loader ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( isInsertedInGraveyard ) {\n\t\t\t\t\t\t\t// If the image was inserted to the graveyard for good (**not** replaced by another image),\n\t\t\t\t\t\t\t// only then abort the loading process.\n\t\t\t\t\t\t\tif ( !insertedImagesIds.has( uploadId ) ) {\n\t\t\t\t\t\t\t\tloader.abort();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Remember the upload id of the inserted image. If it acted as a replacement for another\n\t\t\t\t\t\t\t// image (which landed in the $graveyard), the related loader will not be aborted because\n\t\t\t\t\t\t\t// this is still the same image upload.\n\t\t\t\t\t\t\tinsertedImagesIds.add( uploadId );\n\n\t\t\t\t\t\t\t// Keep the mapping between the upload ID and the image model element so the upload\n\t\t\t\t\t\t\t// can later resolve in the context of the correct model element. The model element could\n\t\t\t\t\t\t\t// change for the same upload if one image was replaced by another (e.g. image type was changed),\n\t\t\t\t\t\t\t// so this may also replace an existing mapping.\n\t\t\t\t\t\t\tthis._uploadImageElements.set( uploadId, imageElement as Element );\n\n\t\t\t\t\t\t\tif ( loader.status == 'idle' ) {\n\t\t\t\t\t\t\t\t// If the image was inserted into content and has not been loaded yet, start loading it.\n\t\t\t\t\t\t\t\tthis._readAndUpload( loader );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Set the default handler for feeding the image element with `src` and `srcset` attributes.\n\t\t// Also set the natural `width` and `height` attributes (if not already set).\n\t\tthis.on<ImageUploadCompleteEvent>( 'uploadComplete', ( evt, { imageElement, data } ) => {\n\t\t\tconst urls = data.urls ? data.urls as Record<string, unknown> : data;\n\n\t\t\tthis.editor.model.change( writer => {\n\t\t\t\twriter.setAttribute( 'src', urls.default, imageElement );\n\t\t\t\tthis._parseAndSetSrcsetAttributeOnImage( urls, imageElement, writer );\n\t\t\t\timageUtils.setImageNaturalSizeAttributes( imageElement );\n\t\t\t} );\n\t\t}, { priority: 'low' } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst schema = this.editor.model.schema;\n\n\t\t// Setup schema to allow uploadId and uploadStatus for images.\n\t\t// Wait for ImageBlockEditing or ImageInlineEditing to register their elements first,\n\t\t// that's why doing this in afterInit() instead of init().\n\t\tif ( this.editor.plugins.has( 'ImageBlockEditing' ) ) {\n\t\t\tschema.extend( 'imageBlock', {\n\t\t\t\tallowAttributes: [ 'uploadId', 'uploadStatus' ]\n\t\t\t} );\n\t\t}\n\n\t\tif ( this.editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\tschema.extend( 'imageInline', {\n\t\t\t\tallowAttributes: [ 'uploadId', 'uploadStatus' ]\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Reads and uploads an image.\n\t *\n\t * The image is read from the disk and as a Base64-encoded string it is set temporarily to\n\t * `image[src]`. When the image is successfully uploaded, the temporary data is replaced with the target\n\t * image's URL (the URL to the uploaded image on the server).\n\t */\n\tprotected _readAndUpload( loader: FileLoader ): Promise<void> {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst t = editor.locale.t;\n\t\tconst fileRepository = editor.plugins.get( FileRepository );\n\t\tconst notification = editor.plugins.get( Notification );\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst imageUploadElements = this._uploadImageElements;\n\n\t\tmodel.enqueueChange( { isUndoable: false }, writer => {\n\t\t\twriter.setAttribute( 'uploadStatus', 'reading', imageUploadElements.get( loader.id )! );\n\t\t} );\n\n\t\treturn loader.read()\n\t\t\t.then( () => {\n\t\t\t\tconst promise = loader.upload();\n\t\t\t\tconst imageElement = imageUploadElements.get( loader.id )!;\n\n\t\t\t\t// Force re–paint in Safari. Without it, the image will display with a wrong size.\n\t\t\t\t// https://github.com/ckeditor/ckeditor5/issues/1975\n\t\t\t\t/* istanbul ignore next -- @preserve */\n\t\t\t\tif ( env.isSafari ) {\n\t\t\t\t\tconst viewFigure = editor.editing.mapper.toViewElement( imageElement )!;\n\t\t\t\t\tconst viewImg = imageUtils.findViewImgElement( viewFigure )!;\n\n\t\t\t\t\teditor.editing.view.once( 'render', () => {\n\t\t\t\t\t\t// Early returns just to be safe. There might be some code ran\n\t\t\t\t\t\t// in between the outer scope and this callback.\n\t\t\t\t\t\tif ( !viewImg.parent ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst domFigure = editor.editing.view.domConverter.mapViewToDom( viewImg.parent ) as HTMLElement | undefined;\n\n\t\t\t\t\t\tif ( !domFigure ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst originalDisplay = domFigure.style.display;\n\n\t\t\t\t\t\tdomFigure.style.display = 'none';\n\n\t\t\t\t\t\t// Make sure this line will never be removed during minification for having \"no effect\".\n\t\t\t\t\t\t( domFigure as any )._ckHack = domFigure.offsetHeight;\n\n\t\t\t\t\t\tdomFigure.style.display = originalDisplay;\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tmodel.enqueueChange( { isUndoable: false }, writer => {\n\t\t\t\t\twriter.setAttribute( 'uploadStatus', 'uploading', imageElement );\n\t\t\t\t} );\n\n\t\t\t\treturn promise;\n\t\t\t} )\n\t\t\t.then( data => {\n\t\t\t\tmodel.enqueueChange( { isUndoable: false }, writer => {\n\t\t\t\t\tconst imageElement = imageUploadElements.get( loader.id )!;\n\n\t\t\t\t\twriter.setAttribute( 'uploadStatus', 'complete', imageElement );\n\n\t\t\t\t\tthis.fire<ImageUploadCompleteEvent>( 'uploadComplete', { data, imageElement } );\n\t\t\t\t} );\n\n\t\t\t\tclean();\n\t\t\t} )\n\t\t\t.catch( error => {\n\t\t\t\t// If status is not 'error' nor 'aborted' - throw error because it means that something else went wrong,\n\t\t\t\t// it might be generic error and it would be real pain to find what is going on.\n\t\t\t\tif ( loader.status !== 'error' && loader.status !== 'aborted' ) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\t// Might be 'aborted'.\n\t\t\t\tif ( loader.status == 'error' && error ) {\n\t\t\t\t\tnotification.showWarning( error, {\n\t\t\t\t\t\ttitle: t( 'Upload failed' ),\n\t\t\t\t\t\tnamespace: 'upload'\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Permanently remove image from insertion batch.\n\t\t\t\tmodel.enqueueChange( { isUndoable: false }, writer => {\n\t\t\t\t\twriter.remove( imageUploadElements.get( loader.id )! );\n\t\t\t\t} );\n\n\t\t\t\tclean();\n\t\t\t} );\n\n\t\tfunction clean() {\n\t\t\tmodel.enqueueChange( { isUndoable: false }, writer => {\n\t\t\t\tconst imageElement = imageUploadElements.get( loader.id )!;\n\n\t\t\t\twriter.removeAttribute( 'uploadId', imageElement );\n\t\t\t\twriter.removeAttribute( 'uploadStatus', imageElement );\n\n\t\t\t\timageUploadElements.delete( loader.id );\n\t\t\t} );\n\n\t\t\tfileRepository.destroyLoader( loader );\n\t\t}\n\t}\n\n\t/**\n\t * Creates the `srcset` attribute based on a given file upload response and sets it as an attribute to a specific image element.\n\t *\n\t * @param data Data object from which `srcset` will be created.\n\t * @param image The image element on which the `srcset` attribute will be set.\n\t */\n\tprotected _parseAndSetSrcsetAttributeOnImage( data: Record<string, unknown>, image: Element, writer: Writer ): void {\n\t\t// Srcset attribute for responsive images support.\n\t\tlet maxWidth = 0;\n\n\t\tconst srcsetAttribute = Object.keys( data )\n\t\t\t// Filter out keys that are not integers.\n\t\t\t.filter( key => {\n\t\t\t\tconst width = parseInt( key, 10 );\n\n\t\t\t\tif ( !isNaN( width ) ) {\n\t\t\t\t\tmaxWidth = Math.max( maxWidth, width );\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} )\n\n\t\t\t// Convert each key to srcset entry.\n\t\t\t.map( key => `${ data[ key ] } ${ key }w` )\n\n\t\t\t// Join all entries.\n\t\t\t.join( ', ' );\n\n\t\tif ( srcsetAttribute != '' ) {\n\t\t\tconst attributes: NodeAttributes = {\n\t\t\t\tsrcset: srcsetAttribute\n\t\t\t};\n\n\t\t\tif ( !image.hasAttribute( 'width' ) && !image.hasAttribute( 'height' ) ) {\n\t\t\t\tattributes.width = maxWidth;\n\t\t\t}\n\n\t\t\twriter.setAttributes( attributes, image );\n\t\t}\n\t}\n}\n\n/**\n * Returns `true` if non-empty `text/html` is included in the data transfer.\n */\nexport function isHtmlIncluded( dataTransfer: DataTransfer ): boolean {\n\treturn Array.from( dataTransfer.types ).includes( 'text/html' ) && dataTransfer.getData( 'text/html' ) !== '';\n}\n\nfunction getImagesFromChangeItem( editor: Editor, item: Item ): Array<Item> {\n\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\treturn Array.from( editor.model.createRangeOn( item ) )\n\t\t.filter( value => imageUtils.isImage( value.item as Element ) )\n\t\t.map( value => value.item );\n}\n\n/**\n * An event fired when an image is uploaded. You can hook into this event to provide\n * custom attributes to the {@link module:engine/model/element~Element image element} based on the data from\n * the server.\n *\n * ```ts\n * const imageUploadEditing = editor.plugins.get( 'ImageUploadEditing' );\n *\n * imageUploadEditing.on( 'uploadComplete', ( evt, { data, imageElement } ) => {\n * \teditor.model.change( writer => {\n * \t\twriter.setAttribute( 'someAttribute', 'foo', imageElement );\n * \t} );\n * } );\n * ```\n *\n * You can also stop the default handler that sets the `src` and `srcset` attributes\n * if you want to provide custom values for these attributes.\n *\n * ```ts\n * imageUploadEditing.on( 'uploadComplete', ( evt, { data, imageElement } ) => {\n * \tevt.stop();\n * } );\n * ```\n *\n * **Note**: This event is fired by the {@link module:image/imageupload/imageuploadediting~ImageUploadEditing} plugin.\n *\n * @eventName ~ImageUploadEditing#uploadComplete\n * @param data The `uploadComplete` event data.\n */\nexport type ImageUploadCompleteEvent = {\n\tname: 'uploadComplete';\n\targs: [ data: ImageUploadCompleteData];\n};\n\nexport type ImageUploadCompleteData = {\n\n\t/**\n\t * The data coming from the upload adapter.\n\t */\n\tdata: UploadResponse;\n\n\t/**\n\t * The model {@link module:engine/model/element~Element image element} that can be customized.\n\t */\n\timageElement: Element;\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageUploadUI from './imageupload/imageuploadui.js';\nimport ImageUploadProgress from './imageupload/imageuploadprogress.js';\nimport ImageUploadEditing from './imageupload/imageuploadediting.js';\n\n/**\n * The image upload plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload image upload feature} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins to enable image uploading:\n *\n * * {@link module:image/imageupload/imageuploadediting~ImageUploadEditing},\n * * {@link module:image/imageupload/imageuploadui~ImageUploadUI},\n * * {@link module:image/imageupload/imageuploadprogress~ImageUploadProgress}.\n */\nexport default class ImageUpload extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageUpload' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUploadEditing, ImageUploadUI, ImageUploadProgress ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageinsert/ui/imageinserturlview\n */\n\nimport { icons } from 'ckeditor5/src/core.js';\nimport {\n\tButtonView,\n\tView,\n\tViewCollection,\n\tFocusCycler,\n\tLabeledFieldView,\n\tcreateLabeledInputText,\n\ttype InputTextView,\n\ttype FocusableView\n} from 'ckeditor5/src/ui.js';\nimport { FocusTracker, KeystrokeHandler, type Locale } from 'ckeditor5/src/utils.js';\n\n/**\n * The insert an image via URL view.\n *\n * See {@link module:image/imageinsert/imageinsertviaurlui~ImageInsertViaUrlUI}.\n */\nexport default class ImageInsertUrlView extends View {\n\t/**\n\t * The URL input field view.\n\t */\n\tpublic urlInputView: LabeledFieldView<InputTextView>;\n\n\t/**\n\t * The \"insert/update\" button view.\n\t */\n\tpublic insertButtonView: ButtonView;\n\n\t/**\n\t * The \"cancel\" button view.\n\t */\n\tpublic cancelButtonView: ButtonView;\n\n\t/**\n\t * The value of the URL input.\n\t *\n\t * @observable\n\t */\n\tdeclare public imageURLInputValue: string;\n\n\t/**\n\t * Observable property used to alter labels while some image is selected and when it is not.\n\t *\n\t * @observable\n\t */\n\tdeclare public isImageSelected: boolean;\n\n\t/**\n\t * Observable property indicating whether the form interactive elements should be enabled.\n\t *\n\t * @observable\n\t */\n\tdeclare public isEnabled: boolean;\n\n\t/**\n\t * Tracks information about DOM focus in the form.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */\n\tpublic readonly focusCycler: FocusCycler;\n\n\t/**\n\t * A collection of views that can be focused in the form.\n\t */\n\tprivate readonly _focusables: ViewCollection<FocusableView>;\n\n\t/**\n\t * Creates a view for the dropdown panel of {@link module:image/imageinsert/imageinsertui~ImageInsertUI}.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.set( 'imageURLInputValue', '' );\n\t\tthis.set( 'isImageSelected', false );\n\t\tthis.set( 'isEnabled', true );\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\t\tthis._focusables = new ViewCollection();\n\n\t\tthis.focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.urlInputView = this._createUrlInputView();\n\t\tthis.insertButtonView = this._createInsertButton();\n\t\tthis.cancelButtonView = this._createCancelButton();\n\n\t\tthis._focusables.addMany( [\n\t\t\tthis.urlInputView,\n\t\t\tthis.insertButtonView,\n\t\t\tthis.cancelButtonView\n\t\t] );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-image-insert-url'\n\t\t\t\t]\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.urlInputView,\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t\t'ck-image-insert-url__action-row'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tthis.insertButtonView,\n\t\t\t\t\t\tthis.cancelButtonView\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tfor ( const view of this._focusables ) {\n\t\t\tthis.focusTracker.add( view.element! );\n\t\t}\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Creates the {@link #urlInputView}.\n\t */\n\tprivate _createUrlInputView() {\n\t\tconst locale = this.locale!;\n\t\tconst t = locale.t;\n\t\tconst urlInputView = new LabeledFieldView( locale, createLabeledInputText );\n\n\t\turlInputView.bind( 'label' ).to( this, 'isImageSelected',\n\t\t\tvalue => value ? t( 'Update image URL' ) : t( 'Insert image via URL' )\n\t\t);\n\n\t\turlInputView.bind( 'isEnabled' ).to( this );\n\n\t\turlInputView.fieldView.placeholder = 'https://example.com/image.png';\n\n\t\turlInputView.fieldView.bind( 'value' ).to( this, 'imageURLInputValue', ( value: string ) => value || '' );\n\t\turlInputView.fieldView.on( 'input', () => {\n\t\t\tthis.imageURLInputValue = urlInputView.fieldView.element!.value.trim();\n\t\t} );\n\n\t\treturn urlInputView;\n\t}\n\n\t/**\n\t * Creates the {@link #insertButtonView}.\n\t */\n\tprivate _createInsertButton(): ButtonView {\n\t\tconst locale = this.locale!;\n\t\tconst t = locale.t;\n\t\tconst insertButtonView = new ButtonView( locale );\n\n\t\tinsertButtonView.set( {\n\t\t\ticon: icons.check,\n\t\t\tclass: 'ck-button-save',\n\t\t\ttype: 'submit',\n\t\t\twithText: true\n\t\t} );\n\n\t\tinsertButtonView.bind( 'label' ).to( this, 'isImageSelected', value => value ? t( 'Update' ) : t( 'Insert' ) );\n\t\tinsertButtonView.bind( 'isEnabled' ).to( this, 'imageURLInputValue', this, 'isEnabled',\n\t\t\t( ...values ) => values.every( value => value )\n\t\t);\n\n\t\tinsertButtonView.delegate( 'execute' ).to( this, 'submit' );\n\n\t\treturn insertButtonView;\n\t}\n\n\t/**\n\t * Creates the {@link #cancelButtonView}.\n\t */\n\tprivate _createCancelButton(): ButtonView {\n\t\tconst locale = this.locale!;\n\t\tconst t = locale.t;\n\t\tconst cancelButtonView = new ButtonView( locale );\n\n\t\tcancelButtonView.set( {\n\t\t\tlabel: t( 'Cancel' ),\n\t\t\ticon: icons.cancel,\n\t\t\tclass: 'ck-button-cancel',\n\t\t\twithText: true\n\t\t} );\n\n\t\tcancelButtonView.bind( 'isEnabled' ).to( this );\n\n\t\tcancelButtonView.delegate( 'execute' ).to( this, 'cancel' );\n\n\t\treturn cancelButtonView;\n\t}\n\n\t/**\n\t * Focuses the view.\n\t */\n\tpublic focus( direction: 1 | -1 ): void {\n\t\tif ( direction === -1 ) {\n\t\t\tthis.focusCycler.focusLast();\n\t\t} else {\n\t\t\tthis.focusCycler.focusFirst();\n\t\t}\n\t}\n}\n\n/**\n * Fired when the form view is submitted.\n *\n * @eventName ~ImageInsertUrlView#submit\n */\nexport type ImageInsertUrlViewSubmitEvent = {\n\tname: 'submit';\n\targs: [];\n};\n\n/**\n * Fired when the form view is canceled.\n *\n * @eventName ~ImageInsertUrlView#cancel\n */\nexport type ImageInsertUrlViewCancelEvent = {\n\tname: 'cancel';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageinsert/imageinsertviaurlui\n */\n\nimport { icons, Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, CollapsibleView, DropdownButtonView, type FocusableView } from 'ckeditor5/src/ui.js';\n\nimport ImageInsertUI from './imageinsertui.js';\nimport type InsertImageCommand from '../image/insertimagecommand.js';\nimport type ReplaceImageSourceCommand from '../image/replaceimagesourcecommand.js';\nimport ImageInsertUrlView, { type ImageInsertUrlViewCancelEvent, type ImageInsertUrlViewSubmitEvent } from './ui/imageinserturlview.js';\n\n/**\n * The image insert via URL plugin (UI part).\n *\n * For a detailed overview, check the {@glink features/images/images-inserting\n * Insert images via source URL} documentation.\n *\n * This plugin registers the {@link module:image/imageinsert/imageinsertui~ImageInsertUI} integration for `url`.\n */\nexport default class ImageInsertViaUrlUI extends Plugin {\n\tprivate _imageInsertUI!: ImageInsertUI;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageInsertViaUrlUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageInsertUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tthis._imageInsertUI = this.editor.plugins.get( 'ImageInsertUI' );\n\n\t\tthis._imageInsertUI.registerIntegration( {\n\t\t\tname: 'url',\n\t\t\tobservable: () => this.editor.commands.get( 'insertImage' )!,\n\t\t\trequiresForm: true,\n\t\t\tbuttonViewCreator: isOnlyOne => this._createInsertUrlButton( isOnlyOne ),\n\t\t\tformViewCreator: isOnlyOne => this._createInsertUrlView( isOnlyOne )\n\t\t} );\n\t}\n\n\t/**\n\t * Creates the view displayed in the dropdown.\n\t */\n\tprivate _createInsertUrlView( isOnlyOne: boolean ): FocusableView {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst t = locale.t;\n\n\t\tconst replaceImageSourceCommand: ReplaceImageSourceCommand = editor.commands.get( 'replaceImageSource' )!;\n\t\tconst insertImageCommand: InsertImageCommand = editor.commands.get( 'insertImage' )!;\n\n\t\tconst imageInsertUrlView = new ImageInsertUrlView( locale );\n\t\tconst collapsibleView = isOnlyOne ? null : new CollapsibleView( locale, [ imageInsertUrlView ] );\n\n\t\timageInsertUrlView.bind( 'isImageSelected' ).to( this._imageInsertUI );\n\t\timageInsertUrlView.bind( 'isEnabled' ).toMany( [ insertImageCommand, replaceImageSourceCommand ], 'isEnabled', ( ...isEnabled ) => (\n\t\t\tisEnabled.some( isCommandEnabled => isCommandEnabled )\n\t\t) );\n\n\t\t// Set initial value because integrations are created on first dropdown open.\n\t\timageInsertUrlView.imageURLInputValue = replaceImageSourceCommand.value || '';\n\n\t\tthis._imageInsertUI.dropdownView!.on( 'change:isOpen', () => {\n\t\t\tif ( this._imageInsertUI.dropdownView!.isOpen ) {\n\t\t\t\t// Make sure that each time the panel shows up, the URL field remains in sync with the value of\n\t\t\t\t// the command. If the user typed in the input, then canceled and re-opened it without changing\n\t\t\t\t// the value of the media command (e.g. because they didn't change the selection), they would see\n\t\t\t\t// the old value instead of the actual value of the command.\n\t\t\t\timageInsertUrlView.imageURLInputValue = replaceImageSourceCommand.value || '';\n\n\t\t\t\tif ( collapsibleView ) {\n\t\t\t\t\tcollapsibleView.isCollapsed = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Note: Use the low priority to make sure the following listener starts working after the\n\t\t\t// default action of the drop-down is executed (i.e. the panel showed up). Otherwise, the\n\t\t\t// invisible form/input cannot be focused/selected.\n\t\t}, { priority: 'low' } );\n\n\t\timageInsertUrlView.on<ImageInsertUrlViewSubmitEvent>( 'submit', () => {\n\t\t\tif ( replaceImageSourceCommand.isEnabled ) {\n\t\t\t\teditor.execute( 'replaceImageSource', { source: imageInsertUrlView.imageURLInputValue } );\n\t\t\t} else {\n\t\t\t\teditor.execute( 'insertImage', { source: imageInsertUrlView.imageURLInputValue } );\n\t\t\t}\n\n\t\t\tthis._closePanel();\n\t\t} );\n\n\t\timageInsertUrlView.on<ImageInsertUrlViewCancelEvent>( 'cancel', () => this._closePanel() );\n\n\t\tif ( collapsibleView ) {\n\t\t\tcollapsibleView.set( {\n\t\t\t\tisCollapsed: true\n\t\t\t} );\n\n\t\t\tcollapsibleView.bind( 'label' ).to( this._imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n\t\t\t\tt( 'Update image URL' ) :\n\t\t\t\tt( 'Insert image via URL' )\n\t\t\t);\n\n\t\t\treturn collapsibleView;\n\t\t}\n\n\t\treturn imageInsertUrlView;\n\t}\n\n\t/**\n\t * Creates the toolbar button.\n\t */\n\tprivate _createInsertUrlButton( isOnlyOne: boolean ): ButtonView {\n\t\tconst ButtonClass = isOnlyOne ? DropdownButtonView : ButtonView;\n\n\t\tconst editor = this.editor;\n\t\tconst button = new ButtonClass( editor.locale );\n\t\tconst t = editor.locale.t;\n\n\t\tbutton.set( {\n\t\t\ticon: icons.imageUrl,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbutton.bind( 'label' ).to( this._imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n\t\t\tt( 'Update image URL' ) :\n\t\t\tt( 'Insert image via URL' )\n\t\t);\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Closes the dropdown.\n\t */\n\tprivate _closePanel(): void {\n\t\tthis.editor.editing.view.focus();\n\t\tthis._imageInsertUI.dropdownView!.isOpen = false;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageinsertviaurl\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageInsertUI from './imageinsert/imageinsertui.js';\nimport ImageInsertViaUrlUI from './imageinsert/imageinsertviaurlui.js';\n\n/**\n * The image insert via URL plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-inserting\n * Insert images via source URL} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins\n * to enable image inserting via implemented integrations:\n *\n * * {@link module:image/imageinsert/imageinsertui~ImageInsertUI},\n */\nexport default class ImageInsertViaUrl extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageInsertViaUrl' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageInsertViaUrlUI, ImageInsertUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageinsert\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageUpload from './imageupload.js';\nimport ImageInsertViaUrl from './imageinsertviaurl.js';\nimport ImageInsertUI from './imageinsert/imageinsertui.js';\n\n/**\n * The image insert plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload Image upload feature}\n * and {@glink features/images/images-inserting Insert images via source URL} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins\n * to enable image uploading or inserting via implemented integrations:\n *\n * * {@link module:image/imageupload~ImageUpload}\n * * {@link module:image/imageinsert/imageinsertui~ImageInsertUI}\n */\nexport default class ImageInsert extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageInsert' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUpload, ImageInsertViaUrl, ImageInsertUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageresize/resizeimagecommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\n\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * The resize image command. Currently, it only supports the width attribute.\n */\nexport default class ResizeImageCommand extends Command {\n\t/**\n\t * Desired image width and height.\n\t */\n\tdeclare public value: null | {\n\t\twidth: string | null;\n\t\theight: string | null;\n\t};\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst element = imageUtils.getClosestSelectedImageElement( editor.model.document.selection );\n\n\t\tthis.isEnabled = !!element;\n\n\t\tif ( !element || !element.hasAttribute( 'resizedWidth' ) ) {\n\t\t\tthis.value = null;\n\t\t} else {\n\t\t\tthis.value = {\n\t\t\t\twidth: element.getAttribute( 'resizedWidth' ) as string,\n\t\t\t\theight: null\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * ```ts\n\t * // Sets the width to 50%:\n\t * editor.execute( 'resizeImage', { width: '50%' } );\n\t *\n\t * // Removes the width attribute:\n\t * editor.execute( 'resizeImage', { width: null } );\n\t * ```\n\t *\n\t * @param options\n\t * @param options.width The new width of the image.\n\t * @fires execute\n\t */\n\tpublic override execute( options: { width: string | null } ): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst imageElement = imageUtils.getClosestSelectedImageElement( model.document.selection );\n\n\t\tthis.value = {\n\t\t\twidth: options.width,\n\t\t\theight: null\n\t\t};\n\n\t\tif ( imageElement ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.setAttribute( 'resizedWidth', options.width, imageElement );\n\t\t\t\twriter.removeAttribute( 'resizedHeight', imageElement );\n\t\t\t\timageUtils.setImageNaturalSizeAttributes( imageElement );\n\t\t\t} );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageresize/imageresizeediting\n */\n\nimport type { ViewElement } from 'ckeditor5/src/engine.js';\nimport { type Editor, Plugin } from 'ckeditor5/src/core.js';\nimport ImageUtils from '../imageutils.js';\nimport ResizeImageCommand from './resizeimagecommand.js';\nimport { widthAndHeightStylesAreBothSet } from '../image/utils.js';\n\n/**\n * The image resize editing feature.\n *\n * It adds the ability to resize each image using handles or manually by\n * {@link module:image/imageresize/imageresizebuttons~ImageResizeButtons} buttons.\n */\nexport default class ImageResizeEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageResizeEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'image', {\n\t\t\tresizeUnit: '%',\n\t\t\tresizeOptions: [ {\n\t\t\t\tname: 'resizeImage:original',\n\t\t\t\tvalue: null,\n\t\t\t\ticon: 'original'\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'resizeImage:25',\n\t\t\t\tvalue: '25',\n\t\t\t\ticon: 'small'\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'resizeImage:50',\n\t\t\t\tvalue: '50',\n\t\t\t\ticon: 'medium'\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'resizeImage:75',\n\t\t\t\tvalue: '75',\n\t\t\t\ticon: 'large'\n\t\t\t} ]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst resizeImageCommand = new ResizeImageCommand( editor );\n\n\t\tthis._registerSchema();\n\t\tthis._registerConverters( 'imageBlock' );\n\t\tthis._registerConverters( 'imageInline' );\n\n\t\t// Register `resizeImage` command and add `imageResize` command as an alias for backward compatibility.\n\t\teditor.commands.add( 'resizeImage', resizeImageCommand );\n\t\teditor.commands.add( 'imageResize', resizeImageCommand );\n\t}\n\n\tprivate _registerSchema(): void {\n\t\tif ( this.editor.plugins.has( 'ImageBlockEditing' ) ) {\n\t\t\tthis.editor.model.schema.extend( 'imageBlock', { allowAttributes: [ 'resizedWidth', 'resizedHeight' ] } );\n\t\t}\n\n\t\tif ( this.editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\tthis.editor.model.schema.extend( 'imageInline', { allowAttributes: [ 'resizedWidth', 'resizedHeight' ] } );\n\t\t}\n\t}\n\n\t/**\n\t * Registers image resize converters.\n\t *\n\t * @param imageType The type of the image.\n\t */\n\tprivate _registerConverters( imageType: 'imageBlock' | 'imageInline' ) {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\t// Dedicated converter to propagate image's attribute to the img tag.\n\t\teditor.conversion.for( 'downcast' ).add( dispatcher =>\n\t\t\tdispatcher.on( `attribute:resizedWidth:${ imageType }`, ( evt, data, conversionApi ) => {\n\t\t\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst viewWriter = conversionApi.writer;\n\t\t\t\tconst viewImg = conversionApi.mapper.toViewElement( data.item );\n\n\t\t\t\tif ( data.attributeNewValue !== null ) {\n\t\t\t\t\tviewWriter.setStyle( 'width', data.attributeNewValue, viewImg );\n\t\t\t\t\tviewWriter.addClass( 'image_resized', viewImg );\n\t\t\t\t} else {\n\t\t\t\t\tviewWriter.removeStyle( 'width', viewImg );\n\t\t\t\t\tviewWriter.removeClass( 'image_resized', viewImg );\n\t\t\t\t}\n\t\t\t} )\n\t\t);\n\n\t\teditor.conversion.for( 'dataDowncast' ).attributeToAttribute( {\n\t\t\tmodel: {\n\t\t\t\tname: imageType,\n\t\t\t\tkey: 'resizedHeight'\n\t\t\t},\n\t\t\tview: modelAttributeValue => ( {\n\t\t\t\tkey: 'style',\n\t\t\t\tvalue: {\n\t\t\t\t\t'height': modelAttributeValue\n\t\t\t\t}\n\t\t\t} )\n\t\t} );\n\n\t\teditor.conversion.for( 'editingDowncast' ).add( dispatcher =>\n\t\t\tdispatcher.on( `attribute:resizedHeight:${ imageType }`, ( evt, data, conversionApi ) => {\n\t\t\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst viewWriter = conversionApi.writer;\n\t\t\t\tconst viewImg = conversionApi.mapper.toViewElement( data.item );\n\t\t\t\tconst target = imageType === 'imageInline' ? imageUtils.findViewImgElement( viewImg ) : viewImg;\n\n\t\t\t\tif ( data.attributeNewValue !== null ) {\n\t\t\t\t\tviewWriter.setStyle( 'height', data.attributeNewValue, target );\n\t\t\t\t} else {\n\t\t\t\t\tviewWriter.removeStyle( 'height', target );\n\t\t\t\t}\n\t\t\t} )\n\t\t);\n\n\t\teditor.conversion.for( 'upcast' )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: imageType === 'imageBlock' ? 'figure' : 'img',\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\twidth: /.+/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmodel: {\n\t\t\t\t\tkey: 'resizedWidth',\n\t\t\t\t\tvalue: ( viewElement: ViewElement ) => {\n\t\t\t\t\t\tif ( widthAndHeightStylesAreBothSet( viewElement ) ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn viewElement.getStyle( 'width' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\teditor.conversion.for( 'upcast' )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: imageType === 'imageBlock' ? 'figure' : 'img',\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\theight: /.+/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmodel: {\n\t\t\t\t\tkey: 'resizedHeight',\n\t\t\t\t\tvalue: ( viewElement: ViewElement ) => {\n\t\t\t\t\t\tif ( widthAndHeightStylesAreBothSet( viewElement ) ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn viewElement.getStyle( 'height' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageresize/imageresizebuttons\n */\n\nimport { Plugin, icons, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tButtonView,\n\tDropdownButtonView,\n\tViewModel,\n\tcreateDropdown,\n\taddListToDropdown,\n\ttype ListDropdownItemDefinition\n} from 'ckeditor5/src/ui.js';\nimport { CKEditorError, Collection, type Locale } from 'ckeditor5/src/utils.js';\n\nimport ImageResizeEditing from './imageresizeediting.js';\nimport type ResizeImageCommand from './resizeimagecommand.js';\nimport type { ImageResizeOption } from '../imageconfig.js';\n\nconst RESIZE_ICONS = {\n\tsmall: icons.objectSizeSmall,\n\tmedium: icons.objectSizeMedium,\n\tlarge: icons.objectSizeLarge,\n\toriginal: icons.objectSizeFull\n};\n\n/**\n * The image resize buttons plugin.\n *\n * It adds a possibility to resize images using the toolbar dropdown or individual buttons, depending on the plugin configuration.\n */\nexport default class ImageResizeButtons extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageResizeEditing ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageResizeButtons' as const;\n\t}\n\n\t/**\n\t * The resize unit.\n\t * @default '%'\n\t */\n\tprivate readonly _resizeUnit: 'px' | '%';\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._resizeUnit = editor.config.get( 'image.resizeUnit' )!;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst options = editor.config.get( 'image.resizeOptions' )!;\n\t\tconst command: ResizeImageCommand = editor.commands.get( 'resizeImage' )!;\n\n\t\tthis.bind( 'isEnabled' ).to( command );\n\n\t\tfor ( const option of options ) {\n\t\t\tthis._registerImageResizeButton( option );\n\t\t}\n\n\t\tthis._registerImageResizeDropdown( options );\n\t}\n\n\t/**\n\t * A helper function that creates a standalone button component for the plugin.\n\t *\n\t * @param resizeOption A model of the resize option.\n\t */\n\tprivate _registerImageResizeButton( option: ImageResizeOption ): void {\n\t\tconst editor = this.editor;\n\t\tconst { name, value, icon } = option;\n\t\tconst optionValueWithUnit = value ? value + this._resizeUnit : null;\n\n\t\teditor.ui.componentFactory.add( name, locale => {\n\t\t\tconst button = new ButtonView( locale );\n\t\t\tconst command: ResizeImageCommand = editor.commands.get( 'resizeImage' )!;\n\t\t\tconst labelText = this._getOptionLabelValue( option, true );\n\n\t\t\tif ( !RESIZE_ICONS[ icon as keyof typeof RESIZE_ICONS ] ) {\n\t\t\t\t/**\n\t\t\t\t * When configuring {@link module:image/imageconfig~ImageConfig#resizeOptions `config.image.resizeOptions`} for standalone\n\t\t\t\t * buttons, a valid `icon` token must be set for each option.\n\t\t\t\t *\n\t\t\t\t * See all valid options described in the\n\t\t\t\t * {@link module:image/imageconfig~ImageResizeOption plugin configuration}.\n\t\t\t\t *\n\t\t\t\t * @error imageresizebuttons-missing-icon\n\t\t\t\t * @param option Invalid image resize option.\n\t\t\t\t*/\n\t\t\t\tthrow new CKEditorError(\n\t\t\t\t\t'imageresizebuttons-missing-icon',\n\t\t\t\t\teditor,\n\t\t\t\t\toption\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbutton.set( {\n\t\t\t\t// Use the `label` property for a verbose description (because of ARIA).\n\t\t\t\tlabel: labelText,\n\t\t\t\ticon: RESIZE_ICONS[ icon as keyof typeof RESIZE_ICONS ],\n\t\t\t\ttooltip: labelText,\n\t\t\t\tisToggleable: true\n\t\t\t} );\n\n\t\t\t// Bind button to the command.\n\t\t\tbutton.bind( 'isEnabled' ).to( this );\n\t\t\tbutton.bind( 'isOn' ).to( command, 'value', getIsOnButtonCallback( optionValueWithUnit ) );\n\n\t\t\tthis.listenTo( button, 'execute', () => {\n\t\t\t\teditor.execute( 'resizeImage', { width: optionValueWithUnit } );\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\t}\n\n\t/**\n\t * A helper function that creates a dropdown component for the plugin containing all the resize options defined in\n\t * the editor configuration.\n\t *\n\t * @param options An array of configured options.\n\t */\n\tprivate _registerImageResizeDropdown( options: Array<ImageResizeOption> ): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst originalSizeOption = options.find( option => !option.value )!;\n\n\t\tconst componentCreator = ( locale: Locale ) => {\n\t\t\tconst command: ResizeImageCommand = editor.commands.get( 'resizeImage' )!;\n\t\t\tconst dropdownView = createDropdown( locale, DropdownButtonView );\n\t\t\tconst dropdownButton: typeof dropdownView.buttonView & { commandValue?: string | null } = dropdownView.buttonView;\n\t\t\tconst accessibleLabel = t( 'Resize image' );\n\n\t\t\tdropdownButton.set( {\n\t\t\t\ttooltip: accessibleLabel,\n\t\t\t\tcommandValue: originalSizeOption.value,\n\t\t\t\ticon: RESIZE_ICONS.medium,\n\t\t\t\tisToggleable: true,\n\t\t\t\tlabel: this._getOptionLabelValue( originalSizeOption ),\n\t\t\t\twithText: true,\n\t\t\t\tclass: 'ck-resize-image-button',\n\t\t\t\tariaLabel: accessibleLabel,\n\t\t\t\tariaLabelledBy: undefined\n\t\t\t} );\n\n\t\t\tdropdownButton.bind( 'label' ).to( command, 'value', commandValue => {\n\t\t\t\tif ( commandValue && commandValue.width ) {\n\t\t\t\t\treturn commandValue.width;\n\t\t\t\t} else {\n\t\t\t\t\treturn this._getOptionLabelValue( originalSizeOption );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tdropdownView.bind( 'isEnabled' ).to( this );\n\n\t\t\taddListToDropdown( dropdownView, () => this._getResizeDropdownListItemDefinitions( options, command ), {\n\t\t\t\tariaLabel: t( 'Image resize list' ),\n\t\t\t\trole: 'menu'\n\t\t\t} );\n\n\t\t\t// Execute command when an item from the dropdown is selected.\n\t\t\tthis.listenTo( dropdownView, 'execute', evt => {\n\t\t\t\teditor.execute( ( evt.source as any ).commandName, { width: ( evt.source as any ).commandValue } );\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn dropdownView;\n\t\t};\n\n\t\t// Register `resizeImage` dropdown and add `imageResize` dropdown as an alias for backward compatibility.\n\t\teditor.ui.componentFactory.add( 'resizeImage', componentCreator );\n\t\teditor.ui.componentFactory.add( 'imageResize', componentCreator );\n\t}\n\n\t/**\n\t * A helper function for creating an option label value string.\n\t *\n\t * @param option A resize option object.\n\t * @param forTooltip An optional flag for creating a tooltip label.\n\t * @returns A user-defined label combined from the numeric value and the resize unit or the default label\n\t * for reset options (`Original`).\n\t */\n\tprivate _getOptionLabelValue( option: ImageResizeOption, forTooltip: boolean = false ): string {\n\t\tconst t = this.editor.t;\n\n\t\tif ( option.label ) {\n\t\t\treturn option.label;\n\t\t} else if ( forTooltip ) {\n\t\t\tif ( option.value ) {\n\t\t\t\treturn t( 'Resize image to %0', option.value + this._resizeUnit );\n\t\t\t} else {\n\t\t\t\treturn t( 'Resize image to the original size' );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( option.value ) {\n\t\t\t\treturn option.value + this._resizeUnit;\n\t\t\t} else {\n\t\t\t\treturn t( 'Original' );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * A helper function that parses the resize options and returns list item definitions ready for use in the dropdown.\n\t *\n\t * @param options The resize options.\n\t * @param command The resize image command.\n\t * @returns Dropdown item definitions.\n\t */\n\tprivate _getResizeDropdownListItemDefinitions(\n\t\toptions: Array<ImageResizeOption>,\n\t\tcommand: ResizeImageCommand\n\t): Collection<ListDropdownItemDefinition> {\n\t\tconst itemDefinitions = new Collection<ListDropdownItemDefinition>();\n\n\t\toptions.map( option => {\n\t\t\tconst optionValueWithUnit = option.value ? option.value + this._resizeUnit : null;\n\t\t\tconst definition: ListDropdownItemDefinition = {\n\t\t\t\ttype: 'button',\n\t\t\t\tmodel: new ViewModel( {\n\t\t\t\t\tcommandName: 'resizeImage',\n\t\t\t\t\tcommandValue: optionValueWithUnit,\n\t\t\t\t\tlabel: this._getOptionLabelValue( option ),\n\t\t\t\t\trole: 'menuitemradio',\n\t\t\t\t\twithText: true,\n\t\t\t\t\ticon: null\n\t\t\t\t} )\n\t\t\t};\n\n\t\t\tdefinition.model.bind( 'isOn' ).to( command, 'value', getIsOnButtonCallback( optionValueWithUnit ) );\n\n\t\t\titemDefinitions.add( definition );\n\t\t} );\n\n\t\treturn itemDefinitions;\n\t}\n}\n\n/**\n * A helper function for setting the `isOn` state of buttons in value bindings.\n */\nfunction getIsOnButtonCallback( value: string | null ): ( commandValue: unknown ) => boolean {\n\treturn ( commandValue: unknown ): boolean => {\n\t\tconst objectCommandValue = commandValue as null | { width: string | null };\n\t\tif ( value === null && objectCommandValue === value ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn objectCommandValue !== null && objectCommandValue.width === value;\n\t};\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageresize/imageresizehandles\n */\n\nimport type { Element, ViewElement } from 'ckeditor5/src/engine.js';\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { WidgetResize } from 'ckeditor5/src/widget.js';\nimport ImageUtils from '../imageutils.js';\n\nimport ImageLoadObserver, { type ImageLoadedEvent } from '../image/imageloadobserver.js';\nimport type ResizeImageCommand from './resizeimagecommand.js';\n\nconst RESIZABLE_IMAGES_CSS_SELECTOR =\n\t'figure.image.ck-widget > img,' +\n\t'figure.image.ck-widget > picture > img,' +\n\t'figure.image.ck-widget > a > img,' +\n\t'figure.image.ck-widget > a > picture > img,' +\n\t'span.image-inline.ck-widget > img,' +\n\t'span.image-inline.ck-widget > picture > img';\n\nconst RESIZED_IMAGE_CLASS = 'image_resized';\n\n/**\n * The image resize by handles feature.\n *\n * It adds the ability to resize each image using handles or manually by\n * {@link module:image/imageresize/imageresizebuttons~ImageResizeButtons} buttons.\n */\nexport default class ImageResizeHandles extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ WidgetResize, ImageUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageResizeHandles' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst command: ResizeImageCommand = this.editor.commands.get( 'resizeImage' )!;\n\t\tthis.bind( 'isEnabled' ).to( command );\n\n\t\tthis._setupResizerCreator();\n\t}\n\n\t/**\n\t * Attaches the listeners responsible for creating a resizer for each image, except for images inside the HTML embed preview.\n\t */\n\tprivate _setupResizerCreator(): void {\n\t\tconst editor = this.editor;\n\t\tconst editingView = editor.editing.view;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\teditingView.addObserver( ImageLoadObserver );\n\n\t\tthis.listenTo<ImageLoadedEvent>( editingView.document, 'imageLoaded', ( evt, domEvent ) => {\n\t\t\t// The resizer must be attached only to images loaded by the `ImageInsert`, `ImageUpload` or `LinkImage` plugins.\n\t\t\tif ( !( domEvent.target as HTMLElement ).matches( RESIZABLE_IMAGES_CSS_SELECTOR ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst domConverter = editor.editing.view.domConverter;\n\t\t\tconst imageView = domConverter.domToView( domEvent.target as HTMLElement ) as ViewElement;\n\t\t\tconst widgetView = imageUtils.getImageWidgetFromImageView( imageView )!;\n\t\t\tlet resizer = this.editor.plugins.get( WidgetResize ).getResizerByViewElement( widgetView );\n\n\t\t\tif ( resizer ) {\n\t\t\t\t// There are rare cases when the image will be triggered multiple times for the same widget, e.g. when\n\t\t\t\t// the image's source was changed after upload (https://github.com/ckeditor/ckeditor5/pull/8108#issuecomment-708302992).\n\t\t\t\tresizer.redraw();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst mapper = editor.editing.mapper;\n\t\t\tconst imageModel = mapper.toModelElement( widgetView )!;\n\n\t\t\tresizer = editor.plugins\n\t\t\t\t.get( WidgetResize )\n\t\t\t\t.attachTo( {\n\t\t\t\t\tunit: editor.config.get( 'image.resizeUnit' )!,\n\n\t\t\t\t\tmodelElement: imageModel,\n\t\t\t\t\tviewElement: widgetView,\n\t\t\t\t\teditor,\n\n\t\t\t\t\tgetHandleHost( domWidgetElement ) {\n\t\t\t\t\t\treturn domWidgetElement.querySelector( 'img' )!;\n\t\t\t\t\t},\n\t\t\t\t\tgetResizeHost() {\n\t\t\t\t\t\t// Return the model image element parent to avoid setting an inline element (<a>/<span>) as a resize host.\n\t\t\t\t\t\treturn domConverter.mapViewToDom( mapper.toViewElement( imageModel.parent as Element )! ) as HTMLElement;\n\t\t\t\t\t},\n\n\t\t\t\t\tisCentered() {\n\t\t\t\t\t\tconst imageStyle = imageModel.getAttribute( 'imageStyle' );\n\n\t\t\t\t\t\treturn imageStyle == 'alignCenter';\n\t\t\t\t\t},\n\n\t\t\t\t\tonCommit( newValue ) {\n\t\t\t\t\t\t// Get rid of the CSS class in case the command execution that follows is unsuccessful\n\t\t\t\t\t\t// (e.g. Track Changes can override it and the new dimensions will not apply). Otherwise,\n\t\t\t\t\t\t// the presence of the class and the absence of the width style will cause it to take 100%\n\t\t\t\t\t\t// of the horizontal space.\n\t\t\t\t\t\teditingView.change( writer => {\n\t\t\t\t\t\t\twriter.removeClass( RESIZED_IMAGE_CLASS, widgetView );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\teditor.execute( 'resizeImage', { width: newValue } );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\tresizer.on( 'updateSize', () => {\n\t\t\t\tif ( !widgetView.hasClass( RESIZED_IMAGE_CLASS ) ) {\n\t\t\t\t\teditingView.change( writer => {\n\t\t\t\t\t\twriter.addClass( RESIZED_IMAGE_CLASS, widgetView );\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tconst target = imageModel.name === 'imageInline' ? imageView : widgetView;\n\n\t\t\t\tif ( target.getStyle( 'height' ) ) {\n\t\t\t\t\teditingView.change( writer => {\n\t\t\t\t\t\twriter.removeStyle( 'height', target );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tresizer.bind( 'isEnabled' ).to( this );\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageresize\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageResizeButtons from './imageresize/imageresizebuttons.js';\nimport ImageResizeEditing from './imageresize/imageresizeediting.js';\nimport ImageResizeHandles from './imageresize/imageresizehandles.js';\n\nimport '../theme/imageresize.css';\n\n/**\n * The image resize plugin.\n *\n * It adds a possibility to resize each image using handles.\n */\nexport default class ImageResize extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageResizeEditing, ImageResizeHandles, ImageResizeButtons ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageResize' as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/imagestylecommand\n */\n\nimport type { Element } from 'ckeditor5/src/engine.js';\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type { ImageStyleOptionDefinition } from '../imageconfig.js';\nimport type ImageUtils from '../imageutils.js';\n\n/**\n * The image style command. It is used to apply {@link module:image/imageconfig~ImageStyleConfig#options image style option}\n * to a selected image.\n *\n * **Note**: Executing this command may change the image model element if the desired style requires an image of a different\n * type. See {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand#execute} to learn more.\n */\nexport default class ImageStyleCommand extends Command {\n\t/**\n\t * An object containing names of default style options for the inline and block images.\n\t * If there is no default style option for the given image type in the configuration,\n\t * the name will be `false`.\n\t */\n\tprivate _defaultStyles: Record<string, string | false>;\n\n\t/**\n\t * The styles handled by this command.\n\t */\n\tprivate _styles: Map<string, ImageStyleOptionDefinition>;\n\n\t/**\n\t * Creates an instance of the image style command. When executed, the command applies one of\n\t * {@link module:image/imageconfig~ImageStyleConfig#options style options} to the currently selected image.\n\t *\n\t * @param editor The editor instance.\n\t * @param styles The style options that this command supports.\n\t */\n\tconstructor( editor: Editor, styles: Array<ImageStyleOptionDefinition> ) {\n\t\tsuper( editor );\n\n\t\tthis._defaultStyles = {\n\t\t\timageBlock: false,\n\t\t\timageInline: false\n\t\t};\n\n\t\tthis._styles = new Map( styles.map( style => {\n\t\t\tif ( style.isDefault ) {\n\t\t\t\tfor ( const modelElementName of style.modelElements ) {\n\t\t\t\t\tthis._defaultStyles[ modelElementName ] = style.name;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn [ style.name, style ];\n\t\t} ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\t\tconst element = imageUtils.getClosestSelectedImageElement( this.editor.model.document.selection )!;\n\n\t\tthis.isEnabled = !!element;\n\n\t\tif ( !this.isEnabled ) {\n\t\t\tthis.value = false;\n\t\t} else if ( element.hasAttribute( 'imageStyle' ) ) {\n\t\t\tthis.value = element.getAttribute( 'imageStyle' );\n\t\t} else {\n\t\t\tthis.value = this._defaultStyles[ element.name ];\n\t\t}\n\t}\n\n\t/**\n\t * Executes the command and applies the style to the currently selected image:\n\t *\n\t * ```ts\n\t * editor.execute( 'imageStyle', { value: 'side' } );\n\t * ```\n\t *\n\t * **Note**: Executing this command may change the image model element if the desired style requires an image\n\t * of a different type. Learn more about {@link module:image/imageconfig~ImageStyleOptionDefinition#modelElements model element}\n\t * configuration for the style option.\n\t *\n\t * @param options.value The name of the style (as configured in {@link module:image/imageconfig~ImageStyleConfig#options}).\n\t * @param options.setImageSizes Specifies whether the image `width` and `height` attributes should be set automatically.\n\t * The default is `true`.\n\t * @fires execute\n\t */\n\tpublic override execute( options: { value?: string; setImageSizes?: boolean } = {} ): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\tmodel.change( writer => {\n\t\t\tconst requestedStyle = options.value;\n\t\t\tconst { setImageSizes = true } = options;\n\n\t\t\tlet imageElement = imageUtils.getClosestSelectedImageElement( model.document.selection )!;\n\n\t\t\t// Change the image type if a style requires it.\n\t\t\tif ( requestedStyle && this.shouldConvertImageType( requestedStyle, imageElement ) ) {\n\t\t\t\tthis.editor.execute( imageUtils.isBlockImage( imageElement ) ? 'imageTypeInline' : 'imageTypeBlock', { setImageSizes } );\n\n\t\t\t\t// Update the imageElement to the newly created image.\n\t\t\t\timageElement = imageUtils.getClosestSelectedImageElement( model.document.selection )!;\n\t\t\t}\n\n\t\t\t// Default style means that there is no `imageStyle` attribute in the model.\n\t\t\t// https://github.com/ckeditor/ckeditor5-image/issues/147\n\t\t\tif ( !requestedStyle || this._styles.get( requestedStyle )!.isDefault ) {\n\t\t\t\twriter.removeAttribute( 'imageStyle', imageElement );\n\t\t\t} else {\n\t\t\t\twriter.setAttribute( 'imageStyle', requestedStyle, imageElement );\n\t\t\t}\n\n\t\t\tif ( setImageSizes ) {\n\t\t\t\timageUtils.setImageNaturalSizeAttributes( imageElement );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns `true` if requested style change would trigger the image type change.\n\t *\n\t * @param requestedStyle The name of the style (as configured in {@link module:image/imageconfig~ImageStyleConfig#options}).\n\t * @param imageElement The image model element.\n\t */\n\tpublic shouldConvertImageType( requestedStyle: string, imageElement: Element ): boolean {\n\t\tconst supportedTypes = this._styles.get( requestedStyle )!.modelElements;\n\n\t\treturn !supportedTypes.includes( imageElement.name );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/utils\n */\n\nimport { type Editor, icons, type PluginCollection } from 'ckeditor5/src/core.js';\nimport { logWarning } from 'ckeditor5/src/utils.js';\nimport type { ImageStyleConfig, ImageStyleDropdownDefinition, ImageStyleOptionDefinition } from '../imageconfig.js';\n\nconst {\n\tobjectFullWidth,\n\tobjectInline,\n\tobjectLeft,\tobjectRight, objectCenter,\n\tobjectBlockLeft, objectBlockRight\n} = icons;\n\n/**\n * Default image style options provided by the plugin that can be referred in the {@link module:image/imageconfig~ImageConfig#styles}\n * configuration.\n *\n * There are available 5 styles focused on formatting:\n *\n * * **`'alignLeft'`** aligns the inline or block image to the left and wraps it with the text using the `image-style-align-left` class,\n * * **`'alignRight'`** aligns the inline or block image to the right and wraps it with the text using the `image-style-align-right` class,\n * * **`'alignCenter'`** centers the block image using the `image-style-align-center` class,\n * * **`'alignBlockLeft'`** aligns the block image to the left using the `image-style-block-align-left` class,\n * * **`'alignBlockRight'`** aligns the block image to the right using the `image-style-block-align-right` class,\n *\n * and 3 semantic styles:\n *\n * * **`'inline'`** is an inline image without any CSS class,\n * * **`'block'`** is a block image without any CSS class,\n * * **`'side'`** is a block image styled with the `image-style-side` CSS class.\n */\nexport const DEFAULT_OPTIONS: Record<string, ImageStyleOptionDefinition> = {\n\t// This style represents an image placed in the line of text.\n\tget inline() {\n\t\treturn {\n\t\t\tname: 'inline',\n\t\t\ttitle: 'In line',\n\t\t\ticon: objectInline,\n\t\t\tmodelElements: [ 'imageInline' ],\n\t\t\tisDefault: true\n\t\t};\n\t},\n\n\t// This style represents an image aligned to the left and wrapped with text.\n\tget alignLeft() {\n\t\treturn {\n\t\t\tname: 'alignLeft',\n\t\t\ttitle: 'Left aligned image',\n\t\t\ticon: objectLeft,\n\t\t\tmodelElements: [ 'imageBlock', 'imageInline' ],\n\t\t\tclassName: 'image-style-align-left'\n\t\t};\n\t},\n\n\t// This style represents an image aligned to the left.\n\tget alignBlockLeft() {\n\t\treturn {\n\t\t\tname: 'alignBlockLeft',\n\t\t\ttitle: 'Left aligned image',\n\t\t\ticon: objectBlockLeft,\n\t\t\tmodelElements: [ 'imageBlock' ],\n\t\t\tclassName: 'image-style-block-align-left'\n\t\t};\n\t},\n\n\t// This style represents a centered image.\n\tget alignCenter() {\n\t\treturn {\n\t\t\tname: 'alignCenter',\n\t\t\ttitle: 'Centered image',\n\t\t\ticon: objectCenter,\n\t\t\tmodelElements: [ 'imageBlock' ],\n\t\t\tclassName: 'image-style-align-center'\n\t\t};\n\t},\n\n\t// This style represents an image aligned to the right and wrapped with text.\n\tget alignRight() {\n\t\treturn {\n\t\t\tname: 'alignRight',\n\t\t\ttitle: 'Right aligned image',\n\t\t\ticon: objectRight,\n\t\t\tmodelElements: [ 'imageBlock', 'imageInline' ],\n\t\t\tclassName: 'image-style-align-right'\n\t\t};\n\t},\n\n\t// This style represents an image aligned to the right.\n\tget alignBlockRight() {\n\t\treturn {\n\t\t\tname: 'alignBlockRight',\n\t\t\ttitle: 'Right aligned image',\n\t\t\ticon: objectBlockRight,\n\t\t\tmodelElements: [ 'imageBlock' ],\n\t\t\tclassName: 'image-style-block-align-right'\n\t\t};\n\t},\n\n\t// This option is equal to the situation when no style is applied.\n\tget block() {\n\t\treturn {\n\t\t\tname: 'block',\n\t\t\ttitle: 'Centered image',\n\t\t\ticon: objectCenter,\n\t\t\tmodelElements: [ 'imageBlock' ],\n\t\t\tisDefault: true\n\t\t};\n\t},\n\n\t// This represents a side image.\n\tget side() {\n\t\treturn {\n\t\t\tname: 'side',\n\t\t\ttitle: 'Side image',\n\t\t\ticon: objectRight,\n\t\t\tmodelElements: [ 'imageBlock' ],\n\t\t\tclassName: 'image-style-side'\n\t\t};\n\t}\n};\n\n/**\n * Default image style icons provided by the plugin that can be referred in the {@link module:image/imageconfig~ImageConfig#styles}\n * configuration.\n *\n * See {@link module:image/imageconfig~ImageStyleOptionDefinition#icon} to learn more.\n *\n * There are 7 default icons available: `'full'`, `'left'`, `'inlineLeft'`, `'center'`, `'right'`, `'inlineRight'`, and `'inline'`.\n */\nexport const DEFAULT_ICONS: Record<string, string> = {\n\tfull: objectFullWidth,\n\tleft: objectBlockLeft,\n\tright: objectBlockRight,\n\tcenter: objectCenter,\n\tinlineLeft: objectLeft,\n\tinlineRight: objectRight,\n\tinline: objectInline\n};\n\n/**\n * Default drop-downs provided by the plugin that can be referred in the {@link module:image/imageconfig~ImageConfig#toolbar}\n * configuration. The drop-downs are containers for the {@link module:image/imageconfig~ImageStyleConfig#options image style options}.\n *\n * If both of the `ImageEditing` plugins are loaded, there are 2 predefined drop-downs available:\n *\n * * **`'imageStyle:wrapText'`**, which contains the `alignLeft` and `alignRight` options, that is,\n * those that wraps the text around the image,\n * * **`'imageStyle:breakText'`**, which contains the `alignBlockLeft`, `alignCenter` and `alignBlockRight` options, that is,\n * those that breaks the text around the image.\n */\nexport const DEFAULT_DROPDOWN_DEFINITIONS: Array<ImageStyleDropdownDefinition> = [ {\n\tname: 'imageStyle:wrapText',\n\ttitle: 'Wrap text',\n\tdefaultItem: 'imageStyle:alignLeft',\n\titems: [ 'imageStyle:alignLeft', 'imageStyle:alignRight' ]\n}, {\n\tname: 'imageStyle:breakText',\n\ttitle: 'Break text',\n\tdefaultItem: 'imageStyle:block',\n\titems: [ 'imageStyle:alignBlockLeft', 'imageStyle:block', 'imageStyle:alignBlockRight' ]\n} ];\n\n/**\n * Returns a list of the normalized and validated image style options.\n *\n * @param config\n * @param config.isInlinePluginLoaded\n * Determines whether the {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugin has been loaded.\n * @param config.isBlockPluginLoaded\n * Determines whether the {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`} plugin has been loaded.\n * @param config.configuredStyles\n * The image styles configuration provided in the image styles {@link module:image/imageconfig~ImageConfig#styles configuration}\n * as a default or custom value.\n * @returns\n * * Each of options contains a complete icon markup.\n * * The image style options not supported by any of the loaded plugins are filtered out.\n */\nfunction normalizeStyles( config: {\n\tisInlinePluginLoaded: boolean;\n\tisBlockPluginLoaded: boolean;\n\tconfiguredStyles: ImageStyleConfig;\n}\n): Array<ImageStyleOptionDefinition> {\n\tconst configuredStyles = config.configuredStyles.options || [];\n\n\tconst styles = configuredStyles\n\t\t.map( arrangement => normalizeDefinition( arrangement ) )\n\t\t.filter( arrangement => isValidOption( arrangement, config ) );\n\n\treturn styles;\n}\n\n/**\n * Returns the default image styles configuration depending on the loaded image editing plugins.\n *\n * @param isInlinePluginLoaded\n * Determines whether the {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugin has been loaded.\n *\n * @param isBlockPluginLoaded\n * Determines whether the {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`} plugin has been loaded.\n *\n * @returns\n * It returns an object with the lists of the image style options and groups defined as strings related to the\n * {@link module:image/imagestyle/utils#DEFAULT_OPTIONS default options}\n */\nfunction getDefaultStylesConfiguration( isBlockPluginLoaded: boolean, isInlinePluginLoaded: boolean ): ImageStyleConfig {\n\tif ( isBlockPluginLoaded && isInlinePluginLoaded ) {\n\t\treturn {\n\t\t\toptions: [\n\t\t\t\t'inline', 'alignLeft', 'alignRight',\n\t\t\t\t'alignCenter', 'alignBlockLeft', 'alignBlockRight',\n\t\t\t\t'block', 'side'\n\t\t\t]\n\t\t};\n\t} else if ( isBlockPluginLoaded ) {\n\t\treturn {\n\t\t\toptions: [ 'block', 'side' ]\n\t\t};\n\t} else if ( isInlinePluginLoaded ) {\n\t\treturn {\n\t\t\toptions: [ 'inline', 'alignLeft', 'alignRight' ]\n\t\t};\n\t}\n\n\treturn {};\n}\n\n/**\n * Returns a list of the available predefined drop-downs' definitions depending on the loaded image editing plugins.\n */\nfunction getDefaultDropdownDefinitions( pluginCollection: PluginCollection<Editor> ): Array<ImageStyleDropdownDefinition> {\n\tif ( pluginCollection.has( 'ImageBlockEditing' ) && pluginCollection.has( 'ImageInlineEditing' ) ) {\n\t\treturn [ ...DEFAULT_DROPDOWN_DEFINITIONS ];\n\t} else {\n\t\treturn [];\n\t}\n}\n\n/**\n * Normalizes an image style option or group provided in the {@link module:image/imageconfig~ImageConfig#styles}\n * and returns it in a {@link module:image/imageconfig~ImageStyleOptionDefinition}/\n */\nfunction normalizeDefinition( definition: string | Partial<ImageStyleOptionDefinition> & { name: string } ): ImageStyleOptionDefinition {\n\tif ( typeof definition === 'string' ) {\n\t\t// Just the name of the style has been passed, but none of the defaults.\n\t\tif ( !DEFAULT_OPTIONS[ definition ] ) {\n\t\t\t// Normalize the style anyway to prevent errors.\n\t\t\tdefinition = { name: definition };\n\t\t}\n\t\t// Just the name of the style has been passed and it's one of the defaults, just use it.\n\t\t// Clone the style to avoid overriding defaults.\n\t\telse {\n\t\t\tdefinition = { ...DEFAULT_OPTIONS[ definition ] };\n\t\t}\n\t} else {\n\t\t// If an object style has been passed and if the name matches one of the defaults,\n\t\t// extend it with defaults – the user wants to customize a default style.\n\t\t// Note: Don't override the user–defined style object, clone it instead.\n\t\tdefinition = extendStyle( DEFAULT_OPTIONS[ definition.name ], definition );\n\t}\n\n\t// If an icon is defined as a string and correspond with a name\n\t// in default icons, use the default icon provided by the plugin.\n\tif ( typeof definition.icon === 'string' ) {\n\t\tdefinition.icon = DEFAULT_ICONS[ definition.icon ] || definition.icon;\n\t}\n\n\treturn definition as ImageStyleOptionDefinition;\n}\n\n/**\n * Checks if the image style option is valid:\n * * if it has the modelElements fields defined and filled,\n * * if the defined modelElements are supported by any of the loaded image editing plugins.\n * It also displays a console warning these conditions are not met.\n *\n * @param option image style option\n */\nfunction isValidOption(\n\toption: ImageStyleOptionDefinition,\n\t{ isBlockPluginLoaded, isInlinePluginLoaded }: { isBlockPluginLoaded: boolean; isInlinePluginLoaded: boolean }\n): boolean {\n\tconst { modelElements, name } = option;\n\n\tif ( !modelElements || !modelElements.length || !name ) {\n\t\twarnInvalidStyle( { style: option } );\n\n\t\treturn false;\n\t} else {\n\t\tconst supportedElements = [ isBlockPluginLoaded ? 'imageBlock' : null, isInlinePluginLoaded ? 'imageInline' : null ];\n\n\t\t// Check if the option is supported by any of the loaded plugins.\n\t\tif ( !modelElements.some( elementName => supportedElements.includes( elementName ) ) ) {\n\t\t\t/**\n\t\t\t * In order to work correctly, each image style {@link module:image/imageconfig~ImageStyleOptionDefinition option}\n\t\t\t * requires specific model elements (also: types of images) to be supported by the editor.\n\t\t\t *\n\t\t\t * Model element names to which the image style option can be applied are defined in the\n\t\t\t * {@link module:image/imageconfig~ImageStyleOptionDefinition#modelElements} property of the style option\n\t\t\t * definition.\n\t\t\t *\n\t\t\t * Explore the warning in the console to find out precisely which option is not supported and which editor plugins\n\t\t\t * are missing. Make sure these plugins are loaded in your editor to get this image style option working.\n\t\t\t *\n\t\t\t * @error image-style-missing-dependency\n\t\t\t * @param {String} [option] The name of the unsupported option.\n\t\t\t * @param {String} [missingPlugins] The names of the plugins one of which has to be loaded for the particular option.\n\t\t\t */\n\t\t\tlogWarning( 'image-style-missing-dependency', {\n\t\t\t\tstyle: option,\n\t\t\t\tmissingPlugins: modelElements.map( name => name === 'imageBlock' ? 'ImageBlockEditing' : 'ImageInlineEditing' )\n\t\t\t} );\n\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Extends the default style with a style provided by the developer.\n * Note: Don't override the custom–defined style object, clone it instead.\n */\nfunction extendStyle( source: ImageStyleOptionDefinition, style: Partial<ImageStyleOptionDefinition> ): ImageStyleOptionDefinition {\n\tconst extendedStyle: Record<string, any> = { ...style };\n\n\tfor ( const prop in source ) {\n\t\tif ( !Object.prototype.hasOwnProperty.call( style, prop ) ) {\n\t\t\textendedStyle[ prop ] = source[ prop as keyof typeof source ];\n\t\t}\n\t}\n\n\treturn extendedStyle as ImageStyleOptionDefinition;\n}\n\n/**\n * Displays a console warning with the 'image-style-configuration-definition-invalid' error.\n */\nfunction warnInvalidStyle( info: object ): void {\n\t/**\n\t * The image style definition provided in the configuration is invalid.\n\t *\n\t * Please make sure the definition implements properly one of the following:\n\t *\n\t * * {@link module:image/imageconfig~ImageStyleOptionDefinition image style option definition},\n\t * * {@link module:image/imageconfig~ImageStyleDropdownDefinition image style dropdown definition}\n\t *\n\t * @error image-style-configuration-definition-invalid\n\t * @param {String} [dropdown] The name of the invalid drop-down\n\t * @param {String} [style] The name of the invalid image style option\n\t */\n\tlogWarning( 'image-style-configuration-definition-invalid', info );\n}\n\nexport default {\n\tnormalizeStyles,\n\tgetDefaultStylesConfiguration,\n\tgetDefaultDropdownDefinitions,\n\twarnInvalidStyle,\n\tDEFAULT_OPTIONS,\n\tDEFAULT_ICONS,\n\tDEFAULT_DROPDOWN_DEFINITIONS\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\nimport type { DowncastAttributeEvent, Element, UpcastElementEvent } from 'ckeditor5/src/engine.js';\nimport { first, type GetCallback } from 'ckeditor5/src/utils.js';\nimport type { ImageStyleOptionDefinition } from '../imageconfig.js';\n\n/**\n * @module image/imagestyle/converters\n */\n\n/**\n * Returns a converter for the `imageStyle` attribute. It can be used for adding, changing and removing the attribute.\n *\n * @param styles An array containing available image style options.\n * @returns A model-to-view attribute converter.\n */\nexport function modelToViewStyleAttribute( styles: Array<ImageStyleOptionDefinition> ): GetCallback<DowncastAttributeEvent> {\n\treturn ( evt, data, conversionApi ) => {\n\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if there is class name associated with given value.\n\t\tconst newStyle = getStyleDefinitionByName( data.attributeNewValue as string, styles );\n\t\tconst oldStyle = getStyleDefinitionByName( data.attributeOldValue as string, styles );\n\n\t\tconst viewElement = conversionApi.mapper.toViewElement( data.item as Element )!;\n\t\tconst viewWriter = conversionApi.writer;\n\n\t\tif ( oldStyle ) {\n\t\t\tviewWriter.removeClass( oldStyle.className!, viewElement );\n\t\t}\n\n\t\tif ( newStyle ) {\n\t\t\tviewWriter.addClass( newStyle.className!, viewElement );\n\t\t}\n\t};\n}\n\n/**\n * Returns a view-to-model converter converting image CSS classes to a proper value in the model.\n *\n * @param styles Image style options for which the converter is created.\n * @returns A view-to-model converter.\n */\nexport function viewToModelStyleAttribute( styles: Array<ImageStyleOptionDefinition> ): GetCallback<UpcastElementEvent> {\n\t// Convert only non–default styles.\n\tconst nonDefaultStyles: Record<string, Array<ImageStyleOptionDefinition>> = {\n\t\timageInline: styles.filter( style => !style.isDefault && style.modelElements.includes( 'imageInline' ) ),\n\t\timageBlock: styles.filter( style => !style.isDefault && style.modelElements.includes( 'imageBlock' ) )\n\t};\n\n\treturn ( evt, data, conversionApi ) => {\n\t\tif ( !data.modelRange ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst viewElement = data.viewItem;\n\t\tconst modelImageElement = first( data.modelRange.getItems() );\n\n\t\t// Run this converter only if an image has been found in the model.\n\t\t// In some cases it may not be found (for example if we run this on a figure with different type than image).\n\t\tif ( !modelImageElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// ...and the `imageStyle` attribute is allowed for that element, otherwise stop conversion early.\n\t\tif ( !conversionApi.schema.checkAttribute( modelImageElement, 'imageStyle' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Convert styles one by one.\n\t\tfor ( const style of nonDefaultStyles[ ( modelImageElement as Element ).name ] ) {\n\t\t\t// Try to consume class corresponding with the style.\n\t\t\tif ( conversionApi.consumable.consume( viewElement, { classes: style.className } ) ) {\n\t\t\t\t// And convert this style to model attribute.\n\t\t\t\tconversionApi.writer.setAttribute( 'imageStyle', style.name, modelImageElement );\n\t\t\t}\n\t\t}\n\t};\n}\n\n/**\n * Returns the style with a given `name` from an array of styles.\n */\nfunction getStyleDefinitionByName( name: string, styles: Array<ImageStyleOptionDefinition> ): ImageStyleOptionDefinition | undefined {\n\tfor ( const style of styles ) {\n\t\tif ( style.name === name ) {\n\t\t\treturn style;\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/imagestyleediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type { Element, UpcastElementEvent } from 'ckeditor5/src/engine.js';\n\nimport ImageStyleCommand from './imagestylecommand.js';\nimport ImageUtils from '../imageutils.js';\nimport utils from './utils.js';\nimport { viewToModelStyleAttribute, modelToViewStyleAttribute } from './converters.js';\nimport type { ImageStyleOptionDefinition } from '../imageconfig.js';\n\n/**\n * The image style engine plugin. It sets the default configuration, creates converters and registers\n * {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand ImageStyleCommand}.\n */\nexport default class ImageStyleEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageStyleEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageUtils ] as const;\n\t}\n\n\t/**\n\t * It contains a list of the normalized and validated style options.\n\t *\n\t * * Each option contains a complete icon markup.\n\t * * The style options not supported by any of the loaded image editing plugins (\n\t * {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`} or\n\t * {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`}) are filtered out.\n\t *\n\t * @internal\n\t * @readonly\n\t */\n\tpublic normalizedStyles?: Array<ImageStyleOptionDefinition>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { normalizeStyles, getDefaultStylesConfiguration } = utils;\n\t\tconst editor = this.editor;\n\t\tconst isBlockPluginLoaded = editor.plugins.has( 'ImageBlockEditing' );\n\t\tconst isInlinePluginLoaded = editor.plugins.has( 'ImageInlineEditing' );\n\n\t\teditor.config.define( 'image.styles', getDefaultStylesConfiguration( isBlockPluginLoaded, isInlinePluginLoaded ) );\n\n\t\tthis.normalizedStyles = normalizeStyles( {\n\t\t\tconfiguredStyles: editor.config.get( 'image.styles' )!,\n\t\t\tisBlockPluginLoaded,\n\t\t\tisInlinePluginLoaded\n\t\t} );\n\n\t\tthis._setupConversion( isBlockPluginLoaded, isInlinePluginLoaded );\n\t\tthis._setupPostFixer();\n\n\t\t// Register imageStyle command.\n\t\teditor.commands.add( 'imageStyle', new ImageStyleCommand( editor, this.normalizedStyles ) );\n\t}\n\n\t/**\n\t * Sets the editor conversion taking the presence of\n\t * {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`}\n\t * and {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugins into consideration.\n\t */\n\tprivate _setupConversion( isBlockPluginLoaded: boolean, isInlinePluginLoaded: boolean ): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\tconst modelToViewConverter = modelToViewStyleAttribute( this.normalizedStyles! );\n\t\tconst viewToModelConverter = viewToModelStyleAttribute( this.normalizedStyles! );\n\n\t\teditor.editing.downcastDispatcher.on( 'attribute:imageStyle', modelToViewConverter );\n\t\teditor.data.downcastDispatcher.on( 'attribute:imageStyle', modelToViewConverter );\n\n\t\t// Allow imageStyle attribute in image and imageInline.\n\t\t// We could call it 'style' but https://github.com/ckeditor/ckeditor5-engine/issues/559.\n\t\tif ( isBlockPluginLoaded ) {\n\t\t\tschema.extend( 'imageBlock', { allowAttributes: 'imageStyle' } );\n\n\t\t\t// Converter for figure element from view to model.\n\t\t\teditor.data.upcastDispatcher.on<UpcastElementEvent>( 'element:figure', viewToModelConverter, { priority: 'low' } );\n\t\t}\n\n\t\tif ( isInlinePluginLoaded ) {\n\t\t\tschema.extend( 'imageInline', { allowAttributes: 'imageStyle' } );\n\n\t\t\t// Converter for the img element from view to model.\n\t\t\teditor.data.upcastDispatcher.on( 'element:img', viewToModelConverter, { priority: 'low' } );\n\t\t}\n\t}\n\n\t/**\n\t * Registers a post-fixer that will make sure that the style attribute value is correct for a specific image type (block vs inline).\n\t */\n\tprivate _setupPostFixer(): void {\n\t\tconst editor = this.editor;\n\t\tconst document = editor.model.document;\n\n\t\tconst imageUtils = editor.plugins.get( ImageUtils );\n\t\tconst stylesMap = new Map( this.normalizedStyles!.map( style => [ style.name, style ] ) );\n\n\t\t// Make sure that style attribute is valid for the image type.\n\t\tdocument.registerPostFixer( writer => {\n\t\t\tlet changed = false;\n\n\t\t\tfor ( const change of document.differ.getChanges() ) {\n\t\t\t\tif ( change.type == 'insert' || change.type == 'attribute' && change.attributeKey == 'imageStyle' ) {\n\t\t\t\t\tlet element = change.type == 'insert' ? change.position.nodeAfter! : change.range.start.nodeAfter!;\n\n\t\t\t\t\tif ( element && element.is( 'element', 'paragraph' ) && element.childCount > 0 ) {\n\t\t\t\t\t\telement = element.getChild( 0 )!;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !imageUtils.isImage( element as Element ) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst imageStyle = element.getAttribute( 'imageStyle' ) as string | undefined;\n\n\t\t\t\t\tif ( !imageStyle ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst imageStyleDefinition = stylesMap.get( imageStyle );\n\n\t\t\t\t\tif ( !imageStyleDefinition || !imageStyleDefinition.modelElements.includes( ( element as Element ).name ) ) {\n\t\t\t\t\t\twriter.removeAttribute( 'imageStyle', element );\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn changed;\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/imagestyleui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, createDropdown, addToolbarToDropdown, SplitButtonView } from 'ckeditor5/src/ui.js';\nimport { isObject, identity } from 'lodash-es';\nimport ImageStyleEditing from './imagestyleediting.js';\nimport utils from './utils.js';\nimport type { ImageStyleDropdownDefinition, ImageStyleOptionDefinition } from '../imageconfig.js';\nimport type ImageStyleCommand from './imagestylecommand.js';\n\nimport '../../theme/imagestyle.css';\n\n/**\n * The image style UI plugin.\n *\n * It registers buttons corresponding to the {@link module:image/imageconfig~ImageConfig#styles} configuration.\n * It also registers the {@link module:image/imagestyle/utils#DEFAULT_DROPDOWN_DEFINITIONS default drop-downs} and the\n * custom drop-downs defined by the developer in the {@link module:image/imageconfig~ImageConfig#toolbar} configuration.\n */\nexport default class ImageStyleUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageStyleEditing ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageStyleUI' as const;\n\t}\n\n\t/**\n\t * Returns the default localized style titles provided by the plugin.\n\t *\n\t * The following localized titles corresponding with\n\t * {@link module:image/imagestyle/utils#DEFAULT_OPTIONS} are available:\n\t *\n\t * * `'Wrap text'`,\n\t * * `'Break text'`,\n\t * * `'In line'`,\n\t * * `'Full size image'`,\n\t * * `'Side image'`,\n\t * * `'Left aligned image'`,\n\t * * `'Centered image'`,\n\t * * `'Right aligned image'`\n\t */\n\tpublic get localizedDefaultStylesTitles(): Record<string, string> {\n\t\tconst t = this.editor.t;\n\n\t\treturn {\n\t\t\t'Wrap text': t( 'Wrap text' ),\n\t\t\t'Break text': t( 'Break text' ),\n\t\t\t'In line': t( 'In line' ),\n\t\t\t'Full size image': t( 'Full size image' ),\n\t\t\t'Side image': t( 'Side image' ),\n\t\t\t'Left aligned image': t( 'Left aligned image' ),\n\t\t\t'Centered image': t( 'Centered image' ),\n\t\t\t'Right aligned image': t( 'Right aligned image' )\n\t\t};\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst plugins = this.editor.plugins;\n\t\tconst toolbarConfig = this.editor.config.get( 'image.toolbar' ) || [];\n\t\tconst imageStyleEditing: ImageStyleEditing = plugins.get( 'ImageStyleEditing' );\n\n\t\tconst definedStyles = translateStyles(\n\t\t\timageStyleEditing.normalizedStyles!,\n\t\t\tthis.localizedDefaultStylesTitles\n\t\t);\n\n\t\tfor ( const styleConfig of definedStyles ) {\n\t\t\tthis._createButton( styleConfig );\n\t\t}\n\n\t\tconst definedDropdowns = translateStyles(\n\t\t\t[\n\t\t\t\t...toolbarConfig.filter( isObject ) as Array<ImageStyleDropdownDefinition>,\n\t\t\t\t...utils.getDefaultDropdownDefinitions( plugins )\n\t\t\t],\n\t\t\tthis.localizedDefaultStylesTitles\n\t\t);\n\n\t\tfor ( const dropdownConfig of definedDropdowns ) {\n\t\t\tthis._createDropdown( dropdownConfig, definedStyles );\n\t\t}\n\t}\n\n\t/**\n\t * Creates a dropdown and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.\n\t */\n\tprivate _createDropdown( dropdownConfig: ImageStyleDropdownDefinition, definedStyles: Array<ImageStyleOptionDefinition> ): void {\n\t\tconst factory = this.editor.ui.componentFactory;\n\n\t\tfactory.add( dropdownConfig.name, locale => {\n\t\t\tlet defaultButton: ButtonView | undefined;\n\n\t\t\tconst { defaultItem, items, title } = dropdownConfig;\n\t\t\tconst buttonViews = items\n\t\t\t\t.filter( itemName => definedStyles.find( ( { name } ) => getUIComponentName( name ) === itemName ) )\n\t\t\t\t.map( buttonName => {\n\t\t\t\t\tconst button = factory.create( buttonName ) as ButtonView;\n\n\t\t\t\t\tif ( buttonName === defaultItem ) {\n\t\t\t\t\t\tdefaultButton = button;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn button;\n\t\t\t\t} );\n\n\t\t\tif ( items.length !== buttonViews.length ) {\n\t\t\t\tutils.warnInvalidStyle( { dropdown: dropdownConfig } );\n\t\t\t}\n\n\t\t\tconst dropdownView = createDropdown( locale, SplitButtonView );\n\t\t\tconst splitButtonView = dropdownView.buttonView as SplitButtonView;\n\t\t\tconst splitButtonViewArrow = splitButtonView.arrowView;\n\n\t\t\taddToolbarToDropdown( dropdownView, buttonViews, { enableActiveItemFocusOnDropdownOpen: true } );\n\n\t\t\tsplitButtonView.set( {\n\t\t\t\tlabel: getDropdownButtonTitle( title, defaultButton!.label! ),\n\t\t\t\tclass: null,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tsplitButtonViewArrow.unbind( 'label' );\n\t\t\tsplitButtonViewArrow.set( {\n\t\t\t\tlabel: title\n\t\t\t} );\n\n\t\t\tsplitButtonView.bind( 'icon' ).toMany( buttonViews, 'isOn', ( ...areOn ) => {\n\t\t\t\tconst index = areOn.findIndex( identity );\n\n\t\t\t\treturn ( index < 0 ) ? defaultButton!.icon : buttonViews[ index ].icon;\n\t\t\t} );\n\n\t\t\tsplitButtonView.bind( 'label' ).toMany( buttonViews, 'isOn', ( ...areOn ) => {\n\t\t\t\tconst index = areOn.findIndex( identity );\n\n\t\t\t\treturn getDropdownButtonTitle( title, ( index < 0 ) ? defaultButton!.label! : buttonViews[ index ].label! );\n\t\t\t} );\n\n\t\t\tsplitButtonView.bind( 'isOn' ).toMany( buttonViews, 'isOn', ( ...areOn ) => areOn.some( identity ) );\n\n\t\t\tsplitButtonView.bind( 'class' )\n\t\t\t\t.toMany( buttonViews, 'isOn', ( ...areOn ) => areOn.some( identity ) ? 'ck-splitbutton_flatten' : undefined );\n\n\t\t\tsplitButtonView.on( 'execute', () => {\n\t\t\t\tif ( !buttonViews.some( ( { isOn } ) => isOn ) ) {\n\t\t\t\t\tdefaultButton!.fire( 'execute' );\n\t\t\t\t} else {\n\t\t\t\t\tdropdownView.isOpen = !dropdownView.isOpen;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tdropdownView.bind( 'isEnabled' )\n\t\t\t\t.toMany( buttonViews, 'isEnabled', ( ...areEnabled ) => areEnabled.some( identity ) );\n\n\t\t\t// Focus the editable after executing the command.\n\t\t\t// Overrides a default behaviour where the focus is moved to the dropdown button (#12125).\n\t\t\tthis.listenTo( dropdownView, 'execute', () => {\n\t\t\t\tthis.editor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn dropdownView;\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.\n\t */\n\tprivate _createButton( buttonConfig: ImageStyleOptionDefinition ): void {\n\t\tconst buttonName = buttonConfig.name;\n\n\t\tthis.editor.ui.componentFactory.add( getUIComponentName( buttonName ), locale => {\n\t\t\tconst command: ImageStyleCommand = this.editor.commands.get( 'imageStyle' )!;\n\t\t\tconst view = new ButtonView( locale );\n\n\t\t\tview.set( {\n\t\t\t\tlabel: buttonConfig.title,\n\t\t\t\ticon: buttonConfig.icon,\n\t\t\t\ttooltip: true,\n\t\t\t\tisToggleable: true\n\t\t\t} );\n\n\t\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\t\t\tview.bind( 'isOn' ).to( command, 'value', value => value === buttonName );\n\t\t\tview.on( 'execute', this._executeCommand.bind( this, buttonName ) );\n\n\t\t\treturn view;\n\t\t} );\n\t}\n\n\tprivate _executeCommand( name: string ): void {\n\t\tthis.editor.execute( 'imageStyle', { value: name } );\n\t\tthis.editor.editing.view.focus();\n\t}\n}\n\n/**\n * Returns the translated `title` from the passed styles array.\n */\nfunction translateStyles<T extends ImageStyleOptionDefinition | ImageStyleDropdownDefinition>(\n\tstyles: Array<T>,\n\ttitles: Record<string, string>\n): Array<T> {\n\tfor ( const style of styles ) {\n\t\t// Localize the titles of the styles, if a title corresponds with\n\t\t// a localized default provided by the plugin.\n\t\tif ( titles[ style.title! ] ) {\n\t\t\tstyle.title = titles[ style.title! ];\n\t\t}\n\t}\n\n\treturn styles;\n}\n\n/**\n * Returns the image style component name with the \"imageStyle:\" prefix.\n */\nfunction getUIComponentName( name: string ): string {\n\treturn `imageStyle:${ name }`;\n}\n\n/**\n * Returns title for the splitbutton containing the dropdown title and default action item title.\n */\nfunction getDropdownButtonTitle( dropdownTitle: string | undefined, buttonTitle: string ): string {\n\treturn ( dropdownTitle ? dropdownTitle + ': ' : '' ) + buttonTitle;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport ImageStyleEditing from './imagestyle/imagestyleediting.js';\nimport ImageStyleUI from './imagestyle/imagestyleui.js';\n\n/**\n * The image style plugin.\n *\n * For a detailed overview of the image styles feature, check the {@glink features/images/images-styles documentation}.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n * * {@link module:image/imagestyle/imagestyleediting~ImageStyleEditing},\n * * {@link module:image/imagestyle/imagestyleui~ImageStyleUI}\n *\n * It provides a default configuration, which can be extended or overwritten.\n * Read more about the {@link module:image/imageconfig~ImageConfig#styles image styles configuration}.\n */\nexport default class ImageStyle extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageStyleEditing, ImageStyleUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageStyle' as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetoolbar\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { WidgetToolbarRepository } from 'ckeditor5/src/widget.js';\n\nimport ImageUtils from './imageutils.js';\nimport type { ImageStyleDropdownDefinition } from './imageconfig.js';\n\nimport { isObject } from 'lodash-es';\n\n/**\n * The image toolbar plugin. It creates and manages the image toolbar (the toolbar displayed when an image is selected).\n *\n * For an overview, check the {@glink features/images/images-overview#image-contextual-toolbar image contextual toolbar} documentation.\n *\n * Instances of toolbar components (e.g. buttons) are created using the editor's\n * {@link module:ui/componentfactory~ComponentFactory component factory}\n * based on the {@link module:image/imageconfig~ImageConfig#toolbar `image.toolbar` configuration option}.\n *\n * The toolbar uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon}.\n */\nexport default class ImageToolbar extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ WidgetToolbarRepository, ImageUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ImageToolbar' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst widgetToolbarRepository = editor.plugins.get( WidgetToolbarRepository );\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\twidgetToolbarRepository.register( 'image', {\n\t\t\tariaLabel: t( 'Image toolbar' ),\n\t\t\titems: normalizeDeclarativeConfig( editor.config.get( 'image.toolbar' ) || [] ),\n\t\t\tgetRelatedElement: selection => imageUtils.getClosestSelectedImageWidget( selection )!\n\t\t} );\n\t}\n}\n\n/**\n * Convert the dropdown definitions to their keys registered in the ComponentFactory.\n * The registration precess should be handled by the plugin which handles the UI of a particular feature.\n */\nfunction normalizeDeclarativeConfig( config: Array<string | ImageStyleDropdownDefinition> ): Array<string> {\n\treturn config.map( item => isObject( item ) ? item.name : item );\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/pictureediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport ImageEditing from './image/imageediting.js';\nimport ImageUtils from './imageutils.js';\nimport { downcastSourcesAttribute, upcastPicture } from './image/converters.js';\nimport type { default as ImageUploadEditing, ImageUploadCompleteEvent } from './imageupload/imageuploadediting.js';\n\n/**\n * This plugin enables the [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture) element support in the editor.\n *\n * * It enables the `sources` model attribute on `imageBlock` and `imageInline` model elements\n * (brought by {@link module:image/imageblock~ImageBlock} and {@link module:image/imageinline~ImageInline}, respectively).\n * * It translates the `sources` model element to the view (also: data) structure that may look as follows:\n *\n * ```html\n * <p>Inline image using picture:\n * \t<picture>\n * \t\t<source media=\"(min-width: 800px)\" srcset=\"image-large.webp\" type=\"image/webp\">\n * \t\t<source media=\"(max-width: 800px)\" srcset=\"image-small.webp\" type=\"image/webp\">\n * \t\t<!-- Other sources as specified in the \"sources\" model attribute... -->\n * \t\t<img src=\"image.png\" alt=\"An image using picture\" />\n * \t</picture>\n * </p>\n *\n * <p>Block image using picture:</p>\n * <figure class=\"image\">\n * \t<picture>\n * \t\t<source media=\"(min-width: 800px)\" srcset=\"image-large.webp\" type=\"image/webp\">\n * \t\t<source media=\"(max-width: 800px)\" srcset=\"image-small.webp\" type=\"image/webp\">\n * \t\t<!-- Other sources as specified in the \"sources\" model attribute... -->\n * \t\t<img src=\"image.png\" alt=\"An image using picture\" />\n * \t</picture>\n * \t<figcaption>Caption of the image</figcaption>\n * </figure>\n * ```\n *\n * **Note:** The value of the `sources` {@glink framework/architecture/editing-engine#changing-the-model model attribute}\n * in both examples equals:\n *\n * ```css\n * [\n * \t{\n * \t\tmedia: '(min-width: 800px)',\n * \t\tsrcset: 'image-large.webp',\n * \t\ttype: 'image/webp'\n * \t},\n * \t{\n * \t\tmedia: '(max-width: 800px)',\n * \t\tsrcset: 'image-small.webp',\n * \t\ttype: 'image/webp'\n * \t}\n * ]\n * ```\n *\n * * It integrates with the {@link module:image/imageupload~ImageUpload} plugin so images uploaded in the editor\n * automatically render using `<picture>` if the {@glink features/images/image-upload/image-upload upload adapter}\n * supports image sources and provides neccessary data.\n *\n * @private\n */\nexport default class PictureEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ImageEditing, ImageUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'PictureEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( editor.plugins.has( 'ImageBlockEditing' ) ) {\n\t\t\teditor.model.schema.extend( 'imageBlock', {\n\t\t\t\tallowAttributes: [ 'sources' ]\n\t\t\t} );\n\t\t}\n\n\t\tif ( editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\teditor.model.schema.extend( 'imageInline', {\n\t\t\t\tallowAttributes: [ 'sources' ]\n\t\t\t} );\n\t\t}\n\n\t\tthis._setupConversion();\n\t\tthis._setupImageUploadEditingIntegration();\n\t}\n\n\t/**\n\t * Configures conversion pipelines to support upcasting and downcasting images using the `<picture>` view element\n\t * and the model `sources` attribute.\n\t */\n\tprivate _setupConversion(): void {\n\t\tconst editor = this.editor;\n\t\tconst conversion = editor.conversion;\n\t\tconst imageUtils: ImageUtils = editor.plugins.get( 'ImageUtils' );\n\n\t\tconversion.for( 'upcast' ).add( upcastPicture( imageUtils ) );\n\t\tconversion.for( 'downcast' ).add( downcastSourcesAttribute( imageUtils ) );\n\t}\n\n\t/**\n\t * Makes it possible for uploaded images to get the `sources` model attribute and the `<picture>...</picture>`\n\t * view structure out-of-the-box if relevant data is provided along the\n\t * {@link module:image/imageupload/imageuploadediting~ImageUploadEditing#event:uploadComplete} event.\n\t */\n\tprivate _setupImageUploadEditingIntegration(): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !editor.plugins.has( 'ImageUploadEditing' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageUploadEditing: ImageUploadEditing = editor.plugins.get( 'ImageUploadEditing' );\n\n\t\tthis.listenTo<ImageUploadCompleteEvent>(\n\t\t\timageUploadEditing,\n\t\t\t'uploadComplete',\n\t\t\t( evt, { imageElement, data } ) => {\n\t\t\t\tconst sources = data.sources;\n\n\t\t\t\tif ( !sources ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\twriter.setAttributes( {\n\t\t\t\t\t\tsources\n\t\t\t\t\t}, imageElement );\n\t\t\t\t} );\n\t\t\t} );\n\t}\n}\n"]}
|