Content Model code improvement 2: Decouple DomToModelContext and editor #1923
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I'll have a bunch of PR to improve Content Model code, and do some clean up.
The goal of this change is to decouple
roosterjs-content-model-dom
package from editor related logic, so that it can be used as a standalone library to do content transformation. To achieve this goal, I moved all editor related settings out to let editor pass in, includes:Then reorganize the parameter of
createDomToModelContext
anddomToContentModel
, now it can still work if nothing is passed in. In that case, content model will work with the following settings:All these settings are suitable for the case of
Then from
roosterjs-content-model-editor
package, it can gather all those information and pass it into Content Model.Also to simplify the types, I removed customized selection types for Content Model, but just reuse SelectionRangeEx instead when do Dom to Model conversation.