* Introduced the concept of a triggered event. A triggered event is a jQuery event that has been triggered (either manually by `.trigger()` or `.triggerHandler()`, or automatically by the user agent). Many properties on an event are not set until it has been triggered. Triggered events are now represented by `JQuery.TriggeredEvent`. `JQuery.Event` represents the object returned from the `jQuery.Event` constructor and serves as the base type for all jQuery events.
* Added a type parameter for `currentTarget` (`TCurrentTarget`). Previously, `currentTarget` was set to the type of `delegateTarget`. This was only correct for events received from directly bound event handlers. This allows delegate bound event handlers to specify the correct type of `currentTarget`.
* Added a type parameter for `target` (`TTarget`). Previously, `target` was set to the type of `delegateTarget`. This was not always correct. For delegate bound event handlers, `target` can be `delegateTarget` or any of its descendents. The exact type of `target` cannot be known until run time, so consumers should use a type assertion.
* Changed methods that bind event handlers to more accurately reflect the event object received through the callback. Both direct and delegate binding are now properly handled. This also includes a framework for providing more specific events for known event types.
Handler types previously included `JQuery.EventHandlerBase<TContext = any, JQuery.Event>`. This was a fix to what turned out to be a problem with `jQuery.proxy`. That issue was properly fixed by https://github.com/DefinitelyTyped/DefinitelyTyped/pull/29930.
* [jquery] Match parameter names to documentation more closely.
* [jquery] Add documentation to parameters.
* [jquery] Fix `TContext` declaration on wrong value's type.
Declaring `this` as `TContext` on the input function ensures that it can handle having its context changed to `TContext`. Declaring `this` on the output function is not important because the function will be already defined. It can also get in the way when passing a callback to a function whose callback parameter has `this` declared.
* [jquery] Drop constraint from `TContext`.
It's not really necessary and it is possible to pass primitives as the context.
* [jquery] Split `JQueryStatic` into its own file.
* [jquery] Split `JQuery` into its own file.
* [jquery] Split `JQuery` namespace into its own file.
* [jquery] Split legacy types into their own file.
* [jquery] Remove hard line breaks from documentation descriptions.
WebStorm treats line breaks in descriptions as line breaks when rendering descriptions in tooltips. This causes unintentional early wrapping of text.
* [jquery] Remove extra line after descriptions.
* [jquery] Audit lint rules.
* [jquery] Improve documentation for API methods which have had their signatures unified.
* [jquery] Add `preDispatch` and `postDispatch` methods.
See https://github.com/jquery/api.jquery.com/issues/752.
* [jquery] Fix weak type issue for `SpecialEventHook`.
* [jquery] Fix weak type issue for `FixHook`.
* [jquery] Add interface for `jQuery.valHooks`.
* [jquery] Fix weak type issue for `ValHook`.
* [jquery] Add interface for `jQuery.cssHooks`.
* [jquery] Properties on `CSSHook` are optional.
* [jquery] Use polymorphic `this` for `settings` parameter.
* [jquery] Wrap `StatusCodeCallbacks` in a region.
* [jquery] Split `@since` tag for consistency.
* [jquery] Add Animation API.
See https://blog.jquery.com/2012/08/09/jquery-1-8-released/.
* [jquery] Organize Effects section.
* [jquery] Fix weak type issue for `jQuery.speed`.
* [jquery] Fix minor documentation issues.
* [jquery] `stop` and `timer` don't need to be properties.
* [jquery] Fix code for example not rendering in VS Code autocomplete.
VS Code does not render the code block of the last example in the autocomplete tooltip (but does in the hover tooltip). This is fixed by adding an additional line terminated by a zero-width space. There doesn't appear to be an obvious pattern to what causes this and there may be other incidences of this bug in the declarations.
* [jquery] Improve formatting of documentation for unified signatures in tooltips.
Documentation for unified signatures is also unified. This means that documentation for a parameter will contain documentation from all the parameters that it's composed of. VS Code and WebStorm render this as one continuous line. This makes it confusing as it's not obvious which parts of documentation apply to a parameter.
To remedy this, parameters are formatted as a bulletted list. `<br>` tags are necessary to force line breaks in WebStorm. The list also cannot start on the first line. To force the first line break, the `<br>` tag is used for WebStorm. For VS Code, a non-empty body must follow the parameter name on its line. A Braille Pattern Blank could be used here but to provide a more intuitive and consistent experience, VS Code's format for rendering parameter info is mimicked instead. The `@` symbol must be encoded to prevent `@param` from being parsed as a JSDoc tag.
Note: VS Code renders the `<br>` tags literally and there does not appear to be a way to hide them.
* [jquery] Introduce interface for `jQuery.fx`.
* [jquery] Attach `jQuery.Deferred` documentation to correct symbol.
* [jquery] Convert `jQuery.Callbacks` to an interface.
This change is purely for consistency with similar properties (e.g. `jQuery.Deferred`, `jQuery.Event`).
* [jquery] For `JQuery`, reduce examples to only those relevant to the overload and use shorter template for code-only examples.
* [jquery] For `JQueryStatic`, reduce examples to only those relevant to the overload and use shorter template for code-only examples.
* [jquery] For `JQuery.Event`, reduce examples to only those relevant to the overload and use shorter template for code-only examples.
* [jquery] For `JQuery.Callbacks`, reduce examples to only those relevant to the overload and use shorter template for code-only examples.
* [jquery] For `JQuery.PromiseBase`/`JQuery.Deferred`, reduce examples to only those relevant to the overload and use shorter template for code-only examples.
* [jquery] Consistent ordering.
* [jquery] Add `jQuery.getScript(options)`.
See https://github.com/jquery/api.jquery.com/issues/1052.
* [jquery] Fix documentation for this one overload of `jQuery.proxy`.
* [jquery] Accept `Document`, `Window`, and `JQuery.PlainObject` for the `element` parameter of Data APIs.
See 354f6036f2/test/unit/data.js (L142-L164) and https://github.com/jquery/api.jquery.com/issues/1035.
* [jquery] Add `jQuery.cleanData`.
See https://github.com/jquery/api.jquery.com/issues/996.
* [jquery] Add detailed deprecation notices.
* [jquery] Add `jQuery.nodeName()`.
* [sizzle] Add named interfaces for `Selectors` properties.
* [jquery] Add `jQuery.expr`.
* [jquery] Add `jQuery.easing`.
* [jquery] Improve formatting of `@deprecated` tags.
WebStorm will not add padding between the description and deprecated text. To improve readability, a zero-width space and space is added to deprecated text to force padding.
VS Code will collapse white space causing detailed deprecation notices to start adjacent to the `@deprecated` tag if there is no header. A minimal header is added where necessary.
WebStorm renders line breaks in JSDoc. This may cause unintentional wrapping of text for `@deprecated` tags. To avoid this, line breaks are not used in deprecated text unless it's intended to render a line break there.
This also fixes broken non-http `@link` tags and ensures that they render consistently.