| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /**
- * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
- /**
- * @module image/image/utils
- */
- import { toWidget, isWidget } from '@ckeditor/ckeditor5-widget/src/utils';
- import ModelElement from '@ckeditor/ckeditor5-engine/src/model/element';
- const imageSymbol = Symbol( 'isImage' );
- /**
- * Converts a given {@link module:engine/view/element~Element} to an image widget:
- * * adds a {@link module:engine/view/element~Element#_setCustomProperty custom property} allowing to recognize the image widget element,
- * * calls the {@link module:widget/utils~toWidget toWidget} function with the proper element's label creator.
- *
- * @param {module:engine/view/element~Element} viewElement
- * @param {module:engine/view/writer~Writer} writer Instance of view writer.
- * @param {String} label Element's label. It will be concatenated with the image `alt` attribute if one is present.
- * @returns {module:engine/view/element~Element}
- */
- export function toImageWidget( viewElement, writer, label ) {
- writer.setCustomProperty( imageSymbol, true, viewElement );
- return toWidget( viewElement, writer, { label: labelCreator } );
- function labelCreator() {
- const imgElement = viewElement.getChild( 0 );
- const altText = imgElement.getAttribute( 'alt' );
- return altText ? `${ altText } ${ label }` : label;
- }
- }
- /**
- * Checks if a given view element is an image widget.
- *
- * @param {module:engine/view/element~Element} viewElement
- * @returns {Boolean}
- */
- export function isImageWidget( viewElement ) {
- return !!viewElement.getCustomProperty( imageSymbol ) && isWidget( viewElement );
- }
- /**
- * Checks if an image widget is the only selected element.
- *
- * @param {module:engine/view/documentselection~DocumentSelection} viewSelection
- * @returns {Boolean}
- */
- export function isImageWidgetSelected( viewSelection ) {
- const viewElement = viewSelection.getSelectedElement();
- return !!( viewElement && isImageWidget( viewElement ) );
- }
- /**
- * Checks if the provided model element is an instance of {@link module:engine/model/element~Element Element} and its name
- * is `image`.
- *
- * @param {module:engine/model/element~Element} modelElement
- * @returns {Boolean}
- */
- export function isImage( modelElement ) {
- return modelElement instanceof ModelElement && modelElement.name == 'image';
- }
|