Releases: microsoft/roosterjs
Releases · microsoft/roosterjs
RoosterJs 9.2.0
Bug fix
- Fix the cursor jump issue after deleting an Entity on Android (#2577)
- Fix on webkit-based applications, the selection will become empty after copy, and focus will cause the window to scroll to the top (#2571)
- Preserve reverted selection info in Content Model (#2580)
- Fix empty text in markdown plugin (#2582)
- Allow Shift+Delete to Cut (#2585)
- Fix #2584: Safari context menu event causes selection to be expanded (#2584)
- Fix #2575 Entity delimiter cursor moving (#2581)
Improvement
- Port PickerPlugin to new editor (#2569)
- Port AnnouncePlugin step 1 (#2589, #2591, #2592)
- Port Custom Replace Plugin (#2594)
- Port Auto fraction and ordinals (#2595)
- Use percentage for max-width of newly inserted image (#2579)
- Improve AutoFormatPlugin (#2583)
- Trigger AutoLink (#2598)
- Select image after inserting it (#2593)
- Allow hotkey Ctrl-Shift-Z on Windows (#2607)
New feature
RoosterJs 9.1.0
Improvement
- Port MarkDown plugin (#2527, #2563)
- Port TAB key feature for table (#2536, #2529)
- Improve backspace on list (#2555)
- Image selection improvement (#2556, #2557, #2554)
- Port Hyperlink plugin (#2560)
- Export formatTextSegmentBeforeSelectionMarker (#2565)
Bug fix
- Fix bug in AutoFormatPlugin about auto list (#2549)
- Fix selection issue on void element (#2551)
- Prevent ScrollTop to be lost when the focus is done to the editor (#2564)
- Fix extra empty line generated when get plain text (#2566)
- Fix #2500 Hyperlink misses color (#2570)
Engineering improvement
RoosterJs 9.0.0
Start from RoosterJs 9.0.0, the editor is built based on a middle layer called "Content Model". All formatting behavior will happen on top of this middle layer, directly DOM operation will be avoided as much as possible.
For more information about migrating to 9.0.0, please see here
Content Model Editor improvement
- Enabled Content Model cache by default (#2498)
- Port plugin: WatermarkPlugin (#2503, #2546)
- Port plugin: TableCellSelection (#2506)
- Port plugin: ContentEdit
- fix convertGlobalCssToInlineCss() to process pseudo-classes correctly (#2493)
- Add setLogicalRoot API (#2492)
- Fix paste issue for repaste (#2516)
- Fix bug for auto complete (#2517, #2520)
- Remove a redundant parameter from domToContentModel (#2521)
- Do not update the segment format if it have a value when pasting from excel (#2532)
- Fix format button does not work in Safari when WatermarkPlugin is enabled (#2530)
- Fix exportContent to return the complete editor content even with custom logical root (#2531)
- Allow passing in sanitizing options when create Content Model from HTML (#2543)
- Leverage DOMInsertPoint, remove posContainer/offset (#2538)
- Allow insert entity to a specified position without changing selection (#2537)
- Remove parameter "reduced" from editor.getContentModelCopy (#2539)
- Set isSelected to false for formatHolder of list item (#2540)
- Fix a bug with cached model (#2547)
Code organization
- Move public type definitions into roosterjs-content-model-type package (#2502)
- Reorganize core API and core Plugin files (#2501)
- Move non-core files from
roosterjs-content-model-core
toroosterjs-content-model-dom
(#2518)
Roosterjs-react improvement
- Added iconProp for ContextMenuItem (#2526)
Engineering improvement
- Import model document into demo site (#2509)
- Add tabs to demo site and PresetPlugin (#2511)
- Add eslint rule to disallow default export (#2515)
- Prepare publish roosterjs v9 (#2490)
- Fix builddoc script to correctly build document for content model (#2544)
- Fix demo site js error in side pane (#2545)
- Auto bump
RoosterJs Content Model 0.28.0 and RoosterJs 8.61.0
Create a standalone editor on top of Content Model
- Reorganize source code (#2464)
- Add quote feature to Content Model editor (#2461)
- Add shortcut for arrow keys (#2470)
- Add function normalizeRect(#2482)
- Add AutoLink feature (#2479, #2485)
- Clean up core API (#2481)
Improvements
- Support "("+trigger character in PickerPlugin (#2478)
- Merge BlockFormat when merging the first paragraph (#2477)
- Remove LinkHeight limitation when pasting from Word (#2483)
- Respect "shouldPersist" from EntityOperationEvent
- Export content without selection (#2491)
- Fix TableEditPlugin anchorContainerSelector query (#2499)
- Add check for selected segments and paragraphs (#2476)
- Watermark plugin allows update watermark text (#2507)
Other improvement
RoosterJs Content Model 0.27.0
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
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
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 Content Model 0.24.0
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
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)