Releases: microsoft/roosterjs
Releases · microsoft/roosterjs
RoosterJs 8.33.1
RoosterJs 8.33.0
New feature
- Image Selection Part 3 - Selection Event (#1288)
- Allow remove existing Content Edit features from editor (#1301)
Improvement
- Keep list chain even after space (#1297, #1302)
- Improve table pasting behavior to merge pasted table with current table if any (#1265)
Bug fix
- Comment Removal, remove style attribute instead of removing whole element (#1300)
Interface change
- New DOM Utility
- removeImportantStyleRule(): Removes the css important rule from some css properties
- New method of IEditor and Editor:
- removeContentEditFeature(): Remove a Content Edit feature.
- New Event
- PluginEventType.SelectionChanged: Editor changed the selection. (EXPERIMENTAL FEATURE)
- SelectionChangedEvent: The event object interface
- SelectionChangedEventData: Data object for SelectionChangedEvent
RoosterJs 8.32.0
New Feature
Improvement
- Move normalizeBlockquote from normalizePlugin to Format API (#1250)
- Add getVisibleViewport function and hide TableSelector when is not inside of the Visible Rect (#1254)
- Remove Table Selection on Delete Row/Columns (#1260)
- New experimental feature: Use elements from list stack even if they don't match (#1275)
Bug Fix
- Fixing a bug where list style type was applied to inner lists even when the type was toggled (#1258)
- Fix Cell Shade metadata issue for content model table (#1263)
- Fix maintain list chain (#1267)
- Remove 'caret-color' css rule when paste (#1283)
Engineering Improvement
- Try fix Unstable test by fixing clean up after each test (#1277, #1280)
- Add debug unit test commands to launch.json file (#1278)
- Add unit test for markdownFeatures (#1272)
- Enable strict mode for "packages-ui" (#1285)
Interface change
- New DOM Utility
- getIntersectedRect: Get the intersected Rect of elements provided
- saveTableCellMetadata: Add metadata to a table cell
- New parameter of VList.writeBack(), VListItem.writeBack(), VListChain.commit()
- shouldReuseAllAncestorListElements: Whether ignore ancestor list types when try to reuse list element for a list
- New method of IEditor and Editor
- getVisibleViewport(): Retrieves the rect of the visible viewport of the editor.
- New property of LifecyclePluginState
- shadowEditImageSelectionPath: Cached image selection path for original content
- New experimental features
- ImageSelection: When a html image is selected, the selected image data will be stored by editor core.
- ReuseAllAncestorListElements: With this feature enabled, when writing back a list item we will re-use all ancestor list elements
- New value of SelectionRangeTypes
- ImageSelection: Selection made in a image.
- New value of BulletListType
- Circle: Bullet type circle
- New interface
- TableCellMetadataFormat: Format of table cell that stored as metadata
- ImageSelectionRange: Represents a selected image
- New Core API and Core API type
- selectImage: Select a image and save data of the selected range
- New properties of EditorOptions
- getVisibleViewport: Retrieves the visible viewport of the Editor. The default viewport is the Rect of the scrollContainer
- imageSelectionBorderColor: Color of the border of a selectedImage. Default color: '#DB626C'
- New Plugin
- ImageSelection: Detect image selection and help highlight the image
RoosterJs 8.31.0
Improvement
- Improve undo behavior when focused position is changed before taking undo snapshot (#1213)
- Allow setting custom classname to Watermark entities for easy querying (#1219)
- Fix table resize after merge cells (#1209)
- Fix Cut/Copy tables (#1225)
- Add double long arrow bullet type (#1243, #1246)
- Fix Centered Indents (#1240)
- Rename experimentCommitListChains to commitListChains (#1248)
Bug fix
- Fix table inserter height and width (#1205)
- Fix crash when enabling Watermark plugin (#1221)
- Pendable format state isBold is incorrect (#1224)
- When toggle list type,list symbol style maybe incorrect (#1228, #1230, #1232)
- Fix "ReferenceError: window is not defined" when used with Next.js (#1242)
Engineering improvement
- Fix Drag and Drop tests (#1231)
- Add Unit Tests to SingleImage, PPT Paste Converters and WordCustomData (#1238)
- Fix CopyPaste plugin to enable strict mode (#1244)
- Add Unit Tests to Paste Plugin (#1236)
- Enable Strict Mode on rooster-editor-core/lib/editor (#1229)
Interface changes
- New format API
- commitListChains: Renamed from experimentCommitListChains
- New enum BulletListType value
- DoubleLongArrow: Bullet triggered by "-->"
- New Watermark.constructor() parameter
- customClass: Allow customizing CSS class name of watermark element
RoosterJs 8.30.2
Bug fix
- Fix "ReferenceError: window is not defined" when used with Next.js (#1242)
RoosterJs 8.30.1
RoosterJs 8.30.0
Bug fix:
- imageEditPlugin cause content bounce and original image size change (#1172)
- getFormatState() may throw exception in some case (#1181, #1182, #1194)
- Fix infinite loop when inserting a table and editor does not contain any element. (#1185)
- Table selection when and in the same row (#1202)
Improvement
- Add parameter to ImageEdit plugin to still allow disable image side resize/crop/rotate functionalities (#1175)
- Provide a friendly error message when uiUtilities is not set to react plugin (#1176)
- Add a new experimental feature NormalizeList to list item not showing correctly in Win32 Outlook (#1190)
- Fix copy/cut safari (#1198)
- Keep start property and marker (if supported) when copying list from WordOnline (#1200)
Graduate features:
- ExperimentalFeatures.PasteWithLinkPreview (#1175)
- ExperimentalFeatures.SingleDirectionResize (#1175)
- ExperimentalFeatures.ImageRotate (#1175)
- ExperimentalFeatures.ImageCrop (#1175)
Engineering improvement
- Publish from release branch only (#1181, #1184, #1187, #1188)
- Added testing for DragAndDropHelper and a parameter to force touch behaviour (#1180)
- Fix a build issue from fluentui (#1195)
Interface changes
- New exported table format API
- getTableFormatInfo: Get the format info of a table
- New experimental feature
- NormalizeList: Normalize list to make sure it can be displayed correctly in other client
- New properties of interface ElementBasedFormatState
- tableFormat: Format of table, if there is table at cursor position
- tableHasHeader: If there is a table, whether the table has header row
- New properties of interface ImageEditOptions
- disableSideResize: Whether side resizing (single direction resizing) is disabled.
- disableRotate: Whether image rotate is disabled.
- disableCrop: Whether image crop is disabled.
- New method of ImageEdit plugin
- isOperationAllowed: Check if the given image edit operation is allowed by this pluign
RoosterJs 8.29.4
Bug fix
- Fix infinite loop when inserting a table and editor does not contain any element (#1186)