Quantcast
Channel: Issues for Drupal core
Viewing all articles
Browse latest Browse all 294953

Deprecate unused jQuery UI components in favour of a suite of contrib modules

$
0
0

Problem/Motivation

Following #3051352: [Plan] Remove unused jQuery UI components and replace with a suite of contrib packages for the continuous upgrade path we need to actually deprecate all the unused jQuery UI components in core, pointing to a change record which will in turn point to the contrib modules and how to update dependencies.

Proposed resolution

For jQuery UI components that are not used by core, deprecate them entirely in core and move them to contrib. This would be done via a set of contrib projects so that a security issue in one component doesn't require a security release for unrelated components.

Some utilities could be grouped under a main jquery_ui project.

These modules could consist of an info and libraries file and the specific js or css currently in core/assets/vendor/jquery.ui.

example folder structure:

jquery_ui_[component]
 |_jquery.ui
 |  |_ui
 |  |  |_widgets
 |  |    |_[component]-min.js
 |  |
 |  |_themes
 |    |_base
 |      |_[component]-min.css
 |
 |_jquery_ui_[component].info.yml
 |_jquery_ui_[component].libraries.yml

example info file:

name: jQuery UI Droppable
type: module
description: 'Provides jQueryUI Droppable library.'
package: jQuery UI
core: 8.x
dependencies:
    - jquery_ui
    - jquery_ui_draggable        

The libraries file would be identical to what is currently in core.libraries.yml except for updated paths to files and dependent libraries.

Proposed list of modules, starting with the modules that can be currently marked deprecated:

  • jquery_ui - this project page already exists but has not had activity since jQuery UI went into core. It would be great if we could use this as the namespace for this new module.
    It could include jQuery "core" files as well as some utilities depended on by the other libraries.
    • jquery.ui
    • jquery.ui.widget (required by nearly all the other libraries)
    • jquery.ui.mouse (required by slider, selectable, draggable)
    • jquery.ui.position (required by selectmenu, tooltip)
  • jquery_ui_accordion - jquery.ui.accordion
  • jquery_ui_button - jquery.ui.button - not in the deprecated list but required by spinner.
  • jquery_ui_checkboxradio - jquery.ui.checkboxradio
  • jquery_ui_controlgroup - jquery.ui.controlgroup
  • jquery_ui_draggable - jquery.ui.draggable - not in the deprecated list but required by droppable.
  • jquery_ui_droppable - jquery.ui.droppable
  • jquery_ui_effects - since the individual effects depend on jquery.ui.effects.core it's more convenient to package them together.
    • jquery.ui.effects.core
    • jquery.ui.effects.blind
    • jquery.ui.effects.bounce
    • jquery.ui.effects.clip
    • jquery.ui.effects.drop
    • jquery.ui.effects.explode
    • jquery.ui.effects.fade
    • jquery.ui.effects.fold
    • jquery.ui.effects.highlight
    • jquery.ui.effects.puff
    • jquery.ui.effects.pulsate
    • jquery.ui.effects.scale
    • jquery.ui.effects.shake
    • jquery.ui.effects.size
    • jquery.ui.effects.slide
    • jquery.ui.effects.transfer
  • jquery_ui_menu - jquery.ui.menu - not in the deprecated list but required by selectmenu.
  • jquery_ui_progressbar - jquery.ui.progressbar
  • jquery_ui_selectable - jquery.ui.selectable
  • jquery_ui_selectmenu - jquery.ui.selectmenu
  • jquery_ui_slider - jquery.ui.slider
  • jquery_ui_spinner - jquery.ui.spinner
  • jquery_ui_tabs - jquery.ui.tabs
  • jquery_ui_tooltip - jquery.ui.tooltip

Remaining tasks

None.

User interface changes

None.

API changes

A number of jQuery UI asset libraries are deprecated. See the change record and proposed resolution.

Data model changes

None.

Release notes snippet

jQuery UI asset libraries that are not used by Drupal core have been deprecated.


Viewing all articles
Browse latest Browse all 294953

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>