Commit Graph

18 Commits

Author SHA1 Message Date
Michał Gołębiowski-Owczarek
020828e7ff
Selectmenu: Fix selecting options following hidden ones
Change a2b25ef6ca made options with
the `hidden` attribute skipped when rendering. However, that makes
indexes misaligned with native options as hidden ones maintain their
index values. Instead, don't skip hidden options but add the `hidden`
attribute to the respective jQuery UI elements as well.

Fixes gh-2082
Closes gh-2144
Ref a2b25ef6ca
2023-05-10 10:55:01 +02: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
70dae67b73
Build: Migrate from JSHint & JSCS to ESLint
Fixes #15393
Closes gh-1958
2021-06-07 00:58:12 +02:00
Michał Gołębiowski-Owczarek
e7a10c70ae
Tests: Ensure no timers are running at the end of each test (#1920)
This helps fix issues that make tooltip tests sometimes fail when run against
jQuery 3.2 or newer due to timing differences.

Details:
* Add the `moduleAfterEach` function ensuring no timers are running.
* Attach this function via `common.testWidget`.
* Attach this function to most test suites.
* Add a tooltip test helper cleaning up leftover timers.
* Rename legacy `setup`/`teardown` hooks to `beforeEach`/`afterEach`.

Closes gh-1920
2020-05-16 09:16:24 +02:00
Michał Gołębiowski-Owczarek
98b539171b All: Migrate away from deprecated/removed Core APIs
Summary of the changes:

* Build: Add jQuery 3.2.0-3.4.1 to versions UI can be tested against
* Build: Load jQuery & Migrate via HTTPS
* Build: Add package-lock.json to .gitignore
* Build: Update jQuery Migrate from 3.0.0 to 3.1.0
* Build: Allow to run tests against jQuery 3.x-git
* Build: Fix formatting according to JSCS rules
* Build: Disable JSCS for the inlined jQuery Color
* All: Switch from $.isArray to Array.isArray (jQuery.isArray will be
  removed in jQuery 4.0)
* All: Switch from `$.isFunction( x )` to `typeof x === "function"`
  (jQuery.isFunction will be removed in jQuery 4.0)
* All: Inline jQuery.isWindow as it'll be removed in jQuery 4.0
* Effects: Fix a timing issue in a variable declaration. Previously,
  a jQuery object was created, chained & assigned to a variable that
  was then accessed in a callback used inside of this chained
  definition. Due to a timing difference in when the callback fired for
  the first time in latest jQuery master, it was being called before
  the variable was defined.
* Tests: Make dialog & draggable unit tests less strict (newest jQuery
  returns fractional results in some cases, making comparisons fail when
  there's a tiny difference)
* All: Migrate from $.trim to bare String.prototype.trim (jQuery.trim
  will be deprecated in jQuery 3.5)

Closes gh-1901
2019-12-08 22:23:08 +01:00
Scott González
50efd6e1b0 Menu: Ignore mouse events triggered due to page scrolling
Fixes #9356
Closes gh-1806
2017-05-02 15:16:17 -04:00
Scott González
a2b25ef6ca Selectmenu: Don't render options with the hidden attribute
Fixes #15098
2016-11-16 12:52:15 -05:00
Felix Nagel
ac9ca9e52c Menu: Support number pad keyboard input
Fixes #15031
Closes gh-1732
2016-08-24 11:56:26 -04:00
Amanpreet Singh
d00c5641b9 Selectmenu: Shift to use no globals 2016-04-14 00:14:57 +05:30
Alexander Schmitz
bff8277fbc Selectmenu: Prepend icon and move overflow to text span
Fixes #14938
Closes gh-1685
2016-03-30 11:53:28 -04:00
Alexander Schmitz
20466d5027 Selectmenu: Fixed selectmenu icon float right
Also removes the icon space as its not needed with a floated icon

Fixes #14914
Closes gh-1671
2016-02-24 11:29:44 -05:00
Jörn Zaefferer
39853fda45 Selectmenu: Handle form resets
Fixes #12236
Ref gh-1550
2015-10-27 10:28:04 -04:00
Jörn Zaefferer
3570cc5a2b Tests: Fix button space assertions on IE8
IE8 still doesn't keep the space in the text (or HTML) representation.
We don't really care, so adding more trims in these tests as well.
2015-10-25 11:25:00 -04:00
Alexander Schmitz
6b05034283 Selectmenu: Address review comments 2015-10-08 14:02:57 -04:00
Alexander Schmitz
9f7f0a4279 Selectmenu: update to use button css
This ensures consistency between different form elements
2015-10-07 10:57:59 -04:00
Alexander Schmitz
cfd48ed037 Selectmenu: Style updates
Ref #14246
2015-09-11 08:29:07 -04:00
Alexander Schmitz
e7c9e8877e Selectmenu: Move selectmenu into widgets folder
Ref #13885
2015-08-08 00:29:39 -04:00
Scott González
bde431bb44 Tests: Rename files
Ref gh-1528
2015-04-09 09:27:00 -04:00