Skip to content

🎉 Release v0.3.0

Compare
Choose a tag to compare
@hexf00 hexf00 released this 29 Sep 11:05
· 423 commits to dev since this release

🎊 Univer@v0.3.0

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:

  • Support hiding the edit button in the conditional formatting options dropdown menu using the showEditOnDropdown parameter #3574
  • Copy and paste now carry the custom field #3487
  • Added Facade API for freezing rows and columns #3561
  • Added 29 statistical and 19 compatibility formula functions #3463
  • The number of formula functions has now reached 369, with a goal of exceeding 500

🐞 Bug Fixes

  • Fixed issues with some document exports failing
  • Fixed merged cell border style anomalies #3475 #3506
  • Fixed rendering timing issues for merged cells #3516
  • Fixed BooleanNumber enum type error #3571
  • Fixed scroll bar position offset when dragging with the mouse #3556
  • Fixed display of extra dividers when hiding context menu items #3552
  • Fixed data bar style offset #3535
  • Removed the need to import lodash in UMD mode #3605

💔 Breaking Changes

  • Adjusted the configuration method for collaboration, import, and export plugins. The old usage will be removed in the future, and the configuration will be unified when registering plugins.

Before:

configService.setConfig(AUTHZ_URL_KEY, `${httpProtocol}://${host}/universer-api/authz`)
configService.setConfig(SNAPSHOT_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/snapshot`);
configService.setConfig(COLLAB_SUBMIT_CHANGESET_URL_KEY, `${httpProtocol}://${host}/universer-api/comb`);
configService.setConfig(COLLAB_WEB_SOCKET_URL_KEY, `${wsProtocol}://${host}/universer-api/comb/connect`);
configService.setConfig(SEND_CHANGESET_TIMEOUT_KEY, 200);

configService.setConfig(EXCHANGE_UPLOAD_FILE_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/stream/file/upload`);
configService.setConfig(EXCHANGE_IMPORT_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/exchange/{type}/import`);
configService.setConfig(EXCHANGE_EXPORT_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/exchange/{type}/export`);
configService.setConfig(EXCHANGE_GET_TASK_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/exchange/task/{taskID}`);
configService.setConfig(EXCHANGE_SIGN_URL_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/file/{fileID}/sign-url`);

After:

univer.registerPlugin(UniverCollaborationClientPlugin, {
  authzUrl: `${httpProtocol}://${host}/universer-api/authz`,
  snapshotServerUrl: `${httpProtocol}://${host}/universer-api/snapshot`,
  collabSubmitChangesetUrl: `${httpProtocol}://${host}/universer-api/comb`,
  collabWebSocketUrl: `${wsProtocol}://${host}/universer-api/comb/connect`,
  sendChangesetTimeout: 200,
});

univer.registerPlugin(UniverExchangeClientPlugin, {
  uploadFileServerUrl: `${httpProtocol}://${host}/universer-api/stream/file/upload`,
  importServerUrl: `${httpProtocol}://${host}/universer-api/exchange/{type}/import`,
  exportServerUrl: `${httpProtocol}://${host}/universer-api/exchange/{type}/export`,
  getTaskServerUrl: `${httpProtocol}://${host}/universer-api/exchange/task/{taskID}`,
  signUrlServerUrl: `${httpProtocol}://${host}/universer-api/file/{fileID}/sign-url`,
});
  • Adjusted the licensing rules for commercial features. Commercial version users need to register their license key as follows when using commercial features:
  1. Install
pnpm add @univerjs-pro/license
  1. Register
import { UniverLicensePlugin } from '@univerjs-pro/license';

univer.registerPlugin(UniverLicensePlugin, {
    license: 'your-license-txt'
});
  • Plugin registration order has been adjusted. If you encounter an error, please check and ensure
    • UniverDocsUIPlugin must be registered after UniverUIPlugin
    • UniverRenderEnginePlugin should be registered before most plugins

📝 Univer Docs

🎉 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:

  • Support for rendering more unicode characters #3512
  • Improved stability

💔 Breaking Changes

  • Plugin developers should note that the editor has been refactored. The editor service-related content has been moved from @univerjs/ui to @univerjs/docs-ui #3486

Before:

import { IRangeSelectorService, RangeSelector, TextEditor, IEditorService } from '@univerjs/ui';

After:

import { IRangeSelectorService, RangeSelector, TextEditor, IEditorService } from '@univerjs/docs-ui';

🌐 Univer Server

🎉 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:

  • Optimized server-side installation experience

📢 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-28)

Bug Fixes

  • bg border return before getCell (#3623) (2e7b201)
  • data-validation: remove useless interceptor mutations (#3630) (fd48e15)
  • auto focus after select menu item (#3507) (a02e78b)
  • auto-fill: merge-cell bugs in auto-fill (#3606) (bf21d58)
  • border for merged cell (#3506) (1c4c237)
  • cell margin bottom should over 1 (#3595) (65ee6b2)
  • conditional-formatting: data bar render error (#3535) (f11c87f)
  • copy sheet should copy filter (#3592) (e3620ce)
  • design: improve empty options styling and messaging for Select (#3569) (3762706)
  • docs-link-ui: link text error (#3620) (1e1522c)
  • docs-ui: formula-editor can't scroll & edit link on cell editor (#3530) (6c4b96c)
  • docs-ui: paste link on link (#3518) (9fcd45b)
  • docs: doc selection refresh (#3585) (3687fff)
  • docs: flickering issues when first visit into the page (#3578) (b0afd99)
  • docs: support special emoticons (#3512) (61ee1cd)
  • e2e scrolling & add missing interface for sheet skeleton (#3584) (25609a0)
  • fix dv custom cell permission (#3559) (d1964fc)
  • fix horizontal merge wrong value (#3545) (b1ea6c3)
  • fix reduce function type error (#3563) (2506c3a)
  • formula: fix bycol/byrow/map (#3568) (5473a11)
  • mark selection should remove after some commands execute (#3467) (1e9cc47)
  • perf improving in set style cache (#3471) (03acbbb)
  • permission check use compose points (#3540) (7ef5059)
  • protect: fix protect performance (#3520) (d8b9271)
  • scrollbar offset when moving by mouse (#3556) (5ebbc02)
  • sheet: fix span cache not right issue (#3541) (543ade1)
  • sheet: fix summary performance (#3517) (0ab07d9)
  • sheets-data-validation: data validation perf issue on getCell (#3619) (4f3cd5c)
  • sheets-data-validation: ref-range (#3533) (f7f8269)
  • sheets-drawing-ui: float-dom error on scale (#3612) (5621216)
  • sheets-hyper-link-ui: link & doc markSelection error on merged cell (#3615) (21853cc)
  • sheets-thread-comment: comment export (#3543) (33f4592)
  • sheets-ui: fix issue causing a blank screen when clicking on the border panel (#3531) (99dd398)
  • sheets-ui: formula across subsheet (#3583) (69d513e)
  • sheets: disbale zoom ration on cell editing (#3596) (051094e)
  • sheets: fix insert row col range type (#3602) (8262f7f)
  • should scroll to changed position on set range values (bb4f035)
  • ui: fix display values for certain menu items (#3522) (3035e39)
  • ui: improve handling of CustomLabel default values (#3536) (fde58d7)
  • ui: optimize Menu component rendering and filtering logic (#3552) (6338846)
  • ui: revert column width input to initial value on menu close (#3562) (3cc2392)
  • use tab to insert new row (#3524) (1c34bd0)

Features

Performance Improvements