## Presentation Slides https://docs.google.com/presentation/d/17Zpy5fZQsWsoZBhisA3rQiZy_JrK9MPR_HdgAisQ9XI/edit?usp=sharing ## jQuery UI - **Meta Issue:** [Remove jQuery UI components used by Drupal core and replace with a set of supported solutions](https://www.drupal.org/node/3067261) - **Tabbable:** So close! - [Create AjaxCommand for focusing that does not require :tabbable selector](https://www.drupal.org/project/drupal/issues/3188938) - **Autocomplete**: ~80% done? It works and there are tests. The functionality needs to be moved to an NPM package similar to once() and needs heavy review. - [Provide a new library to replace jQuery UI autocomplete}(https://www.drupal.org/project/drupal/issues/3076171) depends on (but not necessarily blocked by): - [Address jQuery UI position dependency](https://www.drupal.org/project/drupal/issues/3201170) - **Dialog** ~50% done? It works, but needs refactoring and test coverage. - [Replace jQuery UI dialog with supported library or polyfill](https://www.drupal.org/project/drupal/issues/2158943) depends on (but not necessarily blocked by): - Several unknowns that will be known when Autocomplete is finished - [Replacing(?) jQuery UI resizable](https://www.drupal.org/project/drupal/issues/3201835) ## Libraries that depend on jQuery - **Meta Issue:** [Replace JQuery with vanilla Javascript in core](https://www.drupal.org/project/drupal/issues/3052002) *Note that the scope of this issue covers more than libraries depending on jQuery.* - **Once:**: This is completed and is a huge step forward! [Add once.js to core](https://www.drupal.org/project/drupal/issues/2402103) Now to get it fully integrated into core: - [Deprecate jquery.once and use the new once lib](https://www.drupal.org/project/drupal/issues/3183149) - [@drupal/once for the block module](https://www.drupal.org/project/drupal/issues/3208051) - **Joyride**: [Deprecate and replace jQuery Joyride (for tours)](https://www.drupal.org/project/drupal/issues/3051766) - **Farbtastic:** [Use color input type in the color.module](https://www.drupal.org/project/drupal/issues/1651344) *This one has very clear next steps that anyone could jump in to complete!* - **jquery.form:** [[meta] how to approach core/drupal.ajax divorcing jQuery?](https://www.drupal.org/project/drupal/issues/3189416) ## Backbone ## - **Meta Issue:** [Re-evaluate use of Backbone.js in core Primary tabs](https://www.drupal.org/project/drupal/issues/3145958) - **Contextual Links** [Replace Contextual Links BackboneJS usage with VanillaJS equivalent](https://www.drupal.org/project/drupal/issues/3203920) *This one has a working Vanilla JS replacement, it can be used as a reference for building the others* - **Tour** [Replace Tour BackboneJS usage with VanillaJS equivalent](https://www.drupal.org/project/drupal/issues/3204011) - **Toolbar** [Replace Toolbar BackboneJS usage with VanillaJS equivalent](https://www.drupal.org/project/drupal/issues/3204015) - **QuickEdit:** [Replace Quickedit BackboneJS usage with VanillaJS equivalent](https://www.drupal.org/project/drupal/issues/3204016) - **Through working on Backbone, we learned core gatekeepers are open to adding Vue if we can demonstrate its benefits** [Document benefits/drawbacks of adding Vue as a core JS library](https://dgo.to/3201871) ## jQuery ## - **Meta Issue:** [Replace JQuery with vanilla Javascript in core](https://dgo.to/3052002) - **Linting - the first step:** [Add eslint rules to check for jQuery usage](https://dgo.to/3191023) - **Events:** [JavaScript event handling without a full jQuery dependency](https://dgo.to/3176441) - **How to address functionality without a 1:1 Vanilla option:** [Provide no-library equivalents of common/useful jQuery functions](https://dgo.to/3179551) - **A potential approach for useful jQuery functions that don't have 1:1 vanilla equivalents:** [Rewrite jQuery .show() and .hide()](https://dgo.to/3167377) - **Additional evidence there aren't always 1:1 Vanilla options:** [Remove Tabledrag's jQuery dependency](https://dgo.to/3177355)