Skip to content

Releases: microsoft/roosterjs

RoosterJs Content Model 0.27.0

04 Mar 22:15
7daf1ba
Compare
Choose a tag to compare

New features from old editor

  • Handle enter on expanded range (#2420)
  • Handle tab key for paragraph (#2436)
  • Port Table edit plugin (#2358)
  • Port ShortcutPlugin (#2427)

Improvement

  • Remove list margins attributes (#2425)
  • Outdent indented empty paragraph when pressing Backspace (#2429)
  • Support adding options for exportContent (#2443)
  • Set RootFontSize to SanitizingContext (#2445)
  • Split contentDiv into physicalRoot and logicalRoot (#2441)
  • Take snapshot before paste (#2440)
  • Improve Entity State related API (#2444)
  • Add option to configure the default paste type (#2457)
  • Remove Bg Color from block on Merge Paste (#2458)

Bug fix

  • Fix selection on context menu after image selection click (#2423)
  • Fix insertNode: Do not reselect if updateCursor is false (#2431)
  • Fix #2435: AttributeSanitizers are not applied to the child elements (#2442)
  • Fix dispose plugin issus in EditorAdapter (#2452)
  • Fix #2202: Delete first entity causes second entity to be reloaded in Content Model editor (#2450)
  • Fix bugs related to default format and decorator format (#2459)

Code clean up

  • Rename StandaloneEditor to Editor (#2416)

RoosterJs Content Model 0.26.0

19 Feb 18:38
6ab02e6
Compare
Choose a tag to compare

Build a standalone editor based on Content Model

  • Port plugin and roosterjs-editor-dom utilities (#2388)
  • Support get/setDOMAttribute (#2396)
  • Code cleanup: code rename (#2375)
  • Code cleanup: Remove unnecessary core API from ContentModelEditor (#2377)
  • Restore getScrollContainer, getVisibleViewport, and IsMobileOrTablet (#2400)
  • Code cleanup: Clean up constructor of StandaloneEditor (#2385)
  • Code cleanup: Rename ContentModelEditor to EditorAdapter (#2411)
  • Code cleanup: Remove legacy core API (#2414)
  • Add getDomStyle to DOMHelper (#2419)

Content Model editor improvement

  • Fix list style: do not auto apply list style if not allowed (#2393)
  • Better handling of "padding: 0" specified to OL/UL (#2395)
  • Handle dark color for general model (#2397)
  • Add API formatTableWithContentModel (#2399)
  • Fix keyboard delete issue on Android (#2402)
  • Support Tab key on list (#2394)
  • Better handling of "rem" unit (#2403)
  • Convert inline CSS when create init model (#2405)
  • Support Cursor around block entities (#2401)
  • Outdent parent format container if necessary (#2410)
  • Improve default format behavior (#2406)
  • Select newly inserted row/column for table (#2412)
  • Add list feature support (#2386)
  • Fix undo snapshot for entity, fix #2310, and IME after entity (#2409)

RoosterJs 8.60.0 and RoosterJs Content Model 0.25.0

05 Feb 17:54
fb93567
Compare
Choose a tag to compare

Improve Content Model

  • Add back ContentModelBeforePasteEvent (#2347)
  • Use margin-top and bottom for list margin (#2346)
  • Standalone Editor: Improve cache (3rd try) (#2344)
  • List Feature: Auto bullet/Auto Numbering (#2326)
  • Fix table text color (#2359)
  • Fix pending format (#2354)
  • Fix shadow edit (#2355, #2356)
  • Support unit "inch" when parse value (#2357)
  • Fix a js error when undo inside a table (#2367)
  • Add isReverted to DOM Selection (#2368)
  • Fix list chain in auto formatted list (#2381)
  • Improve the algorithm of reusing existing entities

Create a standalone editor on top of Content Model

  • Remove dependency to old code from api and plugins package (#2349)
  • Decouple test code from old code (#2351)
  • Provide a DOMHelper to allow access DOM tree (#2363)
  • Small refactor to paste code (#2365)
  • Remove IStandaloneEditor.setContentModel (#2364)
  • Port ContextMenu plugin (#2366)
  • Remove parameter onNodeCreated (#2374)
  • Remove isContentModelEditor (#2371)
  • Remove NormalizeTablePlugin (#2376)
  • Replace createContentModel with getContentModelCopy (#2372)
  • Remove get/setZoomScale (#2378)
  • Move isNodeInEditor into DOMHelper (#2379)
  • Remove TODO and support RTL when toggle blockquote (#2384)

Other improvements

  • RoosterJs-React: Add shortcut support Ctrl+K for insertLink (#2333)
  • Fix safari selection issue on iOS (#2332)
  • Add line-height to Image rotator (#2369)
  • Add write permission to deploy action (#2383)

RoosterJs Content Model 0.24.0

22 Jan 22:05
121728f
Compare
Choose a tag to compare

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

07 Jan 05:33
5d48fd9
Compare
Choose a tag to compare

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

04 Jan 18:30
b333ded
Compare
Choose a tag to compare

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

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