Breaking: #101820 - Remove bootstrap jQuery interface and window.jQuery

See forge#101820

Description

The bootstrap jQuery interfaces required a global window.jQuery variable to be set. The jquery drop-in is dropped in order to remove this non-optional jQuery dependency.

As a side effect the window.jQuery global is removed as well. Note that global jQuery usage has already been deprecated in forge#86438 and removed in forge#97243 with the suggestion to use JavaScript modules instead. window.jQuery was basically left in place for bootstrap to operate and therefore only window.$ was removed back then.

Impact

Loading the ES6 'bootstrap' module no longer has side effects, as the global scope window is no longer polluted by writing to the property jQuery. This also means jQuery will no longer be loaded when it is not actually needed.

Affected Installations

All installations that use bootstrap's jQuery interface or applications that use window.jQuery to invoke jQuery.

Following method calls are affected:

  • $(…).alert()
  • $(…).button()
  • $(…).carousel()
  • $(…).collapse()
  • $(…).dropdown()
  • $(…).tab()
  • $(…).modal()
  • $(…).offcanvas()
  • $(…).popover()
  • $(…).scrollspy()
  • $(…).toast()
  • $(…).tooltip()

Migration

Use bootstrap's ES6 exports import { Carousel } from 'bootstrap'; instead.