🎉 Release v0.2.12
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
If you're eager to explore Univer, check out our getting started documentation.
Dive into the world of collaborative document, spreadsheet, and presentation editing powered by Univer!
📊 Univer Sheets
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
- Added support to disable transform for floating elements by setting
allowTransform
tofalse
when adding them to a worksheet. #3342 - Added 3 new formula functions:
ISFORMULA
,N
, andNA
. #3304 - Added new facade APIs supporting cell data retrieval (
FRange.getValues
), simplified merge operations, clipboard functionality, and selection management. #3344 #3289 #3216 - Now supporting 291 formula functions, with a goal of 500+
🐞 Bug Fixes
- Fixed scroll freezing issue when filtering large datasets by optimizing row visibility checks. #3319
- Fixed errors in the UniScript panel for smooth typing and editing. #3350
- Fixed permission-related rendering bugs. #3300
- Other optimizations and fixes
💔 Breaking Changes
A new way to customize the menu
Refactored the menu service and configuration service (#3246).
The purpose is to prepare for the inability to specify menu sorting and to provide simplified registration of menus and more customization capabilities in the future.
Key differences:
- Service Change:
- Before: Used
IMenuService
for menu management - After: Now uses
IMenuManagerService
- Before: Used
IMenuService
will provide several versions of fallback compatibility for developers to migrate.
- @IMenuService private readonly _menuService: IMenuService,
+ @IMenuManagerService private readonly _menuMangerService: IMenuManagerService,
- Menu Registration:
- Before: Added menu items individually using
addMenuItem
- After: Uses a new
mergeMenu
method to define the entire menu structure
- Before: Added menu items individually using
- this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(MenuItemFactory), {}));
+ this._menuMangerService.mergeMenu({
+ [RibbonStartGroup.OTHERS]: {
+ [MenuItemId]: {
+ order: 10,
+ menuItemFactory: MenuItemFactory
+ },
+ // ... other menu items
+ },
+ // ... other menu groups
+ });
- Menu Item Configuration:
- Before: Included
positions
andgroup
properties in menu item definitions - After: These properties are now defined in the menu item configuration within the
mergeMenu
method, rather than in the menu item definition itself
- Before: Included
return {
id: MENU_ITEM_ID,
type: MenuItemType.BUTTON,
icon: 'IconName',
tooltip: 'tooltipKey',
title: 'titleKey',
- group: MenuGroup.TOOLBAR_FORMULAS_INSERT,
- positions: [MenuPosition.TOOLBAR_START, MenuPosition.CONTEXT_MENU],
};
These changes provide a more centralized and structured approach to menu management. Univer plugin developers will need to update their menu registration code to align with this new structure.
📝 Univer Docs
- Added support for line height settings in documents, allowing both fixed values and multiple line spacing options. #3176
- Hyperlink refactor. #3148
- Other optimizations and fixes
📢 Join the Conversation
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
📝 Changelog
Full changelog (2024-09-07)
Bug Fixes
- auto-fill: change apply type will undo last commands (#3311) (391c523)
- clipboard: copy will not use filtered-out rows content (#3292) (ec601c3)
- conditional-formatting: init view model (#3349) (ad145f2)
- conditional-formatting: render cache error (#3345) (e812441)
- conditional-formatting: the maximum and minimum values are corre… (#3270) (5d41a9b)
- crosshair: fix no plugin name for the plugin (19564c7)
- design: popup style (#3325) (675933c)
- detect row/col index in selection (#3348) (c9fef1b)
- docs: link break in link (#3254) (ff17894)
- drawing issues (#3245) (d848d33)
- filter: filter range change error when remove rows/cols (#3324) (a70ef37)
- filter: filter render controller should dispose its vars when unit disposed (#3340) (be7da80)
- fix dependencies of telemetry (#3280) (965064e)
- fix the sorting menu item display position (#3314) (3f18a4f)
- fix threshold error handling (#3261) (1e1dde5)
- fix uni menu (#3338) (af63f7d)
- font rendering diffrange condition fix (#3264) (c920d53)
- formula: bracket has more blank (#3331) (4900a3c)
- formula: fix formula paste (#3257) (771f191)
- formular: fix dependency performance issue (#3359) (f2f7f5b)
- mobile selection did not drawing (#3312) (d1773ed)
- permission: fix permission render bugs (#3300) (9751c0a)
- selection type did not update when set type to normal(0) (#3317) (2909cf8)
- sheet-data-validation: auto-format data validation non-standard date string & data-validation auto-fill (#3336) (fc3dc44)
- sheets-drawing-ui: sheet-drawing error receive data from doc (#3337) (b8e6e42)
- sheets-drawing-ui: sheet-drawing-import (#3277) (183b3e0)
- sheets-formula: fix the issue of missing formula description list (#3323) (9d314ce)
- sheets-ui: auto-fill will copy auto-height strategy from origin region (#3287) (04f156e)
- sheets: skip remove-sheet on watch range if skipIntersects was set (#3356) (2ee440a)
- sheets: undo set col width should set to the original value (#3353) (c5ebb79)
- sheet: unhide row button will update when skeleton change & auto-fill will check empty (4598c91)
- skip invisible row in filtered state for performance (#3319) (5ada754)
- slide: 2024 width (#3156) (1bddcb8)
- sync mutation will not quit auto-fill mode (#3351) (8a7545a)
- unexpected cross viewport selection because it counts rowheader (#3296) (ebde3da)
- uni-formula-ui: uni formula deps error (#3302) (5ab492f)
- uni: fix missing undo & redo menu item (#3343) (15f18c8)
Features
- auto-fill: edit operation will quit auto-fill mode (#3333) (9478a90)
- docs-hyper-link: hyper link refactor (#3148) (f21ce50)
- docs: support change space rule type (#3176) (4936567)
- facade: add clipboard hooks and selection api (#3216) (e2fbf0e)
- facade: add FRange.getValues api (#3344) (1021e30)
- facade: add merge facade api (#3289) (acd03e4)
- format-painter: format pianter to single-cell will copy whole range formats (#3326) (923b5dc)
- formula: isformula/n/na (#3304) (ccc4276)
- sheet: exclusive range serivce (#3278) (093ee31)
- sheets-drawing-ui: support disable transform on float dom (#3342) (9fe9468)
- telemetry interface for track function cost time (#3288) (01e35e2)
- telemetry.merge (#3251) (8f01cf3)