commit_hash:4c7e35860e34cef43ca884a8cc05286a9aa50745
148 KiB
32.46.0
Android Client:
- Async binding no longer triggers if the DivData hasn't changed.
- Fixed alpha restoring at the end of fade animation in set of animations with different durations.
- Fixed memory leak in case when
Div2Viewis destroyed earlier than correspondingDiv2Context. - Headers are now important for accessibility.
- Supported custom typed actions.
- Supported reset of persistent variables and data in
DivStorage. - Supported typed action
scroll_towith destinationitem_idand correspondingscroll_to_item_idaction url.
iOS Client:
- Fixed a flickering issue in overlap container during transition animations caused by offscreen rendering.
- Fixed remote image distortion in wrap_content mode by using image size in points (scale = 1) for intrinsic layout.
Web Client:
- Added
set_cursor_positionaction. - Updated
sliderticks limits logic, the maximum number of ticks is now 1000.
32.45.0
Android Client:
- Fixed
Div2Viewself locks at async bindng.
iOS Client:
- Div-video
previewstrings (base64 image data, includingdata:URL form) are decoded on a background queue through the image holder pipeline instead of blocking layout on the main thread.
32.44.0
Android Client:
- Fixed ANR at
RuntimeStoreImplinitialization.
iOS Client:
- Fix blur effect during animations.
- Fixed visibility action resolve with collection item builder.
32.43.0
Android Client:
- Do not interrupt visit of div hierarchy without ExpressionResolverImpl.
- Fix ConcurrentModificationException during preload.
- Fixed
div-statestate restoring on rebind afterstate_id_variablechanges. - Shift debug view below status bar area.
Web Client:
- Fixed an issue where
visibility_actionswere called inside a component withvisibility=invisible. - The
!:operator now has higher precedence than logical and comparison operators.
32.42.0
Android Client:
- Fixed NoSuchElementException at
Div2View.trackChildrenVisibility()call. - Fixed showing of non-animated images in
gif-imagedownloaded viaGlideDivImageLoader. - Fixed showing of preview by url in
gif-imageafter rebind. - Prevent excessive lottie animations when div view is being recycled.
- Support
active_font_weight_valueandinactive_font_weight_valueintab_title_style. - Support preloading for lottie and video.
- Supported
.svgimages inPicassoDivImageLoaderandGlideDivImageLoader. - The
!:operator now has higher precedence than logical and comparison operators. video_sourcesmade optional forvideo.
iOS Client:
- Support
active_font_weight_valueandinactive_font_weight_valueintab_title_style. video_sourcesmade optional forvideo.
Web Client:
- Changed the default datetime conversion to a string according to the local time zone to better match other platforms.
- Fixed an issue with the layout of items in the
container, the total weight of which was less than 1. - Support
active_font_weight_valueandinactive_font_weight_valueintab_title_style. video_sourcesmade optional forvideo.
32.41.0
Android Client:
- Added
getTimestampfunction. - Added error logging for video playing.
- Fixed
ConcurrentModificationExceptionatPagerIndicatorConnector.attach()call. - Fixed an issue where non-modal tooltips intercepted the system back gesture on Android 10+.
iOS Client:
- Added SVG support in div-image preview.
- Added
getTimestampfunction. - Fixed z-order during transition_change animation.
Web Client:
- Added
getTimestampfunction. - Added support for the negative
letter_spacing.
32.40.0
Android Client:
- Deprecated
UriHandlerinterface. - Fix invalid timezone offsets during datetime formatting.
iOS Client:
- Fix text gradient rendering when reusing text view with non-zero frame.
32.39.0
Android Client:
- Fixed ConcurrentModificationException at
ErrorCollector.notifyObservers()call. - Fixed NoSuchElementException at
Div2View.discardChildrenVisibility()call. - Fixed incorrect transition duration inside a transition set.
- Fixed match_parent width child size inside a wrap_content parent with min size.
iOS Client:
- Added logging of video player fatal errors to
DivKitLogger. - Eliminated redundant animation triggers caused by isHighlighted oscillation during touch tracking.
- Fixed action_animation not returning to its original state, causing elements to remain visually stuck in the pressed (scaled down) state.
- Fixed animation playback in previews.
- Fixed the second slider thumb rendering with zero size when it first appears during an active snap animation.
- The number of ticks on the slider is limited to 1000 elements.
32.38.0
Android Client:
- Add variable description to VariableMutationException.
- Removed dependencies to
androidx.datastore:datastoreandorg.jetbrains.kotlin:kotlin-serialization.
iOS Client:
- Fixed Lottie animation repeat_count semantics: repeat_count now means the number of additional plays (repeat_count=0 plays once, repeat_count=1 plays twice, repeat_count=-1 plays infinitely).
- The custom action function has been implemented.
Web Client:
- Changed
lottiesrepeat_countlogic (to better align with other platforms).
32.37.0
Android Client:
- Added
getExpressionResolvermethod toDiv2Contextto accessExpressionResolverimplementation for givenDivData. Can be used for preloading when there is no createdDiv2View. - Changed indicator sizing behavior: in middle pager positions with 3 visible indicators, edge items now use
inactive_shapeinstead ofinactive_minimum_shape. - Fixed
gifimages loading byGlideDivImageLoader. - Fixed loading images from assets by provided
DivImageLoaders. - Fixed shadow blur rendering on certain devices.
- Introduced
DivCachedImageto transfer loaded images fromDivImageLoader.CachedBitmapis now deprecated — please migrate toDivCachedImage. PicassoDivImageLoaderis now deprecated because the Picasso library is outdated. Recommended alternatives for image loading:GlideDivImageLoader,CoilDivImageLoaderor custom implementation of theDivImageLoaderinterface.
iOS Client:
- Changed indicator sizing behavior: in middle pager positions with 3 visible indicators, edge items now use
inactive_shapeinstead ofinactive_minimum_shape. - The number of ticks on the slider is limited to 1000 elements.
Web Client:
- Added a warning about using gifs in the
div-imagecomponent.
32.36.2
Android Client:
- Fixed NoSuchElementException at
Div2View.trackChildrenVisibility()call.
32.36.1
Android Client:
- Fixed ConcurrentModificationException at
ErrorCollector.notifyObservers()call. - Fixed NoSuchElementException at
Div2View.discardChildrenVisibility()call.
32.36.0
Android Client:
- Fixed unhandled exceptions in
SvgDivImageLoader. - Fixed visibility actions not triggering after navigating back to screen.
iOS Client:
- Fixed comparison of two CachedRemoteImageHolders.
- Supported
bring_to_top_idin tooltips.
32.35.0
Android Client:
- Use microseconds at all duration histograms.
iOS Client:
- Added
DivReporter.reportAction(context). - Fixed an issue with visibility actions triggering on elements in an invisible container.
- Fixed scrolling issues in paginated galleries.
- Supported
item_spacingandline_spacingindiv-container. - Supported
substrate_divin tooltips.
Web Client:
- Check whether action is enabled right before execution.
32.34.0
Android Client:
- Experimantal API: Fixed
IllegalThreadStateExceptionduring asynchronous binding. - Experimental API: Fixed
ConcurrentModificationExceptionduring asynchronous binding. - Fixed separator positioning in RTL horizontal containers.
iOS Client:
- Restart contentAnimation in ContainerBlock when app goes from background to foreground.
- The slider is optimized for working with large ranges of values.
Web Client:
- Fixed
currencyinput mask for values below "1". - Fixed the layout of the
imagein several conditions (especially usingaspectand/ormin_size/max_size).
32.33.0
Android Client:
- Add support properties
substrate_divandbring_to_top_idtodiv-tooltip. - Check whether action is enabled right before execution.
- Fix text
alignment_verticalin ellipsis in api < 28. - Fixed
.svgimages scaling. - Fixed background image scale.
- Fixed image blur after
div-datarebind. - Supported
.svgimages insidetext.
iOS Client:
- Implemented currency masks for the input field.
32.32.0
Android Client:
- Fixed capturing leaking contexts at image loaders.
- Fixed Verification in StorageStatementExecutor.
- Fixed background and border drawing in ellipsis when text not ellipsize.
- Fixed background and border drawing in text ranges when custom height and alignment.
- Fixed debug views hiding (re-add views if something covers them).
iOS Client:
- Fixed display of ShimmerImagePreviewViewProvider.
Web Client:
- Fixed
gallerylayout in several conditions.
32.31.0
Android Client:
- Added bitmap size limiting to prevent Canvas rendering crash when loading large images and GIFs. New
limitImageBitmapSizeEnabledparameter in allDivImageLoaderimplementations (enabled by default, can be disabled via constructor). In your ownDivImageLoaderyou can override funneedLimitBitmapSize.
Web Client:
- Added support for the
font_familyinslidercomponent. - Added support for the
font_variation_settingsproperties (includingtext,select,input,sliderandtabscomponents). - Added support for the
transformationsproperty in all components (div-base). - Added support for the typed
customaction. - Fixed the layout of the
gallerywith thematch_parentelements along the axis perpendicular to scrolling. - Fixed the layout of the
match_parentitems insidepagerwithlayout_mode=wrap_content. CustomActionCallbacktype is now deprecated. UseCustomActionCallbackWithTypedinstead.
32.30.0
Android Client:
- Experimental API: added methods for async binding of Div2View.
iOS Client:
- Added
DivThemeManagercomponent to manage changes to the screen color scheme. - Added a global
themevariable that depends on the screen color scheme.
Web Client:
- Added support for the
preview_urlproperty in thegifcomponent. - Added support for the
substrate_divproperty in thetooltipcomponent. - Fixed
tabsdelimiterdefault values for thewidthandheight. - Fixed preview size with the
scale=stretchandno_scale.
32.29.0
Android Client:
- Fixed
Div2Context.reset()method. If called without flags, it now performs a full reset. - Fixed crash "config must not be null" when binding DivView.
- Fixed size of gallery with
wrap_contentsize and children withmatch_parentsize along cross axis. - Support property variable.
Div2Context.reset(RESET_BITMAP_EFFECT_CACHE)now clears the Bitmap effects cache.
Web Client:
- Added support for the
filtermethod of anarray. - Added support for the
getKeysandgetValuesdictmethods. - Added support for the
min_sizeandmax_sizeinmatch_parentsize. - Functions in expressions can now be accessed by their name (not call, but just name). Function names are now more important than variables with the same names.
32.28.0
Android Client:
- Add support property
preview_urltodiv-gif-image.
iOS Client:
- Add support property
preview_urltodiv-gif-image. - Fixed a possible scroll rollback when performing a wide swipe.
Web Client:
- Fix active tab scaling inside the scaled element.
32.27.0
Android Client:
- Fixed UI hovering when moving slider when there is a large difference between
min_valueandmax_value. - Show error details in popup window for small cards.
- Support Androidx Media3 library in
div-video-m3artifact anddiv-videodeprecate. - Use local resolver for tracking sight-actions inside gallery.
video-customis now deprecate. Usediv-video-m3instead.
iOS Client:
- Fixed bugs in visibility actions on iOS 26.
32.26.0
Android Client:
- Added subscriptions to
video_sourcesexpressions in DivVideo. - Notify DivView about various patch errors.
iOS Client:
- Fixed animator configuration update. Now, if animator parameters are set using expressions, they will be recalculated and displayed correctly.
32.25.0
Android Client:
- Support hot reloading via debug panel at DivView.
iOS Client:
- Fixed a possible issue where focus would disappear from elements within a gallery when changing the number of elements.
Web Client:
- Added support for the
propertyvariable type. - Fixed an issue with the layout of
wrap_contentcomponents insidecontainer.
32.24.0
Android Client:
- Fixed memory leak in DivBaseBinder by properly removing the pre-draw listener from ViewTreeObserver on detach.
- Fixed multiple observations of a single variable.
- Kotlin runtime null checks are disabled in release builds.
- Place custom video player view under preview in hierarchy.
iOS Client:
- Fixed crash when using empty gallery with paging scroll mode.
- Fixed hit test for DetachableAnimationBlockView.
- Fixed intrinsic size calculation for wide and tall images with wrap_content sizing.
Web Client:
- Fixed an error with missing global variables when calculating the values of local card-level variables.
32.23.0
Android Client:
- Add Div2Context.tooltipManager service for aquiring state of current tooltips.
- Fixed background and border drawing in text ranges when custom ellipsis is defined.
- Fixed memory leak in DivVariableController by preventing duplicate declarationObserver subscriptions when variable sources are added or restored.
iOS Client:
- Fixed an issue where some masked div-input views could display text from other div-input views.
- Fixed intrinsic size calculation for images with
wrap_contentsizing and constraints.
32.22.0
Android Client:
- Fixed view ids generating for different
Div2Views.
iOS Client:
- Fixed the application of fade animation on views with opacity.
Web Client:
- Fixed an issue with the timer properties validation.
32.21.0
Android Client:
- Fix state change and animation conflict.
- Fixed possible overflow of stored value lifetime.
- Support animated WebP format.
iOS Client:
- Fixed SwitchBlock UISwitch parametrs update from model.
- Fixed a bug that could cause the slider to render incorrectly when scrolling.
- Fixed a bug with infinite pager scrolling.
- Fixed a bug with resolving custom functions.
- Fixed handling of transitive dependencies in templates when using the
DivTemplates.resolvefunction. - Fixed possible duplication of interface elements during animation execution.
Web Client:
- Fixed a bug with converting different types of values in actions.
- Non-actionable containers of non-modal tooltips now pass motion events to window from which tooltip was initiated.
32.20.0
Android Client:
- Add
DivErrorsReporterfor external error handling. - Fix gradient positions not updating with animator and support colorMap for radial gradients.
- Fixed
urlandcolorvalues setting intodictandarray. - Fixed element size calculating in
gallerywith multiple columns. - Reload media on
setDataafterreleaseMedia. - Supported
min_sizeandmax_sizeconstraints for children withmatch_parentsize incontainerwithhorizontalandverticalorientation. - Supported
min_sizeandmax_sizeconstraints for children withmatch_parentsize ingallery.
Web Client:
- Fixed the layout of the
gridin various rare cases.
32.19.0
Android Client:
- Fixed cell layout of grid with vertical spans.
- Non-actionable containers of non-modal tooltips now pass motion events to window from which tooltip was initiated.
- Support accessibility for
switch.
iOS Client:
- Non-actionable containers of non-modal tooltips now pass motion events to window from which tooltip was initiated.
Web Client:
- Fixed the handling of the situation when the
min_sizeis greater than themax_sizein thewrap_contentsize.
32.18.0
Android Client:
- Fixed
IndexOutOfBoundsExceptionin grid when the last row contains cells with different spans.
iOS Client:
- Fixed a bug that caused animation to flicker when moving from state to state.
- Fixed infinite pager scrolling when initiated by an action.
32.17.0
Android Client:
- Support
div-text-rangemaskproperty. - Support item_spacing and line_spacing for container.
iOS Client:
- Fixed a crash in the gallery when deleting items.
- Fixed bug with switching tabs with dynamic height.
Web Client:
- Added support for the
item_spacingandline_spacingproperties incontainer.
32.16.0
Android Client:
- Added
decimalFormatfunction support. - Fixed crash in empty
pagerwithindicator. - Fixed text variable lookup in the
div-inputcomponent when a mask is defined. - Provide default DivDownloader and DivRequestExecutor.
iOS Client:
- Added properties cycle and empty setter errors handling.
- Fixed triggering of visibility actions in collections when changing the visibility of items.
32.15.0
Android Client:
- Fixed local variables observing.
- Supported
min_sizeandmax_sizeconstraints for children withmatch_parentsize incontainerwithoverlaporientation.
iOS Client:
- Added
decimalFormatfunctions and methods for formatting numbers. - Fixed switching pages in the pager with infinite scroll.
- Fixed the cause of the application crash when entering Cyrillic characters in the input field with a mask.
- Supported
div-text-rangemaskproperty.
Web Client:
- Fixed a bug that could cause duplicates to appear in
item_builderafter updating data. - Fixed access to local variables inside successful/unsuccessful callbacks of
submitanddownloadactions. - Fixed the logic of re-alignment in the
pagerwhen updating data. - Updated the logic of saving child element variables in
item_builders when updating data.
Kotlin JSON Builder:
- Added deprecation lint rule.
32.14.0
Android Client:
- Fix crash when applying second div patch.
- Fix input keyboardType not being applied.
iOS Client:
- Added property that is handeled with get and set methods.
- Fixed a bug with empty spaces in the pager in place of elements with
visibility: gone.
Web Client:
- Fixed the expectation of global variables in certain fields (
state_id_variable,text_variable,thumb_value_variableand the like).
32.13.0
iOS Client:
- Fixed the problem with the action
set_next_itemin the pager with infinite scrolling and clamp overflow.
Web Client:
- Added
decimalFormatfunction and method forintegerandnumber. - Fixed memory leak on every render call.
32.12.0
Android Client:
- Added releasing DivImageView and DivGifImageView inside MediaReleaseViewVisitor.
- Bump Rive to 10.3.1 to fix static rive animations.
- Fixed IndexOutOfBoundsException in PagerIndicator.
- Support divkit-asset for lottie.
- Support is_checked accessibility property.
iOS Client:
- Fixed calculation of lottie block sizes with fixed values.
- Fixed crash of infinite scroll pager built with item_builder.
32.11.0
Android Client:
- Add a cancelled callback to
DivImageDownloadCallback. - Added
cotfunction. - Added actions to
div-state. - Downgraded androidx-appcompat library to 1.6.1.
- Downgraded androidx-recyclerview to 1.3.0 and androidx-viewpager2 to 1.0.0.
- Fixed accessibility focus on empty containers.
- Fixed default typeface provider applying when no font properties defined in json.
- Fixed gallery item measurement when
maxSizespecified. - Fixed items removing in pager with infinite scroll.
iOS Client:
- Applying alignment_vertical to ranges in div-text.
- Fixed a bug that in some cases could lead to a mismatch between the size of the image container and its contents.
- Fixed a bug with painting the active part of the slider track.
- The text selection algorithm has been changed to bring it into line with the iOS standard. It is now impossible to select an empty text fragment.
Web Client:
- Added
getDictKeysandgetDictValuesfunctions. - Added support for expressions in the
lottieextension in thelottie_url,repeat_countandrepeat_modefields. - Added support for the relative action urls (like
/smth). - Fixed a bug with the
submitaction when using themethod=get/head. The request body will not be sent if there are no variables in it. - Fixed several issues with multiple
tooltips being displayed at the same time. - Fixed the issue with the custom context and the extension context, now they support access to local variables.
32.10.0
Android Client:
- Added
dicttoarrayconversion. - Added
lenfunction fordictvariables. - Fixed default value usage when property has incorrect value.
- Fixed switching of states with same ids.
- Support
preload_requiredfor images indiv-text. - Supported
functionsindiv-data.
iOS Client:
- Fix infinite
invalidateIntrinsicContentSizelayout cycle.
Web Client:
- Added
lenfunction fordictvariables.
32.9.0
Android Client:
- Brought back fixes for accessibility mode
merge. - Fixed
pager'sindicationclipping. - Fixed gallery item reordering after item builder data update.
- Make
font_weightoptional. - RenderEffect support moved under DivConfiguration flag.
- Updated compile SDK and target SDK to 35.
iOS Client:
- Added dict function
getDictKeys, which return a collection containing just the keys of the dictionary. - Added dict function
getDictValues, which return a collection containing just the values of the dictionary. - Added dict method
getKeys, which return a collection containing just the keys of the dictionary. - Added dict method
getValues, which return a collection containing just the values of the dictionary. - Added press_end_actions when touches are canceled.
- Make
font_weightoptional. - Supported is_playing for lottie_extension.
32.8.0
Android Client:
- Added ability to discard sequential drawing pass cancellation. Corresponding events will be logged to
Div2Logger. - Fixed ranges with actions in selectable text.
- Fixed unnecessary selection of ranges with actions.
iOS Client:
- Added DivKit Sample app on SwiftUI.
- Added len() function for dictionaries.
- Fixed animation usage when scrolling in tabs, triggered by an action.
- Fixed priority of
div-texttext_gradientandrange.text_color. - Fixed the bug with duplicating thumbs in the slider.
- Lottie-extension expressions support.
- Supported
update_structureaction.
Web Client:
- Fixed an error with the calculation of the expression for the
visibilityproperty of the child element of the gallery.
32.7.1
Android Client:
- Reverted fixes for accessibility mode
merge.
32.7.0
Android Client:
- Dump error monitor report to logcat.
- Remove view from TriggerExecutor's attachedViews when view is detached from window to prevent memory leaks.
- Supported
update_structureactions. - Updated Coil to 3.0.4.
iOS Client:
- Fixed a bug with the slider where the marks would change randomly when moving the slider.
- Fixed bug with updating slider value.
- Supported complex variables observing in get[Type]Value functions in
div-trigger.
Web Client:
- Added the
update_structureaction support. - Fixed the calculation of expressions using
booleanvariables and obtaining boolean values from arrays and dicts.
32.6.0
Android Client:
- Allowed to draw shadows defined by
shadowwithin transient div hierarchy. - Fixed actions inside containers with accessibility mode
merge. - Fixed content voicing in accessibility mode
merge. - Moved to RenderEffect from RenderScript for API 31+.
iOS Client:
- Added actions to
div-state. - Changed the phone number mask to avoid the possibility of entering expressions with a hyphen at the end, such as "+1 (900) 000-".
- Fix states updating inside block with
transition_out. - Fixed backspace behaviour with regex filter.
- Hid indicator if there is only one item in the pager.
InputPropertiesExtensionHandlerimplemented. It allows you to configure the following properties:enablesReturnKeyAutomatically,spellChecking.
Web Client:
- Expressions with the
getIntegerValue/getNumberValue/getBooleanValue/getStringValue/getColorValue/getUrlValuefunctions are now recalculated when changing the variables used in the first argument. - Fixed an issue with calculating the
animation_in/animation_outparameters in thetooltip. - The logic of
variable_triggersis unified with the work of all other expressions.
32.5.0
Android Client:
- Fixed GestireDetector creation on background thread.
- Fixed memory leak for LoadableImageView after release call.
- Instantly copy error report to clipboard when no space for details.
- Supported subscriptions to
get<Type>Valuefunctions.
iOS Client:
- Added
DivHostingViewadapter forSwiftUI. - Fixed gradient angle with different width and height.
- Fixed slider thump shaking at breakpoints when moving manually.
- Support
preload_requiredproperty for resources divs.
32.4.1
iOS Client:
- Adding DivKitSVG podspec.
32.4.0
Android Client:
- Fixed
itemsposition ingalleryafter state changed. - Fixed multiple actions handling on
textwithrangesorimages.
iOS Client:
- Fixed alignment in galleries with Right-To-Left orientation.
- Fixed freezing of videos when scrolling in the gallery.
- Fixed transition-in animations with delay.
- Support div-text focused_text_color.
- Сalling
enter_key_actionsfor a multiline input.
Web Client:
- Fixed incorrect logic, due to which the
filtersproperty of theinputcomponent did not work with an empty value.
Kotlin JSON Builder:
- Added ability to create Color outside DivScope.
- Added modify method for entities in Kotlin DSL.
32.3.1
iOS Client:
- Add DivKitSVG package.
32.3.0
Android Client:
- Fixed input actions not working for single line inputs.
- Fixed that the keyboard type would sometimes not change.
- Fixed triggers in elements built by item-builder.
- Fixed variables observing in elements built by
item-builder. - Prevent keyboard from resetting state after rebind.
iOS Client:
- Adding the target
DivKitSVGto support SVG images. - Fix space-evenly with gone items.
- Report warning "Touchable view is too small" only when both view's dimensions are non-zero.
- Support
tab_title_delimiterfordiv_tabs. - Supported hover and press actions.
Web Client:
- Fixed a issue with incorrect priority of
urlovertypedinactionsin rare cases.
32.2.0
Android Client:
- Transition animation fix so it clips rounted corners of an image.
iOS Client:
- Fixed incorrect height resolution for containers with aspect.
- Supported
div-sliderproperties. - Supported
font_variation_settingsindiv-text,div-input,div-slider,div-selectanddiv-tabs. - Supported
is_checkedproperty fordiv-accessibility.
Web Client:
- Fixed a bug with an
animatorthat could be accessed from a sibling component (theanimatorshould be found only from the element itself or a child).
32.1.0
Android Client:
- Crash by using blur = 0 и corner_radius = 0 fixed.
- Fixed an issue when triggers may not work in for multiple div views.
- Supported
font_variation_settingsproperty intextand text ranges,input,selectandsliderthumbs text.
iOS Client:
- Fix scrolling
div-pagerwithinfinite_scrollandset_next_itemaction on last item selected. - Size provider size now does not take into account margins of child views.
- Supported
wrap_contentfor images.
32.0.0
Android Client:
- Breaking change. The
valueof avariablecan now take expressions. The result of this expression will be used as the initial value of the variable. - Added the ability to load local SVG files for Android.
- Crash in DivTransitionHandler#beginDelayedTransitions fixed.
- Don't reset cursor position after input rebind.
- Keyboard now closes on missclick.
- Support enter_key_actions for multiline input.
iOS Client:
- Corrected gallery/pager twitching.
- Fix submit action sending outer variables.
- Fixed ignoring of
is_enabledparameter in div-actions. - Fixed issue with calling onFocus actions on inputs when focus was called programmatically.
- URLs with special characters are now handled automatically, no additional encoding is required.
- Update
return_key_typedynamically. - You can now use the "#" symbol in div-action urls to set color variables.
Web Client:
- Breaking change. The
inputcomponent will now applyfocusstyles to each focus, regardless of whether it is a keyboard or not. - Breaking change. The
urlvalue should now be a valid URL, as it already was on Android/iOS. - Breaking change. The
valueof avariablecan now take expressions. The result of this expression will be used as the initial value of the variable. - Breaking change. The order of evaluation of expressions in actions has been changed so that multiple actions in the same array behave as expected.
- Breaking change. The scrolling logic and behavior of the
pagercomponent have been changed. - Breaking change: The
booleanvariable now contains a boolean value, rather than the number 0/1. This means that anysubscribemethods will output a boolean value instead of a number. - Added support for the
atan2function. - Added support for the
infinite_scrollproperty in thepager. - Added the ability to scroll the
pagerusing the mouse. This behavior can be disabled using thepagerMouseDragEnabledconfiguration property. - The incorrect size of the
pagewith the "percentage" markup has been fixed.
Kotlin JSON Builder:
- Added template constructor with name builder based on template card.
31.14.1
Android Client:
- Fixed
itemsposition ingalleryafter state changed.
31.14.0
Android Client:
- Fixed an issue when triggers may not work in for multiple div views.
- Support of tan, acos, atan, atan2 functions.
- Tap_outside_actions - property in tooltips implemented.
- ViewCopiesKt: IllegalArgumentException: width and height must be > 0 fix.
- We used to check if there is a soft hyphen in the first 10 chars of a text, now we check if it's present in the text.
iOS Client:
- Shadow rendering has been adjusted to match other platforms.
Web Client:
- Fixed an error with the
integervariables in thesubmitaction (the bigint variable could not be converted to a string). - Fixed and issue with the
startandendpositions of the background. - Fixed the behavior of the
pagerwith elements that havevisibility=gone.
31.13.0
Android Client:
- Fixed images drawing in
pager. - Support expressions in
set_variableaction fordictvariables.
iOS Client:
- Added the ability to set collection variables (array and dictionary) from URL.
- Change wrong image name prefix for asset url.
- Fixed views popping to the foreground when performing animation in overlap containers.
- Support expressions in
set_variableaction fordictvariables.
Web Client:
- Fixed an erroneous situation where an action with a
scope_idwas launched and no such scope was found, the action will now fail. - Fixed the logic of the size of the
imagewithaspectandwrap_content. - Fixed the overflow logic of the
tabscomponent with the height ofmatch_parentandfixed. - The default conversion to string for the values
dictandarrayhas been changed to match Android/iOS.
31.12.0
Android Client:
- Added
cosandasinfunctions. - Fix for image vertical alignment after animation.
- Fixed
indicatordoesn't bind topagerwith noid. - Removed overrides of
dispatchDraw(). Border clipping is performed bydraw()calls. - Supported
startandendhorizontal alignment for image background.
iOS Client:
- Added
cotfunction. - Changed non-modal
DivToolippresentation. - Displays a warning if the animation cannot be shown because the element does not have an id.
- Fixed the transition_out animation when switching back to the default state.
- Font cache support implemented. Enabled by default. Can be disabled via
DivFlagsInfo.fontCacheEnabled.
Web Client:
- Added
cotfunction. - Added support for the
headervalue ofaccessibility.type. - Added support for the
high_priority_preview_showinimage. - Added support in some form for the
state_descriptionandhintproperties inaccessibility. - Disabled support for expressions in the
typeproperty for the valueswidthandheight(support was a mistake, this change will correspond to the current behavior of Android/iOS). - Fixed
tooltipswith templates. - Fixed an issue with the incorrect custom
heightof thetooltips. - Fixed the priority of
text_radientovertext_colorintext. - The
pager_idinindicatorand theidinpagerare now optional. - The accessibility of modal
tooltipshas been updated: now modal tooltips will loop focus inside the component when opening, and also return focus to the previously focused component after closing. - The error about
pagerswith the sameidnow issueas a warning instead of error. Please note that somebody may try to scroll them using an action, and this action will lead to unexpected behaviour. - The lookup logic for the
indicatorandpagerhas been changed, soindicatorwill find the nearestpager.
31.11.0
Android Client:
- Added support for
capture_focus_on_actionproperty. - Fix leaks and StackOverflows by stopping generation of expression resolvers outside RuntimeStore.
- Supported expressions in lottie extension params.
iOS Client:
- Added support for
color_mapproperty indiv-radial-gradient. - Fix transition_change animation.
- Fixed performance degradation for images with tint filter in text.
- Supported search for the nearest pager if
pager_idis not specified indiv-indicator.
Web Client:
- Added support for the
accessibilitymode=exclude. Interactive components are prohibited in it. - Added support for the
capture_focus_on_actionproperty. input/select/switchis now prohibited inside components with actions (as isselect, as well as any other interactive components with actions).
31.10.0
Android Client:
- Fixed preloading in case when tree includes
item-builders or local variables. - Supported
truncateproperty intext. Indicatornow attaches to the nearestpagerif nopager_idis specified.
iOS Client:
- Added
InputAutocorrectionExtensionHandler. - Added support for
capture_focus_on_actionproperty. - Added support for
clip_to_boundsproperty indiv-state. - Added support for
truncateproperty fordiv-text. - Fix transition_change animation.
- Fixed pager scroll actions interruption with visibility_actions.
Web Client:
- Added support for the
color_mapinradial_gradient. - Added support for the
scroll_axis_alignmentinpager. - Fixed an issue with an incorrect default state in
pagerwhendefault_itemis provided. - The case when the
videoPlayerProviderdoes not return anything is better handled. - The elements in the
pagernow use thepaddingsvalues when snapping the scroll.
31.9.0
Android Client:
- Fix animator on text gradient.
iOS Client:
- Added Voice Over focus when focusing on
DivInput. - Added support for
modewith value "transactional" andon_failed_actionsproperties indiv-patch. - Hide keyboard on tap outside.
- Replace deprecated
EdgeInsets.horizontalInsets/EdgeInsets.verticalInsetsAPI usages withEdgeInsets.horizontal/EdgeInsets.vertical. - Visual animation no longer requires specifying an element ID.
Web Client:
- Added support for
functionsin thecard(div data). Previously, they were supported only in components. - Added support for the
animation_typeandanimation_durationintabs. - Fixed a bug with the importance of properties in action, now
typedis more important thanurl. - Fixed an error message when a local function was found, but the arguments were incorrect.
- The logic of the "nested actions" warning has been updated, nested
<button>will no longer be rendered.
31.8.1
iOS Client:
- Fix pager infinite scrolling + scroll_axis_alignment start and paddings.
31.8.0
Android Client:
- Fixed an issue where
pagerpadding was not applied properly. - Fixed local video files playback.
- Fixed multiple UI update on variable change.
- Open DivVariableController.captureAllVariables.
iOS Client:
- Added public
applyPatchfunction inDivViewto allow applying patches from clients. - Added public func
getVariableValueinDivVariableStorageto getDivVariableValuefrom the storage. - Fixed a bug with visibility actions not working when resizing the DivView.
- Supported
animatedproperty forscroll_byaction. - Updated
parentPathproperty logic.
Web Client:
- Added support for
background_accessibility_descriptionfor thetooltip. If specified, the backdrop (background) of thetooltipis converted to a button with the specified text. - Added support for the
maskintext. - Added the ability to provide a custom implementation of the video player using the
videoPlayerProviderproperty. - Fixed a bug that caused the
indicatorelements to be non-clickable on thedesktopplatform. - Fixed a bug where the
videocomponent was not available for mouse/touch events (context menu, etc.). - Fixed an error with blinking the height of the
indicatorwhen changing the elements of thepager. - Fixed the
cloudbackground of thetextin Firefox (for the background of the entire text only). - Fixed the issue with the
pagerhanging ifdefault_itemwas specified. - Fixed typings for the package.
- The
indicatorhas been updated, which will be hidden if there is one element or less in thepager. - The tooltip accessibility has been updated: it now has the appropriate ARIA role and closes when the
Escapekey is pressed.
31.7.0
Android Client:
- Added a way for shine animation to have onPause/onResume lifecycle from client through
pauseShineObservable. - Do not hide keyboard by clicks on divs.
- Fixed access to local variables in
state. - Fixed access to variables in items built by
item_builder. - Fixed video player cache.
- Implemented independent tracking of
visibility_actionsanddisappear_actions. - Supported elements comparing by
reuse_idto optimizeitem_builderdata updating. - Updated Gradle to 8.13 and Android Gradle Plugin to 8.8.2.
iOS Client:
- Fixed
DefaultTooltipManager.reset()to make it close showing tooltips. - Input with mask updates text color when color scheme changes.
- Separated visibility counter storage for
visibility_actionsanddisappear_actions. Fixedlog_limitcommonidin bothvisibility_actionsanddisappear_actions. Added warning for commonidinvisibility_actionsordisappear_actions. - Supported
animation_in,animation_outproperties fordiv-tooltip. - Supported
passwordkeyboard_type.
Web Client:
- Added support for the
phoneinputmask. - Added support for the
rangesinslider. - Added support for the
scroll_toandscroll_byactions.
31.6.0
Android Client:
- Supported
filtersproperty ininput. - Added
Div2Context.closeTooltips()method. - Made
item_builderhave a higher priority thanitems, just like other platforms. - Fixed scroll position restoring in
gallerywhen first item is visible or in rtl-configuration. - Fixed
shinegradient angle. Angle goes counterclockwise and rotates the gradient relative to the horizontal line. - Fixed gallery scroll in
pagingmode.
iOS Client:
inputautocorrection value depends oninput_type.- Fixed arrays parsing in typed actions.
- Fixed calculation of sizes in
layout_provider.
Web Client:
- Added
animatedparameter toset_current_item,set_next_item,set_previous_item,scroll_forward,scroll_backward,scroll_to_position,scroll_to_end,scroll_to_startactions. - Added support for parsing
arrayanddictfrom a string (including both thediv-action://set_variableand thevariable.set('value')programming api). The format is json. - Added support for the
tap_outside_actionsandclose_by_tap_outsideintooltip. - Fixed
switchin rtl layout. - Fixed an error with an incorrect number of actions and
log_limit(visibility_actions/disappear_actions).
31.5.0
Android Client:
- Added PreloadFilter interface for the DivPreloader, designed to allows you to control which content needs to be preloaded, regardless of the preloadRequired value for the element.
- Added resume/pause for shine extension while gone.
- Added support for the
submitaction. - Fixed
containerwidth calculating for text content with enabledtighten_width. - Fixed content alignment in
containerin rtl-configuration. - Fixed error handling at optional expression list parsing.
- Fixed gallery snapping perfomed after fling gesture.
- Fixed linear gradient size calculation.
- Prevent patch from modifying items in containers so item_builder could continue working after patch.
- Supported
Div2View.setVariable(name, value)for array variables.
iOS Client:
- Fixed transition animation when view size changes.
- The size of resizable elements with a given weight is now calculated without taking margins into account. This means that if you make two or more elements in a container with the same weight, their size will be the same even if one or more of them have margins set.
- Updated
div-tooltipaccessibility.
Web Client:
- Added a warning for the
transition_id/transition_out/transition_changeproperties without the requiredidproperty when changing state. - Added configuration flag
pagerChildrenClipEnabled. It can be useful in cases with shadow elements of apager. - Added support for the
color_mapproperty in the linear gradient. - Added support for the
cross_axis_alignmentinpager. - Added support for the
dashedstroke style. - Added support for the
non_modalmode intooltip. - Added support for the
submitaction. - Added support for the
wrap_contentlayout_modeinpager. - Fixed an issue with the tapable content inside
tabs. - Fixed the default value of
column_countfor thegridcomponent. Now it's required, as written in the schema. - Fixed the recreation of neighboring components when using the patch.
- Fixed the styles of
menu_items. - Fixed virtual keyboard in
inputwithkeyboard_type=number.
31.4.0
Android Client:
- Div2View.discardVisibilityTracking() now public for cancelling visibility tracking.
- Fixed corner clipping of elements inside transient hierarchy.
- Improved complex rebind.
- Supported dashed stroke style.
- Use a CME-safe collection to resolve crashes occurring during patch application with item_builder.
iOS Client:
- Supported
color_mapparameter in linear gradient. - Supported
dashedstroke style indiv-border. - Updated
TooltipEventstruct withdiv-tooltipproperties.
Web Client:
- Added
applyPatchapi for an DivKit instance. - Added support for the
is_playingparameter in thelottieextension. - Fixed
functionsinheriting. - Fixed empty text height measurement.
- The
derviedExpressionapi for extensions has been added. It allows you to subscribe to any expression changes. Do not forget to unsubscribe!. - The
downloadcallbacks have been fixed, which will now be more reliable in several erroneous situations.. - Throw errors when switching to ambiguous state.
31.3.0
Android Client:
- Fixed items creation by
item_builderincontainerwith local variables. - Removed redundant check for API 26.
- Throw errors when switching to ambiguous state.
- Supported non-modal tooltip mode and
close_by_tap_outsideflag.
iOS Client:
- Add flag
defaultTextAutoEllipsize. It allows to change default value ofauto_ellipsizeproperty tofalse. - Added
modesupport fordiv-tooltip. - Changed the definition of the number of lottie animation repetitions in the "repeat_mode": "reverse" mode.
- Fixed memory leak in
DivStateManager. - Fixed separators in
containerwith gone items. - Now one animation playback in any direction is considered one unit.
- Supported
div-textauto_ellipsizeproperty. Default value istrue. - Supported
indexing_directionandtint_modeproperties forimageindiv-text.
Web Client:
- Fixed an issue with
containerseparators rendereed between invisible elements. - Fixed, which allows you to return dicts values and arrays in expressions inside actions.
31.2.0
Android Client:
- Fixed StackOverflowError at video playback during state change.
- Fixed issue when text range
font_familyproperty was ignored. - Use Handler in timers instead of java.util.Timer.
- Fixed empty text height measurement.
iOS Client:
- Added
DivCardUpdateReasontypealias forDivActionURLHandler.UpdateReason. - Added
close_by_tap_outside/tap_outside_actionssupport for tooltips. - Fixed shadow clipping during animation.
- Fixed timers lifecycle.
- Separated trigger set and init behind
DivFlagsInfo.initializeTriggerOnSet.
31.1.0
Android Client:
- Supported
cross_axis_alignmentinpager. - Supported
scroll_axis_alignmentinpager.
iOS Client:
- Added
downloadaction handler. - Fixed
DivFlagsInfo.useUrlHandlerForVisibilityActionsbehavior. - Fixed
pagerpaddings. - Fixed a bug where short taps on a button did not animate.
- When rendering grid view, the min_size property for height is now respected.
Web Client:
- Added support for switching states in the
tooltip. - Added support for the
filtersproperty in theinputcomponent. - Added support for the functions
tan,asin,acos. - Fixed types for the
directionproperty. - The
focus_elementaction has been changed to move the cursor to the end of theinputcomponent (to match the behavior of native clients). - The requirement for a unique
idfor visibility change transitions has been removed (this change corresponds to the current behavior of the Android client).
31.0.0
Android Client:
- Removed method
DivKitConfiguration.Builder.histogramConfiguration(HistogramConfiguration). UseDivKitConfiguration.Builder.histogramConfiguration(Provider<HistogramConfiguration>)instead. - Removed method
HistogramBridgerecordTimeHistogram(String, Long, Long, Long, TimeUnit, Long). UseHistogramBridgerecordTimeHistogram(String, Long, Long, Long, TimeUnit, Int)instead. - Removed constructor
Div2Context(Activity, DivConfiguration). UseDiv2Context(ContextThemeWrapper, DivConfiguration),Div2Context(ContextThemeWrapper, DivConfiguration, Int)orDiv2Context(ContextThemeWrapper, DivConfiguration, Int, lifecycleOwner?)instead. - Removed property
Div2Context.globalVariableController. UseDiv2Context.variableControllerinstead. - Removed method
Div2Context.warmUp2(). UseDiv2Context.warmUp()instead. - Removed method
Div2Context.resetVisibilityCounters(). UseDiv2Context.reset(Div2Context.RESET_VISIBILITY_COUNTERS)instead. - Removed class
GlobalVariableController. UseDivVariableControllerinstead. - Removed method
DivConfiguration.Builder.globalVariableController(GlobalVariableController). UseDivConfiguration.Builder.variableController(DivVariableController)instead. - Removed property
DivConfiguration.globalVariableController. UseDivConfiguration.variableControllerinstead. - Removed class
DivAutoLogger. - Removed method
DivConfiguration.Builder.autoLogger(Any). - Removed method
DivConfiguration.Builder.divLogger(Any). - Removed class
DivCustomViewAdapter. - Removed method
DivConfiguration.Builder.divCustomViewAdapter(DivCustomViewAdapter). UseDivConfiguration.Builder.divCustomContainerViewAdapter(DivCustomContainerViewAdapter)instead. - Removed class
DivCustomViewFactory. - Removed method
DivConfiguration.Builder.divCustomViewFactory(DivCustomViewFactory). UseDivConfiguration.Builder.divCustomContainerViewAdapter(DivCustomContainerViewAdapter)instead. - Removed method
DivConfiguration.getDivVisibilityChangeListener(). UseDivConfiguration.getDivVisibilityChangeListeners()instead. - Removed method
DivCustomContainerChildFactory.bindChildView(View, Div, DivStatePath, Div2View, ExpressionResolver). UseDivCustomContainerChildFactory.bindChildView(View, Int, Div, DivStatePath, Div2View, ExpressionResolver)instead. - Removed method
DivTypefaceProvider.getRegularLegacy(). UseDivTypefaceProvider.getRegular()instead. - Removed method
DivTooltipRestrictor.canShowTooltip(View, DivTooltip). UseDivTooltipRestrictor.canShowTooltip(Div2View, View, DivTooltip, Boolean)instead. - Removed method
DivTooltipRestrictor.canShowTooltip(Div2View, View, DivTooltip). UseDivTooltipRestrictor.canShowTooltip(Div2View, View, DivTooltip, Boolean)instead. - Removed method
DivTooltipRestrictor.DivTooltipShownCallback.onDivTooltipShown(View, DivTooltip). UseDivTooltipRestrictor.DivTooltipShownCallback.onDivTooltipShown(Div2View, View, DivTooltip)instead. - Removed method
DivTooltipRestrictor.DivTooltipShownCallback.onDivTooltipDismissed(View, DivTooltip). UseDivTooltipRestrictor.DivTooltipShownCallback.onDivTooltipDismissed(Div2View, View, DivTooltip)instead. - Removed constructor
DivPreloader(DivImagePreloader?, DivCustomViewAdapter?, List<DivExtensionHandler>). UseDivPreloader(DivConfiguration)orDivPreloader(Div2Context)instead. - Removed method
DivImagePreloader.preload(Div, ExpressionResolver, DivImagePreloader.Callback). UseDivPreloader.preload(Div, ExpressionResolver, DivPreloader.Callback)instead. - Removed method
ViewPreCreationProfile.FixedPreCreationProfile(...). Use constructorViewPreCreationProfile(...)instead. - Removed class
LinearLayoutWithCenteredDividers. - Removed interface
MainTemplateProvider. UseCachingTemplateProviderinstead. - Removed method
DivActionHandler.handleUri(Uri, DivViewFacade). UseDivActionHandler.handleActionUrl(Uri?, DivViewFacade)instead. - Removed extension method
DivVideo.createPreview(ExpressionResolver). - Marked as internal class
BuiltinFunctionProvider. - Fix text appearance of ranges that overlap each other.
- Removed custom XML attributes of
AspectImageView. - Set cursor at the last position on focus action.
- Supported
layout_modewrap_contentinpager. - Fixed combination of line heights set for whole text and specific ranges.
iOS Client:
- Breaking change. From now the default tooltip width is
match_parent(previously waswrap_contentwhich did not match the defaultdiv-basebehavior). - Removed
DivActionHandler.handleDivActionUrlmethod. - Removed
DivActionLoggerprotocol. UseDivReporterinstead. - Removed
DivActionURLHandlerpublic initializer. - Removed
DivActionURLHandler.PerformTimerActiontypealias. - Removed
DivActionURLHandler.UpdateCardActiontypealias. - Removed
DivBlockModelingContext.showToolipproperty. - Removed
DivFlagsInfo.imageLoadingOptimizationEnabled. This feature is already enabled by default. - Removed
DivKitComponents.UpdateCardActiontypealias. - Removed
DivTriggersStoragepublic initializer. This class in not intended to be constructed outside DivKit. UseDivKitComponents.triggersStorageinstead. - Removed
DivVariableUpdaterprotocol. - Removed
DivVariablesStorage.ChangeEvent.newValuesproperty. UseDivVariablesStorageto access new values directly. - Removed
DivVisibilityCountingprotocol. - Removed
ExpressionResolverpublic initializers. This class is not intended to be constructed outside DivKit. - Removed
ExpressionResolver.VariableTrackertypealias. - Removed
UIActionEventPerforming.perform(uiActionEvents:from:)protocol requirement. - Removed
updateCardActionargument fromDivKitComponentsinitializer. ObserveupdateCardSignalproperty instead. - Removed
UserInterfaceAction.DivActionParamsinitializer withcardIdargument. Use another initializer withpathargument instead. - Removed
DelayandDurationtypes. - Changed return type of
DivStatePath.makeDivStatePathmethod to non-optional. - Class
DivLastVisibleBoundsCachemarked with@_spi(Internal). - Class
DivLayoutProviderHandlermarked with@_spi(Internal). - Class
DivVisibilityCountermarked with@_spi(Internal). - Class
SizeProviderExtensionHandlermarked with@_spi(Legacy). Usediv-base.layout_providerAPI instead. ShowTooltipActiontypealias moved fromDivActionURLHandlertoDivActionHandler.DivActionHandlerinitializer marked with@_spi(Legacy).DivBlockModelingContextinitializer marked with@_spi(Internal), removed some arguments. You should not createDivBlockModelingContextin your code. UseDivKitComponents.makeContextif you really need to.- Struct
DivBlockStateStorage.ChangeEventbecomes internal. - Struct
IdAndCardIdbecomes internal. - Method
DivVariablesStorage.makeVariablesmarked with@_spi(Legacy). DivDatamarked asSendable.- Added
DivFlagsInfo.useUrlHandlerForVisibilityActions. - Added Xcode 16.2 / iOS 18.2 compatibility.
- Supported
baseline_offsetforrangeindiv-text. - Fixed
div-stateswitching in tooltips.
Web Client:
- Breaking change. Api
Ya.Divkitin window is now deprecated, and theYa.DivKitshould be used (please note the big letter "K" instead of the small "K"). - Breaking change. Browsers/Node,js now require BigInt support (Chrome 58 -> 67, Safari 11 -> 14, Firefox 67 -> 68, Node.js 8 -> 10.4). Integer values in markup expressions now always use BigInt.
subscribeand other methods for integer variables now always return BigInt values. - Breaking change. Components with actions (not links) are now rendered using a
button. This may change the default tap animation in iOS and other minor updates. - Breaking change. Store methods
getValue/setValueare now deprecated. Provide methodsget/setinstead. - Breaking change. The build was redone using Vite/Rollup. This changes the situation a bit: there is no longer a css map, and the ESM file versions are no longer minimized. Browser and CJS versions with global variables are still minimized.
- Breaking change. The logic of the
multipleparameter fortooltipshas been brought into line with other platforms, now tooltips withoutmultipleare shown no more than once, and with - as many as you like (but no more than one at a time). - Breaking change. Tooltips are modal by default.
- Breaking change:
doubletap_actionsnow preventsactionsfrom being called (to match Android behaviour). - Breaking change: non-interactive elements will now ignore clicks (to better match the native behavior of DivKit).
- Added
getStoredArrayValueandgetStoredDictValuefunctions. - Added support for the
longtap_actionson the non-touch platforms (desktop). - Added support for the
set_statetyped action. - Added support for the
set_stored_valuetyped action. - Changed
doubletap_actionsdetect logic. - Fixed
arrayanddictvariable types in d.ts.
Schema
- Changed
div-action-download.urlproperty type tourl.
30.33.0
Android Client:
- Add
animatedparameter toset_current_item,set_next_item,set_previous_item,scroll_forward,scroll_backward,scroll_to_position,scroll_to_end,scroll_to_startactions. - Added
ImageTransformerforLoadableImageView. - Added
shineextension. - Added support for
press_start_actions,press_end_actions,hover_start_actionsandhover_end_actions. - Deprecated
externalImageinLoadableImageViewuseImageTransformerinstead. - Fixed NPE at transition animation end.
- Fixed crash during svg image loading.
- Fixed end padding applying along the scroll axis in
pager. - Fixed issue when
Div2Viewskips drawing if layout contains text with autoellipsize enabled. - Fixed offscreen pages drawing in
pager. - Lighten R8 rules.
- Save Disposable in DivActionBinder to prevent subscription leak.
iOS Client:
- Added
atanfunction. - Added
getStoredArrayValue,getStoredDictValuefunctions. - Added
match_parentwidth support for tooltips. - Added
tan,asin,acosfunctions. - Added arrays and dictionaries support for
set_stored_valueaction. - Added reporting of "Touchable view is too small" warnings from DecoratingBlock's view.
- AnimatableView and AnimatableViewFactory are deprecated. Use AsyncSourceAnimatableView and AsyncSourceAnimatableViewFactory instead. The new protocols allow you to process an animation source asynchronously.
- Fixed animation of stateview subviews.
- Fixed ternary operator parsing.
- Made
showTooltip(info:)method inDefaultTooltipManagerpresent a tooltip view asynchronously, which fixes the issues with its visibility-actions. - Pager infinite scroll logic was changed, some bugs were fixed.
- Set minimum animation time.
- Supported corner_radius param in shimmer extension.
- Supported empty cells in a row in
div-grid.
Web Client:
- Added
downloadtyped action support. - Added
is_enabledproperty support for theslider. - Added new functions:
pi,toRadians,toDegrees,sin,cosandatan. - Added support for the
baseline_offsetproperty intextcomponent. - Added support for the typed
timeraction. - Added support for the typed
videoaction. - Disabled extra crop on
transition_in/transition_out/transition_changeanimations. - Fixed a bug where the
tooltipandmenuused the global context instead of the component context (invoking actions, variable references, etc.). - Fixed the
pagerlayout withitem_spacing= 0. - The layout of the
pagerelements with overflow has been fixed.
30.32.0
Android Client:
- Added
baseline_offsetproperty for text ranges. - Added
pi,toRadians,toDegrees,sinfunctions. - Fixed alpha in div wasn't applied to shadow.
- Fixed empty URL beacon sending.
iOS Client:
- Added
cosfunction. - Added
pi,sin,toRadians,toDegreesfunctions. - Added
scroll_by/scroll_toactions support. - Added
set_stored_valueaction support. - Supported wrap-content
layout_modeindiv-pager. - Trunсation token is taken into account when calculating the height of the text block.
30.31.0
Android Client:
- Fixed updating variables by
layout_providerfor recycled views ingallery. - Supported
is_enabledproperty inslider. - Supported array methods:
getInteger,getNumber,getString,getBoolean,getColor,getUrl,getArray,getDict,isEmpty. - Use neutral accent colors to ensure they contrast well with any theme.
- Fix border drawing of transient views.
iOS Client:
- Added
set_stateaction support. - Added
stepparameter support inset_next_item/set_previous_itemactions. - Added empty
div-gridsupport. - AnimatableView and AnimatableViewFactory are deprecated. Use AsyncSourceAnimatableView and AsyncSourceAnimatableViewFactory instead. The new protocols allow you to process an animation source asynchronously.
- Fixed layout of items with constrained size in overlapped
div-container. - Fixed paddings in
div-container. - Fixed size calculation of
div-containerwith paddings and aspect height. - Restricted integer/number as string parsing.
Web Client:
- Added support for
accessibilityproperty in images oftext. - Added support for
indexing_directioninimagesinsidetext. - Added support for the
clip_to_boundsproperty in thestate. - Added support for the
press_start_actions,press_end_actions,hover_start_actionsandhover_end_actions. - Added suuport for the
item_buildrin thegallerycomponent. - Change the
max_lengthimplementation for theimputcomponent to provide a better experience for mobile users. - Fixed
paddingslogic in the end of thegallery. - Fixed a bug with modification of the original json when processing
corners_radius. - Fixed access to card-level variables and global variables "through" local variables.
- Fixed an unhandled error when the
switchcomponent was created without required variable. - Fixed the
action_animationbug, which took effect for components withoutactions. - Fixed the logic of layout the
videousing the width and height ofmatch_parent. - Fixed types for the package.
30.30.0
Android Client:
- Fixed border clipping of views placed in transient container.
- Postpone trigger execution until the end of the bind process. Otherwise, actions for displaying tooltips may not work properly.
iOS Client:
- Fixed
div-gallerypaddings and page size calculation. - Fixed number to boolean conversion.
Web Client:
- Added limited support for the
accessibility->typeproperty (onlybutton,image,checkboxandradiovalues is supported). Added support for theaccessibility->is_checkedproperty. - Added typed actions
show_tooltipandhide_tooltip.
30.29.0
Android Client:
- Added support for
indexing_directionproperty intext.image. - Fix video cache to take videoPlayer by id.
- Fixed
durationandtick_intervalvalues in test screens fortimers. - Fixed actions specified in
focusproperty indiv-inputdoesn't run when focus is manipulated through actions. - Fixed crash in case when gallery was replaced to pager with the same id or vice versa.
- Fixed gallery cross axis alignment.
- Supported
div-functionindiv-base. Functions can be declared in any div element. Access to functions is carried out in the same way as local variables.
iOS Client:
- Added
ShineExtension. - Adjusted visibility actions work for video start.
- Fix DivTypedValue parsing.
- Fixed background animation for actions.
- Supported
div-sizefordiv-switch.
Web Client:
- Added support for local
functionsin all components. - Added support for the
item_builderin thepagercomponent. - Added support for the
switchcomponent. - Fixed an issue with the
pagerscrolling to an item in some situations. - Fixed an issue with the layout of nested
pagers.
30.28.0
Android Client:
- Fix gesture extension. Now extension works at regression test (note that vertical swipes are intercepted by regression container).
- Added support for
clip_to_boundsproperty indiv-state. - Fixed
placeholder_colorsubscription forDivImage. - Fixed animator direction when
reversevalue was not taken into account. - Fixed crash in
indicatorafter rebind with new item count. - Fixed string template tokenizaton.
- Supported
applyPatch()forDivData. - Supported
div-switchelement. - Supported
enter_key_typeandenter_key_actionsproperties fordiv-input.
iOS Client:
- Add variables to the request body in
DivNetworkSubmitter. - Fixed inserting in the middle of the single
div-input. - The snapshot test image generation has been updated to allow additional DivViews to be displayed.
Web Client:
- Added support for the
default_itemproperty inpager. - Added support for the
enter_key_actionsproperty in theinputcomponent. - Added support for the
validatorsproperty ininputcomponent. - Added support for the property
enter_key_typeininput. - Added support of variable
animators. - Changed the size logic of the
match_parenttooltips to calculate the size of the window instead of the parent element (to align with the logic of Android). - Fixed a bug with tracking changes to objects in methods. Also fixed an issue with
walkapi. - Fixed a rare markup issue with the
tab_title_delimiterintabscomponent. - In the
videocomponent,aspectis now more important thanheight. - Removed unintended support for numeric values (without expressions) inside the
textproperty for thetextcomponent. This is done to align behavior across platforms.
30.27.0
Android Client:
- Fixed
borderafterblur.
iOS Client:
- Added
removefunc forDivVariableStorage. - Tooltip position always fits within the screen bounds.
30.26.0
Web Client:
- Incorrect caching of method calls has been fixed.
30.25.0
Android Client:
- Close tooltips on backPress when screen reader is turned on.
- Fixed drawing shadows on tooltip views.
- Fixed how
DivPagerViewis shown when it wraps its children along cross axis and children have different dimensions along that axis. NowDivPagerViewchooses its dimension as maximum of dimensions of initially visible children.
iOS Client:
- Added XCode 16.0 / Swift 6 support.
- Added new typed action
div-action-hide-tooltipthat can be used instead ofdiv-action://hide_tooltip. - DivPatchProvider.getPatch method extended with DivActionInfo parameter.
- Supported
div-switch. - Supported
enter_key_typeandenter_key_actionsproperties fordiv-input.
Web Client:
- Added
directionproperty into extension context. - Added
isEmptymethod for the arrays. - Added
scope_idaction property support. - Fixed a bug with handling incorrect values of
border->has_shadow. - Fixed a bug with incorrect handling of visibility actions that were targeted at local variables.
- Fixed several
pagerlayout issues. - The
lottieextension now uses thescale,aspect,content_alignment_horizontalandcontent_alignment_verticalproperties from the original component.
30.24.0
Android Client:
- Added API to force specific
Div2Viewto use canvas clipping.
iOS Client:
- Add
isEmpty()method to dict and array. - Added
div-focus.next_focus_ids.forwardsupport. - Added new typed action
div-action-show-tooltipthat can be used instead ofdiv-action://show_tooltip. - Consider the safe area when calculating the tooltip position.
- Fix statusbar blinking.
- Fixed unnecessary focus clearing in inputs.
Web Client:
- Added support for a
cloudbackground forrangeintext. - Added support for the
tab_title_delimiterproperty in thetabscomponent. - Fixed incorrect size of
corner_radiusandwidthofstrokeinrangefortext. - Fixed margins of child elements with
visibilitygoneinsidegallery. variable_triggersdefined locally are now attached only when they are within an activetabsitem.
30.23.0
Android Client:
- Fixed memory leak in timers.
variable_triggersdefined locally are now attached only when they are within an activestate.
iOS Client:
- Added DivSubmitAction which allows to submit data from container. Can be used while creating forms with DivKit.
- Disabled states in tooltips.
- Fixed animation of infinite scroll indicator in pager.
- Fixed display of video previews.
- Supported animators.
30.22.0
Android Client:
- Added clearing of adapters in
pagerandgallery. - Added table of variables into debug panel (ErrorView). Values of variables in table can be changed.
- Enable setting a11y focus on views inside tooltips.
- Ensure all blur related are closed after usage.
- Fix video cache leakage.
- Fix video player leaking when Div2View cleanup by ReleaseManager.
- Fixed placement of items when
pagerscrolled using a11y. - Minor enhancements of error handling during JSON parsing.
- Properties
startandendofdiv-text.rangeare optional now. - Supported cloud text range background.
iOS Client:
- Added
TooltipManager.reset(). - Fixed hint availability in masked div-input.
- Improved DivData parsing.
- Properties
startandendofdiv-text.rangeare optional now. - Reset tooltips after device rotation.
- Supported custom equatable image filter for ImageBlock, may be added in extensions.
- Supported div-action.scope_id.
- Use alternative tooltip position if requested position doesn't fit.
- Fixed tooltip not hiding on screen rotation.
Web Client:
- Added local
variable_triggersproperty support. - Added support for
0/1values in theset_stored_valueaction with thebooleantype. - Added support for the
alignment_verticalintext. Please note that the location of the images may change slightly. - Fixed an issue with calling custom action inside
variable_triggers. - Fixed minor memory leaks.
- Properties
startandendofdiv-text.rangeare optional now.
Kotlin JSON Builder:
- Kotlin Json Builder DSL models upgraded to kotlin data classes.
30.21.0
Android Client:
- Added evaluable functions
getStoredArrayValue(name),getStoredDictValue(name). - Added new typed action
scroll_bythat can be used instead ofdiv-action://scroll_forward,div-action://scroll_backward,div-action://set_next_itemanddiv-action://set_previous_item. - Added new typed action
scroll_tothat can be used instead ofdiv-action://set_current_item,div-action://scroll_to_position,div-action://scroll_to_startanddiv-action://scroll_to_end. - Added new typed action
set_stored_valuethat can be used instead ofdiv-action://set_stored_value.
iOS Client:
- Changed pager's page size evaluation to make the behavior consistent with other platforms.
- Fixed focus on ios. update blocks after changing focus via actions or inside blocks.
ImageBlocktintMode: TintModeandtintColor: Color?can now be rendered usingRemoteImageViewinstead ofMetalImageView. To do soimageTintPreferMetal: Boolmust be set tofalseviaDivFlagsInfo
Web Client:
- Supported
idproperty for the prototypes in theitem_builder.
TypeScript JSON Builder:
- Added platforms support in the TSDoc comments.
30.20.0
Android Client:
- Added implementation for local
variable_triggerfield. - Added method
DivVariableController#replaceAllwhich updates all existing variables, declare new ones and removes variables which are not provided in the list of new variables, andDivVariableController#replaceAllwhich removes all provided variables. - Added
tighten_widthparameter fordiv-text, that removes unnecessary horizontal paddings in multiline texts. - Added support of variable animators.
- Added support of
scope_idproperty forset_variableactions. - Experimental API: Added code generation of json serializers.
- Changed behavior in case when all children in container with
wrap_contentsize along the cross axis for horizontal and vertical orientation (withlayout_modeno_wrap) or any axis for overlap orientation havematch_parentsize. Now container's size becomes equal to the biggest child's size (as earlier) and other children take the same size (instead of their content's size before). - Fixed
indicatorbehavior when connectedpagerhas invisible items. - Fixed
indicatorbehavior when infinite scroll is enabled.
iOS Client:
- Added
tighten_widthparameter fordiv-text, that removes unnecessary horizontal paddings in multiline texts. - Added new typed action
div-action-timerthat can be used instead ofdiv-action://timer. - Added new typed action
div-action-videothat can be used instead ofdiv-action://video. - Added
InputAccessoryViewExtensionHandlerwhich supports addinginputAccessoryViewfordiv-inputkeyboard. - Supported
resolveValueforRawRepresentabletype. - Supported
DivFunctionindiv-base. Functions can be declared in any div element. Access to functions is carried out in the same way as local div-variables. - Fixed problems with keyboard appearing in multiline text input.
Web Client:
- Added support for the
on_applied_actionsandon_failed_actionsinsidepatch. - Added support for the
autocapitalizationproperty in theinputfields. - Added
encodeRegexfunction. - Added
isEmpty()method to dict. - Changed behavior in case when all children in container with
wrap_contentsize along the cross axis for horizontal and vertical orientation (withlayout_modeno_wrap) or any axis for overlap orientation havematch_parentsize. Now container's size becomes equal to the biggest child's size (as earlier) and other children take the same size (instead of their content's size before).
30.19.0
Android Client:
- Experimental API: added new parsers for properties and template fields.
- Supported
item-builderproperty ingalleryandpager. - Supported
autocapitalizationininput. Allows you to control capital letters in the keyboard - Added new typed action
div-action-downloadthat can be used instead ofdiv-action://download. - Added new typed action
div-action-hide-tooltipthat can be used instead ofdiv-action://hide_tooltip. - Added new typed action
div-action-set-statethat can be used instead of actiondiv-action://set_state. - Added
isEmpty()method to dict. - Create markwon lazily.
- Fixed patch applying to root div.
- Fixed focus navigation inside
gallery. - Fixed keyboard blinking when changing focus between inputs.
iOS Client:
- Fixed a bug with notification observers while changing parent variable from child scope
- Fixed opacity for elements with solid background.
Web Client:
- Added local
variablessupport. - Added
layout_providerproperty support. - Fixed the behavior of
toNumber('')to return an error. - Fixed the
transition_outanimation whenvisibilitybecamegone. - Fixed an issue with the
max_lengthofinputwith thekeyboard_typeequal tonumber. - Fixed the first call of
variable_triggersbefore full initialization of child components. - Fixed an issue with incorrect
corners_radius. - Fixed an issue with incorrect
variable_triggers.
30.18.0
Android Client:
- Experimental API: added template serialization interfaces.
- Fixed a bug where the input field intercept vertical scrolling.
- Fixed corner clipping while transitions is in progress.
- Support
div-custompatching.
iOS Client:
- Experiment added to use different drawing methods for blur/tint effects inside
ImageBlock. PreviouslyMetalImageView.swiftwas the only option. Now usingDivFlagsInfo- we can setimageBlurPreferMetal: BoolorimageTintPreferMetal: Boolto false, andRemoteImageView.swiftwill be used instead (with new way to render). By default behaviour stays the same as before. - Support resolveValue for RawRepresentable type.
- Supported div-input max_length field for ios
30.17.0
Android Client:
- Bump OkHttp version to 4.12.0
- Implemented support for field
accessibilityfor images inside text. (from version 30.14) - Supported
alignment_verticalforrangesandimageselements. - Implemented support for methods for getting values from dict
getBoolean, getDict ...You can use them in evaluable expressions like thatdict_var.getBoolean(path_to_var). - AGP version updated to 8.5.2 and Gradle version updated to 8.10.
- Added new typed action
div-action-show-tooltipthat can be used instead ofdiv-actino://show_tooltip. - Added new typed action
div-action-timerthat can be used instead ofdiv-action://timer. - Added new typed action
div-action-videothat can be used instead ofdiv-action://video. - Fixed black background behind the corners of shimmer extension on apis lower than Android 26.
- Fix bug when image preview was skipped after bind with same image_url, but different preview.
- Throw AssertationError on try to load patch without providing
DivDownloadertoDivConfiguration.
iOS Client:
- Fixed bug with last small page.
- Fixed bug with pager scrolling.
30.16.0
Android Client:
- Fixed visibility actions within patch layout.
- Fixed a bug when separators inside a
containerignore margins.
iOS Client:
- Added test playgrounds with layout of objects from LayoutKit.
- Added support of autocapitalization type in
div-inputtext fields. - Added filtering entered data in
div-inputusing regexp or expressions. - Fixed a bug with scrolling through the last page.
30.15.0
Android Client:
- Fix indicator disappearing after patch.
iOS Client:
- Added fix of scrolling multiline text input while typing text to avoid active input to be under keyboard.
- Fixed variable trigger invocation after calling appends from the client.
30.14.0
Android Client:
- Added support for local
variablesfield. - Fixed an issue when items built from prototypes couldn't receive variable updates.
- Deprecated method
DivCustomContainerChildFactory#bindChildView. Use a new method implementation withchildIndexparam instead. Otherwise, local variables inside custom containers wouldn't work. - Support toString() methods for dicts and arrays.
iOS Client:
- Moved edits from the patch for the swipe_down fix.
- Fixed a bug when scrolling from page to another page.
- Fixed boolean type parsing in
set_stored_valueaction.
Web Client:
- Added
markdownExtensionBuilderfunction, which accepts the markdown processing function and produces amarkdownextension. - Added
getComponentPropertyextension API.
30.13.0
Android Client:
- Now
next_focus_ids.forwardsupports accessibility order. - Now
div-galleryinpagingscroll mode will be centered like in other platforms. - Fixed visibility action tracking when
DivDatamoved to anotherDiv2View. - Fixed multiple state switching within pager items.
iOS Client:
- Added variable triggers to div-base. They can be triggered by parent variables.
- Reset local triggers in the elements after applying div-patch.
Web Client:
- Updated the layout of the
grid, in which elements are superimposed on each other to match the behavior of Android. - The logic of
transition_changehas been brought into line with other platforms: with this change, there is no need to contain thetransition_changeproperty in the final state. In addition, parameters from the previous state will be used, not from the new one. - Fixed the
auto_ellipsizeproperty in the presence ofmax_linesfor thetextcomponent. - Performance optimizations.
30.12.0
Android Client:
- Supported
layout_providerproperty. - Supported
div-patch.on_applied_actionsanddiv-patch.on_failed_actions. - Support custom corner radius at
shimmerextension. - Fixed pages in
pagernot switching in accessibility.
iOS Client:
- Supported
item_builderfor pager and gallery. - Added callbacks with div actions in div-patch. Called after applying patches.
30.11.0
Android Client:
- Supported
reuse_idfield. Usereuse_idfor more efficient reuse of items with same structure ingallery/pager. - Fixed gallery not reusing items.
- Fixed custom shadow drawing when view is in transient state.
iOS Client:
- Supported page transformations in pager.
- Supported reuse_id field for items in pager, gallery, tabs, grid
- Update alpha while changing states with action_animation params.
- Fixed operators in expressions parsing.
- Fixed div-custom configuration
- Added items count info to gallery scroll event
30.10.0
Android Client:
- Make
div-stroke.widtha number. - Now visual errors dump includes card's json and all global variables states.
iOS Client:
- Fixed video player initialization in
VideoBlock.
30.9.0
Android Client:
- Fix
shadowrotation ifdivusestransform.
iOS Client:
- Fixed element paths for
div-gallery. - Added
div-base.layout_provider. - Optimized
DivLastVisibleBoundsCache.
Web Client:
- Performance optimizations.
30.8.0
Android Client:
- Implemented
DivMarkdownExtensionHandlerto supportmarkdownextension fortext. - Fixed crash after removing child in
gallery. - Fixed drawing shadows when view is invisible or gone.
- Fixed NPE at
shimmerextension - Fix issue when Div2View could not access variable via nested DivVariableController.
iOS Client:
- Added local variables support.
- Fixed infinity pager scroll.
- Opening tooltips in new window.
- Fixed multiple
player.seekcall inVideoBlock.
Web Client:
- Fixed several issues with
variable_triggersevaluation.
30.7.0
Android Client:
- Add numeric value support for
fontWeightValue - Supported
idproperty indiv-collection-item-builder.prototype. - Fixed div view state change happened before binding.
iOS Client:
- Optimized
ExpressionResolver. DivVariableTrackerstate made public.
Web Client:
- Fixed the
top_offsetmutation for incoming data in thetextcomponent.
30.6.0
Android Client:
- Fixed multiple state switching with different root state.
- Experimental API: added new interfaces for data serialization.
- Introduced
indexvariable for prototyped elements. - Fixed grid cell size calculation when margins are set.
iOS Client:
- Fixed inline image reusing in DivText.
- Added
DivVariableStorage.hasValuemethod. - Added
font_weight_valuesupport. - Added
idproperty intodiv-collection-item-builder.prototype. - Fixed memory leak in VisibilityActionPerfromers.
- Added
hitTestimplementation intoStateBlockViewto pass through touches.
Web Client:
- Added support for the property
font_weight_valueintext,input,sliderandselect. - Introduced
indexvariable for prototyped elements.
30.5.0
Android Client:
- Implemented support for field
page_transformationinpager. - Old visibility actions are no longer logged after Div2View was rebound by another DivData.
- Fixed image drawing when its padding bigger than size.
- Fixed showing of first and last elements in
pagerwith infinite scroll after items changing. - Fix closing
tooltipon cleanup. - Fixed
Div2Viewstate reset that resulted in broken expression subscriptions. - Fixed vararg functions matching.
- Detach old indicators from pager on attach new ones.
okhttplibrary updated to version 4.11.0
iOS Client:
- Introduced
indexvariable for prototyped elements. - Fixed escaped strings resolving in expressions
Web Client:
- Added
array_set_valueaction.
30.4.0
Android Client:
- Fixed
pagerpage size evaluation. Now all the pages are the same size, the same as on other platforms. - Fixed scroll of
pagerwhen more then 2 pages is visible. - Added
array_set_valueaction. - Added
dict_set_valueaction. - Added
containsKeymethod for dictionaries.
iOS Client:
- Fixed
inputpaddings. - Fixed comparing
scrollRangeinGalleryViewState. - Added
array_set_valueaction. - Added
dict_set_valueaction. - Added
containsKeymethod for dictionaries.
Web Client:
- Added
dict_set_valueaction. - Added
containsKeymethod for dictionaries.
30.3.0
Android Client:
- Fixed sizes calculation for
galleryitemswrapped withincontainer. - Added
tab_title_delimiterproperty support fortabs. - Remove focus from focused
inputif some clickable div were clicked. - Removed
z/Zpatterns restriction from datetime formatting functions. - Added
max_lengthproperty support forinput. - Fixed crash by
gallerywhen count ofitemswas less thencolumn_count. - Supported
font_feature_settingsproperty fordiv-text.
iOS Client:
- Fixed items position in
gallery. - Supported
font_feature_settingsproperty fordiv-text. - Removed
z/Zpatterns restriction from datetime formatting functions. - Fixed clipping in
container.
Web Client:
- Fixed an issue with the
textpropertytop_offsetand ranges intersection. - Added new API's for the extensions:
processExpressionsandexecAction. - Added
gestureextension. - Fixed an issue with calling
disappear_actionsafter instance destruction. - When passing
datadirectly insideitem_builder, its expressions are no longer executed. - Supported
z/Zpatterns in datetime formatting functions. - Added
max_lengthproperty support forinput. - Supported
font_feature_settingsproperty fortext. - Updated error messages for invalid calls inside expressions.
30.2.0
Android Client:
- Fixed line height adjustment for embedded images and image placeholdes in
div-text. - Added padding on draw
default_itemingallery. - Improved expression error messages.
iOS Client:
- Fixed disappear actions for gone blocks.
- Improved expression error messages.
Web Client:
- Calculate
is_enabledinactionsbefore executing the entire list of actions, not in the process. - Implemented
toStringfunction and method for arrays and dicts. - Improved expression error messages.
- Fixed unary minus operator parsing.
- Added functions
parseUnixTimeAsLocal,formatDateAsLocal,formatDateAsUTC,formatDateAsLocalWithLocale,formatDateAsUTCWithLocaleand theweekStartDayparameter.
30.1.0
Android Client:
- Fixed a bug where updates to global variables are lost if they occurred after the destruction of Div2View, but before the creation of a new one.
iOS Client:
- Implemented operands lazy evaluation.
30.0.0
Android Client:
- Breaking change: Classes
StandardExoDivPlayerViewandZoomExoDivPlayerViewreplaced with commonExoDivPlayerView - Breaking change: Classes removed from public API:
ExoDivMediaSourceAbstractFactory,ExoDivPlayer(accessible by interfaceDivPlayer),ExoDivPlayerView(accessible by interfaceDivPlayerView) - Breaking change: Removed method
isCompatibleWithNewParams(scale: DivVideoScale)fromDivPlayerView - Breaking change: Removed method
makePlayerView(context: Context, additional: Map<String, Any>)fromDivPlayerFactory - Breaking change: Use explicitly passed
ExpressionResolverinDivActionHandler,Div2Logger,DivExtensionHandlerandcustomclasses. - Breaking change: Restricted variable names with consecutive dots and with a trailing dot.
- Added
gestureextension that allows to perform div-actions when swipe gesture happens at specified div. - Added
item_builderproperty support in thecontainercomponent. - Added
svgsupport to allDivImageLoaders - Added ability to forcibly release video players by
releaseMedia()method ofDiv2View. - Added Jetpack Compose interoperability for
Div2View - Calculate
is_enabledinactionsbefore executing the entire list of actions, not in the process. - Do not set new border or background when it has no changes.
- Fixed text height calculation when line height specified explicitly.
- Fixes for complex rebind algorithm
- Old visibility actions are no longer logged after Div2View was rebound.
- Supported methods in evaluable expressions, such as
123.toString(). - TextureView is now a default view for DivVideo.
iOS Client:
- Breaking change: Changed method signature in
ExpressionResolverfromresolveString(_ expression: String) -> StringtoresolveString(_ expression: String) -> String?. - Breaking change: Protocol
DivStateInterceptorand corresponding implementationDivStateInterceptorImplwas removed. Please useDivExtensionHandlerinstead. - Breaking change: public API for
DivActionURLHandler.updateReasonhas been changed. - Breaking change: Removed
DefaultDivActionLogger(replaced withEmptyDivActionLogger).DivActionLoggerbecame deprecated, useDivReporterfor actions tracking. - Breaking change: Removed
DefaultShimmerViewFactory. - Breaking change: Removed
DivVariablesStorage.ChangeEvent.oldValuesdue to performance issues. - Breaking change: Removed
urlOpenerargument fromDivKitComponentsinitializer. UseurlHandlerinstead. - Breaking change: Removed
UserInterfaceAction.Payload.composite. - Breaking change: Removed
UserInterfaceAction.Payload.json. - Breaking change: The signatures of the setSource functions have been changed: they are now marked as async to reduce main thread locks.
- The minimum version of the DivKit has been increased to iOS 13.
- Disallowed variable names with consecutive dots or with trailing dot.
- Double quotes are no longer supported in string literals.
- Fixed animation in gallery.
- Fixed numbers to string casting in expressions.
- Fixed position of gallery element after scrolling with action.
- Fixed unary minus operator parsing.
- Fixed validation in expressions.
- Fixed view reuse in
ShimmerImagePreviewExtension.
Web Client:
- Breaking change: actions from
variable_triggerslead to execution of a callbackonStatwith type =trigger. - Disallowed variable names with consecutive dots or with trailing dot.
Kotlin JSON Builder:
- Changed the way of how primitive array elements are added.
This change supports usage of expressions in array elements. As for now, primitive array elements (e.g., transition triggers, gradient backgrounds) must be
wrapped with either divkit.dsl.core.valueArrayElement ordivkit.dsl.core.expressionArrayElement.
29.15.0
Android Client:
- Added ability to set a specific logging level using DivKit#setLogLevel.
- Replaced
StringwithCharArrayat expression tokenization process. - Recreating subscriptions to local variables in case Div2View is recreated after destroying its lifecyclerOwner in order to preserve the state of local variables.
- Fixed that invalid base64 preview in
DivVideomay causeIllegalArgumentException. - Fixed NoSuchElementException on handling disappear actions.
- Fixed accessibility of gallery children when exclude a11y mode turned on.
- Fixed that
videoscreen could show up beforepreviewwas rendered.
iOS Client:
- Removed mask from GalleryView to reduce offscreen rendering.
- Added
toStringmethod/function for arrays and dictionaries. - Fixed arrays and dictionaries convertion to string.
- Removed unnecessary re-creation of gestureRecognizers.
- Fixed resetting inconsistent gallery state in pager.
- Fixed allocated unfair lock in
DivBlockStateStorage. - Added
toString(string)function. - Added
scalesupport in Lottie animation. - Added
lenfunction for arrays. - Fixed resetting video when
elapsed_time_variableis not set. - Fixed pager state after reuse.
- Fixed looping of video player events.
Web Client:
- Persistent variable storage has been implemented, including the action
set_stored_valuealong with the functiongetStoredStringValueand others. - Fixed an issue with calling
disappear_actionswhen destroying a component (for example, when hiding a tooltip). - Supported flag
is_enabledforinput. - Fixed an issue with the patch changes after the tooltip action.
- Added
toString(string)function. - Added support for methods in expressions, including
toString,getString,getBoolean,getInteger,getNumber,getUrl,getColor,getDict,getArray. - Added support for the
menu_itemsproperty insideactions (with a additionalcustomizationpropertiesmenuPopupClassandmenuItemClass). - Fixed an issue with the nested
longtap_actionsand simultaneousactionsandlongtap_actionsprocessing.
29.14.0
Android Client:
- Added implicit cast from
integertonumberinside evaluable expressions. - Supported flag
is_enabledforinput. - Fixed
restrict_parent_scrollto restrict both directions - Fixed reusing of view id in same Div2Context
- Added support of signed numbers in numeric
div-input
iOS Client:
- Added
toString()method support in expressions. - Fixed ternary operator parsing.
- Added get methods for dictionaries and arrays in expressions.
29.13.0
Android Client:
- Supported loading images from assets by url
divkit-asset:// - Fixed that sometimes extensions could be removed on state change.
- Fixed a memory leak occurring when using expressions in the "alignment" fields of the
containerelement.
iOS Client:
- Fixed focus setting when state changes and there are multiple inputs without id.
- Supported
is_enabledproperty ininput. - Fixed variables usage in tooltips.
- Fixed visibility action of empty container.
- Fixed crash in input with mask.
- Fixed DivVideo view reconfiguration.
29.12.0
Android Client:
- Enable android.nonTransitiveRClass.
- Supported
item-builderproperty incontainer. - Removed excessive list copy creation for thread-safe iteration.
iOS Client:
- Fixed nested expression parsing.
- Implemented new typed action
clear_focuswhich removes focus from any focused view. - Improved views reuse.
- Removed
idrequirement fordiv-state.
Web Client:
- Fixed an issue with deep
statechanges. - Implemented new typed action
clear_focuswhich removes focus from any focused view. - Supported
preload_requiredproperty for thevideocomponent. - Fix timer stop in rare cases.
- Fixed an issue with the
visibility_actions,disappear_actionsandtooltipsinpatches. - Fixed a bug where several
textstyles were not updated when the expression was changed. - Fixed an issue with the
tel:schema in actions. - Minor performance optimization.
- Fixed parsing of incorrect values of
items/statesincontainer,tabsandstate.
Kotlin JSON Builder:
- Added ability to create
Patchdeclaration.
29.11.0
Android Client:
- Fixed visibility recognition of pages in pager.
- Removed validation for rectangular grid layout.
- Screenshot test plugin improvements.
- Set version without build start time in debug build.
- Fixed
restrict_parent_scroll. - Implemented new typed action
clear_focuswhich removes focus from any focused view inside Div2View. - Fixed overriding of
customlayout params.
iOS Client:
- Fixed variable names parsing.
- Add default assets image provider.
Web Client:
- Fixed a rare call to "tick_actions" after "end_actions" in timers.
- Removed validation for rectangular grid layout.
29.10.0
Android Client:
- Migrated to Gradle version catalog.
- Add div data generator plugin.
- Fixed SO at state variable change.
Web Client:
- Fixed several issues with the
tabscomponent with thematch_parentandwrap_contentheights with theconstrainedflag. - Fixed an animation issue after swipe in
tabscomponent. - Fixed a small issue with rendering corners with a frame and radius.
- Supported
scroll_to_start,scroll_to_end,scroll_backward,scroll_forward,scroll_to_positioningallery. Updatedset_previous_itemandset_next_itemto supportstepargument. - Supported
scroll_to_start,scroll_to_endintabsandpager. Updatedset_previous_itemandset_next_itemto supportstepargument. - Fixed an issue with the
galleryscroll actions and RTL layout direction. - Implicit conversion of
integer->numberin expressions is supported.
29.9.0
Android Client:
- Reduced number of memory allocations at observing of client-side variables.
- Fixed periodic crash in
pageron view rebind. keyboard_type=passwordhas been supported forinput.- Fixed video overlap with scale
fill. - Removed redundant memory usage when calling the
putOrUpdatemethod on aDivVariableControllerwith already known variables. Complex rebindenabled by default.
iOS Client:
- Implemented new actions to scroll gallery
scroll_to_start,scroll_to_end,scroll_backward,scroll_forward,scroll_to_position. - Added implicit cast from integer to number.
- Fixed actions using item_builder.
- Fixed numeric values parsing.
- Fixed skipping pages when scrolling pager by timer.
Web Client:
- Fixed space symbols collapse inside
tabstitle. keyboard_type=passwordhas been supported forinput.
29.8.0
Android Client:
- New rebinding algorithm is implemented under
complexRebindflag (can be enabled using the DivConfiguration builder). - Implemented new actions to scroll gallery
scroll_to_start,scroll_to_end,scroll_backward,scroll_forward. - Fixed autoallipsizing of
div-textwith fixed line height. - Fixed artifacts on drawing corner_radius with border.
iOS Client:
GestureExtensionHandlerintroduced.
Web Client:
- The
visibility_durationanddisappear_durationproperties inactionsnow supports the value 0.
29.7.0
Android Client:
- Fixed text line height so that it behaves as on other platforms.
- Fixed baseline alignment for
image,gif-imageandvideo.
29.6.0
Android Client:
- Supported page switching inside
pagerusing focus. separatorandimagewithout anyactionoraccessibilityblock are excluded from accessibility.- Fixed subscription in
videoto fields withvariables
iOS Client:
- Added
focus_elementaction support. - Added
autodiv-accessibility.type. - Fixed accessibility for
div-input. - Fixed concurrency crash in
DivStateManager. - Added more information about associated
actionin URL handling.
Web Client:
- Added support for the
preload_requiredproperty inimage,gifandtextcomponents. - Fixed an issue with the
max_linesandauto_ellipsizeon the sametextcomponent. - Errors from expressions now also contain the
pathproperty.
29.5.0
Android Client:
- Supported functions
getArrayFromDict,getDictFromDict,getOptArrayFromDict,getOptDictFromDict. - Supported accessibility for
slider. - Fixed visibility actions not working for items children inside
div-pageranddiv-tabs.
iOS Client:
- Fixed cursor position in the text with emoji.
- Improved
DivDataparsing.
Web Client:
- Fixed several input issues in the
sliderwith two thumbs. - Fixed
gallerymarkup in several cases. - Fixed
inputfocus outlines in several cases. - Fixed a processing error when setting an incorrect value for the
integervariable. - Fixed an issue with the
statepatches.
29.4.0
Android Client:
- Optimized the performance of
div-tabswhen scrolling. - Fixed a bug when the last element twitched when scrolling
div-pagerwithinfinite-scroll. - Added ability to scroll
div-galleryforward/backward by N-items usingdiv-action. - Fixed div models generating without templates.
iOS Client:
- Added action payload to
DivReporter.reportAction. - Add operators error messages.
- Supported datetime format functions.
- Added
listvalue support fordiv-accessibility.type. - Fixed visibility actions for views that can change their size.
Web Client:
- Added
item_builderproperty support in thecontainercomponent. - Added
getDictFromDict,getArrayFromDict,getOptArrayFromDictandgetOptDictFromDictfunctions. - Added support for the
RTLlayout (with thedirectionconfiguration property).
Kotlin JSON Builder:
- Completely removed divkit.dsl.Url input value validation since it doesn't comply with RFC 2396.
29.3.0
Android Client:
- Fixed element blinking when rebinding
div-gallery. - Implemented
hash()method for Divs. - Added a parameter to
DivConfiguration.Builder#divPlayerPreloader. Also implementedExoPlayerVideoPreloader, which can be used to preload videos if you are usingExoDivPlayerFactoryas your video player. - Disabled creation of implicit default values for object properties.
- Fixed a bug that
visibility_actiondoes not work for children with size more thandiv-gallerysize. - Added parameter describing the reason of
div-actioncall toDivActionHandlermethods. - Fixed
visibility_changeanimation
iOS Client:
- Updated VGSL version to 3.0.0.
- Fixed
DivViewsize calculation. - Added ability to force action updates scheduled for the next run loop iteration.
Web Client:
transition_in,transition_out,transition_change,action_animationandanimation_in/animation_outfrom thetooltipwill now use system setting "prefers reduced motion".
29.2.0
Android Client:
- Fixed character escaping.
- Fixed
statedoes not switch insidediv-custom. - Added support
is_enabledforaction. - Migrated from Dagger to Yatagan DI framework
- Added supporting
len(array)function in evaluable. - Fixed min size applying in
div-container. - Fix wrong gradient color in
div-text. - Fixed not sending taps through the
div-gallery.
iOS Client:
- Supported
is_enabledproperty indiv-action. - Optimized accessibility elements creation.
- Changed
DivText.textproperty type fromCFStringtoString. - Fixed
DivContainerwithout items behavior. - Fixed accessibility params for elements with margins.
- Fixed memory leak in
FunctionsProvider. - Fixed Lottie blinking when state changed.
Web Client:
- Fixed an issue with the
visibility_actions restart on variable changes and their cleanup. - Added support for the
is_enabledflag inside all types of actions. - Added
clip_to_boundsproperty support for thecontainercomponent. - Fixed an issue with the
wrap_contentimages in Safari. - Fixed
variable_triggerslogic to match other platforms. Now they are executed, even if not all variables are present. - Fixed
variable_triggersto be executed only after components mount. - Added
auto_ellipsizeproperty support intextcomponent. - Fixed an issue with the experimental method
setDataandvideoupdates. - Fixed
nullvalue processing inarraygetter functions.
TypeScript JSON Builder:
- Added expressions support in
fixedfunction.
29.1.0
Android Client:
- Supported
clip_to_boundsproperty indiv-container. - Optimized binding process of base div properties.
- Optimized binding process of
div-text. - Optimized binding process of
div-separator. - Optimized binding process of
div-container. - Fixed calling of disappear actions for tooltips.
- Fixed parent's vertical scroll starting at
div-slider. - Fixed state switching of
div-galleryitems. - Fixed incorrect height of
div-input. - Fixed text color applying for ranges in
div-text.
iOS Client:
- Fixed
DivVariableStoragechange events. - Optimized
DivDataparsing. - Improved
DivBlockModelingContextcloning.
Web Client:
- Fixed rare cases with the
lottieanimations load errors.
29.0.0
JSON Schema:
- Removed
non_empty_stringtype. - Removed some
minItemsrestirctions. itemsproperty incontainer,gallery,pagerandgridbecame not required.
Android Client:
- Fixed timers cleared after patch.
- Added Complex Rebind flag.
- Added ability to reset expression runtimes, error collectors and selected states for given data tags.
- Added the ability to change ViewPreCreationProfile in Div2Context.
- Added supporting 'try' operator.
- Fixed a case when the wrong DivActionHandler was used.
- Improved performance by making functions stateless.
- Fixed a bug that visibility_action does not work for children of the gallery element.
- Added the ability to enable/disable the scrollbar in the gallery.
- Added Coil image loader.
iOS Client:
- Supported
item_builderproperty inDivContainer. - Supported
scrollbarproperty inDivGallery. - Supported
clipToBoundsparameter inDivContainer.
Web Client:
- Breaking change: expressions are now executed without waiting for all variables in them.
- Breaking change. The type
Variableand other related types (such asStringVariable) are now classes, not interfaces. In most cases, all the code will work the same way, but in rare cases it may break something. Also note that it is now possible to check variable type with theinstanceof, which works as a type-guard in TypeScript (getValue()will return a value with the correct type). Previously, this was not possible because onlygetTypeexisted, and TypeScript would not use it as a type-guard. - Breaking change: private methods in DivKit instance was removed. This methods was not typed and was not documented.
- Breaking change: added arrows for
pageron thedesktopplatform. There are new customization options for these arrows. Also note that theplatformcan be configured using therendermethod. - Breaking change: the internal implementation of the
lottieextension has been changed. This was required to fix the issue with simultaneous display of fallbackgifwithlottieitself. If you are providing a similar extension created from scratch, you may need to change it a bit. - Added try operator
!:for expressions. - Undeclared variables would not cause expressions to fail (even without getting their values) (revert change from version 23.4.0). The error would still occur if the expression actually evaluated an undeclared variable.
- Fixed the behavior of
match_parentinside thecontainerwith the size ofwrap_contentandorientation=overlap. - Added
lenfunction for array variables. - Fixed an issue with the expressions support inside
transition_changeproperty. - Fixed an SSR error that occured when rendering a card with a list of timers.
- Empty containers (without
items) is now allowed. - Added support for patches in
tabsandstates(note that patches require exactly one element for each change, unlike other types of components). textcomponent with an emptytextproperty is now allowed.- Fixed an issue with whitespace near brackets
()in expressions. - Added a new experimental method
setData. This method allows you to quickly redraw the DivKit card using a new json, much more efficiently than directly destroying and recreating it again. - Fixed possible errors in integer calculation for the functions
getArrayInteger,getIntegerFromArray,getArrayOptInteger,getOptIntegerFromArray,getDictInteger,getIntegerFromDict,getDictOptInteger,getOptIntegerFromDict,copySign. - Fixed an issue with a
separatorsincontainerin thessrmode. - Empty
grid,galleryandpagerare now allowed.
28.13.0
Android Client:
- Fixed using incorrect uri scheme in Beacon.
- Fixed broken fade animation.
- Added the ability to set the lineHeight to be smaller than the font size.
iOS Client:
- Supported
!:operator.
28.12.0
Android Client:
- Added
getStoredUrlValuefunctions. - Removed dependency on androidx.fragment.
- Fixed the hyphenation of images in the text.
- Fixed baseline alignment in
DivCustom. - Fixed bind on enabled bind_on_attach.
- Fixed alignment of the DivStateLayout.
iOS Client:
- Change the unit of video duration to ms
- Optimized actions resolving.
- Removed
UserInterfaceAction.Payload.jsonusage. - Fixed putting text to pasteboard when cutting in the input with a mask.
- Fixed
DivPagerstate updating.
Web Client:
- Added
scrollbarproperty support ingallery. - Fixed the text of the missing
gif_urlerror. Also thegifcomponent now usesgif_urlandimageusesimage_url, instead of both of them consuming any of these 2 properties. - Removed empty
paddingattribute from html. - Fixed empty
images (andgifs) to load error. Note "empty image" here is animagewith animage_urlproperty equal toempty://.
28.11.0
Android Client:
- Added functions to get URL value:
getUrlValue,getUrlFromArray,getUrlFromDict. - Added functions to get Color from Dict:
getOptColorFromDict,getDictOptColor. - Fixed incorrect height of select.
iOS Client:
- Supported infinite scrolling in the pager.
- Fixed
change_boundsanimations content scale.
Web Client:
- Fixed an issue with the
focusproperty support inslidercomponent. - Added
focus_elementtyped action support.
28.10.0
Android Client:
- Added new evaluable type - EvaluableType.URL
- Added functions
toString(url),toUrl(str)andtoColor(str). - Added
scaleproperty support in thevideocomponent. - Fixed crash when
DivStatehas emptystatesarray. - Fixed crash when clicking "Next" on keyboard in
DivInputinsideDivGallery. - Fixed
DivInputnot working inDivPager.
iOS Client:
- Fixed clipping to bounds of view when rotating.
Web Client:
- Added
copy_to_clipboardaction support. - Fixed cross-axis container items with the
match_parentsize logic in combination with thewrap_contentsize of the container itself. - Fixed
galleryscrolling withwrap_contentandmax_sizeproperty.
28.9.0
Android Client:
- Added infinite scrolling property to the pager.
- Added common interface for all div views.
- Added a workaround for a bug in R8 that sometimes causes a
ClassCastExceptionwhen usingDivGalleryorDivGridLayout. - Fixed
DivCustomwrong ids forDivGalleryitems.
iOS Client:
- Added
VideoDurationExtensionHandler.
Web Client:
- Fixed the first/last separator of the
containerwithspace-evenlyandspace-aroundalignment. - Added an additional api with
propsandvariablesforcustomcomponents. - Added
array_insert_valueandarray_remove_valuetyped actions. - Added support for expressions in the
execActionmethod.
28.8.0
Android Client:
- Added optional param
databasePrefixtoDivStorageComponent#createmethod. - Fixed crash in
DivGallerywithscroll_modeset topaging. - Fixed unnecessary bindings after triggers changing DivGallery state before its elements are bound.
- Fixed
DivDataRepositoryImpl.getAll()card duplicates. - Fixed variable triggers cleared after patch.
iOS Client:
- Added
DivImageHolderFactoryprotocol.
Web Client:
- Added
aspectsupport for thevideocomponent. - Added
text_shadowsupport for thetextcomponent. - Supported
set_variabletyped action. - Fixed text cropping in several cases, especially with the
max_linesproperty. - Fixed an issue with the
inputserver-side rendering (SSR).
28.7.0
iOS Client:
- Added
DivVariableStorage. - Added
scaleproperty support in thevideocomponent.
Web Client:
- Added
customcomponent support.
28.6.0
Android Client:
- Fixed width of drawables stroke.
- Fixed runtime warnings and errors clearing when reusing
Div2Viewafter callingcleanup.
iOS Client:
- Replaced
DivActionSource.customwith.timerand.trigger.
Web Client:
- Added
scaleproperty support in thevideocomponent. - Added
arrayvariable type, alongside with the couple of functionsgetStringFromArray,getOptDictFromArrayand others. - Added aliases for the existing
dictfucntions:getStringFromDict(alias for thegetDictString) with many others. dictvariables are now shown in markup as json instead of old<dict>(newarrays works the same).- Fixed zero size support in
shapes.
28.5.1
iOS Client:
- Changed
variablesStoragevisibility to public.
28.5.0
Android Client:
Additions:
- Updated divkit-demo-app and divkit-lottie okhttp and okio dependencies due to CVE.
- Updated Kotlin to 1.8.22.
- Updated Gradle to 8.3.
- Updated AGP to 8.1.1.
- Implemented
DivVariableControllerand since now it should be used instead ofGlobalVariableController.GlobalVariableControllerwas deprecated.
Fixes:
- Fixed
div-inputmultikey mask with single pattern element. - Fixed applying
maxWidthandmaxHeightto gallery children. - Fixed incorrect background color on
div-inputrebind. - Fixed snapping in
div-gallerywithpagingscroll_mode. - Fixed
div-pagervisibility action with 100% visibility percentage not called for last item.
iOS Client:
Additions:
- Added
copy_to_clipboardaction handler. - Added
array_insert_valueandarray_remove_valueaction handlers. - Added
getArray/getDictfunctions.
Fixes:
- Fixed clickability of a margin area.
Web Client:
Deprecation:
paletteandthememarked as deprecated.
Fixes:
- Fixed
inputmultikey mask with the single pattern element.
28.4.0
JSON Schema:
- Added support of ranges in
DivSliderfor Android and iOS
Android Client:
- Added automatic
ViewPooloptimization flag - Fixed crash on empty
DivInputplaceholder DivImageLoadermethods should be called on main thread now
iOS Client:
- Added support of ranges in
DivSlider - Fix cursor position in phone input mask
- Supported variable in
DivState
Web Client:
- Fixed custom
textcolor with focus (without explicitfocused_text_colorproperty)
28.3.0
Android Client:
Additions:
- Added RTL-mirror filter for
DivImage - Added support of ranges in
DivSlider. - Added
copy_to_clipboardtyped action. - Added accessibility support for text ranges
- Added android implementation of
DivImageLoader:PicassoDivImageLoader/GlideDivImageLoaderusing Picasso and Glide accordingly
Fixes:
- Fixed drawing corners during transition
- Fixed slider sticking in the beginning of moving.
iOS Client:
Additions:
- Implemented
space-between,space-around,space-evenlyalignments - Added
DivReporterprotocol. - Added
set_variableaction handler.
Web Client:
Additions:
- Added
state_id_variablesupport in thestatecomponent
28.2.0
Android Client:
- Typed actions moved to singleton scope.
- Removed asserts in
DivDataRepository. - Locally collect
ViewPoolstatistic for optimization. - Implemented
StoredValuesController. - Added ability to patch inside gallery/pager items.
- Fixed shadows overlap container's children.
- Added ability to request focus action.
- Support for gif images in
playgroundandsample-app. text_shadowimplementation.- Support alignments with spaces.
- Array variable mutations.
- Fixed the inability to patch an item inside the gallery that inside the other gallery.
iOS Client:
- Improved
DivSliderperformance. - Fixed memory leaks in
ExpressionResolver. - Fixed
DivContainerwith constrained children height. - Fixed phone mask in
DivInput.
Kotlin JSON Builder:
- Fixed missing * symbol in Url validating regex.
28.1.0
Android Client:
- Support RTL for
DivPager. - Added
get<Type>FromDict/get<Type>FromArrayfunctions for arrays.
iOS Client:
- Fixed
DivInputmask. - Fixed alignment in overlapped
DivContainer.
28.0.0
JSON Schema:
- Added
text_shadowproperty - Added
rangesto slider - Added
arrayvariable type
Android Client:
Breaking changes:
- Added ArrayVariable case into Variable class.
Added:
- RTL for div-select
- Support non-linear font scaling
- Phone masks
- Array get functions
iOS Client:
Braking changes:
- Added array variables support. Added
arraycase intoDivVariableValueenum. - Improved error types: reduced visibility of
DivBlockModelingError,DivBlockModelingWarningtypes,DivErrortypealias replaced with protocol. - Reduced visibility of types and methods not intended to be used outside the framework:
DivLastVisibleBoundsCache,DivVisibilityCounter,EmptyDivCustomBlockFactory,
Other changes:
- Added some array functions
- Added phone masks support in
DivInput - Added
DivViewPreloaderforDivView - Added
match_parentsize support for tooltips
27.4.0
Android Client:
- Deprecate constructors without LifecycleOwner
- Added aspect ratio for video
- Fixed doubletaps
- Improved visibility action binding performance
iOS Client:
- Added center alignment for tooltips.
- Fixed Swift 5.7 compatibility.
- Fixed DivInput line height.
Web Client:
- Added
tooltipssupport - Fixed an issue with the big amount of the unused event listeners on the DOM nodes
27.3.0
JSON Schema:
- Added phone input mask schema
- Added
state_id_variabletoDivState
Android Client:
- Enabled accessibility flag by default
- Fixed state update on rebind
- Fixed showing
transitionfromvisibletoinvisible/goneon first draw - Fixed
SQLiteFullExceptioninDivStoragecausing app crash
iOS Client:
- Added RTL support for
DivImage,DivInput,DivSlider. - Fixed
updateCardActioncalls for elements with variables binding. - Fixed visibility counters.
- Fixed Lottie and Rive blocks comparison.
Web Client:
Fixes:
- Fixed an issue with a
gallerycomponent with thedefault_itemoutside of the items range
27.2.0
JSON Schema:
- Replaced
leftwithstartalignment by default - Added
centerDivTooltipposition - Added
aspecttoDivVideo
Android Client:
- Fixed
DivTooltipwithmatch_parentsize - Fixed crash caused by
DivTimeractions execution afterDivViewdetach - Observe
DivVideomutedproperty - Updated video player manager
- Improved binding performance
iOS Client:
- Added RTL-layout support for
DivTabs. - Fixed crash in
DivInputmask validator.
Web Client:
Additions:
- Added
div-patch,downloadaction anddownload_callbackssupport - Added support for the
focusparameters (including ``focused_text_color`)
27.1.0
Android Client:
- Lottie version updated to 6.1.0
- Added configuration paramater for scroll interception angle.
- Method DivConfiguration.Builder#enableAccessibility is deprecated now.
- Fixed layout of children with match_parent size inside container with constrained wrap_content size.
- Fixed input layout with constrained wrap_content height.
- Fixed image layout with constrained wrap_content size.
- Fixed visibility tracking of views that has been removed after patch.
iOS Client:
- Added
DivView. - Added RTL support for
DivText,DivGallery,DivPagerandDivIndicator. - Fixed state management for
DivGallery.
27.0.0
Android Client:
- Added RTL support for container, tabs, slider and indicator
- Fixed multiple find lifecycleOwner call
- Fixed multiple out animations ignoring or view doubling
iOS Client:
- Added
getStoredValuefunctions support. - Added RTL layout support in
DivContainer. - Added
updateCardSignaltoDivKitComponents. - Replaced
UrlOpenerwithDivUrlHandlerprotocol. ChangedDivActionHandlerAPI.
Web Client:
Fixes:
- Fixed an issue with the integer values from the several functions:
getYear,getMonth,getDay,getDayOfWeek,getHours,getMinutes,getSeconds,getMillis,len,indexandlastIndex. These integer values previously could produce errors in integer operations
26.2.0
JSON Schema:
- Supported
text_alignement_horizontalandtext_alignement_verticalproperties indiv-input
Android Client:
- Added
startandendvalues to horizontal alignment - Added
startandendvalues to paddings and margins - Supported right-to-left layout direction for
wrapcontainer - Supported dictionary functions
- Fixed
visibility_actionsin DivStates
iOS Client:
- Added
testRegexfunction. - Fixed visibility action for
DivStates.
Web Client:
- Supported
text_alignement_horizontalandtext_alignement_verticalproperties ininput
26.1.0
JSON Schema:
- Added
startandendto horizontal alignment.
Android Client:
- Added
testRegexfunction. - Supported
constrainedproperty inwrap_contentsize for pagers. - Ignore constrained along wrap-container's cross axis.
- Fixed gallery
item_spacein RTL layout direction.
iOS Client:
- Ignore constrained along wrap-container's cross axis.
- Supported
startandendparameters in margins, padding.
Web Client:
- Implemented
testRegexfunction content_alignment_properties along cross-axis incontainerwith thewrapmode will now align rows / columns of items, instead of children components (to better match Android / iOS behavior).- Fixed expression processing without variables (constant expressions).
TypeScript JSON Builder:
boolean_intproperties will now accepttrueandfalsevalues in addition to1/0. These boolean values will be automatically converted to1/0, but only if thedivCardfunction is used. Beware of old clients with the old DivKit SDK, they may not accept booleantrue/falsevalues.
26.0.0
JSON Schema:
- Added
startandendproperties to edge insets. - Supported user-defined font families.
Android Client:
- Added profile to configure number of precreated views.
- Supported margins for wrap container separators.
- Supported user-defined font families.
- Supported beacons in swipe_out_actions
- Fixed indicators alignment when they cannot fit to container
- Fixed
releasemethod not called on destroy - Fixed sequential patch applyment
iOS Client:
- Supported user-defined font families.
- Added async image previews loading.
- Fixed expressions support in
DivState.default_state_id. - Fixed recurring visibility actions.
Web Client:
- Fixed
fatal_actionsin thevideocomponent logic - Fixed
videounmount logic - Incorrect non-array
backgrounds will not throw error - Fixed default
visibility_percentagevalue in thedisappear_action - Fixed
disappear_actionwith the percentage equal to0 - Allowed expressions in the
visibility_percentage
Kotlin JSON Builder:
- Added extension div data creation.
25.7.0
Android Client:
compileSdkVersionupdated to 34- Supported margins for linear container separators.
iOS Client:
- Added Xcode 14.3 & Xcode 15 support.
- Fixed player pausing in VideoBlock.
Web Client:
- Fixed update of the
gallerywith thescroll_mode=paginganddefault_itemin rare cases
25.6.0
JSON Schema:
- Fixed accessibility for
DivSelect
Android Client:
- Fixed
min_widthfor horizontal container - Fixed accessibility for
DivSelect
iOS Client:
- Fixed borders with rounded corners.
- Fixed
DivGallerywithmatch_parentitems layout.
25.5.0
Android Client:
- ExoPlayer version updated to
2.18.4 - Supported preview image in DivVideo
- Fixed trigger rebind for DivData with the same DivDataTag
iOS Client:
- Fixed disappear actions timer invalidation
25.4.1
Android Client:
- Fixed video player engine disconnecting from view when any activity stopped
25.4.0
Android Client:
- Added regex validator for
div-input - Added support of disappear actions
- Added support of text alignment to
div-input DivStorageforwards IllegalStateExceptions toLoadDataResultnow
iOS Client:
- Supported resume, pause, fatal actions in
DivVideo - Supported disappearing actions
Web Client:
Added:
- Supported
dictvariable type
25.3.0
JSON Schema:
Additions:
- Added
text_alignment_properties fordiv-input
Android Client:
Additions:
- Added
disappear_actions - Added
DivCustomContainerViewAdapterwithDivStatePathpropagation to implementations
Fixes:
- Fixed
DivSelectline height - Fixed permanent destroying video manager on view detach
- Fixed big corner radius drawing
iOS Client:
Additions:
- Added
disappear_actions - Added
fixed_lengthmask forDivInput - Added
marginsfor separators inDivContainer
Web Client:
Added:
- New content alignments in the
container:space-between,space-around,space-evenly font_familyproperty is now supported in the different components. Keep in mind, for this property to work, you need to provide atypefaceProvidermarginsfor acontainerseparators are now supported
Kotlin JSON Builder:
- Supported properties from scheme up to 25.2.0
25.2.0
JSON Schema:
Additions:
- Added
disappear_actions - Added new variable type:
dict - Added new types of content-alignment:
space-between,space-around,space-evenly - Added new property of container separators:
margins
Android Client:
Additions:
- Supported multiple
RenderScriptcontexts
Fixes:
- Fixed patch applying to pager
- Fixed animation of disappearing views
- Fixed black screen and state saving after detach in video-custom
- Fixed black screen at the end of playback after onPause
- Fixed
VariableControllerpotential memory leaks
iOS Client:
Fixes:
- Fixed cursor offset in
DivInput - Deserialization optimization
Web Client:
Additions:
disappear_actionsis now supported- Added a new
videocomponent
25.1.0
JSON Schema:
Additions:
- Added
pause_actionsandfatal_actionstodiv-video
Changes:
- Combined
streamandvideosource types indiv-video
Android Client:
Additions:
- Supported
DivVideo
Fixes & Changes:
- Fixed center alignment of elements with margins in containers
- Rolled back of
DivCustomContainerViewAdapter - Fixed double closing of
DivStoragedatabase on cards removing - Extended API of
DivPlayer.Observer - Fixed array validation at JSON parsing
iOS Client:
Additions:
- Supported
DivVideo
TypeScript JSON Builder:
Updates:
- Optimized
rewriteTemplateVersions
25.0.0
JSON Schema:
- Added
inputvaldator - Moved
inputmask'sraw_text_variableinto the basemask
Android Client:
Fixes:
- Fixed crash at hardware accelerated bitmap animation
- Fixed binding indicator with pager within gallery items
- Fixed various DivStorage concurrency issues
- Fixed various currency input mask issues
iOS Client:
- Removed metal, selecting feature flags
- Supported getValue functions
- Supported stretch parameter for DivImage
Web Client:
Additions:
- Supported expressions in
tabstitle - Added
currencymask for theinput
Fixes:
- Fixed
selectsizes, paddings and other size-related properties - Fixed
selecthintshow logic to match other platforms - Fixed several cases with incorrect json processing (color is not a string, etc)
- Changed
actionswithouturlprocessing logic to match other platforms (previusly they was ignored as incorrect) - Fixed
inputcursor logic for the Safari (for the iOS in partucular)
24.4.0
Android Client:
Additions:
- Added overload for variable set functions
- Added
DivVideoimplementation - Added
DivSelectimplementation - Added currency mask
- Added
DivCustomContainerViewAdapterwithDivStatePathpropagation to implementations - Support
raw_text_variablefor masks
Fixes:
- Fixed generator creating optional fields with validators when not needed
- Fix cards feed size in demo-app
- Fixed image loading race condition
iOS Client:
Additions:
- Added video block implementation
24.3.0
JSON Schema:
Additions:
- Added
div-video.jsonto schema - Actualized supported features on Android
Android Client:
Additions:
- Added the ability to stretch background images without saving aspect ratio
- Added
z-ordermodes forvideo-custom
Fixes:
- Fixed redundant re-measurement in an overlapping container
- Fixed incorrect name of the
Linear Layoutclass in accessibility mode - Fixed deletion and insertion bugs in
fixed_lengthinput masks - Added workaround for bug in
View.isLaidOut
iOS Client:
Additions:
- Implemented
selectcomponent
Web Client:
Additions:
extensionssupport- SizeProvider extension
- Lottie extension
- Implemented
selectcomponent - Implemented an
inputmaskfor a text with a fixed number of characters
Fixes:
- Fixed markup update after
urlchange in theaction - Fixed size-related properties of
input(paddings,border_radius,letter_spacingand others), previously they incorrectly depended on thefont_sizeproperty
24.2.0
JSON Schema:
Additions:
- Added stretch image scale type
- Added div-select.json to schema
- Added currency mask schema
Changes:
- Moved raw_text_variable to input mask
- Updated
platformsfield in schema
Android Client:
Additions:
- Implemented wrap_content constrained size for gallery items
- Implemented stretch image scale type
- Implemented aspect-based height for vertical and horizontal containers
Fixes & Changes:
- Fixed base sizes for wrap_content constrained in linear container
- Skip paddings when content does not fit into container
- Allowed DivCustom childView creation from any thread
- Disabled incorrect child height warning when aspect-based size is defined
- Improved DivImage preview performance
- Fixed error counter breaking overlap container with match_parent height
- Fixed expression evaluation cache
- Fixed linear container accessibility
iOS Client:
- Removed TemplateSupport module.
Web Client:
Additions:
stretchimage scale type- Ability to build custom DivKIt lib with a limited set of components and disabled expressions
Fixes:
no_scaleimage scale type should now work properly
Kotlin JSON Builder:
Changes:
- Changed Int to Long
24.1.0
JSON Schema:
Fixes & Changes:
- Removed selection input schema
- Updated
platformsfield in schema
Android Client:
Additions:
- Implemented aspect height in wrap container
Fixes & Changes:
- Made gallery scroll slower
- Removed observers in clearBinding method
- Fixed visibility animations on disappear
- Fixed triggering changes after variable declaration
iOS Client:
Additions:
- Added aspect support for vertical wrap container
Fixes & Changes:
- Made solid and gradient background behaviors the same
- Made initializer for gradient failable
- Passed elements errors in DeserializationResult for templates
- Replaced fatalError with assertionFailure where possible
- Removed selection input implementation
Web Client:
Fixes:
- The
aspectproperty in thecontainershould work better in combination with theheightproperty
24.0.0
JSON Schema:
- Added raw_text_variable for div_input
- Added new keyboard type
Android Client:
Breaking changes:
- Changed Int to Long
- Inherit Div2View from FrameContainerLayout
Additions:
- Added new keyboard type
- Added getValue functions
- Added size_provider extension
Fixes & Changes:
- Replaced DivSnappyRecyclerView with DivRecyclerView + PagerSnapHelper
- Optimization AND expression
- Opt-in primary constructors of div models
- Fixed crash on set_state in trigger actions
iOS Client:
Additions:
- Added new keyboard type
Fixes & Changes:
- Increased support version for iOS to 11
- Increased size of Integer
- Removed selection input method into DivInput
- Renamed base modules
- Fixed string arrays parsing
- Fixed DivGallery actions handling
- Fixed CFString parsing
- Fixed shimmer-view block reuse
- Fixed constrained logic in wrap container
Web Client:
Breaking changes:
- The
setVariable/GetVariablemethods have been removed (these methods were deprecated long time ago before opensource, in web version 1.11.0) - DivKit now uses
BigIntinternally if it is supported by the current platform. This also means that variable methods such assubscribecan now returnbigintvalues instead ofnumber(and accept such values in json).integervalues in expressions are now limited to 64 bits instead of 32, and the minimum/maximum value forintegervariables has been changed. Note that outside of expressions, DivKit restricts values to 32-bit integers, as was the case in previous versions. Also note that the js builtin methods, such asJSON.parse, return a simplenumber, so these values may lose accuracy outside the logic of DivKit. Make sure that your values are in the range-2^53 — 2^53or a custom json parsing function is used
Kotlin JSON Builder:
- Added new keyboard type
23.7.0
Android Client:
Additions:
- Added cache for expressions
Fixes:
- Fixed concurrent modification exception in div storage
- Fixed IndexOutOfBoundsException in DivGallery
- Fixed declaration of new local variables
- Fixed scroll view for demo-app
iOS Client:
- Added overflow parameter support in actions for DivTabs
- Allowed zero duration
Web Client:
- Removed missing template field warning
23.6.0
Android Client:
Additions:
- Added format date function
- Added trigger logging
Fixes:
- Fixed image preview
- Fixed ripple animation duplication
- Fixed alignment in
DivGallery
iOS Client:
- Added
overflowparameter support indiv-actionforDivPagernavigation. - Fixed constrained element size calculation inside
DivContainer. - Fixed
MetalImageViewimages rendering.
Web Client:
Additions:
toUrl/toColorfunctions
23.5.0
Android Client:
Additions:
- Sampling for div-blur
- Masks for div-input
- Cache for evaluated expressions
Fixes and changes:
- fixed image binding perfomance
iOS Client:
- added
selectioninput method intoDivInput. - added error level into
externalLogger. - fixed
DivImagelayout trait check.
Web Client:
Additions:
- Functions for getting
datetimecomponents - Functions for getting value of a variable, if it exists.
getStringValue,getIntegerValue, etc
Fixes and changes:
timersticks should now be more accurate and reliable. Time intervals would correct time error, there is also an extra tick before end the duration if the ticks doesn't trigger in timevisibility_actionactions will now evaluate expressions on the trigger, and not when the creating the component
23.4.0
Android Client:
Added:
- Added
shimmerextension - Supported
aspect ratioinoverlap container - Supported min/max sizes for containers with
wrap_content constrainedsize
Fixes:
- Fixed
timersin Div2View inside RecyclerView - Fixed
ellipsizecontaining image span - Fixed
focuswhenaccessibilityis turned on - Fixed
transition animationsinstate layout
iOS Client:
Added:
- added
imagessupport forellipsisin DivText
Fixes:
- fixed alignment inside wrap DivContainer
- fixed views reuse in DivContainer
- fixed concurrency issues in DivTriggersStorage
- fixed transition animations inside DivGallery/DivPager
Web Client:
Added:
aspectsupport forcontainer(aspect-ratiocss property support is required!)
Fixes:
- Updated missing function error text, to better match other platforms
- Fixed error in
galleryafter destroy - Fixed element
wrap_contentsizes withconstrainedingrid
23.3.0
Android Client:
- Fixed algorithm of
indicatorattach to specifiedpager - Fixed accessibility type binding for
gallery - Fixed NPE in
DecodeBase64ImageTask
iOS Client:
- Fixed corners in
DivIndicator - Fixed wrapped
DivContainerlayout
23.2.0
Android Client:
- Added support of
max_sizeproperty - Added support of
wrap_contentsize with constraints - Added border to indicator
- Added sharing non-local variables between contexts
- Fixed filters not being applied to image preview
- Fixed visibility change of gallery items
iOS Client:
- Added SizeProviderExtensionHandler
- Added plus operator support for strings
- Fixed last tick action in DivTimer
- Fixed text selection in DivInput
- Fixed multithreading in DivVariableStorage
23.1.0
Android Client:
- Added time interval functions
- Added support of shape properties to slider
iOS Client:
- Added functions for DateTime
- Fixed
padStart/padEndfunctions
Web Client:
Added:
indicatorcan now be rendered in two ways,placementfield is now supportedindicatorcan now have a border inside every point, shape objects have been updated to supportbackground_colorandborderproperties. Several fields inindicatorare now deprecated, includingspace_between_centers,inactive_item_color,active_item_color,shapeandactive_item_size. Shape objects support insliderwas also updated
Fixed:
padStart/padEndnow will work properly with an emptypad_strargument- Default
widthmatch_parentshould work more predictable in rare cases separatorandline_separatorincontainernow will not block clicks and other events on component and it's descendantsconstrainedsize logic in rare cases
23.0.0
JSON Schema:
- Added
div-shape-basetodiv-circle-shape
Android Client:
- Added support of timers
- Added
div-indicatorstyle based ondiv-rounded-rectangle-shape - Added subscription to image preview changes
- Fixed border clipping in transition animations
- Fixed patch application to child of container with id
iOS Client:
- Added
ShimmerImagePreviewExtension - Added
aspectsize support inDivContainer - Added batch actions handling,
DivActionURLHandler.UpdateCardActionrefactoring
Web Client:
Fixed:
imagepreview size and filters supportgalleryarrows on the desktop should now appear faster
TypeScript JSON Builder:
- Speed up object walking in several operations
22.0.0
JSON Schema:
- Added
aspectin div-container - Added
background_colorandstrokein div-rounded-rectangle-shape
Android Client:
- Added extension for Rive animations
- Added function to get time component from datetime
- Fixed layout of linear container children with match parent size
- Fixed background blur radius updating by variable
iOS Client:
- Added border in DivIndicator
- Added minSize/maxSize for constrained elements
- Added CustomImagePreviewExtensionHandler
- Added errors view in DivKit Playground
Web Client:
Fixes:
- Fixed
tint_colorupdate for Safari
21.1.0
JSON Schema:
- updated translations
Android Client:
- Fixed baseline alignment in linear container
- Fixed minor layout issues
- Fixed rare crash when animating not laid out view
- Clear warnings after setting new data to
Div2View
iOS Client:
- Added functions for time intervals
- Added
padStart,padEndfunctions - Added stretching
DivIndicatorsupport - Fixed temporary param in
set-stateaction - Fixed
DivSliderthumbs - Fixed
nowLocalfunction
Web Client:
Added:
min_size/max_sizefor thewrap_contentsize- Functions
padStart/padEnd - Functions for time intervals
Changed:
- Allow
wrap_contentsize for thegallerieson the main axis - Fixed
timersstart with incorrect values
21.0.0
JSON Schema:
- Added
timerssupport
Android Client:
- Removed warning about element's wrong size in case when it doesn't affect its parent size
iOS Client:
- Added
timerssupport
Web Client:
- Added
timerssupport - Added customization of the link protocols that should be rendered as native link (
builtinProtocols)
20.0.0
Android Client:
- Updated gradle wrapper to version
7.6 - Added tapjacking protection
- Added separation of
wrap_contentandwrap_content constrainedlogic
Kotlin JSON Builder:
- Updated gradle wrapper to version
7.6
19.0.0
Android Client:
- Added backgrounds for ranges of text
- Added cache for background spans
- Added implementation of wrapping list control to single item for accessibility
- Removed redundant layout steps in gallery
iOS Client:
- Added custom for rive animations
- Added memoization for image placeholders
Web Client:
Added:
mixproperty for a custom class namecustomizationrender property for a desktopgallery
Fixed:
- Incorrect
containerspacing withseparators
18.0.0
JSON Schema:
- Added Min/max sizes in schema
- Added type=list to accessiblity
- Changed command format for timers
Android Client:
- Added border support to div-customs
- Added accessibility hint and mode subscriptions
- Fixed state patches
- Fixed exta actions bind
- Fixed linear layout params
- Removed module com.yandex.div:div-core-views. Classes moved to com.yandex.div:div
- Removed Div2Context#div2Component. In order to update global variables use Div2Context#globalVariableController
- Log and Assert is internal now. Use DivKit class methods in oder to toggle logging and assertions
iOS Client:
- Added backgrounds for ranges of text
- Optimize escaping in expression resolving
- Fixed getting preview from url starts with data:image/png;base64
Web Client:
Added:
backgroundandborderfor thetextrangesbaselinevertical alignment
Fixed:
- Background redraw on variables change (with additional conditions)
- CSS names conflict on production build, now css classes are longer
- Artifacts near conrers, if both radius and stroke are used
- Updated
imagepreview / placeholder logic - Fixed
tint_mode=multiplyto better match Android logic
17.0.0
JSON Schema:
- Added indicator items stretching mode
Android Client:
- Added baseline alignment in wrap container
- Fixed patch applying
- Fixed crash on invalid patch field
- Fixed blur when radius is 0
iOS Client:
- Fixed redrawing after blur radius changed
- Fixed slider failure.
- Fixed height for linear container
- Fixed line height in wrap container
16.0.0
Android Client:
- Added baseline alignment in linear container
iOS Client:
- Added blur and tint mode support
- Added baseline alignment in DivContainer
- Improved DivErrorsStorage
15.0.0
JSON Schema:
- Added
div-timer - Added zero blur radius support
- Added
borderandbackgroundfor text range
Android Client:
- Align elements in wrap container rows by default
- Added generated method to apply patch
- Fixed expressions serialization
- Fixed shadows in DivGallery
Web Client:
- Added separators support in DivContainer
14.0.0
JSON Schema:
- Added
div-bluranddiv-blur-background - Added
baseline_alignmenttodiv-container
Android Client:
- Added blur implementation
- Added extensions unbind for DivCustom
- Added static method for version name
- Added hyphenation support for DivText with custom ellipsis
- Fixed DivCustom behaviour in regression tests
- Fixed overlap DivContainer children size measure
- Fixed applying paths in Playground
- Fixed missing ellipses
- Open url if DemoActivity opened from intent
iOS Client:
- Added image blur implementation
- Added separators support in DivContainer
- Fixed DivPager last page layout
- Fixed overlap DivContainer children size measure
- Fixed memory leak in PinchToZoomExtensionHandler
- Fixed screen capture for web preview
Web Client:
Additions:
- Added
setThemeinstance method filters(onlybluris supported so far) implemented for theimageand image background
Fixed:
Enterhandling in multiline input
TypeScript JSON Builder:
- Synchronized version number with DivKit version
13.0.0
JSON Schema:
- Added
tint_modefor images indiv-text
Android Client:
- Added circle shape
- Implemented Nine-patch background
- Implement separators in wrap container
- Implemented tint_mode for images in div-text
- Fixed applying patches in demo app
- Fixed escaping symbols processing in expressions
- Fixed expression result convertion for string properties
iOS Client:
- Updated Lottie dependency to 3.5.0
- Added Lottie prefetching
- Combined video and images prefetching
- Supported nested ternary operator
- Added rendering time in Playground
- Fixed pager state change behavior
- Fixed Lottie animation strarting
- Fixed escaping symbols processing in expressions
- Fixed animations for div-text
Web Client:
- Added
circleshape support - Supported
no_animationandnativevalues for theaction_anmation - Supported
tint_mode
12.0.0
JSON Schema:
- Added Nine-patch background
Android Client:
- Added separators in linear layout
- Fixed text style change after slider position change
- Fixed invalid view visibility on change state
- Fixed gallery pages position
- Fixed attaching pager indicator
iOS Client:
- Added text gradient support
- Implemented Nine-patch background
- Fixed animation traits
Web Client:
- Implemented Nine-patch background
- Supported for the
selected_actionsinpager - Fixed color values convertion
11.0.0
JSON Schema:
- Added
cross_spacingsupport for gallery - Added
tint_modefordiv-image - Added separator in DivContainer
- Added circle shape to schema
- Updated description for
longtap_actionsanddoubletap_actions
Android Client:
Additions and changes:
- Implemented support external theme in DivContext
- Implemented
tint_modefor DivImage - Implemented
cross_spacingfor Gallery - Implemented
wrap_content_constrained - Added divider between elements in container to schema
- Added avoid creating
DivBorderDrawerif it will not used - Added show warning on
wrap_contentcontainer withmatch_parentchild size Fixes: - Fixed list of expressions generating
iOS Client:
- Added
cross_spacingsupport in DivGallery. - Added radial gradient support.
- Improved
match_parentitems behaviour in DivContainer and DivGallery. - Fixed invisible items size.
- Fixed actions handling in Sample app.
Web Client:
Additions:
- Support for the
wraplayout mode in acontainer - Support for the
cross_spacingproperty ingallery doubletap_actionsandlongtap_actionsare now supoorted in actionable components- Support for the
appearance_animationinimage - Support for the
restrict_parent_scrollproperty intabs,galleryandpager - Root states are now properly supported Changes and fixes:
- Updated the
wrap_contentlogic, this would lead to a different layout in some corner-cases - Boolean values from exressions are now correctly converted to the string
false/truein thetextblock - The layout of the
sliderhas been changed to sync with other platforms, now the text offset will not change the size of the component. Also now there may be more than 20 ticks - Updated color functions according to the latest changes. Now several of them would return the type
colorinstead ofstring(rgb, rgba, setColorRed and others) - Components will now correctly unregister when destroyed, so recreated elements will work properly (for example, actions to change the current element in the gallery, nested state elements and others)
- Fixed logic of expression processing Previously, if a string was considered an "expression", it was processed as it, otherwise it would be used as a simple string. But sometimes this check worked incorrectly and processed expressions as a string. This is now fixed. It also means that some strings will now require proper escaping, so be sure to check this in your project (previously,these strings "just worked" without escaping because they were not treated as expressions)
- Now elements with custom actions can be focused, as it was with simple URLs. This would result to better accessibility in such cases (these elements also accept the keyboard input!)
- Fixed the visibility of the
galleryarrows on desktops in several cases - Fixed a case where
transition_in,transition_outandtransition_changeincorrectly discarded thealphacomponent property - Component actions will now wait for the result of each of them. This means that you can create an array using 2 actions: one to change the state, and the second to change the created component inside the state
10.0.0
Android Client:
Additions and changes:
- Implemented alignments in
WrapLayout - Implemented radial gradient
- Implemented warnings on slider ticks overlap each other
- Implemented visibility transition support
- Allow patch multiple view with same id
iOS Client:
Fixes:
- Fixed Lottie extension params parsing
9.0.0 (September 27, 2022)
JSON Schema:
- Clarification of wrap container documentation
- Added radial gradient schema
Android Client:
Additions and changes:
- Implemented
WrapLayout- layout with transfer of elements to the next line if they don't fit in the previous one - Implemented showing of rendering time in demo activity
- Improved snapshot tests Fixes:
- Fixed concurrent modification of variables
- Fixed
tint_colorobserving on element's rebind - Fixed lottie resources providing for tests
iOS Client:
- Added Swift Package Manager support
- Fixed concurrency issues in
DivStateManagerandDivVariablesStorage - Improved
DivContainerheight calculation - Improved snapshot tests
Web Client:
Added:
radial_gradientsupport
8.0.0 (September 20, 2022)
Android Client:
Additions and changes:
- Added image change subscription
- Moved
observeTintColorintobindmethod - Refactored
DivBorderDrawer - Parsing patch from JSON
- Changed host tag
- Disabled bind on attach
- Implemented replacing of link or json when paste from buffer in demo-app
- Supported
true/falseliterals into variables - Bind
inputtype for accessibility Fixes: - Fixed regression screen at release builds of demo-app
- Fixed image blinking on rebind
- Fixed text alignment in
inputwhen rtl enabled - Fixed extensions reuse
iOS Client:
Additions and changes:
- Added
true/falsevalues support inset_variableactions - Added
wrapmode in DivContainer - Added interactive snapshot tests
- Improved public API
- Improved dark mode in DivKit Playground
- Updated bool values parsing in set_variable actions Fixes:
- Fixed transition animations
- Fixed DivContainer error messages
Web Client:
Additions and changes:
- BooleanInt props now accepts booleans too
- Implemented boolean values for boolean variables
- Reworked
containerlayout - Added package tests
- Downgraded
babel-preset-jest, so it is possible to run divkit tests with an older version of the node.js Fixes: - Fixed zero-values in
action_animation - Fixed
gridrecalculation - Fixed layout of
pagerchild elements when their size is too small
Kotlin JSON builder
Addition:
- Implemented flags for hash files
7.0.0 (September 13, 2022)
Android Client:
Additions and changes:
- improve actions binding
- cover generator with tests Fixes:
- use public gradle distribution url
iOS Client:
- Added test data into DivKit Playground
- Added color themes support in DivKit Playground
- Added DivInput tests
- Improved public API
- Fixed DivInput keyboard behavior
- Fixed boolean values serialization
Web Client:
Addition:
transformis now supported for thebasecomponent
6.0.0 (September 6, 2022)
Android Client:
Additions and changes:
- Supported rotation transformation
- Switched to new API Generator Fixes:
- Fixed build configuration
iOS Client:
- Added LottieExceptionHandler
- Added focus support in DivInput
- Renamed DivKit Demo to DivKit Playground
- Fixed DivData states transition
- Fixed visibility actions for transitioning blocks
- Fixed text alignment in DivInput
- Fixed camera initialization in DivKit Playground
- Improved parseDivData methods in DivKitComponents
- Improved Sample app
Web Client:
- Updated
inputto sync with the schema, also fixedtext_colorand height - Fixed the behavior of
transition_in/transition_out(when to start and when not to start animation) - Fixed the default value of
variable_trigger.mode
5.0.0 (September 5, 2022)
JSON Schema
Fixes:
- Minor fixes in documentation
Android client
Changes and additions:
- Added code samples to sample app
- Added README
- Minor UI tweaks in Playground app
iOS client
Changes and additions:
- Added sample app
- Supported
alignment,max_visible_linesandselect_all_on_focusfordiv-input - Minor UI tweaks in Demo app
- Text selection in
div-inputcan be cleared by tap to outside area
Fixes:
- Fixed scale animation with zero factor
- Fixed text selection in multiline inputs
Web client
Changes and additions:
- Messages of expression parsing errors made more informative
4.0.0 (August 29, 2022)
JSON Schema
Changes and additions:
- Added translations for property descriptions
max_linesrenamed tomax_visible_lines
Android client
Changes and additions:
- Redesigned demo activity in Playground app
- Removed unnecessary permissions for Playground app
- Removed theme setting from Playground app
- Updated Playground app icon
- Added sample app
Fixes:
- Fixed flickering during video loading
iOS client
Changes and additions:
text_variable,highlight_colorandkeyboard_typesupport in DivInput- Demo app refactoring and redesign
Web client
Fixes:
- Fixed
action_animationon iOS
Kotlin JSON builder
Fixes:
- Fixed serialization of overloaded template properties