Commit Graph

7301 Commits

Author SHA1 Message Date
Michał Gołębiowski-Owczarek
d2779bde26 Build: Update some npm dependencies
Unfortunately, we cannot update all of them to their latest versions as some
of them now require Node.js 12 and we need to be able to build on Node 10 as
that's what our Jenkins runs.
2022-01-20 13:29:50 +01:00
Michał Gołębiowski-Owczarek
0c5becce0e
Widget: Optimize attachment of the _untrackClassesElement listener
jQuery UI 1.13.0 changed the logic attaching the `_untrackClassesElement`
listener in the `_classes` widget method; one of the side effects was calling
`this._on` for each node that needed the listener. That caused a severe
performance degradation for large comboboxes as each `_on` jQuery UI call
causes a jQuery `add` call that calls Sizzle's `uniqueSort` underneath.

Instead, collect the nodes that need the listener and then, outside of the loop,
create a jQuery object out of them and attach the listener once. That's still
slower than the jQuery 1.12 version but only slightly: 936 ms to 1.03s on a very
large list on a recent MacBook Pro, compared to ~30 seconds before this patch.

Fixes gh-2014
Closes gh-2037
2022-01-15 01:26:23 +01:00
Michał Gołębiowski-Owczarek
4a7cec365b
Build: Add Felix to .mailmap, update AUTHORS.txt
Beyond the `AUTHORS.txt` changes, this accounts for a recent email change in
one of the commits.

Closes gh-2039
2022-01-15 01:26:00 +01:00
Ben Mullins
933ce5d779
Autocomplete: Rewrite with a delay instead of appending the live region
This fixes the issue caused by https://bugs.jqueryui.com/ticket/9357.
We now empty the live region instead of appending to it, and we do so
after a brief timeout so the live region isn't updated on every mousemove
event or when quickly traversing through options.

Fixes gh-2002
Closes gh-2031
2022-01-05 11:35:34 +01:00
Felix Nagel
e90096e9dd Build: Add extra Github action job for PR required checks configuration 2021-12-06 20:47:34 +01:00
Felix Nagel
e0a78d4400
Build: Switch from Travis to GitHub actions
Closes gh-2021
2021-11-30 16:47:11 +01:00
Michał Gołębiowski-Owczarek
ed637b04d7
Widget: Make contextless widget construction work
Due to the fact the widget factory code is now in strict mode, the check for
being called without using the `new` keyword started breaking if you save the
widget constructor to a variable before calling it:
```js
var customWidget = $.custom.customWidget;
customWidget( {}, elem );
```
as then `this` is undefined and checking for `this._createWidget` crashes.
Account for that with an additional check.

Fixes gh-2015
Closes gh-2019
2021-11-19 00:47:56 +01:00
Michał Gołębiowski-Owczarek
b52ee4012d
Sortable: Fix positioning when moving a Draggable item into a Sortable
PR gh-1793 removed setting `this.offset.parent` in the Draggable
`refreshPositions` method which broke position calculations when moving
a Draggable item into a connected Sortable. restore that assignment.

Ref gh-1793
Fixes gh-2001
Closes gh-2009
2021-11-15 18:39:25 +01:00
Michał Gołębiowski-Owczarek
efe3b22517
Sortable: Allow 0-height containers to be sortable as in 1.12.1
Note that container specific events will not fire when the dragged element
is interacting with zero height containers.

Fixes gh-1998
Closes gh-2008

Co-authored-by: A. Wells <borgboyone@users.noreply.github.com>
2021-11-08 18:21:03 +01:00
Josep Sanz
85fba3f107
Tooltip: Don't crash on empty content
Commit 1f2011ece removed a `try-catch` around triggering the `remove` handlers
in the `jQuery.cleanData` override. The `try-catch` was meant for old IE but it was
also catching an error coming from the tooltip `remove` handler depending on
being able to find a relevant tooltip. The `_find` method returns `null`, though,
when the tooltip cotent is empty.

Instead of restoring the `try-catch`, handle the `null` case in the `remove` handler.

Fixes gh-1990
Closes gh-1994

Co-authored-by: Claas Augner <github@caugner.de>
Co-authored-by: Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
2021-11-08 11:53:45 +01:00
Michał Gołębiowski-Owczarek
1f0851b538
Docs: Update the bug tracker from bugs.jqueryui.com to GitHub
Also, remove the Weekly Meetings section from README as the meetings are no
longer happening.

Closes gh-1972
2021-10-07 16:48:39 +02:00
Michał Gołębiowski-Owczarek
0a23b09e8c Build: Updating the main version to 1.13.1-pre. 2021-10-07 16:21:24 +02:00
Michał Gołębiowski-Owczarek
c3749ca924 Tests: Take development jQuery versions from releases.jquery.com
code.jquery.com is now used just for the specific versions.
2021-09-29 19:07:43 +02:00
Michał Gołębiowski-Owczarek
232fe3bafa Tests: Load the TestSwarm listener via HTTPS 2021-09-29 17:22:17 +02:00
Michał Gołębiowski-Owczarek
2802058ba8 Release: Update the download.jqueryui.com dependency 2021-09-27 15:13:30 +02:00
Michał Gołębiowski-Owczarek
0fe05e5223
Theme: Revert three theme commits that are causing styling issues (#1983)
* Revert "Theme: Removes css for ui-state-checked its not used any more"

This reverts commit 1b0e947f46.

* Revert "Theme: Replace missing definition for default icons"

This reverts commit dde9b83df6.

* Revert "Theme: Switch icon background to use bgColorContent"

This reverts commit 265b8f5e53.

This reverts three commits:

* Theme: Removes css for ui-state-checked its not used any more 1b0e947f46 (https://github.com/jquery/jquery-ui/pull/1753)
* Theme: Replace missing definition for default icons dde9b83df6
* Theme: Switch icon background to use bgColorContent 265b8f5e53

which caused styling issues when compared to UI 1.12.1.

This unfixes a few issues:

* https://github.com/jquery/download.jqueryui.com/issues/335
* https://bugs.jqueryui.com/ticket/15059
* https://forum.jquery.com/topic/checkboxradio-widget-checkbox-click-doesn-t-work-with-ui-lightness-theme-22-9-2016

However, old & known issues are better than new & unknown ones, especially with our current very limited resources.

Closes gh-1983
2021-09-26 00:03:44 +02:00
Michał Gołębiowski-Owczarek
87656cdf57
Theme: Fix blank icons having a background
A fix from 43254468de introduced a rule setting
`background-image` of a blank icon to none. However, the selector used for that
rule had lower specificity than another one: `.ui-button .ui-icon` which caused
dashes being shown over the icons.

We needed to increase the specificity of the `.ui-icon-blank` rule past the
above selector and past `.ui-button:hover .ui-icon`. We're doing it by repeating
the class name three times.

Closes gh-1987
2021-09-25 21:20:06 +02:00
Michał Gołębiowski-Owczarek
b0ed787d18 Build: Require jQuery >=1.8.0 <4.0.0, not >=1.6 in bower.json 2021-09-25 12:25:10 +02:00
Michał Gołębiowski-Owczarek
f381ec0513 Docs: Update jQuery used for demos to 3.6.0
jQuery 1.12.4 misses some Core APIs that jQuery UI depends on and that are not
polyfilled in demos.
2021-09-25 12:24:55 +02:00
Michał Gołębiowski-Owczarek
3f5c7201da Tests: Update the default jQuery version from 1.12.4 to 3.6.0 2021-09-25 12:24:55 +02:00
Michał Gołębiowski-Owczarek
2fd224d5cc
Effect: Define the jQuery variable before jQuery Color gets imported
We need to create a local jQuery because jQuery Color relies on it and the
global may not exist with AMD and a custom build (trac-10199). This worked
in UI 1.12 but stopped in 1.13 as jQuery Color is now sourced as an AMD module
and the variable started being defined after jQuery Color code. To restore the
proper order, move the variable declaration to a separate small module loaded
before jQuery Color.

Closes gh-1973
2021-09-03 14:42:30 +02:00
Michał Gołębiowski-Owczarek
eda9f3b0d6 Release: Update the download.jqueryui.com dependency
The latest version contains small tweaks to the "use strict" pragma placement.
2021-09-02 17:17:50 +02:00
Michał Gołębiowski-Owczarek
491ecc1bd5 Build: Update npm dependencies 2021-09-02 16:05:31 +02:00
Michał Gołębiowski-Owczarek
4ccebc5f20
Release: Update the download.jqueryui.com dependency
This is needed to make `"use strict"` pragmas not stripped out during the
build.

Closes gh-1969
2021-08-26 13:41:10 +02:00
Michał Gołębiowski-Owczarek
440f38940d
Docs: Update removal comments to mention 1.14, not 1.13
We're not removing any deprecated API or legacy browser support in 1.13,
re-target comments to mention 1.14.

It's not guaranteed 1.14 will ever get released but if it will, it sounds like
a good moment to do those removals.

Closes gh-1970
2021-08-26 13:36:06 +02:00
Michał Gołębiowski-Owczarek
349ee77924 Release: Update the download.jqueryui.com dependency 2021-08-06 16:56:51 +02:00
Michał Gołębiowski-Owczarek
03e6c45583 Release: Abort on packager errors 2021-08-06 15:07:00 +02:00
Michał Gołębiowski-Owczarek
202238b550 Release: Update dependencies for the 1.13 release
Closes gh-1966
2021-08-06 13:36:30 +02:00
Michał Gołębiowski-Owczarek
f7e7e14a69 Build: Don't save temporary npm dependencies to package.json
Past npm versions required the `--save` flag to save anything in `package.json`
when installing packages but newer ones do this by default. Pass `--no-save` to
restore the original behavior in the `release-test.js` script.

Ref gh-1966
2021-08-06 13:36:30 +02:00
Michał Gołębiowski-Owczarek
74af512794 Build: Don't publish dist/cdn to npm 2021-08-04 22:57:11 +02:00
Michał Gołębiowski-Owczarek
399c81e077
Build: Update dependencies passed to jquery-release
The older versions were not compatible with Node.js 10 & newer.

Closes gh-1963
2021-08-04 18:03:46 +02:00
Michał Gołębiowski-Owczarek
11734928c0
Docs: Update AUTHORS.txt
Closes gh-1964
2021-08-04 17:39:54 +02:00
Michał Gołębiowski-Owczarek
d82ea60d05
Build: Fix package generation
jQuery UI 1.12.1 was released using an outdated (at the time of its release)
version of the download.jqueryui.com package; the latest ones wouldn't generate
relevant JS files.

This commit accounts for the changes so that the latest version can be used.

Closes gh-1965
2021-08-04 17:29:48 +02:00
c-lambert
cf938e2863
Datepicker: Get selectedDay from data-date instead of element contents
This makes datepicker work fine even if translation software modifies texts on the page.

Closes gh-1943
2021-07-12 09:41:41 +02:00
Michał Gołębiowski-Owczarek
70dae67b73
Build: Migrate from JSHint & JSCS to ESLint
Fixes #15393
Closes gh-1958
2021-06-07 00:58:12 +02:00
Patrick McKay
a12c98574d Datepicker: Improve callbacks test for onUpdateDatepicker
Make sure the custom element added by the onUpdateDatepicker callback still exists and is not duplicated after calling refresh and setDate.
2021-05-21 17:58:10 +02:00
Patrick McKay
17d115b829 Datepicker: Add option for onUpdateDatepicker callback
Add a new option named onUpdateDatepicker that allows a custom callback
to be provided. If provided, the callback is called at the end of
$.datepicker._updateDatepicker.
2021-05-21 17:58:10 +02:00
Mikolaj Wolicki
b864cd103a Fix: Adapt datpicker.js for a11y 2021-05-15 18:29:08 +02:00
Michał Gołębiowski-Owczarek
7c6a9f0128
All: Drop $.ui.escapeSelector in favor of $.escapeSelector
Fixes #14991
Closes gh-1957
2021-05-14 23:37:19 +02:00
Michał Gołębiowski-Owczarek
afe20b79a6
Datepicker: Make sure text option are text, shorten HTML strings
Instead of using enormous HTML strings, various elements are now constructed
using jQuery APIs. This makes it more obvious user-provided data is used
correctly.

Fixes #15284
Closes gh-1953
2021-05-12 00:59:42 +02:00
Michał Gołębiowski-Owczarek
effa323f15
Position: Make sure of is treated as a CSS selector
Closes gh-1955
2021-05-04 13:31:39 +02:00
Michał Gołębiowski-Owczarek
32850869d3
Datepicker: Make sure altField is treated as a CSS selector
Closes gh-1954
2021-05-04 13:30:06 +02:00
Michał Gołębiowski-Owczarek
9380d2734e
Tests: Accept delayed focusout in IE with jQuery 1.8
In IE with jQuery 1.8 focusout may not happen immediately so some checks
need to be done later.

Closes gh-1952
2021-04-16 23:33:57 +02:00
Michał Gołębiowski-Owczarek
dff0dc0d6a
Tests: Fix the "dialog: core: focus tabbable" test in IE
In IE in jQuery 3.4+ a sequence:
```js
$( inputNode ).trigger( "focus" ).trigger( "blur" ).trigger( "focus" );
```
doesn't end up with a focused input. However, in this test we only want to check
that the last focused input receives the focus back when `_focusTabbable()` is
called which in reality doesn't happen so quickly so let's avoid the issue by
waiting a bit.

Ref jquery/jquery#4856
Closes gh-1951
2021-03-16 22:17:25 +01:00
Michał Gołębiowski-Owczarek
e31cf579a0
Build: Fix the new htmllint error regex
Some bad pages are being detected as Catalan randomly which makes the build
fail. This is reproducible both locally & on Travis. PR gh-1949 added a new
regex to account for this error but it didn't escape parens properly so it's
not matching the problematic error message.

Ref gh-1949
Closes gh-1950
2021-03-10 11:50:52 +01:00
Michał Gołębiowski-Owczarek
9ea690a0d9
Tests: Make some number comparisons less strict
Some of the APIs return fractional values in newer jQueries, making comparisons
sometimes not being 100% accurate. Allow some delta.

This is similar to what was already done in
98b539171b but a few cases affecting IE and/or
Edge Legacy were missed.

Closes gh-1947
2021-03-09 00:11:40 +01:00
Michał Gołębiowski-Owczarek
1029849a53
Build: Add a new htmllint error regex
Some bad pages are being detected as Catalan randomly which makes the build
fail. This is reproducible both locally & on Travis. This commit adds a new
regex to account for this error.

Closes gh-1949
2021-03-09 00:10:38 +01:00
Michał Gołębiowski-Owczarek
e6592a8aff
Build: Add jQuery 3.6.0, update Migrate from 3.3.1 to 3.3.2
Closes gh-1948
2021-03-09 00:09:51 +01:00
Michał Gołębiowski-Owczarek
834ee5f7cf
Dialog: Workaround broken focus re-triggering in jQuery 3.4/3.5
Focus re-triggering in jQuery 3.4/3.5 makes the original element
have its focus event propagated last, breaking the re-targeting.
Trigger focus in a delay in addition if needed to avoid the issue.

This fixes the "interaction between overlay and other dialogs" core dialog
test when tested against jQuery 3.4/3.5.

Closes gh-1946
Ref jquery/jquery#4382
2021-02-22 00:02:02 +01:00
Michał Gołębiowski-Owczarek
5b5fda7cd2
Tests: Account for an extra noop focus/blur listener in jQuery >=3.4
jQuery >=3.4.0 uses a special focus/blur handler pair needed to fix various
issues with checkboxes/radio buttons as well as being able to pass data in focus
triggers. This leaves extra focus & blur events if any of these events were ever
listened to at a particular element.

We've started skipping these handlers in the `domEqual` assertion in gh-1930 but
we missed a case where an event is triggered before any handler is attached -
jQuery >=3.4.0 attaches then an extra noop listener just to force the code path
to go through the setup code before the trigger happens. We now skip this extra
handler as well.

This fixes a test failure in "dialog: methods" destroy tests.

Closes gh-1945
Ref jquery/jquery#4496
Ref gh-1930
2021-02-20 19:11:03 +01:00