> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.carbone.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Carbone v4.3.0 - News september 2022




![](https://storage.crisp.chat/users/helpdesk/website/f355e91d7615e000/carbone-v430-helpdesk_15binjh.gif)

Hi / Bonjour 👋

September announcement:  **Carbone version 4.3.0 is out** 🎉

### Update to the latest version

* Carbone Cloud API users: insert the header `"carbone-version":"4"`. Just `4` is enough to access the latest version, not `4.3.0`.
* Carbone Cloud Studio: On the top right of the home page, click on the settings button > Click on "Carbone Version" > Select `4.x.x`.

### What's new ?

🚀 **ADDED - Delete element with drop** 
Use the `:drop` formatter to delete elements from a document, such as `{d.image:ifEM:drop(image)}` to delete an image. It can be a paragraph, a table row, an image, a shape and charts! You won't have to use anymore `showBegin/showEnd` except for deleting a group of content, such as a whole page. Learn more:
* [Drop documentation](https://carbone.io/documentation.html#drop-element-)
* Tutorial to hide [paragraphs](https://help.carbone.io/en-us/article/how-to-hide-a-paragraph-conditionally-1ocoem4/), [images](https://help.carbone.io/en-us/article/how-to-hide-an-image-conditionally-f09687/), [one or multiple rows](https://help.carbone.io/en-us/article/how-to-hide-a-table-row-conditionally-dqqf22/), [shapes](https://help.carbone.io/en-us/article/how-to-hide-shapes-conditionally-lines-circles-squares-1uuughj/), or [charts](https://help.carbone.io/en-us/article/how-to-hide-charts-conditionally-miaavk/).

On the following template example, the `Order date` row is deleted if the `orderDate` value is empty:
![ODT template edited with LibreOffice](https://storage.crisp.chat/users/helpdesk/website/f355e91d7615e000/screenshot-2022-09-09-at-18470_u71gjf.png)

🚀 **ADDED: Accepts dynamic parameters in array filters, with infinite path depth.**
Filters were limited to maximum 2 depth objects, now unlimited depth can be defined, such as:
* `{d.subArray[.sub.b.c = 1].text}`: filter using infinite object path depth. Alternative syntax without a dot is also accepted (`{d.subArray[sub.b.c = 1]}`) for backward compatibility
* `{d.subArray[i = .sub.b.c].text}`: filter using dynamic values on the right operand
* `{d.subArray[i = ..parent.qty].text}`: filter using dynamic values from parent objects on the right operand
* `{d.subArray[.sub.b.c = ..parent.qty].text}`: filter using complex path for the left and right operand in the same time

✅ **FIXED - Carbone parsing with chained formatters**
When empty string are used between two single quotes. Ex. `{d.text:print(''):print('HIGK LMN')}` prints as expected `HIGK LMN` instead of `HIGKLMN`

⚡️ **IMPROVED - ODS templates support loops of dynamic images**
Setting the image anchor "To cell" is required.



Get all details with examples on the [changelog](https://carbone.io/changelog.html).
Follow us on [twitter](https://twitter.com/carbone_io) or [Linkedin](https://www.linkedin.com/company/carboneio) to get news and updates.

Cheers 🍻 - David, Guillaume and Steeve