Fix sanitization of empty RTA input for Firefox & IE (#11937) (#11989)
Browsers differ in what they return as the content of a visually empty rich text area (RTA). Accordingly, RTA sanitizes these different values ensuring an empty string is returned to the framework. However, existing sanitization criteria doesn't work for Firefox 74 and Internet Explorer 11.
This fix appends the sanitization criteria of Firefox 74 and IE 11, ensuring an empty string is returned to the framework for a a visually empty RTA.
Closes #10338
Authored-by: Tarek Oraby <42799254+tarekoraby@users.noreply.github.com>
Fix RTA's CreateLink in Firefox & IE11 (#11979) (#11987)
* Fix RTA's CreateLink in Firefox & IE11 (#11979)
In Firefox and IE11, the 'Create Link' button of the RichTextArea (RTA) only works by turning some highlighted text into a link (by adding the inserted URI as the href property of the text). In that, the RTA in these two browsers behave similarly to the way it does in Chrome and Edge. However, in Firefox and IE11, clicking the 'Create Link' button has no effect if no text is pre-selected by the user. This is different from the button's behavior in Chrome and Edge where the user's provided URI is inserted, both, as the displayed text and its href property if no text is highlighted.
This fix enables the RTA's 'Create Link' button to work consistently across the supported browsers. Specifically, (and in addition to enabling adding the href property of a highlighted text), this fix enables Firefox and IE11 to also insert a new Uri as a text and its href property if no text is already highlighted.
fixes #11888
Fix hiding / un-hiding with frozen columns in multiselect mode (#11972) (#11975)
The previous patch https://github.com/vaadin/framework/pull/11951 did fix the problem (frozen column indicator wrongly positioned) it was meant to, but caused a regression in hiding / un-hiding.
This new fix addresses both problems, i.e. it applies multiselect column compensation in other way, without causing problem in hiding / un-hiding logic
Fixes https://github.com/vaadin/framework/issues/11970
Expired session: use 403 Forbidden instead of 410 Gone (#11859) (#11964)
* Expired session: use 403 Forbidden instead of 410 Gone (#11859)
Use 403 Forbidden instead of 410 Gone when session expired. Also prevent caching in more cases.
* Change to using StringBuilder (#11941)
Should use a StringBuilder to accumulate strings in a loop, to avoid the performance cost of repeatedly constructing strings.
Ensure recalculateColumnWidths works with refreshAll. (#11934) (#11959)
Column widths shouldn't be calculated between the clearing of cache and
re-populating it, but be delayed until the cache has some content again.
The calculations should only be triggered immediately if no rows are
expected.
Fixes #9996
Fix an issue with frozen column count and unhiding. (#11929) (#11932)
* Fix an issue with frozen column count and unhiding.
Unhiding logic should take into account that there can be hidden frozen
columns that are not the column currently getting shown.
There is no need to reset the sidebar for every column that is set
hidable within the same roundtrip. Because no other layouting depends on
the sidebar contents, we can safely delay the reset until all columns
have got their hidabiity status updated. As a bonus point, when the
reset itself is delayed, the headers have time to get populated and the
sidebar button's height can be determined immediately at attach. The
reset ensures that attach is called every time a column's hidability is
changed.
Trigger re-measure after updating ElementResizeListeners. (#11912) (#11922)
Removing ElementResizeListeners from an element makes it unmeasurable
and clears any saved measured values. Adding the listeners back makes
the element measurable again but doesn't add it to measuring queue.
Measuring needs to happen or any updates to expanded components within a
layout (without changes that would trigger full re-measuring of the
layout itself) lead to broken expand size calculations with any fixed
size elements assumed to have no size.
Fixes #10734
Further tweaks to ComboBox popup positioning. (#11910) (#11921)
* Further tweaks to ComboBox popup positioning.
- Updated a comment and renamed a private method for better clarity.
- Blocked unnecessary position updates.
- Added a test for #11866 / #11894.
* Removing code causing the trouble (#11898)
* Removing code causing the trouble
Removing code that was apparently not needed in previous fix and caused regression
Fixes: https://github.com/vaadin/framework/issues/11895
* Added feature to test UI
* Added test case
* Adding missing import
* Fixing test UI
* Enable DateField
* Rewrote debouncing of onResize (#11899)
* Rewrote debouncing of onResize
Fixes https://github.com/vaadin/framework/issues/11892
* Fixing typo in variable name
* Adding missing setPopupPosition(left, top); (#11902)
* Adding missing setPopupPosition(left, top);
setPopupPosition(left, top); needs to be called in order to top position to be set
Fixes https://github.com/vaadin/framework/issues/11894
Co-authored-by: Tatu Lund <tatu@vaadin.com>
Fix logic of lexicographical comparison of DateField range end (#11885)
* Fix logic of lexicographical comparison of DateField range end
Fix logic of lexicographical comparison of DateField range end with large year numbers ( > 9999)
Fixes #11881
* Added tests
Purpose of dateFieldRangeYearDigitsIncrease() is to test that rangeEnd works correctly on 4 to 5 digits change boundary
Purpose of dateFieldRangeYearBigNumbersPopupOpens() is to test that popup opens also when there is more than 4 digits in year
* Fixing typo
* Add error message
* Set the date of the field in test
* Fixing
* Don't reset date to current at DateField state (e.g. read-only) updates. (#11879)
- DateFields with month or year resolution should not get their date
reset to current date if the field's state is updated (e.g. by changing
read-only status or adding a range).
Fixes: #11864, #11605
* Update Navigator.getState() JavaDoc to be more accurate (#11876)
Fixes: https://github.com/vaadin/framework/issues/11875
Co-authored-by: Anna Koskinen <Ansku@users.noreply.github.com>
Co-authored-by: Tatu Lund <tatu@vaadin.com>