Skip to content

Releases: microsoft/roosterjs

RoosterJs 8.59.1 and RoosterJs Content Model 0.21.1

05 Dec 18:06
a7bdb43
Compare
Choose a tag to compare

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 ContentModelEditor from roosterjs-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)

Engineering improvement

  • Allow each package has its own version when publish (#2233)

RoosterJs 8.59.0 and RoosterJs Content Model 0.20.0

11 Nov 05:30
bbf6a43
Compare
Choose a tag to compare

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

24 Oct 17:04
f527296
Compare
Choose a tag to compare

New feature

  • Add font weight to FormatState (#2138)
  • Allow apply image editing change when mouse up (#2133)

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

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

06 Oct 22:35
9079a70
Compare
Choose a tag to compare

New feature

  • Add Announce plugin for Accessibility support (#2109, #2119)

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

  • InlineEntityReadOnlyDelimiters (#2093)
  • ContentModelPaste (#2102)

Engineering improvement

  • Replace tslint with eslint (#2101)
  • Add eslint rule for imports (#2105)

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

25 Sep 18:04
713607e
Compare
Choose a tag to compare

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

11 Sep 19:49
54e3f91
Compare
Choose a tag to compare

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

18 Aug 21:46
e2ae751
Compare
Choose a tag to compare

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 to setHeadingLevel
    • Rename ElementBasedFormatState.headerLevel to ElementBasedFormatState.headingLevel
    • Rename KnonwnRibbonButtonKey.Header to KnonwnRibbonButtonKey.Heading (roosterjs-react)
    • Rename type HeaderButtonStringKey to HeadingButtonStringKey and all its child type names (roosterjs-react)
  • Export new function for roosterjs-react
    • New API showInputDialog
    • New interface DialogItem

RoosterJs 8.53.0 and RoosterJs Content Model 0.13.0

04 Aug 20:13
fc1c8bc
Compare
Choose a tag to compare

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

31 Jul 22:19
cefac4c
Compare
Choose a tag to compare

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

17 Jul 22:52
9eb8593
Compare
Choose a tag to compare

Improvement

  • Always enabled Content Edit feature UpDownInTable to all browsers (#1941)
  • Add BgColor to Allowed colors when Sanitizing content (#1950)

Bug fix

  • Fix image resize handle icon when font size is large (#1946)
  • Fix COMPONENT ERROR: e.cells[o] is undefined (#1951)

Content Model

  • Code improvement (#1923)
  • Fix Parsers when pasting (#1949)
  • Fix #1943 Ctrl+Backspace should not trigger auto complete undo (#1943)
  • Fix #1945 Content Model Fidelity issue: segment format is not overriden by block decorator (#1945)
  • If not merging Paragraphs, keep the source format (#1952)