Releases: microsoft/roosterjs
Releases · microsoft/roosterjs
RoosterJs 8.58.0 and RoosterJs Content Model 0.18.0
New feature
Improvement
- Remove some unnecessary code for Firefox and IE (#2145)
Bug fix
- Improve keyboard event handling for image selection (#2156)
- Remove max-height when paste image (#2158)
Content Model improvement
- Standalone editor preparations (#2136, #2137, #2139, #2144, #2149, #2151, #2152, #2153, #2155)
- Fix Table Cell Border not set after paste a table (#2154)
- Support changing table border (#2146, #2157)
Engineering improvement
- Enable eslint rule: prefer-const, no-var
- Update readme file (#2141, #2142)
- Dependencies version bump (#2134, #2148)
- Other minor fix (#2147)
Interface changes
- New member of interface StyleBasedFormatState and FormatState:
- fontWeight: Font weight of current style
- New member of type TableCellMetadataFormat
- borderOverride: Indicate current cell border has been changed by user's action
- New member of interface ImageEditOptions
- applyChangesOnMouseUp: When pass true, image edit changes will be applied when mouse up. Otherwise it will only be applied when click away.
RoosterJs 8.57.0 and Roosterjs Content Model 0.17.0
New feature
Bug fix
- Fix PickerPlugin to allow handling delete operation other than A tag (#2116)
- Fix typing issue on image selection (#2118, #2131)
- Remove max height of image when edit (#2122)
- Catch error and continue when dispose editor (#2129)
Content Model improvement
- Bug fix: List number fix for table block (#2095)
- Advanced cache implementation (#2083, #2114, #2128)
- Fix link underline on images (#2100)
- Standalone editor - Remove dependencies to original editor code (#2106, #2103, #2115, #2107, #2123, #2127)
- Improve image selection on shadow edit (#2110)
- Move default format logic into ContentModelFormatPlugin (#2099)
- Move copy entity related code to copyPastePlugin (#2111)
- Fix Excel Border issue when pasting (#2121)
- Paste/Insert Image according to the visible viewport (#2126)
- Do not focus to editor when formatWithContentModel (#2130)
Graduate features
Engineering improvement
Interface changes
- New public methods, enums and types for announcing:
- function convertDecimalsToAlpha: Convert decimal numbers into english alphabet letters
- function convertDecimalsToRoman: Convert decimal numbers into roman numbers
- const enum KnownAnnounceStrings: Known announce strings
- interface AnnounceData: Represents data, that can be used to announce text to screen reader
- New member function getAnnounceData() in interface ContentChangedData to get announcing data from event
- type AnnounceFeatureKey: Announce feature keys
- interface AnnounceFeature: Represents a Announce feature used in Announce Plugin
- New editor options and EditorCore member
- disposeErrorHandler: A callback to be invoked when any exception is thrown during disposing editor
RoosterJs 8.56.0 and RoosterJs Content Model 0.16.0
Improvement
- Fix image rotator handle height (#2071)
- Select new row/column after insertion (#2094)
- Do not restore cached selection when call select (#2075)
Bug fix
- Fix null check bug in emoji picker (#2089)
Content Model improvement
- Fix line space when reduce font size (#2059)
- Improve customization API (#2068, #2054, #2064)
- Remove Segment format from the pasted content when the format merge option is equal to none (#2073)
- Remove empty link when normalize model (#2077)
- Improve cache (#2066)
- Fix table whole cell alignment (#2082)
- Pass out segment nodes from segment handlers (#2079)
- Content Model: Improve adjustWordSelection (#2087)
- Do not consider Bold, Italic and Underline from ContentModelDocument when retrieving the FormatState (#2081)
- Add model into ContentChangedEvent (#2076)
- Fix text color in in cells with shade. (#2091)
- Clear table selection fix (#2086)
- Remove "contenteditable" when copy (#2092)
Feature graduation
- Graduate feature AutoFormatList (#2062)
Engineering improvement
- Improve error message of check depenedency (#2085)
Interface change
- New proprty of interface DOMEventPluginState
- skipReselectOnFocus: When set to true, onFocus event will not trigger reselect cached range
RoosterJs 8.55.0 and RoosterJs Content Model 0.15.0
Improvement
- Keep image selection when editing (#2049)
Content Model improvement
- Remove deprecated colors from borders, text and background (#2045)
- Improve insertEntity (#2047)
- Fix selection of entity (#2051)
- Always return size in pt when getFormatState (#2052)
- Trigger ShadowEdit events (#2053, #2058)
- Add solid paragraph in new table cell (#2055)
- Do color transform for entity when copy/paste (#2056)
- Paste plain text applies current format (#2057)
Interface changes
- New parameter of editor API transformToDarkColor
- direction: Define the color transformation direction
RoosterJs 8.54.0 and RoosterJs Content Model 0.14.0
Improvement
- Do not allow dragging on readonly content (#2010)
- Skip Trigger plugin event on plain text paste (#2011)
- Image edit: Improve rotate handle calculation (#2017)
- Rename "header" to "heading" (#2020)
- Fix tripple clicking behavior (#2024)
- Replace content of first selected table cell when type (#2030)
Bug fix
- Fix image crop handle bug (#2019)
- Fix missing table cell issue (#2027)
- Fix flipped image issue (#2028)
- Fix regression when creating the BeforePasteEvent (#2039)
Content Model improvement
- Improve cache behavior (#1999)
- Support more unit type of font size (#2012)
- Improve image tag fidelity (#2013)
- Refactor API
formatWithContentModel
(#2001, #2002) - Improve pasting table behavior (#2016, #2022)
- New API:
insertEntity
based on Content Model (#1800) - Rename a test file (#2029)
- Remove "display: flex" when paste (#2031)
- Cut content should also remove list bullet (#2035)
- Improve table fidelity (#2036)
- Delete empty container when delete table (#2037)
- Simplify the domToModel call in paste.ts (#2040)
- Support vertical-align for image (#2041)
Engineering improvement
- Fix insert link button in Content Model ribbon (#2018)
Interface changes
- Rename "header" to "heading" and keep the old types/interfaces for compatibility
- Rename API
toggleHeader
tosetHeadingLevel
- Rename
ElementBasedFormatState.headerLevel
toElementBasedFormatState.headingLevel
- Rename
KnonwnRibbonButtonKey.Header
toKnonwnRibbonButtonKey.Heading
(roosterjs-react) - Rename type
HeaderButtonStringKey
toHeadingButtonStringKey
and all its child type names (roosterjs-react)
- Rename API
- Export new function for roosterjs-react
- New API
showInputDialog
- New interface
DialogItem
- New API
RoosterJs 8.53.0 and RoosterJs Content Model 0.13.0
Bug fix
- Fix table resize UI when editor is put on a high-zIndex container (#1984, #2005, #2007)
- Do not do table or image selection in entity (#1995)
- Fix rotator and side resize handles visibility for image edit (#2008)
Content Model improvement
- Allow customizing merge model behavior when paste (#1993)
- Graduate experimental features:
- ReusableContentModel
- EditWithContentModel
Engineering improvement
- Fix test cases for Firefox 116 (#1996)
Interface changes
- New parameter of TableResize constructor
- anchorContainerSelector: An optional selector string to specify the container to host the plugin
RoosterJs 8.52.0 and RoosterJs Content Model 0.12.0
Bug fix
- [Table] Inserted row/column disappear after make changes for the table (#1957)
- Image edit: Remove style width/height (#1961, #1978)
Improvement
- Make cell vertical alignment 'top' as default. (#1944)
- Remove image alternative text when change picture (#1983)
Content Model improvement
- Paste: Do not inherit styles in Sanitizer, and instead let Content Model Handle the style merge (#1955)
- Fix #1953 Content Model: Delete the only character loses format under implicit paragraph (#1956_
- [Table] Aligning whole table not working correctly (#1958)
- [Format]Switching between bullets and numbering need to click the button twice (#1960)
- Remove SegmentFormat when merging Heading (#1959)
- Couple of fixes for Word Online Paste (#1965)
- Content Model code improvement 3: Refactor List (#1936, #1974)
- Merge Table on Paste only if the document contains a single element and it is a table (#1968)
- Add more classNames to the WacElement detection (#1967)
- Allow custom merge behavior when paste (#1963)
- Reorganize some code (#1973)
- Handle key down events in content model only if was not handled by EditFeature (#1972)
- Bug fix: The inline picture will be also highlighted if text is highlighted (#1979)
- Bug fix: Highlighting text should remove selection (#1980)
- Bug fix: Cannot delete multiple entities at once (#1986)
- Bug fix: [Table]The cursor goes to the end after delete table (#1982)
Engineering improvement
- Fix line number of test cases (#1962)
- Demo site improvement for Content Model (#1966)
- Demo site improvement: Rename FormatPainterPlugin (#1969)
- Improve test process (#1977)
- Use Yarn workspace (#1987)
- Move createFragmentFromClipboardData back to core package (#1989)
- Try fix test code build issue (#1991)
Interface change
- New parameter of API extractClipboardItems and interface ClipboartData
- pasteNativeEvent: Whether the paste event is triggered from native paste event
- New parameter of API removeMetadata
- metadataKey: Key of the metadata to remove. If not passed, remove whole metadata object
- New base interface of interface PluginKeyDownEvent
- PluginKeyDownEventData: Data of PluginkeyDownEvent
- New member of interface TableFormat
- verticalAlign: Vertical align of each cell
- New member of interface TableCellMetadataFormat
- vAlignOverride: Whether override the vertical alignment of this cell and do not respect the value of table metadata
- Removed API (breaking change)
- createdFragmentFromClipboardData
RoosterJs 8.51.1 and RoosterJs Content Model 0.11.0
RoosterJs 8.51.0 and RoosterJs Content Model 0.10.0
Bug fix
- Always trigger EntityOperation when entity is removed (#1894)
- Fix drag and drop behavior of readonly entity (#1898)
- Image editing: Remove width and height after quit editing (#1899)
- Image editing: Fix blurry images (#1908)
- Image editing: Stop image animation while editing (#1911)
- Js error fix for TableEdit plugin (#1912)
- Fix onExternalContentTransform, allow customize dark color handling (#1907)
- Do not delete entity when backspace from next table (#1925)
Improvement
- Add an experimental feature to allow disabling list chain functionality (#1915)
- Make Select All Table Cells, change the color of table. (#1920)
- Fix Table Selection CSS Rule when selecting big table (#1929)
Content Model improvement
- Remove deprecated colors for all elements on paste (#1897)
- Add size format handler to table cells (#1896)
- Split Content Model code into sub packages (#1905)
- Improve merge when source is Paragraph with Decorator and source is not. (#1906)
- Allow set color without color handler (#1921)
- Fix table row height issue (#1924)
- Code consolidate (#1922)
- Check the link format segment to turnoff underline format (#1928)
- Fix wrong behavior when set direction for list item (#1926)
- Fix processor override code (#1930)
Engineering improvement
- Demo site minor improvement (#1895)
- Pack, build .d.ts for Content Model (#1902)
- Fix publish script for new content model packages (#1916)
- Add Unit test for Paste source from M365 Apps (#1918)
Interface changes
- New parameter for supporting disable list chain
- VList.writeBack()
- VListChain.commit()
- New parameters for onExternalContentTransform() function to support doing color transformation with DarkColorHandler:
- fromDarkMode: Whether transform from dark mode
- toDarkMode: Whether trasform to dark mode
- darkColorHandler: The DarkColorHandler object to help do color transformation
- New function of interface DarkColorHandler
- transformElementColor: Do color transformation for a given HTML element
- New experimental feature
- DisableListChain: Allow disabling list chain functionality
- New field of interface TableSelectionRange
- isWholeTableSelected: Whether whole table is selected
RoosterJs 8.50.0 and RoosterJs Content Model 0.9.0
Bug fix
- Fix table inserter for merged vertical cells (#1869)
- Dismiss TableEditors when mouse is moved out of the editor 9#1863)
- Fix Table Inserter Color in Dark Mode (#1877)
- Add back onExternalContentTransform (#1874)
- Improve dark color transform behavior (#1878)
- Handle dark colors for table background color (#1881)
Content Model
- Content Model Copy/Paste improvement (#1856, #1862, #1867, #1875, #1866, #1882)
- Improve performance of Delete/Backspace handling (#1870, #1873)
- Fix focus issue (#1872)
- Ignore empty paragraph when turn on list (#1868)
- Fix header level issue (#1876)
- Fix page scroll issue when change color multiple times (#1879)
- Content fidelity improvement (#1885, #1886, #1889, #1891, #1892)
Engineering improvement
- use
importHelpers
to reduce pack size (#1865) - Enable strict mode for all dev code (#1883)
- Split demo site into two parts (#1880)
Interface changes
- New parameter of VTable.writeBack()
- darkColorHandler: An object to handle dark background colors, if not passed the cell background color will not be set