![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@epam/assets
Advanced tools
This package is a part of EPAM UUI library.
@epam/assets contains variety of assets, which are usable without React:
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)FAQs
EPAM Assets Library
The npm package @epam/assets receives a total of 508 weekly downloads. As such, @epam/assets popularity was classified as not popular.
We found that @epam/assets demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.