Returns a model range which is optimal (in terms of UX) for inserting a widget block.
For instance, if a selection is in the middle of a paragraph, the collapsed range before this paragraph
will be returned so that it is not split. If the selection is at the end of a paragraph,
the collapsed range after this paragraph will be returned.
Note: If the selection is placed in an empty block, the range in that block will be returned. If that range
is then passed to insertContent, the block will be fully replaced
by the inserted widget block.
Note: Use findOptimalInsertionRange instead of this function outside engine.
This function is only exposed to be used by findOptimalInsertionRange()
in the widget package and inside the engine package.
Parameters
selection
:
Selection | DocumentSelection
The selection based on which the insertion position should be calculated.
model
:
Model
Model instance.
place
:
'auto' | 'before' | 'after'
The place where to look for optimal insertion range.
The default auto value will determine itself the best position for insertion.
The before value will try to find a position before selection.
The after value will try to find a position after selection.
Defaults to 'auto'
Returns
Range
The optimal range.