Skip to content

🎉 Release v0.4.0

Compare
Choose a tag to compare
@hexf00 hexf00 released this 17 Oct 12:55
· 359 commits to dev since this release

🎊 [email protected]

Univer Banner

🚧 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 formulaBar configuration option to control the display of the formula bar #3632
  • Added onCellDataChange and onBeforeCellDataChange methods to the Facade API FWorksheet for monitoring cell data changes #3626
  • Added Persian language fa_IR support #3558
  • Added REGEXEXTRACT, REGEXMATCH, and REGEXREPLACE formula functions #3633
  • The number of formula functions has now reached 372, with a goal of exceeding 500

🐞 Bug Fixes

  • Fixed merged cell rendering issue #3671
  • Fixed editor cursor position offset #3668
  • Fixed custom context menu items not displaying #3688
  • Fixed column header rendering issue after reinitializing following disposeUnit #3598
  • Fixed SetStyleCommand only affecting the current active sheet #3586
  • Fixed SetRangeValuesCommand changing user focus #3697
  • Fixed nested IF formula calculation error #3774
  • Fixed navigation bar flickering #3745

💔 Breaking Changes

  • Plugin developers should note that the following changes have been made:
    • The OnLifecycle decorator has been removed. Please complete the corresponding instance initialization logic in the plugin's lifecycle methods instead #3672

example:

///plugin/controllers/custom-menu.controller.ts
-@OnLifecycle(LifecycleStages.Ready, CustomMenuController)
export class CustomMenuController extends Disposable {
...
}
...

//plugin/plugin.ts
export class UniverSheetsCustomMenuPlugin extends Plugin {
...
+    onReady(): void {
+       this._injector.get(CustomMenuController);
+   }
...
}
  • The injector parameter in plugin lifecycle methods has been removed. Please use the class property _injector directly #3672
  • Plugin refactoring #3527
    • @univerjs/sheets-formula has been split into two plugins: @univerjs/sheets-formula and @univerjs/sheets-formula-ui. Please import @univerjs/sheets-formula-ui into your frontend code as well.
  1. install:
-pnpm add @univerjs/sheets-formula
+pnpm add @univerjs/sheets-formula @univerjs/sheets-formula-ui
  1. import:
-import '@univerjs/sheets-formula/lib/index.css'
+import '@univerjs/sheets-formula-ui/lib/index.css'

-import SheetsFormulaEnUS from '@univerjs/sheets-formula/locale/en-US';
+import SheetsFormulaUiEnUS from '@univerjs/sheets-formula-ui/locale/en-US';

import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
+import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
  1. register:
univer.registerPlugin(UniverSheetsFormulaPlugin)
+univer.registerPlugin(UniverSheetsFormulaUIPlugin)
  • @univerjs/sheets-data-validation has been split into two plugins: @univerjs/sheets-data-validation and @univerjs/sheets-data-validation-ui. Please import @univerjs/sheets-data-validation-ui into your frontend code as well. The configuration for @univerjs/sheets-data-validation should also be moved to @univerjs/sheets-data-validation-ui.
  1. install:
-pnpm add @univerjs/data-validation @univerjs/sheets-data-validation
+pnpm add @univerjs/data-validation @univerjs/sheets-data-validation @univerjs/sheets-data-validation-ui
  1. import:
-import '@univerjs/sheets-data-validation/lib/index.css';
+import '@univerjs/sheets-data-validation-ui/lib/index.css';

-import SheetsDataValidationEnUS from '@univerjs/sheets-data-validation/locale/en-US';
+import SheetsDataValidationUiEnUS from '@univerjs/sheets-data-validation-ui/locale/en-US';

import { UniverDataValidationPlugin } from '@univerjs/data-validation';
import { UniverSheetsDataValidationPlugin } from '@univerjs/sheets-data-validation'
+import { UniverSheetsDataValidationUIPlugin } from '@univerjs/sheets-data-validation-ui'
  1. register:
univer.registerPlugin(UniverDataValidationPlugin)
univer.registerPlugin(UniverSheetsDataValidationPlugin)
+univer.registerPlugin(UniverSheetsDataValidationUIPlugin)

📝 Univer Docs

🔧 Improvements

  • Editor refactoring #3551

🎢 Special Thanks

Special thanks to the following community members who have made outstanding contributions to this release:

📢 Join the Conversation

We welcome your input and insights as we embark on this exciting journey. Connect with us on:

📝 Changelog

Full changelog (2024-10-17)

Bug Fixes

  • docs-ui: don't refresh-selection after set list (#3780) (924dee7)
  • docs-ui: formula-editor should not render paragraph style (#3783) (b7301af)
  • docs: header footer setting not focus (#3698) (2db351b)
  • docs: no need to cache font style when has no text run (#3779) (8a48479)
  • engine-render: check box render (#3776) (83e0897)
  • fix permission rangeSelector & insert menu (#3757) (1f43484)
  • font render bounds (#3754) (4ecd764)
  • formula: fix some bug (#3774) (4c4efe4)
  • sheets-ui: can't save first edit cell (#3781) (d29da2f)
  • cell style in collaboration (#3748) (e138b95)
  • condition-formatting: date calculation error (#3733) (30da399)
  • conditional-formatting: reduce icon map size (#3769) (0f19fc0)
  • docs-ui: doc list render error after operation like break-line (#3766) (8c95a53)
  • flickering when init page (#3762) (fe3ff31)
  • formula: fix ArrayValueObject compare cache bug (#3764) (424bb02)
  • formula: fix datedif bug (#3747) (f9f4973)
  • refresh selection when collapsed (#3761) (a92a389)
  • sheet: fix can not delete when there are exclusive range (#3729) (d6db560)
  • sheets-data-validation: data validation validator status render error (#3752) (555e9d5)
  • snapshot area (#3715) (5957a04)
  • ui: fix missing context menu items (#3758) (421d009)
  • ui: ribbon others tab flickering resolved (#3745) (bc8bfb6)
  • docs: can not paste content when have both text range and rect range (#3720) (3cfcf7e)
  • docs: insert image after table (#3719) (942dc4e)
  • docs: selection offset is wrong when refresh (#3724) (0babbab)
  • formula: fix some formula bugs (#3722) (559825a)
  • sheets-ui: set focus editing mode when dbclick & error resize when change sub sheet (#3725) (84ac33f)
  • add remove sheet intercept (#3622) (1f7fedb)
  • after modifying the value, the filter hidden state needs to be r… (#3601) (dc963b0)
  • array formula border deps (#3654) (8d9b1aa)
  • conditional-formatting: ranking error (#3589) (f0252ca)
  • core: fix plugin holder of univer type not set (#3702) (851b1ce)
  • dispose and createUnit cause viewport height collapse (#3598) (36b676f)
  • docs: arrow in table when table across two pages (#3692) (9e98122)
  • docs: copy table in univer (#3625) (8fb395f)
  • docs: editing drawing is not working (#3718) (b253b32)
  • docs: no need to add cursor when select multi text ranges (#3691) (f2aab59)
  • docs: optimization of text selection (#3660) (a2f2215)
  • docs: wrong header footer icon (#3689) (0cfeece)
  • fix error display not shown (433da50)
  • fix permission init should build cache (#3651) (6dac0d0)
  • formula show editor selection when using filter (#3621) (1149cff)
  • formula: add r_tree for dependency and fix bug (#3647) (f5140c0)
  • formula: array formula spill error (#3673) (e8ffd23)
  • merged cell bg not fully ender (#3671) (5bbbec3)
  • sheets-hyper-link: hyper-link operator issues (#3628) (e27bf5e)
  • sheets-ui: editor state not correctly reset when active (#3668) (16a08bf)
  • sheets-ui: error quit edit when set-range-values was called (#3697) (0c29785)
  • sheets-ui: remove useless mark dirty on data-validation & thread-comment (#3639) (6b48993)
  • sheets: correct subUnitId usage in SetStyleCommand (#3586) (b03711d)
  • ui: resolve issue preventing custom context menus from displaying (#3688) (b3a3cbc)
  • underline was hidden by background in next line (#3638) (71229b3)
  • zen: fix zen editor cannot be opened (#3699) (405a715)

Features

  • facade: add setOptions on f-data-validation-builder (#3773) (4008c86)
  • drawing: add optional property to control rotate handle of drawing element (#3750) (71ffde4)
  • facade: change data-validation facade api into sync (#3736) (cbae4c9)
  • record & replay commands with multi-mode (#3734) (047c9f2)
  • add replay-only mode to actionRecordPlugin (#3695) (a3cb5c4)
  • facade: add lifecycle and cellChange event api (#3626) (5fad25f)
  • formula: regexextract/regexmatch/regexreplace (#3282) (7ce334f)
  • sheets-ui: add formulaBar option (#3632) (d0a9f24)
  • support for rtl and farsi i18n (#3558) (b13168d)

Performance Improvements

  • permission: add row and column cache to optimize performance (#3634) (27eb2a3)
  • render in viewrange not all model (#3637) (7b1462b)