@epam/assets
Advanced tools
Changelog
4.10.0 - 06.02.2023
What's New
closeOnMouseLeave: 'boundary'
, closeDelay
and openDelay
trigger
. Now tooltip always opens on hover, use dropdown for cases when you need to open body by click.isVisible
. If you need to programmatically control the opening, use the value/onValueChange props.columnGap
and rowGap
to setting the spacing between children and rows in case of a FlexRow wrapopenDelay
and closeDelay
prop, for dropdown which opens by hoverWhat’s Fixed
rel='noopener noreferrer'
where target='_blank'
dataSourceState
when programmatically handling previously loaded data, if API returns empty arrayfix
property and fixed the problem with pinning the column after unpinning, if it has fix
property in the column config.NumericInput
by preventing rounding up numbers if formatOptions
are definedRating
color for selected starsprops.format
value in priority over other acceptable formatsChangelog
4.9.1 - 01.12.2022
What's New
tryRelease
method publictryRelease
argument in acquire
now optional, if isn't passed release lock immediately on requestwithLock
now run passed action and get lock until action runningWhat’s Fixed
Changelog
4.9.0 - 17.11.2022
This release includes all changes from '4.9.0-rc.1' version
What's New
What’s Fixed
Changelog
4.9.0-rc.1 - 24.10.2022
What's New
This release prepares UUI for full-featured editable tables support. Editable tables were possible before this - via hooking into renderRow, building a separate component for row, and certain tricks to re-render it w/o re-rendering whole table. However, this was a complex and feature-limited approach.
In this release, we add first-class support for editable cells, and adjust our infrastructure to support various other features to make DataTables editable. You can find example and documentation how to create editable table here.
With this release you already can build editable tables. However, we are planning to improve certain parts in the future releases, e.g. simplify adding/removing/moving rows in tables.
[Breaking Change]: DataSources and DataTables-related interfaces refactored:
ArrayDataSource - items
prop value can now be updated dynamically.
Prior to this fix, the only way to update items
, is to add them as useArrayDataSource
dependencies. This forces DataSource to re-create everything, forcing re-render of all tables' rows. This was slow, especially if you need to make cells editable - i.e. re-render on each keystroke. Now, you can safely remove your items from deps: useArrayDataSource(..., ~~[items]~~), which will improve performance.
DataSources: getRowOptions
is called on each update, allowing to dynamically change rows behavior. For example, you can dynamically enable/disable checkboxes in Tables or PickerInputs.
DataSources: getRowOptions - DataRowOptions now implements IEditable<TItem>
interface. This allows to make rows editable, by passing value/onValueChange directly, or by using lens.toProps(): getRowOptions(item) => lens.prop(item.id).toProps()
[Breaking Change]: DataTableCell layout reworked.
[Breaking Change]: DataTable columns widths props are simplified. Columns width are defined by width (in pixels), and (optionally) grow - which defines a part of empty space for column to occupy. Props affected:
[Breaking Change]: DataSources doesn't work with array/object ids by-default. In certain cases, we used IDs like [123, 'group-row'] to handle scenarios when there are different types of entities, with overlapping ids. E.g. item groups, and actual records in grouping table case. They are no-longer supported by default.
complexIds = true
prop when creating DataSource. In this case, DataSource will use JSON.stringify to use IDs as Map keys internally. This was default behavior prior this change, which has impact on performance, so it's made optionaluseForm now provides two new callbacks: setValue and replaceValue.
They work the same way as setState of React.useState.
Besides a plain new form value, both can accept a function (currentValue: T) => T
. This option is useful if you want to use useCallback
to memoize operations on the whole state of the form.
setValue acts as a usual user-made change to a form - sets isChanged, creates undo checkpoint, etc.
replaceValue doesn't update isChanged, and can be used for technical needs. E.g. to store values like 'currentTab' in the form state.
Metadata<T> type - 'all' prop now infer the type of array element or object values (was typed as 'any')
Lenses now memoizes all methods calls (.prop, .item, etc.). This allows to not re-create onValueChange callbacks on re-renders. In turn, it opens a way to use React.memo/shouldComponentUpdate optimization for IEditable components.
[PresetsPanel]: Added new PresetsPanel
component, which allows you to save your current filtration into presets and manage them. See demo here.
[AdaptivePanel]: Added new AdaptivePanel
component. This component helps you to layout elements inside container and hide items by their priorities if they didn't fit.
[MainMenu]: reworked based on AdaptivePanel
, now you can provide menu elements in new format via items
prop. But we also left working old approach with children, so no action is required from your side.
[Numeric Input] - reworked to display number is locale format (e.g. with decimal and thousands separators) while not being edited.
disableLocaleFormatting
prop[RangeDatePicker]: Added onFocus and onBlur props
[PickerInput]: added ability to pass rawProps to modal window
[Modals]: added disableCloseByEsc
prop to ModalBlocker
[Accordion]: API improvements, added opportunity to overwrite title.
[DropdownMenuButton]: added possibility to provide onClick for icon
[FilterToolbar][Breaking change]: renamed FilterToolbar
component to FilterPanel
[FilterPanel]: added numeric filter type
[FilterPanel]: improvements and bugfixes
Build target for packages is changed from ES5 to ES6. This shouldn't affect existing apps, as most app builds into ES5 anyway, including the latest CRA.
[ModalContext]: added argument to abort method
What’s Fixed
rawProps
prop typingsonValueChange
now triggers internal validation logic (as with changes made with lenses)Changelog
4.8.5 - 15.09.2022
What’s Fixed