Skip to content

Releases: microsoft/roosterjs

RoosterJs Content Model 0.24.0

Choose a tag to compare

@JiuqingSong JiuqingSong released this 22 Jan 22:05
121728f

Content Model fidelity improvement

  • Add each border radius when the shorthand css is not provided and borderCollapse: separate support (#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

  • Port demo site ribbon buttons (#2294)
  • Create demo page for Standalone Editor (#2295)
  • Forbid using public const enum (#2341)

RoosterJs Content Model 0.23.0

Choose a tag to compare

@JiuqingSong JiuqingSong released this 07 Jan 05:33
5d48fd9

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

  • Port Paste API (#2280, #2281, #2282, #2304)
  • Decouple core package from roosterjs-editor-dom (#2283)
  • Stop using interface IEditor (#2291)
  • Create StandaloneEditor class (#2292)

RoosterJs Content Model 0.22.0

Choose a tag to compare

@JiuqingSong JiuqingSong released this 04 Jan 18:30
b333ded

Build a standalone editor based on Content Model

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

Choose a tag to compare

@JiuqingSong JiuqingSong released this 05 Dec 18:06
a7bdb43

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

Choose a tag to compare

@JiuqingSong JiuqingSong released this 11 Nov 05:30
bbf6a43

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

Choose a tag to compare

@JiuqingSong JiuqingSong released this 24 Oct 17:04
f527296

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

Choose a tag to compare

@JiuqingSong JiuqingSong released this 06 Oct 22:35
9079a70

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

Choose a tag to compare

@JiuqingSong JiuqingSong released this 25 Sep 18:04
713607e

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

Choose a tag to compare

@JiuqingSong JiuqingSong released this 11 Sep 19:49
54e3f91

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

Choose a tag to compare

@JiuqingSong JiuqingSong released this 18 Aug 21:46
e2ae751

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