Skip to content

Releases: microsoft/roosterjs

RoosterJs 8.31.0

12 Sep 03:26
ca3ee47
Compare
Choose a tag to compare

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

08 Sep 15:41
f81d83b
Compare
Choose a tag to compare

Bug fix

  • Fix "ReferenceError: window is not defined" when used with Next.js (#1242)

RoosterJs 8.30.1

30 Aug 17:30
d562875
Compare
Choose a tag to compare

Bug fix

  • Bug fix for table metadata validation
    • Change the property "keepCellShade" to be optional (#1214)
    • Change the max allowed value of TableBorderFormat to be TableBorderFormat.CLEAR (#1214)

RoosterJs 8.30.0

26 Aug 18:06
d37029a
Compare
Choose a tag to compare

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

16 Aug 23:36
c0102ad
Compare
Choose a tag to compare

Bug fix

  • Fix infinite loop when inserting a table and editor does not contain any element (#1186)

RoosterJs 8.29.3

16 Aug 20:18
64e935f
Compare
Choose a tag to compare

Bug fix

  • Fix for case where endingBlock is null (#1182)

Engineering improvment

  • Start publishing new version from release branch.

RoosterJs 8.29.2

16 Aug 05:20
Compare
Choose a tag to compare

Bug fix

  • Fix bug "Cannot add table when editor empty" (#1179)
  • fix: imageEditPlugin cause content bounce and original image size change (#1172)

RoosterJs 8.29.0

12 Aug 18:30
5f34ac4
Compare
Choose a tag to compare

Bug fix

  • Disable insert link when selection includes multiple paragraphs (#1132)
  • Do not apply format on readonly content (#1122)
  • When insert table, do not apply existing background color (#1169)
  • Fix bug in the calculation of min-width and min-height of image resize (#1165)

Improvement

  • Add an empty line when insert a table right after another table (#1167)
  • Add a new experimental feature to improve the inline formatting when selection is collpased (#1161)

Interface changes

  • New member of interface PendingFormatStatePluginState:
    • pendableFormatSpan A temporary SPAN element to hold pending format change. it will be inserted into content when user type something,
  • New experimental feature member:
    • PendingStyleBasedFormat
  • New value of enum TableBorderFormat
    • Clear
  • New member of interface PendingFormatStatechangedEvent and CompatiblePendingFormatStateChangedEvent
    • formatCallback: A callback to do format change to a temp element. This is used for style-based format such as font and color
  • New member of interface ElementBasedFormatState
    • isMultilineSelection Whether the selected text is multiline

RoosterJs 8.28.1

30 Jul 04:38
df10343
Compare
Choose a tag to compare

Improvement

  • Modified shouldReplace to add editor as optional parameter (#1081)

Bug fix

  • Delete the whole table if the table is empty after deletion (#1106)
  • Horizontal table inserter not disposing (#1107)
  • Avoid merge of two lines when the pasted content only contains two blocks. (#1113)
  • Replace highlighted text not working (#1071)
  • Modify the Check in normalizeRect (#1134)
  • Stop Table Resizer disposal while editing (#1135)
  • InsertNode with option InsertInNewLine is inserting the new node incorrectly when target is a table cell (#1137)
  • Fix numbering list triggers (#1142)

Engineering improvement

  • Add buildmjs to export esmodules under lib-mjs (#1110)
  • Enable strict mode in roosterjs-editor-core/lib/coreApi folder (#1111)
  • Add tests
    • ListFeatures (#1118)
    • TableEdit and TableFormat (#1123)
    • CutPasteListChain plugin (#1126)
  • Run test coverage for both browsers (#1139)
  • Use caret version dependency between packages

Interface changes

  • New parameter of CustomReplacement.shouldReplace:
    • sourceEditor: A reference to the editor to allow more complex replacement rules

RoosterJs 8.27.0

17 Jul 22:13
8d782ef
Compare
Choose a tag to compare

Improvement

  • Modify the editor.addUndoSnapshot to add formatApiName to the request (#1075)
  • Fix align list item when styled (#1076)
  • Add different apiNames for automatic formatting. (#1087, #1092)

Bug fix

  • Fix bug in ensureUniqueId (#1074)
  • Fix Option+Backspace behavior on Mac (#1084)
  • Add null check in AdjustInsertPosition (#1088)
  • Fix empty selection check in TypeInContainerPlugin (#1086)

Engineering improvement

  • Add test case to Context Menu plugin (#1056)
  • Add TableFeature Tests(#1083)

Interface change

  • New parameter of addUndoSnapshot API callback parameter:
    • additonalData: Additinal data for this callback
  • New parameter for toggleBullet, toggleNumbering, toggleListType:
    • apiNameOverride: Override the default API name parameter in ContentChangedEvent