Skip to content
This repository was archived by the owner on Jun 26, 2020. It is now read-only.

Commit 731db37

Browse files
author
Piotr Jasiun
authored
Merge pull request #1314 from ckeditor/t/1294
Other: Moved `consumable` parameter to `conversionApi` parameter in downcast. Closes #1294. Closes #1261.
2 parents 809ea24 + 0010863 commit 731db37

File tree

12 files changed

+120
-101
lines changed

12 files changed

+120
-101
lines changed

src/conversion/downcast-converters.js

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -431,10 +431,9 @@ function _normalizeToAttributeConfig( view ) {
431431
*
432432
* downcastDispatcher.on(
433433
* 'insert:myElem',
434-
* insertElement( ( modelItem, consumable, conversionApi ) => {
435-
* const writer = conversionApi.writer;
436-
* const text = writer.createText( 'myText' );
437-
* const myElem = writer.createElement( 'myElem', { myAttr: 'my-' + modelItem.getAttribute( 'myAttr' ) }, text );
434+
* insertElement( ( modelItem, viewWriter ) => {
435+
* const text = viewWriter.createText( 'myText' );
436+
* const myElem = viewWriter.createElement( 'myElem', { myAttr: 'my-' + modelItem.getAttribute( 'myAttr' ) }, text );
438437
*
439438
* // Do something fancy with myElem using `modelItem` or other parameters.
440439
*
@@ -446,14 +445,14 @@ function _normalizeToAttributeConfig( view ) {
446445
* @returns {Function} Insert element event converter.
447446
*/
448447
export function insertElement( elementCreator ) {
449-
return ( evt, data, consumable, conversionApi ) => {
448+
return ( evt, data, conversionApi ) => {
450449
const viewElement = elementCreator( data.item, conversionApi.writer );
451450

452451
if ( !viewElement ) {
453452
return;
454453
}
455454

456-
if ( !consumable.consume( data.item, 'insert' ) ) {
455+
if ( !conversionApi.consumable.consume( data.item, 'insert' ) ) {
457456
return;
458457
}
459458

@@ -475,8 +474,8 @@ export function insertElement( elementCreator ) {
475474
* @returns {Function} Insert text event converter.
476475
*/
477476
export function insertText() {
478-
return ( evt, data, consumable, conversionApi ) => {
479-
if ( !consumable.consume( data.item, 'insert' ) ) {
477+
return ( evt, data, conversionApi ) => {
478+
if ( !conversionApi.consumable.consume( data.item, 'insert' ) ) {
480479
return;
481480
}
482481

@@ -530,7 +529,7 @@ export function remove() {
530529
* @returns {Function} Insert element event converter.
531530
*/
532531
export function insertUIElement( elementCreator ) {
533-
return ( evt, data, consumable, conversionApi ) => {
532+
return ( evt, data, conversionApi ) => {
534533
// Create two view elements. One will be inserted at the beginning of marker, one at the end.
535534
// If marker is collapsed, only "opening" element will be inserted.
536535
data.isOpening = true;
@@ -548,13 +547,13 @@ export function insertUIElement( elementCreator ) {
548547
// Marker that is collapsed has consumable build differently that non-collapsed one.
549548
// For more information see `addMarker` event description.
550549
// If marker's range is collapsed - check if it can be consumed.
551-
if ( markerRange.isCollapsed && !consumable.consume( markerRange, evt.name ) ) {
550+
if ( markerRange.isCollapsed && !conversionApi.consumable.consume( markerRange, evt.name ) ) {
552551
return;
553552
}
554553

555554
// If marker's range is not collapsed - consume all items inside.
556555
for ( const value of markerRange ) {
557-
if ( !consumable.consume( value.item, evt.name ) ) {
556+
if ( !conversionApi.consumable.consume( value.item, evt.name ) ) {
558557
return;
559558
}
560559
}
@@ -646,8 +645,8 @@ export function removeUIElement( elementCreator ) {
646645
export function changeAttribute( attributeCreator ) {
647646
attributeCreator = attributeCreator || ( ( value, data ) => ( { value, key: data.attributeKey } ) );
648647

649-
return ( evt, data, consumable, conversionApi ) => {
650-
if ( !consumable.consume( data.item, evt.name ) ) {
648+
return ( evt, data, conversionApi ) => {
649+
if ( !conversionApi.consumable.consume( data.item, evt.name ) ) {
651650
return;
652651
}
653652

@@ -676,7 +675,7 @@ export function changeAttribute( attributeCreator ) {
676675
}
677676

678677
// Then, if conversion was successful, set the new attribute.
679-
const newAttribute = attributeCreator( data.attributeNewValue, data, consumable, conversionApi );
678+
const newAttribute = attributeCreator( data.attributeNewValue, data );
680679

681680
if ( data.attributeNewValue !== null && newAttribute ) {
682681
if ( newAttribute.key == 'class' ) {
@@ -721,15 +720,15 @@ export function changeAttribute( attributeCreator ) {
721720
* The converter automatically consumes corresponding value from consumables list, stops the event (see
722721
* {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher}).
723722
*
724-
* modelDispatcher.on( 'attribute:bold', wrapItem( ( attributeValue, data, consumable, conversionApi ) => {
725-
* return conversionApi.writer.createAttributeElement( 'strong' );
723+
* modelDispatcher.on( 'attribute:bold', wrapItem( ( modelAttributeValue, viewWriter ) => {
724+
* return viewWriter.createAttributeElement( 'strong' );
726725
* } );
727726
*
728727
* @param {Function} elementCreator Function returning a view element, which will be used for wrapping.
729728
* @returns {Function} Set/change attribute converter.
730729
*/
731730
export function wrap( elementCreator ) {
732-
return ( evt, data, consumable, conversionApi ) => {
731+
return ( evt, data, conversionApi ) => {
733732
// Recreate current wrapping node. It will be used to unwrap view range if the attribute value has changed
734733
// or the attribute was removed.
735734
const oldViewElement = elementCreator( data.attributeOldValue, conversionApi.writer );
@@ -741,7 +740,7 @@ export function wrap( elementCreator ) {
741740
return;
742741
}
743742

744-
if ( !consumable.consume( data.item, evt.name ) ) {
743+
if ( !conversionApi.consumable.consume( data.item, evt.name ) ) {
745744
return;
746745
}
747746

@@ -783,7 +782,7 @@ export function wrap( elementCreator ) {
783782
* @return {Function}
784783
*/
785784
export function highlightText( highlightDescriptor ) {
786-
return ( evt, data, consumable, conversionApi ) => {
785+
return ( evt, data, conversionApi ) => {
787786
if ( data.markerRange.isCollapsed ) {
788787
return;
789788
}
@@ -798,7 +797,7 @@ export function highlightText( highlightDescriptor ) {
798797
return;
799798
}
800799

801-
if ( !consumable.consume( data.item, evt.name ) ) {
800+
if ( !conversionApi.consumable.consume( data.item, evt.name ) ) {
802801
return;
803802
}
804803

@@ -833,7 +832,7 @@ export function highlightText( highlightDescriptor ) {
833832
* @return {Function}
834833
*/
835834
export function highlightElement( highlightDescriptor ) {
836-
return ( evt, data, consumable, conversionApi ) => {
835+
return ( evt, data, conversionApi ) => {
837836
if ( data.markerRange.isCollapsed ) {
838837
return;
839838
}
@@ -848,19 +847,19 @@ export function highlightElement( highlightDescriptor ) {
848847
return;
849848
}
850849

851-
if ( !consumable.test( data.item, evt.name ) ) {
850+
if ( !conversionApi.consumable.test( data.item, evt.name ) ) {
852851
return;
853852
}
854853

855854
const viewElement = conversionApi.mapper.toViewElement( data.item );
856855

857856
if ( viewElement && viewElement.getCustomProperty( 'addHighlight' ) ) {
858857
// Consume element itself.
859-
consumable.consume( data.item, evt.name );
858+
conversionApi.consumable.consume( data.item, evt.name );
860859

861860
// Consume all children nodes.
862861
for ( const value of ModelRange.createIn( data.item ) ) {
863-
consumable.consume( value.item, evt.name );
862+
conversionApi.consumable.consume( value.item, evt.name );
864863
}
865864

866865
viewElement.getCustomProperty( 'addHighlight' )( viewElement, descriptor, conversionApi.writer );

src/conversion/downcast-selection-converters.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@
2121
* @returns {Function} Selection converter.
2222
*/
2323
export function convertRangeSelection() {
24-
return ( evt, data, consumable, conversionApi ) => {
24+
return ( evt, data, conversionApi ) => {
2525
const selection = data.selection;
2626

2727
if ( selection.isCollapsed ) {
2828
return;
2929
}
3030

31-
if ( !consumable.consume( selection, 'selection' ) ) {
31+
if ( !conversionApi.consumable.consume( selection, 'selection' ) ) {
3232
return;
3333
}
3434

@@ -66,14 +66,14 @@ export function convertRangeSelection() {
6666
* @returns {Function} Selection converter.
6767
*/
6868
export function convertCollapsedSelection() {
69-
return ( evt, data, consumable, conversionApi ) => {
69+
return ( evt, data, conversionApi ) => {
7070
const selection = data.selection;
7171

7272
if ( !selection.isCollapsed ) {
7373
return;
7474
}
7575

76-
if ( !consumable.consume( selection, 'selection' ) ) {
76+
if ( !conversionApi.consumable.consume( selection, 'selection' ) ) {
7777
return;
7878
}
7979

@@ -111,7 +111,7 @@ export function convertCollapsedSelection() {
111111
* @returns {Function} Selection converter.
112112
*/
113113
export function clearAttributes() {
114-
return ( evt, data, consumable, conversionApi ) => {
114+
return ( evt, data, conversionApi ) => {
115115
const viewWriter = conversionApi.writer;
116116
const viewSelection = viewWriter.document.selection;
117117

@@ -133,5 +133,5 @@ export function clearAttributes() {
133133
* {@link module:engine/model/selection~Selection model selection} conversion.
134134
*/
135135
export function clearFakeSelection() {
136-
return ( evt, data, consumable, conversionApi ) => conversionApi.writer.setFakeSelection( false );
136+
return ( evt, data, conversionApi ) => conversionApi.writer.setFakeSelection( false );
137137
}

0 commit comments

Comments
 (0)