From a9b4c1a0040d8ee818ec2065fa40928f336a513b Mon Sep 17 00:00:00 2001 From: Denis Spitsyn Date: Wed, 18 Jun 2025 11:13:34 +0000 Subject: [PATCH] Add changelog v9.0.0 Co-authored-by: Denis Spitsyn Co-committed-by: Denis Spitsyn --- .aspell.en.pws | 62 +++++++++ CHANGELOG.md | 352 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 414 insertions(+) diff --git a/.aspell.en.pws b/.aspell.en.pws index b2f96f07b..4fb2159f1 100644 --- a/.aspell.en.pws +++ b/.aspell.en.pws @@ -1,4 +1,5 @@ personal_ws-1.1 en 580 utf-8 +accessKeyId ACOT ACOTH ActiveCell @@ -22,9 +23,13 @@ ApiBlockLvlSdt ApiBuilder ApiChart ApiComment +ApiCore +ApiCustomProperties ApiDocument ApiDrawing +ApiFormRoles ApiFreezePanes +ApiNotesPage ApiParagraph ApiRange ApiSlide @@ -40,6 +45,7 @@ arrData Asana asc ASC +ascii AscWord ashx aspose @@ -68,6 +74,7 @@ autostart AVERAGEA AVERAGEIFS AxcExt +az beforeCursor BESSELI BESSELJ @@ -85,12 +92,16 @@ BITXOR blockcontent blocklevelstd BMP +bool boolean +boundingBox br brower +bucketName bugfix bugfixes builded +bValue callbackUrl Callout CanUpdateTarget @@ -103,6 +114,7 @@ changesError ChartSheetSubstream checkbox CheckBox +checkBoxPr checkHealth CHIDIST CHIINV @@ -137,6 +149,8 @@ configs connectionAndInactivity ConnectionsOS COnOfftype +ContentControl +ContentControls convertasion Convertation ConvertContentView @@ -154,6 +168,7 @@ crypted cryptographic CSC CSCH +css csv CSV CSvmFile @@ -167,6 +182,7 @@ CUBESET CUBESETCOUNT CUBEVALUE customXml +CustomXML CVE cyrillic Cyrl @@ -176,12 +192,14 @@ Dansk dataset dataBinding DatePicker +datePickerPr DAVERAGE DBNum DCOUNT DCOUNTA de Decryptor +delegateRole deleteForgotten Deprecations DesktopEditors @@ -224,6 +242,7 @@ DsProxy DSTDEV DSUM DVAR +eastAsia eb Ec ECMA @@ -251,6 +270,7 @@ fb FDB FDIST FI +filePath fillForms FINV firefox @@ -261,12 +281,15 @@ fodp fods fodt folderPath +fontSlot forced ForcePathStyle forceView +forceWesternFontSize ForEach FormattedDiskPagePAPX formdata +FormPrBase formsdataurl formsubmit FORMTEXT @@ -301,6 +324,7 @@ GetCurrentContentControlPr GetCurrentSentence GetCurrentWord GetEndNotesFirstParagraphs +GetFontFamily GetFontNames GetFootnotesFirstParagraphs getForgotten @@ -342,6 +366,7 @@ gridlines GUID gzip gziped +hAnsi healthcheck healthCheck hideContentControlTrack @@ -362,6 +387,7 @@ HWPX icu ie IFNA +iframe IIS imageDark IMCOSH @@ -382,6 +408,7 @@ InsertOleObject InsertTextForm integrations init +integrators INTL INV io @@ -475,6 +502,7 @@ multitenancy mysql MySQL mysqlExtraOptions +namespace NativeEngine natively Nederland @@ -487,6 +515,7 @@ NIST nodehun nodejs NodeJS +nodeName NoHistory nonprinting npm @@ -498,6 +527,8 @@ numberings NUMBERVALUE Numpad NumPr +nValue +oCreated odf Odf ODF @@ -512,7 +543,9 @@ odt ODT oform OFORM +oLastPrinted OLEObjectData +oModified onChangeContentControl onDocumentContentReady onDocumentStateChange @@ -546,6 +579,7 @@ otp ots ott owncloud +oValue oxps nPage pageDown @@ -588,10 +622,12 @@ ppt PptFormatReader pptx PptxFormat +preload Preseentation PrintGridlines PrintHeadings privateKey +proxying PtgArea PtgList PtgName @@ -641,20 +677,25 @@ RRI rtf RTF RTL +runtimeConfig SAAS save savefile SaveLock saveUrl +sCategory Schweiz +sCreator screenreader ScrollToAbsolutePosition +sDescription sdk sdkjs sdt SearchAndReplace SECH SecurityError +secretAccessKey SectionPropertiesMapping selectwheel SELinux @@ -691,6 +732,7 @@ SetTopMargin setUsers SetVisible SetWatermarkSettings +sFormat sharded sharding shardkey @@ -699,13 +741,18 @@ SheetView showReviewChanges shrinkwrap si +sIdentifier SIGABR signatureLine Sinhala +sKeywords +sLanguage +sLastModifiedBy slidePlayerBackground Slovenčina Slovenská SmartArt +sName snaplines SNGL sockjs @@ -720,8 +767,11 @@ spawnOptions specifi Spellcheker Sql +sRevision ssl sslEnabled +sStatus +sSubject standardView startRPC startup @@ -729,9 +779,11 @@ statsd statusBar STDEV stirkeout +sTitle strikethrough sr Sri +storages STW submitForm substring @@ -739,8 +791,10 @@ SUMIFS SUMPRODUCT supervisord sv +sValue Svenska Sverige +sVersion svg SVG Svizzera @@ -797,6 +851,7 @@ uri URI url urls +useDirectStorageUrls UsedRange useradd UserCount @@ -805,12 +860,15 @@ useridoriginal username UsersCountOS usersfiles +ur UTF util verysilent ViewForms vhost VLOOKUP +VSD +VSDX VSTACK vml wav @@ -843,7 +901,11 @@ XLSX XLTX XMATCH xml +xmlMapping +xmlPartId +xmlStr XORCrypt +xPath xps XSS Yandex diff --git a/CHANGELOG.md b/CHANGELOG.md index 11a855ed7..88423847b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,357 @@ # Change log +## 9.0.0 + +### New features + +#### All Editors + +* Added new interface themes: Modern Light and Modern Dark +* Added saving of the last selected languages in spellcheck lists +* Added Arabic spellcheck dictionary used in sixteen dialects +* Added AI-powered macro generation from descriptions and VBA-to-JavaScript + conversion +* Added the interface translation into Urdu (ur-PK, Urdu (Pakistan)) +* Added support for TextArt text settings inside chart labels +* Added support for drawing the Up/Down Bars chart elements + +#### Document Editor + +* Added correct display of previews for paragraph numbers for RTL +* Improved positioning and settings of TextArt for RTL +* Improved drawing of borders and fill for paragraphs with RTL direction +* Enabled accurate cursor navigation with arrow keys based on the paragraph's + text direction +* Added the ability to display numbers using Hindi digits +* Added a setting in the File menu for selecting the preferred font size: + Western/Chinese for the Chinese interface language (Chinese (Simplified)) +* Added a Borders button to the Home toolbar to quickly set paragraph settings +* Added support for the `MD` format for reading + +#### Spreadsheet Editor + +* Added support for displaying bidirectional text +* Added the ability to select external data from another spreadsheet + +#### Presentation Editor + +* Added the ability to set the paragraph direction (Text Direction > RTL) + on the toolbar and in the advanced settings +* Added the ability to view animations with text +* Added the "Preserve" option to the Slide Master context menu + +#### Forms + +* Changed the appearance of the Signature and Image fields: the placeholder + and signature icon are now always displayed +* Improved user experience when filling in the Signature and Image fields +* Added a new `"type": "signature"` for the Signature field, used in the process + of filling out forms + +#### PDF Editor + +* Added the ability to set RTL direction for text +* The Edit Text option is available in the Community Edition build +* Implemented a `PDF` form editor +* Added copying pages between `PDF` files + +#### Diagrams + +* Release of the first version of the Diagram Viewer with the ability + to open `VSDX` files + +#### Convert + +* Added conversion of the `XLSB` format to the editor's internal format, + allowing editing and saving in `XLSX` without preliminary conversion + +#### Back-end + +* Added support for Azure Blob Storage (`storage.name = "storage-az"`) + for editor cache. To use, specify the endpoint, `bucketName` + and `credentials` (`accessKeyId` and `secretAccessKey`) +* Added flag `storage.useDirectStorageUrls` (`bool`), which controls the issuance + of links to external storages: direct links or proxying through the server +* Added the ability to prepare static editor data (`html`, `css`, `js`, `fonts`) + in the browser cache before opening the document using the + `?preload=placeholder` parameter to the link to `api.js` or a hidden `iframe` + with `preload.html` located next to `api.js` +* Added setting `runtimeConfig.filePath` - path to dynamic server config, + allowing to change parameters without restarting, similar to tenant configs +* Added the ability to set parameters and keys of AI models used in editors + on the /info page +* Added the ability for the server administrator to add own dictionaries + +#### Customization + +* Added parameter `customization.forceWesternFontSize`: `false`/`true` + for setting by integrators +* Added a parameter to hide the icon with the user's avatar/initials + in the header: `customization.layout.header.user`: `true`/`false`. + The setting is available to users with the extended license + +#### API + +* Added methods for creating/adding custom `ContentControls` + +```javascript +ApiDocument.prototype.AddCheckBoxContentControl = function(checkBoxPr) +ApiDocument.prototype.AddPictureContentControl = function(width, height) +ApiDocument.prototype.AddComboBoxContentControl = function(list, selected) +ApiDocument.prototype.AddDropDownListContentControl = function(list, selected) +ApiDocument.prototype.AddDatePickerContentControl = function(datePickerPr) +Api.prototype.CreateCheckBoxContentControl = function(checkBoxPr) +Api.prototype.CreatePictureContentControl = function(width, height) +Api.prototype.CreateComboBoxContentControl = function(list, selected) +Api.prototype.CreateDropDownListContentControl = function(list, selected) +Api.prototype.CreateDatePickerContentControl = function(datePickerPr) +``` + +* Added the ability to get `CustomXml` collection + +```javascript +ApiDocument.prototype.GetCustomXmlParts = function() +``` + +* Added support for handling the `Custom XML` collection + +```javascript +ApiCustomXmlParts.prototype.Add = function(xml) +ApiCustomXmlParts.prototype.GetCount = function() +ApiCustomXmlParts.prototype.GetById = function(xmlPartId) +ApiCustomXmlParts.prototype.GetByNamespace = function(namespace) +ApiCustomXmlParts.prototype.GetAll = function() +``` + +* Enabled functionality for managing the `Custom XML` collection element + +```javascript +ApiCustomXmlPart.prototype.GetId = function() +ApiCustomXmlPart.prototype.GetNodes = function(xPath) +ApiCustomXmlPart.prototype.GetXml = function() +ApiCustomXmlPart.prototype.Delete = function() +ApiCustomXmlPart.prototype.DeleteAttribute = function(xPath, name) +ApiCustomXmlPart.prototype.InsertAttribute = function(xPath, name, value) +ApiCustomXmlPart.prototype.GetAttribute = function(xPath, name) +ApiCustomXmlPart.prototype.UpdateAttribute = function(xPath, name, value) +ApiCustomXmlPart.prototype.DeleteElement = function(xPath) +ApiCustomXmlPart.prototype.InsertElement = function(xPath, xmlStr, index) +ApiCustomXmlPart.prototype.UpdateElement = function(xPath, xmlStr) +``` + +* Added support for individual `CustomXML` nodes + +```javascript +ApiCustomXmlNode.prototype.GetNodes = function(xPath) +ApiCustomXmlNode.prototype.GetXPath = function () +ApiCustomXmlNode.prototype.GetNodeName = function() +ApiCustomXmlNode.prototype.GetNodeValue = function() +ApiCustomXmlNode.prototype.GetXml = function() +ApiCustomXmlNode.prototype.GetText = function() +ApiCustomXmlNode.prototype.SetNodeValue = function(xml) +ApiCustomXmlNode.prototype.SetText = function(text) +ApiCustomXmlNode.prototype.SetXml = function (xml) +ApiCustomXmlNode.prototype.Delete = function() +ApiCustomXmlNode.prototype.GetParent = function() +ApiCustomXmlNode.prototype.Add = function(nodeName) +ApiCustomXmlNode.prototype.GetAttributes = function() +ApiCustomXmlNode.prototype.SetAttribute = function(name, value) +ApiCustomXmlNode.prototype.UpdateAttribute = function(name, value) +ApiCustomXmlNode.prototype.DeleteAttribute = function(name) +ApiCustomXmlNode.prototype.GetAttribute = function(name) +``` + +* Added methods to link `ContentControl` and `CustomXML` + +```javascript +ApiInlineLvlSdt.prototype.SetDataBinding = function(xmlMapping) +ApiInlineLvlSdt.prototype.GetDataBinding = function() +ApiInlineLvlSdt.prototype.UpdateFromXmlMapping = function() +ApiInlineLvlSdt.prototype.GetDataForXmlMapping = function() +ApiBlockLvlSdt.prototype.SetDataBinding = function(xmlMapping) +ApiBlockLvlSdt.prototype.GetDataBinding = function() +ApiBlockLvlSdt.prototype.UpdateFromXmlMapping = function() +ApiBlockLvlSdt.prototype.GetDataForXmlMapping = function() +``` + +* Added method for inserting formulas + +```javascript +ApiPresentation.prototype.AddMathEquation(sText, sFormat) +``` + +* Added new class `ApiNotesPage` for working with notes + +```javascript +ApiNotesPage.prototype.GetBodyShape() +ApiNotesPage.prototype.AddBodyShapeText(sText) +``` + +* Added methods to the `ApiSlide` class + +```javascript +ApiSlide.prototype.GetNotesPage() +ApiSlide.prototype.AddNotesText(sText) +``` + +* Added methods for getting presentation objects + +```javascript +ApiPresentation.prototype.GetAllOleObjects() +ApiPresentation.prototype.GetAllCharts() +ApiPresentation.prototype.GetAllShapes() +ApiPresentation.prototype.GetAllImages() +ApiPresentation.prototype.GetAllDrawings() +``` + +* Added methods for getting all slide templates + +```javascript +ApiMaster.prototype.GetAllLayouts() +``` + +* Added `ApiCore` and `ApiCustomProperties` classes + for working with file metadata + +```javascript +ApiCore.prototype.SetCategory = function (sCategory) +ApiCore.prototype.GetCategory = function () +ApiCore.prototype.SetContentStatus = function (sStatus) +ApiCore.prototype.GetContentStatus = function () +ApiCore.prototype.SetCreated = function (oCreated) +ApiCore.prototype.GetCreated = function () +ApiCore.prototype.SetCreator = function (sCreator) +ApiCore.prototype.GetCreator = function () +ApiCore.prototype.SetDescription = function (sDescription) +ApiCore.prototype.GetDescription = function () +ApiCore.prototype.SetIdentifier = function (sIdentifier) +ApiCore.prototype.GetIdentifier = function () +ApiCore.prototype.SetKeywords = function (sKeywords) +ApiCore.prototype.GetKeywords = function () +ApiCore.prototype.SetLanguage = function (sLanguage) +ApiCore.prototype.GetLanguage = function () +ApiCore.prototype.SetLastModifiedBy = function (sLastModifiedBy) +ApiCore.prototype.GetLastModifiedBy = function () +ApiCore.prototype.SetLastPrinted = function (oLastPrinted) +ApiCore.prototype.GetLastPrinted = function () +ApiCore.prototype.SetModified = function (oModified) +ApiCore.prototype.GetModified = function () +ApiCore.prototype.SetRevision = function (sRevision) +ApiCore.prototype.GetRevision = function () +ApiCore.prototype.SetSubject = function (sSubject) +ApiCore.prototype.GetSubject = function () +ApiCore.prototype.SetTitle = function (sTitle) +ApiCore.prototype.GetTitle = function () +ApiCore.prototype.SetVersion = function (sVersion) +ApiCore.prototype.GetVersion = function () +ApiCustomProperties.prototype.AddStringProperty = function (sName, sValue) +ApiCustomProperties.prototype.AddNumberProperty = function (sName, nValue) +ApiCustomProperties.prototype.AddDateProperty = function (sName, oValue) +ApiCustomProperties.prototype.AddBoolProperty = function (sName, bValue) +ApiCustomProperties.prototype.GetPropertyValueByName = function (sName) +``` + +* Added methods for getting instances of new classes + in the editor API + +```javascript +ApiDocument.prototype.GetCore() +ApiDocument.prototype.GetCustomProperties() +Api.prototype.GetCore() +Api.prototype.GetCustomProperties() +ApiPresentation.prototype.GetCore() +ApiPresentation.prototype.GetCustomProperties() +``` + +* Added methods for switching the visual presentation + of `Content Controls`, accepting values: `"boundingBox"`, + `"hidden"` + +```javascript +ApiInlineLvlSdt.prototype.SetAppearance = function(type) +ApiInlineLvlSdt.prototype.GetAppearance = function() +ApiBlockLvlSdt.prototype.SetAppearance = function(type) +ApiBlockLvlSdt.prototype.GetAppearance = function() +``` + +* Added methods for getting/setting the role and tag to the base class +for all forms, as well as the ability to set the role when creating a form +through the general form setting `FormPrBase.role` + +```javascript +ApiFormBase.prototype.GetTag = function() +ApiFormBase.prototype.SetTag = function(tag) +ApiFormBase.prototype.GetRole = function() +ApiFormBase.prototype.SetRole = function(role) +``` + +* Added methods to get forms by selected role or key + +```javascript +ApiDocument.prototype.GetFormsByRole = function(role) +ApiDocument.prototype.GetFormsByKey = function(key) +``` + +* Added method to get list of keys linked to the given role + +```javascript +ApiDocument.prototype.GetFormKeysByRole = function(role) +``` + +* Added a method to get the form value directly by key (for a group + of radio buttons, it returns Choice, i.e. the name of the selected item) + +```javascript +ApiDocument.prototype.GetFormValueByKey = function(key) +``` + +* Added methods for date field to work via built-in JavaScript + date class + +```javascript +ApiDateForm.prototype.SetDate = function(date) +ApiDateForm.prototype.GetDate = function() +``` + +* Added `fontSlot` parameter to `GetFontFamily` method, accepting values: + `"ascii"`, `"eastAsia"`, `"hAnsi"`, `"cs"` +* Added automatic font calculation from the theme + in the `GetFontFamily` method, if specified through the theme + +```javascript +ApiTextPr.prototype.GetFontFamily = function(fontSlot) +``` + +* Added a method to access the role management class, + returning an object of the new `ApiFormRoles` type + +```javascript +ApiDocument.prototype.GetFormRoles = function() +``` + +* Added methods for working with the `ApiFormRoles` class + +```javascript +ApiFormRoles.prototype.Add = function(name, props) +ApiFormRoles.prototype.Remove = function(name, delegateRole) +ApiFormRoles.prototype.GetCount = function() +ApiFormRoles.prototype.GetAllRoles = function() +ApiFormRoles.prototype.HaveRole = function(name) +ApiFormRoles.prototype.GetRoleColor = function(name) +ApiFormRoles.prototype.SetRoleColor = function(name, color) +ApiFormRoles.prototype.MoveUp = function(name) +ApiFormRoles.prototype.MoveDown = function(name) +``` + +#### Plugins + +* Added the ability to add custom buttons using a plugin for `ContentControl` + in the document editor + +#### Mobile + +* Enabled slide thumbnail panel adjustment upon device orientation change + ## 8.3.3 ### Fixes