| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
- 'use strict';
- import Consumable from './viewconsumable.js';
- import ConversionController from './viewconversioncontroller.js';
- import EmitterMixin from '../../utils/emittermixin.js';
- import utils from '../../utils/utils.js';
- /**
- *
- * coversionDispatcher.on( 'element:p', ( data, controller ) => {
- * const paragraph = new ModelElement( 'paragraph' );
- * const schemaQuery = {
- * name: 'paragraph',
- * inside: data.context
- * };
- *
- * if ( controller.schema.checkQuery( schemaQuery ) ) {
- * if ( !controller.consumable.consume( data.input, { name: true } ) ) {
- * const context = data.context.concat( paragraph );
- * const children = controller.convertToFragment( data.input, context );
- * paragraph.appendChildren( children );
- * data.output = paragraph;
- * }
- * }
- * } );
- *
- * coversionDispatcher.on( 'element:a', ( data, controller ) => {
- * if ( controller.consumable.consume( data.input, { name: true, attributes: [ 'href' ] } ) ) {
- * for ( let item of Range.createFrom( data.output ) ) {
- * const schemaQuery = {
- * name: item.name || '$text',
- * attribute: 'link',
- * inside: data.context
- * };
- * if ( controller.schema.checkQuery( schemaQuery ) ) {
- * item.setAttribute( 'link', data.input.getAttribute( 'href' ) );
- * }
- * }
- * }
- * }
- */
- export default class ViewConversionDispatcher {
- convert( viewDocumentFragment ) {
- const consumable = Consumable.createFrom( viewDocumentFragment );
- const conversionContext = new ConversionController( this, consumable );
- return conversionContext.convert( viewDocumentFragment );
- }
- }
- utils.mix( ViewConversionDispatcher, EmitterMixin );
|