list/legacylist/legacyconverters
Constants
-
module:list/legacylist/legacyconverters~cleanListA view-to-model converter for the
<ul>and<ol>view elements that cleans the input view of garbage. This is mostly to clean whitespaces from between the<li>view elements inside the view list element, however, also incorrect data can be cleared if the view was incorrect. -
module:list/legacylist/legacyconverters~cleanListItemA view-to-model converter for the
<li>elements that cleans whitespace formatting from the input view. -
module:list/legacylist/legacyconverters~modelIndentPasteFixerA fixer for pasted content that includes list items.
It fixes indentation of pasted list items so the pasted items match correctly to the context they are pasted into.
Example:
<listItem listType="bulleted" listIndent=0>A</listItem> <listItem listType="bulleted" listIndent=1>B^</listItem> // At ^ paste: <listItem listType="bulleted" listIndent=4>X</listItem> // <listItem listType="bulleted" listIndent=5>Y</listItem> <listItem listType="bulleted" listIndent=2>C</listItem>Copy codeShould become:
<listItem listType="bulleted" listIndent=0>A</listItem> <listItem listType="bulleted" listIndent=1>BX</listItem> <listItem listType="bulleted" listIndent=2>Y/listItem> <listItem listType="bulleted" listIndent=2>C</listItem>Copy code -
module:list/legacylist/legacyconverters~modelViewChangeTypeA model-to-view converter for the
typeattribute change on thelistItemmodel element.This change means that the
<li>element parent changes from<ul>to<ol>(or vice versa). This is accomplished by breaking view elements and changing their name. The nextmodelViewMergeAfterChangeTypeconverter will attempt to merge split nodes.Splitting this conversion into 2 steps makes it possible to add an additional conversion in the middle. Check
modelViewChangeTypeto see an example of it. -
module:list/legacylist/legacyconverters~modelViewMergeAfterA special model-to-view converter introduced by the list feature. This converter takes care of merging view lists after something is removed or moved from near them.
Example:
// Model: // View: <listItem>foo</listItem> <ul><li>foo</li></ul> <paragraph>xxx</paragraph> <p>xxx</p> <listItem>bar</listItem> <ul><li>bar</li></ul> // After change: // Correct view guaranteed by this converter: <listItem>foo</listItem> <ul> <listItem>bar</listItem> <li>foo</li> <li>bar</li> </ul>Copy code -
module:list/legacylist/legacyconverters~modelViewMergeAfterChangeTypeA model-to-view converter that attempts to merge nodes split by
modelViewChangeType. -
module:list/legacylist/legacyconverters~modelViewSplitOnInsertA special model-to-view converter introduced by the list feature. This converter is fired for insert change of every model item, and should be fired before the actual converter. The converter checks whether the inserted model item is a non-
listItemelement. If it is, and it is inserted inside a view list, the converter breaks the list so the model element is inserted to the view parent element corresponding to its model parent element.The converter prevents such situations:
// Model: // View: <listItem>foo</listItem> <ul> <listItem>bar</listItem> <li>foo</li> <li>bar</li> </ul> // After change: // Correct view guaranteed by this converter: <listItem>foo</listItem> <ul><li>foo</li></ul><p>xxx</p><ul><li>bar</li></ul> <paragraph>xxx</paragraph> // Instead of this wrong view state: <listItem>bar</listItem> <ul><li>foo</li><p>xxx</p><li>bar</li></ul>Copy code -
module:list/legacylist/legacyconverters~viewModelConverterA view-to-model converter that converts the
<li>view elements into thelistItemmodel elements.To set correct values of the
listTypeandlistIndentattributes the converter:- checks
<li>'s parent, - stores and increases the
conversionApi.store.indentvalue when<li>'s sub-items are converted.
- checks
Functions
-
modelChangePostFixer( model, writer ) → booleaninternalmodule:list/legacylist/legacyconverters~modelChangePostFixerPost-fixer that reacts to changes on document and fixes incorrect model states.
In the example below, there is a correct list structure. Then the middle element is removed so the list structure will become incorrect:
<listItem listType="bulleted" listIndent=0>Item 1</listItem> <listItem listType="bulleted" listIndent=1>Item 2</listItem> <--- this is removed. <listItem listType="bulleted" listIndent=2>Item 3</listItem>Copy codeThe list structure after the middle element is removed:
<listItem listType="bulleted" listIndent=0>Item 1</listItem> <listItem listType="bulleted" listIndent=2>Item 3</listItem>Copy codeShould become:
<listItem listType="bulleted" listIndent=0>Item 1</listItem> <listItem listType="bulleted" listIndent=1>Item 3</listItem> <--- note that indent got post-fixed.Copy codeParameters
model : ModelThe data model.
writer : ModelWriterThe writer to do changes with.
Returns
booleantrueif any change has been applied,falseotherwise.
-
modelToViewPosition( view ) → GetCallback<MapperModelToViewPositionEvent>internalmodule:list/legacylist/legacyconverters~modelToViewPositionReturns a callback for model position to view position mapping for
Mapper. The callback fixes positions between thelistItemelements that would be incorrectly mapped because of how list items are represented in the model and in the view.Parameters
view : EditingView
Returns
-
modelViewChangeIndent( model ) → GetCallback<DowncastAttributeEvent<ModelElement>>internalmodule:list/legacylist/legacyconverters~modelViewChangeIndentA model-to-view converter for the
listIndentattribute change on thelistItemmodel element.Parameters
model : ModelModel instance.
Returns
GetCallback<DowncastAttributeEvent<ModelElement>>Returns a conversion callback.
Related:
-
modelViewInsertion( model ) → GetCallback<DowncastInsertEvent<ModelElement>>internalmodule:list/legacylist/legacyconverters~modelViewInsertionA model-to-view converter for the
listItemmodel element insertion.It creates a
<ul><li></li><ul>(or<ol>) view structure out of alistItemmodel element, inserts it at the correct position, and merges the list with surrounding lists (if available).Parameters
model : ModelModel instance.
Returns
Related:
-
modelViewRemove( model ) → GetCallback<DowncastRemoveEvent>internalmodule:list/legacylist/legacyconverters~modelViewRemoveA model-to-view converter for the
listItemmodel element removal.Parameters
model : ModelModel instance.
Returns
GetCallback<DowncastRemoveEvent>Returns a conversion callback.
Related:
-
viewToModelPosition( model ) → GetCallback<MapperViewToModelPositionEvent>internalmodule:list/legacylist/legacyconverters~viewToModelPositionThe callback for view position to model position mapping for
Mapper. The callback fixes positions between the<li>elements that would be incorrectly mapped because of how list items are represented in the model and in the view.Parameters
model : ModelModel instance.
Returns
GetCallback<MapperViewToModelPositionEvent>Returns a conversion callback.
Related: