Commit Graph

139 Commits

Author SHA1 Message Date
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
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
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
Amanpreet Singh
fd1c236c0f Autocomplete: Shift to use no globals 2016-04-14 00:06:11 +05:30
Scott González
1007ee811c Autocomplete: Whitespace 2015-10-16 14:14:45 -04:00
Scott González
548fbf570c Autocomplete: Close the menu on any outside interactions
This ensures that the menu will close if the user interacts with a
draggable, resizable, etc. element since those interactions don't
change focus.

Ref #6642
Closes gh-1614
2015-10-16 14:09:05 -04:00
Alexander Schmitz
8029cc94e1 Autocomplete: Style updates
Ref #14246
Ref gh-1588
2015-08-21 08:06:23 -04:00
Alexander Schmitz
4c6b1463ea Autocomplete: Move autocomplete into widgets folder
Ref #13885
2015-08-08 00:29:37 -04:00
Alexander Schmitz
8b4ce807cd Autocomplete: Remove core event/alias and deprecated module dependencies 2015-05-20 14:27:55 -04:00
Scott González
6231b161b9 Tests: Fix AMD loading in IE8
It appears that we must load require.js via a standard script tag in order
for it to work properly in IE8.
2015-04-17 12:13:38 -04:00
Scott González
bde431bb44 Tests: Rename files
Ref gh-1528
2015-04-09 09:27:00 -04:00
Scott González
aff3c32ee1 Autocomplete: Convert tests to new infrastructure
Ref #10119
Ref gh-1528
2015-04-09 09:24:45 -04:00
Scott González
500f6b4992 Tests: Switch to the new qunit-composite module
This module was created from our existing implementation.

Closes gh-1532
2015-04-07 09:03:36 -04:00
Alexander Schmitz
0f370b3e35 Autocomplete: Use new has/lacksClasses assertions for all class checks 2015-03-11 16:05:39 -04:00
Alexander Schmitz
cff1fb2a13 Autocomplete: Add classes option
Ref #7053
Ref gh-1411
2015-03-11 16:02:12 -04:00
Alexander Schmitz
c192d4086d Widget: Add classes option and _add/_remove/_toggleClass methods
Fixes #7053
Closes gh-1411
2015-03-11 16:00:04 -04:00
Jörn Zaefferer
666f051c3a Tests: Reduce timeouts to optimize testsuite runtime 2015-03-04 23:04:07 +01:00
Jörn Zaefferer
2aabd427eb Tests: Fix style issues with missing or multiple line breaks
As pointed out by jscs, after a esformatter run. The latter doesn't
address these, so fixing them manually.
2015-01-24 17:10:20 +01:00
Jörn Zaefferer
0bbd156918 Menu: Use ui-state-active consistently
So far we were using ui-state-active on active parent items,
ui-state-focus on active child items. The theme update highlighted the
visual inconsistency. With this change, only ui-state-active is used.

Fixes #10692
2015-01-21 18:07:43 +01:00
TJ VanToll
4ac7b1f679 Autocomplete: Re-add wrappers to menu items 2014-10-25 10:10:38 -07:00
Mike Sherov
aa425ab95d Build: Pull in jquery.simulate.js from Bower
Fixes #10563
2014-08-22 17:01:50 -04:00
Scott González
5ddc7cd4d3 Tests: Whitespace 2014-08-01 13:30:45 -04:00
Scott González
c017628e11 Tests: Fix composite tests 2014-08-01 12:25:14 -04:00
Yermo Lamers
930bc7df66 Autocomplete: ESCAPE should not change content of a MultiLine
Fixes #9790
Closes gh-1190
2014-07-24 17:00:55 -04:00
Scott González
6df127a0b5 Build: Reorganize external directory
Put each external library into its own directory.
Move jquery.js to external.

Ref gh-1266
2014-06-24 22:45:32 -04:00
TJ VanToll
48001a8c46 Autocomplete: Search if the user retypes the same value
Fixes #7434
Closes gh-1238
2014-05-12 13:37:13 -04:00
Jörn Zaefferer
a40647f0e5 All: Rename jquery.js to exclude version in filename 2014-03-05 10:19:11 +01:00
Jörn Zaefferer
8a71d0f129 Autocomplete: Fix assertion message in appendTo option test 2014-02-21 13:35:04 +01:00
Jörn Zaefferer
822f3cd9d0 Tests: Update to sane QUnit markup 2014-02-20 17:05:02 +01:00
Scott González
cf85f6726b Tests: Use .bind() instead of .on() 2014-02-11 11:54:55 -08:00
Yermo
605a20ef06 Autocomplete: Do not set value on multi-line input
This fixes an issue where contenteditable text was getting overwritten when
wrapping past the bottom or top of the autocomplete menu.

Fixes #9771
Closes gh-1184
2014-01-28 12:35:16 -05:00
Rafael Xavier de Souza
21154cfa2e All: Rename all files, removing the "jquery.ui." prefix;
- By executing https://gist.github.com/jzaefferer/893fcf70b7eebc1dc271;

Fixes #9464
Closes gh-1029
2014-01-24 18:22:49 -02:00
Scott González
113e9d0c2c Autocomplete: Normalize falsy values, not just missing values
Fixes #9762
2014-01-22 10:40:19 -05:00
Scott González
2ef1b16e4d Autocomplete: Fall back to .ui-front searching for empty jQuery objects
Fixes #9755
2014-01-20 16:20:11 -05:00
Dylan Barrell
0b28d597fe Autocomplete: Announce autocomplete correctly in all ATs.
Fixes #9631
Closes gh-1153
2014-01-14 11:09:49 +01:00
Jörn Zaefferer
7b9c810b9a Autocomplete: Append liveRegion to body to support detached init. Fixes #9590 - Dynamically adding input field breaks auto-complete's accessibility for screen readers 2013-10-19 00:27:51 +02:00
Kris Borchers
9620812986 Autocomplete tests: Update tests now that generated menu doesn't have anchors in elements 2013-10-05 22:19:57 -05:00
Bruno M. Custódio
0d5eaab9bb Updating jQuery to 1.10.2.
Adding jQuery 1.10.0, 1.10.1, 1.10.2, 2.0.0, 2.0.1, 2.0.2 and 2.0.3 to the
tests directory.
2013-07-05 08:42:37 -04:00
Scott González
9e00e00f3b Autocomplete: Scope race condition handling to the instance. Fixes #9334 - Autocomplete: Multiple instances should be able to start asynchronous requests simultaneously. 2013-05-28 11:04:42 -04:00
Scott González
7af03b73ea Autocomplete tests: Cleanup. 2013-04-30 10:27:22 -04:00
Scott González
72f82df577 Whitespace. 2013-04-30 10:23:29 -04:00
Jason Moon
f5f0879153 Autocomplete: Don't prevent keypress for multiline. Fixed #8911 - Autocomplete: Unable to use up/down arrow keys in a textarea (Firefox). 2013-04-25 13:17:21 -04:00
Mike Sherov
70717273a8 Autocomplete Tests: Fix oldIE test failures by accounting for casing differences in .html() return values. 2013-03-31 12:32:33 -04:00
Scott González
ff11b69a67 Autocomplete: Insert the live region before the input. Fixes #9172 - Autocomplete: .replaceWith() fails to replace. 2013-03-21 15:54:50 -04:00
Jörn Zaefferer
90135b27f8 Widget tests: Use instance method. Also replace a few instances of $.data in widget implementations. 2013-03-19 16:53:35 +01:00
Scott González
44d07173db Widget: Stop setting ui-state-disabled and aria by default on setting disabled option.
Fixes #5973 - Resizable: disabled should not have the ui-state-disabled class or aria attribute aria-disabled
Fixes #5974 - Draggable: disabled should not have the ui-state-disabled class or aria attribute aria-disabled
Fixes #6039 - Droppable: disabled should not have ui-state-disabled

This reverts commit 23771d38ba.
2013-03-14 19:08:21 -04:00
Scott González
23771d38ba Revert "Widget: Stop setting ui-state-disabled and aria by default on setting disabled option." This needs to wait for a major release.
This reverts commit 4d67f4f349.
2013-03-14 15:07:06 -04:00
Mike Sherov
4d67f4f349 Widget: Stop setting ui-state-disabled and aria by default on setting disabled option.
Fixes #5973 - Resizable: disabled should not have the ui-state-disabled class or aria attribute aria-disabled
Fixes #5974 - Draggable: disabled should not have the ui-state-disabled class or aria attribute aria-disabled
Fixes #6039 - Droppable : disabled should not have ui-state-disabled
2013-03-11 22:08:21 -04:00
Bruno M. Custódio
b440979ba6 Updating 'jQuery' to 1.9.1. 2013-02-05 13:47:59 +00:00