v3.9.0 (June 6, 2023)
Performance Enhancement: Utilizing computedStyle, Resizing Fix, and Improved Element Position Detection (#645)
Implement CSS Getters and Setters, Resize Event Handler Fix, Enhanced Element Position Detection, Refactoring, and Cleanup (#647). Introduces several improvements and fixes as follows:
- Utilize CSS getters and setters: This update enhances the library's usage of CSS getters and setters for improved performance and compatibility.
- Fix resizing event handler: Addressed a bug in the resizing event handler that failed to trigger the expected chain of updates related to the event. This fix ensures that the chain of updaters is correctly executed.
- Enhanced element position detection: Introduced a unified logic to detect an element's position relative to the viewport. This enhancement provides a more consistent and accurate position calculation.
- Remove the optional object for setting the inner scroll threshold: Eliminated the need for an optional object parameter when setting the inner scroll threshold. This simplifies the API and improves code readability.
- Refactor and remove unnecessary methods in the Threshold class: Streamlined the Threshold class by removing unnecessary methods and increasing reliance on the Box model. This refactoring improves code efficiency and maintainability.
Migrate related box model in Threshold to the Box Model (#646): Focuses on migrating the related box model present in the threshold to the Box model. The aim is to consolidate the codebase and improve consistency. Allowing better modularization, and enhancing code maintainability and readability.
Enhance style handling in Draggable element (#655)
Enhancing the style handling in the draggable element by refactoring and optimizing the setMirrorStyle and setOrUnsetOriginStyle functions. The changes improve reusability, reduce duplication, and make the code more concise and maintainable.
Fix scroll threshold for elements outside screen viewport (#653)
Addressing an issue with scroll thresholds for elements that are located outside the screen viewport. The scroll thresholds were not correctly calculated, leading to inaccurate auto-scrolling triggers for these elements.
- Refactoring the scroll threshold calculation logic to ensure accurate detection of elements outside the viewport.
- Updating the scroll threshold values to align with the element's position relative to the viewport.
- Adding appropriate comments and documentation to clarify the purpose and functionality of the scroll threshold calculations.
- Conducting e2e testing to validate the accuracy of the updated scroll thresholds.
Improve DFlexScrollContainer performance and testability (#644)
- Removing an extra class instance.
- Decoupling event debouncing and testing it in isolation.
- Refactoring updateSiblingsVisibilityLinearly to enhance conditions.
Prevent interactive containers from resizing during elements migration (#643)
Addressing the issue of interactive containers resizing during the migration of their child elements, which can lead to layout distortion and cause problems, particularly when the container becomes empty due to the migration of all children.
To mitigate this issue, the solution enforces fixed container sizes that remain consistent during element migration, ensuring that the container size is maintained and does not change unexpectedly.
It ensures that the layout remains visually consistent, and interactive elements remain correctly sized and positioned. It provides a better user experience by preventing any visual disturbances that could arise from container resizing.
Resolve scroll throttle issues during direction change (#652)
Deferred transformation for invisible elements (#651)
Fix scrollable area calculation (#648)
Refactor element rect calculation to consider scroll position (#656)
Migrate visibility test from Cypress to Playwright (#650)
Full Changelog: v3.8.3...v3.9.0