Skip to content
  • Benjamin Franzke's avatar
    [TASK] Update bootstrap javascript to 5.0.0-beta1 · 27881b60
    Benjamin Franzke authored and Benni Mack's avatar Benni Mack committed
    Bootstrap v5 – introduced in #92616 – was added with CCS from beta1 but
    JavaScript from alpha2. bootstrap.bundle.js was manually wrapped
    into a AMD closure, and because bootstrap 5.0.0-beta1 contains alot of
    changes regarding data tags, it couldn't be updated in the initial
    patch.
    
    Bootstrap is now bundled using rollup using the ES6 sources in order
    to allow for automatic updates through `grunt build`.
    
    popperjs – previously bundled into bootstrap distributed files –
    is now added as dependency. The bootstap ES6 sources, that we now use
    through rollup, do not bundle this external dependency (for good reasons).
    
    Dependency added with:
    
       yarn add @popperjs/core
    
    Further adaptions contained in this change to ensure beta1 compatibility:
    
    a) Carousel "item" to "carousel-item" class migration
    b) $.fn.modal(options) does no longer imply $.fn.modal('show')
    c) Fix panels, both JS and CSS (card-group can't be used here)
    d) All bootstrap data- tags are migrated to data-bs-.
       (see https://github.com/twbs/bootstrap/pull/31827)
       Migrated with
    
       # renderes a sed substition with the help of a nested sed from all the
       # data-bs attributes that where changed in the twbs/bootstrap commit
       git grep -l data- | xargs sed -i $( \
            curl -s \
            https://patch-diff.githubusercontent.com/raw/twbs/bootstrap/pull/31827.patch | \
            sed 's/data-bs-[a-z-]*/\n&\n/g' | grep "data-bs-[a-z-]" | \
            sort | uniq | \
            sed 's/data-bs-\(.*\)\([^a-z-]\|$\)/ -e s\/data-\1\\\([^a-z-]\\\)\/data-bs-\1\\1\/g -e s\/data('"'"'\1'"'"')\/data('"'"'bs-\1'"'"')\/g/g' \
       )
    
       # Revert false positives from the above auto-replacement
       git checkout -- typo3/sysext/core/Documentation/Changelog/ \
            typo3/sysext/backend/Classes/Form/Container/FlexFormContainerContainer.php \
            Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LiveSearch.ts \
            Build/Sources/TypeScript/backend/Resources/Public/TypeScript/FormEngineFlexForm.ts \
            Build/Sources/TypeScript/install/Resources/Public/TypeScript/Module/Settings/ExtensionConfiguration.ts \
            Build/Sources/Sass/typo3/_element_panel.scss
    
       (cd Build && grunt build)
    
    Resolves: #93126
    Resolves: #93123
    Resolves: #93132
    Related: #92616
    Releases: master
    Change-Id: Ie194d0f87d2c60df7b9e8a6de4893cfaaea55356
    Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/67215
    
    
    Tested-by: default avatarTYPO3com <noreply@typo3.com>
    Tested-by: default avatarMartin Kutschker <mkutschker-typo3@yahoo.com>
    Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
    Tested-by: default avatarBenni Mack <benni@typo3.org>
    Reviewed-by: default avatarMartin Kutschker <mkutschker-typo3@yahoo.com>
    Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
    Reviewed-by: default avatarBenni Mack <benni@typo3.org>
    27881b60