Releases: microsoft/roosterjs
Releases · microsoft/roosterjs
Release list
RoosterJs Content Model 0.24.0
Content Model fidelity improvement
- Add each border radius when the shorthand css is not provided and
borderCollapse: separatesupport (#2325) - Support text-indent (#2009)
- Support format parser and applier for text node (#2334)
- Support COLGROUP (#2339)
Content Model behavior improvement
- Remove Height from Divs on paste (#2320)
- List Feature: Backspace on empty list (#2316)
- Add TextColor Parser to tables (#2338)
- Fix switch dark color issue in Content Model (#2335)
- Fix a potential js error in setDOMSelection (#2336)
- Bug fix: The style on SelectionMarker is not up to date after setFontSize more than one time (#2331)
- Update start of lists when pasting from Word Online (#2340)
Build a Standalone Editor based on Content Model
- Create new EditorPlugin interface (#2293)
- Create new event system (#2297)
- Port to new event system (#2298)
- Remove compatible enums from Standalone Editor (#2296)
- Decouple TrustHTMLHandler and Rect (#2307)
- Improve Undo (#2308)
- Port DarkColorHandler (#2328)
- Port ContentModelEditPlugin to use IStandaloneEditor (#2342)
- Add back ContentModelBeforePasteEvent (#2347)
Legacy editor changes
- Allow TableResize's onShowHelperElement callback to get affected element (#2315)
Engineering improvement
RoosterJs Content Model 0.23.0
Content Model improvement
- Better hide cursor for table and image selection (#2270)
- Table Fidelity improvement: Width Attribute and Cellpadding attribute (#2284)
- Adjust Selection on Cut/Copy first table cell (#2287)
- Remove format of trailing space segment (#2288)
- Set Deprecated font color to black instead of undefined (#2290)
- Remove negative margins from Word (#2277)
- Fix GetFormatState not returning Font size after paste (#2299)
- Do not handle enter input on mac (#2301)
- Support rem unit (#2300)
- Add text align justify option (#2306)
- Fix couple of issues in Word Desktop Paste (#2311)
- Change borderLeft/Right to borderInlineStart/End (#2286)
Build a Standalone Editor based on Content Model
RoosterJs Content Model 0.22.0
Build a standalone editor based on Content Model
- Port selection API (#2229, #2235, #2266)
- Port UndoPlugin and Undo API (#2237, #2249)
- Port event core API (#2254)
- Port transformColor API (#2256)
- Port CopyPastePlugin (#2257)
Content Model improvement
- Set readonly for new entity (#2243)
- Allow pasting Excel table without adding borders (#2247)
- Do not add entity delimiter to editable entity (#2252)
- Create list in an indented paragraph (#2255)
- Remove whole list when delete (#2248)
- Do not set focus to editor when format if editor did not have focus before format (#2259)
- Copy cell dataset when inserting new row/column (#2264)
- Fix table row inserter for wide border (#2263)
- Fix bug: The size of the pasted table becomes larger (#2268)
- Remove comment highlight when pasting Content from Word Online (#2272)
- Delete Image format (#2271)
- Preserve Word Desktop List style (#2269)
- Do not handle enter input on mac (#2301)
Other improvement
- Fix demo site issue (#2258)
RoosterJs 8.59.1 and RoosterJs Content Model 0.21.1
Versioning change
From this version, RoosterJs packages can have different versions for each package.
Currently the latest versions are:
- roosterjs: 8.59.0
- roosterjs-editor-types: 8.59.0
- roosterjs-editor-dom: 8.59.0
- roosterjs-editor-core: 8.59.1
- roosterjs-editor-api: 8.59.0
- roosterjs-editor-plugins: 8.59.1
Bug fixes
- Fix Delimiter Nested Entity Scenario (#2207)
- Only select image on click (#2224)
- Auto format hyphen (#2227)
- Improve table format when apply/remove table header (#2225)
Content Model improvement
- Remove public enum from Content Model (#2204)
- Remove dependency to EditorCore (#2208)
- Support keyboard input (#2221, #2240)
- Keep image port if exist (#2226)
- Fix #2230: Delete selection should keep format (#2231)
- Keep default format when paste into empty editor (#2232)
- Start to create a standalone Content Model editor
- Decouple
ContentModelEditorfromroosterjs-editor-core(#2201) - Content Model editor integrate Standalone editor directly (#2206)
- Remove legacy plugin: PendingFormatStatePlugin (#2209)
- Merge DOMEventPlugin and MouseUpPlugin (#2210)
- Create a function to allow creating
StandaloneEditorCore(#2218) - Port LifecyclePlugin (#2219, #2239)
- Port EntityPlugin (#2223)
- Add a SelectionPlugin (#2236)
- Decouple
Engineering improvement
- Allow each package has its own version when publish (#2233)
RoosterJs 8.59.0 and RoosterJs Content Model 0.20.0
New feature
- When create a list, do not add margins before and after the list (#2150)
Improvement
- Do not set focus when exit shadow edit (#2163)
- Add undo snapshot and trigger ContentChangedEvent when delete node from PickerPlugin (#2173)
- Fix Mouseout behavior to hide table editors (#2181)
- Add image size checkmarks to context menu (#2168)
- Ensure image parent node exist, before select it (#2194)
Content Model improvement
- Use Content Model to handle Delete/Backspace key in more cases (#2162)
- Fix bug in API
setSelection(#2164) - Properly format new table after edit table (#2165)
- Fix selection issue with entity (#2166)
- Keep original format after paste (#2167)
- Rearrange parameters of iterateSelections (#2180)
- Correctly apply pending format on Android (#2172)
- Fix apply Table Inside borders operation and Demo site (#2184)
- Move formatWithContentModel to be a core API (#2185)
- Allow clear cache from formatContentModel (#2186)
- Potential perf improvement in getFormatState (#2187)
- Move pending format into editor core (#2188)
- Convert DeleteResult from const enum to string literal type (#2191)
- Code reorganization (#2192, #2195, #2196, #2198, #2199, #2200)
Engineering improvement
- Adding module entry to package.json (#2197)
Interface changes
- New member function of class VList
- removeMargins: Remove margin before and after a list
- New parameter of function isResizedTo
- maxError Maximum difference of pixels to still be considered the same size
- New member function of interface ContextMenuItem
- getSelectedId: A callback function to verify which subitem ID should have a checkmark
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:
insertEntitybased 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
toggleHeadertosetHeadingLevel - Rename
ElementBasedFormatState.headerLeveltoElementBasedFormatState.headingLevel - Rename
KnonwnRibbonButtonKey.HeadertoKnonwnRibbonButtonKey.Heading(roosterjs-react) - Rename type
HeaderButtonStringKeytoHeadingButtonStringKeyand all its child type names (roosterjs-react)
- Rename API
- Export new function for roosterjs-react
- New API
showInputDialog - New interface
DialogItem
- New API